@phigon/observer 8.1.0 → 8.3.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.
Files changed (309) hide show
  1. package/README.md +244 -18
  2. package/dist/bin/guardian-runner-darwin-amd64 +0 -0
  3. package/dist/bin/guardian-runner-darwin-arm64 +0 -0
  4. package/dist/bin/guardian-runner-linux-amd64 +0 -0
  5. package/dist/bin/guardian-runner-linux-arm64 +0 -0
  6. package/dist/bin/guardian-runner-windows-amd64.exe +0 -0
  7. package/dist/bin/guardian-runner-windows-arm64.exe +0 -0
  8. package/dist/src/abortable-delay.d.ts +10 -0
  9. package/dist/src/abortable-delay.d.ts.map +1 -0
  10. package/dist/src/abortable-delay.js +21 -0
  11. package/dist/src/abortable-delay.js.map +1 -0
  12. package/dist/src/action-policy.d.ts.map +1 -1
  13. package/dist/src/action-policy.js +4 -2
  14. package/dist/src/action-policy.js.map +1 -1
  15. package/dist/src/activity/adapters/claude.d.ts.map +1 -1
  16. package/dist/src/activity/adapters/claude.js +28 -2
  17. package/dist/src/activity/adapters/claude.js.map +1 -1
  18. package/dist/src/activity/adapters/cline-task.d.ts +7 -0
  19. package/dist/src/activity/adapters/cline-task.d.ts.map +1 -0
  20. package/dist/src/activity/adapters/cline-task.js +197 -0
  21. package/dist/src/activity/adapters/cline-task.js.map +1 -0
  22. package/dist/src/activity/adapters/cline.d.ts +3 -0
  23. package/dist/src/activity/adapters/cline.d.ts.map +1 -0
  24. package/dist/src/activity/adapters/cline.js +102 -0
  25. package/dist/src/activity/adapters/cline.js.map +1 -0
  26. package/dist/src/activity/adapters/codex.d.ts.map +1 -1
  27. package/dist/src/activity/adapters/codex.js +76 -0
  28. package/dist/src/activity/adapters/codex.js.map +1 -1
  29. package/dist/src/activity/adapters/copilot-chat.d.ts +3 -0
  30. package/dist/src/activity/adapters/copilot-chat.d.ts.map +1 -0
  31. package/dist/src/activity/adapters/copilot-chat.js +176 -0
  32. package/dist/src/activity/adapters/copilot-chat.js.map +1 -0
  33. package/dist/src/activity/adapters/copilot.d.ts +2 -1
  34. package/dist/src/activity/adapters/copilot.d.ts.map +1 -1
  35. package/dist/src/activity/adapters/copilot.js +173 -2
  36. package/dist/src/activity/adapters/copilot.js.map +1 -1
  37. package/dist/src/activity/adapters/cursor.d.ts +3 -0
  38. package/dist/src/activity/adapters/cursor.d.ts.map +1 -0
  39. package/dist/src/activity/adapters/cursor.js +86 -0
  40. package/dist/src/activity/adapters/cursor.js.map +1 -0
  41. package/dist/src/activity/adapters/factory-droid.d.ts +3 -0
  42. package/dist/src/activity/adapters/factory-droid.d.ts.map +1 -0
  43. package/dist/src/activity/adapters/factory-droid.js +126 -0
  44. package/dist/src/activity/adapters/factory-droid.js.map +1 -0
  45. package/dist/src/activity/adapters/gemini.d.ts +3 -0
  46. package/dist/src/activity/adapters/gemini.d.ts.map +1 -0
  47. package/dist/src/activity/adapters/gemini.js +177 -0
  48. package/dist/src/activity/adapters/gemini.js.map +1 -0
  49. package/dist/src/activity/adapters/goose.d.ts +3 -0
  50. package/dist/src/activity/adapters/goose.d.ts.map +1 -0
  51. package/dist/src/activity/adapters/goose.js +116 -0
  52. package/dist/src/activity/adapters/goose.js.map +1 -0
  53. package/dist/src/activity/adapters/kiro.d.ts +3 -0
  54. package/dist/src/activity/adapters/kiro.d.ts.map +1 -0
  55. package/dist/src/activity/adapters/kiro.js +47 -0
  56. package/dist/src/activity/adapters/kiro.js.map +1 -0
  57. package/dist/src/activity/adapters/openai-compatible.d.ts.map +1 -1
  58. package/dist/src/activity/adapters/openai-compatible.js +9 -1
  59. package/dist/src/activity/adapters/openai-compatible.js.map +1 -1
  60. package/dist/src/activity/adapters/opencode.d.ts.map +1 -1
  61. package/dist/src/activity/adapters/opencode.js +108 -1
  62. package/dist/src/activity/adapters/opencode.js.map +1 -1
  63. package/dist/src/activity/adapters/zed.d.ts +3 -0
  64. package/dist/src/activity/adapters/zed.d.ts.map +1 -0
  65. package/dist/src/activity/adapters/zed.js +134 -0
  66. package/dist/src/activity/adapters/zed.js.map +1 -0
  67. package/dist/src/activity/collector.d.ts +43 -1
  68. package/dist/src/activity/collector.d.ts.map +1 -1
  69. package/dist/src/activity/collector.js +490 -77
  70. package/dist/src/activity/collector.js.map +1 -1
  71. package/dist/src/activity/goose-sqlite-source.d.ts +33 -0
  72. package/dist/src/activity/goose-sqlite-source.d.ts.map +1 -0
  73. package/dist/src/activity/goose-sqlite-source.js +274 -0
  74. package/dist/src/activity/goose-sqlite-source.js.map +1 -0
  75. package/dist/src/activity/index.d.ts +3 -0
  76. package/dist/src/activity/index.d.ts.map +1 -1
  77. package/dist/src/activity/index.js +3 -0
  78. package/dist/src/activity/index.js.map +1 -1
  79. package/dist/src/activity/ingest.d.ts +9 -0
  80. package/dist/src/activity/ingest.d.ts.map +1 -1
  81. package/dist/src/activity/ingest.js +94 -4
  82. package/dist/src/activity/ingest.js.map +1 -1
  83. package/dist/src/activity/json-document-source.d.ts +151 -0
  84. package/dist/src/activity/json-document-source.d.ts.map +1 -0
  85. package/dist/src/activity/json-document-source.js +586 -0
  86. package/dist/src/activity/json-document-source.js.map +1 -0
  87. package/dist/src/activity/native-capabilities.d.ts.map +1 -1
  88. package/dist/src/activity/native-capabilities.js +8 -12
  89. package/dist/src/activity/native-capabilities.js.map +1 -1
  90. package/dist/src/activity/normalize.d.ts.map +1 -1
  91. package/dist/src/activity/normalize.js +64 -6
  92. package/dist/src/activity/normalize.js.map +1 -1
  93. package/dist/src/activity/opencode-message-tables.d.ts +87 -0
  94. package/dist/src/activity/opencode-message-tables.d.ts.map +1 -0
  95. package/dist/src/activity/opencode-message-tables.js +546 -0
  96. package/dist/src/activity/opencode-message-tables.js.map +1 -0
  97. package/dist/src/activity/opencode-sqlite-source.d.ts +7 -0
  98. package/dist/src/activity/opencode-sqlite-source.d.ts.map +1 -1
  99. package/dist/src/activity/opencode-sqlite-source.js +154 -63
  100. package/dist/src/activity/opencode-sqlite-source.js.map +1 -1
  101. package/dist/src/activity/source-reader.d.ts +60 -4
  102. package/dist/src/activity/source-reader.d.ts.map +1 -1
  103. package/dist/src/activity/source-reader.js +593 -75
  104. package/dist/src/activity/source-reader.js.map +1 -1
  105. package/dist/src/activity/sqlite-connections.d.ts +77 -0
  106. package/dist/src/activity/sqlite-connections.d.ts.map +1 -0
  107. package/dist/src/activity/sqlite-connections.js +220 -0
  108. package/dist/src/activity/sqlite-connections.js.map +1 -0
  109. package/dist/src/activity/zed-sqlite-source.d.ts +65 -0
  110. package/dist/src/activity/zed-sqlite-source.d.ts.map +1 -0
  111. package/dist/src/activity/zed-sqlite-source.js +547 -0
  112. package/dist/src/activity/zed-sqlite-source.js.map +1 -0
  113. package/dist/src/agent-action-executor.d.ts +18 -1
  114. package/dist/src/agent-action-executor.d.ts.map +1 -1
  115. package/dist/src/agent-action-executor.js +113 -58
  116. package/dist/src/agent-action-executor.js.map +1 -1
  117. package/dist/src/agentic-guardian.d.ts.map +1 -1
  118. package/dist/src/agentic-guardian.js +6 -5
  119. package/dist/src/agentic-guardian.js.map +1 -1
  120. package/dist/src/atomic-replace.d.ts +7 -0
  121. package/dist/src/atomic-replace.d.ts.map +1 -1
  122. package/dist/src/atomic-replace.js +28 -3
  123. package/dist/src/atomic-replace.js.map +1 -1
  124. package/dist/src/bridge-journal.d.ts +32 -0
  125. package/dist/src/bridge-journal.d.ts.map +1 -0
  126. package/dist/src/bridge-journal.js +113 -0
  127. package/dist/src/bridge-journal.js.map +1 -0
  128. package/dist/src/cli.d.ts +7 -1
  129. package/dist/src/cli.d.ts.map +1 -1
  130. package/dist/src/cli.js +534 -50
  131. package/dist/src/cli.js.map +1 -1
  132. package/dist/src/collection-notice.d.ts +34 -0
  133. package/dist/src/collection-notice.d.ts.map +1 -0
  134. package/dist/src/collection-notice.js +73 -0
  135. package/dist/src/collection-notice.js.map +1 -0
  136. package/dist/src/config.d.ts +39 -0
  137. package/dist/src/config.d.ts.map +1 -1
  138. package/dist/src/config.js +187 -36
  139. package/dist/src/config.js.map +1 -1
  140. package/dist/src/connection-config.d.ts.map +1 -1
  141. package/dist/src/connection-config.js +5 -0
  142. package/dist/src/connection-config.js.map +1 -1
  143. package/dist/src/content-redaction.d.ts +17 -1
  144. package/dist/src/content-redaction.d.ts.map +1 -1
  145. package/dist/src/content-redaction.js +51 -3
  146. package/dist/src/content-redaction.js.map +1 -1
  147. package/dist/src/credential-store.d.ts +20 -1
  148. package/dist/src/credential-store.d.ts.map +1 -1
  149. package/dist/src/credential-store.js +29 -4
  150. package/dist/src/credential-store.js.map +1 -1
  151. package/dist/src/custom-agent-registry.d.ts.map +1 -1
  152. package/dist/src/custom-agent-registry.js +2 -1
  153. package/dist/src/custom-agent-registry.js.map +1 -1
  154. package/dist/src/discovery/adapters/generic.d.ts.map +1 -1
  155. package/dist/src/discovery/adapters/generic.js +160 -2
  156. package/dist/src/discovery/adapters/generic.js.map +1 -1
  157. package/dist/src/discovery/engine.d.ts +7 -1
  158. package/dist/src/discovery/engine.d.ts.map +1 -1
  159. package/dist/src/discovery/engine.js +21 -16
  160. package/dist/src/discovery/engine.js.map +1 -1
  161. package/dist/src/discovery/known-agent.d.ts +7 -0
  162. package/dist/src/discovery/known-agent.d.ts.map +1 -1
  163. package/dist/src/discovery/known-agent.js +9 -4
  164. package/dist/src/discovery/known-agent.js.map +1 -1
  165. package/dist/src/discovery/system-evidence.d.ts +40 -1
  166. package/dist/src/discovery/system-evidence.d.ts.map +1 -1
  167. package/dist/src/discovery/system-evidence.js +189 -16
  168. package/dist/src/discovery/system-evidence.js.map +1 -1
  169. package/dist/src/doctor-check.d.ts +51 -0
  170. package/dist/src/doctor-check.d.ts.map +1 -0
  171. package/dist/src/doctor-check.js +174 -0
  172. package/dist/src/doctor-check.js.map +1 -0
  173. package/dist/src/enroll.d.ts +86 -0
  174. package/dist/src/enroll.d.ts.map +1 -0
  175. package/dist/src/enroll.js +245 -0
  176. package/dist/src/enroll.js.map +1 -0
  177. package/dist/src/entry.d.ts +3 -0
  178. package/dist/src/entry.d.ts.map +1 -0
  179. package/dist/src/entry.js +14 -0
  180. package/dist/src/entry.js.map +1 -0
  181. package/dist/src/event-queue.d.ts +13 -1
  182. package/dist/src/event-queue.d.ts.map +1 -1
  183. package/dist/src/event-queue.js +137 -42
  184. package/dist/src/event-queue.js.map +1 -1
  185. package/dist/src/event-spool.d.ts +61 -3
  186. package/dist/src/event-spool.d.ts.map +1 -1
  187. package/dist/src/event-spool.js +341 -44
  188. package/dist/src/event-spool.js.map +1 -1
  189. package/dist/src/generated/phigon/v1/identity_pb.d.ts +7 -0
  190. package/dist/src/generated/phigon/v1/identity_pb.d.ts.map +1 -1
  191. package/dist/src/generated/phigon/v1/identity_pb.js +1 -1
  192. package/dist/src/generated/phigon/v1/identity_pb.js.map +1 -1
  193. package/dist/src/guardian-containment.d.ts +2 -6
  194. package/dist/src/guardian-containment.d.ts.map +1 -1
  195. package/dist/src/guardian-containment.js +12 -63
  196. package/dist/src/guardian-containment.js.map +1 -1
  197. package/dist/src/guardian-decision-journal.d.ts.map +1 -1
  198. package/dist/src/guardian-decision-journal.js +4 -19
  199. package/dist/src/guardian-decision-journal.js.map +1 -1
  200. package/dist/src/guardian-managed-exec.d.ts.map +1 -1
  201. package/dist/src/guardian-managed-exec.js +6 -18
  202. package/dist/src/guardian-managed-exec.js.map +1 -1
  203. package/dist/src/guardian-model-bridge.d.ts.map +1 -1
  204. package/dist/src/guardian-model-bridge.js +2 -1
  205. package/dist/src/guardian-model-bridge.js.map +1 -1
  206. package/dist/src/guardian-native.d.ts +0 -1
  207. package/dist/src/guardian-native.d.ts.map +1 -1
  208. package/dist/src/guardian-native.js +0 -6
  209. package/dist/src/guardian-native.js.map +1 -1
  210. package/dist/src/guardian-process-monitor.d.ts +4 -0
  211. package/dist/src/guardian-process-monitor.d.ts.map +1 -1
  212. package/dist/src/guardian-process-monitor.js +82 -26
  213. package/dist/src/guardian-process-monitor.js.map +1 -1
  214. package/dist/src/health.d.ts +19 -1
  215. package/dist/src/health.d.ts.map +1 -1
  216. package/dist/src/health.js +22 -1
  217. package/dist/src/health.js.map +1 -1
  218. package/dist/src/historical-identity-store.d.ts +8 -1
  219. package/dist/src/historical-identity-store.d.ts.map +1 -1
  220. package/dist/src/historical-identity-store.js +28 -10
  221. package/dist/src/historical-identity-store.js.map +1 -1
  222. package/dist/src/index.d.ts +2 -0
  223. package/dist/src/index.d.ts.map +1 -1
  224. package/dist/src/index.js +2 -0
  225. package/dist/src/index.js.map +1 -1
  226. package/dist/src/installation.d.ts +2 -0
  227. package/dist/src/installation.d.ts.map +1 -1
  228. package/dist/src/installation.js +6 -3
  229. package/dist/src/installation.js.map +1 -1
  230. package/dist/src/instance-lock.d.ts +45 -0
  231. package/dist/src/instance-lock.d.ts.map +1 -0
  232. package/dist/src/instance-lock.js +243 -0
  233. package/dist/src/instance-lock.js.map +1 -0
  234. package/dist/src/machine-command-executor.d.ts +22 -7
  235. package/dist/src/machine-command-executor.d.ts.map +1 -1
  236. package/dist/src/machine-command-executor.js +80 -19
  237. package/dist/src/machine-command-executor.js.map +1 -1
  238. package/dist/src/node-version.d.ts +8 -0
  239. package/dist/src/node-version.d.ts.map +1 -0
  240. package/dist/src/node-version.js +17 -0
  241. package/dist/src/node-version.js.map +1 -0
  242. package/dist/src/observer-log.d.ts +50 -0
  243. package/dist/src/observer-log.d.ts.map +1 -0
  244. package/dist/src/observer-log.js +141 -0
  245. package/dist/src/observer-log.js.map +1 -0
  246. package/dist/src/pair.d.ts +68 -1
  247. package/dist/src/pair.d.ts.map +1 -1
  248. package/dist/src/pair.js +204 -65
  249. package/dist/src/pair.js.map +1 -1
  250. package/dist/src/private-directory.d.ts +10 -0
  251. package/dist/src/private-directory.d.ts.map +1 -0
  252. package/dist/src/private-directory.js +66 -0
  253. package/dist/src/private-directory.js.map +1 -0
  254. package/dist/src/process-tree.d.ts +73 -0
  255. package/dist/src/process-tree.d.ts.map +1 -0
  256. package/dist/src/process-tree.js +256 -0
  257. package/dist/src/process-tree.js.map +1 -0
  258. package/dist/src/proxy.d.ts +68 -0
  259. package/dist/src/proxy.d.ts.map +1 -0
  260. package/dist/src/proxy.js +209 -0
  261. package/dist/src/proxy.js.map +1 -0
  262. package/dist/src/purge.d.ts +17 -0
  263. package/dist/src/purge.d.ts.map +1 -0
  264. package/dist/src/purge.js +84 -0
  265. package/dist/src/purge.js.map +1 -0
  266. package/dist/src/remove-machine.d.ts +5 -1
  267. package/dist/src/remove-machine.d.ts.map +1 -1
  268. package/dist/src/remove-machine.js +28 -14
  269. package/dist/src/remove-machine.js.map +1 -1
  270. package/dist/src/server-authority.d.ts +29 -0
  271. package/dist/src/server-authority.d.ts.map +1 -0
  272. package/dist/src/server-authority.js +106 -0
  273. package/dist/src/server-authority.js.map +1 -0
  274. package/dist/src/server-clock.d.ts +32 -0
  275. package/dist/src/server-clock.d.ts.map +1 -0
  276. package/dist/src/server-clock.js +72 -0
  277. package/dist/src/server-clock.js.map +1 -0
  278. package/dist/src/service-command.d.ts +20 -0
  279. package/dist/src/service-command.d.ts.map +1 -0
  280. package/dist/src/service-command.js +136 -0
  281. package/dist/src/service-command.js.map +1 -0
  282. package/dist/src/service.d.ts +98 -0
  283. package/dist/src/service.d.ts.map +1 -0
  284. package/dist/src/service.js +472 -0
  285. package/dist/src/service.js.map +1 -0
  286. package/dist/src/stream-client.d.ts +21 -1
  287. package/dist/src/stream-client.d.ts.map +1 -1
  288. package/dist/src/stream-client.js +137 -24
  289. package/dist/src/stream-client.js.map +1 -1
  290. package/dist/src/stream-state.d.ts +2 -0
  291. package/dist/src/stream-state.d.ts.map +1 -1
  292. package/dist/src/stream-state.js +5 -2
  293. package/dist/src/stream-state.js.map +1 -1
  294. package/dist/src/system-inspection.d.ts +78 -0
  295. package/dist/src/system-inspection.d.ts.map +1 -0
  296. package/dist/src/system-inspection.js +281 -0
  297. package/dist/src/system-inspection.js.map +1 -0
  298. package/dist/src/update.d.ts.map +1 -1
  299. package/dist/src/update.js +9 -3
  300. package/dist/src/update.js.map +1 -1
  301. package/dist/src/user-notices.d.ts +64 -0
  302. package/dist/src/user-notices.d.ts.map +1 -0
  303. package/dist/src/user-notices.js +141 -0
  304. package/dist/src/user-notices.js.map +1 -0
  305. package/package.json +7 -7
  306. package/dist/src/windows-process.d.ts +0 -7
  307. package/dist/src/windows-process.d.ts.map +0 -1
  308. package/dist/src/windows-process.js +0 -18
  309. package/dist/src/windows-process.js.map +0 -1
package/README.md CHANGED
@@ -45,20 +45,30 @@ exactly what runs on your computers and what leaves them.
45
45
  | <img src="https://phigon.online/agents/claude-code.svg" width="20" alt=""> | Claude Code | Yes | Built in |
46
46
  | <img src="https://phigon.online/agents/codex.svg" width="20" alt=""> | OpenAI Codex | Yes | Built in |
47
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/github-copilot.svg" width="20" alt=""> | GitHub Copilot in VS Code (chat and agent mode) | Yes | Built in |
48
49
  | <img src="https://phigon.online/agents/opencode.svg" width="20" alt=""> | OpenCode | Yes | Built in |
49
50
  | <img src="https://phigon.online/agents/openclaw.svg" width="20" alt=""> | OpenClaw | Yes | Built in |
50
51
  | <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 |
52
+ | <img src="https://phigon.online/agents/cursor.svg" width="20" alt=""> | Cursor (editor agent and `cursor-agent` CLI) | Yes | Built in |
53
+ | <img src="https://phigon.online/agents/gemini-cli.svg" width="20" alt=""> | Gemini CLI | Yes | Built in |
53
54
  | <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 |
55
+ | <img src="https://phigon.online/agents/goose.svg" width="20" alt=""> | Goose | Yes | Built in |
56
+ | <img src="https://phigon.online/agents/cline.svg" width="20" alt=""> | Cline (CLI and VS Code extension) | Yes | Built in |
56
57
  | <img src="https://phigon.online/agents/openhands.svg" width="20" alt=""> | OpenHands | Yes | Bridge |
58
+ | | Kiro | Yes | Built in (chat; agent actions not yet) |
59
+ | | Antigravity | Yes | Not yet (no documented conversation format) |
60
+ | | Trae | Yes | Not yet (its history database is encrypted) |
61
+ | | Zed (its own agent) | Yes | Built in |
62
+ | | Factory Droid | Yes | Built in |
63
+ | | Roo Code | Yes | Built in |
64
+ | | Kilo Code | Yes | Built in |
57
65
  | | Aider, Amazon Q Developer CLI, Continue | Yes | Bridge |
58
66
  | | Any other agent | [Register it](#custom-agents) | Bridge |
59
67
 
60
68
  *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`.
69
+ agent (or a small wrapper) pipes NDJSON to `phigon-observer ingest`. The
70
+ observer deletes each bridge file once the workspace has received it, and any
71
+ bridge file after seven days.
62
72
 
63
73
  ## How it works
64
74
 
@@ -82,7 +92,7 @@ telemetry. The wire protocol is in [`proto/`](proto).
82
92
 
83
93
  ## Quick start
84
94
 
85
- You need **Node.js 24 or newer** and a Phigon workspace. Installed releases
95
+ You need **Node.js 24.5 or newer** and a Phigon workspace. Installed releases
86
96
  include the Guardian runner for Windows, macOS and Linux on x64 and Arm64; Go is
87
97
  only needed to build from source.
88
98
 
@@ -109,13 +119,112 @@ phigon-observer pair --code YOUR-CODE --consent-profile full
109
119
  phigon-observer run --profile full
110
120
  ```
111
121
 
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:
122
+ To keep collecting after the terminal closes and after every restart, install
123
+ the observer as a background service for the signed-in user:
114
124
 
115
125
  ```sh
116
- phigon-observer doctor --json
126
+ phigon-observer service install --profile metadata # or --profile full
117
127
  ```
118
128
 
129
+ Closing the Phigon app does not stop it. Check the installation and connection
130
+ at any time:
131
+
132
+ ```sh
133
+ phigon-observer service status
134
+ phigon-observer doctor --check
135
+ ```
136
+
137
+ ### Background service
138
+
139
+ `service install` runs `phigon-observer run` in the background as the
140
+ signed-in user, not as SYSTEM or root, because it reads that user's agent
141
+ records. It starts when the user signs in and again if it stops:
142
+
143
+ | System | What is installed | Restart |
144
+ | --- | --- | --- |
145
+ | Windows | A Task Scheduler task, "Phigon Observer", that runs at sign-in without a window | Started again within a minute |
146
+ | macOS | A LaunchAgent, `~/Library/LaunchAgents/com.phigon.observer.plist` | launchd keeps it running (`KeepAlive`) |
147
+ | Linux | A systemd user unit, `~/.config/systemd/user/phigon-observer.service` | `Restart=on-failure` |
148
+
149
+ - The service runs the same Node.js and observer that ran `service install`,
150
+ with the same data directory. The settings it needs (`PHIGON_*`, `PATH`,
151
+ the proxy variables, `NODE_EXTRA_CA_CERTS` and the agents' folder settings)
152
+ are saved to `service-settings.json` in the data directory, which only this
153
+ user can read. Settings whose names suggest a secret (token, password and
154
+ similar) are never saved, and the service definition holds no settings at
155
+ all, only the paths of Node.js, the observer and that file. A proxy address
156
+ that includes a user name and password is saved there as it is, so prefer a
157
+ proxy that does not need one in the address.
158
+ - `service install` refuses until the computer is paired and its owner (or,
159
+ with an enrollment code, its company) has consented, and `--profile full`
160
+ needs full-activity consent. Running it
161
+ again replaces the earlier definition, so run it again after moving
162
+ Node.js or changing settings.
163
+ - `service status` says whether the service is installed and whether an
164
+ observer is running with its data directory. `service uninstall` stops it
165
+ and removes it.
166
+ - A data directory other than the default gets its own service, named with a
167
+ short code made from its path.
168
+ - On Linux the service runs while the user is signed in (a desktop or SSH
169
+ session). To keep it running after sign-out, an administrator can run
170
+ `loginctl enable-linger <user>`.
171
+ - What the service prints goes to `logs/observer.log` in the data directory.
172
+
173
+ ### Rolling out to many computers with an enrollment code
174
+
175
+ A company that installs the observer with device management (Intune, Jamf or
176
+ a Linux configuration tool) uses a reusable **enrollment code** (`phe_…`)
177
+ from its administrator instead of one pairing code per computer. With an
178
+ enrollment code **the company gives consent for its computers, and nobody at
179
+ the computer is asked**. The administrator chose the profile, metadata or
180
+ full activity, when creating the code; the server answers with it, and the
181
+ observer stores it with the key and keeps collection within it exactly as it
182
+ does for a profile an owner chose.
183
+
184
+ Enroll as the signed-in user, with the code in the environment so it does
185
+ not show in process lists, then install the background service:
186
+
187
+ ```sh
188
+ PHIGON_ENROLLMENT_CODE="$(cat /path/to/code)" phigon-observer pair \
189
+ --control-plane-url https://phigon.corp.example:8443 \
190
+ --grpc-url https://phigon.corp.example:9443 --json
191
+ phigon-observer service install
192
+ ```
193
+
194
+ - `--enrollment-code <code>` works too, but anyone on the computer can see a
195
+ command line. `--server-ca-sha256 <fingerprint>` and `--name <name>` work
196
+ as with pairing; `--consent-profile` and `--accept-consent` are refused.
197
+ - The code is never printed, logged or saved, and `service install` never
198
+ copies `PHIGON_ENROLLMENT_CODE` into its settings.
199
+ - A computer already paired with the same server keeps its machine and key,
200
+ and its consent becomes the company's.
201
+ - A busy server (HTTP 429 or 503) is asked again up to three times, after
202
+ the wait it asks for, within five minutes in all.
203
+ - `doctor` shows who consented, the owner or the company and the code's
204
+ label, as a `Consent:` line and as `consent` in `--json` (`doctor --check`
205
+ too).
206
+ - When it starts collecting, the observer tells the person at the computer
207
+ once with a system notification: "Phigon is recording AI agent activity",
208
+ what the profile records, the code's label and "Ask your IT team for
209
+ details". It tells them again when the profile changes. A computer whose
210
+ owner paired it gets no such notice, because the owner accepted the
211
+ profile at the keyboard. `PHIGON_USER_NOTICES=false` turns it off, and it
212
+ cannot show without the user's desktop session; it is remembered only once
213
+ shown, so it is tried again at the next start.
214
+
215
+ A failed enrollment prints the server's sentence and exits with a code a
216
+ script can act on (with `--json`, also an `{"enrolled": false, "error": …}`
217
+ object):
218
+
219
+ | Exit code | Meaning |
220
+ | --- | --- |
221
+ | `20` | The server was busy, unavailable or unreachable. Try again later. |
222
+ | `21` | The code expired, was revoked, is used up or was made under an earlier policy. Ask for a new code. |
223
+ | `22` | Not an enrollment code, or cut short. |
224
+ | `23` | This computer enrolled with this code before and was removed since. Ask for a new code. |
225
+ | `24` | This computer is already connected to the workspace. Check it with `doctor`. |
226
+ | `1` | Anything else, such as a bad setting. |
227
+
119
228
  ## What is collected
120
229
 
121
230
  What the observer sends is always the overlap of your workspace's policy and
@@ -140,18 +249,55 @@ settings. A full description is in
140
249
  | Command | What it does |
141
250
  | --- | --- |
142
251
  | `pair --code <code> --consent-profile <metadata\|full>` | Connects this computer to a workspace after local consent. |
252
+ | `pair` with `PHIGON_ENROLLMENT_CODE` (or `--enrollment-code <code>`) | Enrolls this computer with a company's enrollment code, under the company's consent, without asking; see [above](#rolling-out-to-many-computers-with-an-enrollment-code). |
143
253
  | `run [--profile <metadata\|full>]` | Discovers agents and streams permitted activity. |
254
+ | `service install [--profile <metadata\|full>]`, `service uninstall`, `service status` | Runs the observer in the background for the signed-in user, from sign-in on. |
144
255
  | `doctor [--profile <...>] [--json]` | Checks the setup without sending any data. |
256
+ | `doctor --check [--max-delivery-age <minutes>] [--json]` | Checks that collection is working, with an exit code for scripts. |
145
257
  | `discover [--json]` | Prints a one-time, sanitized inventory of local agents. |
146
258
  | `agent add \| list \| remove` | Manages custom agent definitions. |
147
259
  | `ingest --agent <id\|custom> [--name <name>]` | Reads NDJSON activity from stdin (bridges). |
148
260
  | `guardian status \| exec \| launch` | Guardian checks and managed execution. |
149
261
  | `authorize-action --action <a> --resource <r>` | Asks Guardian whether one action may run. |
150
262
  | `update [--check] [--yes]` | Checks for or installs a new release. |
151
- | `remove-machine` | Unregisters this computer and revokes its credential. |
263
+ | `remove-machine [--purge]` | Stops collection and revokes this computer's key. Activity already collected stays with the company until an administrator deletes the computer or it expires. `--purge` also removes the background service and the observer's local files; see [Uninstall](#uninstall). |
152
264
 
153
265
  Run `phigon-observer help` for every flag.
154
266
 
267
+ ### Checking a computer from scripts
268
+
269
+ `doctor --check` is meant for device management scripts. It sends no
270
+ activity: it reads the local state and asks the control plane's `/healthz`
271
+ (through the configured proxy and pinned authority, with a five-second
272
+ limit). It exits with the code of the first problem it finds:
273
+
274
+ | Exit code | Meaning |
275
+ | --- | --- |
276
+ | `0` | Everything checked out. |
277
+ | `1` | The check itself could not run, for example because of a bad setting. |
278
+ | `3` | This computer is not paired, or its pairing data cannot be read. |
279
+ | `4` | The owner's consent is missing or out of date. Pair again. |
280
+ | `5` | No observer is running with this data directory. |
281
+ | `6` | The workspace has not confirmed delivery for longer than `--max-delivery-age` minutes (default 15). A connected observer confirms at least once a minute, even when no agent is active. |
282
+ | `7` | The control plane did not answer. |
283
+
284
+ `--json` prints every check with its result. Plain `doctor` keeps exiting
285
+ `0`.
286
+
287
+ ### A company's own Phigon server
288
+
289
+ The Phigon app can run a company's own server, and other computers on the
290
+ company network can connect to it. That server signs its HTTPS certificate
291
+ with an authority of its own, so the **Connect machine** command adds
292
+ `--server-ca-sha256 <fingerprint>`.
293
+
294
+ On first contact, pairing finds the authority in the server's certificate
295
+ chain whose SHA-256 matches the fingerprint. It saves that authority as
296
+ `server-ca.pem` in the data directory, and every later HTTPS and gRPC
297
+ connection trusts it. A server that presents another certificate is refused
298
+ before anything is sent. `remove-machine` deletes the file. This needs
299
+ Node.js 24.5 or newer.
300
+
155
301
  ## Configuration
156
302
 
157
303
  Settings are environment variables. The most common ones:
@@ -160,20 +306,51 @@ Settings are environment variables. The most common ones:
160
306
  | --- | --- |
161
307
  | `PHIGON_DATA_DIR` | Where the credential, checkpoints and encrypted queue live. Use a separate directory per workspace. |
162
308
  | `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. |
309
+ | `PHIGON_TLS_CA_FILE` | A private certificate authority for gRPC. Use `NODE_EXTRA_CA_CERTS` for HTTPS. Pairing with `--server-ca-sha256` sets up both for you. |
164
310
  | `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). |
311
+ | `PHIGON_COLLECT_*` | Turns individual content categories off. Content can be turned on only under `--profile full` on a computer whose owner consented to full activity; otherwise `run` refuses to start. |
166
312
  | `PHIGON_REDACT_PATH_PATTERNS` | Extra file path patterns to redact. |
167
313
  | `PHIGON_<AGENT>_ACTIVITY_DIRS` | Extra record folders for an agent, e.g. `PHIGON_CLAUDE_ACTIVITY_DIRS`. |
168
314
  | `PHIGON_REMOTE_ACTIONS_ENABLED` | Opt in to administrator-approved agent stop and force stop. Off by default. |
169
315
  | `PHIGON_REMOTE_COMMANDS_ENABLED` | Opt in to administrator-reviewed system operations. Off by default. |
316
+ | `PHIGON_USER_NOTICES` | Set to `false` to stop telling the person at the computer when Phigon stops an agent, runs a command or restarts it, and, on a computer enrolled with a company's code, that collection started. On by default. |
170
317
  | `PHIGON_UPDATE_CHECK` | Set to `false` to turn off the once-a-day update check. |
171
- | `PHIGON_LOG_LEVEL` | Logging detail. |
318
+ | `PHIGON_LOG_LEVEL` | What `run` prints and writes to its log: `debug`, `info` (default), `warn` or `error`. |
319
+
320
+ `run` also writes what it prints to `logs/observer.log` in the data directory,
321
+ so a background service leaves a record. The log is rotated at about 5 MB and
322
+ keeps three files. Like the terminal output, it never contains activity
323
+ content, credentials or secrets.
172
324
 
173
325
  Never disable certificate verification. Interactive `pair` and `run` sessions
174
326
  check npm for a new release at most once a day and ask before updating;
175
327
  background services and `--json` commands never prompt or update on their own.
176
328
 
329
+ ### Corporate proxies
330
+
331
+ The observer sends every HTTPS call (pairing, `remove-machine`, update checks,
332
+ Guardian, `doctor --check`) and the telemetry stream through the proxy that
333
+ `HTTPS_PROXY` names, or `HTTP_PROXY` when only that is set. `NO_PROXY` lists
334
+ hosts it reaches directly. Either case works; when both are set, the lowercase
335
+ name wins. A user name and password in the proxy address are supported and
336
+ never printed.
337
+
338
+ - `NO_PROXY` is a comma-separated list of host names. `example.com`,
339
+ `.example.com` and `*.example.com` each cover `example.com` and every host
340
+ under it, `*` turns the proxy off, and `host:port` applies to that port only.
341
+ - HTTPS passes through the proxy as a CONNECT tunnel, and TLS is negotiated
342
+ with the Phigon server inside it, so certificate checks, including the
343
+ authority pinned for a company's own server, still apply. A proxy that
344
+ inspects TLS must leave the Phigon endpoints alone; the observer never turns
345
+ certificate checks off.
346
+ - The telemetry stream uses the same settings, but it can use only an
347
+ `http://` proxy address, and it cannot check ports or address ranges in
348
+ `NO_PROXY`. Set `grpc_proxy` (and `no_grpc_proxy`) to give the stream
349
+ different ones.
350
+ - Node.js 24.14 or newer applies these settings by itself. On Node.js 24.5 to
351
+ 24.13, also set `NODE_USE_ENV_PROXY=1` in the environment that starts the
352
+ observer.
353
+
177
354
  ## Custom agents
178
355
 
179
356
  To monitor an agent without a built-in adapter, register its local signals once:
@@ -202,14 +379,34 @@ Remote actions are off on every computer by default.
202
379
  - `PHIGON_REMOTE_ACTIONS_ENABLED=true` lets administrators stop or force-stop
203
380
  one exact running agent process. Each stop needs an operator proposal and a
204
381
  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.
382
+ A stop acts on one exact process lifetime (process ID plus start time, checked
383
+ again just before anything is sent) and the child processes it started.
384
+ Graceful stop sends `SIGTERM` on Linux and macOS; on Windows it asks the
385
+ agent's windows to close, and for a console agent it presses Ctrl+C in its
386
+ terminal, but only when nothing else shares that terminal; otherwise it
387
+ sends nothing and reports `terminal_shared`.
388
+ Force stop is approved separately. Receipts say when the process had already
389
+ exited, access was denied, or the agent or a child is still running. It does
390
+ not enable shell access, file access, screen capture or general remote
391
+ control.
208
392
  - `PHIGON_REMOTE_COMMANDS_ENABLED=true` additionally allows
209
393
  administrator-reviewed commands (executable and arguments, no shell), system
210
394
  inspection, and scheduled shutdown or restart. Commands run as the observer's
211
395
  account, are limited to 1–120 seconds and return at most 32 KB of redacted
212
396
  output. A durable journal prevents a command from running twice after a crash.
397
+ System inspection reports the operating system, memory, uptime, CPU load,
398
+ space on the main drive, the observer version, and each running agent's
399
+ name, process ID, CPU share, memory and run time, measured once over half a
400
+ second. It never includes file contents, environment values or command lines.
401
+
402
+ Whenever Phigon stops an agent on a computer, whether someone asked, Phigon AI
403
+ decided or the agent is blocked, the person at that computer sees a system
404
+ notification such as "Claude Code was stopped by Phigon", with the reason. The
405
+ same goes for commands Phigon runs and a scheduled restart or shutdown. It uses
406
+ the system's own notifications (a Windows toast, macOS Notification Center, or
407
+ `notify-send` on Linux) and shows nothing when the observer runs without a
408
+ desktop session, for example as a Windows service. `PHIGON_USER_NOTICES=false`
409
+ turns it off.
213
410
 
214
411
  ## Guardian: checks before an agent acts
215
412
 
@@ -265,6 +462,32 @@ ones started outside `guardian launch`. Discovery happens after launch, so it
265
462
  cannot undo earlier activity. A company that must prevent bypass also needs
266
463
  operating-system application control and a controlled model provider proxy.
267
464
 
465
+ ## Uninstall
466
+
467
+ To remove this computer from the workspace and delete everything the observer
468
+ keeps on it, then the program itself:
469
+
470
+ ```sh
471
+ phigon-observer remove-machine --purge
472
+ npm uninstall --global @phigon/observer
473
+ ```
474
+
475
+ `remove-machine --purge` does what `remove-machine` does (collection stops and
476
+ this computer's key is revoked), then stops and removes the background
477
+ service and deletes every file the observer keeps in its data directory,
478
+ including activity that was not delivered yet. It removes only files the
479
+ observer created, and the data directory itself once it is empty. It also
480
+ works on a computer that is no longer paired. If the workspace cannot be
481
+ reached, nothing is deleted and the service is started again.
482
+
483
+ Without `--purge`, `remove-machine` keeps the observer's local progress files
484
+ so the computer can be paired again where it left off. Use a separate
485
+ `service uninstall` to remove only the background service.
486
+
487
+ Either way, the activity the company already collected stays in the workspace
488
+ until an administrator deletes the computer or it expires under the retention
489
+ policy; removing the observer from a computer never erases it.
490
+
268
491
  ## Troubleshooting
269
492
 
270
493
  - **Command not found:** put npm's global bin directory on `PATH` and reopen
@@ -272,7 +495,10 @@ operating-system application control and a controlled model provider proxy.
272
495
  - **Expired pairing code:** generate a new one in **Connect machine**.
273
496
  - **No conversations:** the metadata profile excludes content. Check with
274
497
  `phigon-observer doctor --profile full --json`.
275
- - **Disconnected:** keep `run` running and allow its HTTPS and gRPC endpoints.
498
+ - **Collection stops after a restart:** install the background service with
499
+ `phigon-observer service install`, and read `logs/observer.log` in the data
500
+ directory.
501
+ - **Disconnected:** keep the observer running and allow its HTTPS and gRPC endpoints.
276
502
  Queued activity is delivered when the connection returns.
277
503
  - **Older self-hosted pairing without a saved stream endpoint:** pass
278
504
  `run --grpc-url https://stream.your-company.example` or set `PHIGON_GRPC_URL`.
@@ -286,7 +512,7 @@ More help: [setup guide](https://phigon.online/docs/get-started/),
286
512
 
287
513
  ## Building from source
288
514
 
289
- You need Node.js 24+ and Go 1.26+.
515
+ You need Node.js 24.5+ and Go 1.26+.
290
516
 
291
517
  ```sh
292
518
  npm ci
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Wait `milliseconds`, or less once `signal` aborts. An abort ends the wait
3
+ * quietly; it never rejects.
4
+ *
5
+ * The observer's loops wait here for their whole lifetime, some every 100 ms,
6
+ * on one long-lived signal. The promise timer removes its abort listener when
7
+ * it fires, so finished waits leave nothing attached to that signal.
8
+ */
9
+ export declare function abortableDelay(milliseconds: number, signal?: AbortSignal): Promise<void>;
10
+ //# sourceMappingURL=abortable-delay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abortable-delay.d.ts","sourceRoot":"","sources":["../../src/abortable-delay.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAClC,YAAY,EAAE,MAAM,EACpB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,IAAI,CAAC,CAOf"}
@@ -0,0 +1,21 @@
1
+ import { setTimeout as delay } from "node:timers/promises";
2
+ /**
3
+ * Wait `milliseconds`, or less once `signal` aborts. An abort ends the wait
4
+ * quietly; it never rejects.
5
+ *
6
+ * The observer's loops wait here for their whole lifetime, some every 100 ms,
7
+ * on one long-lived signal. The promise timer removes its abort listener when
8
+ * it fires, so finished waits leave nothing attached to that signal.
9
+ */
10
+ export async function abortableDelay(milliseconds, signal) {
11
+ if (signal?.aborted === true)
12
+ return;
13
+ try {
14
+ await delay(milliseconds, undefined, signal === undefined ? {} : { signal });
15
+ }
16
+ catch (error) {
17
+ if (!(error instanceof Error && error.name === "AbortError"))
18
+ throw error;
19
+ }
20
+ }
21
+ //# sourceMappingURL=abortable-delay.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abortable-delay.js","sourceRoot":"","sources":["../../src/abortable-delay.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,IAAI,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAE3D;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,YAAoB,EACpB,MAAoB;IAEpB,IAAI,MAAM,EAAE,OAAO,KAAK,IAAI;QAAE,OAAO;IACrC,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,YAAY,EAAE,SAAS,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IAC/E,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,CAAC;YAAE,MAAM,KAAK,CAAC;IAC5E,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"action-policy.d.ts","sourceRoot":"","sources":["../../src/action-policy.ts"],"names":[],"mappings":"AAWA,OAAO,EAGL,aAAa,EACb,KAAK,qBAAqB,EAC3B,MAAM,oCAAoC,CAAC;AAE5C,eAAO,MAAM,kBAAkB,kLAWpB,CAAC;AAIZ,MAAM,MAAM,iBAAiB,GAAG,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAC;AAClE,MAAM,MAAM,oBAAoB,GAAG,cAAc,GAAG,YAAY,GAAG,YAAY,CAAC;AAEhF,MAAM,MAAM,gBAAgB,GAAG,QAAQ,CAAC;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,iBAAiB,CAAC;IAC1B,MAAM,EAAE,MAAM,GAAG,kBAAkB,CAAC;IACpC,YAAY,EAAE,oBAAoB,CAAC;IACnC,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,QAAQ,CAAC;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,OAAO,CAAC;IACvB,KAAK,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACnC,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC,CAAC;AAEH,MAAM,WAAW,uBAAuB;IACtC,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IACtC,IAAI,CACF,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,qBAAqB,EAC7B,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC/B,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAC;CAC7D;AAED,qBAAa,2BAA4B,SAAQ,KAAK;CAAG;AAEzD,qBAAa,qBAAsB,YAAW,uBAAuB;;gBAKvD,aAAa,EAAE,MAAM;IAK3B,IAAI,CACR,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,qBAAqB,EAC7B,UAAU,SAAmB,GAC5B,OAAO,CAAC,kBAAkB,CAAC;IA6B9B,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAW/B,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;CAqBlE;AAED,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,qBAAqB,GAC5B,kBAAkB,CAoDpB;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,aAAa,GAAG,iBAAiB,CAgBnE"}
1
+ {"version":3,"file":"action-policy.d.ts","sourceRoot":"","sources":["../../src/action-policy.ts"],"names":[],"mappings":"AAYA,OAAO,EAGL,aAAa,EACb,KAAK,qBAAqB,EAC3B,MAAM,oCAAoC,CAAC;AAE5C,eAAO,MAAM,kBAAkB,kLAWpB,CAAC;AAIZ,MAAM,MAAM,iBAAiB,GAAG,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAC;AAClE,MAAM,MAAM,oBAAoB,GAAG,cAAc,GAAG,YAAY,GAAG,YAAY,CAAC;AAEhF,MAAM,MAAM,gBAAgB,GAAG,QAAQ,CAAC;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,iBAAiB,CAAC;IAC1B,MAAM,EAAE,MAAM,GAAG,kBAAkB,CAAC;IACpC,YAAY,EAAE,oBAAoB,CAAC;IACnC,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,QAAQ,CAAC;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,OAAO,CAAC;IACvB,KAAK,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACnC,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC,CAAC;AAEH,MAAM,WAAW,uBAAuB;IACtC,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IACtC,IAAI,CACF,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,qBAAqB,EAC7B,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC/B,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAC;CAC7D;AAED,qBAAa,2BAA4B,SAAQ,KAAK;CAAG;AAEzD,qBAAa,qBAAsB,YAAW,uBAAuB;;gBAKvD,aAAa,EAAE,MAAM;IAK3B,IAAI,CACR,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,qBAAqB,EAC7B,UAAU,SAAmB,GAC5B,OAAO,CAAC,kBAAkB,CAAC;IA6B9B,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAW/B,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;CAqBlE;AAED,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,qBAAqB,GAC5B,kBAAkB,CAoDpB;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,aAAa,GAAG,iBAAiB,CAgBnE"}
@@ -1,3 +1,4 @@
1
+ import { makeDirectoryPrivate } from "./private-directory.js";
1
2
  import { randomUUID } from "node:crypto";
2
3
  import { unlinkSync } from "node:fs";
3
4
  import { chmod, mkdir, readFile, rename, unlink, writeFile, } from "node:fs/promises";
@@ -30,7 +31,7 @@ export class FileActionPolicyStore {
30
31
  const value = policyForStorage(machineId, policy);
31
32
  this.#requireCurrentGeneration(generation);
32
33
  await mkdir(this.#dataDirectory, { recursive: true, mode: 0o700 });
33
- await chmod(this.#dataDirectory, 0o700);
34
+ await makeDirectoryPrivate(this.#dataDirectory);
34
35
  const temporaryPath = `${this.#path}.${process.pid}.${randomUUID()}.tmp`;
35
36
  let promoted = false;
36
37
  try {
@@ -250,7 +251,8 @@ function compileGlob(pattern) {
250
251
  throw new Error("Character classes are not supported in action policy globs.");
251
252
  }
252
253
  else {
253
- expression += character.replace(/[\\^$+?.()|{}]/gu, "\\$&");
254
+ // "]" must be escaped too: a lone one is a syntax error in unicode mode.
255
+ expression += character.replace(/[\\^$+?.()|{}\]]/gu, "\\$&");
254
256
  }
255
257
  }
256
258
  return new RegExp(`${expression}$`, "u");
@@ -1 +1 @@
1
- {"version":3,"file":"action-policy.js","sourceRoot":"","sources":["../../src/action-policy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"action-policy.js","sourceRoot":"","sources":["../../src/action-policy.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../../../src/activity/adapters/claude.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAGV,qBAAqB,EACtB,MAAM,aAAa,CAAC;AA2GrB,eAAO,MAAM,qBAAqB,EAAE,qBACP,CAAC"}
1
+ {"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../../../src/activity/adapters/claude.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAGV,qBAAqB,EACtB,MAAM,aAAa,CAAC;AA4IrB,eAAO,MAAM,qBAAqB,EAAE,qBACP,CAAC"}
@@ -2,6 +2,8 @@ import { ActivityKind, AgentKind, } from "../../generated/phigon/v1/common_pb.js
2
2
  import { LifecyclePhase, ToolPhase, } from "../../generated/phigon/v1/telemetry_pb.js";
3
3
  import { activityDraft, errorDraft, lifecycleDraft, toolDrafts, } from "../normalize.js";
4
4
  import { extractText, objectValue, recordObservedAt, stringField, } from "../record.js";
5
+ // A tool call whose result never arrives must not stay in memory forever.
6
+ const maxTrackedToolCalls = 4_096;
5
7
  class ClaudeActivityAdapter {
6
8
  id = "claude";
7
9
  agentKind = AgentKind.CLAUDE;
@@ -17,6 +19,19 @@ class ClaudeActivityAdapter {
17
19
  };
18
20
  const type = stringField(object, "type");
19
21
  if (type === "system" || type === "summary") {
22
+ // Claude Code transcripts write many system records per session
23
+ // (turn timing, hook summaries, notices). Only the session start,
24
+ // a finished turn, and an API failure carry lifecycle meaning.
25
+ const subtype = stringField(object, "subtype");
26
+ if (subtype === "turn_duration") {
27
+ return [lifecycleDraft(this.agentKind, observedContext, LifecyclePhase.IDLE, "Claude turn completed.")];
28
+ }
29
+ if (subtype === "api_error") {
30
+ return [errorDraft(this.agentKind, observedContext, "api_error")];
31
+ }
32
+ if (type === "system" && subtype !== "" && subtype !== "init") {
33
+ return [];
34
+ }
20
35
  return [lifecycleDraft(this.agentKind, observedContext, LifecyclePhase.DISCOVERED, "Claude session discovered.")];
21
36
  }
22
37
  if (type === "result") {
@@ -44,8 +59,14 @@ class ClaudeActivityAdapter {
44
59
  if (blockType === "tool_use") {
45
60
  const id = stringField(item, "id");
46
61
  const name = stringField(item, "name") || "tool";
47
- if (id !== "")
62
+ if (id !== "") {
48
63
  this.#toolNames.set(id, name);
64
+ if (this.#toolNames.size > maxTrackedToolCalls) {
65
+ const oldest = this.#toolNames.keys().next().value;
66
+ if (oldest !== undefined)
67
+ this.#toolNames.delete(oldest);
68
+ }
69
+ }
49
70
  drafts.push(...toolDrafts(this.agentKind, observedContext, {
50
71
  invocationId: id,
51
72
  toolName: name,
@@ -72,7 +93,12 @@ class ClaudeActivityAdapter {
72
93
  textBlocks.push(item["text"] ?? block);
73
94
  }
74
95
  }
75
- const text = extractText(textBlocks);
96
+ // Claude Code marks text it injects into the user turn (command
97
+ // caveats, reminders, compaction summaries). It was not typed by the
98
+ // user, so it must not appear as a user prompt.
99
+ const injected = type === "user" &&
100
+ (object["isMeta"] === true || object["isCompactSummary"] === true);
101
+ const text = injected ? "" : extractText(textBlocks);
76
102
  if (text !== "") {
77
103
  drafts.unshift(activityDraft(this.agentKind, observedContext, role === "user" ? ActivityKind.PROMPT : ActivityKind.RESPONSE, role === "user"
78
104
  ? "User prompt submitted."
@@ -1 +1 @@
1
- {"version":3,"file":"claude.js","sourceRoot":"","sources":["../../../../src/activity/adapters/claude.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude.js","sourceRoot":"","sources":["../../../../src/activity/adapters/claude.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { VendorActivityAdapter } from "../types.js";
2
+ /** Set by the source on a task's first message: the user's request. */
3
+ export declare const clineTaskFirstMessageField = "phigon_first_message";
4
+ export declare const clineExtensionActivityAdapter: VendorActivityAdapter;
5
+ export declare const rooCodeActivityAdapter: VendorActivityAdapter;
6
+ export declare const kiloCodeActivityAdapter: VendorActivityAdapter;
7
+ //# sourceMappingURL=cline-task.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cline-task.d.ts","sourceRoot":"","sources":["../../../../src/activity/adapters/cline-task.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAGV,qBAAqB,EACtB,MAAM,aAAa,CAAC;AAErB,uEAAuE;AACvE,eAAO,MAAM,0BAA0B,yBAAyB,CAAC;AAmOjE,eAAO,MAAM,6BAA6B,EAAE,qBACS,CAAC;AACtD,eAAO,MAAM,sBAAsB,EAAE,qBACsB,CAAC;AAC5D,eAAO,MAAM,uBAAuB,EAAE,qBACuB,CAAC"}