@camstack/types 1.2.444 → 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.
package/CHANGELOG.md CHANGED
@@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [1.2.445] - 2026-10-29
11
+
12
+ ### Added
13
+
14
+ - server-management can read and set a node's launch overrides
15
+
10
16
  ## [1.2.444] - 2026-10-29
11
17
 
12
18
  ### Added
@@ -19,6 +25,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
19
25
  ### Changed
20
26
 
21
27
  - Node memory is nullable on the metrics and topology contracts: a failed read is unknown, not 0 or 100
28
+ - server-management gains getLaunchOverrides / setLaunchOverrides, the per-node heap-ceiling override
22
29
 
23
30
  ## [1.2.443] - 2026-10-29
24
31
 
@@ -119,7 +119,7 @@ export { CameraMetricsSchema, CameraMetricsWithDeviceIdSchema, OrchestratorMetri
119
119
  export type { AudioStreamPick, CameraStream, CamProfile, CamStreamKind, DecodedAudioChunkWire, ProfileRtspEntry, ProfileSlot, ProfileSlotStatus, SubscribeAudioChunksInput, SubscribeAudioChunksResult, } from './schemas/streaming-shared.js';
120
120
  export { AudioChunkFormatSchema, AudioStreamPickSchema, BrokerStatsSchema, BrokerStatusSchema, CAM_PROFILE_ORDER, CameraStreamSchema, CamProfileSchema, CamStreamKindSchema, CamStreamResolutionSchema, DecodedAudioChunkSchema, FrameHandleSchema, makeProfileBrokerId, makeSourceBrokerId, ProfileRtspEntrySchema, ProfileSlotSchema, ProfileSlotStatusSchema, parseProfileBrokerId, StreamSourceEntrySchema, StreamSourceSchema, SubscribeAudioChunksInputSchema, SubscribeAudioChunksResultSchema, selectAssignedProfileSlots, } from './schemas/streaming-shared.js';
121
121
  export { buildEventKindDescriptor, EVENT_KIND_BY_CAP, EVENTFUL_CAP_NAMES, type SensorEventKindDescriptor, } from './sensor-event-kinds.js';
122
- export { type ImageContract, ImageContractSchema, type ImageContractState, ImageContractStateSchema, type IServerManagementProvider, type RunnerBootCheck, RunnerBootCheckSchema, type RunnerRefusal, RunnerRefusalSchema, type ServerBootMode, ServerBootModeSchema, type ServerPackageStatus, ServerPackageStatusSchema, type ServerRollbackInfo, ServerRollbackInfoSchema, type ServerUpdateActionResult, ServerUpdateActionResultSchema, type ServerUpdateCheckResult, ServerUpdateCheckResultSchema, type ServerUpdateOutcome, ServerUpdateOutcomeSchema, type ServerUpdateState, ServerUpdateStateSchema, serverManagementCapability, type UpdateBlocker, UpdateBlockerSchema, type WrapperEvidence, WrapperEvidenceSchema, type WrapperIdentity, WrapperIdentitySchema, type WrapperKind, WrapperKindSchema, } from './server-management.cap.js';
122
+ export { type ImageContract, ImageContractSchema, type ImageContractState, ImageContractStateSchema, type IServerManagementProvider, type RunnerBootCheck, RunnerBootCheckSchema, type RunnerRefusal, RunnerRefusalSchema, type ServerBootMode, ServerBootModeSchema, type ServerPackageStatus, ServerPackageStatusSchema, type ServerRollbackInfo, ServerRollbackInfoSchema, type LaunchOverrides, type SetLaunchOverridesResult, type ServerUpdateActionResult, ServerUpdateActionResultSchema, type ServerUpdateCheckResult, ServerUpdateCheckResultSchema, type ServerUpdateOutcome, ServerUpdateOutcomeSchema, type ServerUpdateState, ServerUpdateStateSchema, serverManagementCapability, type UpdateBlocker, UpdateBlockerSchema, type WrapperEvidence, WrapperEvidenceSchema, type WrapperIdentity, WrapperIdentitySchema, type WrapperKind, WrapperKindSchema, } from './server-management.cap.js';
123
123
  export { type BulkRecord, BulkRecordSchema, type CollectionColumn, CollectionColumnSchema, type CollectionIndex, CollectionIndexSchema, DATA_STORE_DATABASES, type DataStoreDatabase, DataStoreDatabaseSchema, type DeclareCollectionInput, DeclareCollectionInputSchema, type ISettingsStoreProvider, type MutationFilter, MutationFilterSchema, QueryFilterSchema, SettingsRecordSchema, type SettingsStoreClient, settingsStoreCapability, } from './settings-store.cap.js';
124
124
  export type { ISmtpProvider } from './smtp-provider.cap.js';
125
125
  export { SendEmailInputSchema, SendEmailResultSchema, SmtpStatusSchema, smtpProviderCapability, } from './smtp-provider.cap.js';
@@ -379,6 +379,13 @@ declare const ServerUpdateActionResultSchema: z.ZodObject<{
379
379
  remedy: z.ZodString;
380
380
  }, z.core.$strip>>>;
381
381
  }, z.core.$strip>;
382
+ declare const LaunchOverridesSchema: z.ZodObject<{
383
+ heapMb: z.ZodNullable<z.ZodNumber>;
384
+ }, z.core.$strip>;
385
+ declare const SetLaunchOverridesResultSchema: z.ZodObject<{
386
+ heapMb: z.ZodNullable<z.ZodNumber>;
387
+ restartRequired: z.ZodBoolean;
388
+ }, z.core.$strip>;
382
389
  export declare const serverManagementCapability: {
383
390
  readonly name: 'server-management';
384
391
  readonly scope: 'system';
@@ -551,6 +558,25 @@ export declare const serverManagementCapability: {
551
558
  remedy: z.ZodString;
552
559
  }, z.core.$strip>>>;
553
560
  }, z.core.$strip>, "mutation">;
561
+ /**
562
+ * The node's persisted launch override (ADR 0970): the heap ceiling the node's
563
+ * `node` process is started with, or `null` when none is set (the closure's
564
+ * computed default applies). Read from the node's own data dir.
565
+ */
566
+ readonly getLaunchOverrides: import("./capability-definition.js").CapabilityMethodSchema<z.ZodVoid, z.ZodObject<{
567
+ heapMb: z.ZodNullable<z.ZodNumber>;
568
+ }, z.core.$strip>, import("./capability-definition.js").CapabilityMethodKind>;
569
+ /**
570
+ * Set (`heapMb`) or clear (`null`) the node's heap-ceiling override. It is
571
+ * written on the node itself and applies at the NEXT launch — restart the
572
+ * node (`restartServer`) for it to take effect.
573
+ */
574
+ readonly setLaunchOverrides: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
575
+ heapMb: z.ZodNullable<z.ZodNumber>;
576
+ }, z.core.$strip>, z.ZodObject<{
577
+ heapMb: z.ZodNullable<z.ZodNumber>;
578
+ restartRequired: z.ZodBoolean;
579
+ }, z.core.$strip>, "mutation">;
554
580
  };
555
581
  /** BIG PLAN 2: declarative mount hint — read by `@camstack/system` `buildCapRouters`. */
556
582
  readonly mount: {
@@ -570,6 +596,8 @@ export type ServerPackageStatus = z.infer<typeof ServerPackageStatusSchema>;
570
596
  export type ServerUpdateCheckResult = z.infer<typeof ServerUpdateCheckResultSchema>;
571
597
  export type ServerUpdateOutcome = z.infer<typeof ServerUpdateOutcomeSchema>;
572
598
  export type ServerUpdateActionResult = z.infer<typeof ServerUpdateActionResultSchema>;
599
+ export type LaunchOverrides = z.infer<typeof LaunchOverridesSchema>;
600
+ export type SetLaunchOverridesResult = z.infer<typeof SetLaunchOverridesResultSchema>;
573
601
  export type RunnerBootCheck = z.infer<typeof RunnerBootCheckSchema>;
574
602
  export type RunnerRefusal = z.infer<typeof RunnerRefusalSchema>;
575
603
  export type UpdateBlocker = z.infer<typeof UpdateBlockerSchema>;
package/dist/client.js CHANGED
@@ -28970,7 +28970,9 @@ function createSystemProxy(api) {
28970
28970
  checkServerUpdate: (input) => dispatch("serverManagement", "checkServerUpdate", "mutation", input),
28971
28971
  applyServerUpdate: (input) => dispatch("serverManagement", "applyServerUpdate", "mutation", input),
28972
28972
  rollbackServerUpdate: (input) => dispatch("serverManagement", "rollbackServerUpdate", "mutation", input),
28973
- restartServer: (input) => dispatch("serverManagement", "restartServer", "mutation", input)
28973
+ restartServer: (input) => dispatch("serverManagement", "restartServer", "mutation", input),
28974
+ getLaunchOverrides: (input) => dispatch("serverManagement", "getLaunchOverrides", "query", input),
28975
+ setLaunchOverrides: (input) => dispatch("serverManagement", "setLaunchOverrides", "mutation", input)
28974
28976
  },
28975
28977
  settingsStore: {
28976
28978
  get: (input) => dispatch("settingsStore", "get", "query", input),
package/dist/client.mjs CHANGED
@@ -28969,7 +28969,9 @@ function createSystemProxy(api) {
28969
28969
  checkServerUpdate: (input) => dispatch("serverManagement", "checkServerUpdate", "mutation", input),
28970
28970
  applyServerUpdate: (input) => dispatch("serverManagement", "applyServerUpdate", "mutation", input),
28971
28971
  rollbackServerUpdate: (input) => dispatch("serverManagement", "rollbackServerUpdate", "mutation", input),
28972
- restartServer: (input) => dispatch("serverManagement", "restartServer", "mutation", input)
28972
+ restartServer: (input) => dispatch("serverManagement", "restartServer", "mutation", input),
28973
+ getLaunchOverrides: (input) => dispatch("serverManagement", "getLaunchOverrides", "query", input),
28974
+ setLaunchOverrides: (input) => dispatch("serverManagement", "setLaunchOverrides", "mutation", input)
28973
28975
  },
28974
28976
  settingsStore: {
28975
28977
  get: (input) => dispatch("settingsStore", "get", "query", input),
@@ -9087,6 +9087,20 @@ export type AppRouter = TrpcCoreRouter<{
9087
9087
  output: z.infer<typeof serverManagementCapability.methods.restartServer.output>;
9088
9088
  meta: object;
9089
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
+ }>;
9090
9104
  }>>;
9091
9105
  settingsStore: TRPCBuiltRouter<{
9092
9106
  ctx: TrpcContext;
@@ -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: 1427 method paths across 192 capabilities.
9
+ * Coverage: 1429 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';
@@ -113,7 +113,7 @@ export interface SystemProxy {
113
113
  readonly recordingArchive: Pick<InferProvider<typeof recordingArchiveCapability>, 'getAvailabilityBatch' | 'getDaysWithRecordingsBatch' | 'getStorageUsage' | 'listOpsLog' | 'pauseForStorageMigration' | 'resumeForStorageMigration' | 'refreshStorageLocationsForMigration' | 'startStorageMigrationMove' | 'getStorageMigrationMoveStatus' | 'cancelStorageMigrationMove' | 'relocateFootage' | 'listRelocateJobs' | 'getRelocateResidue' | 'reconcileLedgerAgainstDisk' | 'cancelRelocateJob' | 'planStorageRebalance' | 'startStorageRebalance' | 'getPlacement' | 'setDevicePlacement'>;
114
114
  readonly recordingExport: Pick<InferProvider<typeof recordingExportCapability>, 'createExport' | 'getExport' | 'cancelExport' | 'deleteExport' | 'getDownloadUrl' | 'readExportBytes'>;
115
115
  readonly remote: Pick<InferProvider<typeof remoteCapability>, 'getConfig' | 'setConfig' | 'listCommands' | 'sendCommand' | 'sendMediaCommand'>;
116
- readonly serverManagement: Pick<InferProvider<typeof serverManagementCapability>, 'getServerPackageStatus' | 'checkServerUpdate' | 'applyServerUpdate' | 'rollbackServerUpdate' | 'restartServer'>;
116
+ readonly serverManagement: Pick<InferProvider<typeof serverManagementCapability>, 'getServerPackageStatus' | 'checkServerUpdate' | 'applyServerUpdate' | 'rollbackServerUpdate' | 'restartServer' | 'getLaunchOverrides' | 'setLaunchOverrides'>;
117
117
  readonly settingsStore: Pick<InferProvider<typeof settingsStoreCapability>, 'get' | 'set' | 'query' | 'upsert' | 'upsertMany' | 'insert' | 'insertMany' | 'transact' | 'update' | 'delete' | 'deleteWhere' | 'updateWhere' | 'count' | 'aggregate' | 'histogram' | 'isEmpty' | 'declareCollection'>;
118
118
  readonly storage: Pick<InferProvider<typeof storageCapability>, 'resolve' | 'write' | 'read' | 'exists' | 'list' | 'delete' | 'getAvailableSpace' | 'beginUpload' | 'writeChunk' | 'finalizeUpload' | 'abortUpload' | 'beginDownload' | 'readChunk' | 'endDownload' | 'listLocations' | 'listLocationDeclarations' | 'upsertLocation' | 'deleteLocation' | 'listDrainProgress' | 'testLocation' | 'listProviders' | 'testConfig'>;
119
119
  readonly storageMigration: Pick<InferProvider<typeof storageMigrationCapability>, 'plan' | 'start' | 'status' | 'cancel' | 'movers' | 'moverClearance' | 'residue' | 'drain' | 'cleanupStart' | 'cleanupStatus' | 'cleanupCancel' | 'history'>;
package/dist/index.js CHANGED
@@ -60398,6 +60398,12 @@ var ServerUpdateActionResultSchema = zod.z.object({
60398
60398
  */
60399
60399
  blockers: zod.z.array(UpdateBlockerSchema).optional()
60400
60400
  });
60401
+ var LaunchOverridesSchema = zod.z.object({
60402
+ /** The persisted heap ceiling in MB, or `null` when none is set. */
60403
+ heapMb: zod.z.number().int().nullable() });
60404
+ var SetLaunchOverridesResultSchema = LaunchOverridesSchema.extend({
60405
+ /** Always true: the override is read at launch, not by the running process. */
60406
+ restartRequired: zod.z.boolean() });
60401
60407
  var serverManagementCapability = {
60402
60408
  name: "server-management",
60403
60409
  scope: "system",
@@ -60436,6 +60442,21 @@ var serverManagementCapability = {
60436
60442
  restartServer: require_sleep.method(zod.z.void(), ServerUpdateActionResultSchema, {
60437
60443
  kind: "mutation",
60438
60444
  auth: "admin"
60445
+ }),
60446
+ /**
60447
+ * The node's persisted launch override (ADR 0970): the heap ceiling the node's
60448
+ * `node` process is started with, or `null` when none is set (the closure's
60449
+ * computed default applies). Read from the node's own data dir.
60450
+ */
60451
+ getLaunchOverrides: require_sleep.method(zod.z.void(), LaunchOverridesSchema, { auth: "admin" }),
60452
+ /**
60453
+ * Set (`heapMb`) or clear (`null`) the node's heap-ceiling override. It is
60454
+ * written on the node itself and applies at the NEXT launch — restart the
60455
+ * node (`restartServer`) for it to take effect.
60456
+ */
60457
+ setLaunchOverrides: require_sleep.method(zod.z.object({ heapMb: zod.z.number().int().min(512).max(65536).nullable() }), SetLaunchOverridesResultSchema, {
60458
+ kind: "mutation",
60459
+ auth: "admin"
60439
60460
  })
60440
60461
  },
60441
60462
  /** BIG PLAN 2: declarative mount hint — read by `@camstack/system` `buildCapRouters`. */
@@ -96644,6 +96665,13 @@ var METHOD_ACCESS_MAP = Object.freeze({
96644
96665
  access: "create",
96645
96666
  role: "admin"
96646
96667
  },
96668
+ "serverManagement.getLaunchOverrides": {
96669
+ capName: "server-management",
96670
+ capScope: "system",
96671
+ addonId: null,
96672
+ access: "view",
96673
+ role: "admin"
96674
+ },
96647
96675
  "serverManagement.getServerPackageStatus": {
96648
96676
  capName: "server-management",
96649
96677
  capScope: "system",
@@ -96665,6 +96693,13 @@ var METHOD_ACCESS_MAP = Object.freeze({
96665
96693
  access: "create",
96666
96694
  role: "admin"
96667
96695
  },
96696
+ "serverManagement.setLaunchOverrides": {
96697
+ capName: "server-management",
96698
+ capScope: "system",
96699
+ addonId: null,
96700
+ access: "create",
96701
+ role: "admin"
96702
+ },
96668
96703
  "settingsStore.aggregate": {
96669
96704
  capName: "settings-store",
96670
96705
  capScope: "system",
@@ -110845,7 +110880,9 @@ function createSystemProxy(api) {
110845
110880
  checkServerUpdate: (input) => dispatch("serverManagement", "checkServerUpdate", "mutation", input),
110846
110881
  applyServerUpdate: (input) => dispatch("serverManagement", "applyServerUpdate", "mutation", input),
110847
110882
  rollbackServerUpdate: (input) => dispatch("serverManagement", "rollbackServerUpdate", "mutation", input),
110848
- restartServer: (input) => dispatch("serverManagement", "restartServer", "mutation", input)
110883
+ restartServer: (input) => dispatch("serverManagement", "restartServer", "mutation", input),
110884
+ getLaunchOverrides: (input) => dispatch("serverManagement", "getLaunchOverrides", "query", input),
110885
+ setLaunchOverrides: (input) => dispatch("serverManagement", "setLaunchOverrides", "mutation", input)
110849
110886
  },
110850
110887
  settingsStore: {
110851
110888
  get: (input) => dispatch("settingsStore", "get", "query", input),
package/dist/index.mjs CHANGED
@@ -60397,6 +60397,12 @@ var ServerUpdateActionResultSchema = z.object({
60397
60397
  */
60398
60398
  blockers: z.array(UpdateBlockerSchema).optional()
60399
60399
  });
60400
+ var LaunchOverridesSchema = z.object({
60401
+ /** The persisted heap ceiling in MB, or `null` when none is set. */
60402
+ heapMb: z.number().int().nullable() });
60403
+ var SetLaunchOverridesResultSchema = LaunchOverridesSchema.extend({
60404
+ /** Always true: the override is read at launch, not by the running process. */
60405
+ restartRequired: z.boolean() });
60400
60406
  var serverManagementCapability = {
60401
60407
  name: "server-management",
60402
60408
  scope: "system",
@@ -60435,6 +60441,21 @@ var serverManagementCapability = {
60435
60441
  restartServer: method(z.void(), ServerUpdateActionResultSchema, {
60436
60442
  kind: "mutation",
60437
60443
  auth: "admin"
60444
+ }),
60445
+ /**
60446
+ * The node's persisted launch override (ADR 0970): the heap ceiling the node's
60447
+ * `node` process is started with, or `null` when none is set (the closure's
60448
+ * computed default applies). Read from the node's own data dir.
60449
+ */
60450
+ getLaunchOverrides: method(z.void(), LaunchOverridesSchema, { auth: "admin" }),
60451
+ /**
60452
+ * Set (`heapMb`) or clear (`null`) the node's heap-ceiling override. It is
60453
+ * written on the node itself and applies at the NEXT launch — restart the
60454
+ * node (`restartServer`) for it to take effect.
60455
+ */
60456
+ setLaunchOverrides: method(z.object({ heapMb: z.number().int().min(512).max(65536).nullable() }), SetLaunchOverridesResultSchema, {
60457
+ kind: "mutation",
60458
+ auth: "admin"
60438
60459
  })
60439
60460
  },
60440
60461
  /** BIG PLAN 2: declarative mount hint — read by `@camstack/system` `buildCapRouters`. */
@@ -96643,6 +96664,13 @@ var METHOD_ACCESS_MAP = Object.freeze({
96643
96664
  access: "create",
96644
96665
  role: "admin"
96645
96666
  },
96667
+ "serverManagement.getLaunchOverrides": {
96668
+ capName: "server-management",
96669
+ capScope: "system",
96670
+ addonId: null,
96671
+ access: "view",
96672
+ role: "admin"
96673
+ },
96646
96674
  "serverManagement.getServerPackageStatus": {
96647
96675
  capName: "server-management",
96648
96676
  capScope: "system",
@@ -96664,6 +96692,13 @@ var METHOD_ACCESS_MAP = Object.freeze({
96664
96692
  access: "create",
96665
96693
  role: "admin"
96666
96694
  },
96695
+ "serverManagement.setLaunchOverrides": {
96696
+ capName: "server-management",
96697
+ capScope: "system",
96698
+ addonId: null,
96699
+ access: "create",
96700
+ role: "admin"
96701
+ },
96667
96702
  "settingsStore.aggregate": {
96668
96703
  capName: "settings-store",
96669
96704
  capScope: "system",
@@ -110844,7 +110879,9 @@ function createSystemProxy(api) {
110844
110879
  checkServerUpdate: (input) => dispatch("serverManagement", "checkServerUpdate", "mutation", input),
110845
110880
  applyServerUpdate: (input) => dispatch("serverManagement", "applyServerUpdate", "mutation", input),
110846
110881
  rollbackServerUpdate: (input) => dispatch("serverManagement", "rollbackServerUpdate", "mutation", input),
110847
- restartServer: (input) => dispatch("serverManagement", "restartServer", "mutation", input)
110882
+ restartServer: (input) => dispatch("serverManagement", "restartServer", "mutation", input),
110883
+ getLaunchOverrides: (input) => dispatch("serverManagement", "getLaunchOverrides", "query", input),
110884
+ setLaunchOverrides: (input) => dispatch("serverManagement", "setLaunchOverrides", "mutation", input)
110848
110885
  },
110849
110886
  settingsStore: {
110850
110887
  get: (input) => dispatch("settingsStore", "get", "query", input),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/types",
3
- "version": "1.2.444",
3
+ "version": "1.2.445",
4
4
  "description": "Shared types, interfaces, and model catalogs for the CamStack detection ecosystem",
5
5
  "keywords": [
6
6
  "camstack",