@phigon/observer 8.1.0 → 8.2.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 (217) hide show
  1. package/README.md +51 -8
  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/action-policy.d.ts.map +1 -1
  9. package/dist/src/action-policy.js +4 -2
  10. package/dist/src/action-policy.js.map +1 -1
  11. package/dist/src/activity/adapters/claude.d.ts.map +1 -1
  12. package/dist/src/activity/adapters/claude.js +19 -1
  13. package/dist/src/activity/adapters/claude.js.map +1 -1
  14. package/dist/src/activity/adapters/cline-task.d.ts +7 -0
  15. package/dist/src/activity/adapters/cline-task.d.ts.map +1 -0
  16. package/dist/src/activity/adapters/cline-task.js +197 -0
  17. package/dist/src/activity/adapters/cline-task.js.map +1 -0
  18. package/dist/src/activity/adapters/cline.d.ts +3 -0
  19. package/dist/src/activity/adapters/cline.d.ts.map +1 -0
  20. package/dist/src/activity/adapters/cline.js +102 -0
  21. package/dist/src/activity/adapters/cline.js.map +1 -0
  22. package/dist/src/activity/adapters/codex.d.ts.map +1 -1
  23. package/dist/src/activity/adapters/codex.js +76 -0
  24. package/dist/src/activity/adapters/codex.js.map +1 -1
  25. package/dist/src/activity/adapters/copilot-chat.d.ts +3 -0
  26. package/dist/src/activity/adapters/copilot-chat.d.ts.map +1 -0
  27. package/dist/src/activity/adapters/copilot-chat.js +176 -0
  28. package/dist/src/activity/adapters/copilot-chat.js.map +1 -0
  29. package/dist/src/activity/adapters/copilot.d.ts +2 -1
  30. package/dist/src/activity/adapters/copilot.d.ts.map +1 -1
  31. package/dist/src/activity/adapters/copilot.js +173 -2
  32. package/dist/src/activity/adapters/copilot.js.map +1 -1
  33. package/dist/src/activity/adapters/cursor.d.ts +3 -0
  34. package/dist/src/activity/adapters/cursor.d.ts.map +1 -0
  35. package/dist/src/activity/adapters/cursor.js +86 -0
  36. package/dist/src/activity/adapters/cursor.js.map +1 -0
  37. package/dist/src/activity/adapters/factory-droid.d.ts +3 -0
  38. package/dist/src/activity/adapters/factory-droid.d.ts.map +1 -0
  39. package/dist/src/activity/adapters/factory-droid.js +126 -0
  40. package/dist/src/activity/adapters/factory-droid.js.map +1 -0
  41. package/dist/src/activity/adapters/gemini.d.ts +3 -0
  42. package/dist/src/activity/adapters/gemini.d.ts.map +1 -0
  43. package/dist/src/activity/adapters/gemini.js +177 -0
  44. package/dist/src/activity/adapters/gemini.js.map +1 -0
  45. package/dist/src/activity/adapters/goose.d.ts +3 -0
  46. package/dist/src/activity/adapters/goose.d.ts.map +1 -0
  47. package/dist/src/activity/adapters/goose.js +116 -0
  48. package/dist/src/activity/adapters/goose.js.map +1 -0
  49. package/dist/src/activity/adapters/kiro.d.ts +3 -0
  50. package/dist/src/activity/adapters/kiro.d.ts.map +1 -0
  51. package/dist/src/activity/adapters/kiro.js +47 -0
  52. package/dist/src/activity/adapters/kiro.js.map +1 -0
  53. package/dist/src/activity/adapters/opencode.d.ts.map +1 -1
  54. package/dist/src/activity/adapters/opencode.js +108 -1
  55. package/dist/src/activity/adapters/opencode.js.map +1 -1
  56. package/dist/src/activity/adapters/zed.d.ts +3 -0
  57. package/dist/src/activity/adapters/zed.d.ts.map +1 -0
  58. package/dist/src/activity/adapters/zed.js +134 -0
  59. package/dist/src/activity/adapters/zed.js.map +1 -0
  60. package/dist/src/activity/collector.d.ts +12 -0
  61. package/dist/src/activity/collector.d.ts.map +1 -1
  62. package/dist/src/activity/collector.js +156 -3
  63. package/dist/src/activity/collector.js.map +1 -1
  64. package/dist/src/activity/goose-sqlite-source.d.ts +33 -0
  65. package/dist/src/activity/goose-sqlite-source.d.ts.map +1 -0
  66. package/dist/src/activity/goose-sqlite-source.js +274 -0
  67. package/dist/src/activity/goose-sqlite-source.js.map +1 -0
  68. package/dist/src/activity/index.d.ts +3 -0
  69. package/dist/src/activity/index.d.ts.map +1 -1
  70. package/dist/src/activity/index.js +3 -0
  71. package/dist/src/activity/index.js.map +1 -1
  72. package/dist/src/activity/ingest.d.ts.map +1 -1
  73. package/dist/src/activity/ingest.js +2 -1
  74. package/dist/src/activity/ingest.js.map +1 -1
  75. package/dist/src/activity/json-document-source.d.ts +136 -0
  76. package/dist/src/activity/json-document-source.d.ts.map +1 -0
  77. package/dist/src/activity/json-document-source.js +569 -0
  78. package/dist/src/activity/json-document-source.js.map +1 -0
  79. package/dist/src/activity/normalize.d.ts.map +1 -1
  80. package/dist/src/activity/normalize.js +64 -6
  81. package/dist/src/activity/normalize.js.map +1 -1
  82. package/dist/src/activity/opencode-message-tables.d.ts +87 -0
  83. package/dist/src/activity/opencode-message-tables.d.ts.map +1 -0
  84. package/dist/src/activity/opencode-message-tables.js +546 -0
  85. package/dist/src/activity/opencode-message-tables.js.map +1 -0
  86. package/dist/src/activity/opencode-sqlite-source.d.ts +7 -0
  87. package/dist/src/activity/opencode-sqlite-source.d.ts.map +1 -1
  88. package/dist/src/activity/opencode-sqlite-source.js +153 -63
  89. package/dist/src/activity/opencode-sqlite-source.js.map +1 -1
  90. package/dist/src/activity/source-reader.d.ts +16 -1
  91. package/dist/src/activity/source-reader.d.ts.map +1 -1
  92. package/dist/src/activity/source-reader.js +308 -29
  93. package/dist/src/activity/source-reader.js.map +1 -1
  94. package/dist/src/activity/sqlite-connections.d.ts +77 -0
  95. package/dist/src/activity/sqlite-connections.d.ts.map +1 -0
  96. package/dist/src/activity/sqlite-connections.js +220 -0
  97. package/dist/src/activity/sqlite-connections.js.map +1 -0
  98. package/dist/src/activity/zed-sqlite-source.d.ts +65 -0
  99. package/dist/src/activity/zed-sqlite-source.d.ts.map +1 -0
  100. package/dist/src/activity/zed-sqlite-source.js +547 -0
  101. package/dist/src/activity/zed-sqlite-source.js.map +1 -0
  102. package/dist/src/agent-action-executor.d.ts +13 -1
  103. package/dist/src/agent-action-executor.d.ts.map +1 -1
  104. package/dist/src/agent-action-executor.js +108 -56
  105. package/dist/src/agent-action-executor.js.map +1 -1
  106. package/dist/src/agentic-guardian.d.ts.map +1 -1
  107. package/dist/src/agentic-guardian.js +6 -5
  108. package/dist/src/agentic-guardian.js.map +1 -1
  109. package/dist/src/cli.d.ts.map +1 -1
  110. package/dist/src/cli.js +47 -10
  111. package/dist/src/cli.js.map +1 -1
  112. package/dist/src/config.d.ts +13 -0
  113. package/dist/src/config.d.ts.map +1 -1
  114. package/dist/src/config.js +99 -3
  115. package/dist/src/config.js.map +1 -1
  116. package/dist/src/connection-config.d.ts.map +1 -1
  117. package/dist/src/connection-config.js +5 -0
  118. package/dist/src/connection-config.js.map +1 -1
  119. package/dist/src/content-redaction.d.ts.map +1 -1
  120. package/dist/src/content-redaction.js +9 -2
  121. package/dist/src/content-redaction.js.map +1 -1
  122. package/dist/src/credential-store.d.ts.map +1 -1
  123. package/dist/src/credential-store.js +2 -1
  124. package/dist/src/credential-store.js.map +1 -1
  125. package/dist/src/custom-agent-registry.d.ts.map +1 -1
  126. package/dist/src/custom-agent-registry.js +2 -1
  127. package/dist/src/custom-agent-registry.js.map +1 -1
  128. package/dist/src/discovery/adapters/generic.d.ts.map +1 -1
  129. package/dist/src/discovery/adapters/generic.js +160 -2
  130. package/dist/src/discovery/adapters/generic.js.map +1 -1
  131. package/dist/src/discovery/engine.d.ts +7 -1
  132. package/dist/src/discovery/engine.d.ts.map +1 -1
  133. package/dist/src/discovery/engine.js +20 -5
  134. package/dist/src/discovery/engine.js.map +1 -1
  135. package/dist/src/discovery/known-agent.d.ts +7 -0
  136. package/dist/src/discovery/known-agent.d.ts.map +1 -1
  137. package/dist/src/discovery/known-agent.js +9 -4
  138. package/dist/src/discovery/known-agent.js.map +1 -1
  139. package/dist/src/discovery/system-evidence.d.ts +40 -1
  140. package/dist/src/discovery/system-evidence.d.ts.map +1 -1
  141. package/dist/src/discovery/system-evidence.js +189 -16
  142. package/dist/src/discovery/system-evidence.js.map +1 -1
  143. package/dist/src/event-queue.d.ts.map +1 -1
  144. package/dist/src/event-queue.js +88 -38
  145. package/dist/src/event-queue.js.map +1 -1
  146. package/dist/src/event-spool.d.ts.map +1 -1
  147. package/dist/src/event-spool.js +58 -10
  148. package/dist/src/event-spool.js.map +1 -1
  149. package/dist/src/guardian-containment.d.ts +2 -6
  150. package/dist/src/guardian-containment.d.ts.map +1 -1
  151. package/dist/src/guardian-containment.js +12 -63
  152. package/dist/src/guardian-containment.js.map +1 -1
  153. package/dist/src/guardian-decision-journal.d.ts.map +1 -1
  154. package/dist/src/guardian-decision-journal.js +2 -1
  155. package/dist/src/guardian-decision-journal.js.map +1 -1
  156. package/dist/src/guardian-managed-exec.d.ts.map +1 -1
  157. package/dist/src/guardian-managed-exec.js +2 -1
  158. package/dist/src/guardian-managed-exec.js.map +1 -1
  159. package/dist/src/guardian-model-bridge.d.ts.map +1 -1
  160. package/dist/src/guardian-model-bridge.js +2 -1
  161. package/dist/src/guardian-model-bridge.js.map +1 -1
  162. package/dist/src/guardian-native.d.ts +0 -1
  163. package/dist/src/guardian-native.d.ts.map +1 -1
  164. package/dist/src/guardian-native.js +0 -6
  165. package/dist/src/guardian-native.js.map +1 -1
  166. package/dist/src/guardian-process-monitor.d.ts +3 -0
  167. package/dist/src/guardian-process-monitor.d.ts.map +1 -1
  168. package/dist/src/guardian-process-monitor.js +8 -0
  169. package/dist/src/guardian-process-monitor.js.map +1 -1
  170. package/dist/src/historical-identity-store.d.ts.map +1 -1
  171. package/dist/src/historical-identity-store.js +2 -1
  172. package/dist/src/historical-identity-store.js.map +1 -1
  173. package/dist/src/installation.d.ts.map +1 -1
  174. package/dist/src/installation.js +3 -2
  175. package/dist/src/installation.js.map +1 -1
  176. package/dist/src/machine-command-executor.d.ts +22 -7
  177. package/dist/src/machine-command-executor.d.ts.map +1 -1
  178. package/dist/src/machine-command-executor.js +91 -17
  179. package/dist/src/machine-command-executor.js.map +1 -1
  180. package/dist/src/pair.d.ts.map +1 -1
  181. package/dist/src/pair.js +3 -2
  182. package/dist/src/pair.js.map +1 -1
  183. package/dist/src/private-directory.d.ts +4 -0
  184. package/dist/src/private-directory.d.ts.map +1 -0
  185. package/dist/src/private-directory.js +35 -0
  186. package/dist/src/private-directory.js.map +1 -0
  187. package/dist/src/process-tree.d.ts +73 -0
  188. package/dist/src/process-tree.d.ts.map +1 -0
  189. package/dist/src/process-tree.js +256 -0
  190. package/dist/src/process-tree.js.map +1 -0
  191. package/dist/src/server-authority.d.ts +26 -0
  192. package/dist/src/server-authority.d.ts.map +1 -0
  193. package/dist/src/server-authority.js +102 -0
  194. package/dist/src/server-authority.js.map +1 -0
  195. package/dist/src/stream-client.d.ts +3 -1
  196. package/dist/src/stream-client.d.ts.map +1 -1
  197. package/dist/src/stream-client.js +49 -11
  198. package/dist/src/stream-client.js.map +1 -1
  199. package/dist/src/stream-state.d.ts.map +1 -1
  200. package/dist/src/stream-state.js +2 -1
  201. package/dist/src/stream-state.js.map +1 -1
  202. package/dist/src/system-inspection.d.ts +78 -0
  203. package/dist/src/system-inspection.d.ts.map +1 -0
  204. package/dist/src/system-inspection.js +281 -0
  205. package/dist/src/system-inspection.js.map +1 -0
  206. package/dist/src/update.d.ts.map +1 -1
  207. package/dist/src/update.js +9 -3
  208. package/dist/src/update.js.map +1 -1
  209. package/dist/src/user-notices.d.ts +53 -0
  210. package/dist/src/user-notices.d.ts.map +1 -0
  211. package/dist/src/user-notices.js +117 -0
  212. package/dist/src/user-notices.js.map +1 -0
  213. package/package.json +1 -1
  214. package/dist/src/windows-process.d.ts +0 -7
  215. package/dist/src/windows-process.d.ts.map +0 -1
  216. package/dist/src/windows-process.js +0 -18
  217. package/dist/src/windows-process.js.map +0 -1
package/README.md CHANGED
@@ -45,15 +45,23 @@ 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
 
@@ -152,6 +160,20 @@ settings. A full description is in
152
160
 
153
161
  Run `phigon-observer help` for every flag.
154
162
 
163
+ ### A company's own Phigon server
164
+
165
+ The Phigon app can run a company's own server, and other computers on the
166
+ company network can connect to it. That server signs its HTTPS certificate
167
+ with an authority of its own, so the **Connect machine** command adds
168
+ `--server-ca-sha256 <fingerprint>`.
169
+
170
+ On first contact, pairing finds the authority in the server's certificate
171
+ chain whose SHA-256 matches the fingerprint. It saves that authority as
172
+ `server-ca.pem` in the data directory, and every later HTTPS and gRPC
173
+ connection trusts it. A server that presents another certificate is refused
174
+ before anything is sent. `remove-machine` deletes the file. This needs
175
+ Node.js 24.5 or newer.
176
+
155
177
  ## Configuration
156
178
 
157
179
  Settings are environment variables. The most common ones:
@@ -160,13 +182,14 @@ Settings are environment variables. The most common ones:
160
182
  | --- | --- |
161
183
  | `PHIGON_DATA_DIR` | Where the credential, checkpoints and encrypted queue live. Use a separate directory per workspace. |
162
184
  | `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. |
185
+ | `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
186
  | `PHIGON_TLS_CLIENT_CERT_FILE`, `PHIGON_TLS_CLIENT_KEY_FILE` | Client certificate, when the workspace requires mutual TLS. |
165
187
  | `PHIGON_COLLECT_*` | Turns individual content categories off (or on, within the workspace policy). |
166
188
  | `PHIGON_REDACT_PATH_PATTERNS` | Extra file path patterns to redact. |
167
189
  | `PHIGON_<AGENT>_ACTIVITY_DIRS` | Extra record folders for an agent, e.g. `PHIGON_CLAUDE_ACTIVITY_DIRS`. |
168
190
  | `PHIGON_REMOTE_ACTIONS_ENABLED` | Opt in to administrator-approved agent stop and force stop. Off by default. |
169
191
  | `PHIGON_REMOTE_COMMANDS_ENABLED` | Opt in to administrator-reviewed system operations. Off by default. |
192
+ | `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. On by default. |
170
193
  | `PHIGON_UPDATE_CHECK` | Set to `false` to turn off the once-a-day update check. |
171
194
  | `PHIGON_LOG_LEVEL` | Logging detail. |
172
195
 
@@ -202,14 +225,34 @@ Remote actions are off on every computer by default.
202
225
  - `PHIGON_REMOTE_ACTIONS_ENABLED=true` lets administrators stop or force-stop
203
226
  one exact running agent process. Each stop needs an operator proposal and a
204
227
  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.
228
+ A stop acts on one exact process lifetime (process ID plus start time, checked
229
+ again just before anything is sent) and the child processes it started.
230
+ Graceful stop sends `SIGTERM` on Linux and macOS; on Windows it asks the
231
+ agent's windows to close, and for a console agent it presses Ctrl+C in its
232
+ terminal, but only when nothing else shares that terminal; otherwise it
233
+ sends nothing and reports `terminal_shared`.
234
+ Force stop is approved separately. Receipts say when the process had already
235
+ exited, access was denied, or the agent or a child is still running. It does
236
+ not enable shell access, file access, screen capture or general remote
237
+ control.
208
238
  - `PHIGON_REMOTE_COMMANDS_ENABLED=true` additionally allows
209
239
  administrator-reviewed commands (executable and arguments, no shell), system
210
240
  inspection, and scheduled shutdown or restart. Commands run as the observer's
211
241
  account, are limited to 1–120 seconds and return at most 32 KB of redacted
212
242
  output. A durable journal prevents a command from running twice after a crash.
243
+ System inspection reports the operating system, memory, uptime, CPU load,
244
+ space on the main drive, the observer version, and each running agent's
245
+ name, process ID, CPU share, memory and run time, measured once over half a
246
+ second. It never includes file contents, environment values or command lines.
247
+
248
+ Whenever Phigon stops an agent on a computer, whether someone asked, Phigon AI
249
+ decided or the agent is blocked, the person at that computer sees a system
250
+ notification such as "Claude Code was stopped by Phigon", with the reason. The
251
+ same goes for commands Phigon runs and a scheduled restart or shutdown. It uses
252
+ the system's own notifications (a Windows toast, macOS Notification Center, or
253
+ `notify-send` on Linux) and shows nothing when the observer runs without a
254
+ desktop session, for example as a Windows service. `PHIGON_USER_NOTICES=false`
255
+ turns it off.
213
256
 
214
257
  ## Guardian: checks before an agent acts
215
258
 
@@ -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;AAmIrB,eAAO,MAAM,qBAAqB,EAAE,qBACP,CAAC"}
@@ -17,6 +17,19 @@ class ClaudeActivityAdapter {
17
17
  };
18
18
  const type = stringField(object, "type");
19
19
  if (type === "system" || type === "summary") {
20
+ // Claude Code transcripts write many system records per session
21
+ // (turn timing, hook summaries, notices). Only the session start,
22
+ // a finished turn, and an API failure carry lifecycle meaning.
23
+ const subtype = stringField(object, "subtype");
24
+ if (subtype === "turn_duration") {
25
+ return [lifecycleDraft(this.agentKind, observedContext, LifecyclePhase.IDLE, "Claude turn completed.")];
26
+ }
27
+ if (subtype === "api_error") {
28
+ return [errorDraft(this.agentKind, observedContext, "api_error")];
29
+ }
30
+ if (type === "system" && subtype !== "" && subtype !== "init") {
31
+ return [];
32
+ }
20
33
  return [lifecycleDraft(this.agentKind, observedContext, LifecyclePhase.DISCOVERED, "Claude session discovered.")];
21
34
  }
22
35
  if (type === "result") {
@@ -72,7 +85,12 @@ class ClaudeActivityAdapter {
72
85
  textBlocks.push(item["text"] ?? block);
73
86
  }
74
87
  }
75
- const text = extractText(textBlocks);
88
+ // Claude Code marks text it injects into the user turn (command
89
+ // caveats, reminders, compaction summaries). It was not typed by the
90
+ // user, so it must not appear as a user prompt.
91
+ const injected = type === "user" &&
92
+ (object["isMeta"] === true || object["isCompactSummary"] === true);
93
+ const text = injected ? "" : extractText(textBlocks);
76
94
  if (text !== "") {
77
95
  drafts.unshift(activityDraft(this.agentKind, observedContext, role === "user" ? ActivityKind.PROMPT : ActivityKind.RESPONSE, role === "user"
78
96
  ? "User prompt submitted."
@@ -1 +1 @@
1
- {"version":3,"file":"claude.js","sourceRoot":"","sources":["../../../../src/activity/adapters/claude.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,SAAS,GACV,MAAM,wCAAwC,CAAC;AAChD,OAAO,EACL,cAAc,EACd,SAAS,GACV,MAAM,2CAA2C,CAAC;AACnD,OAAO,EACL,aAAa,EACb,UAAU,EACV,cAAc,EACd,UAAU,GACX,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,WAAW,EACX,WAAW,EACX,gBAAgB,EAChB,WAAW,GACZ,MAAM,cAAc,CAAC;AAOtB,MAAM,qBAAqB;IAChB,EAAE,GAAG,QAAQ,CAAC;IACd,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC;IAC7B,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAC;IAEhD,KAAK,CAAC,MAAe,EAAE,OAAqB;QAC1C,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;YACnC,IAAI,MAAM,KAAK,IAAI;gBAAE,OAAO,EAAE,CAAC;YAC/B,MAAM,eAAe,GAAG;gBACtB,GAAG,OAAO;gBACV,UAAU,EAAE,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC;aACzD,CAAC;YACF,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACzC,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC5C,OAAO,CAAC,cAAc,CACpB,IAAI,CAAC,SAAS,EACd,eAAe,EACf,cAAc,CAAC,UAAU,EACzB,4BAA4B,CAC7B,CAAC,CAAC;YACL,CAAC;YACD,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACtB,OAAO;oBACL,MAAM,CAAC,UAAU,CAAC,KAAK,IAAI;wBACzB,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,EAAE,cAAc,CAAC;wBAC7D,CAAC,CAAC,cAAc,CACZ,IAAI,CAAC,SAAS,EACd,eAAe,EACf,cAAc,CAAC,IAAI,EACnB,wBAAwB,CACzB;iBACN,CAAC;YACJ,CAAC;YACD,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,WAAW;gBAAE,OAAO,EAAE,CAAC;YACvD,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,MAAM,CAAC;YACzD,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC;YAClD,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;YACnC,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAC5D,MAAM,MAAM,GAAoB,EAAE,CAAC;YACnC,MAAM,UAAU,GAAc,EAAE,CAAC;YACjC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;gBACzC,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;gBAChC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;oBAClB,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACvB,SAAS;gBACX,CAAC;gBACD,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBAC5C,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;oBAC7B,MAAM,EAAE,GAAG,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;oBACnC,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC;oBACjD,IAAI,EAAE,KAAK,EAAE;wBAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;oBAC7C,MAAM,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,EAAE;wBACzD,YAAY,EAAE,EAAE;wBAChB,QAAQ,EAAE,IAAI;wBACd,KAAK,EAAE,SAAS,CAAC,SAAS;wBAC1B,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC;qBACzB,CAAC,CAAC,CAAC;gBACN,CAAC;qBAAM,IAAI,SAAS,KAAK,aAAa,EAAE,CAAC;oBACvC,MAAM,EAAE,GAAG,WAAW,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;oBAC5C,MAAM,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,EAAE;wBACzD,YAAY,EAAE,EAAE;wBAChB,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,MAAM;wBAC3C,KAAK,EACH,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI;4BACvB,CAAC,CAAC,SAAS,CAAC,MAAM;4BAClB,CAAC,CAAC,SAAS,CAAC,SAAS;wBACzB,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC;qBACxB,CAAC,CAAC,CAAC;oBACJ,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAC7B,CAAC;qBAAM,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;oBACpC,MAAM,CAAC,IAAI,CAAC,aAAa,CACvB,IAAI,CAAC,SAAS,EACd,eAAe,EACf,YAAY,CAAC,SAAS,EACtB,0BAA0B,EAC1B,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,EAChC,kBAAkB,EAClB,UAAU,CACX,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC;gBACzC,CAAC;YACH,CAAC;YACD,MAAM,IAAI,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;YACrC,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;gBAChB,MAAM,CAAC,OAAO,CAAC,aAAa,CAC1B,IAAI,CAAC,SAAS,EACd,eAAe,EACf,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,EAC7D,IAAI,KAAK,MAAM;oBACb,CAAC,CAAC,wBAAwB;oBAC1B,CAAC,CAAC,0BAA0B,EAC9B,IAAI,EACJ,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,iBAAiB,EACrD,GAAG,IAAI,UAAU,CAClB,CAAC,CAAC;YACL,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;CACF;AAED,MAAM,CAAC,MAAM,qBAAqB,GAChC,IAAI,qBAAqB,EAAE,CAAC"}
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"}
@@ -0,0 +1,197 @@
1
+ import { ActivityKind, AgentKind, } from "../../generated/phigon/v1/common_pb.js";
2
+ import { LifecyclePhase, ToolPhase, } from "../../generated/phigon/v1/telemetry_pb.js";
3
+ import { activityDraft, errorDraft, lifecycleDraft, toolDrafts, } from "../normalize.js";
4
+ import { objectValue, recordObservedAt, stringField, } from "../record.js";
5
+ /** Set by the source on a task's first message: the user's request. */
6
+ export const clineTaskFirstMessageField = "phigon_first_message";
7
+ const maxTrackedSessions = 4_096;
8
+ // Older Cline appended this to a command that waits for approval.
9
+ const approvalMarker = "REQ_APP";
10
+ /**
11
+ * Canonical names for the file tools Cline and its forks report, so they
12
+ * become file events like other agents' read_file and edit_file.
13
+ */
14
+ const fileToolNames = {
15
+ appliedDiff: "edit_file",
16
+ editedExistingFile: "edit_file",
17
+ insertContent: "edit_file",
18
+ searchAndReplace: "edit_file",
19
+ newFileCreated: "create_file",
20
+ fileDeleted: "delete_file",
21
+ readFile: "read_file",
22
+ listFilesTopLevel: "list_files",
23
+ listFilesRecursive: "list_files",
24
+ searchFiles: "search_files",
25
+ };
26
+ /**
27
+ * Tasks of the Cline VS Code extension and its forks Roo Code and Kilo Code,
28
+ * read from `<global storage>/tasks/<task id>/ui_messages.json`: the list of
29
+ * messages the extension shows, each `{ ts, type: "say" | "ask", say?, ask?,
30
+ * text?, partial? }`. The first message (or a `task` say) is the user's
31
+ * request and `user_feedback` a later one; `text`, `completion_result` and
32
+ * follow-up questions are the agent's replies. A `command` is followed by
33
+ * `command_output` chunks, and a `tool` message carries JSON such as
34
+ * `{ tool: "editedExistingFile", path }`.
35
+ */
36
+ class ClineTaskActivityAdapter {
37
+ id;
38
+ displayName;
39
+ agentKind = AgentKind.GENERIC;
40
+ // The last command per session, which later output belongs to.
41
+ #commands = new Map();
42
+ constructor(id, displayName) {
43
+ this.id = id;
44
+ this.displayName = displayName;
45
+ }
46
+ parse(record, context) {
47
+ try {
48
+ const message = objectValue(record);
49
+ if (message === null)
50
+ return [];
51
+ const observedContext = {
52
+ ...context,
53
+ observedAt: recordObservedAt(record, context.observedAt),
54
+ };
55
+ const type = stringField(message, "type");
56
+ const kind = type === "say"
57
+ ? stringField(message, "say")
58
+ : type === "ask"
59
+ ? stringField(message, "ask")
60
+ : "";
61
+ const text = stringField(message, "text");
62
+ const first = message[clineTaskFirstMessageField] === true;
63
+ if ((first && kind === "text") || kind === "task" || kind === "user_feedback") {
64
+ return this.#activity(observedContext, ActivityKind.PROMPT, text);
65
+ }
66
+ switch (kind) {
67
+ case "text":
68
+ case "completion_result":
69
+ // The closing ask repeats nothing; the result itself is a say.
70
+ return type === "say"
71
+ ? this.#activity(observedContext, ActivityKind.RESPONSE, text)
72
+ : [lifecycleDraft(this.agentKind, observedContext, LifecyclePhase.IDLE, `${this.displayName} task completed.`)];
73
+ case "followup":
74
+ case "plan_mode_respond":
75
+ case "act_mode_respond":
76
+ return this.#activity(observedContext, ActivityKind.RESPONSE, jsonField(text, kind === "followup" ? "question" : "response") ?? text);
77
+ case "reasoning":
78
+ return this.#activity(observedContext, ActivityKind.REASONING, text);
79
+ case "command":
80
+ return this.#command(observedContext, message, text);
81
+ case "command_output":
82
+ return this.#commandOutput(observedContext, text);
83
+ case "tool":
84
+ return this.#tool(observedContext, message, text);
85
+ case "use_mcp_server":
86
+ return this.#mcp(observedContext, message, text);
87
+ case "error":
88
+ case "api_req_failed":
89
+ case "mistake_limit_reached":
90
+ case "diff_error":
91
+ return [errorDraft(this.agentKind, observedContext, kind)];
92
+ default:
93
+ return [];
94
+ }
95
+ }
96
+ catch {
97
+ return [errorDraft(this.agentKind, context, "malformed_record")];
98
+ }
99
+ }
100
+ #activity(context, kind, text) {
101
+ if (text.trim() === "")
102
+ return [];
103
+ const prompt = kind === ActivityKind.PROMPT;
104
+ const reasoning = kind === ActivityKind.REASONING;
105
+ return [activityDraft(this.agentKind, context, kind, prompt
106
+ ? "User prompt submitted."
107
+ : reasoning
108
+ ? "Agent reasoning updated."
109
+ : "Agent response produced.", text, prompt ? "promptContent" : reasoning ? "reasoningContent" : "responseContent", prompt ? "cline_user" : reasoning ? "thinking" : "cline_assistant")];
110
+ }
111
+ #command(context, message, text) {
112
+ const command = text.endsWith(approvalMarker)
113
+ ? text.slice(0, -approvalMarker.length).trimEnd()
114
+ : text.trim();
115
+ if (command === "")
116
+ return [];
117
+ const id = invocationId(message, "command");
118
+ this.#remember(context.sessionId, id);
119
+ return toolDrafts(this.agentKind, context, {
120
+ invocationId: id,
121
+ toolName: "execute_command",
122
+ phase: ToolPhase.REQUESTED,
123
+ arguments: { command },
124
+ });
125
+ }
126
+ #commandOutput(context, text) {
127
+ const id = this.#commands.get(context.sessionId);
128
+ if (id === undefined || text === "")
129
+ return [];
130
+ // Output arrives in chunks without an outcome; each chunk is terminal
131
+ // output of the command before it.
132
+ return toolDrafts(this.agentKind, context, {
133
+ invocationId: id,
134
+ toolName: "execute_command",
135
+ phase: ToolPhase.UNSPECIFIED,
136
+ output: text,
137
+ });
138
+ }
139
+ #tool(context, message, text) {
140
+ const tool = parseObject(text);
141
+ if (tool === null)
142
+ return [];
143
+ const name = stringField(tool, "tool");
144
+ return toolDrafts(this.agentKind, context, {
145
+ invocationId: invocationId(message, "tool"),
146
+ toolName: fileToolNames[name] ?? (name || "tool"),
147
+ phase: ToolPhase.REQUESTED,
148
+ arguments: tool,
149
+ });
150
+ }
151
+ #mcp(context, message, text) {
152
+ const request = parseObject(text);
153
+ if (request === null)
154
+ return [];
155
+ const server = stringField(request, "serverName");
156
+ const tool = stringField(request, "toolName") || stringField(request, "uri");
157
+ return toolDrafts(this.agentKind, context, {
158
+ invocationId: invocationId(message, "mcp"),
159
+ toolName: [server, tool].filter(Boolean).join("__") || "mcp",
160
+ phase: ToolPhase.REQUESTED,
161
+ arguments: request["arguments"] ?? request,
162
+ });
163
+ }
164
+ #remember(sessionId, id) {
165
+ this.#commands.delete(sessionId);
166
+ this.#commands.set(sessionId, id);
167
+ if (this.#commands.size > maxTrackedSessions) {
168
+ const oldest = this.#commands.keys().next().value;
169
+ if (oldest !== undefined)
170
+ this.#commands.delete(oldest);
171
+ }
172
+ }
173
+ }
174
+ /** A stable invocation id from the message's own timestamp. */
175
+ function invocationId(message, prefix) {
176
+ const ts = message["ts"];
177
+ return typeof ts === "number" && Number.isSafeInteger(ts) ? `${prefix}_${ts}` : "";
178
+ }
179
+ function parseObject(text) {
180
+ if (!text.trimStart().startsWith("{"))
181
+ return null;
182
+ try {
183
+ return objectValue(JSON.parse(text));
184
+ }
185
+ catch {
186
+ return null;
187
+ }
188
+ }
189
+ /** A string field of a JSON text, as Cline writes questions and plans. */
190
+ function jsonField(text, field) {
191
+ const value = parseObject(text)?.[field];
192
+ return typeof value === "string" ? value : undefined;
193
+ }
194
+ export const clineExtensionActivityAdapter = new ClineTaskActivityAdapter("cline-task", "Cline");
195
+ export const rooCodeActivityAdapter = new ClineTaskActivityAdapter("roo-code-task", "Roo Code");
196
+ export const kiloCodeActivityAdapter = new ClineTaskActivityAdapter("kilo-code-task", "Kilo Code");
197
+ //# sourceMappingURL=cline-task.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cline-task.js","sourceRoot":"","sources":["../../../../src/activity/adapters/cline-task.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { VendorActivityAdapter } from "../types.js";
2
+ export declare const clineActivityAdapter: VendorActivityAdapter;
3
+ //# sourceMappingURL=cline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cline.d.ts","sourceRoot":"","sources":["../../../../src/activity/adapters/cline.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAGV,qBAAqB,EACtB,MAAM,aAAa,CAAC;AA4GrB,eAAO,MAAM,oBAAoB,EAAE,qBACP,CAAC"}
@@ -0,0 +1,102 @@
1
+ import { ActivityKind, AgentKind, } from "../../generated/phigon/v1/common_pb.js";
2
+ import { ToolPhase } from "../../generated/phigon/v1/telemetry_pb.js";
3
+ import { activityDraft, errorDraft, toolDrafts, } from "../normalize.js";
4
+ import { objectValue, stringField, } from "../record.js";
5
+ /**
6
+ * Cline CLI session messages
7
+ * (~/.cline/data/sessions/<session>/<session>.messages.json). The document
8
+ * is rewritten in place with `{ version, sessionId, messages: [...] }`; the
9
+ * JSON document source delivers each message once. A message is
10
+ * `{ id, role, content, ts }` where content is a string or Anthropic-style
11
+ * blocks: text, thinking, tool_use `{id, name, input}`, and tool_result
12
+ * `{tool_use_id, name, content, is_error?}` on user-role messages.
13
+ */
14
+ class ClineActivityAdapter {
15
+ id = "cline-cli";
16
+ agentKind = AgentKind.GENERIC;
17
+ parse(record, context) {
18
+ try {
19
+ const message = objectValue(record);
20
+ if (message === null)
21
+ return [];
22
+ const role = stringField(message, "role");
23
+ if (role !== "user" && role !== "assistant")
24
+ return [];
25
+ const observedContext = {
26
+ ...context,
27
+ observedAt: clineObservedAt(message["ts"], context.observedAt),
28
+ };
29
+ const content = message["content"];
30
+ const blocks = Array.isArray(content) ? content : [content];
31
+ const drafts = [];
32
+ const texts = [];
33
+ for (const block of blocks.slice(0, 256)) {
34
+ if (typeof block === "string") {
35
+ texts.push(block);
36
+ continue;
37
+ }
38
+ const item = objectValue(block);
39
+ if (item === null)
40
+ continue;
41
+ const type = stringField(item, "type");
42
+ if (type === "text") {
43
+ texts.push(stringField(item, "text"));
44
+ }
45
+ else if (type === "thinking" && role === "assistant") {
46
+ const thinking = stringField(item, "thinking");
47
+ if (thinking.trim() === "")
48
+ continue;
49
+ drafts.push(activityDraft(this.agentKind, observedContext, ActivityKind.REASONING, "Agent reasoning updated.", thinking, "reasoningContent", "thinking"));
50
+ }
51
+ else if (type === "tool_use" && role === "assistant") {
52
+ drafts.push(...toolDrafts(this.agentKind, observedContext, {
53
+ invocationId: stringField(item, "id"),
54
+ toolName: stringField(item, "name") || "tool",
55
+ phase: ToolPhase.REQUESTED,
56
+ arguments: item["input"],
57
+ }));
58
+ }
59
+ else if (type === "tool_result") {
60
+ drafts.push(...toolDrafts(this.agentKind, observedContext, {
61
+ invocationId: stringField(item, "tool_use_id"),
62
+ toolName: stringField(item, "name") || "tool",
63
+ phase: clineToolFailed(item)
64
+ ? ToolPhase.FAILED
65
+ : ToolPhase.SUCCEEDED,
66
+ output: item["content"],
67
+ }));
68
+ }
69
+ }
70
+ const text = texts.filter((value) => value.trim() !== "").join("\n");
71
+ if (text !== "") {
72
+ drafts.unshift(activityDraft(this.agentKind, observedContext, role === "user" ? ActivityKind.PROMPT : ActivityKind.RESPONSE, role === "user"
73
+ ? "User prompt submitted."
74
+ : "Agent response produced.", text, role === "user" ? "promptContent" : "responseContent", `cline_${role}`));
75
+ }
76
+ return drafts;
77
+ }
78
+ catch {
79
+ return [errorDraft(this.agentKind, context, "malformed_record")];
80
+ }
81
+ }
82
+ }
83
+ /**
84
+ * Built-in Cline tools return `[{ query, result, success, error? }]`; a
85
+ * provider-level failure sets `is_error`.
86
+ */
87
+ function clineToolFailed(block) {
88
+ if (block["is_error"] === true)
89
+ return true;
90
+ const content = block["content"];
91
+ return Array.isArray(content) &&
92
+ content.length > 0 &&
93
+ content.every((entry) => objectValue(entry)?.["success"] === false);
94
+ }
95
+ function clineObservedAt(value, fallback) {
96
+ if (typeof value !== "number" || !Number.isFinite(value))
97
+ return fallback;
98
+ const parsed = new Date(value);
99
+ return Number.isNaN(parsed.getTime()) ? fallback : parsed;
100
+ }
101
+ export const clineActivityAdapter = new ClineActivityAdapter();
102
+ //# sourceMappingURL=cline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cline.js","sourceRoot":"","sources":["../../../../src/activity/adapters/cline.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../../../src/activity/adapters/codex.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAGV,qBAAqB,EACtB,MAAM,aAAa,CAAC;AAyWrB,eAAO,MAAM,oBAAoB,EAAE,qBACP,CAAC"}
1
+ {"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../../../src/activity/adapters/codex.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAGV,qBAAqB,EACtB,MAAM,aAAa,CAAC;AAubrB,eAAO,MAAM,oBAAoB,EAAE,qBACP,CAAC"}