@camstack/types 1.2.443 → 1.2.444

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 (57) hide show
  1. package/CHANGELOG.md +13 -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 +5 -3
  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/client.js +817 -798
  20. package/dist/client.mjs +817 -798
  21. package/dist/composition/composition-items.d.ts +3 -3
  22. package/dist/composition/composition-report.d.ts +17 -0
  23. package/dist/composition/composition.d.ts +68 -1
  24. package/dist/composition/index.d.ts +2 -0
  25. package/dist/composition/presets/pet-fountain.d.ts +36 -0
  26. package/dist/composition/validate-forward.d.ts +31 -0
  27. package/dist/{composition-C0dlyG9U.js → composition-CO6Sak-s.js} +49 -5
  28. package/dist/{composition-bIBW5_13.mjs → composition-kSuOifuG.mjs} +32 -6
  29. package/dist/device/cap-vocabulary/entries/appliances.d.ts +1 -1
  30. package/dist/device/device-control-resolution.d.ts +1 -1
  31. package/dist/device/device-type.d.ts +4 -0
  32. package/dist/{err-msg-BCdlR2Li.mjs → err-msg-DWXWc0Di.mjs} +4 -0
  33. package/dist/{err-msg-COHgq7Mb.js → err-msg-EJhsFHqa.js} +4 -0
  34. package/dist/generated/addon-api.d.ts +134 -32
  35. package/dist/generated/addon-cap-facts.d.ts +1 -1
  36. package/dist/generated/cap-status-types.d.ts +3 -1
  37. package/dist/generated/capability-router-map.d.ts +5 -2
  38. package/dist/generated/collection-array-methods.d.ts +2 -2
  39. package/dist/generated/customize-catalog.d.ts +1 -1
  40. package/dist/generated/device-local-state.d.ts +3 -0
  41. package/dist/generated/device-proxy.d.ts +3 -0
  42. package/dist/generated/device-scoped-caps.d.ts +1 -1
  43. package/dist/generated/history-catalog.d.ts +1 -1
  44. package/dist/generated/method-access-map.d.ts +1 -1
  45. package/dist/generated/method-device-selectors.d.ts +1 -1
  46. package/dist/generated/runtime-state-durability.d.ts +1 -1
  47. package/dist/generated/system-proxy.d.ts +1 -1
  48. package/dist/index.d.ts +1 -0
  49. package/dist/index.js +1427 -602
  50. package/dist/index.mjs +1395 -591
  51. package/dist/interfaces/agent.d.ts +6 -2
  52. package/dist/interfaces/event-bus.d.ts +1 -1
  53. package/dist/node.js +2 -2
  54. package/dist/node.mjs +2 -2
  55. package/dist/{sleep-C_u6cEAJ.mjs → sleep-6eG9C8Xl.mjs} +223 -72
  56. package/dist/{sleep-E7qAQwTE.js → sleep-UXDHn-oJ.js} +246 -71
  57. 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;
@@ -12256,6 +12336,17 @@ export type AppRouter = TrpcCoreRouter<{
12256
12336
  historyRemoved: boolean;
12257
12337
  registryRemoved: boolean;
12258
12338
  stillListed: boolean;
12339
+ certificates: {
12340
+ outcome: "not-attempted";
12341
+ } | {
12342
+ outcome: "revoked";
12343
+ serials: string[];
12344
+ } | {
12345
+ outcome: "registry-unavailable";
12346
+ } | {
12347
+ outcome: "failed";
12348
+ error: string;
12349
+ };
12259
12350
  message: string;
12260
12351
  };
12261
12352
  meta: object;
@@ -12279,6 +12370,17 @@ export type AppRouter = TrpcCoreRouter<{
12279
12370
  historyRemoved: boolean;
12280
12371
  registryRemoved: boolean;
12281
12372
  stillListed: boolean;
12373
+ certificates: {
12374
+ outcome: "not-attempted";
12375
+ } | {
12376
+ outcome: "revoked";
12377
+ serials: string[];
12378
+ } | {
12379
+ outcome: "registry-unavailable";
12380
+ } | {
12381
+ outcome: "failed";
12382
+ error: string;
12383
+ };
12282
12384
  message: string;
12283
12385
  };
12284
12386
  meta: object;
@@ -12366,7 +12468,7 @@ export type AppRouter = TrpcCoreRouter<{
12366
12468
  notAfter: number;
12367
12469
  issuedAt: number;
12368
12470
  issuedVia: "enroll" | "pairing" | "renewal" | "boot" | "observed";
12369
- status: "valid" | "expiring" | "expired" | "revoked";
12471
+ status: "revoked" | "valid" | "expiring" | "expired";
12370
12472
  revokedAt: number | null;
12371
12473
  revokedReason: string | null;
12372
12474
  } | null;
@@ -12378,7 +12480,7 @@ export type AppRouter = TrpcCoreRouter<{
12378
12480
  notAfter: number;
12379
12481
  issuedAt: number;
12380
12482
  issuedVia: "enroll" | "pairing" | "renewal" | "boot" | "observed";
12381
- status: "valid" | "expiring" | "expired" | "revoked";
12483
+ status: "revoked" | "valid" | "expiring" | "expired";
12382
12484
  revokedAt: number | null;
12383
12485
  revokedReason: string | null;
12384
12486
  }[];
@@ -12494,7 +12596,7 @@ export type AppRouter = TrpcCoreRouter<{
12494
12596
  notAfter: number;
12495
12597
  issuedAt: number;
12496
12598
  issuedVia: "enroll" | "pairing" | "renewal" | "boot" | "observed";
12497
- status: "valid" | "expiring" | "expired" | "revoked";
12599
+ status: "revoked" | "valid" | "expiring" | "expired";
12498
12600
  revokedAt: number | null;
12499
12601
  revokedReason: string | null;
12500
12602
  } | null;
@@ -12506,7 +12608,7 @@ export type AppRouter = TrpcCoreRouter<{
12506
12608
  notAfter: number;
12507
12609
  issuedAt: number;
12508
12610
  issuedVia: "enroll" | "pairing" | "renewal" | "boot" | "observed";
12509
- status: "valid" | "expiring" | "expired" | "revoked";
12611
+ status: "revoked" | "valid" | "expiring" | "expired";
12510
12612
  revokedAt: number | null;
12511
12613
  revokedReason: string | null;
12512
12614
  }[];
@@ -12719,7 +12821,7 @@ export type AppRouter = TrpcCoreRouter<{
12719
12821
  port: number;
12720
12822
  };
12721
12823
  code: string;
12722
- state: "expired" | "paired" | "awaiting-confirmation" | "completing" | "rejected" | "failed";
12824
+ state: "failed" | "expired" | "paired" | "awaiting-confirmation" | "completing" | "rejected";
12723
12825
  hubConfirmed: boolean;
12724
12826
  agentConfirmed: boolean;
12725
12827
  expiresAt: number;
@@ -12753,7 +12855,7 @@ export type AppRouter = TrpcCoreRouter<{
12753
12855
  port: number;
12754
12856
  };
12755
12857
  code: string;
12756
- state: "expired" | "paired" | "awaiting-confirmation" | "completing" | "rejected" | "failed";
12858
+ state: "failed" | "expired" | "paired" | "awaiting-confirmation" | "completing" | "rejected";
12757
12859
  hubConfirmed: boolean;
12758
12860
  agentConfirmed: boolean;
12759
12861
  expiresAt: number;
@@ -12775,7 +12877,7 @@ export type AppRouter = TrpcCoreRouter<{
12775
12877
  port: number;
12776
12878
  };
12777
12879
  code: string;
12778
- state: "expired" | "paired" | "awaiting-confirmation" | "completing" | "rejected" | "failed";
12880
+ state: "failed" | "expired" | "paired" | "awaiting-confirmation" | "completing" | "rejected";
12779
12881
  hubConfirmed: boolean;
12780
12882
  agentConfirmed: boolean;
12781
12883
  expiresAt: number;
@@ -12795,7 +12897,7 @@ export type AppRouter = TrpcCoreRouter<{
12795
12897
  port: number;
12796
12898
  };
12797
12899
  code: string;
12798
- state: "expired" | "paired" | "awaiting-confirmation" | "completing" | "rejected" | "failed";
12900
+ state: "failed" | "expired" | "paired" | "awaiting-confirmation" | "completing" | "rejected";
12799
12901
  hubConfirmed: boolean;
12800
12902
  agentConfirmed: boolean;
12801
12903
  expiresAt: number;
@@ -12813,7 +12915,7 @@ export type AppRouter = TrpcCoreRouter<{
12813
12915
  port: number;
12814
12916
  };
12815
12917
  code: string;
12816
- state: "expired" | "paired" | "awaiting-confirmation" | "completing" | "rejected" | "failed";
12918
+ state: "failed" | "expired" | "paired" | "awaiting-confirmation" | "completing" | "rejected";
12817
12919
  hubConfirmed: boolean;
12818
12920
  agentConfirmed: boolean;
12819
12921
  expiresAt: number;
@@ -12834,7 +12936,7 @@ export type AppRouter = TrpcCoreRouter<{
12834
12936
  port: number;
12835
12937
  };
12836
12938
  code: string;
12837
- state: "expired" | "paired" | "awaiting-confirmation" | "completing" | "rejected" | "failed";
12939
+ state: "failed" | "expired" | "paired" | "awaiting-confirmation" | "completing" | "rejected";
12838
12940
  hubConfirmed: boolean;
12839
12941
  agentConfirmed: boolean;
12840
12942
  expiresAt: number;
@@ -12854,7 +12956,7 @@ export type AppRouter = TrpcCoreRouter<{
12854
12956
  port: number;
12855
12957
  };
12856
12958
  code: string;
12857
- state: "expired" | "paired" | "awaiting-confirmation" | "completing" | "rejected" | "failed";
12959
+ state: "failed" | "expired" | "paired" | "awaiting-confirmation" | "completing" | "rejected";
12858
12960
  hubConfirmed: boolean;
12859
12961
  agentConfirmed: boolean;
12860
12962
  expiresAt: number;
@@ -12899,7 +13001,7 @@ export type AppRouter = TrpcCoreRouter<{
12899
13001
  port: number;
12900
13002
  };
12901
13003
  code: string;
12902
- state: "expired" | "paired" | "awaiting-confirmation" | "completing" | "rejected" | "failed";
13004
+ state: "failed" | "expired" | "paired" | "awaiting-confirmation" | "completing" | "rejected";
12903
13005
  hubConfirmed: boolean;
12904
13006
  agentConfirmed: boolean;
12905
13007
  expiresAt: number;
@@ -12933,7 +13035,7 @@ export type AppRouter = TrpcCoreRouter<{
12933
13035
  port: number;
12934
13036
  };
12935
13037
  code: string;
12936
- state: "expired" | "paired" | "awaiting-confirmation" | "completing" | "rejected" | "failed";
13038
+ state: "failed" | "expired" | "paired" | "awaiting-confirmation" | "completing" | "rejected";
12937
13039
  hubConfirmed: boolean;
12938
13040
  agentConfirmed: boolean;
12939
13041
  expiresAt: number;
@@ -12955,7 +13057,7 @@ export type AppRouter = TrpcCoreRouter<{
12955
13057
  port: number;
12956
13058
  };
12957
13059
  code: string;
12958
- state: "expired" | "paired" | "awaiting-confirmation" | "completing" | "rejected" | "failed";
13060
+ state: "failed" | "expired" | "paired" | "awaiting-confirmation" | "completing" | "rejected";
12959
13061
  hubConfirmed: boolean;
12960
13062
  agentConfirmed: boolean;
12961
13063
  expiresAt: number;
@@ -12975,7 +13077,7 @@ export type AppRouter = TrpcCoreRouter<{
12975
13077
  port: number;
12976
13078
  };
12977
13079
  code: string;
12978
- state: "expired" | "paired" | "awaiting-confirmation" | "completing" | "rejected" | "failed";
13080
+ state: "failed" | "expired" | "paired" | "awaiting-confirmation" | "completing" | "rejected";
12979
13081
  hubConfirmed: boolean;
12980
13082
  agentConfirmed: boolean;
12981
13083
  expiresAt: number;
@@ -12993,7 +13095,7 @@ export type AppRouter = TrpcCoreRouter<{
12993
13095
  port: number;
12994
13096
  };
12995
13097
  code: string;
12996
- state: "expired" | "paired" | "awaiting-confirmation" | "completing" | "rejected" | "failed";
13098
+ state: "failed" | "expired" | "paired" | "awaiting-confirmation" | "completing" | "rejected";
12997
13099
  hubConfirmed: boolean;
12998
13100
  agentConfirmed: boolean;
12999
13101
  expiresAt: number;
@@ -13014,7 +13116,7 @@ export type AppRouter = TrpcCoreRouter<{
13014
13116
  port: number;
13015
13117
  };
13016
13118
  code: string;
13017
- state: "expired" | "paired" | "awaiting-confirmation" | "completing" | "rejected" | "failed";
13119
+ state: "failed" | "expired" | "paired" | "awaiting-confirmation" | "completing" | "rejected";
13018
13120
  hubConfirmed: boolean;
13019
13121
  agentConfirmed: boolean;
13020
13122
  expiresAt: number;
@@ -13034,7 +13136,7 @@ export type AppRouter = TrpcCoreRouter<{
13034
13136
  port: number;
13035
13137
  };
13036
13138
  code: string;
13037
- state: "expired" | "paired" | "awaiting-confirmation" | "completing" | "rejected" | "failed";
13139
+ state: "failed" | "expired" | "paired" | "awaiting-confirmation" | "completing" | "rejected";
13038
13140
  hubConfirmed: boolean;
13039
13141
  agentConfirmed: boolean;
13040
13142
  expiresAt: number;
@@ -13466,7 +13568,7 @@ export type AppRouter = TrpcCoreRouter<{
13466
13568
  ok: true;
13467
13569
  } | {
13468
13570
  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";
13571
+ 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
13572
  definitive: boolean;
13471
13573
  retryAfterSeconds?: number | undefined;
13472
13574
  };
@@ -13482,7 +13584,7 @@ export type AppRouter = TrpcCoreRouter<{
13482
13584
  ok: true;
13483
13585
  } | {
13484
13586
  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";
13587
+ 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
13588
  definitive: boolean;
13487
13589
  retryAfterSeconds?: number | undefined;
13488
13590
  };
@@ -13497,7 +13599,7 @@ export type AppRouter = TrpcCoreRouter<{
13497
13599
  };
13498
13600
  output: {
13499
13601
  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";
13602
+ 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
13603
  definitive: boolean;
13502
13604
  retryAfterSeconds?: number | undefined;
13503
13605
  } | {
@@ -13531,7 +13633,7 @@ export type AppRouter = TrpcCoreRouter<{
13531
13633
  ok: true;
13532
13634
  } | {
13533
13635
  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";
13636
+ 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
13637
  definitive: boolean;
13536
13638
  retryAfterSeconds?: number | undefined;
13537
13639
  };
@@ -13549,7 +13651,7 @@ export type AppRouter = TrpcCoreRouter<{
13549
13651
  sessionsEnded: number;
13550
13652
  } | {
13551
13653
  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";
13654
+ 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
13655
  definitive: boolean;
13554
13656
  retryAfterSeconds?: number | undefined;
13555
13657
  };
@@ -13573,7 +13675,7 @@ export type AppRouter = TrpcCoreRouter<{
13573
13675
  lastUsedFrom: string | null;
13574
13676
  revokedAt: number | null;
13575
13677
  revokedBy: string | null;
13576
- status: "expired" | "revoked" | "active";
13678
+ status: "revoked" | "expired" | "active";
13577
13679
  }[];
13578
13680
  meta: object;
13579
13681
  }>;
@@ -13628,7 +13730,7 @@ export type AppRouter = TrpcCoreRouter<{
13628
13730
  ok: true;
13629
13731
  } | {
13630
13732
  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";
13733
+ 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
13734
  definitive: boolean;
13633
13735
  retryAfterSeconds?: number | undefined;
13634
13736
  };
@@ -14461,7 +14563,7 @@ export type AppRouter = TrpcCoreRouter<{
14461
14563
  ok: true;
14462
14564
  } | {
14463
14565
  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";
14566
+ 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
14567
  definitive: boolean;
14466
14568
  retryAfterSeconds?: number | undefined;
14467
14569
  };
@@ -14477,7 +14579,7 @@ export type AppRouter = TrpcCoreRouter<{
14477
14579
  ok: true;
14478
14580
  } | {
14479
14581
  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";
14582
+ 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
14583
  definitive: boolean;
14482
14584
  retryAfterSeconds?: number | undefined;
14483
14585
  };
@@ -14492,7 +14594,7 @@ export type AppRouter = TrpcCoreRouter<{
14492
14594
  };
14493
14595
  output: {
14494
14596
  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";
14597
+ 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
14598
  definitive: boolean;
14497
14599
  retryAfterSeconds?: number | undefined;
14498
14600
  } | {
@@ -14526,7 +14628,7 @@ export type AppRouter = TrpcCoreRouter<{
14526
14628
  ok: true;
14527
14629
  } | {
14528
14630
  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";
14631
+ 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
14632
  definitive: boolean;
14531
14633
  retryAfterSeconds?: number | undefined;
14532
14634
  };
@@ -14544,7 +14646,7 @@ export type AppRouter = TrpcCoreRouter<{
14544
14646
  sessionsEnded: number;
14545
14647
  } | {
14546
14648
  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";
14649
+ 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
14650
  definitive: boolean;
14549
14651
  retryAfterSeconds?: number | undefined;
14550
14652
  };
@@ -14568,7 +14670,7 @@ export type AppRouter = TrpcCoreRouter<{
14568
14670
  lastUsedFrom: string | null;
14569
14671
  revokedAt: number | null;
14570
14672
  revokedBy: string | null;
14571
- status: "expired" | "revoked" | "active";
14673
+ status: "revoked" | "expired" | "active";
14572
14674
  }[];
14573
14675
  meta: object;
14574
14676
  }>;
@@ -14623,7 +14725,7 @@ export type AppRouter = TrpcCoreRouter<{
14623
14725
  ok: true;
14624
14726
  } | {
14625
14727
  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";
14728
+ 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
14729
  definitive: boolean;
14628
14730
  retryAfterSeconds?: number | undefined;
14629
14731
  };
@@ -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>>>>;
@@ -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: 1417 method paths across 191 capabilities.
9
+ * Coverage: 1427 method paths across 192 capabilities.
10
10
  */
11
11
  import type { MethodRole } from '../auth/viewer-access.js';
12
12
  import type { CapabilityMethodAccess } from '../capabilities/capability-definition.js';