@camstack/types 1.2.327 → 1.2.328

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 (71) hide show
  1. package/dist/addon/base-addon.d.ts +58 -0
  2. package/dist/addon/secret-aware-context.d.ts +27 -0
  3. package/dist/addon/secret-paths.d.ts +48 -0
  4. package/dist/addon/secret-settings-view.d.ts +80 -0
  5. package/dist/addon.d.ts +1 -0
  6. package/dist/addon.js +52 -4
  7. package/dist/addon.mjs +27 -5
  8. package/dist/capabilities/addons.cap.d.ts +4 -4
  9. package/dist/capabilities/alerts.cap.d.ts +5 -5
  10. package/dist/capabilities/control.cap.d.ts +11 -11
  11. package/dist/capabilities/day-night.cap.d.ts +8 -8
  12. package/dist/capabilities/device-manager.cap.d.ts +2 -0
  13. package/dist/capabilities/enum-sensor.cap.d.ts +4 -4
  14. package/dist/capabilities/index.d.ts +6 -2
  15. package/dist/capabilities/integrations.cap.d.ts +6 -3
  16. package/dist/capabilities/keychain-admin.cap.d.ts +312 -0
  17. package/dist/capabilities/keychain.cap.d.ts +180 -0
  18. package/dist/capabilities/lawn-mower-control.cap.d.ts +4 -4
  19. package/dist/capabilities/log-channels.cap.d.ts +1 -1
  20. package/dist/capabilities/log-destination.cap.d.ts +5 -5
  21. package/dist/capabilities/notification-rules.cap.d.ts +30 -30
  22. package/dist/capabilities/osd-manager.cap.d.ts +11 -11
  23. package/dist/capabilities/osd.cap.d.ts +5 -5
  24. package/dist/capabilities/pipeline-analytics.cap.d.ts +996 -118
  25. package/dist/capabilities/pipeline-orchestrator.cap.d.ts +384 -0
  26. package/dist/capabilities/pipeline-runner.cap.d.ts +145 -2
  27. package/dist/capabilities/storage.cap.d.ts +1 -1
  28. package/dist/capabilities/system.cap.d.ts +16 -16
  29. package/dist/capabilities/webrtc-session.cap.d.ts +3 -3
  30. package/dist/client.js +32 -1
  31. package/dist/client.mjs +32 -1
  32. package/dist/device/device-context.d.ts +11 -1
  33. package/dist/device/index.d.ts +1 -1
  34. package/dist/enums/event-category.d.ts +7 -0
  35. package/dist/enums.js +1 -1
  36. package/dist/enums.mjs +1 -1
  37. package/dist/{event-category-CtBAl88K.js → event-category-CHduMGvg.js} +7 -0
  38. package/dist/{event-category-B_0XEcLF.mjs → event-category-DaIZi00R.mjs} +7 -0
  39. package/dist/generated/addon-api.d.ts +254 -0
  40. package/dist/generated/cap-input-defaults.d.ts +1 -1
  41. package/dist/generated/capability-router-map.d.ts +8 -2
  42. package/dist/generated/method-access-map.d.ts +1 -1
  43. package/dist/generated/method-device-selectors.d.ts +1 -1
  44. package/dist/generated/system-proxy.d.ts +4 -2
  45. package/dist/health/wiring-health.d.ts +8 -8
  46. package/dist/index.d.ts +6 -2
  47. package/dist/index.js +1736 -101
  48. package/dist/index.mjs +1625 -98
  49. package/dist/interfaces/addon.d.ts +25 -0
  50. package/dist/interfaces/config-ui-secrets.d.ts +12 -0
  51. package/dist/interfaces/config-ui.d.ts +29 -1
  52. package/dist/interfaces/event-bus.d.ts +11 -0
  53. package/dist/interfaces/pipeline-runner-capability.d.ts +18 -0
  54. package/dist/keychain/index.d.ts +5 -0
  55. package/dist/keychain/known-secrets.d.ts +31 -0
  56. package/dist/keychain/resolve-secret-views.d.ts +2 -0
  57. package/dist/keychain/secret-marker.d.ts +52 -0
  58. package/dist/keychain/secret-ref.d.ts +62 -0
  59. package/dist/keychain/secrets-access.d.ts +77 -0
  60. package/dist/logging/log-channel.d.ts +2 -2
  61. package/dist/pipeline/auto-tune/plan-schemas.d.ts +123 -0
  62. package/dist/pipeline/auto-tune/recommend.d.ts +26 -1
  63. package/dist/pipeline/load-balancing/schemas.d.ts +8 -7
  64. package/dist/pipeline/node-benchmark/benchmark-mode.d.ts +57 -0
  65. package/dist/pipeline/node-benchmark/index.d.ts +9 -0
  66. package/dist/pipeline/node-benchmark/results.d.ts +52 -0
  67. package/dist/pipeline/node-benchmark/schemas.d.ts +848 -0
  68. package/dist/pipeline/node-benchmark/step-tree.d.ts +23 -0
  69. package/dist/{sleep-B0JG7-_F.mjs → sleep-Cr5YOk3m.mjs} +1335 -121
  70. package/dist/{sleep-az1qiFzK.js → sleep-i3kl-0Na.js} +1575 -121
  71. package/package.json +1 -1
@@ -58,6 +58,8 @@ import type { humidifierCapability } from '../capabilities/humidifier.cap.js';
58
58
  import type { imageSettingsCapability } from '../capabilities/image-settings.cap.js';
59
59
  import type { integrationsCapability } from '../capabilities/integrations.cap.js';
60
60
  import type { intercomCapability } from '../capabilities/intercom.cap.js';
61
+ import type { keychainAdminCapability } from '../capabilities/keychain-admin.cap.js';
62
+ import type { keychainCapability } from '../capabilities/keychain.cap.js';
61
63
  import type { lawnMowerControlCapability } from '../capabilities/lawn-mower-control.cap.js';
62
64
  import type { llmRuntimeCapability } from '../capabilities/llm-runtime.cap.js';
63
65
  import type { llmCapability } from '../capabilities/llm.cap.js';
@@ -3657,6 +3659,118 @@ export type AppRouter = TrpcCoreRouter<{
3657
3659
  meta: object;
3658
3660
  }>;
3659
3661
  }>>;
3662
+ keychain: TRPCBuiltRouter<{
3663
+ ctx: TrpcContext;
3664
+ meta: object;
3665
+ errorShape: AugmentedErrorShape;
3666
+ transformer: true;
3667
+ }, TRPCDecorateCreateRouterOptions<{
3668
+ put: TRPCMutationProcedure<{
3669
+ input: {
3670
+ [x: string]: unknown;
3671
+ } & z.input<typeof keychainCapability.methods.put.input>;
3672
+ output: z.infer<typeof keychainCapability.methods.put.output>;
3673
+ meta: object;
3674
+ }>;
3675
+ resolve: TRPCQueryProcedure<{
3676
+ input: {
3677
+ [x: string]: unknown;
3678
+ } & z.input<typeof keychainCapability.methods.resolve.input>;
3679
+ output: z.infer<typeof keychainCapability.methods.resolve.output>;
3680
+ meta: object;
3681
+ }>;
3682
+ delete: TRPCMutationProcedure<{
3683
+ input: {
3684
+ [x: string]: unknown;
3685
+ } & z.input<typeof keychainCapability.methods.delete.input>;
3686
+ output: z.infer<typeof keychainCapability.methods.delete.output>;
3687
+ meta: object;
3688
+ }>;
3689
+ listMeta: TRPCQueryProcedure<{
3690
+ input: {
3691
+ [x: string]: unknown;
3692
+ } & z.input<typeof keychainCapability.methods.listMeta.input>;
3693
+ output: z.infer<typeof keychainCapability.methods.listMeta.output>;
3694
+ meta: object;
3695
+ }>;
3696
+ getState: TRPCQueryProcedure<{
3697
+ input: {
3698
+ [x: string]: unknown;
3699
+ } & z.input<typeof keychainCapability.methods.getState.input>;
3700
+ output: z.infer<typeof keychainCapability.methods.getState.output>;
3701
+ meta: object;
3702
+ }>;
3703
+ }>>;
3704
+ keychainAdmin: TRPCBuiltRouter<{
3705
+ ctx: TrpcContext;
3706
+ meta: object;
3707
+ errorShape: AugmentedErrorShape;
3708
+ transformer: true;
3709
+ }, TRPCDecorateCreateRouterOptions<{
3710
+ status: TRPCQueryProcedure<{
3711
+ input: {
3712
+ [x: string]: unknown;
3713
+ } & z.input<typeof keychainAdminCapability.methods.status.input>;
3714
+ output: z.infer<typeof keychainAdminCapability.methods.status.output>;
3715
+ meta: object;
3716
+ }>;
3717
+ listSecrets: TRPCQueryProcedure<{
3718
+ input: {
3719
+ [x: string]: unknown;
3720
+ } & z.input<typeof keychainAdminCapability.methods.listSecrets.input>;
3721
+ output: z.infer<typeof keychainAdminCapability.methods.listSecrets.output>;
3722
+ meta: object;
3723
+ }>;
3724
+ listAudit: TRPCQueryProcedure<{
3725
+ input: {
3726
+ [x: string]: unknown;
3727
+ } & z.input<typeof keychainAdminCapability.methods.listAudit.input>;
3728
+ output: z.infer<typeof keychainAdminCapability.methods.listAudit.output>;
3729
+ meta: object;
3730
+ }>;
3731
+ reveal: TRPCMutationProcedure<{
3732
+ input: {
3733
+ [x: string]: unknown;
3734
+ } & z.input<typeof keychainAdminCapability.methods.reveal.input>;
3735
+ output: z.infer<typeof keychainAdminCapability.methods.reveal.output>;
3736
+ meta: object;
3737
+ }>;
3738
+ deleteOrphans: TRPCMutationProcedure<{
3739
+ input: {
3740
+ [x: string]: unknown;
3741
+ } & z.input<typeof keychainAdminCapability.methods.deleteOrphans.input>;
3742
+ output: z.infer<typeof keychainAdminCapability.methods.deleteOrphans.output>;
3743
+ meta: object;
3744
+ }>;
3745
+ rotateMasterKey: TRPCMutationProcedure<{
3746
+ input: {
3747
+ [x: string]: unknown;
3748
+ } & z.input<typeof keychainAdminCapability.methods.rotateMasterKey.input>;
3749
+ output: z.infer<typeof keychainAdminCapability.methods.rotateMasterKey.output>;
3750
+ meta: object;
3751
+ }>;
3752
+ purgeRetiredKeys: TRPCMutationProcedure<{
3753
+ input: {
3754
+ [x: string]: unknown;
3755
+ } & z.input<typeof keychainAdminCapability.methods.purgeRetiredKeys.input>;
3756
+ output: z.infer<typeof keychainAdminCapability.methods.purgeRetiredKeys.output>;
3757
+ meta: object;
3758
+ }>;
3759
+ downloadRecoveryKey: TRPCMutationProcedure<{
3760
+ input: {
3761
+ [x: string]: unknown;
3762
+ } & z.input<typeof keychainAdminCapability.methods.downloadRecoveryKey.input>;
3763
+ output: z.infer<typeof keychainAdminCapability.methods.downloadRecoveryKey.output>;
3764
+ meta: object;
3765
+ }>;
3766
+ resetKeychain: TRPCMutationProcedure<{
3767
+ input: {
3768
+ [x: string]: unknown;
3769
+ } & z.input<typeof keychainAdminCapability.methods.resetKeychain.input>;
3770
+ output: z.infer<typeof keychainAdminCapability.methods.resetKeychain.output>;
3771
+ meta: object;
3772
+ }>;
3773
+ }>>;
3660
3774
  lawnMowerControl: TRPCBuiltRouter<{
3661
3775
  ctx: TrpcContext;
3662
3776
  meta: object;
@@ -5937,6 +6051,76 @@ export type AppRouter = TrpcCoreRouter<{
5937
6051
  output: z.infer<typeof pipelineAnalyticsCapability.methods.writeRetrainArchive.output>;
5938
6052
  meta: object;
5939
6053
  }>;
6054
+ listRetrainAssistProfiles: TRPCQueryProcedure<{
6055
+ input: {
6056
+ [x: string]: unknown;
6057
+ } & z.input<typeof pipelineAnalyticsCapability.methods.listRetrainAssistProfiles.input>;
6058
+ output: z.infer<typeof pipelineAnalyticsCapability.methods.listRetrainAssistProfiles.output>;
6059
+ meta: object;
6060
+ }>;
6061
+ proposeRetrainAnnotationsWithLlm: TRPCMutationProcedure<{
6062
+ input: {
6063
+ [x: string]: unknown;
6064
+ } & z.input<typeof pipelineAnalyticsCapability.methods.proposeRetrainAnnotationsWithLlm.input>;
6065
+ output: z.infer<typeof pipelineAnalyticsCapability.methods.proposeRetrainAnnotationsWithLlm.output>;
6066
+ meta: object;
6067
+ }>;
6068
+ createRetrainCollection: TRPCMutationProcedure<{
6069
+ input: {
6070
+ [x: string]: unknown;
6071
+ } & z.input<typeof pipelineAnalyticsCapability.methods.createRetrainCollection.input>;
6072
+ output: z.infer<typeof pipelineAnalyticsCapability.methods.createRetrainCollection.output>;
6073
+ meta: object;
6074
+ }>;
6075
+ listRetrainCollections: TRPCQueryProcedure<{
6076
+ input: {
6077
+ [x: string]: unknown;
6078
+ } & z.input<typeof pipelineAnalyticsCapability.methods.listRetrainCollections.input>;
6079
+ output: z.infer<typeof pipelineAnalyticsCapability.methods.listRetrainCollections.output>;
6080
+ meta: object;
6081
+ }>;
6082
+ renameRetrainCollection: TRPCMutationProcedure<{
6083
+ input: {
6084
+ [x: string]: unknown;
6085
+ } & z.input<typeof pipelineAnalyticsCapability.methods.renameRetrainCollection.input>;
6086
+ output: z.infer<typeof pipelineAnalyticsCapability.methods.renameRetrainCollection.output>;
6087
+ meta: object;
6088
+ }>;
6089
+ deleteRetrainCollection: TRPCMutationProcedure<{
6090
+ input: {
6091
+ [x: string]: unknown;
6092
+ } & z.input<typeof pipelineAnalyticsCapability.methods.deleteRetrainCollection.input>;
6093
+ output: z.infer<typeof pipelineAnalyticsCapability.methods.deleteRetrainCollection.output>;
6094
+ meta: object;
6095
+ }>;
6096
+ addRetrainFrameFromRecording: TRPCMutationProcedure<{
6097
+ input: {
6098
+ [x: string]: unknown;
6099
+ } & z.input<typeof pipelineAnalyticsCapability.methods.addRetrainFrameFromRecording.input>;
6100
+ output: z.infer<typeof pipelineAnalyticsCapability.methods.addRetrainFrameFromRecording.output>;
6101
+ meta: object;
6102
+ }>;
6103
+ addRetrainFramesToCollection: TRPCMutationProcedure<{
6104
+ input: {
6105
+ [x: string]: unknown;
6106
+ } & z.input<typeof pipelineAnalyticsCapability.methods.addRetrainFramesToCollection.input>;
6107
+ output: z.infer<typeof pipelineAnalyticsCapability.methods.addRetrainFramesToCollection.output>;
6108
+ meta: object;
6109
+ }>;
6110
+ removeRetrainFrameFromCollection: TRPCMutationProcedure<{
6111
+ input: {
6112
+ [x: string]: unknown;
6113
+ } & z.input<typeof pipelineAnalyticsCapability.methods.removeRetrainFrameFromCollection.input>;
6114
+ output: z.infer<typeof pipelineAnalyticsCapability.methods.removeRetrainFrameFromCollection.output>;
6115
+ meta: object;
6116
+ }>;
6117
+ listRetrainCollectionFrames: TRPCQueryProcedure<{
6118
+ input: {
6119
+ [x: string]: unknown;
6120
+ } & z.input<typeof pipelineAnalyticsCapability.methods.listRetrainCollectionFrames.input>;
6121
+ output: z.infer<typeof pipelineAnalyticsCapability.methods.listRetrainCollectionFrames.output>;
6122
+ meta: object;
6123
+ }>;
5940
6124
  getEventMedia: TRPCQueryProcedure<{
5941
6125
  input: {
5942
6126
  [x: string]: unknown;
@@ -6553,6 +6737,55 @@ export type AppRouter = TrpcCoreRouter<{
6553
6737
  output: z.infer<typeof pipelineOrchestratorCapability.methods.setShareSource.output>;
6554
6738
  meta: object;
6555
6739
  }>;
6740
+ getNodeBenchmarkPreflight: TRPCQueryProcedure<{
6741
+ input: {
6742
+ [x: string]: unknown;
6743
+ } & z.input<typeof pipelineOrchestratorCapability.methods.getNodeBenchmarkPreflight.input>;
6744
+ output: z.infer<typeof pipelineOrchestratorCapability.methods.getNodeBenchmarkPreflight.output>;
6745
+ meta: object;
6746
+ }>;
6747
+ startNodeBenchmark: TRPCMutationProcedure<{
6748
+ input: {
6749
+ [x: string]: unknown;
6750
+ } & z.input<typeof pipelineOrchestratorCapability.methods.startNodeBenchmark.input>;
6751
+ output: z.infer<typeof pipelineOrchestratorCapability.methods.startNodeBenchmark.output>;
6752
+ meta: object;
6753
+ }>;
6754
+ getNodeBenchmarkStatus: TRPCQueryProcedure<{
6755
+ input: {
6756
+ nodeId?: string | undefined;
6757
+ } | undefined;
6758
+ output: z.infer<typeof pipelineOrchestratorCapability.methods.getNodeBenchmarkStatus.output>;
6759
+ meta: object;
6760
+ }>;
6761
+ abortNodeBenchmark: TRPCMutationProcedure<{
6762
+ input: {
6763
+ [x: string]: unknown;
6764
+ } & z.input<typeof pipelineOrchestratorCapability.methods.abortNodeBenchmark.input>;
6765
+ output: z.infer<typeof pipelineOrchestratorCapability.methods.abortNodeBenchmark.output>;
6766
+ meta: object;
6767
+ }>;
6768
+ getNodeBenchmarkCandidates: TRPCQueryProcedure<{
6769
+ input: {
6770
+ [x: string]: unknown;
6771
+ } & z.input<typeof pipelineOrchestratorCapability.methods.getNodeBenchmarkCandidates.input>;
6772
+ output: z.infer<typeof pipelineOrchestratorCapability.methods.getNodeBenchmarkCandidates.output>;
6773
+ meta: object;
6774
+ }>;
6775
+ listNodeBenchmarkResults: TRPCQueryProcedure<{
6776
+ input: {
6777
+ [x: string]: unknown;
6778
+ } & z.input<typeof pipelineOrchestratorCapability.methods.listNodeBenchmarkResults.input>;
6779
+ output: z.infer<typeof pipelineOrchestratorCapability.methods.listNodeBenchmarkResults.output>;
6780
+ meta: object;
6781
+ }>;
6782
+ deleteNodeBenchmarkResult: TRPCMutationProcedure<{
6783
+ input: {
6784
+ [x: string]: unknown;
6785
+ } & z.input<typeof pipelineOrchestratorCapability.methods.deleteNodeBenchmarkResult.input>;
6786
+ output: z.infer<typeof pipelineOrchestratorCapability.methods.deleteNodeBenchmarkResult.output>;
6787
+ meta: object;
6788
+ }>;
6556
6789
  getCameraSettings: TRPCQueryProcedure<{
6557
6790
  input: {
6558
6791
  [x: string]: unknown;
@@ -6763,6 +6996,27 @@ export type AppRouter = TrpcCoreRouter<{
6763
6996
  output: z.infer<typeof pipelineRunnerCapability.methods.releaseParkedTrackFrames.output>;
6764
6997
  meta: object;
6765
6998
  }>;
6999
+ startNodeBench: TRPCMutationProcedure<{
7000
+ input: {
7001
+ [x: string]: unknown;
7002
+ } & z.input<typeof pipelineRunnerCapability.methods.startNodeBench.input>;
7003
+ output: z.infer<typeof pipelineRunnerCapability.methods.startNodeBench.output>;
7004
+ meta: object;
7005
+ }>;
7006
+ getNodeBenchStatus: TRPCQueryProcedure<{
7007
+ input: {
7008
+ [x: string]: unknown;
7009
+ } & z.input<typeof pipelineRunnerCapability.methods.getNodeBenchStatus.input>;
7010
+ output: z.infer<typeof pipelineRunnerCapability.methods.getNodeBenchStatus.output>;
7011
+ meta: object;
7012
+ }>;
7013
+ abortNodeBench: TRPCMutationProcedure<{
7014
+ input: {
7015
+ [x: string]: unknown;
7016
+ } & z.input<typeof pipelineRunnerCapability.methods.abortNodeBench.input>;
7017
+ output: z.infer<typeof pipelineRunnerCapability.methods.abortNodeBench.output>;
7018
+ meta: object;
7019
+ }>;
6766
7020
  }>>;
6767
7021
  plateGallery: TRPCBuiltRouter<{
6768
7022
  ctx: TrpcContext;
@@ -11,7 +11,7 @@
11
11
  * Plain data, zero Zod: a forked runner must not import the schema barrel
12
12
  * (~144MB RSS per runner — D28).
13
13
  *
14
- * Coverage: 24 caps, 59 methods with defaults.
14
+ * Coverage: 24 caps, 62 methods with defaults.
15
15
  */
16
16
  export declare const CAP_INPUT_DEFAULTS: Readonly<Record<string, Readonly<Record<string, Readonly<Record<string, unknown>>>>>>;
17
17
  /**
@@ -73,6 +73,8 @@ export { imageCapability } from '../capabilities/image.cap.js';
73
73
  export { imageSettingsCapability } from '../capabilities/image-settings.cap.js';
74
74
  export { integrationsCapability } from '../capabilities/integrations.cap.js';
75
75
  export { intercomCapability } from '../capabilities/intercom.cap.js';
76
+ export { keychainCapability } from '../capabilities/keychain.cap.js';
77
+ export { keychainAdminCapability } from '../capabilities/keychain-admin.cap.js';
76
78
  export { lawnMowerControlCapability } from '../capabilities/lawn-mower-control.cap.js';
77
79
  export { llmCapability } from '../capabilities/llm.cap.js';
78
80
  export { llmRuntimeCapability } from '../capabilities/llm-runtime.cap.js';
@@ -239,6 +241,8 @@ export declare const CAPABILITY_NAMES: {
239
241
  readonly imageSettings: "image-settings";
240
242
  readonly integrations: "integrations";
241
243
  readonly intercom: "intercom";
244
+ readonly keychain: "keychain";
245
+ readonly keychainAdmin: "keychain-admin";
242
246
  readonly lawnMowerControl: "lawn-mower-control";
243
247
  readonly llm: "llm";
244
248
  readonly llmRuntime: "llm-runtime";
@@ -418,6 +422,8 @@ export interface CapabilityRouterMap<TRouter = unknown> {
418
422
  readonly imageSettings: TRouter;
419
423
  readonly integrations: TRouter;
420
424
  readonly intercom: TRouter;
425
+ readonly keychain: TRouter;
426
+ readonly keychainAdmin: TRouter;
421
427
  readonly lawnMowerControl: TRouter;
422
428
  readonly llm: TRouter;
423
429
  readonly llmRuntime: TRouter;
@@ -509,8 +515,8 @@ export interface CapabilityRouterMap<TRouter = unknown> {
509
515
  readonly zoneRules: TRouter;
510
516
  readonly zones: TRouter;
511
517
  }
512
- /** Capability names whose mode is `singleton` (133 caps). */
513
- export declare const SINGLETON_CAPABILITY_NAMES: readonly ["accessories", "addon-pages", "addon-settings", "addon-widgets", "addons", "admin-ui", "air-quality-sensor", "alarm-panel", "alerts", "ambient-light-sensor", "audio-analysis", "audio-analyzer", "audio-codec", "audio-metrics", "automation-control", "backup", "battery", "binary", "brightness", "button", "calendars", "camera-credentials", "camera-grid-layout", "camera-pipeline-config", "camera-streams", "carbon-monoxide", "climate-control", "color", "composer", "connectivity", "consumables", "contact", "control", "core-blocks", "cover", "database-snapshot", "day-night", "decoder", "detection-pipeline", "device-admin-link", "device-adoption", "device-discovery", "device-manager", "device-ops", "device-state", "device-status", "doorbell", "enum-sensor", "event-emitter", "face-gallery", "fan-control", "feature-probe", "filesystem-browse", "flood", "gas", "humidifier", "humidity-sensor", "image", "image-settings", "integrations", "intercom", "lawn-mower-control", "llm-runtime", "local-network", "lock-control", "media-player", "metrics-provider", "model-convert", "model-distributor", "motion", "motion-detection", "motion-trigger", "motion-zones", "native-object-detection", "navigation", "network-link", "network-quality", "nodes", "notification-rules", "notifier", "numeric-sensor", "osd", "osd-manager", "pet-feeder", "pipeline-analytics", "pipeline-executor", "pipeline-orchestrator", "pipeline-runner", "plate-gallery", "platform-probe", "power-meter", "presence", "pressure-sensor", "privacy-mask", "ptz", "ptz-autotrack", "reboot", "recording-archive", "recording-export", "recording-onboard", "recording-signal", "scene-monitor", "script-runner", "server-management", "settings-store", "smoke", "snapshot", "sso-bridge", "storage", "storage-migration", "stream-broker", "stream-catalog", "stream-params", "stream-signals", "switch", "system", "tamper", "temperature-sensor", "terminal-session", "toast", "update", "user-management", "vacuum-control", "valve", "vector-store", "vibration", "viewer-ui", "water-heater", "weather", "webrtc-session", "zone-analytics", "zone-rules", "zones"];
518
+ /** Capability names whose mode is `singleton` (135 caps). */
519
+ export declare const SINGLETON_CAPABILITY_NAMES: readonly ["accessories", "addon-pages", "addon-settings", "addon-widgets", "addons", "admin-ui", "air-quality-sensor", "alarm-panel", "alerts", "ambient-light-sensor", "audio-analysis", "audio-analyzer", "audio-codec", "audio-metrics", "automation-control", "backup", "battery", "binary", "brightness", "button", "calendars", "camera-credentials", "camera-grid-layout", "camera-pipeline-config", "camera-streams", "carbon-monoxide", "climate-control", "color", "composer", "connectivity", "consumables", "contact", "control", "core-blocks", "cover", "database-snapshot", "day-night", "decoder", "detection-pipeline", "device-admin-link", "device-adoption", "device-discovery", "device-manager", "device-ops", "device-state", "device-status", "doorbell", "enum-sensor", "event-emitter", "face-gallery", "fan-control", "feature-probe", "filesystem-browse", "flood", "gas", "humidifier", "humidity-sensor", "image", "image-settings", "integrations", "intercom", "keychain", "keychain-admin", "lawn-mower-control", "llm-runtime", "local-network", "lock-control", "media-player", "metrics-provider", "model-convert", "model-distributor", "motion", "motion-detection", "motion-trigger", "motion-zones", "native-object-detection", "navigation", "network-link", "network-quality", "nodes", "notification-rules", "notifier", "numeric-sensor", "osd", "osd-manager", "pet-feeder", "pipeline-analytics", "pipeline-executor", "pipeline-orchestrator", "pipeline-runner", "plate-gallery", "platform-probe", "power-meter", "presence", "pressure-sensor", "privacy-mask", "ptz", "ptz-autotrack", "reboot", "recording-archive", "recording-export", "recording-onboard", "recording-signal", "scene-monitor", "script-runner", "server-management", "settings-store", "smoke", "snapshot", "sso-bridge", "storage", "storage-migration", "stream-broker", "stream-catalog", "stream-params", "stream-signals", "switch", "system", "tamper", "temperature-sensor", "terminal-session", "toast", "update", "user-management", "vacuum-control", "valve", "vector-store", "vibration", "viewer-ui", "water-heater", "weather", "webrtc-session", "zone-analytics", "zone-rules", "zones"];
514
520
  /** Union of singleton capability names (literal string union). */
515
521
  export type SingletonCapabilityName = typeof SINGLETON_CAPABILITY_NAMES[number];
516
522
  /** Capability names whose mode is `collection` (32 caps). */
@@ -6,7 +6,7 @@
6
6
  * scope+access check inside `protectedProcedure` (see
7
7
  * `server/backend/src/api/trpc/trpc.middleware.ts`).
8
8
  *
9
- * Coverage: 1219 method paths across 165 capabilities.
9
+ * Coverage: 1253 method paths across 167 capabilities.
10
10
  */
11
11
  import type { CapabilityMethodAccess } from '../capabilities/capability-definition.js';
12
12
  export interface MethodAccessRecord {
@@ -6,7 +6,7 @@
6
6
  * system-scope cap that takes a deviceId was previously never device-filtered
7
7
  * — see the generator header).
8
8
  *
9
- * Coverage: 512 methods carry a device reference, of which
9
+ * Coverage: 514 methods carry a device reference, of which
10
10
  * 161 are on SYSTEM-scope caps.
11
11
  *
12
12
  * Top-level fields, number arrays, and one-level arrays of objects carrying
@@ -20,6 +20,7 @@ import type { deviceProviderCapability } from '../capabilities/device-provider.c
20
20
  import type { deviceStateCapability } from '../capabilities/device-state.cap.js';
21
21
  import type { faceGalleryCapability } from '../capabilities/face-gallery.cap.js';
22
22
  import type { integrationsCapability } from '../capabilities/integrations.cap.js';
23
+ import type { keychainAdminCapability } from '../capabilities/keychain-admin.cap.js';
23
24
  import type { llmCapability } from '../capabilities/llm.cap.js';
24
25
  import type { localNetworkCapability } from '../capabilities/local-network.cap.js';
25
26
  import type { meshNetworkCapability } from '../capabilities/mesh-network.cap.js';
@@ -76,6 +77,7 @@ export interface SystemProxy {
76
77
  readonly deviceState: Pick<InferProvider<typeof deviceStateCapability>, 'getAllSnapshots' | 'listClaims'>;
77
78
  readonly faceGallery: Pick<InferProvider<typeof faceGalleryCapability>, 'listIdentities' | 'createIdentity' | 'renameIdentity' | 'deleteIdentity' | 'listIdentitySamples' | 'auditIdentitySamples' | 'removeSample' | 'getFaceMedia' | 'assignFace' | 'unassignFace' | 'deleteFace' | 'assignFaces' | 'unassignFaces' | 'suggestFaceClusters'>;
78
79
  readonly integrations: Pick<InferProvider<typeof integrationsCapability>, 'list' | 'get' | 'getByAddonId' | 'create' | 'update' | 'delete' | 'getSettings' | 'setSettings' | 'getAvailableTypes' | 'testConnection'>;
80
+ readonly keychainAdmin: Pick<InferProvider<typeof keychainAdminCapability>, 'status' | 'listSecrets' | 'listAudit' | 'reveal' | 'deleteOrphans' | 'rotateMasterKey' | 'purgeRetiredKeys' | 'downloadRecoveryKey' | 'resetKeychain'>;
79
81
  readonly llm: Pick<InferProvider<typeof llmCapability>, 'generate' | 'generateVision' | 'cancel' | 'listProfileKinds' | 'listProfiles' | 'upsertProfile' | 'deleteProfile' | 'testProfile' | 'listModels' | 'getDefaults' | 'setDefault' | 'getUsage' | 'listModelCatalog' | 'listRuntimeNodes' | 'listNodeModels' | 'resolveModelRef' | 'installModel' | 'deleteModel' | 'getRuntimeStatus' | 'startRuntime' | 'stopRuntime'>;
80
82
  readonly localNetwork: Pick<InferProvider<typeof localNetworkCapability>, 'list' | 'getPreferred' | 'getConnectionEndpoints' | 'getNotificationEndpoint' | 'setNotificationEndpoint' | 'getViewerEndpoints' | 'setViewerEndpoints' | 'getAddresses' | 'addCustomAddress' | 'removeCustomAddress' | 'setAddressRole' | 'getHubAddresses' | 'getAllowedAddresses' | 'setAllowedAddresses' | 'resetAllowlistToBestMatch' | 'getTlsStatus' | 'regenerateCertificate' | 'uploadCertificate' | 'downloadCa' | 'revertToGeneratedCertificate'>;
81
83
  readonly meshNetwork: Pick<InferProvider<typeof meshNetworkCapability>, 'getStatus' | 'join' | 'startLogin' | 'leave' | 'logout' | 'listPeers' | 'testConnection'>;
@@ -88,8 +90,8 @@ export interface SystemProxy {
88
90
  readonly notificationRules: Pick<InferProvider<typeof notificationRulesCapability>, 'listRules' | 'getRule' | 'createRule' | 'updateRule' | 'deleteRule' | 'setRuleEnabled' | 'listSequences' | 'getSequence' | 'createSequence' | 'updateSequence' | 'deleteSequence' | 'getClipRetentionAsks' | 'listDeviceMutes' | 'testRule' | 'previewStateSummary' | 'getConditionCatalog' | 'getTemplateCatalog' | 'previewTemplate' | 'getHistory' | 'getRuleLastRuns' | 'resolveArtifactUrl' | 'listSnoozes' | 'createSnooze' | 'cancelSnooze' | 'getAlarmConfig' | 'setAlarmConfig' | 'createAlarmProfile' | 'renameAlarmProfile' | 'deleteAlarmProfile' | 'activateAlarmProfile' | 'getAlarmSensors'>;
89
91
  readonly osdManager: Pick<InferProvider<typeof osdManagerCapability>, 'getConditionSupport' | 'copyDeviceConfiguration' | 'listTemplates' | 'upsertTemplate' | 'deleteTemplate'>;
90
92
  readonly pipelineExecutor: Pick<InferProvider<typeof pipelineExecutorCapability>, 'getAvailableEngines' | 'getSelectedEngine' | 'getDefaultSteps' | 'getEngineProvisioning' | 'getVideoPipelineSteps' | 'setVideoPipelineSteps' | 'clearDeviceOverrides' | 'clearModelBoundDeviceOverrides' | 'getInferenceDeviceHealth' | 'rearmInferenceDevice' | 'getSchema' | 'getGlobalSteps' | 'getGlobalPipelineConfig' | 'getOrchestratorConfigSchema' | 'validatePipeline' | 'getCapabilities' | 'getAddonModels' | 'downloadModel' | 'deleteModel' | 'cacheFrameInPool' | 'inferCached' | 'uncacheFrame' | 'getEffectiveTuning' | 'listLoadedEngines' | 'spinEngine' | 'killEngine' | 'listReferenceImages' | 'getReferenceImage' | 'getReferenceAudioFiles' | 'getReferenceAudio' | 'getAudioCapabilities' | 'runAudioTest' | 'getDetectionConfigSchema'>;
91
- readonly pipelineOrchestrator: Pick<InferProvider<typeof pipelineOrchestratorCapability>, 'requestOccupancyLook' | 'pauseForStorageMigration' | 'resumeForStorageMigration' | 'rebalance' | 'getPipelineAssignments' | 'getAgentLoad' | 'getClusterModelChoice' | 'getGlobalMetrics' | 'getCapabilityBindings' | 'setCapabilityBinding' | 'getIngestOwner' | 'getAudioNodeLoad' | 'getAudioAssignments' | 'getAgentSettings' | 'listAgentSettings' | 'removeAgentSettings' | 'setAgentMaxCameras' | 'setAgentCapabilities' | 'setAgentDecodeLimits' | 'setAgentReachableHost' | 'setAgentInferenceDevices' | 'getNodeInferenceDevices' | 'resetNodePipelineDefaults' | 'planAutoTune' | 'applyAutoTune' | 'setLoadBalancingShares' | 'getPlacementStats' | 'suggestShares' | 'getEffectiveShares' | 'setShareSource' | 'getCameraStatuses' | 'setCameraSensors' | 'reconcileFromDisk' | 'getReconcileFromDiskStatus'>;
92
- readonly pipelineRunner: Pick<InferProvider<typeof pipelineRunnerCapability>, 'attachCamera' | 'reportMotion' | 'getLocalLoad' | 'getLocalMetrics' | 'getAllCameraMetrics' | 'getLocalCameras' | 'getNativeCrop' | 'runStatelessStep'>;
93
+ readonly pipelineOrchestrator: Pick<InferProvider<typeof pipelineOrchestratorCapability>, 'requestOccupancyLook' | 'pauseForStorageMigration' | 'resumeForStorageMigration' | 'rebalance' | 'getPipelineAssignments' | 'getAgentLoad' | 'getClusterModelChoice' | 'getGlobalMetrics' | 'getCapabilityBindings' | 'setCapabilityBinding' | 'getIngestOwner' | 'getAudioNodeLoad' | 'getAudioAssignments' | 'getAgentSettings' | 'listAgentSettings' | 'removeAgentSettings' | 'setAgentMaxCameras' | 'setAgentCapabilities' | 'setAgentDecodeLimits' | 'setAgentReachableHost' | 'setAgentInferenceDevices' | 'getNodeInferenceDevices' | 'resetNodePipelineDefaults' | 'planAutoTune' | 'applyAutoTune' | 'setLoadBalancingShares' | 'getPlacementStats' | 'suggestShares' | 'getEffectiveShares' | 'setShareSource' | 'getNodeBenchmarkPreflight' | 'startNodeBenchmark' | 'getNodeBenchmarkStatus' | 'abortNodeBenchmark' | 'getNodeBenchmarkCandidates' | 'listNodeBenchmarkResults' | 'deleteNodeBenchmarkResult' | 'getCameraStatuses' | 'setCameraSensors' | 'reconcileFromDisk' | 'getReconcileFromDiskStatus'>;
94
+ readonly pipelineRunner: Pick<InferProvider<typeof pipelineRunnerCapability>, 'attachCamera' | 'reportMotion' | 'getLocalLoad' | 'getLocalMetrics' | 'getAllCameraMetrics' | 'getLocalCameras' | 'getNativeCrop' | 'runStatelessStep' | 'startNodeBench' | 'getNodeBenchStatus' | 'abortNodeBench'>;
93
95
  readonly plateGallery: Pick<InferProvider<typeof plateGalleryCapability>, 'getPlateMedia' | 'searchPlates' | 'suggestPlateClusters' | 'correctPlateText' | 'deletePlate' | 'listVehicles' | 'createVehicle' | 'renameVehicle' | 'deleteVehicle' | 'listVehicleSamples' | 'removeVehicleSample' | 'assignPlate' | 'unassignPlate' | 'assignPlates' | 'unassignPlates'>;
94
96
  readonly recordingArchive: Pick<InferProvider<typeof recordingArchiveCapability>, 'getAvailabilityBatch' | 'getDaysWithRecordingsBatch' | 'getStorageUsage' | 'listOpsLog' | 'pauseForStorageMigration' | 'resumeForStorageMigration' | 'refreshStorageLocationsForMigration' | 'startStorageMigrationMove' | 'getStorageMigrationMoveStatus' | 'cancelStorageMigrationMove' | 'relocateFootage' | 'listRelocateJobs' | 'getRelocateResidue' | 'reconcileLedgerAgainstDisk' | 'cancelRelocateJob' | 'planStorageRebalance' | 'startStorageRebalance' | 'getPlacement' | 'setDevicePlacement'>;
95
97
  readonly recordingExport: Pick<InferProvider<typeof recordingExportCapability>, 'createExport' | 'getExport' | 'cancelExport' | 'deleteExport' | 'getDownloadUrl' | 'readExportBytes'>;
@@ -11,18 +11,18 @@
11
11
  import { z } from 'zod';
12
12
  /** What kind of target a probe addressed. */
13
13
  export declare const wiringProbeKindSchema: z.ZodEnum<{
14
+ widget: "widget";
14
15
  device: "device";
15
16
  singleton: "singleton";
16
- widget: "widget";
17
17
  }>;
18
18
  export type WiringProbeKind = z.infer<typeof wiringProbeKindSchema>;
19
19
  /** Result of probing a single (cap|widget [, device]) target. */
20
20
  export declare const wiringProbeResultSchema: z.ZodObject<{
21
21
  capName: z.ZodString;
22
22
  kind: z.ZodEnum<{
23
+ widget: "widget";
23
24
  device: "device";
24
25
  singleton: "singleton";
25
- widget: "widget";
26
26
  }>;
27
27
  deviceId: z.ZodOptional<z.ZodNumber>;
28
28
  reachable: z.ZodBoolean;
@@ -36,9 +36,9 @@ export declare const wiringAddonHealthSchema: z.ZodObject<{
36
36
  caps: z.ZodReadonly<z.ZodArray<z.ZodObject<{
37
37
  capName: z.ZodString;
38
38
  kind: z.ZodEnum<{
39
+ widget: "widget";
39
40
  device: "device";
40
41
  singleton: "singleton";
41
- widget: "widget";
42
42
  }>;
43
43
  deviceId: z.ZodOptional<z.ZodNumber>;
44
44
  reachable: z.ZodBoolean;
@@ -48,9 +48,9 @@ export declare const wiringAddonHealthSchema: z.ZodObject<{
48
48
  widgets: z.ZodReadonly<z.ZodArray<z.ZodObject<{
49
49
  capName: z.ZodString;
50
50
  kind: z.ZodEnum<{
51
+ widget: "widget";
51
52
  device: "device";
52
53
  singleton: "singleton";
53
- widget: "widget";
54
54
  }>;
55
55
  deviceId: z.ZodOptional<z.ZodNumber>;
56
56
  reachable: z.ZodBoolean;
@@ -67,9 +67,9 @@ export declare const wiringNodeHealthSchema: z.ZodObject<{
67
67
  caps: z.ZodReadonly<z.ZodArray<z.ZodObject<{
68
68
  capName: z.ZodString;
69
69
  kind: z.ZodEnum<{
70
+ widget: "widget";
70
71
  device: "device";
71
72
  singleton: "singleton";
72
- widget: "widget";
73
73
  }>;
74
74
  deviceId: z.ZodOptional<z.ZodNumber>;
75
75
  reachable: z.ZodBoolean;
@@ -79,9 +79,9 @@ export declare const wiringNodeHealthSchema: z.ZodObject<{
79
79
  widgets: z.ZodReadonly<z.ZodArray<z.ZodObject<{
80
80
  capName: z.ZodString;
81
81
  kind: z.ZodEnum<{
82
+ widget: "widget";
82
83
  device: "device";
83
84
  singleton: "singleton";
84
- widget: "widget";
85
85
  }>;
86
86
  deviceId: z.ZodOptional<z.ZodNumber>;
87
87
  reachable: z.ZodBoolean;
@@ -103,9 +103,9 @@ export declare const wiringHealthSnapshotSchema: z.ZodObject<{
103
103
  caps: z.ZodReadonly<z.ZodArray<z.ZodObject<{
104
104
  capName: z.ZodString;
105
105
  kind: z.ZodEnum<{
106
+ widget: "widget";
106
107
  device: "device";
107
108
  singleton: "singleton";
108
- widget: "widget";
109
109
  }>;
110
110
  deviceId: z.ZodOptional<z.ZodNumber>;
111
111
  reachable: z.ZodBoolean;
@@ -115,9 +115,9 @@ export declare const wiringHealthSnapshotSchema: z.ZodObject<{
115
115
  widgets: z.ZodReadonly<z.ZodArray<z.ZodObject<{
116
116
  capName: z.ZodString;
117
117
  kind: z.ZodEnum<{
118
+ widget: "widget";
118
119
  device: "device";
119
120
  singleton: "singleton";
120
- widget: "widget";
121
121
  }>;
122
122
  deviceId: z.ZodOptional<z.ZodNumber>;
123
123
  reachable: z.ZodBoolean;
package/dist/index.d.ts CHANGED
@@ -48,7 +48,10 @@ export type * from './interfaces/config-port.js';
48
48
  export type * from './interfaces/config-ui.js';
49
49
  export type { HydratedFieldEntry } from './interfaces/config-ui.js';
50
50
  export { collectHydratedFieldEntries, collectHydratedFieldValues, hydrateSchema, resolveHydratedFieldValue, WELL_KNOWN_TAB_MAP, WELL_KNOWN_TABS, } from './interfaces/config-ui.js';
51
- export { collectSecretConfigKeys, isSecretConfigField, REDACTED_SECRET, schemaDeclaresAnyField, } from './interfaces/config-ui-secrets.js';
51
+ export { collectKeychainStoredKeys, collectSecretConfigKeys, isKeychainStoredField, isSecretConfigField, REDACTED_SECRET, schemaDeclaresAnyField, } from './interfaces/config-ui-secrets.js';
52
+ export * from './keychain/index.js';
53
+ export { mergeSecretStatePaths, parseSecretStatePath, type SecretNode, type SecretTree, secretTreeFromPaths, secretTreeFromSchema, } from './addon/secret-paths.js';
54
+ export { collectSecretMarkerRefs, KeychainWriteRefusedError, type ResolvedSecrets, resolveSecretMarkers, type SecretWriteInput, type SecretWriteResult, transformSecretWrite, type UnresolvedReason, type UnresolvedSecret, } from './addon/secret-settings-view.js';
52
55
  export type * from './interfaces/context.js';
53
56
  export * from './interfaces/birth-decision-ledger.js';
54
57
  export * from './interfaces/debug-note-archive.js';
@@ -176,7 +179,7 @@ export { exposeBlockDevices, reconcileBlockDevices } from './device/block-declar
176
179
  export type { IDevice } from './device/device.js';
177
180
  export type { DeviceBinding, DeviceBindingEntry } from './device/device-binding.js';
178
181
  export { DeviceConfig } from './device/device-config.js';
179
- export type { DeviceConstructor, DeviceContext, DeviceManagerApi, IDeviceRegistry, IDeviceRegistryReader, } from './device/device-context.js';
182
+ export type { DeviceConstructor, DeviceContext, DeviceManagerApi, DevicePersistConfigOptions, IDeviceRegistry, IDeviceRegistryReader, } from './device/device-context.js';
180
183
  export type { AccessoryControlInput, AccessoryControlKind, AccessoryControlPick, DeviceControlKind, SensorMapping, } from './device/device-control-resolution.js';
181
184
  export { DEVICE_TYPE_CONTROL_KIND, hasMotionTrigger, isNode, MOTION_TRIGGER_FEATURE, pickAccessoryControl, resolveDeviceControlKind, resolveMutate, SENSOR_FEATURES, SENSOR_MAP, } from './device/device-control-resolution.js';
182
185
  export type { DeviceDoAction, DeviceDoOpenArg } from './device/device-do-actions.js';
@@ -271,6 +274,7 @@ export { applyModelBoundSettings, clearModelBoundOverrides, clearModelBoundSetti
271
274
  export { diffStepSettings, effectiveStepSettings, fieldsPinnedAtValueBelow, fieldUnitKeys, mergeSettingsBags, settingsBelow, settingValuesEqual, type StepSettingSource, type StepSettingsBag, type StepSettingsLayers, stepSettingSource, withFieldFrom, withoutField, } from './pipeline/step-settings-layers.js';
272
275
  export * from './pipeline/auto-tune/index.js';
273
276
  export * from './pipeline/load-balancing/index.js';
277
+ export * from './pipeline/node-benchmark/index.js';
274
278
  export { deriveRootFaceRefineRect, ROOT_FACE_REFINE_INPUT_PX, ROOT_FACE_REFINE_SCALE, } from './pipeline/root-face-crop.js';
275
279
  export { DEFAULT_DETAIL_CROP_CONVENTION, DETAIL_CROP_PADDING_FIELD, DETAIL_CROP_PADDING_KEY, DETAIL_CROP_SECTION_ID, DETAIL_CROP_SQUARE_KEY, type DetailCropConvention, DetailCropConventionSchema, type DetailCropRect, deriveDetailCropRect, FULL_IMAGE_BBOX, type HydratedSettingsSection, type HydratedSettingsView, pickDetailCropConvention, readDetailCropConvention, } from './pipeline/detail-crop.js';
276
280
  export { DEFAULT_NATIVE_LEASE_SETTINGS, NATIVE_LEASE_ACTIVITY_FIELD, NATIVE_LEASE_ACTIVITY_KEY, NATIVE_LEASE_ADMISSION_FIELD, NATIVE_LEASE_ADMISSION_KEY, NATIVE_LEASE_BUDGET_FIELD, NATIVE_LEASE_BUDGET_KEY, NATIVE_LEASE_HOLD_FIELD, NATIVE_LEASE_HOLD_KEY, NATIVE_LEASE_SCENE_BUDGET_FIELD, NATIVE_LEASE_SCENE_BUDGET_KEY, NATIVE_LEASE_SECTION_ID, NATIVE_LEASE_TILE_BUDGET_FIELD, NATIVE_LEASE_TILE_BUDGET_KEY, type NativeLeaseAdmission, NativeLeaseAdmissionSchema, type NativeLeaseKnob, type NativeLeaseNumberKnob, type NativeLeaseSettings, type NativeLeaseSettingsOverride, NativeLeaseSettingsSchema, pickNativeLeaseOverride, readNativeLeaseOverride, } from './pipeline/native-lease.js';