@phigon/observer 8.0.1 → 8.1.0
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/LICENSE +202 -0
- package/NOTICE +8 -0
- package/README.md +333 -303
- package/THIRD_PARTY_NOTICES.md +610 -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 +0 -0
- package/dist/src/action-policy.d.ts.map +0 -0
- package/dist/src/action-policy.js +0 -0
- package/dist/src/action-policy.js.map +0 -0
- package/dist/src/activity/adapters/claude.d.ts +0 -0
- package/dist/src/activity/adapters/claude.d.ts.map +0 -0
- package/dist/src/activity/adapters/claude.js +0 -0
- package/dist/src/activity/adapters/claude.js.map +0 -0
- package/dist/src/activity/adapters/codex.d.ts +0 -0
- package/dist/src/activity/adapters/codex.d.ts.map +0 -0
- package/dist/src/activity/adapters/codex.js +0 -0
- package/dist/src/activity/adapters/codex.js.map +0 -0
- package/dist/src/activity/adapters/copilot.d.ts +0 -0
- package/dist/src/activity/adapters/copilot.d.ts.map +0 -0
- package/dist/src/activity/adapters/copilot.js +0 -0
- package/dist/src/activity/adapters/copilot.js.map +0 -0
- package/dist/src/activity/adapters/generic.d.ts +0 -0
- package/dist/src/activity/adapters/generic.d.ts.map +0 -0
- package/dist/src/activity/adapters/generic.js +0 -0
- package/dist/src/activity/adapters/generic.js.map +0 -0
- package/dist/src/activity/adapters/hermes.d.ts +0 -0
- package/dist/src/activity/adapters/hermes.d.ts.map +0 -0
- package/dist/src/activity/adapters/hermes.js +0 -0
- package/dist/src/activity/adapters/hermes.js.map +0 -0
- package/dist/src/activity/adapters/openai-compatible.d.ts +0 -0
- package/dist/src/activity/adapters/openai-compatible.d.ts.map +0 -0
- package/dist/src/activity/adapters/openai-compatible.js +0 -0
- package/dist/src/activity/adapters/openai-compatible.js.map +0 -0
- package/dist/src/activity/adapters/openclaw.d.ts +0 -0
- package/dist/src/activity/adapters/openclaw.d.ts.map +0 -0
- package/dist/src/activity/adapters/openclaw.js +0 -0
- package/dist/src/activity/adapters/openclaw.js.map +0 -0
- package/dist/src/activity/adapters/opencode.d.ts +0 -0
- package/dist/src/activity/adapters/opencode.d.ts.map +0 -0
- package/dist/src/activity/adapters/opencode.js +0 -0
- package/dist/src/activity/adapters/opencode.js.map +0 -0
- package/dist/src/activity/bridges.d.ts +0 -0
- package/dist/src/activity/bridges.d.ts.map +0 -0
- package/dist/src/activity/bridges.js +0 -0
- package/dist/src/activity/bridges.js.map +0 -0
- package/dist/src/activity/collector.d.ts +0 -0
- package/dist/src/activity/collector.d.ts.map +0 -0
- package/dist/src/activity/collector.js +0 -0
- package/dist/src/activity/collector.js.map +0 -0
- package/dist/src/activity/index.d.ts +0 -0
- package/dist/src/activity/index.d.ts.map +0 -0
- package/dist/src/activity/index.js +0 -0
- package/dist/src/activity/index.js.map +0 -0
- package/dist/src/activity/ingest.d.ts +0 -0
- package/dist/src/activity/ingest.d.ts.map +0 -0
- package/dist/src/activity/ingest.js +0 -0
- package/dist/src/activity/ingest.js.map +0 -0
- package/dist/src/activity/native-capabilities.d.ts +0 -0
- package/dist/src/activity/native-capabilities.d.ts.map +0 -0
- package/dist/src/activity/native-capabilities.js +0 -0
- package/dist/src/activity/native-capabilities.js.map +0 -0
- package/dist/src/activity/normalize.d.ts +0 -0
- package/dist/src/activity/normalize.d.ts.map +0 -0
- package/dist/src/activity/normalize.js +0 -0
- package/dist/src/activity/normalize.js.map +0 -0
- package/dist/src/activity/opencode-sqlite-source.d.ts +0 -0
- package/dist/src/activity/opencode-sqlite-source.d.ts.map +0 -0
- package/dist/src/activity/opencode-sqlite-source.js +0 -0
- package/dist/src/activity/opencode-sqlite-source.js.map +0 -0
- package/dist/src/activity/policy.d.ts +0 -0
- package/dist/src/activity/policy.d.ts.map +1 -1
- package/dist/src/activity/policy.js +2 -13
- package/dist/src/activity/policy.js.map +1 -1
- package/dist/src/activity/record.d.ts +0 -0
- package/dist/src/activity/record.d.ts.map +0 -0
- package/dist/src/activity/record.js +0 -0
- package/dist/src/activity/record.js.map +0 -0
- package/dist/src/activity/source-reader.d.ts +0 -0
- package/dist/src/activity/source-reader.d.ts.map +0 -0
- package/dist/src/activity/source-reader.js +0 -0
- package/dist/src/activity/source-reader.js.map +0 -0
- package/dist/src/activity/types.d.ts +0 -0
- package/dist/src/activity/types.d.ts.map +0 -0
- package/dist/src/activity/types.js +0 -0
- package/dist/src/activity/types.js.map +0 -0
- package/dist/src/agent-action-executor.d.ts +1 -0
- package/dist/src/agent-action-executor.d.ts.map +1 -1
- package/dist/src/agent-action-executor.js +7 -2
- package/dist/src/agent-action-executor.js.map +1 -1
- package/dist/src/agentic-guardian.d.ts +0 -0
- package/dist/src/agentic-guardian.d.ts.map +0 -0
- package/dist/src/agentic-guardian.js +0 -0
- package/dist/src/agentic-guardian.js.map +0 -0
- package/dist/src/atomic-replace.d.ts +0 -0
- package/dist/src/atomic-replace.d.ts.map +0 -0
- package/dist/src/atomic-replace.js +0 -0
- package/dist/src/atomic-replace.js.map +0 -0
- package/dist/src/cli.d.ts +0 -0
- package/dist/src/cli.d.ts.map +1 -1
- package/dist/src/cli.js +50 -4
- package/dist/src/cli.js.map +1 -1
- package/dist/src/config.d.ts +2 -0
- package/dist/src/config.d.ts.map +1 -1
- package/dist/src/config.js +6 -1
- package/dist/src/config.js.map +1 -1
- package/dist/src/connection-config.d.ts +3 -0
- package/dist/src/connection-config.d.ts.map +1 -0
- package/dist/src/connection-config.js +24 -0
- package/dist/src/connection-config.js.map +1 -0
- package/dist/src/content-redaction.d.ts +3 -0
- package/dist/src/content-redaction.d.ts.map +1 -0
- package/dist/src/content-redaction.js +12 -0
- package/dist/src/content-redaction.js.map +1 -0
- package/dist/src/credential-store.d.ts +1 -0
- package/dist/src/credential-store.d.ts.map +1 -1
- package/dist/src/credential-store.js +11 -1
- package/dist/src/credential-store.js.map +1 -1
- package/dist/src/custom-agent-registry.d.ts +0 -0
- package/dist/src/custom-agent-registry.d.ts.map +0 -0
- package/dist/src/custom-agent-registry.js +0 -0
- package/dist/src/custom-agent-registry.js.map +0 -0
- package/dist/src/discovery/adapters/claude.d.ts +0 -0
- package/dist/src/discovery/adapters/claude.d.ts.map +0 -0
- package/dist/src/discovery/adapters/claude.js +0 -0
- package/dist/src/discovery/adapters/claude.js.map +0 -0
- package/dist/src/discovery/adapters/codex.d.ts +0 -0
- package/dist/src/discovery/adapters/codex.d.ts.map +0 -0
- package/dist/src/discovery/adapters/codex.js +0 -0
- package/dist/src/discovery/adapters/codex.js.map +0 -0
- package/dist/src/discovery/adapters/custom.d.ts +0 -0
- package/dist/src/discovery/adapters/custom.d.ts.map +0 -0
- package/dist/src/discovery/adapters/custom.js +0 -0
- package/dist/src/discovery/adapters/custom.js.map +0 -0
- package/dist/src/discovery/adapters/generic.d.ts +0 -0
- package/dist/src/discovery/adapters/generic.d.ts.map +0 -0
- package/dist/src/discovery/adapters/generic.js +0 -0
- package/dist/src/discovery/adapters/generic.js.map +0 -0
- package/dist/src/discovery/adapters/hermes.d.ts +0 -0
- package/dist/src/discovery/adapters/hermes.d.ts.map +0 -0
- package/dist/src/discovery/adapters/hermes.js +0 -0
- package/dist/src/discovery/adapters/hermes.js.map +0 -0
- package/dist/src/discovery/adapters/openclaw.d.ts +0 -0
- package/dist/src/discovery/adapters/openclaw.d.ts.map +0 -0
- package/dist/src/discovery/adapters/openclaw.js +0 -0
- package/dist/src/discovery/adapters/openclaw.js.map +0 -0
- package/dist/src/discovery/engine.d.ts +0 -0
- package/dist/src/discovery/engine.d.ts.map +0 -0
- package/dist/src/discovery/engine.js +0 -0
- package/dist/src/discovery/engine.js.map +0 -0
- package/dist/src/discovery/evidence.d.ts +0 -0
- package/dist/src/discovery/evidence.d.ts.map +0 -0
- package/dist/src/discovery/evidence.js +0 -0
- package/dist/src/discovery/evidence.js.map +0 -0
- package/dist/src/discovery/index.d.ts +0 -0
- package/dist/src/discovery/index.d.ts.map +0 -0
- package/dist/src/discovery/index.js +0 -0
- package/dist/src/discovery/index.js.map +0 -0
- package/dist/src/discovery/known-agent.d.ts +0 -0
- package/dist/src/discovery/known-agent.d.ts.map +0 -0
- package/dist/src/discovery/known-agent.js +0 -0
- package/dist/src/discovery/known-agent.js.map +0 -0
- package/dist/src/discovery/process-identity.d.ts +0 -0
- package/dist/src/discovery/process-identity.d.ts.map +0 -0
- package/dist/src/discovery/process-identity.js +0 -0
- package/dist/src/discovery/process-identity.js.map +0 -0
- package/dist/src/discovery/system-evidence.d.ts +0 -0
- package/dist/src/discovery/system-evidence.d.ts.map +0 -0
- package/dist/src/discovery/system-evidence.js +0 -0
- package/dist/src/discovery/system-evidence.js.map +0 -0
- package/dist/src/discovery/types.d.ts +0 -0
- package/dist/src/discovery/types.d.ts.map +0 -0
- package/dist/src/discovery/types.js +0 -0
- package/dist/src/discovery/types.js.map +0 -0
- package/dist/src/event-queue.d.ts +0 -0
- package/dist/src/event-queue.d.ts.map +0 -0
- package/dist/src/event-queue.js +0 -0
- package/dist/src/event-queue.js.map +0 -0
- package/dist/src/event-spool.d.ts +0 -0
- package/dist/src/event-spool.d.ts.map +0 -0
- package/dist/src/event-spool.js +0 -0
- package/dist/src/event-spool.js.map +0 -0
- package/dist/src/generated/phigon/v1/action_pb.d.ts +0 -0
- package/dist/src/generated/phigon/v1/action_pb.d.ts.map +1 -1
- package/dist/src/generated/phigon/v1/action_pb.js +1 -1
- package/dist/src/generated/phigon/v1/action_pb.js.map +1 -1
- package/dist/src/generated/phigon/v1/common_pb.d.ts +0 -0
- package/dist/src/generated/phigon/v1/common_pb.d.ts.map +1 -1
- package/dist/src/generated/phigon/v1/common_pb.js +1 -1
- package/dist/src/generated/phigon/v1/common_pb.js.map +1 -1
- package/dist/src/generated/phigon/v1/history_sync_pb.d.ts +0 -0
- package/dist/src/generated/phigon/v1/history_sync_pb.d.ts.map +1 -1
- package/dist/src/generated/phigon/v1/history_sync_pb.js +1 -1
- package/dist/src/generated/phigon/v1/history_sync_pb.js.map +1 -1
- package/dist/src/generated/phigon/v1/identity_pb.d.ts +0 -0
- package/dist/src/generated/phigon/v1/identity_pb.d.ts.map +1 -1
- package/dist/src/generated/phigon/v1/identity_pb.js +1 -1
- package/dist/src/generated/phigon/v1/identity_pb.js.map +1 -1
- package/dist/src/generated/phigon/v1/observer_service_pb.d.ts +0 -0
- package/dist/src/generated/phigon/v1/observer_service_pb.d.ts.map +1 -1
- package/dist/src/generated/phigon/v1/observer_service_pb.js +1 -1
- package/dist/src/generated/phigon/v1/observer_service_pb.js.map +1 -1
- package/dist/src/generated/phigon/v1/policy_pb.d.ts +0 -0
- package/dist/src/generated/phigon/v1/policy_pb.d.ts.map +1 -1
- package/dist/src/generated/phigon/v1/policy_pb.js +1 -1
- package/dist/src/generated/phigon/v1/policy_pb.js.map +1 -1
- package/dist/src/generated/phigon/v1/supervision_pb.d.ts +0 -0
- package/dist/src/generated/phigon/v1/supervision_pb.d.ts.map +1 -1
- package/dist/src/generated/phigon/v1/supervision_pb.js +1 -1
- package/dist/src/generated/phigon/v1/supervision_pb.js.map +1 -1
- package/dist/src/generated/phigon/v1/telemetry_pb.d.ts +0 -0
- package/dist/src/generated/phigon/v1/telemetry_pb.d.ts.map +1 -1
- package/dist/src/generated/phigon/v1/telemetry_pb.js +1 -1
- package/dist/src/generated/phigon/v1/telemetry_pb.js.map +1 -1
- package/dist/src/guardian-containment.d.ts +1 -1
- package/dist/src/guardian-containment.d.ts.map +1 -1
- package/dist/src/guardian-containment.js +1 -1
- package/dist/src/guardian-containment.js.map +1 -1
- package/dist/src/guardian-decision-journal.d.ts +0 -0
- package/dist/src/guardian-decision-journal.d.ts.map +0 -0
- package/dist/src/guardian-decision-journal.js +0 -0
- package/dist/src/guardian-decision-journal.js.map +0 -0
- package/dist/src/guardian-execution-manifest.d.ts +0 -0
- package/dist/src/guardian-execution-manifest.d.ts.map +0 -0
- package/dist/src/guardian-execution-manifest.js +0 -0
- package/dist/src/guardian-execution-manifest.js.map +0 -0
- package/dist/src/guardian-hosted-client.d.ts +0 -0
- package/dist/src/guardian-hosted-client.d.ts.map +0 -0
- package/dist/src/guardian-hosted-client.js +0 -0
- package/dist/src/guardian-hosted-client.js.map +0 -0
- package/dist/src/guardian-managed-exec.d.ts +0 -0
- package/dist/src/guardian-managed-exec.d.ts.map +0 -0
- package/dist/src/guardian-managed-exec.js +0 -0
- package/dist/src/guardian-managed-exec.js.map +0 -0
- package/dist/src/guardian-model-bridge.d.ts +0 -0
- package/dist/src/guardian-model-bridge.d.ts.map +0 -0
- package/dist/src/guardian-model-bridge.js +0 -0
- package/dist/src/guardian-model-bridge.js.map +0 -0
- package/dist/src/guardian-native.d.ts +0 -0
- package/dist/src/guardian-native.d.ts.map +0 -0
- package/dist/src/guardian-native.js +0 -0
- package/dist/src/guardian-native.js.map +0 -0
- package/dist/src/guardian-process-monitor.d.ts +3 -1
- package/dist/src/guardian-process-monitor.d.ts.map +1 -1
- package/dist/src/guardian-process-monitor.js +56 -8
- package/dist/src/guardian-process-monitor.js.map +1 -1
- package/dist/src/health.d.ts +0 -0
- package/dist/src/health.d.ts.map +0 -0
- package/dist/src/health.js +0 -0
- package/dist/src/health.js.map +0 -0
- package/dist/src/historical-identity-store.d.ts +0 -0
- package/dist/src/historical-identity-store.d.ts.map +0 -0
- package/dist/src/historical-identity-store.js +0 -0
- package/dist/src/historical-identity-store.js.map +0 -0
- package/dist/src/index.d.ts +0 -0
- package/dist/src/index.d.ts.map +0 -0
- package/dist/src/index.js +0 -0
- package/dist/src/index.js.map +0 -0
- package/dist/src/installation.d.ts +0 -0
- package/dist/src/installation.d.ts.map +0 -0
- package/dist/src/installation.js +0 -0
- package/dist/src/installation.js.map +0 -0
- package/dist/src/machine-command-executor.d.ts +4 -0
- package/dist/src/machine-command-executor.d.ts.map +1 -1
- package/dist/src/machine-command-executor.js +34 -6
- package/dist/src/machine-command-executor.js.map +1 -1
- package/dist/src/pair.d.ts +0 -0
- package/dist/src/pair.d.ts.map +1 -1
- package/dist/src/pair.js +10 -1
- package/dist/src/pair.js.map +1 -1
- package/dist/src/remove-machine.d.ts +0 -0
- package/dist/src/remove-machine.d.ts.map +0 -0
- package/dist/src/remove-machine.js +0 -0
- package/dist/src/remove-machine.js.map +0 -0
- package/dist/src/stream-client.d.ts +3 -1
- package/dist/src/stream-client.d.ts.map +1 -1
- package/dist/src/stream-client.js +46 -5
- package/dist/src/stream-client.js.map +1 -1
- package/dist/src/stream-state.d.ts +0 -0
- package/dist/src/stream-state.d.ts.map +0 -0
- package/dist/src/stream-state.js +0 -0
- package/dist/src/stream-state.js.map +0 -0
- package/dist/src/update.d.ts +15 -0
- package/dist/src/update.d.ts.map +1 -0
- package/dist/src/update.js +87 -0
- package/dist/src/update.js.map +1 -0
- package/dist/src/windows-process.d.ts +1 -1
- package/dist/src/windows-process.d.ts.map +1 -1
- package/dist/src/windows-process.js +3 -2
- package/dist/src/windows-process.js.map +1 -1
- package/package.json +83 -78
- package/scripts/install.mjs +308 -308
- package/scripts/managed-service.mjs +0 -0
- package/scripts/verify-guardian-release.mjs +0 -0
- package/scripts/windows-app-control.mjs +0 -0
package/README.md
CHANGED
|
@@ -1,303 +1,333 @@
|
|
|
1
|
-
<p align="center">
|
|
2
|
-
<a href="https://phigon.online">
|
|
3
|
-
<picture>
|
|
4
|
-
<source media="(prefers-color-scheme: dark)" srcset="https://phigon.online/brand/phigon-white.svg" />
|
|
5
|
-
<img src="https://phigon.online/brand/phigon-black.svg" alt="Phigon" width="
|
|
6
|
-
</picture>
|
|
7
|
-
</a>
|
|
8
|
-
</p>
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
Phigon
|
|
23
|
-
and
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
phigon
|
|
51
|
-
phigon
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
phigon-observer
|
|
110
|
-
```
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
##
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
`
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
1
|
+
<p align="center">
|
|
2
|
+
<a href="https://phigon.online">
|
|
3
|
+
<picture>
|
|
4
|
+
<source media="(prefers-color-scheme: dark)" srcset="https://phigon.online/brand/phigon-white.svg" />
|
|
5
|
+
<img src="https://phigon.online/brand/phigon-black.svg" alt="Phigon" width="64" />
|
|
6
|
+
</picture>
|
|
7
|
+
</a>
|
|
8
|
+
</p>
|
|
9
|
+
|
|
10
|
+
<h1 align="center">Phigon Observer</h1>
|
|
11
|
+
|
|
12
|
+
<p align="center">
|
|
13
|
+
See what AI coding agents do on a computer, with the owner's consent.
|
|
14
|
+
</p>
|
|
15
|
+
|
|
16
|
+
<p align="center">
|
|
17
|
+
<a href="https://www.npmjs.com/package/@phigon/observer"><img alt="npm" src="https://img.shields.io/npm/v/@phigon/observer?color=000000&label=npm"></a>
|
|
18
|
+
<a href="LICENSE"><img alt="License: Apache 2.0" src="https://img.shields.io/badge/license-Apache%202.0-000000"></a>
|
|
19
|
+
<a href="https://github.com/phigonai/observer/actions/workflows/ci.yml"><img alt="CI" src="https://github.com/phigonai/observer/actions/workflows/ci.yml/badge.svg"></a>
|
|
20
|
+
</p>
|
|
21
|
+
|
|
22
|
+
The Phigon Observer runs on a computer where people use AI coding agents such as
|
|
23
|
+
Claude Code, Codex, Cursor and GitHub Copilot. It finds the agents, records what
|
|
24
|
+
they do within the scope the computer's owner approves, removes secrets on the
|
|
25
|
+
machine, and streams the activity to a [Phigon](https://phigon.online)
|
|
26
|
+
workspace. It can also check your company's Guardian rules before an agent runs
|
|
27
|
+
a risky action.
|
|
28
|
+
|
|
29
|
+
It is open source under the [Apache License 2.0](LICENSE), so you can read
|
|
30
|
+
exactly what runs on your computers and what leaves them.
|
|
31
|
+
|
|
32
|
+
- **Consent first.** Nothing is collected until the computer's owner approves
|
|
33
|
+
the exact scope on that machine.
|
|
34
|
+
- **Metadata by default.** The default profile shares which agents run and the
|
|
35
|
+
kind of work they do, not prompts, replies, code or terminal output.
|
|
36
|
+
- **Secrets stay on the machine.** Passwords, tokens and API keys are redacted
|
|
37
|
+
before anything is sent. Local settings can only narrow what is shared.
|
|
38
|
+
- **Survives disconnects.** Activity waits in an encrypted local queue and is
|
|
39
|
+
delivered, in order and without duplicates, when the connection returns.
|
|
40
|
+
|
|
41
|
+
## Supported agents
|
|
42
|
+
|
|
43
|
+
| | Agent | Detected | Activity and history |
|
|
44
|
+
| --- | --- | --- | --- |
|
|
45
|
+
| <img src="https://phigon.online/agents/claude-code.svg" width="20" alt=""> | Claude Code | Yes | Built in |
|
|
46
|
+
| <img src="https://phigon.online/agents/codex.svg" width="20" alt=""> | OpenAI Codex | Yes | Built in |
|
|
47
|
+
| <img src="https://phigon.online/agents/github-copilot.svg" width="20" alt=""> | GitHub Copilot CLI | Yes | Built in |
|
|
48
|
+
| <img src="https://phigon.online/agents/opencode.svg" width="20" alt=""> | OpenCode | Yes | Built in |
|
|
49
|
+
| <img src="https://phigon.online/agents/openclaw.svg" width="20" alt=""> | OpenClaw | Yes | Built in |
|
|
50
|
+
| <img src="https://phigon.online/agents/hermes.svg" width="20" alt=""> | Hermes Agent | Yes | Built in |
|
|
51
|
+
| <img src="https://phigon.online/agents/cursor.svg" width="20" alt=""> | Cursor Agent | Yes | Bridge |
|
|
52
|
+
| <img src="https://phigon.online/agents/gemini-cli.svg" width="20" alt=""> | Gemini CLI | Yes | Bridge |
|
|
53
|
+
| <img src="https://phigon.online/agents/amp.svg" width="20" alt=""> | Amp | Yes | Bridge |
|
|
54
|
+
| <img src="https://phigon.online/agents/goose.svg" width="20" alt=""> | Goose | Yes | Bridge |
|
|
55
|
+
| <img src="https://phigon.online/agents/cline.svg" width="20" alt=""> | Cline | Yes | Bridge |
|
|
56
|
+
| <img src="https://phigon.online/agents/openhands.svg" width="20" alt=""> | OpenHands | Yes | Bridge |
|
|
57
|
+
| | Aider, Amazon Q Developer CLI, Continue | Yes | Bridge |
|
|
58
|
+
| | Any other agent | [Register it](#custom-agents) | Bridge |
|
|
59
|
+
|
|
60
|
+
*Built in* means the observer reads the agent's own records. *Bridge* means the
|
|
61
|
+
agent (or a small wrapper) pipes NDJSON to `phigon-observer ingest`.
|
|
62
|
+
|
|
63
|
+
## How it works
|
|
64
|
+
|
|
65
|
+
```
|
|
66
|
+
Your computer Phigon workspace
|
|
67
|
+
┌──────────────────────────────────────────┐ ┌─────────────────────────┐
|
|
68
|
+
│ AI agents (Claude Code, Codex, ...) │ │ Control plane │
|
|
69
|
+
│ │ their own records and processes │ │ history and search │
|
|
70
|
+
│ ▼ │ TLS │ Guardian rules │
|
|
71
|
+
│ phigon-observer │ ────► │ the Phigon app │
|
|
72
|
+
│ discover → collect → redact │ gRPC └─────────────────────────┘
|
|
73
|
+
│ → encrypted queue → stream │
|
|
74
|
+
│ │
|
|
75
|
+
│ Guardian runner (managed launches) │
|
|
76
|
+
└──────────────────────────────────────────┘
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
The observer never needs inbound connections. It talks to the control plane
|
|
80
|
+
over HTTPS for pairing and over a single authenticated gRPC stream for
|
|
81
|
+
telemetry. The wire protocol is in [`proto/`](proto).
|
|
82
|
+
|
|
83
|
+
## Quick start
|
|
84
|
+
|
|
85
|
+
You need **Node.js 24 or newer** and a Phigon workspace. Installed releases
|
|
86
|
+
include the Guardian runner for Windows, macOS and Linux on x64 and Arm64; Go is
|
|
87
|
+
only needed to build from source.
|
|
88
|
+
|
|
89
|
+
```sh
|
|
90
|
+
npm install --global @phigon/observer
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
1. In the Phigon app, choose **Connect machine**.
|
|
94
|
+
2. Choose **Metadata** or **Full activity**, then generate a one-time code.
|
|
95
|
+
3. On the computer, run the two commands the dialog shows. The computer's owner
|
|
96
|
+
reviews and accepts the scope.
|
|
97
|
+
|
|
98
|
+
Metadata only:
|
|
99
|
+
|
|
100
|
+
```sh
|
|
101
|
+
phigon-observer pair --code YOUR-CODE --consent-profile metadata
|
|
102
|
+
phigon-observer run --profile metadata
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
Full activity (supported conversations, commands, outputs and past history):
|
|
106
|
+
|
|
107
|
+
```sh
|
|
108
|
+
phigon-observer pair --code YOUR-CODE --consent-profile full
|
|
109
|
+
phigon-observer run --profile full
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
Keep `phigon-observer run` running for live collection; closing the Phigon app
|
|
113
|
+
does not stop it. Check the installation and connection at any time:
|
|
114
|
+
|
|
115
|
+
```sh
|
|
116
|
+
phigon-observer doctor --json
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
## What is collected
|
|
120
|
+
|
|
121
|
+
What the observer sends is always the overlap of your workspace's policy and
|
|
122
|
+
the profile the computer's owner accepted.
|
|
123
|
+
|
|
124
|
+
| | Metadata (default) | Full activity |
|
|
125
|
+
| --- | --- | --- |
|
|
126
|
+
| Which agents are installed and running | Yes | Yes |
|
|
127
|
+
| Agent state, health and kind of activity | Yes | Yes |
|
|
128
|
+
| Prompts and replies | No | Supported agents |
|
|
129
|
+
| Commands, tool calls and their output | No | Supported agents, redacted |
|
|
130
|
+
| Past conversations | No | Imported once, then live |
|
|
131
|
+
| Passwords, tokens and API keys | Never | Never (redacted on the machine) |
|
|
132
|
+
| Provider-encrypted model reasoning | Never | Never decoded |
|
|
133
|
+
|
|
134
|
+
Individual categories can be narrowed further with `PHIGON_COLLECT_*`
|
|
135
|
+
settings. A full description is in
|
|
136
|
+
[privacy and security](https://phigon.online/docs/privacy-and-security/).
|
|
137
|
+
|
|
138
|
+
## Commands
|
|
139
|
+
|
|
140
|
+
| Command | What it does |
|
|
141
|
+
| --- | --- |
|
|
142
|
+
| `pair --code <code> --consent-profile <metadata\|full>` | Connects this computer to a workspace after local consent. |
|
|
143
|
+
| `run [--profile <metadata\|full>]` | Discovers agents and streams permitted activity. |
|
|
144
|
+
| `doctor [--profile <...>] [--json]` | Checks the setup without sending any data. |
|
|
145
|
+
| `discover [--json]` | Prints a one-time, sanitized inventory of local agents. |
|
|
146
|
+
| `agent add \| list \| remove` | Manages custom agent definitions. |
|
|
147
|
+
| `ingest --agent <id\|custom> [--name <name>]` | Reads NDJSON activity from stdin (bridges). |
|
|
148
|
+
| `guardian status \| exec \| launch` | Guardian checks and managed execution. |
|
|
149
|
+
| `authorize-action --action <a> --resource <r>` | Asks Guardian whether one action may run. |
|
|
150
|
+
| `update [--check] [--yes]` | Checks for or installs a new release. |
|
|
151
|
+
| `remove-machine` | Unregisters this computer and revokes its credential. |
|
|
152
|
+
|
|
153
|
+
Run `phigon-observer help` for every flag.
|
|
154
|
+
|
|
155
|
+
## Configuration
|
|
156
|
+
|
|
157
|
+
Settings are environment variables. The most common ones:
|
|
158
|
+
|
|
159
|
+
| Variable | Purpose |
|
|
160
|
+
| --- | --- |
|
|
161
|
+
| `PHIGON_DATA_DIR` | Where the credential, checkpoints and encrypted queue live. Use a separate directory per workspace. |
|
|
162
|
+
| `PHIGON_CONTROL_PLANE_URL`, `PHIGON_GRPC_URL` | Endpoints for a self-hosted workspace. Pairing saves them; the stream refuses to send credentials anywhere else. |
|
|
163
|
+
| `PHIGON_TLS_CA_FILE` | A private certificate authority for gRPC. Use `NODE_EXTRA_CA_CERTS` for HTTPS. |
|
|
164
|
+
| `PHIGON_TLS_CLIENT_CERT_FILE`, `PHIGON_TLS_CLIENT_KEY_FILE` | Client certificate, when the workspace requires mutual TLS. |
|
|
165
|
+
| `PHIGON_COLLECT_*` | Turns individual content categories off (or on, within the workspace policy). |
|
|
166
|
+
| `PHIGON_REDACT_PATH_PATTERNS` | Extra file path patterns to redact. |
|
|
167
|
+
| `PHIGON_<AGENT>_ACTIVITY_DIRS` | Extra record folders for an agent, e.g. `PHIGON_CLAUDE_ACTIVITY_DIRS`. |
|
|
168
|
+
| `PHIGON_REMOTE_ACTIONS_ENABLED` | Opt in to administrator-approved agent stop and force stop. Off by default. |
|
|
169
|
+
| `PHIGON_REMOTE_COMMANDS_ENABLED` | Opt in to administrator-reviewed system operations. Off by default. |
|
|
170
|
+
| `PHIGON_UPDATE_CHECK` | Set to `false` to turn off the once-a-day update check. |
|
|
171
|
+
| `PHIGON_LOG_LEVEL` | Logging detail. |
|
|
172
|
+
|
|
173
|
+
Never disable certificate verification. Interactive `pair` and `run` sessions
|
|
174
|
+
check npm for a new release at most once a day and ask before updating;
|
|
175
|
+
background services and `--json` commands never prompt or update on their own.
|
|
176
|
+
|
|
177
|
+
## Custom agents
|
|
178
|
+
|
|
179
|
+
To monitor an agent without a built-in adapter, register its local signals once:
|
|
180
|
+
|
|
181
|
+
```sh
|
|
182
|
+
phigon-observer agent add \
|
|
183
|
+
--id release-bot \
|
|
184
|
+
--name "Release Bot" \
|
|
185
|
+
--executable release-bot \
|
|
186
|
+
--process release-bot-worker \
|
|
187
|
+
--config-path ~/.release-bot \
|
|
188
|
+
--activity-dir ~/.release-bot/sessions
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
Definitions are reloaded on every scan. `agent list` shows them and
|
|
192
|
+
`agent remove --id release-bot` stops using one. Activity directories accept
|
|
193
|
+
bounded JSONL; paths must be absolute or start with `~/`, roots must be narrow,
|
|
194
|
+
and overlapping signals are rejected instead of guessed. Custom activity stays
|
|
195
|
+
labeled by its source unless independent process evidence proves an exact
|
|
196
|
+
match.
|
|
197
|
+
|
|
198
|
+
## Optional agent actions
|
|
199
|
+
|
|
200
|
+
Remote actions are off on every computer by default.
|
|
201
|
+
|
|
202
|
+
- `PHIGON_REMOTE_ACTIONS_ENABLED=true` lets administrators stop or force-stop
|
|
203
|
+
one exact running agent process. Each stop needs an operator proposal and a
|
|
204
|
+
separate administrator confirmation, expires quickly, and leaves a receipt.
|
|
205
|
+
Graceful stop uses `taskkill /PID` on Windows and `SIGTERM` elsewhere; force
|
|
206
|
+
stop is approved separately. It does not enable shell access, file access,
|
|
207
|
+
screen capture or general remote control.
|
|
208
|
+
- `PHIGON_REMOTE_COMMANDS_ENABLED=true` additionally allows
|
|
209
|
+
administrator-reviewed commands (executable and arguments, no shell), system
|
|
210
|
+
inspection, and scheduled shutdown or restart. Commands run as the observer's
|
|
211
|
+
account, are limited to 1–120 seconds and return at most 32 KB of redacted
|
|
212
|
+
output. A durable journal prevents a command from running twice after a crash.
|
|
213
|
+
|
|
214
|
+
## Guardian: checks before an agent acts
|
|
215
|
+
|
|
216
|
+
Guardian rules are set centrally by your administrators; the observer has no
|
|
217
|
+
local on/off switch. Three integration points are available.
|
|
218
|
+
|
|
219
|
+
**Ask before one action.** Returns exit code `0` only when the action is
|
|
220
|
+
allowed; a denial, a required approval or an unavailable decision returns `77`
|
|
221
|
+
with a message for the agent:
|
|
222
|
+
|
|
223
|
+
```sh
|
|
224
|
+
phigon-observer authorize-action \
|
|
225
|
+
--agent codex:worker-1 \
|
|
226
|
+
--action command.execute \
|
|
227
|
+
--resource "git status" \
|
|
228
|
+
--context-file ./phigon-action-context.json \
|
|
229
|
+
--json
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
The optional context file holds bounded `task_id`, `proposal_id`,
|
|
233
|
+
`plan_step_id`, `user_prompt`, `agent_plan`, `justification`,
|
|
234
|
+
`expected_effect` and `recent_activity` fields. Pass `--process-id` and
|
|
235
|
+
`--process-started-at` for a running agent so the decision is bound to that
|
|
236
|
+
exact process.
|
|
237
|
+
|
|
238
|
+
**Run a command through Guardian.** The check is mandatory, and the input,
|
|
239
|
+
output and exit code are recorded:
|
|
240
|
+
|
|
241
|
+
```sh
|
|
242
|
+
phigon-observer guardian exec --agent codex:worker-1 -- npm test
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
**Launch an agent through Guardian.** One short-lived grant covers starting the
|
|
246
|
+
agent, using the declared model and running the command. The Guardian runner
|
|
247
|
+
contains the process tree, renews its lease directly with the control plane and
|
|
248
|
+
stops the agent if the lease is revoked:
|
|
249
|
+
|
|
250
|
+
```sh
|
|
251
|
+
phigon-observer guardian launch \
|
|
252
|
+
--agent claude-code:worker-1 \
|
|
253
|
+
--model anthropic:claude-sonnet-4-5 \
|
|
254
|
+
-- claude
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
Assigned OS profiles are enforced at launch: on Linux, filesystem and network
|
|
258
|
+
rules through Landlock and seccomp, plus memory, CPU and process limits and
|
|
259
|
+
separate workload users when a cgroup is provisioned; on Windows, memory, CPU
|
|
260
|
+
and process limits; on macOS, runtime deadlines. Compatible agents receive a
|
|
261
|
+
temporary loopback model gateway, so company provider keys stay on the server.
|
|
262
|
+
|
|
263
|
+
While `run` is active, running agents are also reviewed periodically, including
|
|
264
|
+
ones started outside `guardian launch`. Discovery happens after launch, so it
|
|
265
|
+
cannot undo earlier activity. A company that must prevent bypass also needs
|
|
266
|
+
operating-system application control and a controlled model provider proxy.
|
|
267
|
+
|
|
268
|
+
## Troubleshooting
|
|
269
|
+
|
|
270
|
+
- **Command not found:** put npm's global bin directory on `PATH` and reopen
|
|
271
|
+
the terminal.
|
|
272
|
+
- **Expired pairing code:** generate a new one in **Connect machine**.
|
|
273
|
+
- **No conversations:** the metadata profile excludes content. Check with
|
|
274
|
+
`phigon-observer doctor --profile full --json`.
|
|
275
|
+
- **Disconnected:** keep `run` running and allow its HTTPS and gRPC endpoints.
|
|
276
|
+
Queued activity is delivered when the connection returns.
|
|
277
|
+
- **Older self-hosted pairing without a saved stream endpoint:** pass
|
|
278
|
+
`run --grpc-url https://stream.your-company.example` or set `PHIGON_GRPC_URL`.
|
|
279
|
+
- **Unreadable pairing data:** keep the data directory and encrypted queue, and
|
|
280
|
+
restore the credential file from a trusted backup. Never paste it into a
|
|
281
|
+
support message.
|
|
282
|
+
|
|
283
|
+
More help: [setup guide](https://phigon.online/docs/get-started/),
|
|
284
|
+
[documentation](https://phigon.online/docs/) and
|
|
285
|
+
[troubleshooting](https://phigon.online/docs/troubleshooting/).
|
|
286
|
+
|
|
287
|
+
## Building from source
|
|
288
|
+
|
|
289
|
+
You need Node.js 24+ and Go 1.26+.
|
|
290
|
+
|
|
291
|
+
```sh
|
|
292
|
+
npm ci
|
|
293
|
+
npm run build # TypeScript and the Guardian runner for this platform
|
|
294
|
+
npm run check # lint, type check and tests
|
|
295
|
+
npm run build:platforms # Guardian runners for every platform, for releases
|
|
296
|
+
cd go && go test ./... # Go tests
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
After changing the protocol in `proto/`, regenerate the code with
|
|
300
|
+
[Buf](https://buf.build) and record the new checksums:
|
|
301
|
+
|
|
302
|
+
```sh
|
|
303
|
+
buf generate
|
|
304
|
+
sh scripts/check-generated.sh
|
|
305
|
+
```
|
|
306
|
+
|
|
307
|
+
### Repository layout
|
|
308
|
+
|
|
309
|
+
| Path | Contents |
|
|
310
|
+
| --- | --- |
|
|
311
|
+
| `src/` | The observer CLI (TypeScript): discovery, activity adapters, redaction, pairing, the stream client and Guardian integration. |
|
|
312
|
+
| `test/` | Tests for the CLI. |
|
|
313
|
+
| `go/` | Go module `github.com/phigonai/observer/go`: the Guardian runner, the Linux supervisor, OS sandbox profiles, and the generated protocol code. |
|
|
314
|
+
| `proto/` | The wire protocol between the observer and a Phigon control plane. |
|
|
315
|
+
| `scripts/` | Build, install and release helpers. |
|
|
316
|
+
|
|
317
|
+
## Contributing
|
|
318
|
+
|
|
319
|
+
Contributions are welcome. Read [CONTRIBUTING.md](CONTRIBUTING.md) first. This
|
|
320
|
+
repository is published from Phigon's main repository; a maintainer applies
|
|
321
|
+
accepted pull requests there, keeping you as the author, and they appear here
|
|
322
|
+
automatically.
|
|
323
|
+
|
|
324
|
+
## Security
|
|
325
|
+
|
|
326
|
+
Please report vulnerabilities privately. See [SECURITY.md](SECURITY.md).
|
|
327
|
+
|
|
328
|
+
## License
|
|
329
|
+
|
|
330
|
+
Licensed under the [Apache License, Version 2.0](LICENSE). See [NOTICE](NOTICE)
|
|
331
|
+
and [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md). The Phigon name and logo
|
|
332
|
+
are trademarks and are not covered by the license; see
|
|
333
|
+
[TRADEMARKS.md](TRADEMARKS.md).
|