@phigon/observer 8.0.1
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/README.md +303 -0
- package/dist/bin/guardian-runner-darwin-amd64 +0 -0
- package/dist/bin/guardian-runner-darwin-arm64 +0 -0
- package/dist/bin/guardian-runner-linux-amd64 +0 -0
- package/dist/bin/guardian-runner-linux-arm64 +0 -0
- package/dist/bin/guardian-runner-windows-amd64.exe +0 -0
- package/dist/bin/guardian-runner-windows-arm64.exe +0 -0
- package/dist/src/action-policy.d.ts +38 -0
- package/dist/src/action-policy.d.ts.map +1 -0
- package/dist/src/action-policy.js +269 -0
- package/dist/src/action-policy.js.map +1 -0
- package/dist/src/activity/adapters/claude.d.ts +3 -0
- package/dist/src/activity/adapters/claude.d.ts.map +1 -0
- package/dist/src/activity/adapters/claude.js +89 -0
- package/dist/src/activity/adapters/claude.js.map +1 -0
- package/dist/src/activity/adapters/codex.d.ts +3 -0
- package/dist/src/activity/adapters/codex.d.ts.map +1 -0
- package/dist/src/activity/adapters/codex.js +277 -0
- package/dist/src/activity/adapters/codex.js.map +1 -0
- package/dist/src/activity/adapters/copilot.d.ts +2 -0
- package/dist/src/activity/adapters/copilot.d.ts.map +1 -0
- package/dist/src/activity/adapters/copilot.js +4 -0
- package/dist/src/activity/adapters/copilot.js.map +1 -0
- package/dist/src/activity/adapters/generic.d.ts +2 -0
- package/dist/src/activity/adapters/generic.d.ts.map +1 -0
- package/dist/src/activity/adapters/generic.js +4 -0
- package/dist/src/activity/adapters/generic.js.map +1 -0
- package/dist/src/activity/adapters/hermes.d.ts +2 -0
- package/dist/src/activity/adapters/hermes.d.ts.map +1 -0
- package/dist/src/activity/adapters/hermes.js +4 -0
- package/dist/src/activity/adapters/hermes.js.map +1 -0
- package/dist/src/activity/adapters/openai-compatible.d.ts +4 -0
- package/dist/src/activity/adapters/openai-compatible.d.ts.map +1 -0
- package/dist/src/activity/adapters/openai-compatible.js +116 -0
- package/dist/src/activity/adapters/openai-compatible.js.map +1 -0
- package/dist/src/activity/adapters/openclaw.d.ts +2 -0
- package/dist/src/activity/adapters/openclaw.d.ts.map +1 -0
- package/dist/src/activity/adapters/openclaw.js +4 -0
- package/dist/src/activity/adapters/openclaw.js.map +1 -0
- package/dist/src/activity/adapters/opencode.d.ts +3 -0
- package/dist/src/activity/adapters/opencode.d.ts.map +1 -0
- package/dist/src/activity/adapters/opencode.js +137 -0
- package/dist/src/activity/adapters/opencode.js.map +1 -0
- package/dist/src/activity/bridges.d.ts +7 -0
- package/dist/src/activity/bridges.d.ts.map +1 -0
- package/dist/src/activity/bridges.js +17 -0
- package/dist/src/activity/bridges.js.map +1 -0
- package/dist/src/activity/collector.d.ts +90 -0
- package/dist/src/activity/collector.d.ts.map +1 -0
- package/dist/src/activity/collector.js +706 -0
- package/dist/src/activity/collector.js.map +1 -0
- package/dist/src/activity/index.d.ts +14 -0
- package/dist/src/activity/index.d.ts.map +1 -0
- package/dist/src/activity/index.js +14 -0
- package/dist/src/activity/index.js.map +1 -0
- package/dist/src/activity/ingest.d.ts +15 -0
- package/dist/src/activity/ingest.d.ts.map +1 -0
- package/dist/src/activity/ingest.js +103 -0
- package/dist/src/activity/ingest.js.map +1 -0
- package/dist/src/activity/native-capabilities.d.ts +14 -0
- package/dist/src/activity/native-capabilities.d.ts.map +1 -0
- package/dist/src/activity/native-capabilities.js +85 -0
- package/dist/src/activity/native-capabilities.js.map +1 -0
- package/dist/src/activity/normalize.d.ts +17 -0
- package/dist/src/activity/normalize.d.ts.map +1 -0
- package/dist/src/activity/normalize.js +416 -0
- package/dist/src/activity/normalize.js.map +1 -0
- package/dist/src/activity/opencode-sqlite-source.d.ts +19 -0
- package/dist/src/activity/opencode-sqlite-source.d.ts.map +1 -0
- package/dist/src/activity/opencode-sqlite-source.js +305 -0
- package/dist/src/activity/opencode-sqlite-source.js.map +1 -0
- package/dist/src/activity/policy.d.ts +48 -0
- package/dist/src/activity/policy.d.ts.map +1 -0
- package/dist/src/activity/policy.js +436 -0
- package/dist/src/activity/policy.js.map +1 -0
- package/dist/src/activity/record.d.ts +7 -0
- package/dist/src/activity/record.d.ts.map +1 -0
- package/dist/src/activity/record.js +61 -0
- package/dist/src/activity/record.js.map +1 -0
- package/dist/src/activity/source-reader.d.ts +46 -0
- package/dist/src/activity/source-reader.d.ts.map +1 -0
- package/dist/src/activity/source-reader.js +594 -0
- package/dist/src/activity/source-reader.js.map +1 -0
- package/dist/src/activity/types.d.ts +21 -0
- package/dist/src/activity/types.d.ts.map +1 -0
- package/dist/src/activity/types.js +2 -0
- package/dist/src/activity/types.js.map +1 -0
- package/dist/src/agent-action-executor.d.ts +21 -0
- package/dist/src/agent-action-executor.d.ts.map +1 -0
- package/dist/src/agent-action-executor.js +248 -0
- package/dist/src/agent-action-executor.js.map +1 -0
- package/dist/src/agentic-guardian.d.ts +50 -0
- package/dist/src/agentic-guardian.d.ts.map +1 -0
- package/dist/src/agentic-guardian.js +220 -0
- package/dist/src/agentic-guardian.js.map +1 -0
- package/dist/src/atomic-replace.d.ts +4 -0
- package/dist/src/atomic-replace.d.ts.map +1 -0
- package/dist/src/atomic-replace.js +18 -0
- package/dist/src/atomic-replace.js.map +1 -0
- package/dist/src/cli.d.ts +11 -0
- package/dist/src/cli.d.ts.map +1 -0
- package/dist/src/cli.js +1244 -0
- package/dist/src/cli.js.map +1 -0
- package/dist/src/config.d.ts +68 -0
- package/dist/src/config.d.ts.map +1 -0
- package/dist/src/config.js +260 -0
- package/dist/src/config.js.map +1 -0
- package/dist/src/credential-store.d.ts +22 -0
- package/dist/src/credential-store.d.ts.map +1 -0
- package/dist/src/credential-store.js +91 -0
- package/dist/src/credential-store.js.map +1 -0
- package/dist/src/custom-agent-registry.d.ts +26 -0
- package/dist/src/custom-agent-registry.d.ts.map +1 -0
- package/dist/src/custom-agent-registry.js +288 -0
- package/dist/src/custom-agent-registry.js.map +1 -0
- package/dist/src/discovery/adapters/claude.d.ts +3 -0
- package/dist/src/discovery/adapters/claude.d.ts.map +1 -0
- package/dist/src/discovery/adapters/claude.js +26 -0
- package/dist/src/discovery/adapters/claude.js.map +1 -0
- package/dist/src/discovery/adapters/codex.d.ts +3 -0
- package/dist/src/discovery/adapters/codex.d.ts.map +1 -0
- package/dist/src/discovery/adapters/codex.js +23 -0
- package/dist/src/discovery/adapters/codex.js.map +1 -0
- package/dist/src/discovery/adapters/custom.d.ts +4 -0
- package/dist/src/discovery/adapters/custom.d.ts.map +1 -0
- package/dist/src/discovery/adapters/custom.js +24 -0
- package/dist/src/discovery/adapters/custom.js.map +1 -0
- package/dist/src/discovery/adapters/generic.d.ts +3 -0
- package/dist/src/discovery/adapters/generic.d.ts.map +1 -0
- package/dist/src/discovery/adapters/generic.js +126 -0
- package/dist/src/discovery/adapters/generic.js.map +1 -0
- package/dist/src/discovery/adapters/hermes.d.ts +3 -0
- package/dist/src/discovery/adapters/hermes.d.ts.map +1 -0
- package/dist/src/discovery/adapters/hermes.js +22 -0
- package/dist/src/discovery/adapters/hermes.js.map +1 -0
- package/dist/src/discovery/adapters/openclaw.d.ts +3 -0
- package/dist/src/discovery/adapters/openclaw.d.ts.map +1 -0
- package/dist/src/discovery/adapters/openclaw.js +22 -0
- package/dist/src/discovery/adapters/openclaw.js.map +1 -0
- package/dist/src/discovery/engine.d.ts +17 -0
- package/dist/src/discovery/engine.d.ts.map +1 -0
- package/dist/src/discovery/engine.js +164 -0
- package/dist/src/discovery/engine.js.map +1 -0
- package/dist/src/discovery/evidence.d.ts +29 -0
- package/dist/src/discovery/evidence.d.ts.map +1 -0
- package/dist/src/discovery/evidence.js +2 -0
- package/dist/src/discovery/evidence.js.map +1 -0
- package/dist/src/discovery/index.d.ts +11 -0
- package/dist/src/discovery/index.d.ts.map +1 -0
- package/dist/src/discovery/index.js +11 -0
- package/dist/src/discovery/index.js.map +1 -0
- package/dist/src/discovery/known-agent.d.ts +17 -0
- package/dist/src/discovery/known-agent.d.ts.map +1 -0
- package/dist/src/discovery/known-agent.js +193 -0
- package/dist/src/discovery/known-agent.js.map +1 -0
- package/dist/src/discovery/process-identity.d.ts +19 -0
- package/dist/src/discovery/process-identity.d.ts.map +1 -0
- package/dist/src/discovery/process-identity.js +73 -0
- package/dist/src/discovery/process-identity.js.map +1 -0
- package/dist/src/discovery/system-evidence.d.ts +9 -0
- package/dist/src/discovery/system-evidence.d.ts.map +1 -0
- package/dist/src/discovery/system-evidence.js +270 -0
- package/dist/src/discovery/system-evidence.js.map +1 -0
- package/dist/src/discovery/types.d.ts +21 -0
- package/dist/src/discovery/types.d.ts.map +1 -0
- package/dist/src/discovery/types.js +2 -0
- package/dist/src/discovery/types.js.map +1 -0
- package/dist/src/event-queue.d.ts +32 -0
- package/dist/src/event-queue.d.ts.map +1 -0
- package/dist/src/event-queue.js +125 -0
- package/dist/src/event-queue.js.map +1 -0
- package/dist/src/event-spool.d.ts +19 -0
- package/dist/src/event-spool.d.ts.map +1 -0
- package/dist/src/event-spool.js +350 -0
- package/dist/src/event-spool.js.map +1 -0
- package/dist/src/generated/phigon/v1/action_pb.d.ts +223 -0
- package/dist/src/generated/phigon/v1/action_pb.d.ts.map +1 -0
- package/dist/src/generated/phigon/v1/action_pb.js +96 -0
- package/dist/src/generated/phigon/v1/action_pb.js.map +1 -0
- package/dist/src/generated/phigon/v1/common_pb.d.ts +255 -0
- package/dist/src/generated/phigon/v1/common_pb.d.ts.map +1 -0
- package/dist/src/generated/phigon/v1/common_pb.js +242 -0
- package/dist/src/generated/phigon/v1/common_pb.js.map +1 -0
- package/dist/src/generated/phigon/v1/history_sync_pb.d.ts +119 -0
- package/dist/src/generated/phigon/v1/history_sync_pb.d.ts.map +1 -0
- package/dist/src/generated/phigon/v1/history_sync_pb.js +46 -0
- package/dist/src/generated/phigon/v1/history_sync_pb.js.map +1 -0
- package/dist/src/generated/phigon/v1/identity_pb.d.ts +235 -0
- package/dist/src/generated/phigon/v1/identity_pb.d.ts.map +1 -0
- package/dist/src/generated/phigon/v1/identity_pb.js +31 -0
- package/dist/src/generated/phigon/v1/identity_pb.js.map +1 -0
- package/dist/src/generated/phigon/v1/observer_service_pb.d.ts +362 -0
- package/dist/src/generated/phigon/v1/observer_service_pb.d.ts.map +1 -0
- package/dist/src/generated/phigon/v1/observer_service_pb.js +120 -0
- package/dist/src/generated/phigon/v1/observer_service_pb.js.map +1 -0
- package/dist/src/generated/phigon/v1/policy_pb.d.ts +456 -0
- package/dist/src/generated/phigon/v1/policy_pb.d.ts.map +1 -0
- package/dist/src/generated/phigon/v1/policy_pb.js +161 -0
- package/dist/src/generated/phigon/v1/policy_pb.js.map +1 -0
- package/dist/src/generated/phigon/v1/supervision_pb.d.ts +849 -0
- package/dist/src/generated/phigon/v1/supervision_pb.d.ts.map +1 -0
- package/dist/src/generated/phigon/v1/supervision_pb.js +384 -0
- package/dist/src/generated/phigon/v1/supervision_pb.js.map +1 -0
- package/dist/src/generated/phigon/v1/telemetry_pb.d.ts +761 -0
- package/dist/src/generated/phigon/v1/telemetry_pb.d.ts.map +1 -0
- package/dist/src/generated/phigon/v1/telemetry_pb.js +309 -0
- package/dist/src/generated/phigon/v1/telemetry_pb.js.map +1 -0
- package/dist/src/guardian-containment.d.ts +30 -0
- package/dist/src/guardian-containment.d.ts.map +1 -0
- package/dist/src/guardian-containment.js +113 -0
- package/dist/src/guardian-containment.js.map +1 -0
- package/dist/src/guardian-decision-journal.d.ts +29 -0
- package/dist/src/guardian-decision-journal.d.ts.map +1 -0
- package/dist/src/guardian-decision-journal.js +55 -0
- package/dist/src/guardian-decision-journal.js.map +1 -0
- package/dist/src/guardian-execution-manifest.d.ts +29 -0
- package/dist/src/guardian-execution-manifest.d.ts.map +1 -0
- package/dist/src/guardian-execution-manifest.js +95 -0
- package/dist/src/guardian-execution-manifest.js.map +1 -0
- package/dist/src/guardian-hosted-client.d.ts +10 -0
- package/dist/src/guardian-hosted-client.d.ts.map +1 -0
- package/dist/src/guardian-hosted-client.js +45 -0
- package/dist/src/guardian-hosted-client.js.map +1 -0
- package/dist/src/guardian-managed-exec.d.ts +21 -0
- package/dist/src/guardian-managed-exec.d.ts.map +1 -0
- package/dist/src/guardian-managed-exec.js +249 -0
- package/dist/src/guardian-managed-exec.js.map +1 -0
- package/dist/src/guardian-model-bridge.d.ts +13 -0
- package/dist/src/guardian-model-bridge.d.ts.map +1 -0
- package/dist/src/guardian-model-bridge.js +87 -0
- package/dist/src/guardian-model-bridge.js.map +1 -0
- package/dist/src/guardian-native.d.ts +3 -0
- package/dist/src/guardian-native.d.ts.map +1 -0
- package/dist/src/guardian-native.js +13 -0
- package/dist/src/guardian-native.js.map +1 -0
- package/dist/src/guardian-process-monitor.d.ts +20 -0
- package/dist/src/guardian-process-monitor.d.ts.map +1 -0
- package/dist/src/guardian-process-monitor.js +98 -0
- package/dist/src/guardian-process-monitor.js.map +1 -0
- package/dist/src/health.d.ts +35 -0
- package/dist/src/health.d.ts.map +1 -0
- package/dist/src/health.js +41 -0
- package/dist/src/health.js.map +1 -0
- package/dist/src/historical-identity-store.d.ts +20 -0
- package/dist/src/historical-identity-store.d.ts.map +1 -0
- package/dist/src/historical-identity-store.js +391 -0
- package/dist/src/historical-identity-store.js.map +1 -0
- package/dist/src/index.d.ts +14 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +14 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/installation.d.ts +2 -0
- package/dist/src/installation.d.ts.map +1 -0
- package/dist/src/installation.js +44 -0
- package/dist/src/installation.js.map +1 -0
- package/dist/src/machine-command-executor.d.ts +28 -0
- package/dist/src/machine-command-executor.d.ts.map +1 -0
- package/dist/src/machine-command-executor.js +166 -0
- package/dist/src/machine-command-executor.js.map +1 -0
- package/dist/src/pair.d.ts +21 -0
- package/dist/src/pair.d.ts.map +1 -0
- package/dist/src/pair.js +125 -0
- package/dist/src/pair.js.map +1 -0
- package/dist/src/remove-machine.d.ts +15 -0
- package/dist/src/remove-machine.d.ts.map +1 -0
- package/dist/src/remove-machine.js +77 -0
- package/dist/src/remove-machine.js.map +1 -0
- package/dist/src/stream-client.d.ts +42 -0
- package/dist/src/stream-client.d.ts.map +1 -0
- package/dist/src/stream-client.js +867 -0
- package/dist/src/stream-client.js.map +1 -0
- package/dist/src/stream-state.d.ts +13 -0
- package/dist/src/stream-state.d.ts.map +1 -0
- package/dist/src/stream-state.js +128 -0
- package/dist/src/stream-state.js.map +1 -0
- package/dist/src/windows-process.d.ts +7 -0
- package/dist/src/windows-process.d.ts.map +1 -0
- package/dist/src/windows-process.js +17 -0
- package/dist/src/windows-process.js.map +1 -0
- package/package.json +78 -0
- package/scripts/install.mjs +308 -0
- package/scripts/managed-service.mjs +132 -0
- package/scripts/verify-guardian-release.mjs +42 -0
- package/scripts/windows-app-control.mjs +117 -0
|
@@ -0,0 +1,350 @@
|
|
|
1
|
+
import { createCipheriv, createDecipheriv, createHash, randomBytes, } from "node:crypto";
|
|
2
|
+
import { appendFileSync, chmodSync, existsSync, mkdirSync, readFileSync, readdirSync, renameSync, statSync, unlinkSync, writeFileSync, } from "node:fs";
|
|
3
|
+
import { join } from "node:path";
|
|
4
|
+
import { fromBinary, toBinary } from "@bufbuild/protobuf";
|
|
5
|
+
import { EventEnvelopeSchema, } from "./generated/phigon/v1/telemetry_pb.js";
|
|
6
|
+
import { BoundedEventQueue } from "./event-queue.js";
|
|
7
|
+
const spoolVersion = 1;
|
|
8
|
+
const spoolFileName = "telemetry-spool.jsonl";
|
|
9
|
+
const maxSpoolBytes = 64 << 20;
|
|
10
|
+
const compactAfterOperations = 1024;
|
|
11
|
+
const scopedIDPattern = /^[A-Za-z0-9._:-]{1,128}$/u;
|
|
12
|
+
/**
|
|
13
|
+
* An encrypted append-only delivery spool. The in-memory queue remains the hot
|
|
14
|
+
* path, while this log makes unacknowledged events recoverable after an
|
|
15
|
+
* observer restart without writing prompt or tool content as plaintext.
|
|
16
|
+
*/
|
|
17
|
+
export class FileBackedEventQueue extends BoundedEventQueue {
|
|
18
|
+
#dataDirectory;
|
|
19
|
+
#path;
|
|
20
|
+
#scope;
|
|
21
|
+
#key;
|
|
22
|
+
#operations = 0;
|
|
23
|
+
constructor(dataDirectory, capacity = 2048) {
|
|
24
|
+
super(capacity);
|
|
25
|
+
this.#dataDirectory = dataDirectory;
|
|
26
|
+
this.#path = join(dataDirectory, spoolFileName);
|
|
27
|
+
}
|
|
28
|
+
restore(tenantID, machineID, credential) {
|
|
29
|
+
validateScope(tenantID, machineID);
|
|
30
|
+
if (!credential.startsWith("phg_m_") || credential.length > 256) {
|
|
31
|
+
throw new Error("Telemetry spool credential is invalid.");
|
|
32
|
+
}
|
|
33
|
+
const scope = Object.freeze({ tenantID, machineID });
|
|
34
|
+
const key = spoolKey(scope, credential);
|
|
35
|
+
if (this.#scope !== undefined) {
|
|
36
|
+
if (this.#scope.tenantID !== tenantID ||
|
|
37
|
+
this.#scope.machineID !== machineID ||
|
|
38
|
+
!this.#key?.equals(key)) {
|
|
39
|
+
throw new Error("Telemetry spool scope changed while the observer was running.");
|
|
40
|
+
}
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
this.#scope = scope;
|
|
44
|
+
this.#key = key;
|
|
45
|
+
try {
|
|
46
|
+
if (!existsSync(this.#path))
|
|
47
|
+
return;
|
|
48
|
+
const metadata = statSync(this.#path);
|
|
49
|
+
if (!metadata.isFile() || metadata.size > maxSpoolBytes) {
|
|
50
|
+
throw new Error("Telemetry spool exceeds its safe storage bound.");
|
|
51
|
+
}
|
|
52
|
+
const restored = new BoundedEventQueue(this.metrics().capacity);
|
|
53
|
+
const raw = readFileSync(this.#path, "utf8");
|
|
54
|
+
const lines = raw.split("\n");
|
|
55
|
+
const completeLines = lines.slice(0, -1);
|
|
56
|
+
for (const line of completeLines) {
|
|
57
|
+
if (line.length === 0)
|
|
58
|
+
continue;
|
|
59
|
+
const record = parseRecord(line, scope);
|
|
60
|
+
this.#restoreRecord(record, restored);
|
|
61
|
+
}
|
|
62
|
+
if (!raw.endsWith("\n") && (lines.at(-1)?.length ?? 0) > 0) {
|
|
63
|
+
// A crash can leave only the final append incomplete. It was never a
|
|
64
|
+
// durable event, so ignore that tail and compact the verified prefix.
|
|
65
|
+
}
|
|
66
|
+
this.#writeCompactedQueue(restored);
|
|
67
|
+
this.replaceState(restored);
|
|
68
|
+
this.#operations = 0;
|
|
69
|
+
}
|
|
70
|
+
catch (error) {
|
|
71
|
+
this.#scope = undefined;
|
|
72
|
+
this.#key = undefined;
|
|
73
|
+
throw error;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
enqueue(value, sequence, coalesceKey) {
|
|
77
|
+
const scope = this.#requireScope();
|
|
78
|
+
if (!this.canEnqueue(coalesceKey)) {
|
|
79
|
+
throw new Error("Telemetry delivery queue is full; source collection stopped " +
|
|
80
|
+
"before an unacknowledged event could be discarded.");
|
|
81
|
+
}
|
|
82
|
+
validateEventScope(value, scope, sequence);
|
|
83
|
+
const record = this.#encryptedRecord(value, sequence, coalesceKey);
|
|
84
|
+
this.#append(record);
|
|
85
|
+
super.enqueue(value, sequence, coalesceKey);
|
|
86
|
+
this.#compactIfNeeded();
|
|
87
|
+
}
|
|
88
|
+
acknowledge(throughSequence) {
|
|
89
|
+
if (throughSequence <= this.metrics().acknowledged)
|
|
90
|
+
return;
|
|
91
|
+
this.#append(this.#sequenceRecord("acknowledge", throughSequence));
|
|
92
|
+
super.acknowledge(throughSequence);
|
|
93
|
+
this.#compactIfNeeded();
|
|
94
|
+
}
|
|
95
|
+
discard(sequence) {
|
|
96
|
+
if (!this.pending().some((event) => event.sequence === sequence)) {
|
|
97
|
+
return false;
|
|
98
|
+
}
|
|
99
|
+
this.#append(this.#sequenceRecord("discard", sequence));
|
|
100
|
+
const discarded = super.discard(sequence);
|
|
101
|
+
this.#compactIfNeeded();
|
|
102
|
+
return discarded;
|
|
103
|
+
}
|
|
104
|
+
reconcileAcknowledged(throughSequence) {
|
|
105
|
+
if (throughSequence === this.metrics().acknowledged)
|
|
106
|
+
return;
|
|
107
|
+
super.reconcileAcknowledged(throughSequence);
|
|
108
|
+
this.#compact();
|
|
109
|
+
}
|
|
110
|
+
replacePending(replace) {
|
|
111
|
+
super.replacePending((event) => {
|
|
112
|
+
const replaced = replace(event);
|
|
113
|
+
validateEventScope(replaced, this.#requireScope(), event.sequence);
|
|
114
|
+
return replaced;
|
|
115
|
+
});
|
|
116
|
+
this.#compact();
|
|
117
|
+
}
|
|
118
|
+
#restoreRecord(record, target) {
|
|
119
|
+
const sequence = parseSequence(record.sequence);
|
|
120
|
+
if (record.operation === "acknowledge") {
|
|
121
|
+
target.acknowledge(sequence);
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
if (record.operation === "discard") {
|
|
125
|
+
target.discard(sequence);
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
const event = this.#decrypt(record);
|
|
129
|
+
if (!target.canEnqueue(record.coalesce_key)) {
|
|
130
|
+
throw new Error("Telemetry spool contains more events than the configured queue capacity.");
|
|
131
|
+
}
|
|
132
|
+
target.enqueue(event, sequence, record.coalesce_key);
|
|
133
|
+
}
|
|
134
|
+
#encryptedRecord(event, sequence, coalesceKey) {
|
|
135
|
+
const scope = this.#requireScope();
|
|
136
|
+
const nonce = randomBytes(12);
|
|
137
|
+
const cipher = createCipheriv("aes-256-gcm", this.#requireKey(), nonce);
|
|
138
|
+
cipher.setAAD(spoolAAD(scope, sequence));
|
|
139
|
+
const encrypted = Buffer.concat([
|
|
140
|
+
cipher.update(toBinary(EventEnvelopeSchema, event)),
|
|
141
|
+
cipher.final(),
|
|
142
|
+
cipher.getAuthTag(),
|
|
143
|
+
]);
|
|
144
|
+
return {
|
|
145
|
+
version: spoolVersion,
|
|
146
|
+
tenant_id: scope.tenantID,
|
|
147
|
+
machine_id: scope.machineID,
|
|
148
|
+
operation: "event",
|
|
149
|
+
sequence: sequence.toString(),
|
|
150
|
+
...(coalesceKey === undefined ? {} : { coalesce_key: coalesceKey }),
|
|
151
|
+
nonce: nonce.toString("base64"),
|
|
152
|
+
ciphertext: encrypted.toString("base64"),
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
#decrypt(record) {
|
|
156
|
+
const sequence = parseSequence(record.sequence);
|
|
157
|
+
const nonce = Buffer.from(record.nonce, "base64");
|
|
158
|
+
const encrypted = Buffer.from(record.ciphertext, "base64");
|
|
159
|
+
if (nonce.length !== 12 || encrypted.length < 17) {
|
|
160
|
+
throw new Error("Telemetry spool encryption envelope is invalid.");
|
|
161
|
+
}
|
|
162
|
+
const ciphertext = encrypted.subarray(0, -16);
|
|
163
|
+
const tag = encrypted.subarray(-16);
|
|
164
|
+
const decipher = createDecipheriv("aes-256-gcm", this.#requireKey(), nonce);
|
|
165
|
+
decipher.setAAD(spoolAAD(this.#requireScope(), sequence));
|
|
166
|
+
decipher.setAuthTag(tag);
|
|
167
|
+
let event;
|
|
168
|
+
try {
|
|
169
|
+
event = fromBinary(EventEnvelopeSchema, Buffer.concat([decipher.update(ciphertext), decipher.final()]));
|
|
170
|
+
}
|
|
171
|
+
catch {
|
|
172
|
+
throw new Error("Telemetry spool event could not be authenticated.");
|
|
173
|
+
}
|
|
174
|
+
validateEventScope(event, this.#requireScope(), sequence);
|
|
175
|
+
return event;
|
|
176
|
+
}
|
|
177
|
+
#sequenceRecord(operation, sequence) {
|
|
178
|
+
const scope = this.#requireScope();
|
|
179
|
+
return {
|
|
180
|
+
version: spoolVersion,
|
|
181
|
+
tenant_id: scope.tenantID,
|
|
182
|
+
machine_id: scope.machineID,
|
|
183
|
+
operation,
|
|
184
|
+
sequence: sequence.toString(),
|
|
185
|
+
};
|
|
186
|
+
}
|
|
187
|
+
#append(record) {
|
|
188
|
+
mkdirSync(this.#dataDirectory, { recursive: true, mode: 0o700 });
|
|
189
|
+
chmodSync(this.#dataDirectory, 0o700);
|
|
190
|
+
const encoded = `${JSON.stringify(record)}\n`;
|
|
191
|
+
let size = existsSync(this.#path) ? statSync(this.#path).size : 0;
|
|
192
|
+
if (size + Buffer.byteLength(encoded) > maxSpoolBytes) {
|
|
193
|
+
this.#compact();
|
|
194
|
+
size = statSync(this.#path).size;
|
|
195
|
+
}
|
|
196
|
+
if (size + Buffer.byteLength(encoded) > maxSpoolBytes) {
|
|
197
|
+
throw new Error("Telemetry spool is full; collection stopped before data loss.");
|
|
198
|
+
}
|
|
199
|
+
appendFileSync(this.#path, encoded, {
|
|
200
|
+
encoding: "utf8",
|
|
201
|
+
mode: 0o600,
|
|
202
|
+
flush: true,
|
|
203
|
+
});
|
|
204
|
+
chmodSync(this.#path, 0o600);
|
|
205
|
+
this.#operations++;
|
|
206
|
+
}
|
|
207
|
+
#compactIfNeeded() {
|
|
208
|
+
if (this.#operations >= compactAfterOperations)
|
|
209
|
+
this.#compact();
|
|
210
|
+
}
|
|
211
|
+
#compact() {
|
|
212
|
+
this.#writeCompactedQueue(this);
|
|
213
|
+
this.#operations = 0;
|
|
214
|
+
}
|
|
215
|
+
#writeCompactedQueue(queue) {
|
|
216
|
+
this.#requireScope();
|
|
217
|
+
mkdirSync(this.#dataDirectory, { recursive: true, mode: 0o700 });
|
|
218
|
+
chmodSync(this.#dataDirectory, 0o700);
|
|
219
|
+
const records = [
|
|
220
|
+
this.#sequenceRecord("acknowledge", queue.metrics().acknowledged),
|
|
221
|
+
...queue.entries().map((entry) => this.#encryptedRecord(entry.value, entry.sequence, entry.coalesceKey)),
|
|
222
|
+
];
|
|
223
|
+
const encoded = `${records.map((record) => JSON.stringify(record)).join("\n")}\n`;
|
|
224
|
+
if (Buffer.byteLength(encoded) > maxSpoolBytes) {
|
|
225
|
+
throw new Error("Telemetry spool is full; collection stopped before data loss.");
|
|
226
|
+
}
|
|
227
|
+
const temporaryPath = `${this.#path}.${process.pid}.${randomBytes(8).toString("hex")}.tmp`;
|
|
228
|
+
try {
|
|
229
|
+
writeFileSync(temporaryPath, encoded, {
|
|
230
|
+
encoding: "utf8",
|
|
231
|
+
flag: "wx",
|
|
232
|
+
mode: 0o600,
|
|
233
|
+
flush: true,
|
|
234
|
+
});
|
|
235
|
+
renameSync(temporaryPath, this.#path);
|
|
236
|
+
chmodSync(this.#path, 0o600);
|
|
237
|
+
}
|
|
238
|
+
catch (error) {
|
|
239
|
+
try {
|
|
240
|
+
unlinkSync(temporaryPath);
|
|
241
|
+
}
|
|
242
|
+
catch {
|
|
243
|
+
// The temporary file may not have been created.
|
|
244
|
+
}
|
|
245
|
+
throw error;
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
#requireScope() {
|
|
249
|
+
if (this.#scope === undefined) {
|
|
250
|
+
throw new Error("Telemetry spool must be restored before use.");
|
|
251
|
+
}
|
|
252
|
+
return this.#scope;
|
|
253
|
+
}
|
|
254
|
+
#requireKey() {
|
|
255
|
+
if (this.#key === undefined) {
|
|
256
|
+
throw new Error("Telemetry spool key is unavailable.");
|
|
257
|
+
}
|
|
258
|
+
return this.#key;
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
export function clearEventSpool(dataDirectory) {
|
|
262
|
+
let names;
|
|
263
|
+
try {
|
|
264
|
+
names = readdirSync(dataDirectory);
|
|
265
|
+
}
|
|
266
|
+
catch (error) {
|
|
267
|
+
if (!isNodeError(error) || error.code !== "ENOENT")
|
|
268
|
+
throw error;
|
|
269
|
+
return;
|
|
270
|
+
}
|
|
271
|
+
for (const name of names) {
|
|
272
|
+
const temporary = name.startsWith(`${spoolFileName}.`) && name.endsWith(".tmp");
|
|
273
|
+
if (name !== spoolFileName && !temporary)
|
|
274
|
+
continue;
|
|
275
|
+
try {
|
|
276
|
+
unlinkSync(join(dataDirectory, name));
|
|
277
|
+
}
|
|
278
|
+
catch (error) {
|
|
279
|
+
if (!isNodeError(error) || error.code !== "ENOENT")
|
|
280
|
+
throw error;
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
function parseRecord(line, scope) {
|
|
285
|
+
let value;
|
|
286
|
+
try {
|
|
287
|
+
value = JSON.parse(line);
|
|
288
|
+
}
|
|
289
|
+
catch {
|
|
290
|
+
throw new Error("Telemetry spool contains an invalid record.");
|
|
291
|
+
}
|
|
292
|
+
if (typeof value !== "object" || value === null ||
|
|
293
|
+
!("version" in value) || value.version !== spoolVersion ||
|
|
294
|
+
!("tenant_id" in value) || value.tenant_id !== scope.tenantID ||
|
|
295
|
+
!("machine_id" in value) || value.machine_id !== scope.machineID ||
|
|
296
|
+
!("operation" in value) ||
|
|
297
|
+
(value.operation !== "event" && value.operation !== "acknowledge" &&
|
|
298
|
+
value.operation !== "discard") ||
|
|
299
|
+
!("sequence" in value) || typeof value.sequence !== "string") {
|
|
300
|
+
throw new Error("Telemetry spool scope or record shape is invalid.");
|
|
301
|
+
}
|
|
302
|
+
parseSequence(value.sequence);
|
|
303
|
+
if (value.operation !== "event")
|
|
304
|
+
return value;
|
|
305
|
+
if (!("nonce" in value) || typeof value.nonce !== "string" ||
|
|
306
|
+
!("ciphertext" in value) || typeof value.ciphertext !== "string" ||
|
|
307
|
+
("coalesce_key" in value && typeof value.coalesce_key !== "string")) {
|
|
308
|
+
throw new Error("Telemetry spool event shape is invalid.");
|
|
309
|
+
}
|
|
310
|
+
return value;
|
|
311
|
+
}
|
|
312
|
+
function parseSequence(value) {
|
|
313
|
+
if (!/^\d{1,20}$/u.test(value)) {
|
|
314
|
+
throw new Error("Telemetry spool sequence is invalid.");
|
|
315
|
+
}
|
|
316
|
+
const sequence = BigInt(value);
|
|
317
|
+
if (sequence > 18446744073709551615n) {
|
|
318
|
+
throw new Error("Telemetry spool sequence is invalid.");
|
|
319
|
+
}
|
|
320
|
+
return sequence;
|
|
321
|
+
}
|
|
322
|
+
function spoolKey(scope, credential) {
|
|
323
|
+
return createHash("sha256")
|
|
324
|
+
.update("phigon-observer-telemetry-spool-v1\0", "utf8")
|
|
325
|
+
.update(scope.tenantID, "utf8")
|
|
326
|
+
.update("\0", "utf8")
|
|
327
|
+
.update(scope.machineID, "utf8")
|
|
328
|
+
.update("\0", "utf8")
|
|
329
|
+
.update(credential, "utf8")
|
|
330
|
+
.digest();
|
|
331
|
+
}
|
|
332
|
+
function spoolAAD(scope, sequence) {
|
|
333
|
+
return Buffer.from(`phigon/spool/${scope.tenantID}/${scope.machineID}/${sequence}`, "utf8");
|
|
334
|
+
}
|
|
335
|
+
function validateScope(tenantID, machineID) {
|
|
336
|
+
if (!scopedIDPattern.test(tenantID) || !scopedIDPattern.test(machineID)) {
|
|
337
|
+
throw new Error("Telemetry spool scope is invalid.");
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
function validateEventScope(event, scope, sequence) {
|
|
341
|
+
if (event.tenantId !== scope.tenantID ||
|
|
342
|
+
event.machineId !== scope.machineID ||
|
|
343
|
+
event.sequence !== sequence) {
|
|
344
|
+
throw new Error("Telemetry spool event scope is invalid.");
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
function isNodeError(error) {
|
|
348
|
+
return error instanceof Error && "code" in error;
|
|
349
|
+
}
|
|
350
|
+
//# sourceMappingURL=event-spool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-spool.js","sourceRoot":"","sources":["../../src/event-spool.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
import type { GenEnum, GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
|
|
2
|
+
import type { Timestamp } from "@bufbuild/protobuf/wkt";
|
|
3
|
+
import type { Message } from "@bufbuild/protobuf";
|
|
4
|
+
/**
|
|
5
|
+
* Describes the file phigon/v1/action.proto.
|
|
6
|
+
*/
|
|
7
|
+
export declare const file_phigon_v1_action: GenFile;
|
|
8
|
+
/**
|
|
9
|
+
* ActionCapabilityManifest is machine-owner controlled. enabled=false means
|
|
10
|
+
* the observer will reject every remote action even when it is connected.
|
|
11
|
+
*
|
|
12
|
+
* @generated from message phigon.v1.ActionCapabilityManifest
|
|
13
|
+
*/
|
|
14
|
+
export type ActionCapabilityManifest = Message<"phigon.v1.ActionCapabilityManifest"> & {
|
|
15
|
+
/**
|
|
16
|
+
* @generated from field: string machine_id = 1;
|
|
17
|
+
*/
|
|
18
|
+
machineId: string;
|
|
19
|
+
/**
|
|
20
|
+
* @generated from field: bool enabled = 2;
|
|
21
|
+
*/
|
|
22
|
+
enabled: boolean;
|
|
23
|
+
/**
|
|
24
|
+
* @generated from field: string executor_version = 3;
|
|
25
|
+
*/
|
|
26
|
+
executorVersion: string;
|
|
27
|
+
/**
|
|
28
|
+
* @generated from field: repeated phigon.v1.RemoteActionType actions = 4;
|
|
29
|
+
*/
|
|
30
|
+
actions: RemoteActionType[];
|
|
31
|
+
/**
|
|
32
|
+
* @generated from field: google.protobuf.Timestamp observed_at = 5;
|
|
33
|
+
*/
|
|
34
|
+
observedAt?: Timestamp | undefined;
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Describes the message phigon.v1.ActionCapabilityManifest.
|
|
38
|
+
* Use `create(ActionCapabilityManifestSchema)` to create a new message.
|
|
39
|
+
*/
|
|
40
|
+
export declare const ActionCapabilityManifestSchema: GenMessage<ActionCapabilityManifest>;
|
|
41
|
+
/**
|
|
42
|
+
* AgentActionCommand targets one observed process lifetime. process_id is
|
|
43
|
+
* display/OS dispatch metadata; agent_id plus expected_started_at are the
|
|
44
|
+
* identity preconditions that protect against PID reuse.
|
|
45
|
+
*
|
|
46
|
+
* @generated from message phigon.v1.AgentActionCommand
|
|
47
|
+
*/
|
|
48
|
+
export type AgentActionCommand = Message<"phigon.v1.AgentActionCommand"> & {
|
|
49
|
+
/**
|
|
50
|
+
* @generated from field: string action_id = 1;
|
|
51
|
+
*/
|
|
52
|
+
actionId: string;
|
|
53
|
+
/**
|
|
54
|
+
* @generated from field: string idempotency_key = 2;
|
|
55
|
+
*/
|
|
56
|
+
idempotencyKey: string;
|
|
57
|
+
/**
|
|
58
|
+
* @generated from field: string machine_id = 3;
|
|
59
|
+
*/
|
|
60
|
+
machineId: string;
|
|
61
|
+
/**
|
|
62
|
+
* @generated from field: string agent_id = 4;
|
|
63
|
+
*/
|
|
64
|
+
agentId: string;
|
|
65
|
+
/**
|
|
66
|
+
* @generated from field: uint64 process_id = 5;
|
|
67
|
+
*/
|
|
68
|
+
processId: bigint;
|
|
69
|
+
/**
|
|
70
|
+
* @generated from field: google.protobuf.Timestamp expected_started_at = 6;
|
|
71
|
+
*/
|
|
72
|
+
expectedStartedAt?: Timestamp | undefined;
|
|
73
|
+
/**
|
|
74
|
+
* @generated from field: phigon.v1.RemoteActionType action = 7;
|
|
75
|
+
*/
|
|
76
|
+
action: RemoteActionType;
|
|
77
|
+
/**
|
|
78
|
+
* @generated from field: google.protobuf.Timestamp expires_at = 8;
|
|
79
|
+
*/
|
|
80
|
+
expiresAt?: Timestamp | undefined;
|
|
81
|
+
/**
|
|
82
|
+
* @generated from field: string reason = 9;
|
|
83
|
+
*/
|
|
84
|
+
reason: string;
|
|
85
|
+
/**
|
|
86
|
+
* Validated executable/argv request, bound to this immutable operation.
|
|
87
|
+
*
|
|
88
|
+
* @generated from field: string command_json = 10;
|
|
89
|
+
*/
|
|
90
|
+
commandJson: string;
|
|
91
|
+
};
|
|
92
|
+
/**
|
|
93
|
+
* Describes the message phigon.v1.AgentActionCommand.
|
|
94
|
+
* Use `create(AgentActionCommandSchema)` to create a new message.
|
|
95
|
+
*/
|
|
96
|
+
export declare const AgentActionCommandSchema: GenMessage<AgentActionCommand>;
|
|
97
|
+
/**
|
|
98
|
+
* AgentActionResult contains bounded, locally redacted output for approved
|
|
99
|
+
* machine commands. Normal process-signal receipts carry no command output.
|
|
100
|
+
*
|
|
101
|
+
* @generated from message phigon.v1.AgentActionResult
|
|
102
|
+
*/
|
|
103
|
+
export type AgentActionResult = Message<"phigon.v1.AgentActionResult"> & {
|
|
104
|
+
/**
|
|
105
|
+
* @generated from field: string action_id = 1;
|
|
106
|
+
*/
|
|
107
|
+
actionId: string;
|
|
108
|
+
/**
|
|
109
|
+
* @generated from field: string idempotency_key = 2;
|
|
110
|
+
*/
|
|
111
|
+
idempotencyKey: string;
|
|
112
|
+
/**
|
|
113
|
+
* @generated from field: string machine_id = 3;
|
|
114
|
+
*/
|
|
115
|
+
machineId: string;
|
|
116
|
+
/**
|
|
117
|
+
* @generated from field: phigon.v1.RemoteActionResultState state = 4;
|
|
118
|
+
*/
|
|
119
|
+
state: RemoteActionResultState;
|
|
120
|
+
/**
|
|
121
|
+
* @generated from field: string result_code = 5;
|
|
122
|
+
*/
|
|
123
|
+
resultCode: string;
|
|
124
|
+
/**
|
|
125
|
+
* @generated from field: string detail = 6;
|
|
126
|
+
*/
|
|
127
|
+
detail: string;
|
|
128
|
+
/**
|
|
129
|
+
* @generated from field: google.protobuf.Timestamp observed_at = 7;
|
|
130
|
+
*/
|
|
131
|
+
observedAt?: Timestamp | undefined;
|
|
132
|
+
/**
|
|
133
|
+
* @generated from field: bool target_still_running = 8;
|
|
134
|
+
*/
|
|
135
|
+
targetStillRunning: boolean;
|
|
136
|
+
/**
|
|
137
|
+
* @generated from field: string output = 9;
|
|
138
|
+
*/
|
|
139
|
+
output: string;
|
|
140
|
+
/**
|
|
141
|
+
* @generated from field: optional int32 exit_code = 10;
|
|
142
|
+
*/
|
|
143
|
+
exitCode?: number | undefined;
|
|
144
|
+
/**
|
|
145
|
+
* @generated from field: bool output_truncated = 11;
|
|
146
|
+
*/
|
|
147
|
+
outputTruncated: boolean;
|
|
148
|
+
};
|
|
149
|
+
/**
|
|
150
|
+
* Describes the message phigon.v1.AgentActionResult.
|
|
151
|
+
* Use `create(AgentActionResultSchema)` to create a new message.
|
|
152
|
+
*/
|
|
153
|
+
export declare const AgentActionResultSchema: GenMessage<AgentActionResult>;
|
|
154
|
+
/**
|
|
155
|
+
* Machine operations require a separately enabled owner capability. Every
|
|
156
|
+
* request is approved, expires, and produces an idempotent execution receipt.
|
|
157
|
+
*
|
|
158
|
+
* @generated from enum phigon.v1.RemoteActionType
|
|
159
|
+
*/
|
|
160
|
+
export declare enum RemoteActionType {
|
|
161
|
+
/**
|
|
162
|
+
* @generated from enum value: REMOTE_ACTION_TYPE_UNSPECIFIED = 0;
|
|
163
|
+
*/
|
|
164
|
+
UNSPECIFIED = 0,
|
|
165
|
+
/**
|
|
166
|
+
* @generated from enum value: REMOTE_ACTION_TYPE_STOP_AGENT = 1;
|
|
167
|
+
*/
|
|
168
|
+
STOP_AGENT = 1,
|
|
169
|
+
/**
|
|
170
|
+
* @generated from enum value: REMOTE_ACTION_TYPE_KILL_AGENT = 2;
|
|
171
|
+
*/
|
|
172
|
+
KILL_AGENT = 2,
|
|
173
|
+
/**
|
|
174
|
+
* @generated from enum value: REMOTE_ACTION_TYPE_RUN_COMMAND = 3;
|
|
175
|
+
*/
|
|
176
|
+
RUN_COMMAND = 3,
|
|
177
|
+
/**
|
|
178
|
+
* @generated from enum value: REMOTE_ACTION_TYPE_INSPECT_SYSTEM = 4;
|
|
179
|
+
*/
|
|
180
|
+
INSPECT_SYSTEM = 4,
|
|
181
|
+
/**
|
|
182
|
+
* @generated from enum value: REMOTE_ACTION_TYPE_SHUTDOWN_MACHINE = 5;
|
|
183
|
+
*/
|
|
184
|
+
SHUTDOWN_MACHINE = 5,
|
|
185
|
+
/**
|
|
186
|
+
* @generated from enum value: REMOTE_ACTION_TYPE_RESTART_MACHINE = 6;
|
|
187
|
+
*/
|
|
188
|
+
RESTART_MACHINE = 6
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Describes the enum phigon.v1.RemoteActionType.
|
|
192
|
+
*/
|
|
193
|
+
export declare const RemoteActionTypeSchema: GenEnum<RemoteActionType>;
|
|
194
|
+
/**
|
|
195
|
+
* @generated from enum phigon.v1.RemoteActionResultState
|
|
196
|
+
*/
|
|
197
|
+
export declare enum RemoteActionResultState {
|
|
198
|
+
/**
|
|
199
|
+
* @generated from enum value: REMOTE_ACTION_RESULT_STATE_UNSPECIFIED = 0;
|
|
200
|
+
*/
|
|
201
|
+
UNSPECIFIED = 0,
|
|
202
|
+
/**
|
|
203
|
+
* @generated from enum value: REMOTE_ACTION_RESULT_STATE_SUCCEEDED = 1;
|
|
204
|
+
*/
|
|
205
|
+
SUCCEEDED = 1,
|
|
206
|
+
/**
|
|
207
|
+
* @generated from enum value: REMOTE_ACTION_RESULT_STATE_FAILED = 2;
|
|
208
|
+
*/
|
|
209
|
+
FAILED = 2,
|
|
210
|
+
/**
|
|
211
|
+
* @generated from enum value: REMOTE_ACTION_RESULT_STATE_REJECTED = 3;
|
|
212
|
+
*/
|
|
213
|
+
REJECTED = 3,
|
|
214
|
+
/**
|
|
215
|
+
* @generated from enum value: REMOTE_ACTION_RESULT_STATE_EXPIRED = 4;
|
|
216
|
+
*/
|
|
217
|
+
EXPIRED = 4
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Describes the enum phigon.v1.RemoteActionResultState.
|
|
221
|
+
*/
|
|
222
|
+
export declare const RemoteActionResultStateSchema: GenEnum<RemoteActionResultState>;
|
|
223
|
+
//# sourceMappingURL=action_pb.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"action_pb.d.ts","sourceRoot":"","sources":["../../../../../src/generated/phigon/v1/action_pb.ts"],"names":[],"mappings":"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"}
|