@camstack/types 1.2.443 → 1.2.445

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 (58) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dist/addon.d.ts +5 -1
  3. package/dist/addon.js +21 -5
  4. package/dist/addon.mjs +17 -6
  5. package/dist/automation/export-entities.d.ts +98 -0
  6. package/dist/capabilities/capability-definition.d.ts +1 -1
  7. package/dist/capabilities/composer.cap.d.ts +34 -0
  8. package/dist/capabilities/consumables.cap.d.ts +4 -5
  9. package/dist/capabilities/core-blocks.cap.d.ts +244 -0
  10. package/dist/capabilities/device-export.cap.d.ts +111 -1
  11. package/dist/capabilities/index.d.ts +6 -4
  12. package/dist/capabilities/metrics-provider.cap.d.ts +16 -16
  13. package/dist/capabilities/nodes.cap.d.ts +2 -2
  14. package/dist/capabilities/pet-fountain.cap.d.ts +138 -0
  15. package/dist/capabilities/pipeline-executor.cap.d.ts +6 -22
  16. package/dist/capabilities/pipeline-orchestrator.cap.d.ts +2 -2
  17. package/dist/capabilities/pipeline-runner.cap.d.ts +2 -2
  18. package/dist/capabilities/pipeline-step-input.d.ts +33 -0
  19. package/dist/capabilities/server-management.cap.d.ts +28 -0
  20. package/dist/client.js +820 -799
  21. package/dist/client.mjs +820 -799
  22. package/dist/composition/composition-items.d.ts +3 -3
  23. package/dist/composition/composition-report.d.ts +17 -0
  24. package/dist/composition/composition.d.ts +68 -1
  25. package/dist/composition/index.d.ts +2 -0
  26. package/dist/composition/presets/pet-fountain.d.ts +36 -0
  27. package/dist/composition/validate-forward.d.ts +31 -0
  28. package/dist/{composition-C0dlyG9U.js → composition-CO6Sak-s.js} +49 -5
  29. package/dist/{composition-bIBW5_13.mjs → composition-kSuOifuG.mjs} +32 -6
  30. package/dist/device/cap-vocabulary/entries/appliances.d.ts +1 -1
  31. package/dist/device/device-control-resolution.d.ts +1 -1
  32. package/dist/device/device-type.d.ts +4 -0
  33. package/dist/{err-msg-BCdlR2Li.mjs → err-msg-DWXWc0Di.mjs} +4 -0
  34. package/dist/{err-msg-COHgq7Mb.js → err-msg-EJhsFHqa.js} +4 -0
  35. package/dist/generated/addon-api.d.ts +148 -32
  36. package/dist/generated/addon-cap-facts.d.ts +1 -1
  37. package/dist/generated/cap-status-types.d.ts +3 -1
  38. package/dist/generated/capability-router-map.d.ts +5 -2
  39. package/dist/generated/collection-array-methods.d.ts +2 -2
  40. package/dist/generated/customize-catalog.d.ts +1 -1
  41. package/dist/generated/device-local-state.d.ts +3 -0
  42. package/dist/generated/device-proxy.d.ts +3 -0
  43. package/dist/generated/device-scoped-caps.d.ts +1 -1
  44. package/dist/generated/history-catalog.d.ts +1 -1
  45. package/dist/generated/method-access-map.d.ts +1 -1
  46. package/dist/generated/method-device-selectors.d.ts +1 -1
  47. package/dist/generated/runtime-state-durability.d.ts +1 -1
  48. package/dist/generated/system-proxy.d.ts +2 -2
  49. package/dist/index.d.ts +1 -0
  50. package/dist/index.js +1465 -603
  51. package/dist/index.mjs +1433 -592
  52. package/dist/interfaces/agent.d.ts +6 -2
  53. package/dist/interfaces/event-bus.d.ts +1 -1
  54. package/dist/node.js +2 -2
  55. package/dist/node.mjs +2 -2
  56. package/dist/{sleep-C_u6cEAJ.mjs → sleep-6eG9C8Xl.mjs} +223 -72
  57. package/dist/{sleep-E7qAQwTE.js → sleep-UXDHn-oJ.js} +246 -71
  58. package/package.json +1 -1
@@ -101,6 +101,7 @@ import type { oidcConnectionsCapability } from '../capabilities/oidc-connections
101
101
  import type { osdManagerCapability } from '../capabilities/osd-manager.cap.js';
102
102
  import type { osdCapability } from '../capabilities/osd.cap.js';
103
103
  import type { petFeederCapability } from '../capabilities/pet-feeder.cap.js';
104
+ import type { petFountainCapability } from '../capabilities/pet-fountain.cap.js';
104
105
  import type { pipelineAnalyticsCapability } from '../capabilities/pipeline-analytics.cap.js';
105
106
  import type { pipelineExecutorCapability } from '../capabilities/pipeline-executor.cap.js';
106
107
  import type { pipelineOrchestratorCapability } from '../capabilities/pipeline-orchestrator.cap.js';
@@ -2477,6 +2478,36 @@ export type AppRouter = TrpcCoreRouter<{
2477
2478
  output: z.infer<typeof deviceExportCapability.methods.unexposeDevice.output>;
2478
2479
  meta: object;
2479
2480
  }>;
2481
+ listSupportedEntityKinds: TRPCQueryProcedure<{
2482
+ input: {
2483
+ nodeId?: string | undefined;
2484
+ addonId?: string | undefined;
2485
+ } | undefined;
2486
+ output: z.infer<typeof deviceExportCapability.methods.listSupportedEntityKinds.output>;
2487
+ meta: object;
2488
+ }>;
2489
+ listExposedEntities: TRPCQueryProcedure<{
2490
+ input: {
2491
+ nodeId?: string | undefined;
2492
+ addonId?: string | undefined;
2493
+ } | undefined;
2494
+ output: z.infer<typeof deviceExportCapability.methods.listExposedEntities.output>;
2495
+ meta: object;
2496
+ }>;
2497
+ exposeEntity: TRPCMutationProcedure<{
2498
+ input: {
2499
+ [x: string]: unknown;
2500
+ } & z.input<typeof deviceExportCapability.methods.exposeEntity.input>;
2501
+ output: z.infer<typeof deviceExportCapability.methods.exposeEntity.output>;
2502
+ meta: object;
2503
+ }>;
2504
+ unexposeEntity: TRPCMutationProcedure<{
2505
+ input: {
2506
+ [x: string]: unknown;
2507
+ } & z.input<typeof deviceExportCapability.methods.unexposeEntity.input>;
2508
+ output: z.infer<typeof deviceExportCapability.methods.unexposeEntity.output>;
2509
+ meta: object;
2510
+ }>;
2480
2511
  }>>;
2481
2512
  deviceExtension: TRPCBuiltRouter<{
2482
2513
  ctx: TrpcContext;
@@ -6417,6 +6448,55 @@ export type AppRouter = TrpcCoreRouter<{
6417
6448
  meta: object;
6418
6449
  }>;
6419
6450
  }>>;
6451
+ petFountain: TRPCBuiltRouter<{
6452
+ ctx: TrpcContext;
6453
+ meta: object;
6454
+ errorShape: AugmentedErrorShape;
6455
+ transformer: true;
6456
+ }, TRPCDecorateCreateRouterOptions<{
6457
+ getStatus: TRPCQueryProcedure<{
6458
+ input: {
6459
+ [x: string]: unknown;
6460
+ } & z.input<typeof DEVICE_STATUS_METHOD.getStatus.input>;
6461
+ output: z.infer<typeof DEVICE_STATUS_METHOD.getStatus.output>;
6462
+ meta: object;
6463
+ }>;
6464
+ setPump: TRPCMutationProcedure<{
6465
+ input: {
6466
+ [x: string]: unknown;
6467
+ } & z.input<typeof petFountainCapability.methods.setPump.input>;
6468
+ output: z.infer<typeof petFountainCapability.methods.setPump.output>;
6469
+ meta: object;
6470
+ }>;
6471
+ setPumpInterval: TRPCMutationProcedure<{
6472
+ input: {
6473
+ [x: string]: unknown;
6474
+ } & z.input<typeof petFountainCapability.methods.setPumpInterval.input>;
6475
+ output: z.infer<typeof petFountainCapability.methods.setPumpInterval.output>;
6476
+ meta: object;
6477
+ }>;
6478
+ setPumpOnMinutes: TRPCMutationProcedure<{
6479
+ input: {
6480
+ [x: string]: unknown;
6481
+ } & z.input<typeof petFountainCapability.methods.setPumpOnMinutes.input>;
6482
+ output: z.infer<typeof petFountainCapability.methods.setPumpOnMinutes.output>;
6483
+ meta: object;
6484
+ }>;
6485
+ setPumpOffMinutes: TRPCMutationProcedure<{
6486
+ input: {
6487
+ [x: string]: unknown;
6488
+ } & z.input<typeof petFountainCapability.methods.setPumpOffMinutes.input>;
6489
+ output: z.infer<typeof petFountainCapability.methods.setPumpOffMinutes.output>;
6490
+ meta: object;
6491
+ }>;
6492
+ resetDailyConsumption: TRPCMutationProcedure<{
6493
+ input: {
6494
+ [x: string]: unknown;
6495
+ } & z.input<typeof petFountainCapability.methods.resetDailyConsumption.input>;
6496
+ output: z.infer<typeof petFountainCapability.methods.resetDailyConsumption.output>;
6497
+ meta: object;
6498
+ }>;
6499
+ }>>;
6420
6500
  pipelineAnalytics: TRPCBuiltRouter<{
6421
6501
  ctx: TrpcContext;
6422
6502
  meta: object;
@@ -9007,6 +9087,20 @@ export type AppRouter = TrpcCoreRouter<{
9007
9087
  output: z.infer<typeof serverManagementCapability.methods.restartServer.output>;
9008
9088
  meta: object;
9009
9089
  }>;
9090
+ getLaunchOverrides: TRPCQueryProcedure<{
9091
+ input: {
9092
+ nodeId?: string | undefined;
9093
+ } | undefined;
9094
+ output: z.infer<typeof serverManagementCapability.methods.getLaunchOverrides.output>;
9095
+ meta: object;
9096
+ }>;
9097
+ setLaunchOverrides: TRPCMutationProcedure<{
9098
+ input: {
9099
+ [x: string]: unknown;
9100
+ } & z.input<typeof serverManagementCapability.methods.setLaunchOverrides.input>;
9101
+ output: z.infer<typeof serverManagementCapability.methods.setLaunchOverrides.output>;
9102
+ meta: object;
9103
+ }>;
9010
9104
  }>>;
9011
9105
  settingsStore: TRPCBuiltRouter<{
9012
9106
  ctx: TrpcContext;
@@ -12256,6 +12350,17 @@ export type AppRouter = TrpcCoreRouter<{
12256
12350
  historyRemoved: boolean;
12257
12351
  registryRemoved: boolean;
12258
12352
  stillListed: boolean;
12353
+ certificates: {
12354
+ outcome: "not-attempted";
12355
+ } | {
12356
+ outcome: "revoked";
12357
+ serials: string[];
12358
+ } | {
12359
+ outcome: "registry-unavailable";
12360
+ } | {
12361
+ outcome: "failed";
12362
+ error: string;
12363
+ };
12259
12364
  message: string;
12260
12365
  };
12261
12366
  meta: object;
@@ -12279,6 +12384,17 @@ export type AppRouter = TrpcCoreRouter<{
12279
12384
  historyRemoved: boolean;
12280
12385
  registryRemoved: boolean;
12281
12386
  stillListed: boolean;
12387
+ certificates: {
12388
+ outcome: "not-attempted";
12389
+ } | {
12390
+ outcome: "revoked";
12391
+ serials: string[];
12392
+ } | {
12393
+ outcome: "registry-unavailable";
12394
+ } | {
12395
+ outcome: "failed";
12396
+ error: string;
12397
+ };
12282
12398
  message: string;
12283
12399
  };
12284
12400
  meta: object;
@@ -12366,7 +12482,7 @@ export type AppRouter = TrpcCoreRouter<{
12366
12482
  notAfter: number;
12367
12483
  issuedAt: number;
12368
12484
  issuedVia: "enroll" | "pairing" | "renewal" | "boot" | "observed";
12369
- status: "valid" | "expiring" | "expired" | "revoked";
12485
+ status: "revoked" | "valid" | "expiring" | "expired";
12370
12486
  revokedAt: number | null;
12371
12487
  revokedReason: string | null;
12372
12488
  } | null;
@@ -12378,7 +12494,7 @@ export type AppRouter = TrpcCoreRouter<{
12378
12494
  notAfter: number;
12379
12495
  issuedAt: number;
12380
12496
  issuedVia: "enroll" | "pairing" | "renewal" | "boot" | "observed";
12381
- status: "valid" | "expiring" | "expired" | "revoked";
12497
+ status: "revoked" | "valid" | "expiring" | "expired";
12382
12498
  revokedAt: number | null;
12383
12499
  revokedReason: string | null;
12384
12500
  }[];
@@ -12494,7 +12610,7 @@ export type AppRouter = TrpcCoreRouter<{
12494
12610
  notAfter: number;
12495
12611
  issuedAt: number;
12496
12612
  issuedVia: "enroll" | "pairing" | "renewal" | "boot" | "observed";
12497
- status: "valid" | "expiring" | "expired" | "revoked";
12613
+ status: "revoked" | "valid" | "expiring" | "expired";
12498
12614
  revokedAt: number | null;
12499
12615
  revokedReason: string | null;
12500
12616
  } | null;
@@ -12506,7 +12622,7 @@ export type AppRouter = TrpcCoreRouter<{
12506
12622
  notAfter: number;
12507
12623
  issuedAt: number;
12508
12624
  issuedVia: "enroll" | "pairing" | "renewal" | "boot" | "observed";
12509
- status: "valid" | "expiring" | "expired" | "revoked";
12625
+ status: "revoked" | "valid" | "expiring" | "expired";
12510
12626
  revokedAt: number | null;
12511
12627
  revokedReason: string | null;
12512
12628
  }[];
@@ -12719,7 +12835,7 @@ export type AppRouter = TrpcCoreRouter<{
12719
12835
  port: number;
12720
12836
  };
12721
12837
  code: string;
12722
- state: "expired" | "paired" | "awaiting-confirmation" | "completing" | "rejected" | "failed";
12838
+ state: "failed" | "expired" | "paired" | "awaiting-confirmation" | "completing" | "rejected";
12723
12839
  hubConfirmed: boolean;
12724
12840
  agentConfirmed: boolean;
12725
12841
  expiresAt: number;
@@ -12753,7 +12869,7 @@ export type AppRouter = TrpcCoreRouter<{
12753
12869
  port: number;
12754
12870
  };
12755
12871
  code: string;
12756
- state: "expired" | "paired" | "awaiting-confirmation" | "completing" | "rejected" | "failed";
12872
+ state: "failed" | "expired" | "paired" | "awaiting-confirmation" | "completing" | "rejected";
12757
12873
  hubConfirmed: boolean;
12758
12874
  agentConfirmed: boolean;
12759
12875
  expiresAt: number;
@@ -12775,7 +12891,7 @@ export type AppRouter = TrpcCoreRouter<{
12775
12891
  port: number;
12776
12892
  };
12777
12893
  code: string;
12778
- state: "expired" | "paired" | "awaiting-confirmation" | "completing" | "rejected" | "failed";
12894
+ state: "failed" | "expired" | "paired" | "awaiting-confirmation" | "completing" | "rejected";
12779
12895
  hubConfirmed: boolean;
12780
12896
  agentConfirmed: boolean;
12781
12897
  expiresAt: number;
@@ -12795,7 +12911,7 @@ export type AppRouter = TrpcCoreRouter<{
12795
12911
  port: number;
12796
12912
  };
12797
12913
  code: string;
12798
- state: "expired" | "paired" | "awaiting-confirmation" | "completing" | "rejected" | "failed";
12914
+ state: "failed" | "expired" | "paired" | "awaiting-confirmation" | "completing" | "rejected";
12799
12915
  hubConfirmed: boolean;
12800
12916
  agentConfirmed: boolean;
12801
12917
  expiresAt: number;
@@ -12813,7 +12929,7 @@ export type AppRouter = TrpcCoreRouter<{
12813
12929
  port: number;
12814
12930
  };
12815
12931
  code: string;
12816
- state: "expired" | "paired" | "awaiting-confirmation" | "completing" | "rejected" | "failed";
12932
+ state: "failed" | "expired" | "paired" | "awaiting-confirmation" | "completing" | "rejected";
12817
12933
  hubConfirmed: boolean;
12818
12934
  agentConfirmed: boolean;
12819
12935
  expiresAt: number;
@@ -12834,7 +12950,7 @@ export type AppRouter = TrpcCoreRouter<{
12834
12950
  port: number;
12835
12951
  };
12836
12952
  code: string;
12837
- state: "expired" | "paired" | "awaiting-confirmation" | "completing" | "rejected" | "failed";
12953
+ state: "failed" | "expired" | "paired" | "awaiting-confirmation" | "completing" | "rejected";
12838
12954
  hubConfirmed: boolean;
12839
12955
  agentConfirmed: boolean;
12840
12956
  expiresAt: number;
@@ -12854,7 +12970,7 @@ export type AppRouter = TrpcCoreRouter<{
12854
12970
  port: number;
12855
12971
  };
12856
12972
  code: string;
12857
- state: "expired" | "paired" | "awaiting-confirmation" | "completing" | "rejected" | "failed";
12973
+ state: "failed" | "expired" | "paired" | "awaiting-confirmation" | "completing" | "rejected";
12858
12974
  hubConfirmed: boolean;
12859
12975
  agentConfirmed: boolean;
12860
12976
  expiresAt: number;
@@ -12899,7 +13015,7 @@ export type AppRouter = TrpcCoreRouter<{
12899
13015
  port: number;
12900
13016
  };
12901
13017
  code: string;
12902
- state: "expired" | "paired" | "awaiting-confirmation" | "completing" | "rejected" | "failed";
13018
+ state: "failed" | "expired" | "paired" | "awaiting-confirmation" | "completing" | "rejected";
12903
13019
  hubConfirmed: boolean;
12904
13020
  agentConfirmed: boolean;
12905
13021
  expiresAt: number;
@@ -12933,7 +13049,7 @@ export type AppRouter = TrpcCoreRouter<{
12933
13049
  port: number;
12934
13050
  };
12935
13051
  code: string;
12936
- state: "expired" | "paired" | "awaiting-confirmation" | "completing" | "rejected" | "failed";
13052
+ state: "failed" | "expired" | "paired" | "awaiting-confirmation" | "completing" | "rejected";
12937
13053
  hubConfirmed: boolean;
12938
13054
  agentConfirmed: boolean;
12939
13055
  expiresAt: number;
@@ -12955,7 +13071,7 @@ export type AppRouter = TrpcCoreRouter<{
12955
13071
  port: number;
12956
13072
  };
12957
13073
  code: string;
12958
- state: "expired" | "paired" | "awaiting-confirmation" | "completing" | "rejected" | "failed";
13074
+ state: "failed" | "expired" | "paired" | "awaiting-confirmation" | "completing" | "rejected";
12959
13075
  hubConfirmed: boolean;
12960
13076
  agentConfirmed: boolean;
12961
13077
  expiresAt: number;
@@ -12975,7 +13091,7 @@ export type AppRouter = TrpcCoreRouter<{
12975
13091
  port: number;
12976
13092
  };
12977
13093
  code: string;
12978
- state: "expired" | "paired" | "awaiting-confirmation" | "completing" | "rejected" | "failed";
13094
+ state: "failed" | "expired" | "paired" | "awaiting-confirmation" | "completing" | "rejected";
12979
13095
  hubConfirmed: boolean;
12980
13096
  agentConfirmed: boolean;
12981
13097
  expiresAt: number;
@@ -12993,7 +13109,7 @@ export type AppRouter = TrpcCoreRouter<{
12993
13109
  port: number;
12994
13110
  };
12995
13111
  code: string;
12996
- state: "expired" | "paired" | "awaiting-confirmation" | "completing" | "rejected" | "failed";
13112
+ state: "failed" | "expired" | "paired" | "awaiting-confirmation" | "completing" | "rejected";
12997
13113
  hubConfirmed: boolean;
12998
13114
  agentConfirmed: boolean;
12999
13115
  expiresAt: number;
@@ -13014,7 +13130,7 @@ export type AppRouter = TrpcCoreRouter<{
13014
13130
  port: number;
13015
13131
  };
13016
13132
  code: string;
13017
- state: "expired" | "paired" | "awaiting-confirmation" | "completing" | "rejected" | "failed";
13133
+ state: "failed" | "expired" | "paired" | "awaiting-confirmation" | "completing" | "rejected";
13018
13134
  hubConfirmed: boolean;
13019
13135
  agentConfirmed: boolean;
13020
13136
  expiresAt: number;
@@ -13034,7 +13150,7 @@ export type AppRouter = TrpcCoreRouter<{
13034
13150
  port: number;
13035
13151
  };
13036
13152
  code: string;
13037
- state: "expired" | "paired" | "awaiting-confirmation" | "completing" | "rejected" | "failed";
13153
+ state: "failed" | "expired" | "paired" | "awaiting-confirmation" | "completing" | "rejected";
13038
13154
  hubConfirmed: boolean;
13039
13155
  agentConfirmed: boolean;
13040
13156
  expiresAt: number;
@@ -13466,7 +13582,7 @@ export type AppRouter = TrpcCoreRouter<{
13466
13582
  ok: true;
13467
13583
  } | {
13468
13584
  ok: false;
13469
- reason: "unavailable" | "expired" | "revoked" | "bad-public-key" | "bad-signature" | "code-invalid" | "invalid-certificate" | "nonce-invalid" | "rate-limited" | "self-enrollment-disabled" | "step-up-required" | "superseded" | "unknown-credential" | "user-gone";
13585
+ reason: "revoked" | "unavailable" | "expired" | "bad-public-key" | "bad-signature" | "code-invalid" | "invalid-certificate" | "nonce-invalid" | "rate-limited" | "self-enrollment-disabled" | "step-up-required" | "superseded" | "unknown-credential" | "user-gone";
13470
13586
  definitive: boolean;
13471
13587
  retryAfterSeconds?: number | undefined;
13472
13588
  };
@@ -13482,7 +13598,7 @@ export type AppRouter = TrpcCoreRouter<{
13482
13598
  ok: true;
13483
13599
  } | {
13484
13600
  ok: false;
13485
- reason: "unavailable" | "expired" | "revoked" | "bad-public-key" | "bad-signature" | "code-invalid" | "invalid-certificate" | "nonce-invalid" | "rate-limited" | "self-enrollment-disabled" | "step-up-required" | "superseded" | "unknown-credential" | "user-gone";
13601
+ reason: "revoked" | "unavailable" | "expired" | "bad-public-key" | "bad-signature" | "code-invalid" | "invalid-certificate" | "nonce-invalid" | "rate-limited" | "self-enrollment-disabled" | "step-up-required" | "superseded" | "unknown-credential" | "user-gone";
13486
13602
  definitive: boolean;
13487
13603
  retryAfterSeconds?: number | undefined;
13488
13604
  };
@@ -13497,7 +13613,7 @@ export type AppRouter = TrpcCoreRouter<{
13497
13613
  };
13498
13614
  output: {
13499
13615
  ok: false;
13500
- reason: "unavailable" | "expired" | "revoked" | "bad-public-key" | "bad-signature" | "code-invalid" | "invalid-certificate" | "nonce-invalid" | "rate-limited" | "self-enrollment-disabled" | "step-up-required" | "superseded" | "unknown-credential" | "user-gone";
13616
+ reason: "revoked" | "unavailable" | "expired" | "bad-public-key" | "bad-signature" | "code-invalid" | "invalid-certificate" | "nonce-invalid" | "rate-limited" | "self-enrollment-disabled" | "step-up-required" | "superseded" | "unknown-credential" | "user-gone";
13501
13617
  definitive: boolean;
13502
13618
  retryAfterSeconds?: number | undefined;
13503
13619
  } | {
@@ -13531,7 +13647,7 @@ export type AppRouter = TrpcCoreRouter<{
13531
13647
  ok: true;
13532
13648
  } | {
13533
13649
  ok: false;
13534
- reason: "unavailable" | "expired" | "revoked" | "bad-public-key" | "bad-signature" | "code-invalid" | "invalid-certificate" | "nonce-invalid" | "rate-limited" | "self-enrollment-disabled" | "step-up-required" | "superseded" | "unknown-credential" | "user-gone";
13650
+ reason: "revoked" | "unavailable" | "expired" | "bad-public-key" | "bad-signature" | "code-invalid" | "invalid-certificate" | "nonce-invalid" | "rate-limited" | "self-enrollment-disabled" | "step-up-required" | "superseded" | "unknown-credential" | "user-gone";
13535
13651
  definitive: boolean;
13536
13652
  retryAfterSeconds?: number | undefined;
13537
13653
  };
@@ -13549,7 +13665,7 @@ export type AppRouter = TrpcCoreRouter<{
13549
13665
  sessionsEnded: number;
13550
13666
  } | {
13551
13667
  ok: false;
13552
- reason: "unavailable" | "expired" | "revoked" | "bad-public-key" | "bad-signature" | "code-invalid" | "invalid-certificate" | "nonce-invalid" | "rate-limited" | "self-enrollment-disabled" | "step-up-required" | "superseded" | "unknown-credential" | "user-gone";
13668
+ reason: "revoked" | "unavailable" | "expired" | "bad-public-key" | "bad-signature" | "code-invalid" | "invalid-certificate" | "nonce-invalid" | "rate-limited" | "self-enrollment-disabled" | "step-up-required" | "superseded" | "unknown-credential" | "user-gone";
13553
13669
  definitive: boolean;
13554
13670
  retryAfterSeconds?: number | undefined;
13555
13671
  };
@@ -13573,7 +13689,7 @@ export type AppRouter = TrpcCoreRouter<{
13573
13689
  lastUsedFrom: string | null;
13574
13690
  revokedAt: number | null;
13575
13691
  revokedBy: string | null;
13576
- status: "expired" | "revoked" | "active";
13692
+ status: "revoked" | "expired" | "active";
13577
13693
  }[];
13578
13694
  meta: object;
13579
13695
  }>;
@@ -13628,7 +13744,7 @@ export type AppRouter = TrpcCoreRouter<{
13628
13744
  ok: true;
13629
13745
  } | {
13630
13746
  ok: false;
13631
- reason: "unavailable" | "expired" | "revoked" | "bad-public-key" | "bad-signature" | "code-invalid" | "invalid-certificate" | "nonce-invalid" | "rate-limited" | "self-enrollment-disabled" | "step-up-required" | "superseded" | "unknown-credential" | "user-gone";
13747
+ reason: "revoked" | "unavailable" | "expired" | "bad-public-key" | "bad-signature" | "code-invalid" | "invalid-certificate" | "nonce-invalid" | "rate-limited" | "self-enrollment-disabled" | "step-up-required" | "superseded" | "unknown-credential" | "user-gone";
13632
13748
  definitive: boolean;
13633
13749
  retryAfterSeconds?: number | undefined;
13634
13750
  };
@@ -14461,7 +14577,7 @@ export type AppRouter = TrpcCoreRouter<{
14461
14577
  ok: true;
14462
14578
  } | {
14463
14579
  ok: false;
14464
- reason: "unavailable" | "expired" | "revoked" | "bad-public-key" | "bad-signature" | "code-invalid" | "invalid-certificate" | "nonce-invalid" | "rate-limited" | "self-enrollment-disabled" | "step-up-required" | "superseded" | "unknown-credential" | "user-gone";
14580
+ reason: "revoked" | "unavailable" | "expired" | "bad-public-key" | "bad-signature" | "code-invalid" | "invalid-certificate" | "nonce-invalid" | "rate-limited" | "self-enrollment-disabled" | "step-up-required" | "superseded" | "unknown-credential" | "user-gone";
14465
14581
  definitive: boolean;
14466
14582
  retryAfterSeconds?: number | undefined;
14467
14583
  };
@@ -14477,7 +14593,7 @@ export type AppRouter = TrpcCoreRouter<{
14477
14593
  ok: true;
14478
14594
  } | {
14479
14595
  ok: false;
14480
- reason: "unavailable" | "expired" | "revoked" | "bad-public-key" | "bad-signature" | "code-invalid" | "invalid-certificate" | "nonce-invalid" | "rate-limited" | "self-enrollment-disabled" | "step-up-required" | "superseded" | "unknown-credential" | "user-gone";
14596
+ reason: "revoked" | "unavailable" | "expired" | "bad-public-key" | "bad-signature" | "code-invalid" | "invalid-certificate" | "nonce-invalid" | "rate-limited" | "self-enrollment-disabled" | "step-up-required" | "superseded" | "unknown-credential" | "user-gone";
14481
14597
  definitive: boolean;
14482
14598
  retryAfterSeconds?: number | undefined;
14483
14599
  };
@@ -14492,7 +14608,7 @@ export type AppRouter = TrpcCoreRouter<{
14492
14608
  };
14493
14609
  output: {
14494
14610
  ok: false;
14495
- reason: "unavailable" | "expired" | "revoked" | "bad-public-key" | "bad-signature" | "code-invalid" | "invalid-certificate" | "nonce-invalid" | "rate-limited" | "self-enrollment-disabled" | "step-up-required" | "superseded" | "unknown-credential" | "user-gone";
14611
+ reason: "revoked" | "unavailable" | "expired" | "bad-public-key" | "bad-signature" | "code-invalid" | "invalid-certificate" | "nonce-invalid" | "rate-limited" | "self-enrollment-disabled" | "step-up-required" | "superseded" | "unknown-credential" | "user-gone";
14496
14612
  definitive: boolean;
14497
14613
  retryAfterSeconds?: number | undefined;
14498
14614
  } | {
@@ -14526,7 +14642,7 @@ export type AppRouter = TrpcCoreRouter<{
14526
14642
  ok: true;
14527
14643
  } | {
14528
14644
  ok: false;
14529
- reason: "unavailable" | "expired" | "revoked" | "bad-public-key" | "bad-signature" | "code-invalid" | "invalid-certificate" | "nonce-invalid" | "rate-limited" | "self-enrollment-disabled" | "step-up-required" | "superseded" | "unknown-credential" | "user-gone";
14645
+ reason: "revoked" | "unavailable" | "expired" | "bad-public-key" | "bad-signature" | "code-invalid" | "invalid-certificate" | "nonce-invalid" | "rate-limited" | "self-enrollment-disabled" | "step-up-required" | "superseded" | "unknown-credential" | "user-gone";
14530
14646
  definitive: boolean;
14531
14647
  retryAfterSeconds?: number | undefined;
14532
14648
  };
@@ -14544,7 +14660,7 @@ export type AppRouter = TrpcCoreRouter<{
14544
14660
  sessionsEnded: number;
14545
14661
  } | {
14546
14662
  ok: false;
14547
- reason: "unavailable" | "expired" | "revoked" | "bad-public-key" | "bad-signature" | "code-invalid" | "invalid-certificate" | "nonce-invalid" | "rate-limited" | "self-enrollment-disabled" | "step-up-required" | "superseded" | "unknown-credential" | "user-gone";
14663
+ reason: "revoked" | "unavailable" | "expired" | "bad-public-key" | "bad-signature" | "code-invalid" | "invalid-certificate" | "nonce-invalid" | "rate-limited" | "self-enrollment-disabled" | "step-up-required" | "superseded" | "unknown-credential" | "user-gone";
14548
14664
  definitive: boolean;
14549
14665
  retryAfterSeconds?: number | undefined;
14550
14666
  };
@@ -14568,7 +14684,7 @@ export type AppRouter = TrpcCoreRouter<{
14568
14684
  lastUsedFrom: string | null;
14569
14685
  revokedAt: number | null;
14570
14686
  revokedBy: string | null;
14571
- status: "expired" | "revoked" | "active";
14687
+ status: "revoked" | "expired" | "active";
14572
14688
  }[];
14573
14689
  meta: object;
14574
14690
  }>;
@@ -14623,7 +14739,7 @@ export type AppRouter = TrpcCoreRouter<{
14623
14739
  ok: true;
14624
14740
  } | {
14625
14741
  ok: false;
14626
- reason: "unavailable" | "expired" | "revoked" | "bad-public-key" | "bad-signature" | "code-invalid" | "invalid-certificate" | "nonce-invalid" | "rate-limited" | "self-enrollment-disabled" | "step-up-required" | "superseded" | "unknown-credential" | "user-gone";
14742
+ reason: "revoked" | "unavailable" | "expired" | "bad-public-key" | "bad-signature" | "code-invalid" | "invalid-certificate" | "nonce-invalid" | "rate-limited" | "self-enrollment-disabled" | "step-up-required" | "superseded" | "unknown-credential" | "user-gone";
14627
14743
  definitive: boolean;
14628
14744
  retryAfterSeconds?: number | undefined;
14629
14745
  };
@@ -5,7 +5,7 @@
5
5
  * `ALL_CAPABILITY_DEFINITIONS` (the whole Zod schema graph, ~+100 MB heap per
6
6
  * runner). See docs/decisions/adr-0028.md.
7
7
  *
8
- * Coverage: 1 advance-derived caps, 77 caps with 360 state leaves.
8
+ * Coverage: 1 advance-derived caps, 78 caps with 372 state leaves.
9
9
  */
10
10
  /** A bindable scalar in a capability's runtime state. */
11
11
  export interface CapStateLeaf {
@@ -54,6 +54,7 @@ import type { NotifierStatusSchema } from '../capabilities/notifier.cap.js';
54
54
  import type { NumericSensorStatusSchema } from '../capabilities/numeric-sensor.cap.js';
55
55
  import type { OsdStatusSchema } from '../capabilities/osd.cap.js';
56
56
  import type { PetFeederStatusSchema } from '../capabilities/pet-feeder.cap.js';
57
+ import type { PetFountainStatusSchema } from '../capabilities/pet-fountain.cap.js';
57
58
  import type { PowerMeterStatusSchema } from '../capabilities/power-meter.cap.js';
58
59
  import type { PresenceStatusSchema } from '../capabilities/presence.cap.js';
59
60
  import type { PressureSensorStatusSchema } from '../capabilities/pressure-sensor.cap.js';
@@ -139,6 +140,7 @@ export type CapStatusTypeMap = {
139
140
  readonly 'numeric-sensor': z.infer<typeof NumericSensorStatusSchema>;
140
141
  readonly 'osd': z.infer<typeof OsdStatusSchema>;
141
142
  readonly 'pet-feeder': z.infer<typeof PetFeederStatusSchema>;
143
+ readonly 'pet-fountain': z.infer<typeof PetFountainStatusSchema>;
142
144
  readonly 'power-meter': z.infer<typeof PowerMeterStatusSchema>;
143
145
  readonly 'presence': z.infer<typeof PresenceStatusSchema>;
144
146
  readonly 'pressure-sensor': z.infer<typeof PressureSensorStatusSchema>;
@@ -171,4 +173,4 @@ export type CapNameWithStatus = keyof CapStatusTypeMap;
171
173
  * aggregator to enumerate caps whose `status` should be polled +
172
174
  * streamed via `subscribeDeviceStatusAggregate`.
173
175
  */
174
- export declare const CAP_NAMES_WITH_STATUS: readonly ["accessories", "air-quality-sensor", "alarm-panel", "ambient-light-sensor", "automation-control", "battery", "binary", "brightness", "broker", "camera-credentials", "carbon-monoxide", "climate-control", "color", "connectivity", "consumables", "contact", "control", "cover", "day-night", "device-adoption", "device-discovery", "device-export", "device-status", "dishwasher", "doorbell", "enum-sensor", "event-emitter", "fan-control", "feature-probe", "flood", "gas", "group-active", "group-commands", "group-status", "heating-valve", "humidifier", "humidity-sensor", "image", "image-settings", "intercom", "lawn-mower-control", "lock-control", "media-player", "meter", "motion", "motion-trigger", "motion-zones", "mqtt-broker", "native-object-detection", "navigation", "network-link", "notifier", "numeric-sensor", "osd", "pet-feeder", "power-meter", "presence", "pressure-sensor", "privacy-mask", "ptz", "ptz-autotrack", "recording-archive", "recording-onboard", "recording-signal", "running-state", "scene-monitor", "script-runner", "smoke", "snapshot", "stream-params", "switch", "tamper", "temperature-sensor", "update", "vacuum-control", "valve", "vibration", "water-heater", "weather"];
176
+ export declare const CAP_NAMES_WITH_STATUS: readonly ["accessories", "air-quality-sensor", "alarm-panel", "ambient-light-sensor", "automation-control", "battery", "binary", "brightness", "broker", "camera-credentials", "carbon-monoxide", "climate-control", "color", "connectivity", "consumables", "contact", "control", "cover", "day-night", "device-adoption", "device-discovery", "device-export", "device-status", "dishwasher", "doorbell", "enum-sensor", "event-emitter", "fan-control", "feature-probe", "flood", "gas", "group-active", "group-commands", "group-status", "heating-valve", "humidifier", "humidity-sensor", "image", "image-settings", "intercom", "lawn-mower-control", "lock-control", "media-player", "meter", "motion", "motion-trigger", "motion-zones", "mqtt-broker", "native-object-detection", "navigation", "network-link", "notifier", "numeric-sensor", "osd", "pet-feeder", "pet-fountain", "power-meter", "presence", "pressure-sensor", "privacy-mask", "ptz", "ptz-autotrack", "recording-archive", "recording-onboard", "recording-signal", "running-state", "scene-monitor", "script-runner", "smoke", "snapshot", "stream-params", "switch", "tamper", "temperature-sensor", "update", "vacuum-control", "valve", "vibration", "water-heater", "weather"];
@@ -124,6 +124,7 @@ export { oidcConnectionsCapability } from '../capabilities/oidc-connections.cap.
124
124
  export { osdCapability } from '../capabilities/osd.cap.js';
125
125
  export { osdManagerCapability } from '../capabilities/osd-manager.cap.js';
126
126
  export { petFeederCapability } from '../capabilities/pet-feeder.cap.js';
127
+ export { petFountainCapability } from '../capabilities/pet-fountain.cap.js';
127
128
  export { pipelineAnalyticsCapability } from '../capabilities/pipeline-analytics.cap.js';
128
129
  export { pipelineExecutorCapability } from '../capabilities/pipeline-executor.cap.js';
129
130
  export { pipelineOrchestratorCapability } from '../capabilities/pipeline-orchestrator.cap.js';
@@ -316,6 +317,7 @@ export declare const CAPABILITY_NAMES: {
316
317
  readonly osd: 'osd';
317
318
  readonly osdManager: 'osd-manager';
318
319
  readonly petFeeder: 'pet-feeder';
320
+ readonly petFountain: 'pet-fountain';
319
321
  readonly pipelineAnalytics: 'pipeline-analytics';
320
322
  readonly pipelineExecutor: 'pipeline-executor';
321
323
  readonly pipelineOrchestrator: 'pipeline-orchestrator';
@@ -521,6 +523,7 @@ export interface CapabilityRouterMap<TRouter = unknown> {
521
523
  readonly osd: TRouter;
522
524
  readonly osdManager: TRouter;
523
525
  readonly petFeeder: TRouter;
526
+ readonly petFountain: TRouter;
524
527
  readonly pipelineAnalytics: TRouter;
525
528
  readonly pipelineExecutor: TRouter;
526
529
  readonly pipelineOrchestrator: TRouter;
@@ -587,8 +590,8 @@ export interface CapabilityRouterMap<TRouter = unknown> {
587
590
  readonly zoneRules: TRouter;
588
591
  readonly zones: TRouter;
589
592
  }
590
- /** Capability names whose mode is `singleton` (153 caps). */
591
- export declare const SINGLETON_CAPABILITY_NAMES: readonly ['accessories', 'actions', '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-credentials', 'device-discovery', 'device-history', 'device-manager', 'device-ops', 'device-state', 'device-status', 'dishwasher', 'display-palette', 'doorbell', 'enum-sensor', 'event-emitter', 'face-gallery', 'fan-control', 'feature-probe', 'filesystem-browse', 'flood', 'gas', 'group-active', 'group-commands', 'group-status', 'heating-valve', 'humidifier', 'humidity-sensor', 'image', 'image-settings', 'integrations', 'intercom', 'ir-transmitter', 'keychain', 'keychain-admin', 'lawn-mower-control', 'llm-runtime', 'local-network', 'lock-control', 'media-player', 'meter', 'metrics-provider', 'model-convert', 'model-distributor', 'motion', 'motion-detection', 'motion-trigger', 'motion-zones', 'native-object-detection', 'navigation', 'network-link', 'network-quality', 'node-certificates', 'nodes', 'notification-rules', 'notifier', 'numeric-sensor', 'oidc-connections', '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', 'record-entries', 'recording-archive', 'recording-export', 'recording-onboard', 'recording-signal', 'records', 'remote', 'running-state', 'scene-monitor', 'script-runner', 'server-management', 'settings-store', 'smoke', 'snapshot', 'sso-bridge', 'storage', 'storage-admin', 'storage-migration', 'stream-broker', 'stream-catalog', 'stream-params', 'stream-signals', 'switch', 'system', 'tamper', 'temperature-sensor', 'terminal-session', 'toast', 'training', 'update', 'user-management', 'vacuum-control', 'valve', 'vector-store', 'vibration', 'viewer-ui', 'water-heater', 'weather', 'webrtc-session', 'zone-analytics', 'zone-rules', 'zones'];
593
+ /** Capability names whose mode is `singleton` (154 caps). */
594
+ export declare const SINGLETON_CAPABILITY_NAMES: readonly ['accessories', 'actions', '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-credentials', 'device-discovery', 'device-history', 'device-manager', 'device-ops', 'device-state', 'device-status', 'dishwasher', 'display-palette', 'doorbell', 'enum-sensor', 'event-emitter', 'face-gallery', 'fan-control', 'feature-probe', 'filesystem-browse', 'flood', 'gas', 'group-active', 'group-commands', 'group-status', 'heating-valve', 'humidifier', 'humidity-sensor', 'image', 'image-settings', 'integrations', 'intercom', 'ir-transmitter', 'keychain', 'keychain-admin', 'lawn-mower-control', 'llm-runtime', 'local-network', 'lock-control', 'media-player', 'meter', 'metrics-provider', 'model-convert', 'model-distributor', 'motion', 'motion-detection', 'motion-trigger', 'motion-zones', 'native-object-detection', 'navigation', 'network-link', 'network-quality', 'node-certificates', 'nodes', 'notification-rules', 'notifier', 'numeric-sensor', 'oidc-connections', 'osd', 'osd-manager', 'pet-feeder', 'pet-fountain', 'pipeline-analytics', 'pipeline-executor', 'pipeline-orchestrator', 'pipeline-runner', 'plate-gallery', 'platform-probe', 'power-meter', 'presence', 'pressure-sensor', 'privacy-mask', 'ptz', 'ptz-autotrack', 'reboot', 'record-entries', 'recording-archive', 'recording-export', 'recording-onboard', 'recording-signal', 'records', 'remote', 'running-state', 'scene-monitor', 'script-runner', 'server-management', 'settings-store', 'smoke', 'snapshot', 'sso-bridge', 'storage', 'storage-admin', 'storage-migration', 'stream-broker', 'stream-catalog', 'stream-params', 'stream-signals', 'switch', 'system', 'tamper', 'temperature-sensor', 'terminal-session', 'toast', 'training', 'update', 'user-management', 'vacuum-control', 'valve', 'vector-store', 'vibration', 'viewer-ui', 'water-heater', 'weather', 'webrtc-session', 'zone-analytics', 'zone-rules', 'zones'];
592
595
  /** Union of singleton capability names (literal string union). */
593
596
  export type SingletonCapabilityName = typeof SINGLETON_CAPABILITY_NAMES[number];
594
597
  /** Capability names whose mode is `collection` (38 caps). */
@@ -8,7 +8,7 @@
8
8
  * barrel (`ALL_CAPABILITY_DEFINITIONS`), which would cost ~144MB RSS per
9
9
  * forked runner. See docs/decisions/adr-0028.md.
10
10
  *
11
- * Coverage: 28 collection caps, 46 array methods.
11
+ * Coverage: 28 collection caps, 48 array methods.
12
12
  */
13
13
  export declare const COLLECTION_ARRAY_METHODS: Readonly<Record<string, readonly string[]>>;
14
14
  /**
@@ -21,7 +21,7 @@ export declare function isCollectionArrayMethodName(capName: string, method: str
21
21
  * Per capability, the methods declared `optionalMethod` — the ones whose
22
22
  * ABSENCE on a provider is a fact about that provider, not a bug.
23
23
  *
24
- * Coverage: 2 caps, 7 methods.
24
+ * Coverage: 3 caps, 11 methods.
25
25
  */
26
26
  export declare const PROVIDER_OPTIONAL_METHODS: Readonly<Record<string, readonly string[]>>;
27
27
  /**
@@ -56,7 +56,7 @@ export declare const CAP_CUSTOMIZE_CATALOG: {
56
56
  readonly targets: readonly [{
57
57
  readonly id: 'items';
58
58
  readonly cardinality: 'keyedArray';
59
- readonly deviceTypes: readonly [DeviceType.Camera, DeviceType.Hub, DeviceType.Light, DeviceType.Siren, DeviceType.Switch, DeviceType.Sensor, DeviceType.Thermostat, DeviceType.Climate, DeviceType.Button, DeviceType.EventEmitter, DeviceType.Update, DeviceType.Generic, DeviceType.Notifier, DeviceType.Script, DeviceType.Automation, DeviceType.Lock, DeviceType.Cover, DeviceType.Valve, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.Fan, DeviceType.MediaPlayer, DeviceType.AlarmPanel, DeviceType.Control, DeviceType.Presence, DeviceType.Weather, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.Container, DeviceType.Image, DeviceType.PetFeeder, DeviceType.Dishwasher, DeviceType.Washer, DeviceType.Dryer];
59
+ readonly deviceTypes: readonly [DeviceType.Camera, DeviceType.Hub, DeviceType.Light, DeviceType.Siren, DeviceType.Switch, DeviceType.Sensor, DeviceType.Thermostat, DeviceType.Climate, DeviceType.Button, DeviceType.EventEmitter, DeviceType.Update, DeviceType.Generic, DeviceType.Notifier, DeviceType.Script, DeviceType.Automation, DeviceType.Lock, DeviceType.Cover, DeviceType.Valve, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.Fan, DeviceType.MediaPlayer, DeviceType.AlarmPanel, DeviceType.Control, DeviceType.Presence, DeviceType.Weather, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.Container, DeviceType.Image, DeviceType.PetFeeder, DeviceType.PetFountain, DeviceType.Dishwasher, DeviceType.Washer, DeviceType.Dryer];
60
60
  readonly apply: 'add';
61
61
  readonly vocabularyCap: 'consumables';
62
62
  readonly sources: readonly [];
@@ -49,6 +49,7 @@ import { networkLinkCapability } from '../capabilities/network-link.cap.js';
49
49
  import { notifierCapability } from '../capabilities/notifier.cap.js';
50
50
  import { numericSensorCapability } from '../capabilities/numeric-sensor.cap.js';
51
51
  import { petFeederCapability } from '../capabilities/pet-feeder.cap.js';
52
+ import { petFountainCapability } from '../capabilities/pet-fountain.cap.js';
52
53
  import { powerMeterCapability } from '../capabilities/power-meter.cap.js';
53
54
  import { presenceCapability } from '../capabilities/presence.cap.js';
54
55
  import { pressureSensorCapability } from '../capabilities/pressure-sensor.cap.js';
@@ -137,6 +138,7 @@ export interface DeviceLocalState {
137
138
  notifier: InferRuntimeState<typeof notifierCapability>;
138
139
  numericSensor: InferRuntimeState<typeof numericSensorCapability>;
139
140
  petFeeder: InferRuntimeState<typeof petFeederCapability>;
141
+ petFountain: InferRuntimeState<typeof petFountainCapability>;
140
142
  powerMeter: InferRuntimeState<typeof powerMeterCapability>;
141
143
  presence: InferRuntimeState<typeof presenceCapability>;
142
144
  pressureSensor: InferRuntimeState<typeof pressureSensorCapability>;
@@ -235,6 +237,7 @@ export interface CapNameToRuntimeStateMap {
235
237
  'notifier': InferRuntimeState<typeof notifierCapability>;
236
238
  'numeric-sensor': InferRuntimeState<typeof numericSensorCapability>;
237
239
  'pet-feeder': InferRuntimeState<typeof petFeederCapability>;
240
+ 'pet-fountain': InferRuntimeState<typeof petFountainCapability>;
238
241
  'power-meter': InferRuntimeState<typeof powerMeterCapability>;
239
242
  'presence': InferRuntimeState<typeof presenceCapability>;
240
243
  'pressure-sensor': InferRuntimeState<typeof pressureSensorCapability>;
@@ -65,6 +65,7 @@ import type { notifierCapability } from '../capabilities/notifier.cap.js';
65
65
  import type { numericSensorCapability } from '../capabilities/numeric-sensor.cap.js';
66
66
  import type { osdCapability } from '../capabilities/osd.cap.js';
67
67
  import type { petFeederCapability } from '../capabilities/pet-feeder.cap.js';
68
+ import type { petFountainCapability } from '../capabilities/pet-fountain.cap.js';
68
69
  import type { pipelineAnalyticsCapability } from '../capabilities/pipeline-analytics.cap.js';
69
70
  import type { powerMeterCapability } from '../capabilities/power-meter.cap.js';
70
71
  import type { presenceCapability } from '../capabilities/presence.cap.js';
@@ -173,6 +174,7 @@ export interface DeviceProxyState {
173
174
  readonly notifier: SliceHandle<InferRuntimeState<typeof notifierCapability>>;
174
175
  readonly numericSensor: SliceHandle<InferRuntimeState<typeof numericSensorCapability>>;
175
176
  readonly petFeeder: SliceHandle<InferRuntimeState<typeof petFeederCapability>>;
177
+ readonly petFountain: SliceHandle<InferRuntimeState<typeof petFountainCapability>>;
176
178
  readonly powerMeter: SliceHandle<InferRuntimeState<typeof powerMeterCapability>>;
177
179
  readonly presence: SliceHandle<InferRuntimeState<typeof presenceCapability>>;
178
180
  readonly pressureSensor: SliceHandle<InferRuntimeState<typeof pressureSensorCapability>>;
@@ -281,6 +283,7 @@ export interface DeviceProxy {
281
283
  readonly numericSensor?: InferDeviceProxyCap<typeof numericSensorCapability>;
282
284
  readonly osd?: InferDeviceProxyCap<typeof osdCapability>;
283
285
  readonly petFeeder?: InferDeviceProxyCap<typeof petFeederCapability>;
286
+ readonly petFountain?: InferDeviceProxyCap<typeof petFountainCapability>;
284
287
  readonly pipelineAnalytics?: InferDeviceProxyCap<typeof pipelineAnalyticsCapability>;
285
288
  readonly powerMeter?: InferDeviceProxyCap<typeof powerMeterCapability>;
286
289
  readonly presence?: InferDeviceProxyCap<typeof presenceCapability>;
@@ -5,7 +5,7 @@
5
5
  * can answer "may a rule actuate this?" without importing the schema barrel
6
6
  * (~144MB RSS per runner, D28).
7
7
  *
8
- * Coverage: 96 device-scoped capabilities.
8
+ * Coverage: 97 device-scoped capabilities.
9
9
  */
10
10
  export declare const DEVICE_SCOPED_CAPS: ReadonlySet<string>;
11
11
  /**
@@ -1,7 +1,7 @@
1
1
  import type { CapabilityHistoryField, CapabilityHistoryItems } from '../capabilities/capability-definition.js';
2
2
  /**
3
3
  * Cap history catalog, projected from every `*.cap.ts` `history` block.
4
- * 41 caps with series (76 series), 34 caps answered `'none'`.
4
+ * 42 caps with series (80 series), 34 caps answered `'none'`.
5
5
  * Field keys are `runtimeState` paths (`a.b` into fixed objects only).
6
6
  */
7
7
  export declare const HISTORY_CATALOG: Readonly<Record<string, Readonly<Record<string, CapabilityHistoryField>>>>;