@camstack/system 1.2.442 → 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.
- package/assets/record-entries/icon.svg +8 -0
- package/dist/addon-runner.js +41 -11
- package/dist/addon-runner.mjs +42 -12
- package/dist/addon-utils.js +1 -1
- package/dist/addon-utils.mjs +1 -1
- package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.js +1 -1
- package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.mjs +1 -1
- package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.js +1 -1
- package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.mjs +1 -1
- package/dist/builtins/alerts/alerts.addon.d.ts +10 -2
- package/dist/builtins/alerts/alerts.addon.js +43 -10
- package/dist/builtins/alerts/alerts.addon.mjs +43 -10
- package/dist/builtins/autotrack/index.js +1 -1
- package/dist/builtins/autotrack/index.mjs +1 -1
- package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.js +2 -2
- package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.mjs +2 -2
- package/dist/builtins/calendars/calendars.addon.js +1 -1
- package/dist/builtins/calendars/calendars.addon.mjs +1 -1
- package/dist/builtins/camera-grid/index.js +1 -1
- package/dist/builtins/camera-grid/index.mjs +1 -1
- package/dist/builtins/composer/composer.addon.js +2 -2
- package/dist/builtins/composer/composer.addon.mjs +2 -2
- package/dist/builtins/console-logging/index.js +1 -1
- package/dist/builtins/console-logging/index.mjs +1 -1
- package/dist/builtins/core-blocks/block-package.d.ts +4 -2
- package/dist/builtins/core-blocks/block-settings-store.d.ts +65 -19
- package/dist/builtins/core-blocks/core-blocks.addon.js +365 -38
- package/dist/builtins/core-blocks/core-blocks.addon.mjs +365 -38
- package/dist/builtins/device-manager/device-manager.addon.js +1 -1
- package/dist/builtins/device-manager/device-manager.addon.mjs +1 -1
- package/dist/builtins/hub-forwarder/index.js +1 -1
- package/dist/builtins/hub-forwarder/index.mjs +1 -1
- package/dist/builtins/keychain/index.js +3 -3
- package/dist/builtins/keychain/index.mjs +3 -3
- package/dist/builtins/liveness-monitor/liveness-monitor.addon.js +1 -1
- package/dist/builtins/liveness-monitor/liveness-monitor.addon.mjs +1 -1
- package/dist/builtins/local-auth/local-auth.addon.js +2 -2
- package/dist/builtins/local-auth/local-auth.addon.mjs +2 -2
- package/dist/builtins/local-network/local-network.addon.js +2 -2
- package/dist/builtins/local-network/local-network.addon.mjs +2 -2
- package/dist/builtins/loki-logging/index.js +1 -1
- package/dist/builtins/loki-logging/index.mjs +1 -1
- package/dist/builtins/native-metrics/native-metrics.addon.js +2 -2
- package/dist/builtins/native-metrics/native-metrics.addon.mjs +2 -2
- package/dist/builtins/platform-probe/index.js +2 -2
- package/dist/builtins/platform-probe/index.mjs +2 -2
- package/dist/builtins/record-entries/entries-service.d.ts +42 -0
- package/dist/builtins/record-entries/index.d.ts +1 -0
- package/dist/builtins/record-entries/index.js +142 -0
- package/dist/builtins/record-entries/index.mjs +136 -0
- package/dist/builtins/record-entries/record-entries.addon.d.ts +13 -0
- package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.js +1 -1
- package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.mjs +1 -1
- package/dist/builtins/snapshot/index.js +1 -1
- package/dist/builtins/snapshot/index.mjs +1 -1
- package/dist/builtins/sqlite-storage/file-host-client.d.ts +2 -0
- package/dist/builtins/sqlite-storage/file-host-handlers.d.ts +4 -0
- package/dist/builtins/sqlite-storage/file-host-protocol.d.ts +7 -1
- package/dist/builtins/sqlite-storage/filesystem-storage.addon.js +1 -1
- package/dist/builtins/sqlite-storage/filesystem-storage.addon.mjs +1 -1
- package/dist/builtins/sqlite-storage/index.js +1 -1
- package/dist/builtins/sqlite-storage/index.mjs +1 -1
- package/dist/builtins/sqlite-storage/owned-sqlite-file.d.ts +7 -0
- package/dist/builtins/sqlite-storage/placement-router.d.ts +5 -0
- package/dist/builtins/sqlite-storage/records/records-catalog.d.ts +29 -0
- package/dist/builtins/sqlite-storage/records/records-engine-types.d.ts +46 -0
- package/dist/builtins/sqlite-storage/records/records-engine.d.ts +90 -0
- package/dist/builtins/sqlite-storage/records/records-explain.d.ts +18 -0
- package/dist/builtins/sqlite-storage/records/records-plan.d.ts +90 -0
- package/dist/builtins/sqlite-storage/records/records-probe.d.ts +33 -0
- package/dist/builtins/sqlite-storage/records/records-provider.d.ts +59 -0
- package/dist/builtins/sqlite-storage/records/records-rows.d.ts +46 -0
- package/dist/builtins/sqlite-storage/records/records-sql.d.ts +41 -0
- package/dist/builtins/sqlite-storage/sqlite-settings-backend.d.ts +0 -10
- package/dist/builtins/sqlite-storage/sqlite-settings.addon.d.ts +8 -0
- package/dist/builtins/sqlite-storage/sqlite-settings.addon.js +337 -4
- package/dist/builtins/sqlite-storage/sqlite-settings.addon.mjs +337 -4
- package/dist/builtins/sqlite-storage/storage-admin-provider.d.ts +7 -1
- package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.js +1 -1
- package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.mjs +1 -1
- package/dist/builtins/system-config/system-config.addon.js +2 -2
- package/dist/builtins/system-config/system-config.addon.mjs +2 -2
- package/dist/builtins/winston-logging/index.js +1 -1
- package/dist/builtins/winston-logging/index.mjs +1 -1
- package/dist/{composition-sources-CftPpY4O.mjs → composition-sources-C3rKncIF.mjs} +1 -1
- package/dist/{composition-sources-DmSEMtUD.js → composition-sources-NAPZddic.js} +1 -1
- package/dist/{constants-2iWQ-Nx-.mjs → constants-BKX2QnIg.mjs} +1 -1
- package/dist/{constants-b7kpjuO4.js → constants-BXiNEIeV.js} +1 -1
- package/dist/{device-ca-tKY_ZS9H.js → device-ca-DT9X2S6d.js} +1 -1
- package/dist/{device-ca-BJpYTAPg.mjs → device-ca-jxjSL8Ov.mjs} +1 -1
- package/dist/{dist-CyIHDLCg.js → dist-D1vECb_6.js} +1247 -120
- package/dist/{dist-DsrQYcLm.mjs → dist-DERK-gP5.mjs} +1068 -121
- package/dist/file-host-worker.js +11 -1
- package/dist/file-host-worker.mjs +11 -1
- package/dist/{hub-mdns-ciao-BS2akjWx.mjs → hub-mdns-ciao-CRaC97V0.mjs} +1 -1
- package/dist/{hub-mdns-ciao-Da-0NEyr.js → hub-mdns-ciao-Cah9GCIg.js} +1 -1
- package/dist/index.js +53 -21
- package/dist/index.mjs +54 -22
- package/dist/kernel/moleculer/records-api-transport.d.ts +9 -0
- package/dist/kernel/settings-view-types.d.ts +0 -7
- package/dist/{restore-archive-Cdf09dHm.js → restore-archive-Dy-qKTdF.js} +1 -1
- package/dist/{restore-archive-RaA3uZ7H.mjs → restore-archive-daKyE24F.mjs} +1 -1
- package/dist/{wal-maintenance-C-bmkDhm.js → wal-maintenance-dAv4IdzC.js} +0 -0
- package/dist/{wal-maintenance-DE8QrreK.mjs → wal-maintenance-zRc24mOC.mjs} +0 -0
- package/package.json +22 -1
- package/dist/{custom-action-registry-BKmoaqG0.js → custom-action-registry-COyb49zm.js} +1 -1
- package/dist/{custom-action-registry-CyUuhATc.mjs → custom-action-registry-stpC3Zy-.mjs} +1 -1
package/dist/file-host-worker.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
require("./chunk-Cek0wNdY.js");
|
|
2
|
-
const require_wal_maintenance = require("./wal-maintenance-
|
|
2
|
+
const require_wal_maintenance = require("./wal-maintenance-dAv4IdzC.js");
|
|
3
3
|
let node_worker_threads = require("node:worker_threads");
|
|
4
4
|
//#region src/builtins/sqlite-storage/file-host-worker.ts
|
|
5
5
|
/**
|
|
@@ -90,6 +90,11 @@ async function main() {
|
|
|
90
90
|
return;
|
|
91
91
|
}
|
|
92
92
|
const dataTarget = backend;
|
|
93
|
+
const db = backend.getDatabase();
|
|
94
|
+
const recordsEngine = db === null || spec.databaseId === "history" ? null : new require_wal_maintenance.RecordsEngine(db, {
|
|
95
|
+
databaseId: spec.databaseId,
|
|
96
|
+
logger: logger.child("Records")
|
|
97
|
+
});
|
|
93
98
|
const vectorTarget = vectorIndex === null ? null : require_wal_maintenance.vectorProviderOf(vectorIndex);
|
|
94
99
|
const control = require_wal_maintenance.controlTargetOf(backend, node_worker_threads.threadId);
|
|
95
100
|
const answer = (id, result, transfer = false) => post({
|
|
@@ -124,6 +129,11 @@ async function main() {
|
|
|
124
129
|
answer(request.id, await require_wal_maintenance.callVector(vectorTarget, request.op, require_wal_maintenance.trustInput(request.input)), true);
|
|
125
130
|
return;
|
|
126
131
|
}
|
|
132
|
+
if (request.kind === "records") {
|
|
133
|
+
if (recordsEngine === null) throw new Error(`database "${spec.databaseId}" is not open`);
|
|
134
|
+
answer(request.id, await require_wal_maintenance.callRecords(recordsEngine, request.op, require_wal_maintenance.trustInput(request.input)));
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
127
137
|
answer(request.id, require_wal_maintenance.callControl(control, request.op, require_wal_maintenance.trustInput(request.input)));
|
|
128
138
|
} catch (err) {
|
|
129
139
|
refuse(request.id, err);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { C as
|
|
1
|
+
import { C as callControl, D as controlTargetOf, E as callVector, S as RecordsEngine, T as callRecords, a as WalMaintenance, b as trustInput, c as SqliteSettingsBackend, g as collectTransferables, m as serializeError, o as createVectorIndex, s as vectorProviderOf, v as isFileHostRequest, w as callData, y as isFileHostWorkerData } from "./wal-maintenance-zRc24mOC.mjs";
|
|
2
2
|
import { parentPort, threadId, workerData } from "node:worker_threads";
|
|
3
3
|
//#region src/builtins/sqlite-storage/file-host-worker.ts
|
|
4
4
|
/**
|
|
@@ -89,6 +89,11 @@ async function main() {
|
|
|
89
89
|
return;
|
|
90
90
|
}
|
|
91
91
|
const dataTarget = backend;
|
|
92
|
+
const db = backend.getDatabase();
|
|
93
|
+
const recordsEngine = db === null || spec.databaseId === "history" ? null : new RecordsEngine(db, {
|
|
94
|
+
databaseId: spec.databaseId,
|
|
95
|
+
logger: logger.child("Records")
|
|
96
|
+
});
|
|
92
97
|
const vectorTarget = vectorIndex === null ? null : vectorProviderOf(vectorIndex);
|
|
93
98
|
const control = controlTargetOf(backend, threadId);
|
|
94
99
|
const answer = (id, result, transfer = false) => post({
|
|
@@ -123,6 +128,11 @@ async function main() {
|
|
|
123
128
|
answer(request.id, await callVector(vectorTarget, request.op, trustInput(request.input)), true);
|
|
124
129
|
return;
|
|
125
130
|
}
|
|
131
|
+
if (request.kind === "records") {
|
|
132
|
+
if (recordsEngine === null) throw new Error(`database "${spec.databaseId}" is not open`);
|
|
133
|
+
answer(request.id, await callRecords(recordsEngine, request.op, trustInput(request.input)));
|
|
134
|
+
return;
|
|
135
|
+
}
|
|
126
136
|
answer(request.id, callControl(control, request.op, trustInput(request.input)));
|
|
127
137
|
} catch (err) {
|
|
128
138
|
refuse(request.id, err);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { o as __toESM } from "./chunk-CNf5ZN-e.mjs";
|
|
2
|
-
import {
|
|
2
|
+
import { Qi as userError } from "./dist-DERK-gP5.mjs";
|
|
3
3
|
import { f as X509Certificate$1 } from "./x509.es-DK__ETIe.mjs";
|
|
4
4
|
import { A as isConstrainedCa, E as reasonRequiresNewCa, M as permitsIdentity, P as readNameConstraints, T as evaluateExistingCert, _ as issueLeaf, g as generateCa, v as loadCa, y as collectCertIdentity } from "./agent-https-U0d4uvn2.mjs";
|
|
5
5
|
import { X509Certificate, createPrivateKey } from "node:crypto";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const require_chunk = require("./chunk-Cek0wNdY.js");
|
|
2
|
-
const require_dist = require("./dist-
|
|
2
|
+
const require_dist = require("./dist-D1vECb_6.js");
|
|
3
3
|
const require_x509_es = require("./x509.es-C4cOo48M.js");
|
|
4
4
|
const require_agent_https = require("./agent-https-DlpTMDqA.js");
|
|
5
5
|
let node_crypto = require("node:crypto");
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_chunk = require("./chunk-Cek0wNdY.js");
|
|
3
|
-
const require_dist = require("./dist-
|
|
4
|
-
const require_device_ca = require("./device-ca-
|
|
3
|
+
const require_dist = require("./dist-D1vECb_6.js");
|
|
4
|
+
const require_device_ca = require("./device-ca-DT9X2S6d.js");
|
|
5
5
|
const require_builtins_alerts_alerts_addon = require("./builtins/alerts/alerts.addon.js");
|
|
6
6
|
require("./builtins/alerts/index.js");
|
|
7
7
|
const require_builtins_calendars_calendars_addon = require("./builtins/calendars/calendars.addon.js");
|
|
@@ -25,21 +25,21 @@ require("./builtins/local-auth/index.js");
|
|
|
25
25
|
const require_builtins_loki_logging_index = require("./builtins/loki-logging/index.js");
|
|
26
26
|
const require_builtins_native_metrics_native_metrics_addon = require("./builtins/native-metrics/native-metrics.addon.js");
|
|
27
27
|
const require_builtins_sqlite_storage_filesystem_storage_addon = require("./builtins/sqlite-storage/filesystem-storage.addon.js");
|
|
28
|
-
const require_wal_maintenance = require("./wal-maintenance-
|
|
28
|
+
const require_wal_maintenance = require("./wal-maintenance-dAv4IdzC.js");
|
|
29
29
|
const require_builtins_sqlite_storage_sqlite_settings_addon = require("./builtins/sqlite-storage/sqlite-settings.addon.js");
|
|
30
30
|
const require_builtins_sqlite_storage_index = require("./builtins/sqlite-storage/index.js");
|
|
31
31
|
const require_builtins_storage_orchestrator_storage_orchestrator_addon = require("./builtins/storage-orchestrator/storage-orchestrator.addon.js");
|
|
32
32
|
require("./builtins/storage-orchestrator/index.js");
|
|
33
33
|
const require_agent_https = require("./agent-https-DlpTMDqA.js");
|
|
34
|
-
const require_constants = require("./constants-
|
|
34
|
+
const require_constants = require("./constants-BXiNEIeV.js");
|
|
35
35
|
const require_builtins_system_config_system_config_addon = require("./builtins/system-config/system-config.addon.js");
|
|
36
36
|
require("./builtins/system-config/index.js");
|
|
37
37
|
const require_builtins_winston_logging_index = require("./builtins/winston-logging/index.js");
|
|
38
|
-
const require_custom_action_registry = require("./custom-action-registry-
|
|
39
|
-
const require_hub_mdns_ciao = require("./hub-mdns-ciao-
|
|
38
|
+
const require_custom_action_registry = require("./custom-action-registry-COyb49zm.js");
|
|
39
|
+
const require_hub_mdns_ciao = require("./hub-mdns-ciao-Cah9GCIg.js");
|
|
40
40
|
const require_platform_key_source = require("./platform-key-source-Di7HrlGR.js");
|
|
41
41
|
const require_resource_monitor = require("./resource-monitor-mio9dSCT.js");
|
|
42
|
-
const require_restore_archive = require("./restore-archive-
|
|
42
|
+
const require_restore_archive = require("./restore-archive-Dy-qKTdF.js");
|
|
43
43
|
let zod = require("zod");
|
|
44
44
|
let node_crypto = require("node:crypto");
|
|
45
45
|
node_crypto = require_chunk.__toESM(node_crypto);
|
|
@@ -48,6 +48,8 @@ let node_net = require("node:net");
|
|
|
48
48
|
let node_fs_promises = require("node:fs/promises");
|
|
49
49
|
let node_path = require("node:path");
|
|
50
50
|
node_path = require_chunk.__toESM(node_path);
|
|
51
|
+
let node_util = require("node:util");
|
|
52
|
+
node_util = require_chunk.__toESM(node_util);
|
|
51
53
|
let node_os = require("node:os");
|
|
52
54
|
node_os = require_chunk.__toESM(node_os);
|
|
53
55
|
let node_url = require("node:url");
|
|
@@ -55,8 +57,6 @@ let _camstack_types_addon = require("@camstack/types/addon");
|
|
|
55
57
|
let node_fs = require("node:fs");
|
|
56
58
|
node_fs = require_chunk.__toESM(node_fs);
|
|
57
59
|
let node_child_process = require("node:child_process");
|
|
58
|
-
let node_util = require("node:util");
|
|
59
|
-
node_util = require_chunk.__toESM(node_util);
|
|
60
60
|
let node_events = require("node:events");
|
|
61
61
|
let node_http = require("node:http");
|
|
62
62
|
let node_v8 = require("node:v8");
|
|
@@ -11377,8 +11377,10 @@ function buildOneCapRouter(def, primitives, services) {
|
|
|
11377
11377
|
continue;
|
|
11378
11378
|
}
|
|
11379
11379
|
if (method.isObject) {
|
|
11380
|
+
const stampedCap = require_dist.CALLER_STAMPED_CAPABILITIES.includes(capName);
|
|
11380
11381
|
const schema = nodeIdData ? inputSchema : require_dist.looseSchema(inputSchema);
|
|
11381
|
-
procedures[method.name] = base.input(schema)[procKind](({ input, ctx }) => {
|
|
11382
|
+
procedures[method.name] = base.input(schema)[procKind](({ input: wireInput, ctx }) => {
|
|
11383
|
+
const input = stampedCap ? require_dist.withoutCallerStamp(wireInput) : wireInput;
|
|
11382
11384
|
if (nodeIdData) return invokeCapMethod(requireLocal(capName, () => getLocal(ctx), services), method, method.callerRequired ? injectCaller(stripKeys(input, []).rest, ctx, capName, method.name, services) : input, capName, isCollection, services);
|
|
11383
11385
|
if (isCollection) {
|
|
11384
11386
|
const { rest, picked } = stripKeys(input, ["nodeId", "addonId"]);
|
|
@@ -15670,6 +15672,29 @@ function asName(value) {
|
|
|
15670
15672
|
return typeof value === "string" && value.length > 0 ? value : null;
|
|
15671
15673
|
}
|
|
15672
15674
|
//#endregion
|
|
15675
|
+
//#region src/kernel/moleculer/records-api-transport.ts
|
|
15676
|
+
function recordsTransportOf(api) {
|
|
15677
|
+
const r = api.records;
|
|
15678
|
+
return {
|
|
15679
|
+
declareKinds: (input) => r.declareKinds.mutate(input),
|
|
15680
|
+
get: (input) => r.get.query(input),
|
|
15681
|
+
getMany: (input) => r.getMany.query(input),
|
|
15682
|
+
secretRefs: (input) => r.secretRefs.query(input),
|
|
15683
|
+
put: (input) => r.put.mutate(input),
|
|
15684
|
+
putMany: (input) => r.putMany.mutate(input),
|
|
15685
|
+
patch: (input) => r.patch.mutate(input),
|
|
15686
|
+
delete: (input) => r.delete.mutate(input),
|
|
15687
|
+
deleteMany: (input) => r.deleteMany.mutate(input),
|
|
15688
|
+
query: (input) => r.query.query(input),
|
|
15689
|
+
count: (input) => r.count.query(input),
|
|
15690
|
+
histogram: (input) => r.histogram.query(input),
|
|
15691
|
+
aggregate: (input) => r.aggregate.query(input),
|
|
15692
|
+
deleteWhere: (input) => r.deleteWhere.mutate(input),
|
|
15693
|
+
deleteDevice: (input) => r.deleteDevice.mutate(input),
|
|
15694
|
+
allocateId: (input) => r.allocateId.mutate(input)
|
|
15695
|
+
};
|
|
15696
|
+
}
|
|
15697
|
+
//#endregion
|
|
15673
15698
|
//#region src/kernel/moleculer/children-batch-loader.ts
|
|
15674
15699
|
/**
|
|
15675
15700
|
* Narrow an untyped cap answer to the fields the reconcile reads.
|
|
@@ -23567,6 +23592,19 @@ async function buildAddonContext(runtime, declaration, dataDir, options) {
|
|
|
23567
23592
|
nodeId
|
|
23568
23593
|
});
|
|
23569
23594
|
workerDisposerChain.add(() => peerBytesFacility.dispose());
|
|
23595
|
+
const secrets = (0, _camstack_types_addon.createSecretsAccess)({
|
|
23596
|
+
owner: addonId,
|
|
23597
|
+
transport: {
|
|
23598
|
+
put: (input) => api.keychain.put.mutate({
|
|
23599
|
+
ref: input.ref,
|
|
23600
|
+
value: input.value
|
|
23601
|
+
}),
|
|
23602
|
+
resolve: (input) => api.keychain.resolve.query({ refs: [...input.refs] }),
|
|
23603
|
+
delete: (input) => api.keychain.delete.mutate({ refs: [...input.refs] }),
|
|
23604
|
+
getState: () => api.keychain.getState.query({})
|
|
23605
|
+
},
|
|
23606
|
+
eventBus: scopedEventBus
|
|
23607
|
+
});
|
|
23570
23608
|
return {
|
|
23571
23609
|
id: addonId,
|
|
23572
23610
|
logger: scopedLogger,
|
|
@@ -23579,18 +23617,12 @@ async function buildAddonContext(runtime, declaration, dataDir, options) {
|
|
|
23579
23617
|
api,
|
|
23580
23618
|
deps: new AddonDepsManager(addonDataDir, scopedLogger),
|
|
23581
23619
|
settings: settingsView,
|
|
23582
|
-
secrets
|
|
23620
|
+
secrets,
|
|
23621
|
+
records: (0, _camstack_types_addon.createRecordsAccess)({
|
|
23583
23622
|
owner: addonId,
|
|
23584
|
-
transport:
|
|
23585
|
-
|
|
23586
|
-
|
|
23587
|
-
value: input.value
|
|
23588
|
-
}),
|
|
23589
|
-
resolve: (input) => api.keychain.resolve.query({ refs: [...input.refs] }),
|
|
23590
|
-
delete: (input) => api.keychain.delete.mutate({ refs: [...input.refs] }),
|
|
23591
|
-
getState: () => api.keychain.getState.query({})
|
|
23592
|
-
},
|
|
23593
|
-
eventBus: scopedEventBus
|
|
23623
|
+
transport: recordsTransportOf(api),
|
|
23624
|
+
secrets,
|
|
23625
|
+
logger: scopedLogger
|
|
23594
23626
|
}),
|
|
23595
23627
|
kernel: (() => {
|
|
23596
23628
|
const streamProbe = runtime.mode === "broker" ? {
|
package/dist/index.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { i as __require } from "./chunk-CNf5ZN-e.mjs";
|
|
2
|
-
import { $
|
|
3
|
-
import { d as JWT_SIGNING_KEY_REF, f as JwtSigningKeyUnavailableError, g as processJwtSigningKey, i as generateDeviceCa, l as verifyDeviceLeaf, m as getProcessJwtSigningKeyState, n as DEVICE_CA_KEY_REF, o as issueDeviceLeaf, p as SYSTEM_SECRET_OWNER, s as loadDeviceCa, u as verifyDeviceSignature, v as staticJwtSigningKey } from "./device-ca-
|
|
2
|
+
import { $i as EventCategory$1, $r as ReadinessRegistry, Gi as scopeKey, Kn as resolveMethodAuth, Lr as DATAPLANE_SECRET_HEADER$1, On as objectInputDeclaresAddonId, Pn as procedureAuthKey, Pr as errMsg$1, Qi as userError, Qr as RUNTIME_DEFAULTS, Ri as parseJsonObject, Rr as DEVICE_SETTINGS_CONTRIBUTION_METHODS, Si as emitDownForOwnedCaps, Ui as resolveCapMount, V as METHOD_ACCESS_MAP, Vi as readinessKey, Xn as scopesAllowDeviceCap, Yn as scopesAllowAddon, Yt as extractNestedAddonId, c as CALLER_STAMPED_CAPABILITIES, cn as isVoidInput, di as asNumber, ei as ReadinessTimeoutError, f as CATALOG_LANGS, fi as asString$1, in as isCollectionArrayMethod, kn as objectInputDeclaresRequiredDeviceId, ln as kebabToCamel$1, mn as lifecycleJobSchema, n as AGENT_MDNS_TXT_KEYS, nr as splitTranslationRef, ot as addonSettingsCapability, r as ALL_CAPABILITY_DEFINITIONS, rn as isArrayOutputSchema, sn as isObjectInput, t as AGENT_MDNS_SERVICE_TYPE, tn as interpolate, ui as asJsonObject$1, ur as supportedRuntimes, v as CatalogFileSchema, vn as logLevelAtMost, vr as withoutCallerStamp, wi as expandCapMethods, yi as createEvent$1, yn as looseSchema, z as LOG_LEVEL_RANK, zi as parseJsonUnknown, zr as DEVICE_STATUS_METHOD } from "./dist-DERK-gP5.mjs";
|
|
3
|
+
import { d as JWT_SIGNING_KEY_REF, f as JwtSigningKeyUnavailableError, g as processJwtSigningKey, i as generateDeviceCa, l as verifyDeviceLeaf, m as getProcessJwtSigningKeyState, n as DEVICE_CA_KEY_REF, o as issueDeviceLeaf, p as SYSTEM_SECRET_OWNER, s as loadDeviceCa, u as verifyDeviceSignature, v as staticJwtSigningKey } from "./device-ca-jxjSL8Ov.mjs";
|
|
4
4
|
import { AlertCenterAddon } from "./builtins/alerts/alerts.addon.mjs";
|
|
5
5
|
import "./builtins/alerts/index.mjs";
|
|
6
6
|
import { CalendarsAddon } from "./builtins/calendars/calendars.addon.mjs";
|
|
@@ -24,21 +24,21 @@ import "./builtins/local-auth/index.mjs";
|
|
|
24
24
|
import { LokiDestination, LokiLoggingAddon } from "./builtins/loki-logging/index.mjs";
|
|
25
25
|
import NativeMetricsAddon, { a as NativeMetricsProvider, n as nodeProcReader, r as parseProcStat } from "./builtins/native-metrics/native-metrics.addon.mjs";
|
|
26
26
|
import { FilesystemStorageAddon, t as FilesystemStorageProvider } from "./builtins/sqlite-storage/filesystem-storage.addon.mjs";
|
|
27
|
-
import { c as SqliteSettingsBackend } from "./wal-maintenance-
|
|
27
|
+
import { c as SqliteSettingsBackend } from "./wal-maintenance-zRc24mOC.mjs";
|
|
28
28
|
import { SqliteSettingsAddon } from "./builtins/sqlite-storage/sqlite-settings.addon.mjs";
|
|
29
29
|
import { ConfigStore, DeviceStore } from "./builtins/sqlite-storage/index.mjs";
|
|
30
30
|
import { StorageOrchestratorAddon, a as stripForwardedCaller, i as createHubCapForwardService, n as HUB_CAP_FWD_ACTION, o as buildStorageLocationRegistry, r as HUB_CAP_FWD_SERVICE, t as StorageOrchestratorService } from "./builtins/storage-orchestrator/storage-orchestrator.addon.mjs";
|
|
31
31
|
import "./builtins/storage-orchestrator/index.mjs";
|
|
32
32
|
import { A as isConstrainedCa, C as MAX_LEAF_VALIDITY_DAYS, D as PERMITTED_DNS_SUFFIXES, F as AGENT_HTTPS_NAMES_COLLECTION, I as AGENT_HTTPS_NAMES_COLUMNS, L as AgentHttpsNames, M as permitsIdentity, N as permitsName, O as PERMITTED_IP_RANGES, P as readNameConstraints, R as getProcessAgentHttpsNames, S as LEAF_RENEWAL_WINDOW_DAYS, T as evaluateExistingCert, a as collectAgentNames, b as systemHostFacts, c as installAgentHttps, d as issueAgentHttpsLeaf, f as loadAgentHttps, h as CA_COMMON_NAME, i as certificateNames, j as isLocalOnlyHostname, k as buildNameConstraintSet, l as isContainerBridgeAddress, m as pinnedHttpsCaFingerprint, n as acceptAgentSans, o as createAgentHttpsRequest, p as pemDigest, r as agentHttpsPaths, s as describeHttpsLeaf, t as AgentHttpsInstallError, u as isPrivateAddress, w as SERVER_AUTH_OID, x as CA_VALIDITY_DAYS, y as collectCertIdentity, z as setProcessAgentHttpsNames } from "./agent-https-U0d4uvn2.mjs";
|
|
33
|
-
import { a as MESH_CA_KEY_REF, i as MESH_CA_FIELD, n as DEFAULT_HUB_TLS_TCP_PORT, o as MESH_CA_SETTINGS_KEY } from "./constants-
|
|
33
|
+
import { a as MESH_CA_KEY_REF, i as MESH_CA_FIELD, n as DEFAULT_HUB_TLS_TCP_PORT, o as MESH_CA_SETTINGS_KEY } from "./constants-BKX2QnIg.mjs";
|
|
34
34
|
import { $ as generateMeshKeyPair, A as setProcessMeshPeerTransportLookup, B as describeMeshLeaf, C as setProcessMeshTlsEnabler, D as getProcessPeerLeaf, E as getProcessNodeMeshTransport, F as setProcessMeshTlsListenerState, G as MeshCaKeeper, H as setProcessMeshCertificateRegistry, I as MESH_NODE_CERTIFICATES_COLLECTION, J as caFingerprint, K as getProcessMeshCaState, L as MESH_NODE_CERTIFICATES_COLUMNS, M as revokeMeshCertificate, N as getProcessMeshTlsListenerState, O as isProcessVerifiedMeshPeer, P as openMeshTlsWhenRevocationsLoaded, Q as generateMeshCa, R as MeshCertificateRegistry, S as ServiceBroker, SystemConfigAddon, T as emitProcessNodeRegistered, U as MeshCrl, V as getProcessMeshCertificateRegistry, W as processMeshCrl, X as createMeshCsrPem, Y as caFingerprintCompact, Z as exportMeshPrivateKeyPem, _ as signPairingProof, _t as readCidrSetting, a as hubHostFromMeshAddress, at as AGENT_UI_UNLOCK_TTL_MS, b as TlsTcpTransporter, c as PAIRING_MAX_SESSIONS, ct as AGENT_UI_UNLOCK_VERSION, d as PAIRING_PROTOCOL, dt as mintAgentUiUnlockTicket, et as isValidAgentNodeId, f as PAIRING_TTL_MS, ft as parseAgentDashboardOrigins, g as keyFingerprintShort, gt as parseCidrList, h as describeCsr, ht as normalizeIp, i as AgentPairing, it as AGENT_DASHBOARD_ORIGINS_FIELD, j as renewMeshCertificate, k as onProcessNodeRegistered, l as PAIRING_PATHS, lt as UnlockTicketJtiStore, m as computePairingSas, mt as createCidrMatcher, n as HubPairing, nt as issueMeshLeafFromCsr, o as PAIRING_CODE_DIGITS, ot as AGENT_UI_UNLOCK_TYP, p as computePairingCommitment, pt as verifyAgentUiUnlockTicket, q as requireProcessMeshCa, r as PairingHttpError, rt as loadMeshCa, s as PAIRING_MAX_CODE_ATTEMPTS, st as AGENT_UI_UNLOCK_USE, tt as issueMeshLeafForNode, u as PAIRING_PIN_DIGITS, ut as isAllowedAgentDashboardReturnTo, v as verifyPairingProof, w as dropProcessPeer, x as Errors, y as MESH_TLS_PORT_HELLO_FIELD, z as RENEWAL_ABANDONED } from "./builtins/system-config/system-config.addon.mjs";
|
|
35
35
|
import "./builtins/system-config/index.mjs";
|
|
36
36
|
import { WinstonDestination, WinstonLoggingAddon } from "./builtins/winston-logging/index.mjs";
|
|
37
|
-
import { C as isModelDownloaded, T as revisionWeightUrl, _ as downloadFile, a as startEventLoopStallMonitor, b as fetchJson, c as createAuthenticatedFileServer, d as resolveFilePath, f as ModelDownloadService, g as deleteModelFromDisk, h as collectModelFiles, i as attributeStall, l as parseRangeHeader, m as adoptModelRevisions, n as STALL_REPORT_MS, o as createFileDataPlaneHandler, r as STALL_TICK_MS, s as contentTypeFor, t as CustomActionRegistry, u as parseTokenizedUrl, v as downloadModel, w as resolveFormatRevision, x as getModelFilePath, y as ensureModel } from "./custom-action-registry-
|
|
38
|
-
import { A as allFamiliesListenHost, C as caReplacementMarkerFile, D as replaceUnconstrainedLocalCa, E as reissueTlsLeaf, F as registerLanHttpHandler, M as bindPendingLanHttp, N as closeLanHttp, O as retirePreviousLocalCa, P as readLanHttpState, S as validateUploadedTls, T as loadTlsCert, _ as splitPemCertificates, a as storeUploadedCertificate, b as chainsToPublicRoot, c as leafFingerprintOf, d as servedHttpsLeafFingerprint, f as prepareBootTls, g as readTlsMode, h as readTlsAccessStatus, i as revertToGeneratedCertificate, j as applyLanHttp, k as DEFAULT_LAN_HTTP_PORT, l as registerHttpsListener, m as readExtraSans, n as applyCertificateToListener, o as useStoredUploadedCertificate, p as UPLOADED_CA_FILE, r as regenerateCertificate, s as clearHttpsListener, t as createCiaoPublisher, u as reloadHttpsListener, v as writeExtraSans, w as ensureTlsCert, x as checkUploadedCa, y as writeTlsMode } from "./hub-mdns-ciao-
|
|
37
|
+
import { C as isModelDownloaded, T as revisionWeightUrl, _ as downloadFile, a as startEventLoopStallMonitor, b as fetchJson, c as createAuthenticatedFileServer, d as resolveFilePath, f as ModelDownloadService, g as deleteModelFromDisk, h as collectModelFiles, i as attributeStall, l as parseRangeHeader, m as adoptModelRevisions, n as STALL_REPORT_MS, o as createFileDataPlaneHandler, r as STALL_TICK_MS, s as contentTypeFor, t as CustomActionRegistry, u as parseTokenizedUrl, v as downloadModel, w as resolveFormatRevision, x as getModelFilePath, y as ensureModel } from "./custom-action-registry-stpC3Zy-.mjs";
|
|
38
|
+
import { A as allFamiliesListenHost, C as caReplacementMarkerFile, D as replaceUnconstrainedLocalCa, E as reissueTlsLeaf, F as registerLanHttpHandler, M as bindPendingLanHttp, N as closeLanHttp, O as retirePreviousLocalCa, P as readLanHttpState, S as validateUploadedTls, T as loadTlsCert, _ as splitPemCertificates, a as storeUploadedCertificate, b as chainsToPublicRoot, c as leafFingerprintOf, d as servedHttpsLeafFingerprint, f as prepareBootTls, g as readTlsMode, h as readTlsAccessStatus, i as revertToGeneratedCertificate, j as applyLanHttp, k as DEFAULT_LAN_HTTP_PORT, l as registerHttpsListener, m as readExtraSans, n as applyCertificateToListener, o as useStoredUploadedCertificate, p as UPLOADED_CA_FILE, r as regenerateCertificate, s as clearHttpsListener, t as createCiaoPublisher, u as reloadHttpsListener, v as writeExtraSans, w as ensureTlsCert, x as checkUploadedCa, y as writeTlsMode } from "./hub-mdns-ciao-CRaC97V0.mjs";
|
|
39
39
|
import { n as getPlatformKeychainKey, r as setPlatformKeychainKey, t as clearPlatformKeychainKey } from "./platform-key-source-BWlq0jjn.mjs";
|
|
40
40
|
import { n as getSinglePidStats, t as getPidStats } from "./resource-monitor-Di9daRwI.mjs";
|
|
41
|
-
import { c as BackupDecryptError, f as generateBackupKeyPair, h as readBackupEncryptionHeader, l as BackupKeyFormatError, r as prepareRestoreArchive, s as SystemBackupService, t as BackupKeyRequiredError, u as BackupKeyMismatchError } from "./restore-archive-
|
|
41
|
+
import { c as BackupDecryptError, f as generateBackupKeyPair, h as readBackupEncryptionHeader, l as BackupKeyFormatError, r as prepareRestoreArchive, s as SystemBackupService, t as BackupKeyRequiredError, u as BackupKeyMismatchError } from "./restore-archive-daKyE24F.mjs";
|
|
42
42
|
import { z } from "zod";
|
|
43
43
|
import * as crypto$1 from "node:crypto";
|
|
44
44
|
import { createHash, randomBytes, randomUUID } from "node:crypto";
|
|
@@ -47,15 +47,15 @@ import { connect, createConnection, createServer } from "node:net";
|
|
|
47
47
|
import { mkdir, rm, stat, unlink } from "node:fs/promises";
|
|
48
48
|
import * as path$1 from "node:path";
|
|
49
49
|
import { dirname, isAbsolute, join, resolve } from "node:path";
|
|
50
|
+
import * as util from "node:util";
|
|
51
|
+
import { promisify } from "node:util";
|
|
50
52
|
import * as os$1 from "node:os";
|
|
51
53
|
import { tmpdir } from "node:os";
|
|
52
54
|
import { pathToFileURL } from "node:url";
|
|
53
|
-
import { BOOT_RECOVERY_BACKOFF_MS, DATAPLANE_SECRET_HEADER, DEVICE_CHILDREN_BATCH_MAX, DeviceType, DisposerChain, ErrorI18nPayloadSchema, EventCategory, PEER_BYTES_CHUNK_BYTES, PEER_BYTES_MAX_OUTSTANDING, PEER_BYTES_STALL_MS, PEER_BYTES_TICKET_TTL_MS, ReadinessRegistry as ReadinessRegistry$1, asJsonObject, asString, collectZodSecretPaths, createDeviceProxy, createEvent, createEventBusSliceSource, createSecretsAccess, deviceOpsCapability, emitReadiness, errMsg, expandCapMethods as expandCapMethods$1, maskUrlCredentials, readErrorI18n, readNodePin, scopeKey as scopeKey$1, scrubKnownSecrets, sleep, withCapInputDefaults } from "@camstack/types/addon";
|
|
55
|
+
import { BOOT_RECOVERY_BACKOFF_MS, DATAPLANE_SECRET_HEADER, DEVICE_CHILDREN_BATCH_MAX, DeviceType, DisposerChain, ErrorI18nPayloadSchema, EventCategory, PEER_BYTES_CHUNK_BYTES, PEER_BYTES_MAX_OUTSTANDING, PEER_BYTES_STALL_MS, PEER_BYTES_TICKET_TTL_MS, ReadinessRegistry as ReadinessRegistry$1, asJsonObject, asString, collectZodSecretPaths, createDeviceProxy, createEvent, createEventBusSliceSource, createRecordsAccess, createSecretsAccess, deviceOpsCapability, emitReadiness, errMsg, expandCapMethods as expandCapMethods$1, maskUrlCredentials, readErrorI18n, readNodePin, scopeKey as scopeKey$1, scrubKnownSecrets, sleep, withCapInputDefaults } from "@camstack/types/addon";
|
|
54
56
|
import * as fs from "node:fs";
|
|
55
57
|
import { accessSync, constants, createReadStream, createWriteStream, existsSync, readFileSync, readdirSync } from "node:fs";
|
|
56
58
|
import { execFile, spawn } from "node:child_process";
|
|
57
|
-
import * as util from "node:util";
|
|
58
|
-
import { promisify } from "node:util";
|
|
59
59
|
import { once } from "node:events";
|
|
60
60
|
import { createServer as createServer$1, request } from "node:http";
|
|
61
61
|
import * as v8 from "node:v8";
|
|
@@ -11374,8 +11374,10 @@ function buildOneCapRouter(def, primitives, services) {
|
|
|
11374
11374
|
continue;
|
|
11375
11375
|
}
|
|
11376
11376
|
if (method.isObject) {
|
|
11377
|
+
const stampedCap = CALLER_STAMPED_CAPABILITIES.includes(capName);
|
|
11377
11378
|
const schema = nodeIdData ? inputSchema : looseSchema(inputSchema);
|
|
11378
|
-
procedures[method.name] = base.input(schema)[procKind](({ input, ctx }) => {
|
|
11379
|
+
procedures[method.name] = base.input(schema)[procKind](({ input: wireInput, ctx }) => {
|
|
11380
|
+
const input = stampedCap ? withoutCallerStamp(wireInput) : wireInput;
|
|
11379
11381
|
if (nodeIdData) return invokeCapMethod(requireLocal(capName, () => getLocal(ctx), services), method, method.callerRequired ? injectCaller(stripKeys(input, []).rest, ctx, capName, method.name, services) : input, capName, isCollection, services);
|
|
11380
11382
|
if (isCollection) {
|
|
11381
11383
|
const { rest, picked } = stripKeys(input, ["nodeId", "addonId"]);
|
|
@@ -15667,6 +15669,29 @@ function asName(value) {
|
|
|
15667
15669
|
return typeof value === "string" && value.length > 0 ? value : null;
|
|
15668
15670
|
}
|
|
15669
15671
|
//#endregion
|
|
15672
|
+
//#region src/kernel/moleculer/records-api-transport.ts
|
|
15673
|
+
function recordsTransportOf(api) {
|
|
15674
|
+
const r = api.records;
|
|
15675
|
+
return {
|
|
15676
|
+
declareKinds: (input) => r.declareKinds.mutate(input),
|
|
15677
|
+
get: (input) => r.get.query(input),
|
|
15678
|
+
getMany: (input) => r.getMany.query(input),
|
|
15679
|
+
secretRefs: (input) => r.secretRefs.query(input),
|
|
15680
|
+
put: (input) => r.put.mutate(input),
|
|
15681
|
+
putMany: (input) => r.putMany.mutate(input),
|
|
15682
|
+
patch: (input) => r.patch.mutate(input),
|
|
15683
|
+
delete: (input) => r.delete.mutate(input),
|
|
15684
|
+
deleteMany: (input) => r.deleteMany.mutate(input),
|
|
15685
|
+
query: (input) => r.query.query(input),
|
|
15686
|
+
count: (input) => r.count.query(input),
|
|
15687
|
+
histogram: (input) => r.histogram.query(input),
|
|
15688
|
+
aggregate: (input) => r.aggregate.query(input),
|
|
15689
|
+
deleteWhere: (input) => r.deleteWhere.mutate(input),
|
|
15690
|
+
deleteDevice: (input) => r.deleteDevice.mutate(input),
|
|
15691
|
+
allocateId: (input) => r.allocateId.mutate(input)
|
|
15692
|
+
};
|
|
15693
|
+
}
|
|
15694
|
+
//#endregion
|
|
15670
15695
|
//#region src/kernel/moleculer/children-batch-loader.ts
|
|
15671
15696
|
/**
|
|
15672
15697
|
* Narrow an untyped cap answer to the fields the reconcile reads.
|
|
@@ -23564,6 +23589,19 @@ async function buildAddonContext(runtime, declaration, dataDir, options) {
|
|
|
23564
23589
|
nodeId
|
|
23565
23590
|
});
|
|
23566
23591
|
workerDisposerChain.add(() => peerBytesFacility.dispose());
|
|
23592
|
+
const secrets = createSecretsAccess({
|
|
23593
|
+
owner: addonId,
|
|
23594
|
+
transport: {
|
|
23595
|
+
put: (input) => api.keychain.put.mutate({
|
|
23596
|
+
ref: input.ref,
|
|
23597
|
+
value: input.value
|
|
23598
|
+
}),
|
|
23599
|
+
resolve: (input) => api.keychain.resolve.query({ refs: [...input.refs] }),
|
|
23600
|
+
delete: (input) => api.keychain.delete.mutate({ refs: [...input.refs] }),
|
|
23601
|
+
getState: () => api.keychain.getState.query({})
|
|
23602
|
+
},
|
|
23603
|
+
eventBus: scopedEventBus
|
|
23604
|
+
});
|
|
23567
23605
|
return {
|
|
23568
23606
|
id: addonId,
|
|
23569
23607
|
logger: scopedLogger,
|
|
@@ -23576,18 +23614,12 @@ async function buildAddonContext(runtime, declaration, dataDir, options) {
|
|
|
23576
23614
|
api,
|
|
23577
23615
|
deps: new AddonDepsManager(addonDataDir, scopedLogger),
|
|
23578
23616
|
settings: settingsView,
|
|
23579
|
-
secrets
|
|
23617
|
+
secrets,
|
|
23618
|
+
records: createRecordsAccess({
|
|
23580
23619
|
owner: addonId,
|
|
23581
|
-
transport:
|
|
23582
|
-
|
|
23583
|
-
|
|
23584
|
-
value: input.value
|
|
23585
|
-
}),
|
|
23586
|
-
resolve: (input) => api.keychain.resolve.query({ refs: [...input.refs] }),
|
|
23587
|
-
delete: (input) => api.keychain.delete.mutate({ refs: [...input.refs] }),
|
|
23588
|
-
getState: () => api.keychain.getState.query({})
|
|
23589
|
-
},
|
|
23590
|
-
eventBus: scopedEventBus
|
|
23620
|
+
transport: recordsTransportOf(api),
|
|
23621
|
+
secrets,
|
|
23622
|
+
logger: scopedLogger
|
|
23591
23623
|
}),
|
|
23592
23624
|
kernel: (() => {
|
|
23593
23625
|
const streamProbe = runtime.mode === "broker" ? {
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The wire of `ctx.records` for an addon that runs in a forked runner or on an
|
|
3
|
+
* agent (D881): every call is a cap call on `ctx.api.records`, and the parent
|
|
4
|
+
* (or, on an agent, the agent and then `$hub-cap-fwd`) STAMPS who is calling
|
|
5
|
+
* from the connection the call arrived on. The input carries no identity, so
|
|
6
|
+
* there is nothing here an addon could change to read another addon's kind.
|
|
7
|
+
*/
|
|
8
|
+
import type { AddonApi, RecordsTransport } from "@camstack/types";
|
|
9
|
+
export declare function recordsTransportOf(api: AddonApi): RecordsTransport;
|
|
@@ -53,13 +53,6 @@ export interface ISettingsStore {
|
|
|
53
53
|
/** Addon-level global settings (apply to every device unless overridden). */
|
|
54
54
|
getAllAddon(addonId: string): Record<string, unknown>;
|
|
55
55
|
setAllAddon(addonId: string, config: Record<string, unknown>): void;
|
|
56
|
-
/** Legacy per-provider settings (used by some older wiring paths). */
|
|
57
|
-
getAllProvider(providerId: string): Record<string, unknown>;
|
|
58
|
-
setProvider(providerId: string, key: string, value: unknown): void;
|
|
59
|
-
/** Legacy flat per-device settings. Kept for backward compatibility
|
|
60
|
-
* with pre-addon wiring; new code should use the addon-device API. */
|
|
61
|
-
getAllDevice(deviceId: string): Record<string, unknown>;
|
|
62
|
-
setDevice(deviceId: string, key: string, value: unknown): void;
|
|
63
56
|
/**
|
|
64
57
|
* Per-device runtime state — the whole cap-slice map as ONE row in the
|
|
65
58
|
* `device-runtime-state` collection.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const require_chunk = require("./chunk-Cek0wNdY.js");
|
|
2
|
-
const require_dist = require("./dist-
|
|
2
|
+
const require_dist = require("./dist-D1vECb_6.js");
|
|
3
3
|
let node_crypto = require("node:crypto");
|
|
4
4
|
let buffer = require("buffer");
|
|
5
5
|
let node_fs_promises = require("node:fs/promises");
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { x as DATABASE_SNAPSHOT_SUFFIX } from "./dist-DERK-gP5.mjs";
|
|
2
2
|
import { createCipheriv, createDecipheriv, createHash, createPrivateKey, createPublicKey, diffieHellman, generateKeyPairSync, hkdfSync, randomBytes } from "node:crypto";
|
|
3
3
|
import { Buffer as Buffer$1 } from "buffer";
|
|
4
4
|
import * as fsp from "node:fs/promises";
|
|
Binary file
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@camstack/system",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.444",
|
|
4
4
|
"description": "Core addon for CamStack — builtins, pipeline, process management, auth, logging, events",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"camstack",
|
|
@@ -75,6 +75,9 @@
|
|
|
75
75
|
},
|
|
76
76
|
{
|
|
77
77
|
"name": "storage-admin"
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
"name": "records"
|
|
78
81
|
}
|
|
79
82
|
]
|
|
80
83
|
},
|
|
@@ -199,6 +202,24 @@
|
|
|
199
202
|
}
|
|
200
203
|
]
|
|
201
204
|
},
|
|
205
|
+
{
|
|
206
|
+
"id": "record-entries",
|
|
207
|
+
"category": "system",
|
|
208
|
+
"name": "Record Entries",
|
|
209
|
+
"icon": "assets/record-entries/icon.svg",
|
|
210
|
+
"color": "#0d9488",
|
|
211
|
+
"description": "The ONE admin surface for every list of user-created entries (notification targets, brokers, LLM profiles): any addon declares an entry kind with `defineEntryKind` and the entries UI lists, adds, edits and deletes it, with password fields derived from the schema (`.meta({ secret: true })`). Holds no data of its own: it acts for each entry's owner on the records door and the keychain, in-process on the hub.",
|
|
212
|
+
"entry": "./dist/builtins/record-entries/index.js",
|
|
213
|
+
"protected": true,
|
|
214
|
+
"execution": {
|
|
215
|
+
"placement": "hub-only"
|
|
216
|
+
},
|
|
217
|
+
"capabilities": [
|
|
218
|
+
{
|
|
219
|
+
"name": "record-entries"
|
|
220
|
+
}
|
|
221
|
+
]
|
|
222
|
+
},
|
|
202
223
|
{
|
|
203
224
|
"id": "metrics-native",
|
|
204
225
|
"category": "system",
|
|
@@ -2,10 +2,10 @@ const require_chunk = require("./chunk-Cek0wNdY.js");
|
|
|
2
2
|
let node_crypto = require("node:crypto");
|
|
3
3
|
let node_path = require("node:path");
|
|
4
4
|
node_path = require_chunk.__toESM(node_path);
|
|
5
|
+
let node_util = require("node:util");
|
|
5
6
|
let _camstack_types_addon = require("@camstack/types/addon");
|
|
6
7
|
let node_fs = require("node:fs");
|
|
7
8
|
node_fs = require_chunk.__toESM(node_fs);
|
|
8
|
-
let node_util = require("node:util");
|
|
9
9
|
let node_http = require("node:http");
|
|
10
10
|
let node_zlib = require("node:zlib");
|
|
11
11
|
let node_perf_hooks = require("node:perf_hooks");
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { createHash } from "node:crypto";
|
|
2
2
|
import * as path$1 from "node:path";
|
|
3
3
|
import path from "node:path";
|
|
4
|
+
import { promisify } from "node:util";
|
|
4
5
|
import { HF_REPO, MODEL_FORMATS, describeCustomActions, hfModelUrl } from "@camstack/types/addon";
|
|
5
6
|
import * as fs from "node:fs";
|
|
6
7
|
import { createReadStream, promises } from "node:fs";
|
|
7
|
-
import { promisify } from "node:util";
|
|
8
8
|
import { createServer } from "node:http";
|
|
9
9
|
import { brotliCompress, constants as constants$1, gzip } from "node:zlib";
|
|
10
10
|
import { PerformanceObserver } from "node:perf_hooks";
|