@phigon/observer 8.0.2 → 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 (375) hide show
  1. package/LICENSE +202 -0
  2. package/NOTICE +8 -0
  3. package/README.md +376 -303
  4. package/THIRD_PARTY_NOTICES.md +610 -0
  5. package/dist/bin/guardian-runner-darwin-amd64 +0 -0
  6. package/dist/bin/guardian-runner-darwin-arm64 +0 -0
  7. package/dist/bin/guardian-runner-linux-amd64 +0 -0
  8. package/dist/bin/guardian-runner-linux-arm64 +0 -0
  9. package/dist/bin/guardian-runner-windows-amd64.exe +0 -0
  10. package/dist/bin/guardian-runner-windows-arm64.exe +0 -0
  11. package/dist/src/action-policy.d.ts +0 -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 +0 -0
  16. package/dist/src/activity/adapters/claude.d.ts.map +1 -1
  17. package/dist/src/activity/adapters/claude.js +19 -1
  18. package/dist/src/activity/adapters/claude.js.map +1 -1
  19. package/dist/src/activity/adapters/cline-task.d.ts +7 -0
  20. package/dist/src/activity/adapters/cline-task.d.ts.map +1 -0
  21. package/dist/src/activity/adapters/cline-task.js +197 -0
  22. package/dist/src/activity/adapters/cline-task.js.map +1 -0
  23. package/dist/src/activity/adapters/cline.d.ts +3 -0
  24. package/dist/src/activity/adapters/cline.d.ts.map +1 -0
  25. package/dist/src/activity/adapters/cline.js +102 -0
  26. package/dist/src/activity/adapters/cline.js.map +1 -0
  27. package/dist/src/activity/adapters/codex.d.ts +0 -0
  28. package/dist/src/activity/adapters/codex.d.ts.map +1 -1
  29. package/dist/src/activity/adapters/codex.js +76 -0
  30. package/dist/src/activity/adapters/codex.js.map +1 -1
  31. package/dist/src/activity/adapters/copilot-chat.d.ts +3 -0
  32. package/dist/src/activity/adapters/copilot-chat.d.ts.map +1 -0
  33. package/dist/src/activity/adapters/copilot-chat.js +176 -0
  34. package/dist/src/activity/adapters/copilot-chat.js.map +1 -0
  35. package/dist/src/activity/adapters/copilot.d.ts +2 -1
  36. package/dist/src/activity/adapters/copilot.d.ts.map +1 -1
  37. package/dist/src/activity/adapters/copilot.js +173 -2
  38. package/dist/src/activity/adapters/copilot.js.map +1 -1
  39. package/dist/src/activity/adapters/cursor.d.ts +3 -0
  40. package/dist/src/activity/adapters/cursor.d.ts.map +1 -0
  41. package/dist/src/activity/adapters/cursor.js +86 -0
  42. package/dist/src/activity/adapters/cursor.js.map +1 -0
  43. package/dist/src/activity/adapters/factory-droid.d.ts +3 -0
  44. package/dist/src/activity/adapters/factory-droid.d.ts.map +1 -0
  45. package/dist/src/activity/adapters/factory-droid.js +126 -0
  46. package/dist/src/activity/adapters/factory-droid.js.map +1 -0
  47. package/dist/src/activity/adapters/gemini.d.ts +3 -0
  48. package/dist/src/activity/adapters/gemini.d.ts.map +1 -0
  49. package/dist/src/activity/adapters/gemini.js +177 -0
  50. package/dist/src/activity/adapters/gemini.js.map +1 -0
  51. package/dist/src/activity/adapters/generic.d.ts +0 -0
  52. package/dist/src/activity/adapters/generic.d.ts.map +0 -0
  53. package/dist/src/activity/adapters/generic.js +0 -0
  54. package/dist/src/activity/adapters/generic.js.map +0 -0
  55. package/dist/src/activity/adapters/goose.d.ts +3 -0
  56. package/dist/src/activity/adapters/goose.d.ts.map +1 -0
  57. package/dist/src/activity/adapters/goose.js +116 -0
  58. package/dist/src/activity/adapters/goose.js.map +1 -0
  59. package/dist/src/activity/adapters/hermes.d.ts +0 -0
  60. package/dist/src/activity/adapters/hermes.d.ts.map +0 -0
  61. package/dist/src/activity/adapters/hermes.js +0 -0
  62. package/dist/src/activity/adapters/hermes.js.map +0 -0
  63. package/dist/src/activity/adapters/kiro.d.ts +3 -0
  64. package/dist/src/activity/adapters/kiro.d.ts.map +1 -0
  65. package/dist/src/activity/adapters/kiro.js +47 -0
  66. package/dist/src/activity/adapters/kiro.js.map +1 -0
  67. package/dist/src/activity/adapters/openai-compatible.d.ts +0 -0
  68. package/dist/src/activity/adapters/openai-compatible.d.ts.map +0 -0
  69. package/dist/src/activity/adapters/openai-compatible.js +0 -0
  70. package/dist/src/activity/adapters/openai-compatible.js.map +0 -0
  71. package/dist/src/activity/adapters/openclaw.d.ts +0 -0
  72. package/dist/src/activity/adapters/openclaw.d.ts.map +0 -0
  73. package/dist/src/activity/adapters/openclaw.js +0 -0
  74. package/dist/src/activity/adapters/openclaw.js.map +0 -0
  75. package/dist/src/activity/adapters/opencode.d.ts +0 -0
  76. package/dist/src/activity/adapters/opencode.d.ts.map +1 -1
  77. package/dist/src/activity/adapters/opencode.js +108 -1
  78. package/dist/src/activity/adapters/opencode.js.map +1 -1
  79. package/dist/src/activity/adapters/zed.d.ts +3 -0
  80. package/dist/src/activity/adapters/zed.d.ts.map +1 -0
  81. package/dist/src/activity/adapters/zed.js +134 -0
  82. package/dist/src/activity/adapters/zed.js.map +1 -0
  83. package/dist/src/activity/bridges.d.ts +0 -0
  84. package/dist/src/activity/bridges.d.ts.map +0 -0
  85. package/dist/src/activity/bridges.js +0 -0
  86. package/dist/src/activity/bridges.js.map +0 -0
  87. package/dist/src/activity/collector.d.ts +12 -0
  88. package/dist/src/activity/collector.d.ts.map +1 -1
  89. package/dist/src/activity/collector.js +156 -3
  90. package/dist/src/activity/collector.js.map +1 -1
  91. package/dist/src/activity/goose-sqlite-source.d.ts +33 -0
  92. package/dist/src/activity/goose-sqlite-source.d.ts.map +1 -0
  93. package/dist/src/activity/goose-sqlite-source.js +274 -0
  94. package/dist/src/activity/goose-sqlite-source.js.map +1 -0
  95. package/dist/src/activity/index.d.ts +3 -0
  96. package/dist/src/activity/index.d.ts.map +1 -1
  97. package/dist/src/activity/index.js +3 -0
  98. package/dist/src/activity/index.js.map +1 -1
  99. package/dist/src/activity/ingest.d.ts +0 -0
  100. package/dist/src/activity/ingest.d.ts.map +1 -1
  101. package/dist/src/activity/ingest.js +2 -1
  102. package/dist/src/activity/ingest.js.map +1 -1
  103. package/dist/src/activity/json-document-source.d.ts +136 -0
  104. package/dist/src/activity/json-document-source.d.ts.map +1 -0
  105. package/dist/src/activity/json-document-source.js +569 -0
  106. package/dist/src/activity/json-document-source.js.map +1 -0
  107. package/dist/src/activity/native-capabilities.d.ts +0 -0
  108. package/dist/src/activity/native-capabilities.d.ts.map +0 -0
  109. package/dist/src/activity/native-capabilities.js +0 -0
  110. package/dist/src/activity/native-capabilities.js.map +0 -0
  111. package/dist/src/activity/normalize.d.ts +0 -0
  112. package/dist/src/activity/normalize.d.ts.map +1 -1
  113. package/dist/src/activity/normalize.js +64 -6
  114. package/dist/src/activity/normalize.js.map +1 -1
  115. package/dist/src/activity/opencode-message-tables.d.ts +87 -0
  116. package/dist/src/activity/opencode-message-tables.d.ts.map +1 -0
  117. package/dist/src/activity/opencode-message-tables.js +546 -0
  118. package/dist/src/activity/opencode-message-tables.js.map +1 -0
  119. package/dist/src/activity/opencode-sqlite-source.d.ts +7 -0
  120. package/dist/src/activity/opencode-sqlite-source.d.ts.map +1 -1
  121. package/dist/src/activity/opencode-sqlite-source.js +153 -63
  122. package/dist/src/activity/opencode-sqlite-source.js.map +1 -1
  123. package/dist/src/activity/policy.d.ts +0 -0
  124. package/dist/src/activity/policy.d.ts.map +1 -1
  125. package/dist/src/activity/policy.js +2 -13
  126. package/dist/src/activity/policy.js.map +1 -1
  127. package/dist/src/activity/record.d.ts +0 -0
  128. package/dist/src/activity/record.d.ts.map +0 -0
  129. package/dist/src/activity/record.js +0 -0
  130. package/dist/src/activity/record.js.map +0 -0
  131. package/dist/src/activity/source-reader.d.ts +16 -1
  132. package/dist/src/activity/source-reader.d.ts.map +1 -1
  133. package/dist/src/activity/source-reader.js +308 -29
  134. package/dist/src/activity/source-reader.js.map +1 -1
  135. package/dist/src/activity/sqlite-connections.d.ts +77 -0
  136. package/dist/src/activity/sqlite-connections.d.ts.map +1 -0
  137. package/dist/src/activity/sqlite-connections.js +220 -0
  138. package/dist/src/activity/sqlite-connections.js.map +1 -0
  139. package/dist/src/activity/types.d.ts +0 -0
  140. package/dist/src/activity/types.d.ts.map +0 -0
  141. package/dist/src/activity/types.js +0 -0
  142. package/dist/src/activity/types.js.map +0 -0
  143. package/dist/src/activity/zed-sqlite-source.d.ts +65 -0
  144. package/dist/src/activity/zed-sqlite-source.d.ts.map +1 -0
  145. package/dist/src/activity/zed-sqlite-source.js +547 -0
  146. package/dist/src/activity/zed-sqlite-source.js.map +1 -0
  147. package/dist/src/agent-action-executor.d.ts +14 -1
  148. package/dist/src/agent-action-executor.d.ts.map +1 -1
  149. package/dist/src/agent-action-executor.js +114 -57
  150. package/dist/src/agent-action-executor.js.map +1 -1
  151. package/dist/src/agentic-guardian.d.ts +0 -0
  152. package/dist/src/agentic-guardian.d.ts.map +1 -1
  153. package/dist/src/agentic-guardian.js +6 -5
  154. package/dist/src/agentic-guardian.js.map +1 -1
  155. package/dist/src/atomic-replace.d.ts +0 -0
  156. package/dist/src/atomic-replace.d.ts.map +0 -0
  157. package/dist/src/atomic-replace.js +0 -0
  158. package/dist/src/atomic-replace.js.map +0 -0
  159. package/dist/src/cli.d.ts +0 -0
  160. package/dist/src/cli.d.ts.map +1 -1
  161. package/dist/src/cli.js +96 -13
  162. package/dist/src/cli.js.map +1 -1
  163. package/dist/src/config.d.ts +15 -0
  164. package/dist/src/config.d.ts.map +1 -1
  165. package/dist/src/config.js +105 -4
  166. package/dist/src/config.js.map +1 -1
  167. package/dist/src/connection-config.d.ts +3 -0
  168. package/dist/src/connection-config.d.ts.map +1 -0
  169. package/dist/src/connection-config.js +29 -0
  170. package/dist/src/connection-config.js.map +1 -0
  171. package/dist/src/content-redaction.d.ts +3 -0
  172. package/dist/src/content-redaction.d.ts.map +1 -0
  173. package/dist/src/content-redaction.js +19 -0
  174. package/dist/src/content-redaction.js.map +1 -0
  175. package/dist/src/credential-store.d.ts +1 -0
  176. package/dist/src/credential-store.d.ts.map +1 -1
  177. package/dist/src/credential-store.js +13 -2
  178. package/dist/src/credential-store.js.map +1 -1
  179. package/dist/src/custom-agent-registry.d.ts +0 -0
  180. package/dist/src/custom-agent-registry.d.ts.map +1 -1
  181. package/dist/src/custom-agent-registry.js +2 -1
  182. package/dist/src/custom-agent-registry.js.map +1 -1
  183. package/dist/src/discovery/adapters/claude.d.ts +0 -0
  184. package/dist/src/discovery/adapters/claude.d.ts.map +0 -0
  185. package/dist/src/discovery/adapters/claude.js +0 -0
  186. package/dist/src/discovery/adapters/claude.js.map +0 -0
  187. package/dist/src/discovery/adapters/codex.d.ts +0 -0
  188. package/dist/src/discovery/adapters/codex.d.ts.map +0 -0
  189. package/dist/src/discovery/adapters/codex.js +0 -0
  190. package/dist/src/discovery/adapters/codex.js.map +0 -0
  191. package/dist/src/discovery/adapters/custom.d.ts +0 -0
  192. package/dist/src/discovery/adapters/custom.d.ts.map +0 -0
  193. package/dist/src/discovery/adapters/custom.js +0 -0
  194. package/dist/src/discovery/adapters/custom.js.map +0 -0
  195. package/dist/src/discovery/adapters/generic.d.ts +0 -0
  196. package/dist/src/discovery/adapters/generic.d.ts.map +1 -1
  197. package/dist/src/discovery/adapters/generic.js +160 -2
  198. package/dist/src/discovery/adapters/generic.js.map +1 -1
  199. package/dist/src/discovery/adapters/hermes.d.ts +0 -0
  200. package/dist/src/discovery/adapters/hermes.d.ts.map +0 -0
  201. package/dist/src/discovery/adapters/hermes.js +0 -0
  202. package/dist/src/discovery/adapters/hermes.js.map +0 -0
  203. package/dist/src/discovery/adapters/openclaw.d.ts +0 -0
  204. package/dist/src/discovery/adapters/openclaw.d.ts.map +0 -0
  205. package/dist/src/discovery/adapters/openclaw.js +0 -0
  206. package/dist/src/discovery/adapters/openclaw.js.map +0 -0
  207. package/dist/src/discovery/engine.d.ts +7 -1
  208. package/dist/src/discovery/engine.d.ts.map +1 -1
  209. package/dist/src/discovery/engine.js +20 -5
  210. package/dist/src/discovery/engine.js.map +1 -1
  211. package/dist/src/discovery/evidence.d.ts +0 -0
  212. package/dist/src/discovery/evidence.d.ts.map +0 -0
  213. package/dist/src/discovery/evidence.js +0 -0
  214. package/dist/src/discovery/evidence.js.map +0 -0
  215. package/dist/src/discovery/index.d.ts +0 -0
  216. package/dist/src/discovery/index.d.ts.map +0 -0
  217. package/dist/src/discovery/index.js +0 -0
  218. package/dist/src/discovery/index.js.map +0 -0
  219. package/dist/src/discovery/known-agent.d.ts +7 -0
  220. package/dist/src/discovery/known-agent.d.ts.map +1 -1
  221. package/dist/src/discovery/known-agent.js +9 -4
  222. package/dist/src/discovery/known-agent.js.map +1 -1
  223. package/dist/src/discovery/process-identity.d.ts +0 -0
  224. package/dist/src/discovery/process-identity.d.ts.map +0 -0
  225. package/dist/src/discovery/process-identity.js +0 -0
  226. package/dist/src/discovery/process-identity.js.map +0 -0
  227. package/dist/src/discovery/system-evidence.d.ts +40 -1
  228. package/dist/src/discovery/system-evidence.d.ts.map +1 -1
  229. package/dist/src/discovery/system-evidence.js +189 -16
  230. package/dist/src/discovery/system-evidence.js.map +1 -1
  231. package/dist/src/discovery/types.d.ts +0 -0
  232. package/dist/src/discovery/types.d.ts.map +0 -0
  233. package/dist/src/discovery/types.js +0 -0
  234. package/dist/src/discovery/types.js.map +0 -0
  235. package/dist/src/event-queue.d.ts +0 -0
  236. package/dist/src/event-queue.d.ts.map +1 -1
  237. package/dist/src/event-queue.js +88 -38
  238. package/dist/src/event-queue.js.map +1 -1
  239. package/dist/src/event-spool.d.ts +0 -0
  240. package/dist/src/event-spool.d.ts.map +1 -1
  241. package/dist/src/event-spool.js +58 -10
  242. package/dist/src/event-spool.js.map +1 -1
  243. package/dist/src/generated/phigon/v1/action_pb.d.ts +0 -0
  244. package/dist/src/generated/phigon/v1/action_pb.d.ts.map +1 -1
  245. package/dist/src/generated/phigon/v1/action_pb.js +1 -1
  246. package/dist/src/generated/phigon/v1/action_pb.js.map +1 -1
  247. package/dist/src/generated/phigon/v1/common_pb.d.ts +0 -0
  248. package/dist/src/generated/phigon/v1/common_pb.d.ts.map +1 -1
  249. package/dist/src/generated/phigon/v1/common_pb.js +1 -1
  250. package/dist/src/generated/phigon/v1/common_pb.js.map +1 -1
  251. package/dist/src/generated/phigon/v1/history_sync_pb.d.ts +0 -0
  252. package/dist/src/generated/phigon/v1/history_sync_pb.d.ts.map +1 -1
  253. package/dist/src/generated/phigon/v1/history_sync_pb.js +1 -1
  254. package/dist/src/generated/phigon/v1/history_sync_pb.js.map +1 -1
  255. package/dist/src/generated/phigon/v1/identity_pb.d.ts +0 -0
  256. package/dist/src/generated/phigon/v1/identity_pb.d.ts.map +1 -1
  257. package/dist/src/generated/phigon/v1/identity_pb.js +1 -1
  258. package/dist/src/generated/phigon/v1/identity_pb.js.map +1 -1
  259. package/dist/src/generated/phigon/v1/observer_service_pb.d.ts +0 -0
  260. package/dist/src/generated/phigon/v1/observer_service_pb.d.ts.map +1 -1
  261. package/dist/src/generated/phigon/v1/observer_service_pb.js +1 -1
  262. package/dist/src/generated/phigon/v1/observer_service_pb.js.map +1 -1
  263. package/dist/src/generated/phigon/v1/policy_pb.d.ts +0 -0
  264. package/dist/src/generated/phigon/v1/policy_pb.d.ts.map +1 -1
  265. package/dist/src/generated/phigon/v1/policy_pb.js +1 -1
  266. package/dist/src/generated/phigon/v1/policy_pb.js.map +1 -1
  267. package/dist/src/generated/phigon/v1/supervision_pb.d.ts +0 -0
  268. package/dist/src/generated/phigon/v1/supervision_pb.d.ts.map +1 -1
  269. package/dist/src/generated/phigon/v1/supervision_pb.js +1 -1
  270. package/dist/src/generated/phigon/v1/supervision_pb.js.map +1 -1
  271. package/dist/src/generated/phigon/v1/telemetry_pb.d.ts +0 -0
  272. package/dist/src/generated/phigon/v1/telemetry_pb.d.ts.map +1 -1
  273. package/dist/src/generated/phigon/v1/telemetry_pb.js +1 -1
  274. package/dist/src/generated/phigon/v1/telemetry_pb.js.map +1 -1
  275. package/dist/src/guardian-containment.d.ts +2 -6
  276. package/dist/src/guardian-containment.d.ts.map +1 -1
  277. package/dist/src/guardian-containment.js +12 -63
  278. package/dist/src/guardian-containment.js.map +1 -1
  279. package/dist/src/guardian-decision-journal.d.ts +0 -0
  280. package/dist/src/guardian-decision-journal.d.ts.map +1 -1
  281. package/dist/src/guardian-decision-journal.js +2 -1
  282. package/dist/src/guardian-decision-journal.js.map +1 -1
  283. package/dist/src/guardian-execution-manifest.d.ts +0 -0
  284. package/dist/src/guardian-execution-manifest.d.ts.map +0 -0
  285. package/dist/src/guardian-execution-manifest.js +0 -0
  286. package/dist/src/guardian-execution-manifest.js.map +0 -0
  287. package/dist/src/guardian-hosted-client.d.ts +0 -0
  288. package/dist/src/guardian-hosted-client.d.ts.map +0 -0
  289. package/dist/src/guardian-hosted-client.js +0 -0
  290. package/dist/src/guardian-hosted-client.js.map +0 -0
  291. package/dist/src/guardian-managed-exec.d.ts +0 -0
  292. package/dist/src/guardian-managed-exec.d.ts.map +1 -1
  293. package/dist/src/guardian-managed-exec.js +2 -1
  294. package/dist/src/guardian-managed-exec.js.map +1 -1
  295. package/dist/src/guardian-model-bridge.d.ts +0 -0
  296. package/dist/src/guardian-model-bridge.d.ts.map +1 -1
  297. package/dist/src/guardian-model-bridge.js +2 -1
  298. package/dist/src/guardian-model-bridge.js.map +1 -1
  299. package/dist/src/guardian-native.d.ts +0 -1
  300. package/dist/src/guardian-native.d.ts.map +1 -1
  301. package/dist/src/guardian-native.js +0 -6
  302. package/dist/src/guardian-native.js.map +1 -1
  303. package/dist/src/guardian-process-monitor.d.ts +6 -1
  304. package/dist/src/guardian-process-monitor.d.ts.map +1 -1
  305. package/dist/src/guardian-process-monitor.js +64 -8
  306. package/dist/src/guardian-process-monitor.js.map +1 -1
  307. package/dist/src/health.d.ts +0 -0
  308. package/dist/src/health.d.ts.map +0 -0
  309. package/dist/src/health.js +0 -0
  310. package/dist/src/health.js.map +0 -0
  311. package/dist/src/historical-identity-store.d.ts +0 -0
  312. package/dist/src/historical-identity-store.d.ts.map +1 -1
  313. package/dist/src/historical-identity-store.js +2 -1
  314. package/dist/src/historical-identity-store.js.map +1 -1
  315. package/dist/src/index.d.ts +0 -0
  316. package/dist/src/index.d.ts.map +0 -0
  317. package/dist/src/index.js +0 -0
  318. package/dist/src/index.js.map +0 -0
  319. package/dist/src/installation.d.ts +0 -0
  320. package/dist/src/installation.d.ts.map +1 -1
  321. package/dist/src/installation.js +3 -2
  322. package/dist/src/installation.js.map +1 -1
  323. package/dist/src/machine-command-executor.d.ts +26 -7
  324. package/dist/src/machine-command-executor.d.ts.map +1 -1
  325. package/dist/src/machine-command-executor.js +123 -21
  326. package/dist/src/machine-command-executor.js.map +1 -1
  327. package/dist/src/pair.d.ts +0 -0
  328. package/dist/src/pair.d.ts.map +1 -1
  329. package/dist/src/pair.js +13 -3
  330. package/dist/src/pair.js.map +1 -1
  331. package/dist/src/private-directory.d.ts +4 -0
  332. package/dist/src/private-directory.d.ts.map +1 -0
  333. package/dist/src/private-directory.js +35 -0
  334. package/dist/src/private-directory.js.map +1 -0
  335. package/dist/src/process-tree.d.ts +73 -0
  336. package/dist/src/process-tree.d.ts.map +1 -0
  337. package/dist/src/process-tree.js +256 -0
  338. package/dist/src/process-tree.js.map +1 -0
  339. package/dist/src/remove-machine.d.ts +0 -0
  340. package/dist/src/remove-machine.d.ts.map +0 -0
  341. package/dist/src/remove-machine.js +0 -0
  342. package/dist/src/remove-machine.js.map +0 -0
  343. package/dist/src/server-authority.d.ts +26 -0
  344. package/dist/src/server-authority.d.ts.map +1 -0
  345. package/dist/src/server-authority.js +102 -0
  346. package/dist/src/server-authority.js.map +1 -0
  347. package/dist/src/stream-client.d.ts +6 -2
  348. package/dist/src/stream-client.d.ts.map +1 -1
  349. package/dist/src/stream-client.js +95 -16
  350. package/dist/src/stream-client.js.map +1 -1
  351. package/dist/src/stream-state.d.ts +0 -0
  352. package/dist/src/stream-state.d.ts.map +1 -1
  353. package/dist/src/stream-state.js +2 -1
  354. package/dist/src/stream-state.js.map +1 -1
  355. package/dist/src/system-inspection.d.ts +78 -0
  356. package/dist/src/system-inspection.d.ts.map +1 -0
  357. package/dist/src/system-inspection.js +281 -0
  358. package/dist/src/system-inspection.js.map +1 -0
  359. package/dist/src/update.d.ts +15 -0
  360. package/dist/src/update.d.ts.map +1 -0
  361. package/dist/src/update.js +93 -0
  362. package/dist/src/update.js.map +1 -0
  363. package/dist/src/user-notices.d.ts +53 -0
  364. package/dist/src/user-notices.d.ts.map +1 -0
  365. package/dist/src/user-notices.js +117 -0
  366. package/dist/src/user-notices.js.map +1 -0
  367. package/package.json +83 -78
  368. package/scripts/install.mjs +306 -306
  369. package/scripts/managed-service.mjs +0 -0
  370. package/scripts/verify-guardian-release.mjs +0 -0
  371. package/scripts/windows-app-control.mjs +0 -0
  372. package/dist/src/windows-process.d.ts +0 -7
  373. package/dist/src/windows-process.d.ts.map +0 -1
  374. package/dist/src/windows-process.js +0 -18
  375. package/dist/src/windows-process.js.map +0 -1
@@ -1,16 +1,58 @@
1
+ import { makeDirectoryPrivate } from "../private-directory.js";
1
2
  import { createHash, randomUUID } from "node:crypto";
2
3
  import { chmod, mkdir, open, readFile, readdir, realpath, stat, unlink, writeFile, } from "node:fs/promises";
3
4
  import { homedir } from "node:os";
4
5
  import { basename, join, relative, resolve, sep } from "node:path";
5
6
  import { atomicReplace } from "../atomic-replace.js";
7
+ import { DirectoryListingCache, scanJSONDocumentSource, } from "./json-document-source.js";
8
+ import { SQLiteConnections } from "./sqlite-connections.js";
6
9
  const maxSourceFiles = 256;
7
10
  const historicalFilesPerScan = 16;
8
11
  const historicalRecordsPerScan = 4;
9
12
  const maxDirectoryDepth = 8;
10
13
  const maxReadBytesPerFile = 8 << 20;
11
14
  const defaultInitialReplayBytes = 256 << 10;
12
- const maxLineBytes = 1 << 20;
15
+ // Normal read window. A longer complete record widens the read up to the line
16
+ // limit; the line limit stays below the per-file read limit.
17
+ const readWindowBytes = 1 << 20;
18
+ const maxLineBytes = 6 << 20;
13
19
  const maxCursorEntries = 16_384;
20
+ /**
21
+ * Source cursors in least-recently-used order, so a full store evicts the
22
+ * cursors of sessions nobody reads any more instead of live ones (an
23
+ * evicted live cursor is re-baselined after a restart, which skips what
24
+ * was written while the observer was stopped). Reads are only recorded and
25
+ * applied by `settle`, so iterating the map never observes reordering.
26
+ */
27
+ class RecentCursors extends Map {
28
+ #used = new Set();
29
+ get(key) {
30
+ const value = super.get(key);
31
+ if (value !== undefined)
32
+ this.#used.add(key);
33
+ return value;
34
+ }
35
+ set(key, value) {
36
+ super.delete(key);
37
+ return super.set(key, value);
38
+ }
39
+ /** Move cursors read since the last call to the recent end, then bound. */
40
+ settle(limit) {
41
+ for (const key of this.#used) {
42
+ const value = super.get(key);
43
+ if (value === undefined)
44
+ continue;
45
+ super.delete(key);
46
+ super.set(key, value);
47
+ }
48
+ this.#used.clear();
49
+ for (const key of super.keys()) {
50
+ if (this.size <= limit)
51
+ break;
52
+ super.delete(key);
53
+ }
54
+ }
55
+ }
14
56
  export class ActivityCursorStore {
15
57
  #dataDirectory;
16
58
  #path;
@@ -53,7 +95,8 @@ export class ActivityCursorStore {
53
95
  value.files === null) {
54
96
  throw new Error("Activity cursor state is invalid.");
55
97
  }
56
- const entries = Object.entries(value.files).slice(0, maxCursorEntries);
98
+ // Saved oldest-first (see save); keep the most recently used cursors.
99
+ const entries = Object.entries(value.files).slice(-maxCursorEntries);
57
100
  const result = new Map();
58
101
  for (const [key, offset] of entries) {
59
102
  if (/^[a-f0-9]{64}$/u.test(key) &&
@@ -67,10 +110,10 @@ export class ActivityCursorStore {
67
110
  }
68
111
  async save(cursors) {
69
112
  await mkdir(this.#dataDirectory, { recursive: true, mode: 0o700 });
70
- await chmod(this.#dataDirectory, 0o700);
71
- const files = Object.fromEntries([...cursors.entries()]
72
- .slice(-maxCursorEntries)
73
- .sort(([left], [right]) => left.localeCompare(right)));
113
+ await makeDirectoryPrivate(this.#dataDirectory);
114
+ // Keep the map's order (least recently used first) so a restarted
115
+ // reader still knows which cursors are stale.
116
+ const files = Object.fromEntries([...cursors.entries()].slice(-maxCursorEntries));
74
117
  const state = { version: 1, files };
75
118
  const temporary = `${this.#path}.${process.pid}.${randomUUID()}.tmp`;
76
119
  try {
@@ -101,11 +144,29 @@ export class JSONLSourceReader {
101
144
  #initialReplaySessions;
102
145
  #mode;
103
146
  #cursors;
147
+ // The cursor state that is already durable. An idle scan produces an
148
+ // identical checkpoint every tick; rewriting and flushing it would cost a
149
+ // synchronous disk write per scan interval without changing anything.
150
+ #savedCursors;
104
151
  #initialScanComplete = false;
105
152
  #generation = 0;
106
153
  #committedGeneration = 0;
107
154
  #sourceCache;
155
+ // Canonical paths from the previous listing, keyed by resolved root and
156
+ // listed path. Holds only files seen in the latest listing.
157
+ #canonicalPaths = new Map();
108
158
  #completedHistoryFiles = new Map();
159
+ #completedHistoryDatabases = new Map();
160
+ // Cursors that stopped inside a record above the line limit. The next read
161
+ // skips to that record's end instead of parsing its tail as a new record.
162
+ #oversizedContinuations = new Set();
163
+ // Live database connections kept between scans, so an unchanged database
164
+ // is recognized without reopening it and rerunning every session query.
165
+ #openCodeConnections = new SQLiteConnections();
166
+ // Folder listings for JSON-document agents, reused while folders are unchanged.
167
+ #documentListings = new DirectoryListingCache();
168
+ #gooseConnections = new SQLiteConnections();
169
+ #zedConnections = new SQLiteConnections();
109
170
  constructor(dataDirectory, replayOnFirstStart = false, initialReplayBytes = defaultInitialReplayBytes, initialReplaySessions = 1, mode = "live") {
110
171
  this.#cursorStore = new ActivityCursorStore(dataDirectory);
111
172
  this.#replayOnFirstStart = replayOnFirstStart;
@@ -114,7 +175,13 @@ export class JSONLSourceReader {
114
175
  this.#mode = mode;
115
176
  }
116
177
  async scan(sources, maxRecords) {
117
- this.#cursors ??= await this.#cursorStore.load();
178
+ if (this.#cursors === undefined) {
179
+ const loaded = await this.#cursorStore.load();
180
+ this.#cursors = new RecentCursors();
181
+ for (const [key, offset] of loaded)
182
+ this.#cursors.set(key, offset);
183
+ this.#savedCursors = loaded;
184
+ }
118
185
  const records = [];
119
186
  let fileCount = 0;
120
187
  let malformed = 0;
@@ -125,16 +192,39 @@ export class JSONLSourceReader {
125
192
  candidates = this.#sourceCache.files;
126
193
  }
127
194
  else {
195
+ const canonicalPaths = new Map();
128
196
  for (const source of sources) {
129
- if (source.format === "opencode-sqlite")
197
+ if (source.format !== undefined && source.format !== "jsonl")
130
198
  continue;
199
+ const pathPattern = source.pathPattern === undefined
200
+ ? undefined
201
+ : new RegExp(source.pathPattern, "u");
131
202
  for (const configuredRoot of source.roots) {
132
203
  const root = expandedActivityRoot(configuredRoot);
133
204
  const rootFiles = await listJSONLFiles(root);
205
+ let rootReal;
134
206
  for (const file of rootFiles) {
207
+ if (pathPattern !== undefined &&
208
+ !pathPattern.test(relative(root, file.path).split(sep).join("/"))) {
209
+ continue;
210
+ }
135
211
  let canonicalPath;
136
212
  try {
137
- canonicalPath = await realpath(file.path);
213
+ // The listing never follows links, so a listed file keeps its
214
+ // canonical path while its root resolves to the same place and
215
+ // the file keeps its identity. Resolve each file only once.
216
+ rootReal ??= await realpath(root);
217
+ const key = `${rootReal}\u0000${file.path}`;
218
+ const identity = fileIdentityKey(file.identity);
219
+ const known = this.#canonicalPaths.get(key);
220
+ canonicalPath =
221
+ known !== undefined && identity !== undefined &&
222
+ known.identity === identity
223
+ ? known.path
224
+ : await realpath(file.path);
225
+ if (identity !== undefined) {
226
+ canonicalPaths.set(key, { path: canonicalPath, identity });
227
+ }
138
228
  }
139
229
  catch (error) {
140
230
  if (isTransientSourceError(error))
@@ -149,6 +239,7 @@ export class JSONLSourceReader {
149
239
  root,
150
240
  path: canonicalPath,
151
241
  modifiedMs: file.modifiedMs,
242
+ identity: file.identity,
152
243
  });
153
244
  if (candidates.length > maxCursorEntries * 2) {
154
245
  candidates = reconciledSourceFiles(candidates);
@@ -159,6 +250,7 @@ export class JSONLSourceReader {
159
250
  }
160
251
  }
161
252
  this.#sourceCache = { key: cacheKey, at: Date.now(), files: candidates };
253
+ this.#canonicalPaths = canonicalPaths;
162
254
  }
163
255
  const recentCandidates = reconciledSourceFiles(candidates)
164
256
  .sort(recentFileFirst)
@@ -190,12 +282,20 @@ export class JSONLSourceReader {
190
282
  const reservedDatabaseRecords = sources.some((source) => source.format === "opencode-sqlite")
191
283
  ? Math.floor(remainingRecords / 2)
192
284
  : 0;
285
+ const rootRealPaths = new Map();
193
286
  for (const file of selected) {
194
287
  if (remainingRecords <= reservedDatabaseRecords)
195
288
  break;
289
+ if (this.#unchangedLiveFile(file)) {
290
+ fileCount++;
291
+ continue;
292
+ }
196
293
  let result;
197
294
  try {
198
- result = await this.#readFile(file.adapterId, file.root, file.path, replayFiles.has(file.path), file.sourceDisplayName, remainingRecords - reservedDatabaseRecords);
295
+ const rootReal = rootRealPaths.get(file.root) ??
296
+ await realpath(file.root);
297
+ rootRealPaths.set(file.root, rootReal);
298
+ result = await this.#readFile(file.adapterId, rootReal, file.path, replayFiles.has(file.path), file.sourceDisplayName, remainingRecords - reservedDatabaseRecords);
199
299
  }
200
300
  catch (error) {
201
301
  if (isTransientSourceError(error))
@@ -213,6 +313,91 @@ export class JSONLSourceReader {
213
313
  this.#completedHistoryFiles.set(file.path, file.modifiedMs);
214
314
  }
215
315
  }
316
+ let documentsComplete = true;
317
+ let documentFiles = 0;
318
+ for (const source of sources) {
319
+ if (source.format !== "json-messages")
320
+ continue;
321
+ const documents = await scanJSONDocumentSource({
322
+ adapterId: source.adapterId,
323
+ roots: source.roots.map(expandedActivityRoot),
324
+ pathPattern: source.pathPattern ?? "\\.json$",
325
+ messagesField: source.messagesField ?? "messages",
326
+ ...source.document,
327
+ }, {
328
+ cursors: this.#cursors,
329
+ listings: this.#documentListings,
330
+ initialScan,
331
+ replayOnFirstStart: this.#replayOnFirstStart,
332
+ replaySessions: this.#initialReplaySessions,
333
+ maxReplayRecords: Math.max(32, Math.floor(this.#initialReplayBytes / 1_024)),
334
+ maxRecords: Math.max(0, remainingRecords - reservedDatabaseRecords),
335
+ historical: this.#mode === "history",
336
+ });
337
+ records.push(...documents.records);
338
+ fileCount += documents.files;
339
+ malformed += documents.malformed;
340
+ oversized += documents.oversized;
341
+ documentFiles += documents.files;
342
+ remainingRecords -= documents.records.length;
343
+ documentsComplete = documentsComplete && documents.complete;
344
+ }
345
+ for (const source of sources) {
346
+ if (source.format !== "goose-sqlite")
347
+ continue;
348
+ if (remainingRecords <= reservedDatabaseRecords) {
349
+ documentsComplete = false;
350
+ break;
351
+ }
352
+ // Loaded on demand for the same reason as the OpenCode source below.
353
+ const { scanGooseSQLiteSources } = await import("./goose-sqlite-source.js");
354
+ const goose = await scanGooseSQLiteSources({
355
+ adapterId: source.adapterId,
356
+ roots: source.roots.map(expandedActivityRoot),
357
+ cursors: this.#cursors,
358
+ initialScan,
359
+ replayOnFirstStart: this.#replayOnFirstStart,
360
+ maxReplayRecords: Math.max(32, Math.floor(this.#initialReplayBytes / 1_024)),
361
+ maxRecords: remainingRecords - reservedDatabaseRecords,
362
+ historical: this.#mode === "history",
363
+ ...(this.#mode === "live" ? { connections: this.#gooseConnections } : { completedHistory: this.#completedHistoryDatabases }),
364
+ });
365
+ records.push(...goose.records);
366
+ fileCount += goose.files;
367
+ malformed += goose.malformed;
368
+ oversized += goose.oversized;
369
+ documentFiles += goose.files;
370
+ remainingRecords -= goose.records.length;
371
+ documentsComplete = documentsComplete && goose.complete;
372
+ }
373
+ for (const source of sources) {
374
+ if (source.format !== "zed-sqlite")
375
+ continue;
376
+ if (remainingRecords <= reservedDatabaseRecords) {
377
+ documentsComplete = false;
378
+ break;
379
+ }
380
+ const { scanZedSQLiteSources } = await import("./zed-sqlite-source.js");
381
+ const zed = await scanZedSQLiteSources({
382
+ adapterId: source.adapterId,
383
+ roots: source.roots.map(expandedActivityRoot),
384
+ cursors: this.#cursors,
385
+ initialScan,
386
+ replayOnFirstStart: this.#replayOnFirstStart,
387
+ replaySessions: this.#initialReplaySessions,
388
+ maxReplayRecords: Math.max(32, Math.floor(this.#initialReplayBytes / 1_024)),
389
+ maxRecords: remainingRecords - reservedDatabaseRecords,
390
+ historical: this.#mode === "history",
391
+ ...(this.#mode === "live" ? { connections: this.#zedConnections } : { completedHistory: this.#completedHistoryDatabases }),
392
+ });
393
+ records.push(...zed.records);
394
+ fileCount += zed.files;
395
+ malformed += zed.malformed;
396
+ oversized += zed.oversized;
397
+ documentFiles += zed.files;
398
+ remainingRecords -= zed.records.length;
399
+ documentsComplete = documentsComplete && zed.complete;
400
+ }
216
401
  let sqliteComplete = true;
217
402
  let sqliteFiles = 0;
218
403
  for (const source of sources) {
@@ -234,6 +419,7 @@ export class JSONLSourceReader {
234
419
  replayOnFirstStart: this.#replayOnFirstStart,
235
420
  maxReplayRecords: Math.min(remainingRecords, Math.max(this.#mode === "history" ? 1 : 32, Math.floor(this.#initialReplayBytes / 1_024))),
236
421
  historical: this.#mode === "history",
422
+ ...(this.#mode === "live" ? { connections: this.#openCodeConnections } : { completedHistory: this.#completedHistoryDatabases }),
237
423
  });
238
424
  records.push(...sqlite.records);
239
425
  fileCount += sqlite.files;
@@ -243,7 +429,11 @@ export class JSONLSourceReader {
243
429
  remainingRecords -= sqlite.records.length;
244
430
  sqliteComplete = sqliteComplete && sqlite.complete;
245
431
  }
432
+ this.#openCodeConnections.retain(configuredRoots(sources, "opencode-sqlite"));
433
+ this.#gooseConnections.retain(configuredRoots(sources, "goose-sqlite"));
434
+ this.#zedConnections.retain(configuredRoots(sources, "zed-sqlite"));
246
435
  this.#initialScanComplete = true;
436
+ this.#cursors.settle(maxCursorEntries);
247
437
  const checkpoint = Object.freeze({
248
438
  generation: ++this.#generation,
249
439
  cursors: new Map(this.#cursors),
@@ -253,13 +443,13 @@ export class JSONLSourceReader {
253
443
  records,
254
444
  metrics: {
255
445
  files: fileCount,
256
- discoveredFiles: recentCandidates.length + sqliteFiles,
446
+ discoveredFiles: recentCandidates.length + sqliteFiles + documentFiles,
257
447
  records: records.length,
258
448
  malformed,
259
449
  oversized,
260
450
  },
261
451
  checkpoint,
262
- complete: jsonlComplete && sqliteComplete,
452
+ complete: jsonlComplete && sqliteComplete && documentsComplete,
263
453
  };
264
454
  }
265
455
  async commit(checkpoint) {
@@ -268,11 +458,35 @@ export class JSONLSourceReader {
268
458
  if (checkpoint.generation > this.#generation) {
269
459
  throw new Error("Activity source checkpoint is invalid.");
270
460
  }
271
- await this.#cursorStore.save(checkpoint.cursors);
461
+ if (this.#savedCursors === undefined ||
462
+ !sameCursors(checkpoint.cursors, this.#savedCursors)) {
463
+ await this.#cursorStore.save(checkpoint.cursors);
464
+ this.#savedCursors = checkpoint.cursors;
465
+ }
272
466
  this.#committedGeneration = checkpoint.generation;
273
467
  }
274
- async #readFile(adapterId, root, file, initialReplay, sourceDisplayName, maxRecords = Number.MAX_SAFE_INTEGER) {
275
- const rootReal = await realpath(root);
468
+ /**
469
+ * Close the database connections kept between scans. A later scan opens
470
+ * them again, so this only releases files, for example before shutdown.
471
+ */
472
+ close() {
473
+ this.#openCodeConnections.closeAll();
474
+ this.#gooseConnections.closeAll();
475
+ this.#zedConnections.closeAll();
476
+ }
477
+ /**
478
+ * A live file whose listed size equals its cursor has nothing to read:
479
+ * reading it would resolve, stat and find zero bytes. Its identity comes
480
+ * from the listing done in the same scan, so growth is never missed.
481
+ */
482
+ #unchangedLiveFile(file) {
483
+ if (this.#mode !== "live" || file.identity === undefined)
484
+ return false;
485
+ const cursorId = fileCursorId(file.path, file.identity);
486
+ return (this.#cursors?.get(cursorId) === file.identity.size &&
487
+ !this.#oversizedContinuations.has(cursorId));
488
+ }
489
+ async #readFile(adapterId, rootReal, file, initialReplay, sourceDisplayName, maxRecords = Number.MAX_SAFE_INTEGER) {
276
490
  const fileReal = await realpath(file);
277
491
  if (!isWithin(rootReal, fileReal)) {
278
492
  return { records: [], malformed: 0, oversized: 0, processedRecords: 0 };
@@ -293,34 +507,50 @@ export class JSONLSourceReader {
293
507
  (initialReplay ? this.#initialReplayBytes : maxReadBytesPerFile)));
294
508
  if (metadata.size < offset)
295
509
  offset = 0;
296
- const length = Math.min(metadata.size - offset, maxReadBytesPerFile, Math.max(maxLineBytes + 1, Math.min(1_024, maxRecords) * 16_384));
510
+ let length = Math.min(metadata.size - offset, maxReadBytesPerFile, Math.max(readWindowBytes + 1, Math.min(1_024, maxRecords) * 16_384));
297
511
  if (length <= 0) {
298
512
  this.#setCursor(cursorId, legacyCursorId, metadata.size);
513
+ this.#oversizedContinuations.delete(cursorId);
299
514
  return { records: [], malformed: 0, oversized: 0, processedRecords: 0 };
300
515
  }
301
- const handle = await open(fileReal, "r");
302
- let content;
303
- try {
304
- content = Buffer.alloc(length);
305
- const read = await handle.read(content, 0, length, offset);
306
- content = content.subarray(0, read.bytesRead);
307
- }
308
- finally {
309
- await handle.close();
516
+ // Starting mid-file, read one byte early: if it is a newline the first
517
+ // record starts exactly at the offset and must not be skipped as partial.
518
+ // A cursor left inside an oversized record also resumes after its end.
519
+ const continuingOversized = this.#oversizedContinuations.has(cursorId);
520
+ const resync = (knownOffset === undefined && offset > 0) || continuingOversized;
521
+ if (resync) {
522
+ offset -= 1;
523
+ length += 1;
310
524
  }
311
- if (knownOffset === undefined && offset > 0) {
525
+ let content = await readRange(fileReal, offset, length);
526
+ if (resync) {
312
527
  const firstNewline = content.indexOf(0x0a);
313
528
  if (firstNewline < 0) {
314
529
  this.#setCursor(cursorId, legacyCursorId, offset + content.length);
315
- return { records: [], malformed: 0, oversized: 1, processedRecords: 1 };
530
+ this.#rememberOversizedContinuation(cursorId);
531
+ return continuingOversized
532
+ ? { records: [], malformed: 0, oversized: 0, processedRecords: 1 }
533
+ : { records: [], malformed: 0, oversized: 1, processedRecords: 1 };
316
534
  }
535
+ this.#oversizedContinuations.delete(cursorId);
317
536
  offset += firstNewline + 1;
318
537
  content = content.subarray(firstNewline + 1);
319
538
  }
320
- const lastNewline = content.lastIndexOf(0x0a);
539
+ let lastNewline = content.lastIndexOf(0x0a);
540
+ if (lastNewline < 0) {
541
+ // One complete record can be larger than the normal read window, for
542
+ // example a tool result or a pasted screenshot. Widen once, bounded by
543
+ // the record limit, instead of discarding it as oversized.
544
+ const widened = Math.min(metadata.size - offset, maxLineBytes + 1);
545
+ if (widened > content.length) {
546
+ content = await readRange(fileReal, offset, widened);
547
+ lastNewline = content.lastIndexOf(0x0a);
548
+ }
549
+ }
321
550
  if (lastNewline < 0) {
322
551
  if (content.length > maxLineBytes) {
323
552
  this.#setCursor(cursorId, legacyCursorId, offset + content.length);
553
+ this.#rememberOversizedContinuation(cursorId);
324
554
  return { records: [], malformed: 0, oversized: 1, processedRecords: 1 };
325
555
  }
326
556
  return { records: [], malformed: 0, oversized: 0, processedRecords: 0 };
@@ -401,6 +631,14 @@ export class JSONLSourceReader {
401
631
  }
402
632
  return pending;
403
633
  }
634
+ #rememberOversizedContinuation(cursorId) {
635
+ this.#oversizedContinuations.add(cursorId);
636
+ if (this.#oversizedContinuations.size <= maxSourceFiles)
637
+ return;
638
+ const oldest = this.#oversizedContinuations.values().next().value;
639
+ if (oldest !== undefined)
640
+ this.#oversizedContinuations.delete(oldest);
641
+ }
404
642
  #setCursor(cursorId, legacyCursorId, offset) {
405
643
  this.#cursors?.set(cursorId, offset);
406
644
  if (cursorId !== legacyCursorId) {
@@ -470,7 +708,16 @@ async function listJSONLFiles(root) {
470
708
  basename(entry.name).toLowerCase().endsWith(".jsonl")) {
471
709
  try {
472
710
  const metadata = await stat(path);
473
- result.push({ path, modifiedMs: metadata.mtimeMs });
711
+ result.push({
712
+ path,
713
+ modifiedMs: metadata.mtimeMs,
714
+ identity: {
715
+ size: metadata.size,
716
+ dev: metadata.dev,
717
+ ino: metadata.ino,
718
+ birthtimeMs: metadata.birthtimeMs,
719
+ },
720
+ });
474
721
  if (result.length > maxCursorEntries * 2) {
475
722
  result.sort(recentFileFirst);
476
723
  result.length = maxCursorEntries;
@@ -491,6 +738,17 @@ async function listJSONLFiles(root) {
491
738
  await walk(root, 0);
492
739
  return result.sort(recentFileFirst).slice(0, maxCursorEntries);
493
740
  }
741
+ async function readRange(path, position, length) {
742
+ const handle = await open(path, "r");
743
+ try {
744
+ const content = Buffer.alloc(length);
745
+ const read = await handle.read(content, 0, length, position);
746
+ return content.subarray(0, read.bytesRead);
747
+ }
748
+ finally {
749
+ await handle.close();
750
+ }
751
+ }
494
752
  function recentFileFirst(left, right) {
495
753
  return (right.modifiedMs - left.modifiedMs || left.path.localeCompare(right.path));
496
754
  }
@@ -546,6 +804,9 @@ function reconciledSourceFile(claims) {
546
804
  root: representative.root,
547
805
  path: representative.path,
548
806
  modifiedMs: Math.max(...ordered.map((claim) => claim.modifiedMs)),
807
+ ...(representative.identity === undefined
808
+ ? {}
809
+ : { identity: representative.identity }),
549
810
  };
550
811
  }
551
812
  function compareSourceClaim(left, right) {
@@ -553,6 +814,12 @@ function compareSourceClaim(left, right) {
553
814
  (left.sourceDisplayName ?? "").localeCompare(right.sourceDisplayName ?? "") ||
554
815
  left.root.localeCompare(right.root);
555
816
  }
817
+ function fileIdentityKey(identity) {
818
+ if (identity === undefined || (identity.ino <= 0 && identity.dev <= 0)) {
819
+ return undefined;
820
+ }
821
+ return `${identity.dev}:${identity.ino}:${identity.birthtimeMs}`;
822
+ }
556
823
  function fileCursorId(path, metadata) {
557
824
  const identity = metadata.ino > 0 || metadata.dev > 0
558
825
  ? `inode:${metadata.dev}:${metadata.ino}:${metadata.birthtimeMs}`
@@ -573,6 +840,18 @@ function newestFilesPerAdapter(files, limit) {
573
840
  }
574
841
  return selected;
575
842
  }
843
+ function configuredRoots(sources, format) {
844
+ return new Set(sources.flatMap((source) => source.format === format ? source.roots.map(expandedActivityRoot) : []));
845
+ }
846
+ function sameCursors(left, right) {
847
+ if (left.size !== right.size)
848
+ return false;
849
+ for (const [key, offset] of left) {
850
+ if (right.get(key) !== offset)
851
+ return false;
852
+ }
853
+ return true;
854
+ }
576
855
  function isWithin(root, candidate) {
577
856
  const path = relative(resolve(root), resolve(candidate));
578
857
  return path === "" || (!path.startsWith(`..${sep}`) && path !== "..");
@@ -1 +1 @@
1
- {"version":3,"file":"source-reader.js","sourceRoot":"","sources":["../../../src/activity/source-reader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"source-reader.js","sourceRoot":"","sources":["../../../src/activity/source-reader.ts"],"names":[],"mappings":"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"}