@camstack/types 1.2.326 → 1.2.328

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/dist/addon/base-addon.d.ts +58 -0
  2. package/dist/addon/secret-aware-context.d.ts +27 -0
  3. package/dist/addon/secret-paths.d.ts +48 -0
  4. package/dist/addon/secret-settings-view.d.ts +80 -0
  5. package/dist/addon.d.ts +2 -0
  6. package/dist/addon.js +54 -4
  7. package/dist/addon.mjs +27 -5
  8. package/dist/capabilities/addon-routes.cap.d.ts +2 -2
  9. package/dist/capabilities/addons.cap.d.ts +4 -4
  10. package/dist/capabilities/alerts.cap.d.ts +5 -5
  11. package/dist/capabilities/control.cap.d.ts +11 -11
  12. package/dist/capabilities/day-night.cap.d.ts +8 -8
  13. package/dist/capabilities/device-manager.cap.d.ts +9 -0
  14. package/dist/capabilities/enum-sensor.cap.d.ts +4 -4
  15. package/dist/capabilities/index.d.ts +7 -3
  16. package/dist/capabilities/integrations.cap.d.ts +6 -3
  17. package/dist/capabilities/keychain-admin.cap.d.ts +312 -0
  18. package/dist/capabilities/keychain.cap.d.ts +180 -0
  19. package/dist/capabilities/lawn-mower-control.cap.d.ts +4 -4
  20. package/dist/capabilities/local-network.cap.d.ts +2 -2
  21. package/dist/capabilities/log-channels.cap.d.ts +1 -1
  22. package/dist/capabilities/log-destination.cap.d.ts +5 -5
  23. package/dist/capabilities/login-method.cap.d.ts +3 -0
  24. package/dist/capabilities/mesh-network.cap.d.ts +3 -3
  25. package/dist/capabilities/network-access.cap.d.ts +7 -7
  26. package/dist/capabilities/notification-rules.cap.d.ts +30 -30
  27. package/dist/capabilities/osd-manager.cap.d.ts +11 -11
  28. package/dist/capabilities/osd.cap.d.ts +5 -5
  29. package/dist/capabilities/pipeline-analytics.cap.d.ts +1127 -104
  30. package/dist/capabilities/pipeline-orchestrator.cap.d.ts +384 -0
  31. package/dist/capabilities/pipeline-runner.cap.d.ts +145 -2
  32. package/dist/capabilities/sso-bridge.cap.d.ts +6 -0
  33. package/dist/capabilities/storage.cap.d.ts +1 -1
  34. package/dist/capabilities/system.cap.d.ts +21 -21
  35. package/dist/capabilities/user-management.cap.d.ts +53 -1
  36. package/dist/capabilities/webrtc-session.cap.d.ts +3 -3
  37. package/dist/client.js +38 -1
  38. package/dist/client.mjs +38 -1
  39. package/dist/device/device-context.d.ts +11 -1
  40. package/dist/device/display-icon-vocabulary.d.ts +7 -0
  41. package/dist/device/index.d.ts +2 -1
  42. package/dist/device/zod-secret.d.ts +35 -0
  43. package/dist/enums/event-category.d.ts +7 -0
  44. package/dist/enums.js +1 -1
  45. package/dist/enums.mjs +1 -1
  46. package/dist/{event-category-CtBAl88K.js → event-category-CHduMGvg.js} +7 -0
  47. package/dist/{event-category-B_0XEcLF.mjs → event-category-DaIZi00R.mjs} +7 -0
  48. package/dist/generated/addon-api.d.ts +376 -0
  49. package/dist/generated/cap-input-defaults.d.ts +1 -1
  50. package/dist/generated/capability-router-map.d.ts +8 -2
  51. package/dist/generated/method-access-map.d.ts +1 -1
  52. package/dist/generated/method-device-selectors.d.ts +1 -1
  53. package/dist/generated/system-proxy.d.ts +5 -3
  54. package/dist/health/wiring-health.d.ts +8 -8
  55. package/dist/index.d.ts +8 -3
  56. package/dist/index.js +1970 -110
  57. package/dist/index.mjs +1849 -107
  58. package/dist/interfaces/addon.d.ts +25 -0
  59. package/dist/interfaces/config-ui-secrets.d.ts +12 -0
  60. package/dist/interfaces/config-ui.d.ts +60 -3
  61. package/dist/interfaces/event-bus.d.ts +11 -0
  62. package/dist/interfaces/pipeline-runner-capability.d.ts +18 -0
  63. package/dist/keychain/index.d.ts +5 -0
  64. package/dist/keychain/known-secrets.d.ts +31 -0
  65. package/dist/keychain/resolve-secret-views.d.ts +2 -0
  66. package/dist/keychain/secret-marker.d.ts +52 -0
  67. package/dist/keychain/secret-ref.d.ts +62 -0
  68. package/dist/keychain/secrets-access.d.ts +77 -0
  69. package/dist/logging/log-channel.d.ts +2 -2
  70. package/dist/pipeline/auto-tune/plan-schemas.d.ts +123 -0
  71. package/dist/pipeline/auto-tune/recommend.d.ts +26 -1
  72. package/dist/pipeline/load-balancing/schemas.d.ts +8 -7
  73. package/dist/pipeline/node-benchmark/benchmark-mode.d.ts +57 -0
  74. package/dist/pipeline/node-benchmark/index.d.ts +9 -0
  75. package/dist/pipeline/node-benchmark/results.d.ts +52 -0
  76. package/dist/pipeline/node-benchmark/schemas.d.ts +848 -0
  77. package/dist/pipeline/node-benchmark/step-tree.d.ts +23 -0
  78. package/dist/{sleep-BNeXenvr.mjs → sleep-Cr5YOk3m.mjs} +1337 -33
  79. package/dist/{sleep-DPar9AHl.js → sleep-i3kl-0Na.js} +1628 -66
  80. package/package.json +1 -1
@@ -124,8 +124,8 @@ declare const SetSiteLocationInputSchema: z.ZodNullable<z.ZodObject<{
124
124
  */
125
125
  declare const TransportPlaneSchema: z.ZodEnum<{
126
126
  unknown: "unknown";
127
- mesh: "mesh";
128
127
  http: "http";
128
+ mesh: "mesh";
129
129
  ws: "ws";
130
130
  }>;
131
131
  /**
@@ -152,8 +152,8 @@ declare const TransportPlaneCountsSchema: z.ZodObject<{
152
152
  declare const RequestCensusGroupSchema: z.ZodObject<{
153
153
  plane: z.ZodEnum<{
154
154
  unknown: "unknown";
155
- mesh: "mesh";
156
155
  http: "http";
156
+ mesh: "mesh";
157
157
  ws: "ws";
158
158
  }>;
159
159
  procedure: z.ZodString;
@@ -220,8 +220,8 @@ declare const RequestCensusSnapshotSchema: z.ZodObject<{
220
220
  groups: z.ZodReadonly<z.ZodArray<z.ZodObject<{
221
221
  plane: z.ZodEnum<{
222
222
  unknown: "unknown";
223
- mesh: "mesh";
224
223
  http: "http";
224
+ mesh: "mesh";
225
225
  ws: "ws";
226
226
  }>;
227
227
  procedure: z.ZodString;
@@ -277,8 +277,8 @@ declare const RequestCensusStatusSchema: z.ZodObject<{
277
277
  groups: z.ZodReadonly<z.ZodArray<z.ZodObject<{
278
278
  plane: z.ZodEnum<{
279
279
  unknown: "unknown";
280
- mesh: "mesh";
281
280
  http: "http";
281
+ mesh: "mesh";
282
282
  ws: "ws";
283
283
  }>;
284
284
  procedure: z.ZodString;
@@ -293,9 +293,9 @@ declare const RequestCensusStatusSchema: z.ZodObject<{
293
293
  }, z.core.$strip>;
294
294
  /** Severity vocabulary. Mirrors `LogLevel` in `interfaces/logging.ts`. */
295
295
  declare const LogLevelSchema: z.ZodEnum<{
296
+ info: "info";
296
297
  error: "error";
297
298
  debug: "debug";
298
- info: "info";
299
299
  warn: "warn";
300
300
  }>;
301
301
  /**
@@ -347,18 +347,18 @@ declare const LoggingLevelLayerSchema: z.ZodObject<{
347
347
  nodeId: z.ZodNullable<z.ZodString>;
348
348
  component: z.ZodNullable<z.ZodString>;
349
349
  level: z.ZodNullable<z.ZodEnum<{
350
+ info: "info";
350
351
  error: "error";
351
352
  debug: "debug";
352
- info: "info";
353
353
  warn: "warn";
354
354
  }>>;
355
355
  }, z.core.$strip>;
356
356
  /** What a line is judged against, and WHICH layer decided it. */
357
357
  declare const LoggingEffectiveSchema: z.ZodObject<{
358
358
  level: z.ZodEnum<{
359
+ info: "info";
359
360
  error: "error";
360
361
  debug: "debug";
361
- info: "info";
362
362
  warn: "warn";
363
363
  }>;
364
364
  levelSource: z.ZodEnum<{
@@ -379,9 +379,9 @@ declare const LoggingExplicitSchema: z.ZodObject<{
379
379
  nodeId: z.ZodNullable<z.ZodString>;
380
380
  component: z.ZodNullable<z.ZodString>;
381
381
  level: z.ZodNullable<z.ZodEnum<{
382
+ info: "info";
382
383
  error: "error";
383
384
  debug: "debug";
384
- info: "info";
385
385
  warn: "warn";
386
386
  }>>;
387
387
  }, z.core.$strip>>>;
@@ -449,9 +449,9 @@ declare const LogChannelWindowPatchSchema: z.ZodObject<{
449
449
  */
450
450
  declare const LoggingSettingsPatchSchema: z.ZodObject<{
451
451
  level: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
452
+ info: "info";
452
453
  error: "error";
453
454
  debug: "debug";
454
- info: "info";
455
455
  warn: "warn";
456
456
  }>>>;
457
457
  diagnostics: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodObject<{
@@ -539,9 +539,9 @@ declare const SetLoggingSettingsInputSchema: z.ZodObject<{
539
539
  scopeComponent: z.ZodOptional<z.ZodString>;
540
540
  patch: z.ZodObject<{
541
541
  level: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
542
+ info: "info";
542
543
  error: "error";
543
544
  debug: "debug";
544
- info: "info";
545
545
  warn: "warn";
546
546
  }>>>;
547
547
  diagnostics: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodObject<{
@@ -573,9 +573,9 @@ declare const LoggingSettingsStateSchema: z.ZodObject<{
573
573
  scopeComponent: z.ZodNullable<z.ZodString>;
574
574
  effective: z.ZodObject<{
575
575
  level: z.ZodEnum<{
576
+ info: "info";
576
577
  error: "error";
577
578
  debug: "debug";
578
- info: "info";
579
579
  warn: "warn";
580
580
  }>;
581
581
  levelSource: z.ZodEnum<{
@@ -595,9 +595,9 @@ declare const LoggingSettingsStateSchema: z.ZodObject<{
595
595
  nodeId: z.ZodNullable<z.ZodString>;
596
596
  component: z.ZodNullable<z.ZodString>;
597
597
  level: z.ZodNullable<z.ZodEnum<{
598
+ info: "info";
598
599
  error: "error";
599
600
  debug: "debug";
600
- info: "info";
601
601
  warn: "warn";
602
602
  }>>;
603
603
  }, z.core.$strip>>>;
@@ -615,8 +615,8 @@ declare const LoggingSettingsStateSchema: z.ZodObject<{
615
615
  name: z.ZodString;
616
616
  description: z.ZodString;
617
617
  defaultLevel: z.ZodEnum<{
618
- error: "error";
619
618
  info: "info";
619
+ error: "error";
620
620
  warn: "warn";
621
621
  }>;
622
622
  perDevice: z.ZodBoolean;
@@ -779,8 +779,8 @@ export declare const systemCapability: {
779
779
  groups: z.ZodReadonly<z.ZodArray<z.ZodObject<{
780
780
  plane: z.ZodEnum<{
781
781
  unknown: "unknown";
782
- mesh: "mesh";
783
782
  http: "http";
783
+ mesh: "mesh";
784
784
  ws: "ws";
785
785
  }>;
786
786
  procedure: z.ZodString;
@@ -879,9 +879,9 @@ export declare const systemCapability: {
879
879
  scopeComponent: z.ZodNullable<z.ZodString>;
880
880
  effective: z.ZodObject<{
881
881
  level: z.ZodEnum<{
882
+ info: "info";
882
883
  error: "error";
883
884
  debug: "debug";
884
- info: "info";
885
885
  warn: "warn";
886
886
  }>;
887
887
  levelSource: z.ZodEnum<{
@@ -901,9 +901,9 @@ export declare const systemCapability: {
901
901
  nodeId: z.ZodNullable<z.ZodString>;
902
902
  component: z.ZodNullable<z.ZodString>;
903
903
  level: z.ZodNullable<z.ZodEnum<{
904
+ info: "info";
904
905
  error: "error";
905
906
  debug: "debug";
906
- info: "info";
907
907
  warn: "warn";
908
908
  }>>;
909
909
  }, z.core.$strip>>>;
@@ -921,8 +921,8 @@ export declare const systemCapability: {
921
921
  name: z.ZodString;
922
922
  description: z.ZodString;
923
923
  defaultLevel: z.ZodEnum<{
924
- error: "error";
925
924
  info: "info";
925
+ error: "error";
926
926
  warn: "warn";
927
927
  }>;
928
928
  perDevice: z.ZodBoolean;
@@ -951,9 +951,9 @@ export declare const systemCapability: {
951
951
  scopeComponent: z.ZodOptional<z.ZodString>;
952
952
  patch: z.ZodObject<{
953
953
  level: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
954
+ info: "info";
954
955
  error: "error";
955
956
  debug: "debug";
956
- info: "info";
957
957
  warn: "warn";
958
958
  }>>>;
959
959
  diagnostics: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodObject<{
@@ -975,9 +975,9 @@ export declare const systemCapability: {
975
975
  scopeComponent: z.ZodNullable<z.ZodString>;
976
976
  effective: z.ZodObject<{
977
977
  level: z.ZodEnum<{
978
+ info: "info";
978
979
  error: "error";
979
980
  debug: "debug";
980
- info: "info";
981
981
  warn: "warn";
982
982
  }>;
983
983
  levelSource: z.ZodEnum<{
@@ -997,9 +997,9 @@ export declare const systemCapability: {
997
997
  nodeId: z.ZodNullable<z.ZodString>;
998
998
  component: z.ZodNullable<z.ZodString>;
999
999
  level: z.ZodNullable<z.ZodEnum<{
1000
+ info: "info";
1000
1001
  error: "error";
1001
1002
  debug: "debug";
1002
- info: "info";
1003
1003
  warn: "warn";
1004
1004
  }>>;
1005
1005
  }, z.core.$strip>>>;
@@ -1017,8 +1017,8 @@ export declare const systemCapability: {
1017
1017
  name: z.ZodString;
1018
1018
  description: z.ZodString;
1019
1019
  defaultLevel: z.ZodEnum<{
1020
- error: "error";
1021
1020
  info: "info";
1021
+ error: "error";
1022
1022
  warn: "warn";
1023
1023
  }>;
1024
1024
  perDevice: z.ZodBoolean;
@@ -433,6 +433,18 @@ declare const OauthSessionSummarySchema: z.ZodObject<{
433
433
  * delegation, structural caller-scope subset check goes inside the
434
434
  * provider.
435
435
  */
436
+ declare const ExternalIdentitySchema: z.ZodObject<{
437
+ provider: z.ZodString;
438
+ subject: z.ZodString;
439
+ issuer: z.ZodString;
440
+ userId: z.ZodString;
441
+ label: z.ZodOptional<z.ZodString>;
442
+ linkedAt: z.ZodNumber;
443
+ }, z.core.$strip>;
444
+ declare const ExternalIdentityKeySchema: z.ZodObject<{
445
+ provider: z.ZodString;
446
+ subject: z.ZodString;
447
+ }, z.core.$strip>;
436
448
  export declare const userManagementCapability: {
437
449
  readonly name: "user-management";
438
450
  readonly scope: "system";
@@ -1228,6 +1240,46 @@ export declare const userManagementCapability: {
1228
1240
  includeLinked: z.ZodOptional<z.ZodBoolean>;
1229
1241
  }, z.core.$strip>], "type">>>;
1230
1242
  }, z.core.$strip>>, import("./capability-definition.js").CapabilityMethodKind>;
1243
+ readonly listExternalIdentities: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
1244
+ userId: z.ZodString;
1245
+ }, z.core.$strip>, z.ZodArray<z.ZodObject<{
1246
+ provider: z.ZodString;
1247
+ subject: z.ZodString;
1248
+ issuer: z.ZodString;
1249
+ userId: z.ZodString;
1250
+ label: z.ZodOptional<z.ZodString>;
1251
+ linkedAt: z.ZodNumber;
1252
+ }, z.core.$strip>>, import("./capability-definition.js").CapabilityMethodKind>;
1253
+ /** The user an identity is linked to, or `null`. */
1254
+ readonly findUserByExternalIdentity: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
1255
+ provider: z.ZodString;
1256
+ subject: z.ZodString;
1257
+ }, z.core.$strip>, z.ZodNullable<z.ZodObject<{
1258
+ userId: z.ZodString;
1259
+ issuer: z.ZodString;
1260
+ }, z.core.$strip>>, import("./capability-definition.js").CapabilityMethodKind>;
1261
+ /**
1262
+ * Link `(provider, subject)` to `userId`. Idempotent for the same user;
1263
+ * REFUSES (throws) an identity already linked to another user, and a
1264
+ * user that does not exist.
1265
+ */
1266
+ readonly linkExternalIdentity: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
1267
+ provider: z.ZodString;
1268
+ subject: z.ZodString;
1269
+ userId: z.ZodString;
1270
+ issuer: z.ZodString;
1271
+ label: z.ZodOptional<z.ZodString>;
1272
+ }, z.core.$strip>, z.ZodObject<{
1273
+ success: z.ZodLiteral<true>;
1274
+ }, z.core.$strip>, "mutation">;
1275
+ /** Remove one link of `userId`. `success: false` when it was not linked to that user. */
1276
+ readonly unlinkExternalIdentity: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
1277
+ provider: z.ZodString;
1278
+ subject: z.ZodString;
1279
+ userId: z.ZodString;
1280
+ }, z.core.$strip>, z.ZodObject<{
1281
+ success: z.ZodBoolean;
1282
+ }, z.core.$strip>, "mutation">;
1231
1283
  readonly listOauthSessions: import("./capability-definition.js").CapabilityMethodSchema<z.ZodVoid, z.ZodArray<z.ZodObject<{
1232
1284
  id: z.ZodString;
1233
1285
  userId: z.ZodString;
@@ -1293,4 +1345,4 @@ export declare const userManagementCapability: {
1293
1345
  };
1294
1346
  };
1295
1347
  export type IUserManagementProvider = InferProvider<typeof userManagementCapability>;
1296
- export { ApiKeySummarySchema, CreateApiKeyInputSchema, CreateApiKeyResultSchema, CreateScopedTokenInputSchema, CreateScopedTokenResultSchema, CreateUserInputSchema, OauthSessionSummarySchema, ScopedTokenSummarySchema, UpdateUserInputSchema, UserSummarySchema, };
1348
+ export { ApiKeySummarySchema, CreateApiKeyInputSchema, CreateApiKeyResultSchema, CreateScopedTokenInputSchema, CreateScopedTokenResultSchema, CreateUserInputSchema, ExternalIdentityKeySchema, ExternalIdentitySchema, OauthSessionSummarySchema, ScopedTokenSummarySchema, UpdateUserInputSchema, UserSummarySchema, };
@@ -87,8 +87,8 @@ export type WebrtcStreamChoice = z.infer<typeof WebrtcStreamChoiceSchema>;
87
87
  export declare const WebrtcLadderDecisionSchema: z.ZodObject<{
88
88
  cause: z.ZodEnum<{
89
89
  healthy: "healthy";
90
- loss: "loss";
91
90
  stall: "stall";
91
+ loss: "loss";
92
92
  }>;
93
93
  tier: z.ZodNullable<z.ZodEnum<{
94
94
  high: "high";
@@ -211,8 +211,8 @@ export declare const WebrtcSessionDebugSchema: z.ZodObject<{
211
211
  lastDecision: z.ZodNullable<z.ZodObject<{
212
212
  cause: z.ZodEnum<{
213
213
  healthy: "healthy";
214
- loss: "loss";
215
214
  stall: "stall";
215
+ loss: "loss";
216
216
  }>;
217
217
  tier: z.ZodNullable<z.ZodEnum<{
218
218
  high: "high";
@@ -652,8 +652,8 @@ export declare const webrtcSessionCapability: {
652
652
  lastDecision: z.ZodNullable<z.ZodObject<{
653
653
  cause: z.ZodEnum<{
654
654
  healthy: "healthy";
655
- loss: "loss";
656
655
  stall: "stall";
656
+ loss: "loss";
657
657
  }>;
658
658
  tier: z.ZodNullable<z.ZodEnum<{
659
659
  high: "high";
package/dist/client.js CHANGED
@@ -5752,6 +5752,18 @@ function createDeviceProxy(api, binding, opts) {
5752
5752
  completeRetrainTrack: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "completeRetrainTrack", "mutation", input),
5753
5753
  restageRetrainTrack: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "restageRetrainTrack", "mutation", input),
5754
5754
  getRetrainExportUrl: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "getRetrainExportUrl", "query", input),
5755
+ setRetrainFrameComplete: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "setRetrainFrameComplete", "mutation", input),
5756
+ writeRetrainArchive: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "writeRetrainArchive", "mutation", input),
5757
+ listRetrainAssistProfiles: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "listRetrainAssistProfiles", "query", input),
5758
+ proposeRetrainAnnotationsWithLlm: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "proposeRetrainAnnotationsWithLlm", "mutation", input),
5759
+ createRetrainCollection: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "createRetrainCollection", "mutation", input),
5760
+ listRetrainCollections: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "listRetrainCollections", "query", input),
5761
+ renameRetrainCollection: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "renameRetrainCollection", "mutation", input),
5762
+ deleteRetrainCollection: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "deleteRetrainCollection", "mutation", input),
5763
+ addRetrainFrameFromRecording: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "addRetrainFrameFromRecording", "mutation", input),
5764
+ addRetrainFramesToCollection: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "addRetrainFramesToCollection", "mutation", input),
5765
+ removeRetrainFrameFromCollection: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "removeRetrainFrameFromCollection", "mutation", input),
5766
+ listRetrainCollectionFrames: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "listRetrainCollectionFrames", "query", input),
5755
5767
  getEventMedia: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "getEventMedia", "query", input),
5756
5768
  getTrackMedia: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "getTrackMedia", "query", input),
5757
5769
  listTrackMedia: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "listTrackMedia", "query", input),
@@ -7210,6 +7222,17 @@ function createSystemProxy(api) {
7210
7222
  getAvailableTypes: (input) => dispatch("integrations", "getAvailableTypes", "query", input),
7211
7223
  testConnection: (input) => dispatch("integrations", "testConnection", "mutation", input)
7212
7224
  },
7225
+ keychainAdmin: {
7226
+ status: (input) => dispatch("keychainAdmin", "status", "query", input),
7227
+ listSecrets: (input) => dispatch("keychainAdmin", "listSecrets", "query", input),
7228
+ listAudit: (input) => dispatch("keychainAdmin", "listAudit", "query", input),
7229
+ reveal: (input) => dispatch("keychainAdmin", "reveal", "mutation", input),
7230
+ deleteOrphans: (input) => dispatch("keychainAdmin", "deleteOrphans", "mutation", input),
7231
+ rotateMasterKey: (input) => dispatch("keychainAdmin", "rotateMasterKey", "mutation", input),
7232
+ purgeRetiredKeys: (input) => dispatch("keychainAdmin", "purgeRetiredKeys", "mutation", input),
7233
+ downloadRecoveryKey: (input) => dispatch("keychainAdmin", "downloadRecoveryKey", "mutation", input),
7234
+ resetKeychain: (input) => dispatch("keychainAdmin", "resetKeychain", "mutation", input)
7235
+ },
7213
7236
  llm: {
7214
7237
  generate: (input) => dispatch("llm", "generate", "mutation", input),
7215
7238
  generateVision: (input) => dispatch("llm", "generateVision", "mutation", input),
@@ -7429,6 +7452,13 @@ function createSystemProxy(api) {
7429
7452
  suggestShares: (input) => dispatch("pipelineOrchestrator", "suggestShares", "query", input),
7430
7453
  getEffectiveShares: (input) => dispatch("pipelineOrchestrator", "getEffectiveShares", "query", input),
7431
7454
  setShareSource: (input) => dispatch("pipelineOrchestrator", "setShareSource", "mutation", input),
7455
+ getNodeBenchmarkPreflight: (input) => dispatch("pipelineOrchestrator", "getNodeBenchmarkPreflight", "query", input),
7456
+ startNodeBenchmark: (input) => dispatch("pipelineOrchestrator", "startNodeBenchmark", "mutation", input),
7457
+ getNodeBenchmarkStatus: (input) => dispatch("pipelineOrchestrator", "getNodeBenchmarkStatus", "query", input),
7458
+ abortNodeBenchmark: (input) => dispatch("pipelineOrchestrator", "abortNodeBenchmark", "mutation", input),
7459
+ getNodeBenchmarkCandidates: (input) => dispatch("pipelineOrchestrator", "getNodeBenchmarkCandidates", "query", input),
7460
+ listNodeBenchmarkResults: (input) => dispatch("pipelineOrchestrator", "listNodeBenchmarkResults", "query", input),
7461
+ deleteNodeBenchmarkResult: (input) => dispatch("pipelineOrchestrator", "deleteNodeBenchmarkResult", "mutation", input),
7432
7462
  getCameraStatuses: (input) => dispatch("pipelineOrchestrator", "getCameraStatuses", "query", input),
7433
7463
  setCameraSensors: (input) => dispatch("pipelineOrchestrator", "setCameraSensors", "mutation", input),
7434
7464
  reconcileFromDisk: (input) => dispatch("pipelineOrchestrator", "reconcileFromDisk", "mutation", input),
@@ -7442,7 +7472,10 @@ function createSystemProxy(api) {
7442
7472
  getAllCameraMetrics: (input) => dispatch("pipelineRunner", "getAllCameraMetrics", "query", input),
7443
7473
  getLocalCameras: (input) => dispatch("pipelineRunner", "getLocalCameras", "query", input),
7444
7474
  getNativeCrop: (input) => dispatch("pipelineRunner", "getNativeCrop", "query", input),
7445
- runStatelessStep: (input) => dispatch("pipelineRunner", "runStatelessStep", "mutation", input)
7475
+ runStatelessStep: (input) => dispatch("pipelineRunner", "runStatelessStep", "mutation", input),
7476
+ startNodeBench: (input) => dispatch("pipelineRunner", "startNodeBench", "mutation", input),
7477
+ getNodeBenchStatus: (input) => dispatch("pipelineRunner", "getNodeBenchStatus", "query", input),
7478
+ abortNodeBench: (input) => dispatch("pipelineRunner", "abortNodeBench", "mutation", input)
7446
7479
  },
7447
7480
  plateGallery: {
7448
7481
  getPlateMedia: (input) => dispatch("plateGallery", "getPlateMedia", "query", input),
@@ -7636,6 +7669,10 @@ function createSystemProxy(api) {
7636
7669
  oauthExchangeCode: (input) => dispatch("userManagement", "oauthExchangeCode", "mutation", input),
7637
7670
  oauthRefresh: (input) => dispatch("userManagement", "oauthRefresh", "mutation", input),
7638
7671
  oauthVerifyAccessToken: (input) => dispatch("userManagement", "oauthVerifyAccessToken", "query", input),
7672
+ listExternalIdentities: (input) => dispatch("userManagement", "listExternalIdentities", "query", input),
7673
+ findUserByExternalIdentity: (input) => dispatch("userManagement", "findUserByExternalIdentity", "query", input),
7674
+ linkExternalIdentity: (input) => dispatch("userManagement", "linkExternalIdentity", "mutation", input),
7675
+ unlinkExternalIdentity: (input) => dispatch("userManagement", "unlinkExternalIdentity", "mutation", input),
7639
7676
  listOauthSessions: (input) => dispatch("userManagement", "listOauthSessions", "query", input),
7640
7677
  revokeOauthSession: (input) => dispatch("userManagement", "revokeOauthSession", "mutation", input)
7641
7678
  }
package/dist/client.mjs CHANGED
@@ -5751,6 +5751,18 @@ function createDeviceProxy(api, binding, opts) {
5751
5751
  completeRetrainTrack: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "completeRetrainTrack", "mutation", input),
5752
5752
  restageRetrainTrack: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "restageRetrainTrack", "mutation", input),
5753
5753
  getRetrainExportUrl: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "getRetrainExportUrl", "query", input),
5754
+ setRetrainFrameComplete: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "setRetrainFrameComplete", "mutation", input),
5755
+ writeRetrainArchive: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "writeRetrainArchive", "mutation", input),
5756
+ listRetrainAssistProfiles: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "listRetrainAssistProfiles", "query", input),
5757
+ proposeRetrainAnnotationsWithLlm: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "proposeRetrainAnnotationsWithLlm", "mutation", input),
5758
+ createRetrainCollection: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "createRetrainCollection", "mutation", input),
5759
+ listRetrainCollections: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "listRetrainCollections", "query", input),
5760
+ renameRetrainCollection: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "renameRetrainCollection", "mutation", input),
5761
+ deleteRetrainCollection: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "deleteRetrainCollection", "mutation", input),
5762
+ addRetrainFrameFromRecording: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "addRetrainFrameFromRecording", "mutation", input),
5763
+ addRetrainFramesToCollection: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "addRetrainFramesToCollection", "mutation", input),
5764
+ removeRetrainFrameFromCollection: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "removeRetrainFrameFromCollection", "mutation", input),
5765
+ listRetrainCollectionFrames: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "listRetrainCollectionFrames", "query", input),
5754
5766
  getEventMedia: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "getEventMedia", "query", input),
5755
5767
  getTrackMedia: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "getTrackMedia", "query", input),
5756
5768
  listTrackMedia: (input) => dispatch("pipeline-analytics", "pipelineAnalytics", "listTrackMedia", "query", input),
@@ -7209,6 +7221,17 @@ function createSystemProxy(api) {
7209
7221
  getAvailableTypes: (input) => dispatch("integrations", "getAvailableTypes", "query", input),
7210
7222
  testConnection: (input) => dispatch("integrations", "testConnection", "mutation", input)
7211
7223
  },
7224
+ keychainAdmin: {
7225
+ status: (input) => dispatch("keychainAdmin", "status", "query", input),
7226
+ listSecrets: (input) => dispatch("keychainAdmin", "listSecrets", "query", input),
7227
+ listAudit: (input) => dispatch("keychainAdmin", "listAudit", "query", input),
7228
+ reveal: (input) => dispatch("keychainAdmin", "reveal", "mutation", input),
7229
+ deleteOrphans: (input) => dispatch("keychainAdmin", "deleteOrphans", "mutation", input),
7230
+ rotateMasterKey: (input) => dispatch("keychainAdmin", "rotateMasterKey", "mutation", input),
7231
+ purgeRetiredKeys: (input) => dispatch("keychainAdmin", "purgeRetiredKeys", "mutation", input),
7232
+ downloadRecoveryKey: (input) => dispatch("keychainAdmin", "downloadRecoveryKey", "mutation", input),
7233
+ resetKeychain: (input) => dispatch("keychainAdmin", "resetKeychain", "mutation", input)
7234
+ },
7212
7235
  llm: {
7213
7236
  generate: (input) => dispatch("llm", "generate", "mutation", input),
7214
7237
  generateVision: (input) => dispatch("llm", "generateVision", "mutation", input),
@@ -7428,6 +7451,13 @@ function createSystemProxy(api) {
7428
7451
  suggestShares: (input) => dispatch("pipelineOrchestrator", "suggestShares", "query", input),
7429
7452
  getEffectiveShares: (input) => dispatch("pipelineOrchestrator", "getEffectiveShares", "query", input),
7430
7453
  setShareSource: (input) => dispatch("pipelineOrchestrator", "setShareSource", "mutation", input),
7454
+ getNodeBenchmarkPreflight: (input) => dispatch("pipelineOrchestrator", "getNodeBenchmarkPreflight", "query", input),
7455
+ startNodeBenchmark: (input) => dispatch("pipelineOrchestrator", "startNodeBenchmark", "mutation", input),
7456
+ getNodeBenchmarkStatus: (input) => dispatch("pipelineOrchestrator", "getNodeBenchmarkStatus", "query", input),
7457
+ abortNodeBenchmark: (input) => dispatch("pipelineOrchestrator", "abortNodeBenchmark", "mutation", input),
7458
+ getNodeBenchmarkCandidates: (input) => dispatch("pipelineOrchestrator", "getNodeBenchmarkCandidates", "query", input),
7459
+ listNodeBenchmarkResults: (input) => dispatch("pipelineOrchestrator", "listNodeBenchmarkResults", "query", input),
7460
+ deleteNodeBenchmarkResult: (input) => dispatch("pipelineOrchestrator", "deleteNodeBenchmarkResult", "mutation", input),
7431
7461
  getCameraStatuses: (input) => dispatch("pipelineOrchestrator", "getCameraStatuses", "query", input),
7432
7462
  setCameraSensors: (input) => dispatch("pipelineOrchestrator", "setCameraSensors", "mutation", input),
7433
7463
  reconcileFromDisk: (input) => dispatch("pipelineOrchestrator", "reconcileFromDisk", "mutation", input),
@@ -7441,7 +7471,10 @@ function createSystemProxy(api) {
7441
7471
  getAllCameraMetrics: (input) => dispatch("pipelineRunner", "getAllCameraMetrics", "query", input),
7442
7472
  getLocalCameras: (input) => dispatch("pipelineRunner", "getLocalCameras", "query", input),
7443
7473
  getNativeCrop: (input) => dispatch("pipelineRunner", "getNativeCrop", "query", input),
7444
- runStatelessStep: (input) => dispatch("pipelineRunner", "runStatelessStep", "mutation", input)
7474
+ runStatelessStep: (input) => dispatch("pipelineRunner", "runStatelessStep", "mutation", input),
7475
+ startNodeBench: (input) => dispatch("pipelineRunner", "startNodeBench", "mutation", input),
7476
+ getNodeBenchStatus: (input) => dispatch("pipelineRunner", "getNodeBenchStatus", "query", input),
7477
+ abortNodeBench: (input) => dispatch("pipelineRunner", "abortNodeBench", "mutation", input)
7445
7478
  },
7446
7479
  plateGallery: {
7447
7480
  getPlateMedia: (input) => dispatch("plateGallery", "getPlateMedia", "query", input),
@@ -7635,6 +7668,10 @@ function createSystemProxy(api) {
7635
7668
  oauthExchangeCode: (input) => dispatch("userManagement", "oauthExchangeCode", "mutation", input),
7636
7669
  oauthRefresh: (input) => dispatch("userManagement", "oauthRefresh", "mutation", input),
7637
7670
  oauthVerifyAccessToken: (input) => dispatch("userManagement", "oauthVerifyAccessToken", "query", input),
7671
+ listExternalIdentities: (input) => dispatch("userManagement", "listExternalIdentities", "query", input),
7672
+ findUserByExternalIdentity: (input) => dispatch("userManagement", "findUserByExternalIdentity", "query", input),
7673
+ linkExternalIdentity: (input) => dispatch("userManagement", "linkExternalIdentity", "mutation", input),
7674
+ unlinkExternalIdentity: (input) => dispatch("userManagement", "unlinkExternalIdentity", "mutation", input),
7638
7675
  listOauthSessions: (input) => dispatch("userManagement", "listOauthSessions", "query", input),
7639
7676
  revokeOauthSession: (input) => dispatch("userManagement", "revokeOauthSession", "mutation", input)
7640
7677
  }
@@ -7,6 +7,11 @@ import type { AddonApi } from '../generated/addon-api.js';
7
7
  import type { DeviceProxy } from '../generated/device-proxy.js';
8
8
  import type { DeviceMeta, InitialDeviceMeta } from './device-management.js';
9
9
  import type { DeviceType } from './device-type.js';
10
+ /** What a device states about the config it persists. */
11
+ export interface DevicePersistConfigOptions {
12
+ /** Dotted paths its schema declares secret (`collectZodSecretPaths`). */
13
+ readonly secretConfigPaths?: readonly string[];
14
+ }
10
15
  export interface DeviceContext {
11
16
  /** Progressive, system-wide unique numeric device id. Injected from the
12
17
  * hub's `device-manager` via `DeviceManagerApi.allocateDeviceId` before
@@ -19,7 +24,12 @@ export interface DeviceContext {
19
24
  readonly logger: IScopedLogger;
20
25
  readonly api: AddonApi;
21
26
  readonly eventBus: IEventBus;
22
- readonly persistConfig: (data: unknown) => Promise<void>;
27
+ /**
28
+ * Persist the device's config blob. `options.secretConfigPaths` names the
29
+ * paths its schema declares secret, so the hub's door keeps those values in
30
+ * the keychain instead of the blob (D787).
31
+ */
32
+ readonly persistConfig: (data: unknown, options?: DevicePersistConfigOptions) => Promise<void>;
23
33
  /**
24
34
  * Snapshot of the persisted runtime-state blob loaded at boot.
25
35
  * `BaseDevice` hands this to `DeviceRuntimeState.fromInitial` so
@@ -81,6 +81,13 @@ export declare const DISPLAY_ICON_KEYS: readonly string[];
81
81
  export declare const DISPLAY_ICON_OFFERED_KEYS: readonly string[];
82
82
  /** Is this a key of the shared vocabulary? */
83
83
  export declare function isDisplayIconKey(value: unknown): boolean;
84
+ /**
85
+ * A stored icon value as a vocabulary key: `value` when it IS one, `fallback`
86
+ * otherwise. For an `icon` settings field (D780) whose stored value may
87
+ * predate the vocabulary (a free-text lucide name) — the field's default is
88
+ * drawn rather than nothing.
89
+ */
90
+ export declare function resolveDisplayIconKey(value: unknown, fallback: string): string;
84
91
  /** The entry for a key, or `undefined` — never a guessed one. */
85
92
  export declare function displayIconEntry(key: string): DisplayIconEntry | undefined;
86
93
  /** The entries of one group, in vocabulary order. */
@@ -12,7 +12,7 @@ export type { ExposeBlockDevicesInput, ReconcileBlockDevicesInput, } from './blo
12
12
  export { exposeBlockDevices, reconcileBlockDevices } from './block-declared-devices.js';
13
13
  export type { IDevice } from './device.js';
14
14
  export { DeviceConfig } from './device-config.js';
15
- export type { DeviceConstructor, DeviceContext, DeviceManagerApi, IDeviceRegistry, IDeviceRegistryReader, } from './device-context.js';
15
+ export type { DeviceConstructor, DeviceContext, DeviceManagerApi, DevicePersistConfigOptions, IDeviceRegistry, IDeviceRegistryReader, } from './device-context.js';
16
16
  export type { ChildLayout, ChildLayoutEntry, CreateDeviceSpec, DeviceDiscovery, DeviceManualCreation, DeviceMeta, DiscoveredDevice, InitialDeviceMeta, SavedDevice, } from './device-management.js';
17
17
  export type { DeviceProfile, DeviceProfileDefaults, DeviceProfileMatch, PipelinePhaseMode, } from './device-profile.js';
18
18
  export { BATTERY_DEVICE_PROFILE, DEVICE_PROFILES, deviceMatchesProfile, resolveDeviceProfile, } from './device-profile.js';
@@ -30,5 +30,6 @@ export type { WireableField } from './schema-fields.js';
30
30
  export { enumerateItemArrayFields, enumerateSchemaFields, unwrapSchema } from './schema-fields.js';
31
31
  export type { DeviceConfigEntry } from './zod-to-config-ui.js';
32
32
  export { zodEntriesToConfigUI } from './zod-to-config-ui.js';
33
+ export { collectZodSecretPaths, isZodSecret, SECRET_META } from './zod-secret.js';
33
34
  export type { SiteZone } from './site-zone.js';
34
35
  export { SiteZoneSchema, siteZoneKey } from './site-zone.js';
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Secret declaration on a Zod config schema (D783).
3
+ *
4
+ * A field is a secret because its schema SAYS so — `.meta({ secret: true })`,
5
+ * spelled {@link SECRET_META} — never because its key looks like a credential.
6
+ * It is the Zod twin of `secret: true` / `type: 'password'` on a config-UI
7
+ * field (`isSecretConfigField`), and every consumer that treats secrets
8
+ * specially reads it: the settings form (`zodEntriesToConfigUI`), the paths a
9
+ * device advertises at `registerDevice` (`secretConfigPaths`, which the
10
+ * non-admin redaction withholds at any depth), and the keychain later.
11
+ *
12
+ * Zod keeps `.meta()` in `z.globalRegistry`, which lives on `globalThis`, so a
13
+ * declaration made by an addon's own copy of zod is visible here.
14
+ */
15
+ import { z } from 'zod';
16
+ /**
17
+ * `{ secret: true }` — the one spelling of "this field holds a credential".
18
+ *
19
+ * Addons write the LITERAL `.meta({ secret: true })` rather than importing
20
+ * this constant: an addon running against an older `@camstack/types` would
21
+ * otherwise call `.meta(undefined)`, which in zod v4 is the metadata GETTER
22
+ * and returns no schema at all.
23
+ */
24
+ export declare const SECRET_META: {
25
+ readonly secret: true;
26
+ };
27
+ /** True when any layer of this field declares `.meta({ secret: true })`. */
28
+ export declare function isZodSecret(schema: z.ZodType): boolean;
29
+ /**
30
+ * Every declared secret path in a config schema: dotted keys, `[]` for "each
31
+ * element of this array" (`connection.password`, `rows[].token`). A declared
32
+ * object or array is reported as one path and not descended into — everything
33
+ * under it is secret.
34
+ */
35
+ export declare function collectZodSecretPaths(schema: z.ZodType, prefix?: string): readonly string[];
@@ -75,6 +75,13 @@ export declare enum EventCategory {
75
75
  * Payload: `{ packageName, addonId?, error: { message, stack }, retryCount, nextRetryAt }`.
76
76
  */
77
77
  AddonLoadFailed = "addon.load-failed",
78
+ /**
79
+ * A keychain value was stored or removed (D787). Carries the ref, its
80
+ * owner and the new version — NEVER the value. A process holding the ref
81
+ * drops its cached copy and the owning `BaseAddon` re-resolves its config.
82
+ * Telemetry (D8): a process that misses it still revalidates by version.
83
+ */
84
+ KeychainChanged = "keychain.changed",
78
85
  /**
79
86
  * Addon recovered from a previous failure. Emitted when an addon
80
87
  * transitions from `failed` back to `healthy` (typically via the
package/dist/enums.js CHANGED
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_event_category = require("./event-category-CtBAl88K.js");
2
+ const require_event_category = require("./event-category-CHduMGvg.js");
3
3
  //#region src/enums/event-source-type.ts
4
4
  var EventSourceType = /* @__PURE__ */ function(EventSourceType) {
5
5
  EventSourceType["Addon"] = "addon";
package/dist/enums.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { t as EventCategory } from "./event-category-B_0XEcLF.mjs";
1
+ import { t as EventCategory } from "./event-category-DaIZi00R.mjs";
2
2
  //#region src/enums/event-source-type.ts
3
3
  var EventSourceType = /* @__PURE__ */ function(EventSourceType) {
4
4
  EventSourceType["Addon"] = "addon";
@@ -77,6 +77,13 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
77
77
  */
78
78
  EventCategory["AddonLoadFailed"] = "addon.load-failed";
79
79
  /**
80
+ * A keychain value was stored or removed (D787). Carries the ref, its
81
+ * owner and the new version — NEVER the value. A process holding the ref
82
+ * drops its cached copy and the owning `BaseAddon` re-resolves its config.
83
+ * Telemetry (D8): a process that misses it still revalidates by version.
84
+ */
85
+ EventCategory["KeychainChanged"] = "keychain.changed";
86
+ /**
80
87
  * Addon recovered from a previous failure. Emitted when an addon
81
88
  * transitions from `failed` back to `healthy` (typically via the
82
89
  * monitor's auto-retry loop, or after manual `addons.retryLoad`).
@@ -77,6 +77,13 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
77
77
  */
78
78
  EventCategory["AddonLoadFailed"] = "addon.load-failed";
79
79
  /**
80
+ * A keychain value was stored or removed (D787). Carries the ref, its
81
+ * owner and the new version — NEVER the value. A process holding the ref
82
+ * drops its cached copy and the owning `BaseAddon` re-resolves its config.
83
+ * Telemetry (D8): a process that misses it still revalidates by version.
84
+ */
85
+ EventCategory["KeychainChanged"] = "keychain.changed";
86
+ /**
80
87
  * Addon recovered from a previous failure. Emitted when an addon
81
88
  * transitions from `failed` back to `healthy` (typically via the
82
89
  * monitor's auto-retry loop, or after manual `addons.retryLoad`).