@phigon/observer 8.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (284) hide show
  1. package/README.md +303 -0
  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 +38 -0
  9. package/dist/src/action-policy.d.ts.map +1 -0
  10. package/dist/src/action-policy.js +269 -0
  11. package/dist/src/action-policy.js.map +1 -0
  12. package/dist/src/activity/adapters/claude.d.ts +3 -0
  13. package/dist/src/activity/adapters/claude.d.ts.map +1 -0
  14. package/dist/src/activity/adapters/claude.js +89 -0
  15. package/dist/src/activity/adapters/claude.js.map +1 -0
  16. package/dist/src/activity/adapters/codex.d.ts +3 -0
  17. package/dist/src/activity/adapters/codex.d.ts.map +1 -0
  18. package/dist/src/activity/adapters/codex.js +277 -0
  19. package/dist/src/activity/adapters/codex.js.map +1 -0
  20. package/dist/src/activity/adapters/copilot.d.ts +2 -0
  21. package/dist/src/activity/adapters/copilot.d.ts.map +1 -0
  22. package/dist/src/activity/adapters/copilot.js +4 -0
  23. package/dist/src/activity/adapters/copilot.js.map +1 -0
  24. package/dist/src/activity/adapters/generic.d.ts +2 -0
  25. package/dist/src/activity/adapters/generic.d.ts.map +1 -0
  26. package/dist/src/activity/adapters/generic.js +4 -0
  27. package/dist/src/activity/adapters/generic.js.map +1 -0
  28. package/dist/src/activity/adapters/hermes.d.ts +2 -0
  29. package/dist/src/activity/adapters/hermes.d.ts.map +1 -0
  30. package/dist/src/activity/adapters/hermes.js +4 -0
  31. package/dist/src/activity/adapters/hermes.js.map +1 -0
  32. package/dist/src/activity/adapters/openai-compatible.d.ts +4 -0
  33. package/dist/src/activity/adapters/openai-compatible.d.ts.map +1 -0
  34. package/dist/src/activity/adapters/openai-compatible.js +116 -0
  35. package/dist/src/activity/adapters/openai-compatible.js.map +1 -0
  36. package/dist/src/activity/adapters/openclaw.d.ts +2 -0
  37. package/dist/src/activity/adapters/openclaw.d.ts.map +1 -0
  38. package/dist/src/activity/adapters/openclaw.js +4 -0
  39. package/dist/src/activity/adapters/openclaw.js.map +1 -0
  40. package/dist/src/activity/adapters/opencode.d.ts +3 -0
  41. package/dist/src/activity/adapters/opencode.d.ts.map +1 -0
  42. package/dist/src/activity/adapters/opencode.js +137 -0
  43. package/dist/src/activity/adapters/opencode.js.map +1 -0
  44. package/dist/src/activity/bridges.d.ts +7 -0
  45. package/dist/src/activity/bridges.d.ts.map +1 -0
  46. package/dist/src/activity/bridges.js +17 -0
  47. package/dist/src/activity/bridges.js.map +1 -0
  48. package/dist/src/activity/collector.d.ts +90 -0
  49. package/dist/src/activity/collector.d.ts.map +1 -0
  50. package/dist/src/activity/collector.js +706 -0
  51. package/dist/src/activity/collector.js.map +1 -0
  52. package/dist/src/activity/index.d.ts +14 -0
  53. package/dist/src/activity/index.d.ts.map +1 -0
  54. package/dist/src/activity/index.js +14 -0
  55. package/dist/src/activity/index.js.map +1 -0
  56. package/dist/src/activity/ingest.d.ts +15 -0
  57. package/dist/src/activity/ingest.d.ts.map +1 -0
  58. package/dist/src/activity/ingest.js +103 -0
  59. package/dist/src/activity/ingest.js.map +1 -0
  60. package/dist/src/activity/native-capabilities.d.ts +14 -0
  61. package/dist/src/activity/native-capabilities.d.ts.map +1 -0
  62. package/dist/src/activity/native-capabilities.js +85 -0
  63. package/dist/src/activity/native-capabilities.js.map +1 -0
  64. package/dist/src/activity/normalize.d.ts +17 -0
  65. package/dist/src/activity/normalize.d.ts.map +1 -0
  66. package/dist/src/activity/normalize.js +416 -0
  67. package/dist/src/activity/normalize.js.map +1 -0
  68. package/dist/src/activity/opencode-sqlite-source.d.ts +19 -0
  69. package/dist/src/activity/opencode-sqlite-source.d.ts.map +1 -0
  70. package/dist/src/activity/opencode-sqlite-source.js +305 -0
  71. package/dist/src/activity/opencode-sqlite-source.js.map +1 -0
  72. package/dist/src/activity/policy.d.ts +48 -0
  73. package/dist/src/activity/policy.d.ts.map +1 -0
  74. package/dist/src/activity/policy.js +436 -0
  75. package/dist/src/activity/policy.js.map +1 -0
  76. package/dist/src/activity/record.d.ts +7 -0
  77. package/dist/src/activity/record.d.ts.map +1 -0
  78. package/dist/src/activity/record.js +61 -0
  79. package/dist/src/activity/record.js.map +1 -0
  80. package/dist/src/activity/source-reader.d.ts +46 -0
  81. package/dist/src/activity/source-reader.d.ts.map +1 -0
  82. package/dist/src/activity/source-reader.js +594 -0
  83. package/dist/src/activity/source-reader.js.map +1 -0
  84. package/dist/src/activity/types.d.ts +21 -0
  85. package/dist/src/activity/types.d.ts.map +1 -0
  86. package/dist/src/activity/types.js +2 -0
  87. package/dist/src/activity/types.js.map +1 -0
  88. package/dist/src/agent-action-executor.d.ts +21 -0
  89. package/dist/src/agent-action-executor.d.ts.map +1 -0
  90. package/dist/src/agent-action-executor.js +248 -0
  91. package/dist/src/agent-action-executor.js.map +1 -0
  92. package/dist/src/agentic-guardian.d.ts +50 -0
  93. package/dist/src/agentic-guardian.d.ts.map +1 -0
  94. package/dist/src/agentic-guardian.js +220 -0
  95. package/dist/src/agentic-guardian.js.map +1 -0
  96. package/dist/src/atomic-replace.d.ts +4 -0
  97. package/dist/src/atomic-replace.d.ts.map +1 -0
  98. package/dist/src/atomic-replace.js +18 -0
  99. package/dist/src/atomic-replace.js.map +1 -0
  100. package/dist/src/cli.d.ts +11 -0
  101. package/dist/src/cli.d.ts.map +1 -0
  102. package/dist/src/cli.js +1244 -0
  103. package/dist/src/cli.js.map +1 -0
  104. package/dist/src/config.d.ts +68 -0
  105. package/dist/src/config.d.ts.map +1 -0
  106. package/dist/src/config.js +260 -0
  107. package/dist/src/config.js.map +1 -0
  108. package/dist/src/credential-store.d.ts +22 -0
  109. package/dist/src/credential-store.d.ts.map +1 -0
  110. package/dist/src/credential-store.js +91 -0
  111. package/dist/src/credential-store.js.map +1 -0
  112. package/dist/src/custom-agent-registry.d.ts +26 -0
  113. package/dist/src/custom-agent-registry.d.ts.map +1 -0
  114. package/dist/src/custom-agent-registry.js +288 -0
  115. package/dist/src/custom-agent-registry.js.map +1 -0
  116. package/dist/src/discovery/adapters/claude.d.ts +3 -0
  117. package/dist/src/discovery/adapters/claude.d.ts.map +1 -0
  118. package/dist/src/discovery/adapters/claude.js +26 -0
  119. package/dist/src/discovery/adapters/claude.js.map +1 -0
  120. package/dist/src/discovery/adapters/codex.d.ts +3 -0
  121. package/dist/src/discovery/adapters/codex.d.ts.map +1 -0
  122. package/dist/src/discovery/adapters/codex.js +23 -0
  123. package/dist/src/discovery/adapters/codex.js.map +1 -0
  124. package/dist/src/discovery/adapters/custom.d.ts +4 -0
  125. package/dist/src/discovery/adapters/custom.d.ts.map +1 -0
  126. package/dist/src/discovery/adapters/custom.js +24 -0
  127. package/dist/src/discovery/adapters/custom.js.map +1 -0
  128. package/dist/src/discovery/adapters/generic.d.ts +3 -0
  129. package/dist/src/discovery/adapters/generic.d.ts.map +1 -0
  130. package/dist/src/discovery/adapters/generic.js +126 -0
  131. package/dist/src/discovery/adapters/generic.js.map +1 -0
  132. package/dist/src/discovery/adapters/hermes.d.ts +3 -0
  133. package/dist/src/discovery/adapters/hermes.d.ts.map +1 -0
  134. package/dist/src/discovery/adapters/hermes.js +22 -0
  135. package/dist/src/discovery/adapters/hermes.js.map +1 -0
  136. package/dist/src/discovery/adapters/openclaw.d.ts +3 -0
  137. package/dist/src/discovery/adapters/openclaw.d.ts.map +1 -0
  138. package/dist/src/discovery/adapters/openclaw.js +22 -0
  139. package/dist/src/discovery/adapters/openclaw.js.map +1 -0
  140. package/dist/src/discovery/engine.d.ts +17 -0
  141. package/dist/src/discovery/engine.d.ts.map +1 -0
  142. package/dist/src/discovery/engine.js +164 -0
  143. package/dist/src/discovery/engine.js.map +1 -0
  144. package/dist/src/discovery/evidence.d.ts +29 -0
  145. package/dist/src/discovery/evidence.d.ts.map +1 -0
  146. package/dist/src/discovery/evidence.js +2 -0
  147. package/dist/src/discovery/evidence.js.map +1 -0
  148. package/dist/src/discovery/index.d.ts +11 -0
  149. package/dist/src/discovery/index.d.ts.map +1 -0
  150. package/dist/src/discovery/index.js +11 -0
  151. package/dist/src/discovery/index.js.map +1 -0
  152. package/dist/src/discovery/known-agent.d.ts +17 -0
  153. package/dist/src/discovery/known-agent.d.ts.map +1 -0
  154. package/dist/src/discovery/known-agent.js +193 -0
  155. package/dist/src/discovery/known-agent.js.map +1 -0
  156. package/dist/src/discovery/process-identity.d.ts +19 -0
  157. package/dist/src/discovery/process-identity.d.ts.map +1 -0
  158. package/dist/src/discovery/process-identity.js +73 -0
  159. package/dist/src/discovery/process-identity.js.map +1 -0
  160. package/dist/src/discovery/system-evidence.d.ts +9 -0
  161. package/dist/src/discovery/system-evidence.d.ts.map +1 -0
  162. package/dist/src/discovery/system-evidence.js +270 -0
  163. package/dist/src/discovery/system-evidence.js.map +1 -0
  164. package/dist/src/discovery/types.d.ts +21 -0
  165. package/dist/src/discovery/types.d.ts.map +1 -0
  166. package/dist/src/discovery/types.js +2 -0
  167. package/dist/src/discovery/types.js.map +1 -0
  168. package/dist/src/event-queue.d.ts +32 -0
  169. package/dist/src/event-queue.d.ts.map +1 -0
  170. package/dist/src/event-queue.js +125 -0
  171. package/dist/src/event-queue.js.map +1 -0
  172. package/dist/src/event-spool.d.ts +19 -0
  173. package/dist/src/event-spool.d.ts.map +1 -0
  174. package/dist/src/event-spool.js +350 -0
  175. package/dist/src/event-spool.js.map +1 -0
  176. package/dist/src/generated/phigon/v1/action_pb.d.ts +223 -0
  177. package/dist/src/generated/phigon/v1/action_pb.d.ts.map +1 -0
  178. package/dist/src/generated/phigon/v1/action_pb.js +96 -0
  179. package/dist/src/generated/phigon/v1/action_pb.js.map +1 -0
  180. package/dist/src/generated/phigon/v1/common_pb.d.ts +255 -0
  181. package/dist/src/generated/phigon/v1/common_pb.d.ts.map +1 -0
  182. package/dist/src/generated/phigon/v1/common_pb.js +242 -0
  183. package/dist/src/generated/phigon/v1/common_pb.js.map +1 -0
  184. package/dist/src/generated/phigon/v1/history_sync_pb.d.ts +119 -0
  185. package/dist/src/generated/phigon/v1/history_sync_pb.d.ts.map +1 -0
  186. package/dist/src/generated/phigon/v1/history_sync_pb.js +46 -0
  187. package/dist/src/generated/phigon/v1/history_sync_pb.js.map +1 -0
  188. package/dist/src/generated/phigon/v1/identity_pb.d.ts +235 -0
  189. package/dist/src/generated/phigon/v1/identity_pb.d.ts.map +1 -0
  190. package/dist/src/generated/phigon/v1/identity_pb.js +31 -0
  191. package/dist/src/generated/phigon/v1/identity_pb.js.map +1 -0
  192. package/dist/src/generated/phigon/v1/observer_service_pb.d.ts +362 -0
  193. package/dist/src/generated/phigon/v1/observer_service_pb.d.ts.map +1 -0
  194. package/dist/src/generated/phigon/v1/observer_service_pb.js +120 -0
  195. package/dist/src/generated/phigon/v1/observer_service_pb.js.map +1 -0
  196. package/dist/src/generated/phigon/v1/policy_pb.d.ts +456 -0
  197. package/dist/src/generated/phigon/v1/policy_pb.d.ts.map +1 -0
  198. package/dist/src/generated/phigon/v1/policy_pb.js +161 -0
  199. package/dist/src/generated/phigon/v1/policy_pb.js.map +1 -0
  200. package/dist/src/generated/phigon/v1/supervision_pb.d.ts +849 -0
  201. package/dist/src/generated/phigon/v1/supervision_pb.d.ts.map +1 -0
  202. package/dist/src/generated/phigon/v1/supervision_pb.js +384 -0
  203. package/dist/src/generated/phigon/v1/supervision_pb.js.map +1 -0
  204. package/dist/src/generated/phigon/v1/telemetry_pb.d.ts +761 -0
  205. package/dist/src/generated/phigon/v1/telemetry_pb.d.ts.map +1 -0
  206. package/dist/src/generated/phigon/v1/telemetry_pb.js +309 -0
  207. package/dist/src/generated/phigon/v1/telemetry_pb.js.map +1 -0
  208. package/dist/src/guardian-containment.d.ts +30 -0
  209. package/dist/src/guardian-containment.d.ts.map +1 -0
  210. package/dist/src/guardian-containment.js +113 -0
  211. package/dist/src/guardian-containment.js.map +1 -0
  212. package/dist/src/guardian-decision-journal.d.ts +29 -0
  213. package/dist/src/guardian-decision-journal.d.ts.map +1 -0
  214. package/dist/src/guardian-decision-journal.js +55 -0
  215. package/dist/src/guardian-decision-journal.js.map +1 -0
  216. package/dist/src/guardian-execution-manifest.d.ts +29 -0
  217. package/dist/src/guardian-execution-manifest.d.ts.map +1 -0
  218. package/dist/src/guardian-execution-manifest.js +95 -0
  219. package/dist/src/guardian-execution-manifest.js.map +1 -0
  220. package/dist/src/guardian-hosted-client.d.ts +10 -0
  221. package/dist/src/guardian-hosted-client.d.ts.map +1 -0
  222. package/dist/src/guardian-hosted-client.js +45 -0
  223. package/dist/src/guardian-hosted-client.js.map +1 -0
  224. package/dist/src/guardian-managed-exec.d.ts +21 -0
  225. package/dist/src/guardian-managed-exec.d.ts.map +1 -0
  226. package/dist/src/guardian-managed-exec.js +249 -0
  227. package/dist/src/guardian-managed-exec.js.map +1 -0
  228. package/dist/src/guardian-model-bridge.d.ts +13 -0
  229. package/dist/src/guardian-model-bridge.d.ts.map +1 -0
  230. package/dist/src/guardian-model-bridge.js +87 -0
  231. package/dist/src/guardian-model-bridge.js.map +1 -0
  232. package/dist/src/guardian-native.d.ts +3 -0
  233. package/dist/src/guardian-native.d.ts.map +1 -0
  234. package/dist/src/guardian-native.js +13 -0
  235. package/dist/src/guardian-native.js.map +1 -0
  236. package/dist/src/guardian-process-monitor.d.ts +20 -0
  237. package/dist/src/guardian-process-monitor.d.ts.map +1 -0
  238. package/dist/src/guardian-process-monitor.js +98 -0
  239. package/dist/src/guardian-process-monitor.js.map +1 -0
  240. package/dist/src/health.d.ts +35 -0
  241. package/dist/src/health.d.ts.map +1 -0
  242. package/dist/src/health.js +41 -0
  243. package/dist/src/health.js.map +1 -0
  244. package/dist/src/historical-identity-store.d.ts +20 -0
  245. package/dist/src/historical-identity-store.d.ts.map +1 -0
  246. package/dist/src/historical-identity-store.js +391 -0
  247. package/dist/src/historical-identity-store.js.map +1 -0
  248. package/dist/src/index.d.ts +14 -0
  249. package/dist/src/index.d.ts.map +1 -0
  250. package/dist/src/index.js +14 -0
  251. package/dist/src/index.js.map +1 -0
  252. package/dist/src/installation.d.ts +2 -0
  253. package/dist/src/installation.d.ts.map +1 -0
  254. package/dist/src/installation.js +44 -0
  255. package/dist/src/installation.js.map +1 -0
  256. package/dist/src/machine-command-executor.d.ts +28 -0
  257. package/dist/src/machine-command-executor.d.ts.map +1 -0
  258. package/dist/src/machine-command-executor.js +166 -0
  259. package/dist/src/machine-command-executor.js.map +1 -0
  260. package/dist/src/pair.d.ts +21 -0
  261. package/dist/src/pair.d.ts.map +1 -0
  262. package/dist/src/pair.js +125 -0
  263. package/dist/src/pair.js.map +1 -0
  264. package/dist/src/remove-machine.d.ts +15 -0
  265. package/dist/src/remove-machine.d.ts.map +1 -0
  266. package/dist/src/remove-machine.js +77 -0
  267. package/dist/src/remove-machine.js.map +1 -0
  268. package/dist/src/stream-client.d.ts +42 -0
  269. package/dist/src/stream-client.d.ts.map +1 -0
  270. package/dist/src/stream-client.js +867 -0
  271. package/dist/src/stream-client.js.map +1 -0
  272. package/dist/src/stream-state.d.ts +13 -0
  273. package/dist/src/stream-state.d.ts.map +1 -0
  274. package/dist/src/stream-state.js +128 -0
  275. package/dist/src/stream-state.js.map +1 -0
  276. package/dist/src/windows-process.d.ts +7 -0
  277. package/dist/src/windows-process.d.ts.map +1 -0
  278. package/dist/src/windows-process.js +17 -0
  279. package/dist/src/windows-process.js.map +1 -0
  280. package/package.json +78 -0
  281. package/scripts/install.mjs +308 -0
  282. package/scripts/managed-service.mjs +132 -0
  283. package/scripts/verify-guardian-release.mjs +42 -0
  284. package/scripts/windows-app-control.mjs +117 -0
@@ -0,0 +1,137 @@
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 { nestedField, objectValue, stringField, } from "../record.js";
5
+ class OpenCodeActivityAdapter {
6
+ id = "opencode";
7
+ agentKind = AgentKind.GENERIC;
8
+ #startedSessions = new Set();
9
+ #messageRoles = new Map();
10
+ parse(record, context) {
11
+ try {
12
+ const object = objectValue(record);
13
+ if (object === null)
14
+ return [];
15
+ const observedContext = {
16
+ ...context,
17
+ observedAt: openCodeObservedAt(object, context.observedAt),
18
+ };
19
+ const type = normalizeOpenCodeType(stringField(object, "type"));
20
+ const part = objectValue(object["part"]);
21
+ this.#rememberMessageRole(objectValue(object["message_info"]), context.sessionId);
22
+ if (type === "message.updated") {
23
+ this.#rememberMessageRole(objectValue(object["info"]), context.sessionId);
24
+ return [];
25
+ }
26
+ const partType = normalizeOpenCodeType(stringField(part, "type"));
27
+ const normalizedType = type === "message.part.updated"
28
+ ? partType
29
+ : type;
30
+ if (normalizedType === "step_start") {
31
+ if (this.#startedSessions.has(context.sessionId))
32
+ return [];
33
+ this.#rememberStarted(context.sessionId);
34
+ return [lifecycleDraft(this.agentKind, observedContext, LifecyclePhase.STARTED, "OpenCode task started.")];
35
+ }
36
+ if (normalizedType === "step_finish") {
37
+ const reason = stringField(part, "reason");
38
+ if (reason !== "stop")
39
+ return [];
40
+ this.#startedSessions.delete(context.sessionId);
41
+ return [lifecycleDraft(this.agentKind, observedContext, LifecyclePhase.IDLE, "OpenCode task completed.")];
42
+ }
43
+ if (normalizedType === "text" && part !== null) {
44
+ if (stringField(part, "text").trim() === "") {
45
+ // OpenCode emits an empty text-part update before the completed
46
+ // text update. Keep the native event, but do not invent an empty
47
+ // chat bubble from an incomplete streaming part.
48
+ return [];
49
+ }
50
+ const messageID = stringField(part, "messageID") ||
51
+ stringField(part, "messageId");
52
+ const messageRole = this.#messageRoles.get(`${context.sessionId}\u0000${messageID}`);
53
+ if (type === "message.part.updated" && messageRole === "user") {
54
+ return [activityDraft(this.agentKind, observedContext, ActivityKind.PROMPT, "User prompt submitted.", part["text"], "promptContent", "text")];
55
+ }
56
+ if (type === "message.part.updated" &&
57
+ (messageRole === undefined || messageRole === "conflict")) {
58
+ // A text part without a stable provider-reported message role is
59
+ // preserved as vendor evidence but never guessed into a speaker.
60
+ return [];
61
+ }
62
+ return [activityDraft(this.agentKind, observedContext, ActivityKind.RESPONSE, "Agent response produced.", part["text"], "responseContent", "text")];
63
+ }
64
+ if ((normalizedType === "tool_use" || normalizedType === "tool") &&
65
+ part !== null) {
66
+ const state = objectValue(part["state"]);
67
+ const status = stringField(state, "status");
68
+ return toolDrafts(this.agentKind, observedContext, {
69
+ invocationId: part["callID"],
70
+ toolName: part["tool"],
71
+ phase: openCodeToolPhase(status),
72
+ arguments: state?.["input"],
73
+ output: state?.["output"],
74
+ exitCode: nestedField(state, "metadata", "exitCode"),
75
+ });
76
+ }
77
+ if (/error|failed|crash/iu.test(normalizedType)) {
78
+ return [errorDraft(this.agentKind, observedContext, normalizedType)];
79
+ }
80
+ return [];
81
+ }
82
+ catch {
83
+ return [errorDraft(this.agentKind, context, "malformed_record")];
84
+ }
85
+ }
86
+ #rememberStarted(sessionId) {
87
+ this.#startedSessions.add(sessionId);
88
+ if (this.#startedSessions.size <= 4_096)
89
+ return;
90
+ const oldest = this.#startedSessions.values().next().value;
91
+ if (typeof oldest === "string")
92
+ this.#startedSessions.delete(oldest);
93
+ }
94
+ #rememberMessageRole(info, sessionID) {
95
+ if (info === null)
96
+ return;
97
+ const messageID = stringField(info, "id");
98
+ const role = stringField(info, "role");
99
+ if (messageID === "" ||
100
+ (role !== "user" && role !== "assistant"))
101
+ return;
102
+ const key = `${sessionID}\u0000${messageID}`;
103
+ const current = this.#messageRoles.get(key);
104
+ this.#messageRoles.set(key, current === undefined || current === role ? role : "conflict");
105
+ if (this.#messageRoles.size <= 8_192)
106
+ return;
107
+ const oldest = this.#messageRoles.keys().next().value;
108
+ if (typeof oldest === "string")
109
+ this.#messageRoles.delete(oldest);
110
+ }
111
+ }
112
+ function normalizeOpenCodeType(value) {
113
+ return value
114
+ .replace(/\.\d+$/u, "")
115
+ .replace(/-/gu, "_");
116
+ }
117
+ function openCodeObservedAt(object, fallback) {
118
+ const timestamp = object["timestamp"];
119
+ if (typeof timestamp !== "number" || !Number.isFinite(timestamp)) {
120
+ return fallback;
121
+ }
122
+ const parsed = new Date(timestamp);
123
+ return Number.isNaN(parsed.getTime()) ? fallback : parsed;
124
+ }
125
+ function openCodeToolPhase(status) {
126
+ if (status === "completed")
127
+ return ToolPhase.SUCCEEDED;
128
+ if (status === "error" || status === "failed")
129
+ return ToolPhase.FAILED;
130
+ if (status === "cancelled")
131
+ return ToolPhase.CANCELLED;
132
+ if (status === "running")
133
+ return ToolPhase.RUNNING;
134
+ return ToolPhase.REQUESTED;
135
+ }
136
+ export const openCodeActivityAdapter = new OpenCodeActivityAdapter();
137
+ //# sourceMappingURL=opencode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opencode.js","sourceRoot":"","sources":["../../../../src/activity/adapters/opencode.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export type ActivityBridgeAgent = Readonly<{
2
+ id: string;
3
+ displayName: string;
4
+ }>;
5
+ export declare const activityBridgeAgents: readonly ActivityBridgeAgent[];
6
+ export declare function activityBridgeAgent(id: string): ActivityBridgeAgent | undefined;
7
+ //# sourceMappingURL=bridges.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bridges.d.ts","sourceRoot":"","sources":["../../../src/activity/bridges.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,mBAAmB,GAAG,QAAQ,CAAC;IACzC,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC,CAAC;AAEH,eAAO,MAAM,oBAAoB,EAAE,SAAS,mBAAmB,EAa3D,CAAC;AAEL,wBAAgB,mBAAmB,CACjC,EAAE,EAAE,MAAM,GACT,mBAAmB,GAAG,SAAS,CAEjC"}
@@ -0,0 +1,17 @@
1
+ export const activityBridgeAgents = Object.freeze([
2
+ { id: "generic", displayName: "Generic AI agent" },
3
+ { id: "aider", displayName: "Aider" },
4
+ { id: "amp", displayName: "Amp" },
5
+ { id: "cursor", displayName: "Cursor Agent" },
6
+ { id: "gemini", displayName: "Gemini CLI" },
7
+ { id: "opencode", displayName: "OpenCode" },
8
+ { id: "goose", displayName: "Goose" },
9
+ { id: "amazon-q", displayName: "Amazon Q Developer CLI" },
10
+ { id: "openhands", displayName: "OpenHands" },
11
+ { id: "cline", displayName: "Cline" },
12
+ { id: "continue", displayName: "Continue" },
13
+ ]);
14
+ export function activityBridgeAgent(id) {
15
+ return activityBridgeAgents.find((agent) => agent.id === id);
16
+ }
17
+ //# sourceMappingURL=bridges.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bridges.js","sourceRoot":"","sources":["../../../src/activity/bridges.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,MAAM,oBAAoB,GAC/B,MAAM,CAAC,MAAM,CAAC;IACZ,EAAE,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,kBAAkB,EAAE;IAClD,EAAE,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE;IACrC,EAAE,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE;IACjC,EAAE,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE;IAC7C,EAAE,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE;IAC3C,EAAE,EAAE,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE;IAC3C,EAAE,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE;IACrC,EAAE,EAAE,EAAE,UAAU,EAAE,WAAW,EAAE,wBAAwB,EAAE;IACzD,EAAE,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE;IAC7C,EAAE,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE;IACrC,EAAE,EAAE,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE;CAC5C,CAAC,CAAC;AAEL,MAAM,UAAU,mBAAmB,CACjC,EAAU;IAEV,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AAC/D,CAAC"}
@@ -0,0 +1,90 @@
1
+ import type { ObserverConfig } from "../config.js";
2
+ import type { CollectionPolicy } from "../config.js";
3
+ import type { StoredMachineCredential } from "../credential-store.js";
4
+ import { type AgentIdentity, type AgentInventory } from "../generated/phigon/v1/identity_pb.js";
5
+ import { type EventEnvelope } from "../generated/phigon/v1/telemetry_pb.js";
6
+ import { JSONLSourceReader, type ActivitySource } from "./source-reader.js";
7
+ export declare const historySyncQueueHeadroom = 1024;
8
+ export type ActivityCollectorMetrics = Readonly<{
9
+ sourceRecords: number;
10
+ malformedRecords: number;
11
+ oversizedRecords: number;
12
+ emittedEvents: number;
13
+ rateLimitedEvents: number;
14
+ oversizedEvents: number;
15
+ lastSequence: bigint;
16
+ pendingCheckpoints: number;
17
+ backpressuredScans: number;
18
+ }>;
19
+ export type HistorySyncSummary = Readonly<{
20
+ filesDiscovered: number;
21
+ recordsScanned: number;
22
+ eventsUploaded: number;
23
+ throughSequence: bigint;
24
+ }>;
25
+ export type ActivityCollectorOptions = Readonly<{
26
+ config: ObserverConfig;
27
+ credential: StoredMachineCredential;
28
+ initialSequence: bigint;
29
+ initialAcknowledgedSequence?: bigint;
30
+ durableDelivery?: boolean;
31
+ emit: (event: EventEnvelope) => void;
32
+ sources?: readonly ActivitySource[];
33
+ additionalSources?: () => Promise<readonly ActivitySource[]>;
34
+ reader?: JSONLSourceReader;
35
+ clock?: () => Date;
36
+ policy?: CollectionPolicy;
37
+ canCollect?: () => boolean;
38
+ canSyncHistory?: () => boolean;
39
+ onSourceIdentity?: (identity: AgentIdentity) => void | Promise<void>;
40
+ }>;
41
+ export declare class ActivityCollector {
42
+ #private;
43
+ constructor(options: ActivityCollectorOptions);
44
+ updateInventory(inventory: AgentInventory): void;
45
+ updatePolicy(policy: CollectionPolicy): void;
46
+ resetSequence(acknowledgedSequence: bigint, allocationSequence?: bigint): void;
47
+ acknowledge(sequence: bigint): Promise<void>;
48
+ scanOnce(): Promise<ActivityCollectorMetrics>;
49
+ syncHistory(signal?: AbortSignal): Promise<HistorySyncSummary>;
50
+ run(signal: AbortSignal): Promise<void>;
51
+ metrics(): ActivityCollectorMetrics;
52
+ sourceIdentities(): AgentIdentity[];
53
+ }
54
+ export declare function mergeInventoryWithSourceIdentities(inventory: AgentInventory, sourceIdentities: readonly AgentIdentity[]): AgentInventory;
55
+ export declare function attributedRuntimeAgentID(agents: readonly AgentIdentity[], record: unknown): string | undefined;
56
+ export type ReportedProcessIdentity = Readonly<{
57
+ processKey?: string;
58
+ processID?: bigint;
59
+ conflict: boolean;
60
+ coverageComplete: boolean;
61
+ }>;
62
+ /**
63
+ * Keeps agent-native process claims independent from inventory/OS evidence.
64
+ * A PID can reject a contradictory match, but can never create one.
65
+ */
66
+ export declare function reportedProcessIdentity(record: unknown): ReportedProcessIdentity;
67
+ /**
68
+ * Uses a provider-reported session only on adapters whose records carry that
69
+ * identity per event. Missing, invalid, or conflicting claims fail closed to
70
+ * the source-file identity so concurrent transcripts are never guessed into
71
+ * one conversation.
72
+ */
73
+ export declare function reportedSessionID(adapterID: string, record: unknown, sourceID: string): string;
74
+ export type ReportedGenericAgentIdentity = Readonly<{
75
+ hint?: string;
76
+ displayName?: string;
77
+ conflict: boolean;
78
+ coverageComplete: boolean;
79
+ }>;
80
+ /**
81
+ * Keeps user-provided custom bridge identity independent from vendor claims.
82
+ * A single consistent label can name an unattributed source, while conflicts,
83
+ * invalid claims, and missing evidence always fail closed.
84
+ */
85
+ export declare function reportedGenericAgentIdentity(record: unknown, configuredDisplayName?: string): ReportedGenericAgentIdentity;
86
+ export declare function registeredAgentActivitySources(registrations: readonly Readonly<{
87
+ displayName: string;
88
+ activityDirectories: readonly string[];
89
+ }>[]): readonly ActivitySource[];
90
+ //# sourceMappingURL=collector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collector.d.ts","sourceRoot":"","sources":["../../../src/activity/collector.ts"],"names":[],"mappings":"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"}