@phigon/observer 8.1.0 → 8.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (309) hide show
  1. package/README.md +244 -18
  2. package/dist/bin/guardian-runner-darwin-amd64 +0 -0
  3. package/dist/bin/guardian-runner-darwin-arm64 +0 -0
  4. package/dist/bin/guardian-runner-linux-amd64 +0 -0
  5. package/dist/bin/guardian-runner-linux-arm64 +0 -0
  6. package/dist/bin/guardian-runner-windows-amd64.exe +0 -0
  7. package/dist/bin/guardian-runner-windows-arm64.exe +0 -0
  8. package/dist/src/abortable-delay.d.ts +10 -0
  9. package/dist/src/abortable-delay.d.ts.map +1 -0
  10. package/dist/src/abortable-delay.js +21 -0
  11. package/dist/src/abortable-delay.js.map +1 -0
  12. package/dist/src/action-policy.d.ts.map +1 -1
  13. package/dist/src/action-policy.js +4 -2
  14. package/dist/src/action-policy.js.map +1 -1
  15. package/dist/src/activity/adapters/claude.d.ts.map +1 -1
  16. package/dist/src/activity/adapters/claude.js +28 -2
  17. package/dist/src/activity/adapters/claude.js.map +1 -1
  18. package/dist/src/activity/adapters/cline-task.d.ts +7 -0
  19. package/dist/src/activity/adapters/cline-task.d.ts.map +1 -0
  20. package/dist/src/activity/adapters/cline-task.js +197 -0
  21. package/dist/src/activity/adapters/cline-task.js.map +1 -0
  22. package/dist/src/activity/adapters/cline.d.ts +3 -0
  23. package/dist/src/activity/adapters/cline.d.ts.map +1 -0
  24. package/dist/src/activity/adapters/cline.js +102 -0
  25. package/dist/src/activity/adapters/cline.js.map +1 -0
  26. package/dist/src/activity/adapters/codex.d.ts.map +1 -1
  27. package/dist/src/activity/adapters/codex.js +76 -0
  28. package/dist/src/activity/adapters/codex.js.map +1 -1
  29. package/dist/src/activity/adapters/copilot-chat.d.ts +3 -0
  30. package/dist/src/activity/adapters/copilot-chat.d.ts.map +1 -0
  31. package/dist/src/activity/adapters/copilot-chat.js +176 -0
  32. package/dist/src/activity/adapters/copilot-chat.js.map +1 -0
  33. package/dist/src/activity/adapters/copilot.d.ts +2 -1
  34. package/dist/src/activity/adapters/copilot.d.ts.map +1 -1
  35. package/dist/src/activity/adapters/copilot.js +173 -2
  36. package/dist/src/activity/adapters/copilot.js.map +1 -1
  37. package/dist/src/activity/adapters/cursor.d.ts +3 -0
  38. package/dist/src/activity/adapters/cursor.d.ts.map +1 -0
  39. package/dist/src/activity/adapters/cursor.js +86 -0
  40. package/dist/src/activity/adapters/cursor.js.map +1 -0
  41. package/dist/src/activity/adapters/factory-droid.d.ts +3 -0
  42. package/dist/src/activity/adapters/factory-droid.d.ts.map +1 -0
  43. package/dist/src/activity/adapters/factory-droid.js +126 -0
  44. package/dist/src/activity/adapters/factory-droid.js.map +1 -0
  45. package/dist/src/activity/adapters/gemini.d.ts +3 -0
  46. package/dist/src/activity/adapters/gemini.d.ts.map +1 -0
  47. package/dist/src/activity/adapters/gemini.js +177 -0
  48. package/dist/src/activity/adapters/gemini.js.map +1 -0
  49. package/dist/src/activity/adapters/goose.d.ts +3 -0
  50. package/dist/src/activity/adapters/goose.d.ts.map +1 -0
  51. package/dist/src/activity/adapters/goose.js +116 -0
  52. package/dist/src/activity/adapters/goose.js.map +1 -0
  53. package/dist/src/activity/adapters/kiro.d.ts +3 -0
  54. package/dist/src/activity/adapters/kiro.d.ts.map +1 -0
  55. package/dist/src/activity/adapters/kiro.js +47 -0
  56. package/dist/src/activity/adapters/kiro.js.map +1 -0
  57. package/dist/src/activity/adapters/openai-compatible.d.ts.map +1 -1
  58. package/dist/src/activity/adapters/openai-compatible.js +9 -1
  59. package/dist/src/activity/adapters/openai-compatible.js.map +1 -1
  60. package/dist/src/activity/adapters/opencode.d.ts.map +1 -1
  61. package/dist/src/activity/adapters/opencode.js +108 -1
  62. package/dist/src/activity/adapters/opencode.js.map +1 -1
  63. package/dist/src/activity/adapters/zed.d.ts +3 -0
  64. package/dist/src/activity/adapters/zed.d.ts.map +1 -0
  65. package/dist/src/activity/adapters/zed.js +134 -0
  66. package/dist/src/activity/adapters/zed.js.map +1 -0
  67. package/dist/src/activity/collector.d.ts +43 -1
  68. package/dist/src/activity/collector.d.ts.map +1 -1
  69. package/dist/src/activity/collector.js +490 -77
  70. package/dist/src/activity/collector.js.map +1 -1
  71. package/dist/src/activity/goose-sqlite-source.d.ts +33 -0
  72. package/dist/src/activity/goose-sqlite-source.d.ts.map +1 -0
  73. package/dist/src/activity/goose-sqlite-source.js +274 -0
  74. package/dist/src/activity/goose-sqlite-source.js.map +1 -0
  75. package/dist/src/activity/index.d.ts +3 -0
  76. package/dist/src/activity/index.d.ts.map +1 -1
  77. package/dist/src/activity/index.js +3 -0
  78. package/dist/src/activity/index.js.map +1 -1
  79. package/dist/src/activity/ingest.d.ts +9 -0
  80. package/dist/src/activity/ingest.d.ts.map +1 -1
  81. package/dist/src/activity/ingest.js +94 -4
  82. package/dist/src/activity/ingest.js.map +1 -1
  83. package/dist/src/activity/json-document-source.d.ts +151 -0
  84. package/dist/src/activity/json-document-source.d.ts.map +1 -0
  85. package/dist/src/activity/json-document-source.js +586 -0
  86. package/dist/src/activity/json-document-source.js.map +1 -0
  87. package/dist/src/activity/native-capabilities.d.ts.map +1 -1
  88. package/dist/src/activity/native-capabilities.js +8 -12
  89. package/dist/src/activity/native-capabilities.js.map +1 -1
  90. package/dist/src/activity/normalize.d.ts.map +1 -1
  91. package/dist/src/activity/normalize.js +64 -6
  92. package/dist/src/activity/normalize.js.map +1 -1
  93. package/dist/src/activity/opencode-message-tables.d.ts +87 -0
  94. package/dist/src/activity/opencode-message-tables.d.ts.map +1 -0
  95. package/dist/src/activity/opencode-message-tables.js +546 -0
  96. package/dist/src/activity/opencode-message-tables.js.map +1 -0
  97. package/dist/src/activity/opencode-sqlite-source.d.ts +7 -0
  98. package/dist/src/activity/opencode-sqlite-source.d.ts.map +1 -1
  99. package/dist/src/activity/opencode-sqlite-source.js +154 -63
  100. package/dist/src/activity/opencode-sqlite-source.js.map +1 -1
  101. package/dist/src/activity/source-reader.d.ts +60 -4
  102. package/dist/src/activity/source-reader.d.ts.map +1 -1
  103. package/dist/src/activity/source-reader.js +593 -75
  104. package/dist/src/activity/source-reader.js.map +1 -1
  105. package/dist/src/activity/sqlite-connections.d.ts +77 -0
  106. package/dist/src/activity/sqlite-connections.d.ts.map +1 -0
  107. package/dist/src/activity/sqlite-connections.js +220 -0
  108. package/dist/src/activity/sqlite-connections.js.map +1 -0
  109. package/dist/src/activity/zed-sqlite-source.d.ts +65 -0
  110. package/dist/src/activity/zed-sqlite-source.d.ts.map +1 -0
  111. package/dist/src/activity/zed-sqlite-source.js +547 -0
  112. package/dist/src/activity/zed-sqlite-source.js.map +1 -0
  113. package/dist/src/agent-action-executor.d.ts +18 -1
  114. package/dist/src/agent-action-executor.d.ts.map +1 -1
  115. package/dist/src/agent-action-executor.js +113 -58
  116. package/dist/src/agent-action-executor.js.map +1 -1
  117. package/dist/src/agentic-guardian.d.ts.map +1 -1
  118. package/dist/src/agentic-guardian.js +6 -5
  119. package/dist/src/agentic-guardian.js.map +1 -1
  120. package/dist/src/atomic-replace.d.ts +7 -0
  121. package/dist/src/atomic-replace.d.ts.map +1 -1
  122. package/dist/src/atomic-replace.js +28 -3
  123. package/dist/src/atomic-replace.js.map +1 -1
  124. package/dist/src/bridge-journal.d.ts +32 -0
  125. package/dist/src/bridge-journal.d.ts.map +1 -0
  126. package/dist/src/bridge-journal.js +113 -0
  127. package/dist/src/bridge-journal.js.map +1 -0
  128. package/dist/src/cli.d.ts +7 -1
  129. package/dist/src/cli.d.ts.map +1 -1
  130. package/dist/src/cli.js +534 -50
  131. package/dist/src/cli.js.map +1 -1
  132. package/dist/src/collection-notice.d.ts +34 -0
  133. package/dist/src/collection-notice.d.ts.map +1 -0
  134. package/dist/src/collection-notice.js +73 -0
  135. package/dist/src/collection-notice.js.map +1 -0
  136. package/dist/src/config.d.ts +39 -0
  137. package/dist/src/config.d.ts.map +1 -1
  138. package/dist/src/config.js +187 -36
  139. package/dist/src/config.js.map +1 -1
  140. package/dist/src/connection-config.d.ts.map +1 -1
  141. package/dist/src/connection-config.js +5 -0
  142. package/dist/src/connection-config.js.map +1 -1
  143. package/dist/src/content-redaction.d.ts +17 -1
  144. package/dist/src/content-redaction.d.ts.map +1 -1
  145. package/dist/src/content-redaction.js +51 -3
  146. package/dist/src/content-redaction.js.map +1 -1
  147. package/dist/src/credential-store.d.ts +20 -1
  148. package/dist/src/credential-store.d.ts.map +1 -1
  149. package/dist/src/credential-store.js +29 -4
  150. package/dist/src/credential-store.js.map +1 -1
  151. package/dist/src/custom-agent-registry.d.ts.map +1 -1
  152. package/dist/src/custom-agent-registry.js +2 -1
  153. package/dist/src/custom-agent-registry.js.map +1 -1
  154. package/dist/src/discovery/adapters/generic.d.ts.map +1 -1
  155. package/dist/src/discovery/adapters/generic.js +160 -2
  156. package/dist/src/discovery/adapters/generic.js.map +1 -1
  157. package/dist/src/discovery/engine.d.ts +7 -1
  158. package/dist/src/discovery/engine.d.ts.map +1 -1
  159. package/dist/src/discovery/engine.js +21 -16
  160. package/dist/src/discovery/engine.js.map +1 -1
  161. package/dist/src/discovery/known-agent.d.ts +7 -0
  162. package/dist/src/discovery/known-agent.d.ts.map +1 -1
  163. package/dist/src/discovery/known-agent.js +9 -4
  164. package/dist/src/discovery/known-agent.js.map +1 -1
  165. package/dist/src/discovery/system-evidence.d.ts +40 -1
  166. package/dist/src/discovery/system-evidence.d.ts.map +1 -1
  167. package/dist/src/discovery/system-evidence.js +189 -16
  168. package/dist/src/discovery/system-evidence.js.map +1 -1
  169. package/dist/src/doctor-check.d.ts +51 -0
  170. package/dist/src/doctor-check.d.ts.map +1 -0
  171. package/dist/src/doctor-check.js +174 -0
  172. package/dist/src/doctor-check.js.map +1 -0
  173. package/dist/src/enroll.d.ts +86 -0
  174. package/dist/src/enroll.d.ts.map +1 -0
  175. package/dist/src/enroll.js +245 -0
  176. package/dist/src/enroll.js.map +1 -0
  177. package/dist/src/entry.d.ts +3 -0
  178. package/dist/src/entry.d.ts.map +1 -0
  179. package/dist/src/entry.js +14 -0
  180. package/dist/src/entry.js.map +1 -0
  181. package/dist/src/event-queue.d.ts +13 -1
  182. package/dist/src/event-queue.d.ts.map +1 -1
  183. package/dist/src/event-queue.js +137 -42
  184. package/dist/src/event-queue.js.map +1 -1
  185. package/dist/src/event-spool.d.ts +61 -3
  186. package/dist/src/event-spool.d.ts.map +1 -1
  187. package/dist/src/event-spool.js +341 -44
  188. package/dist/src/event-spool.js.map +1 -1
  189. package/dist/src/generated/phigon/v1/identity_pb.d.ts +7 -0
  190. package/dist/src/generated/phigon/v1/identity_pb.d.ts.map +1 -1
  191. package/dist/src/generated/phigon/v1/identity_pb.js +1 -1
  192. package/dist/src/generated/phigon/v1/identity_pb.js.map +1 -1
  193. package/dist/src/guardian-containment.d.ts +2 -6
  194. package/dist/src/guardian-containment.d.ts.map +1 -1
  195. package/dist/src/guardian-containment.js +12 -63
  196. package/dist/src/guardian-containment.js.map +1 -1
  197. package/dist/src/guardian-decision-journal.d.ts.map +1 -1
  198. package/dist/src/guardian-decision-journal.js +4 -19
  199. package/dist/src/guardian-decision-journal.js.map +1 -1
  200. package/dist/src/guardian-managed-exec.d.ts.map +1 -1
  201. package/dist/src/guardian-managed-exec.js +6 -18
  202. package/dist/src/guardian-managed-exec.js.map +1 -1
  203. package/dist/src/guardian-model-bridge.d.ts.map +1 -1
  204. package/dist/src/guardian-model-bridge.js +2 -1
  205. package/dist/src/guardian-model-bridge.js.map +1 -1
  206. package/dist/src/guardian-native.d.ts +0 -1
  207. package/dist/src/guardian-native.d.ts.map +1 -1
  208. package/dist/src/guardian-native.js +0 -6
  209. package/dist/src/guardian-native.js.map +1 -1
  210. package/dist/src/guardian-process-monitor.d.ts +4 -0
  211. package/dist/src/guardian-process-monitor.d.ts.map +1 -1
  212. package/dist/src/guardian-process-monitor.js +82 -26
  213. package/dist/src/guardian-process-monitor.js.map +1 -1
  214. package/dist/src/health.d.ts +19 -1
  215. package/dist/src/health.d.ts.map +1 -1
  216. package/dist/src/health.js +22 -1
  217. package/dist/src/health.js.map +1 -1
  218. package/dist/src/historical-identity-store.d.ts +8 -1
  219. package/dist/src/historical-identity-store.d.ts.map +1 -1
  220. package/dist/src/historical-identity-store.js +28 -10
  221. package/dist/src/historical-identity-store.js.map +1 -1
  222. package/dist/src/index.d.ts +2 -0
  223. package/dist/src/index.d.ts.map +1 -1
  224. package/dist/src/index.js +2 -0
  225. package/dist/src/index.js.map +1 -1
  226. package/dist/src/installation.d.ts +2 -0
  227. package/dist/src/installation.d.ts.map +1 -1
  228. package/dist/src/installation.js +6 -3
  229. package/dist/src/installation.js.map +1 -1
  230. package/dist/src/instance-lock.d.ts +45 -0
  231. package/dist/src/instance-lock.d.ts.map +1 -0
  232. package/dist/src/instance-lock.js +243 -0
  233. package/dist/src/instance-lock.js.map +1 -0
  234. package/dist/src/machine-command-executor.d.ts +22 -7
  235. package/dist/src/machine-command-executor.d.ts.map +1 -1
  236. package/dist/src/machine-command-executor.js +80 -19
  237. package/dist/src/machine-command-executor.js.map +1 -1
  238. package/dist/src/node-version.d.ts +8 -0
  239. package/dist/src/node-version.d.ts.map +1 -0
  240. package/dist/src/node-version.js +17 -0
  241. package/dist/src/node-version.js.map +1 -0
  242. package/dist/src/observer-log.d.ts +50 -0
  243. package/dist/src/observer-log.d.ts.map +1 -0
  244. package/dist/src/observer-log.js +141 -0
  245. package/dist/src/observer-log.js.map +1 -0
  246. package/dist/src/pair.d.ts +68 -1
  247. package/dist/src/pair.d.ts.map +1 -1
  248. package/dist/src/pair.js +204 -65
  249. package/dist/src/pair.js.map +1 -1
  250. package/dist/src/private-directory.d.ts +10 -0
  251. package/dist/src/private-directory.d.ts.map +1 -0
  252. package/dist/src/private-directory.js +66 -0
  253. package/dist/src/private-directory.js.map +1 -0
  254. package/dist/src/process-tree.d.ts +73 -0
  255. package/dist/src/process-tree.d.ts.map +1 -0
  256. package/dist/src/process-tree.js +256 -0
  257. package/dist/src/process-tree.js.map +1 -0
  258. package/dist/src/proxy.d.ts +68 -0
  259. package/dist/src/proxy.d.ts.map +1 -0
  260. package/dist/src/proxy.js +209 -0
  261. package/dist/src/proxy.js.map +1 -0
  262. package/dist/src/purge.d.ts +17 -0
  263. package/dist/src/purge.d.ts.map +1 -0
  264. package/dist/src/purge.js +84 -0
  265. package/dist/src/purge.js.map +1 -0
  266. package/dist/src/remove-machine.d.ts +5 -1
  267. package/dist/src/remove-machine.d.ts.map +1 -1
  268. package/dist/src/remove-machine.js +28 -14
  269. package/dist/src/remove-machine.js.map +1 -1
  270. package/dist/src/server-authority.d.ts +29 -0
  271. package/dist/src/server-authority.d.ts.map +1 -0
  272. package/dist/src/server-authority.js +106 -0
  273. package/dist/src/server-authority.js.map +1 -0
  274. package/dist/src/server-clock.d.ts +32 -0
  275. package/dist/src/server-clock.d.ts.map +1 -0
  276. package/dist/src/server-clock.js +72 -0
  277. package/dist/src/server-clock.js.map +1 -0
  278. package/dist/src/service-command.d.ts +20 -0
  279. package/dist/src/service-command.d.ts.map +1 -0
  280. package/dist/src/service-command.js +136 -0
  281. package/dist/src/service-command.js.map +1 -0
  282. package/dist/src/service.d.ts +98 -0
  283. package/dist/src/service.d.ts.map +1 -0
  284. package/dist/src/service.js +472 -0
  285. package/dist/src/service.js.map +1 -0
  286. package/dist/src/stream-client.d.ts +21 -1
  287. package/dist/src/stream-client.d.ts.map +1 -1
  288. package/dist/src/stream-client.js +137 -24
  289. package/dist/src/stream-client.js.map +1 -1
  290. package/dist/src/stream-state.d.ts +2 -0
  291. package/dist/src/stream-state.d.ts.map +1 -1
  292. package/dist/src/stream-state.js +5 -2
  293. package/dist/src/stream-state.js.map +1 -1
  294. package/dist/src/system-inspection.d.ts +78 -0
  295. package/dist/src/system-inspection.d.ts.map +1 -0
  296. package/dist/src/system-inspection.js +281 -0
  297. package/dist/src/system-inspection.js.map +1 -0
  298. package/dist/src/update.d.ts.map +1 -1
  299. package/dist/src/update.js +9 -3
  300. package/dist/src/update.js.map +1 -1
  301. package/dist/src/user-notices.d.ts +64 -0
  302. package/dist/src/user-notices.d.ts.map +1 -0
  303. package/dist/src/user-notices.js +141 -0
  304. package/dist/src/user-notices.js.map +1 -0
  305. package/package.json +7 -7
  306. package/dist/src/windows-process.d.ts +0 -7
  307. package/dist/src/windows-process.d.ts.map +0 -1
  308. package/dist/src/windows-process.js +0 -18
  309. package/dist/src/windows-process.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
  import { homedir } from "node:os";
2
- import { join } from "node:path";
2
+ import { isAbsolute, join } from "node:path";
3
3
  export const DEFAULT_CONTROL_PLANE_ORIGIN = "https://api.phigon.online";
4
4
  const defaultPolicy = Object.freeze({
5
5
  promptContent: false,
@@ -72,7 +72,6 @@ export function loadConfig(environment = process.env) {
72
72
  }
73
73
  const activityMaxInFlightEvents = parseBoundedPositiveInteger(environment["PHIGON_ACTIVITY_MAX_IN_FLIGHT_EVENTS"] ?? "64", "PHIGON_ACTIVITY_MAX_IN_FLIGHT_EVENTS", 1, 256);
74
74
  const observabilityProfile = parseObservabilityProfile(environment["PHIGON_OBSERVABILITY_PROFILE"] ?? "metadata");
75
- const profilePolicy = observabilityProfile === "full" ? fullPolicy : defaultPolicy;
76
75
  const logLevel = parseLogLevel(environment["PHIGON_LOG_LEVEL"] ?? "info");
77
76
  const machineTokenConfigured = (environment["PHIGON_MACHINE_TOKEN"]?.trim().length ?? 0) > 0;
78
77
  const tlsClientCertFile = environment["PHIGON_TLS_CLIENT_CERT_FILE"]?.trim() || undefined;
@@ -81,12 +80,12 @@ export function loadConfig(environment = process.env) {
81
80
  (tlsClientKeyFile === undefined)) {
82
81
  throw new Error("PHIGON_TLS_CLIENT_CERT_FILE and PHIGON_TLS_CLIENT_KEY_FILE must be configured together.");
83
82
  }
83
+ const collection = collectionPolicy(environment, observabilityProfile);
84
84
  return Object.freeze({
85
85
  controlPlaneUrl,
86
86
  grpcUrl,
87
87
  grpcEndpointConfigured: Boolean(environment["PHIGON_GRPC_URL"]?.trim()),
88
- dataDirectory: environment["PHIGON_DATA_DIR"]?.trim() ||
89
- join(homedir(), ".phigon", "observer"),
88
+ dataDirectory: dataDirectoryFrom(environment),
90
89
  heartbeatIntervalMs,
91
90
  discoveryIntervalMs,
92
91
  activityScanIntervalMs,
@@ -114,6 +113,27 @@ export function loadConfig(environment = process.env) {
114
113
  ]),
115
114
  copilot: parseDirectoryList(environment["PHIGON_COPILOT_ACTIVITY_DIRS"], [join(homedir(), ".copilot", "session-state")]),
116
115
  opencode: parseDirectoryList(environment["PHIGON_OPENCODE_ACTIVITY_DIRS"], [join(homedir(), ".local", "share", "opencode")]),
116
+ gemini: parseDirectoryList(environment["PHIGON_GEMINI_ACTIVITY_DIRS"], [join(homedir(), ".gemini", "tmp")]),
117
+ cline: parseDirectoryList(environment["PHIGON_CLINE_ACTIVITY_DIRS"], [join(homedir(), ".cline", "data", "sessions")]),
118
+ goose: parseDirectoryList(environment["PHIGON_GOOSE_ACTIVITY_DIRS"], gooseSessionDirectories(environment)),
119
+ cursor: parseDirectoryList(environment["PHIGON_CURSOR_ACTIVITY_DIRS"], [join(homedir(), ".cursor", "projects")]),
120
+ copilotChat: parseDirectoryList(environment["PHIGON_COPILOT_CHAT_ACTIVITY_DIRS"], ["Code", "Code - Insiders"].flatMap((product) => {
121
+ const user = editorUserDirectory(environment, product);
122
+ return [
123
+ join(user, "workspaceStorage"),
124
+ join(user, "globalStorage", "emptyWindowChatSessions"),
125
+ ];
126
+ })),
127
+ kiro: parseDirectoryList(environment["PHIGON_KIRO_ACTIVITY_DIRS"], [join(editorUserDirectory(environment, "Kiro"), "globalStorage", "kiro.kiroagent", "workspace-sessions")]),
128
+ zed: parseDirectoryList(environment["PHIGON_ZED_ACTIVITY_DIRS"], zedThreadDirectories(environment)),
129
+ droid: parseDirectoryList(environment["PHIGON_DROID_ACTIVITY_DIRS"], [join(homedir(), ".factory", "sessions")]),
130
+ clineTasks: parseDirectoryList(environment["PHIGON_CLINE_TASKS_ACTIVITY_DIRS"], [
131
+ ...extensionTaskDirectories(environment, "saoudrizwan.claude-dev"),
132
+ // The Cline CLI and JetBrains plugin before their session format.
133
+ join(homedir(), ".cline", "data", "tasks"),
134
+ ]),
135
+ rooCode: parseDirectoryList(environment["PHIGON_ROO_CODE_ACTIVITY_DIRS"], extensionTaskDirectories(environment, "rooveterinaryinc.roo-cline")),
136
+ kiloCode: parseDirectoryList(environment["PHIGON_KILO_CODE_ACTIVITY_DIRS"], extensionTaskDirectories(environment, "kilocode.kilo-code")),
117
137
  generic: parseDirectoryList(environment["PHIGON_GENERIC_ACTIVITY_DIRS"], [join(homedir(), ".phigon", "agent-events")]),
118
138
  }),
119
139
  logLevel,
@@ -121,40 +141,20 @@ export function loadConfig(environment = process.env) {
121
141
  machineTokenConfigured,
122
142
  remoteActionsEnabled: parseBoolean(environment["PHIGON_REMOTE_ACTIONS_ENABLED"] ?? "false", "PHIGON_REMOTE_ACTIONS_ENABLED"),
123
143
  remoteCommandsEnabled: parseBoolean(environment["PHIGON_REMOTE_COMMANDS_ENABLED"] ?? "false", "PHIGON_REMOTE_COMMANDS_ENABLED"),
144
+ userNotices: parseBoolean(environment["PHIGON_USER_NOTICES"] ?? "true", "PHIGON_USER_NOTICES"),
124
145
  guardianDecisionTimeoutMs: parseBoundedPositiveInteger(environment["PHIGON_GUARDIAN_DECISION_TIMEOUT_MS"] ?? "65000", "PHIGON_GUARDIAN_DECISION_TIMEOUT_MS", 250, 125_000),
125
146
  tlsCaFile: environment["PHIGON_TLS_CA_FILE"]?.trim() || undefined,
126
147
  tlsClientCertFile,
127
148
  tlsClientKeyFile,
128
- policy: Object.freeze({
129
- ...profilePolicy,
130
- promptContent: policyFlag(environment, "PROMPT_CONTENT", profilePolicy.promptContent),
131
- responseContent: policyFlag(environment, "RESPONSE_CONTENT", profilePolicy.responseContent),
132
- reasoningContent: policyFlag(environment, "REASONING_CONTENT", profilePolicy.reasoningContent),
133
- commandArguments: policyFlag(environment, "COMMAND_ARGUMENTS", profilePolicy.commandArguments),
134
- terminalOutput: policyFlag(environment, "TERMINAL_OUTPUT", profilePolicy.terminalOutput),
135
- filePaths: policyFlag(environment, "FILE_PATHS", profilePolicy.filePaths),
136
- fileContent: policyFlag(environment, "FILE_CONTENT", profilePolicy.fileContent),
137
- browserUrls: policyFlag(environment, "BROWSER_URLS", profilePolicy.browserUrls),
138
- browserContent: policyFlag(environment, "BROWSER_CONTENT", profilePolicy.browserContent),
139
- networkEndpoints: policyFlag(environment, "NETWORK_ENDPOINTS", profilePolicy.networkEndpoints),
140
- gitPatchContent: policyFlag(environment, "GIT_PATCH_CONTENT", profilePolicy.gitPatchContent),
141
- environmentValues: policyFlag(environment, "ENVIRONMENT_VALUES", profilePolicy.environmentValues),
142
- toolOutput: policyFlag(environment, "TOOL_OUTPUT", profilePolicy.toolOutput),
143
- vendorPayload: policyFlag(environment, "VENDOR_PAYLOAD", profilePolicy.vendorPayload),
144
- processMetadata: policyFlag(environment, "PROCESS_METADATA", profilePolicy.processMetadata),
145
- processArguments: policyFlag(environment, "PROCESS_ARGUMENTS", profilePolicy.processArguments),
146
- fileMetadata: policyFlag(environment, "FILE_METADATA", profilePolicy.fileMetadata),
147
- fileDiffs: policyFlag(environment, "FILE_DIFFS", profilePolicy.fileDiffs),
148
- networkMetadata: policyFlag(environment, "NETWORK_METADATA", profilePolicy.networkMetadata),
149
- networkContent: policyFlag(environment, "NETWORK_CONTENT", profilePolicy.networkContent),
150
- browserMetadata: policyFlag(environment, "BROWSER_METADATA", profilePolicy.browserMetadata),
151
- mcpArguments: policyFlag(environment, "MCP_ARGUMENTS", profilePolicy.mcpArguments),
152
- mcpOutput: policyFlag(environment, "MCP_OUTPUT", profilePolicy.mcpOutput),
153
- modelPrompts: policyFlag(environment, "MODEL_PROMPTS", profilePolicy.modelPrompts),
154
- modelResponses: policyFlag(environment, "MODEL_RESPONSES", profilePolicy.modelResponses),
155
- }),
149
+ policy: collection.policy,
150
+ contentSettingsOutsideProfile: collection.refused,
156
151
  });
157
152
  }
153
+ /** `PHIGON_DATA_DIR`, or ~/.phigon/observer when it is not set. */
154
+ export function dataDirectoryFrom(environment) {
155
+ return environment["PHIGON_DATA_DIR"]?.trim() ||
156
+ join(homedir(), ".phigon", "observer");
157
+ }
158
158
  function parseControlPlaneUrl(value) {
159
159
  return parseEndpointUrl(value, "PHIGON_CONTROL_PLANE_URL");
160
160
  }
@@ -202,8 +202,85 @@ function parseBoundedPositiveInteger(value, name, minimum, maximum) {
202
202
  }
203
203
  return parsed;
204
204
  }
205
- function policyFlag(environment, suffix, fallback) {
206
- return parseBoolean(environment[`PHIGON_COLLECT_${suffix}`] ?? String(fallback), `PHIGON_COLLECT_${suffix}`);
205
+ /** The `PHIGON_COLLECT_*` setting that narrows or widens each category. */
206
+ export const COLLECTION_SETTINGS = Object.freeze({
207
+ promptContent: "PHIGON_COLLECT_PROMPT_CONTENT",
208
+ responseContent: "PHIGON_COLLECT_RESPONSE_CONTENT",
209
+ reasoningContent: "PHIGON_COLLECT_REASONING_CONTENT",
210
+ commandArguments: "PHIGON_COLLECT_COMMAND_ARGUMENTS",
211
+ terminalOutput: "PHIGON_COLLECT_TERMINAL_OUTPUT",
212
+ filePaths: "PHIGON_COLLECT_FILE_PATHS",
213
+ fileContent: "PHIGON_COLLECT_FILE_CONTENT",
214
+ browserUrls: "PHIGON_COLLECT_BROWSER_URLS",
215
+ browserContent: "PHIGON_COLLECT_BROWSER_CONTENT",
216
+ networkEndpoints: "PHIGON_COLLECT_NETWORK_ENDPOINTS",
217
+ gitPatchContent: "PHIGON_COLLECT_GIT_PATCH_CONTENT",
218
+ environmentValues: "PHIGON_COLLECT_ENVIRONMENT_VALUES",
219
+ toolOutput: "PHIGON_COLLECT_TOOL_OUTPUT",
220
+ vendorPayload: "PHIGON_COLLECT_VENDOR_PAYLOAD",
221
+ processMetadata: "PHIGON_COLLECT_PROCESS_METADATA",
222
+ processArguments: "PHIGON_COLLECT_PROCESS_ARGUMENTS",
223
+ fileMetadata: "PHIGON_COLLECT_FILE_METADATA",
224
+ fileDiffs: "PHIGON_COLLECT_FILE_DIFFS",
225
+ networkMetadata: "PHIGON_COLLECT_NETWORK_METADATA",
226
+ networkContent: "PHIGON_COLLECT_NETWORK_CONTENT",
227
+ browserMetadata: "PHIGON_COLLECT_BROWSER_METADATA",
228
+ mcpArguments: "PHIGON_COLLECT_MCP_ARGUMENTS",
229
+ mcpOutput: "PHIGON_COLLECT_MCP_OUTPUT",
230
+ modelPrompts: "PHIGON_COLLECT_MODEL_PROMPTS",
231
+ modelResponses: "PHIGON_COLLECT_MODEL_RESPONSES",
232
+ });
233
+ const collectionCategories = Object.freeze(Object.keys(COLLECTION_SETTINGS));
234
+ /**
235
+ * Categories that carry what people and agents wrote, ran or read: every
236
+ * category the metadata profile leaves off. They are collected only under
237
+ * the full profile on a computer whose owner consented to full activity.
238
+ */
239
+ export const CONTENT_COLLECTION_CATEGORIES = Object.freeze(collectionCategories.filter((category) => !defaultPolicy[category]));
240
+ function collectionPolicy(environment, profile) {
241
+ const profilePolicy = profile === "full" ? fullPolicy : defaultPolicy;
242
+ const policy = Object.fromEntries(collectionCategories.map((category) => [
243
+ category,
244
+ parseBoolean(environment[COLLECTION_SETTINGS[category]] ??
245
+ String(profilePolicy[category]), COLLECTION_SETTINGS[category]),
246
+ ]));
247
+ const refused = [];
248
+ if (profile !== "full") {
249
+ // A COLLECT setting can only narrow the metadata profile; content
250
+ // needs the full profile, which `run` accepts only with full consent.
251
+ for (const category of CONTENT_COLLECTION_CATEGORIES) {
252
+ if (!policy[category])
253
+ continue;
254
+ policy[category] = false;
255
+ refused.push(COLLECTION_SETTINGS[category]);
256
+ }
257
+ }
258
+ return Object.freeze({
259
+ policy: Object.freeze(policy),
260
+ refused: Object.freeze(refused),
261
+ });
262
+ }
263
+ /**
264
+ * Explains why `run` refuses to start when a `PHIGON_COLLECT_*` setting
265
+ * turns on content outside the full activity profile. Names only settings.
266
+ */
267
+ export function contentOutsideProfileMessage(settings) {
268
+ return `${settings.join(", ")} ${settings.length === 1 ? "turns" : "turn"} on content collection, which needs the full activity profile. ` +
269
+ "Run with --profile full on a computer whose owner consented to full activity, or remove the setting.";
270
+ }
271
+ /**
272
+ * Keeps every content category off unless the machine owner consented to
273
+ * full activity. Applied wherever the effective policy is computed, so a
274
+ * local setting or a server policy can never widen what the owner agreed to.
275
+ */
276
+ export function consentedCollectionPolicy(policy, consentProfile) {
277
+ if (consentProfile === "full")
278
+ return policy;
279
+ const restricted = { ...policy };
280
+ for (const category of CONTENT_COLLECTION_CATEGORIES) {
281
+ restricted[category] = false;
282
+ }
283
+ return Object.freeze(restricted);
207
284
  }
208
285
  function parseObservabilityProfile(value) {
209
286
  const normalized = value.trim().toLowerCase();
@@ -220,9 +297,10 @@ function parseInitialReplayMode(value) {
220
297
  throw new Error("PHIGON_ACTIVITY_INITIAL_REPLAY_MODE must be all or messages.");
221
298
  }
222
299
  function parseBoolean(value, name) {
223
- if (value === "true" || value === "1")
300
+ const normalized = value.trim().toLowerCase();
301
+ if (normalized === "true" || normalized === "1")
224
302
  return true;
225
- if (value === "false" || value === "0")
303
+ if (normalized === "false" || normalized === "0")
226
304
  return false;
227
305
  throw new Error(`${name} must be true or false.`);
228
306
  }
@@ -236,6 +314,79 @@ function parseRedactionPathPatterns(value) {
236
314
  }
237
315
  return Object.freeze(patterns);
238
316
  }
317
+ /**
318
+ * Goose keeps sessions.db in <data dir>/sessions. The data directory is
319
+ * $GOOSE_PATH_ROOT/data when that is an absolute path, otherwise the
320
+ * etcetera app strategy for author "Block" and app "goose": XDG on Linux
321
+ * and macOS, %APPDATA%/Block/goose/data on Windows.
322
+ */
323
+ function gooseSessionDirectories(environment) {
324
+ const pathRoot = environment["GOOSE_PATH_ROOT"]?.trim();
325
+ if (pathRoot !== undefined && isAbsolute(pathRoot)) {
326
+ return [join(pathRoot, "data", "sessions")];
327
+ }
328
+ if (process.platform === "win32") {
329
+ const appData = environment["APPDATA"]?.trim() ||
330
+ join(homedir(), "AppData", "Roaming");
331
+ return [join(appData, "Block", "goose", "data", "sessions")];
332
+ }
333
+ const dataHome = environment["XDG_DATA_HOME"]?.trim();
334
+ return [join(dataHome !== undefined && isAbsolute(dataHome)
335
+ ? dataHome
336
+ : join(homedir(), ".local", "share"), "goose", "sessions")];
337
+ }
338
+ /**
339
+ * Zed keeps agent threads in <data dir>/threads/threads.db. The data
340
+ * directory is %LOCALAPPDATA%/Zed on Windows, ~/Library/Application
341
+ * Support/Zed on macOS, and $FLATPAK_XDG_DATA_HOME or $XDG_DATA_HOME (or
342
+ * ~/.local/share) with "zed" elsewhere. The Flatpak build's own data folder
343
+ * is included because Zed outside the sandbox does not see it.
344
+ */
345
+ function zedThreadDirectories(environment) {
346
+ if (process.platform === "win32") {
347
+ const localAppData = environment["LOCALAPPDATA"]?.trim() ||
348
+ join(homedir(), "AppData", "Local");
349
+ return [join(localAppData, "Zed", "threads")];
350
+ }
351
+ if (process.platform === "darwin") {
352
+ return [join(homedir(), "Library", "Application Support", "Zed", "threads")];
353
+ }
354
+ const dataHome = [
355
+ environment["FLATPAK_XDG_DATA_HOME"]?.trim(),
356
+ environment["XDG_DATA_HOME"]?.trim(),
357
+ ].find((value) => value !== undefined && isAbsolute(value));
358
+ return [
359
+ join(dataHome ?? join(homedir(), ".local", "share"), "zed", "threads"),
360
+ join(homedir(), ".var", "app", "dev.zed.Zed", "data", "zed", "threads"),
361
+ ];
362
+ }
363
+ /**
364
+ * The `User` folder of a VS Code-based editor: %APPDATA%/<product>/User on
365
+ * Windows, ~/Library/Application Support/<product>/User on macOS, and
366
+ * $XDG_CONFIG_HOME (or ~/.config)/<product>/User elsewhere.
367
+ */
368
+ /**
369
+ * The task folders of a VS Code extension (Cline and its forks keep
370
+ * `tasks/<task id>/ui_messages.json` in the extension's global storage) in
371
+ * every VS Code-based editor it can be installed in.
372
+ */
373
+ function extensionTaskDirectories(environment, extension) {
374
+ return ["Code", "Code - Insiders", "VSCodium", "Cursor", "Windsurf", "Trae", "Kiro"].map((product) => join(editorUserDirectory(environment, product), "globalStorage", extension, "tasks"));
375
+ }
376
+ function editorUserDirectory(environment, product) {
377
+ if (process.platform === "win32") {
378
+ const appData = environment["APPDATA"]?.trim() ||
379
+ join(homedir(), "AppData", "Roaming");
380
+ return join(appData, product, "User");
381
+ }
382
+ if (process.platform === "darwin") {
383
+ return join(homedir(), "Library", "Application Support", product, "User");
384
+ }
385
+ const configHome = environment["XDG_CONFIG_HOME"]?.trim();
386
+ return join(configHome !== undefined && isAbsolute(configHome)
387
+ ? configHome
388
+ : join(homedir(), ".config"), product, "User");
389
+ }
239
390
  function parseDirectoryList(value, fallback) {
240
391
  if (value === undefined || value.trim() === "") {
241
392
  return Object.freeze([...fallback]);
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAG7C,MAAM,CAAC,MAAM,4BAA4B,GAAG,2BAA2B,CAAC;AAwFxE,MAAM,aAAa,GAAqB,MAAM,CAAC,MAAM,CAAC;IACpD,aAAa,EAAE,KAAK;IACpB,eAAe,EAAE,KAAK;IACtB,gBAAgB,EAAE,KAAK;IACvB,gBAAgB,EAAE,KAAK;IACvB,cAAc,EAAE,KAAK;IACrB,SAAS,EAAE,KAAK;IAChB,WAAW,EAAE,KAAK;IAClB,WAAW,EAAE,KAAK;IAClB,cAAc,EAAE,KAAK;IACrB,gBAAgB,EAAE,KAAK;IACvB,eAAe,EAAE,KAAK;IACtB,iBAAiB,EAAE,KAAK;IACxB,UAAU,EAAE,KAAK;IACjB,aAAa,EAAE,KAAK;IACpB,eAAe,EAAE,IAAI;IACrB,gBAAgB,EAAE,KAAK;IACvB,YAAY,EAAE,IAAI;IAClB,SAAS,EAAE,KAAK;IAChB,eAAe,EAAE,IAAI;IACrB,cAAc,EAAE,KAAK;IACrB,eAAe,EAAE,IAAI;IACrB,YAAY,EAAE,KAAK;IACnB,SAAS,EAAE,KAAK;IAChB,YAAY,EAAE,KAAK;IACnB,cAAc,EAAE,KAAK;CACtB,CAAC,CAAC;AAEH,MAAM,UAAU,GAAqB,MAAM,CAAC,MAAM,CAAC;IACjD,aAAa,EAAE,IAAI;IACnB,eAAe,EAAE,IAAI;IACrB,gBAAgB,EAAE,IAAI;IACtB,gBAAgB,EAAE,IAAI;IACtB,cAAc,EAAE,IAAI;IACpB,SAAS,EAAE,IAAI;IACf,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,IAAI;IACjB,cAAc,EAAE,IAAI;IACpB,gBAAgB,EAAE,IAAI;IACtB,eAAe,EAAE,IAAI;IACrB,uEAAuE;IACvE,uEAAuE;IACvE,iBAAiB,EAAE,KAAK;IACxB,UAAU,EAAE,IAAI;IAChB,aAAa,EAAE,IAAI;IACnB,eAAe,EAAE,IAAI;IACrB,gBAAgB,EAAE,IAAI;IACtB,YAAY,EAAE,IAAI;IAClB,SAAS,EAAE,IAAI;IACf,eAAe,EAAE,IAAI;IACrB,cAAc,EAAE,IAAI;IACpB,eAAe,EAAE,IAAI;IACrB,YAAY,EAAE,IAAI;IAClB,SAAS,EAAE,IAAI;IACf,YAAY,EAAE,IAAI;IAClB,cAAc,EAAE,IAAI;CACrB,CAAC,CAAC;AAEH,MAAM,UAAU,UAAU,CACxB,cAAiC,OAAO,CAAC,GAAG;IAE5C,MAAM,eAAe,GAAG,oBAAoB,CAC1C,WAAW,CAAC,0BAA0B,CAAC,IAAI,4BAA4B,CACxE,CAAC;IACF,MAAM,OAAO,GAAG,gBAAgB,CAC9B,WAAW,CAAC,iBAAiB,CAAC,IAAI,gCAAgC,EAClE,iBAAiB,CAClB,CAAC;IAEF,MAAM,mBAAmB,GAAG,2BAA2B,CACrD,WAAW,CAAC,8BAA8B,CAAC,IAAI,MAAM,EACrD,8BAA8B,EAC9B,KAAK,EACL,MAAM,CACP,CAAC;IACF,MAAM,mBAAmB,GAAG,aAAa,CACvC,WAAW,CAAC,8BAA8B,CAAC,IAAI,OAAO,EACtD,8BAA8B,CAC/B,CAAC;IACF,MAAM,sBAAsB,GAAG,aAAa,CAC1C,WAAW,CAAC,kCAAkC,CAAC,IAAI,MAAM,EACzD,kCAAkC,CACnC,CAAC;IACF,MAAM,0BAA0B,GAAG,2BAA2B,CAC5D,WAAW,CAAC,uCAAuC,CAAC,IAAI,MAAM,EAC9D,uCAAuC,EACvC,CAAC,EACD,MAAM,CACP,CAAC;IACF,MAAM,qBAAqB,GAAG,2BAA2B,CACvD,WAAW,CAAC,gCAAgC,CAAC,IAAI,MAAM,EACvD,gCAAgC,EAChC,GAAG,EACH,MAAM,CACP,CAAC;IACF,IAAI,qBAAqB,GAAG,0BAA0B,EAAE,CAAC;QACvD,MAAM,IAAI,KAAK,CACb,kEAAkE;YAChE,iEAAiE;YACjE,+CAA+C,CAClD,CAAC;IACJ,CAAC;IACD,MAAM,yBAAyB,GAAG,2BAA2B,CAC3D,WAAW,CAAC,sCAAsC,CAAC,IAAI,IAAI,EAC3D,sCAAsC,EACtC,CAAC,EACD,GAAG,CACJ,CAAC;IACF,MAAM,oBAAoB,GAAG,yBAAyB,CACpD,WAAW,CAAC,8BAA8B,CAAC,IAAI,UAAU,CAC1D,CAAC;IACF,MAAM,QAAQ,GAAG,aAAa,CAC5B,WAAW,CAAC,kBAAkB,CAAC,IAAI,MAAM,CAC1C,CAAC;IACF,MAAM,sBAAsB,GAC1B,CAAC,WAAW,CAAC,sBAAsB,CAAC,EAAE,IAAI,EAAE,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IAChE,MAAM,iBAAiB,GACrB,WAAW,CAAC,6BAA6B,CAAC,EAAE,IAAI,EAAE,IAAI,SAAS,CAAC;IAClE,MAAM,gBAAgB,GACpB,WAAW,CAAC,4BAA4B,CAAC,EAAE,IAAI,EAAE,IAAI,SAAS,CAAC;IACjE,IAAI,CAAC,iBAAiB,KAAK,SAAS,CAAC;QACnC,CAAC,gBAAgB,KAAK,SAAS,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CACb,yFAAyF,CAC1F,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,gBAAgB,CAAC,WAAW,EAAE,oBAAoB,CAAC,CAAC;IAEvE,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,eAAe;QACf,OAAO;QACP,sBAAsB,EAAE,OAAO,CAAC,WAAW,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,CAAC;QACvE,aAAa,EAAE,iBAAiB,CAAC,WAAW,CAAC;QAC7C,mBAAmB;QACnB,mBAAmB;QACnB,sBAAsB;QACtB,0BAA0B;QAC1B,qBAAqB;QACrB,yBAAyB;QACzB,0BAA0B,EAAE,YAAY,CACtC,WAAW,CAAC,uCAAuC,CAAC,IAAI,OAAO,EAC/D,uCAAuC,CACxC;QACD,0BAA0B,EAAE,2BAA2B,CACrD,WAAW,CAAC,sCAAsC,CAAC,IAAI,QAAQ,EAC/D,sCAAsC,EACtC,KAAK,EACL,CAAC,IAAI,EAAE,CACR;QACD,6BAA6B,EAAE,2BAA2B,CACxD,WAAW,CAAC,yCAAyC,CAAC,IAAI,GAAG,EAC7D,yCAAyC,EACzC,CAAC,EACD,GAAG,CACJ;QACD,yBAAyB,EAAE,sBAAsB,CAC/C,WAAW,CAAC,qCAAqC,CAAC,IAAI,KAAK,CAC5D;QACD,qBAAqB,EAAE,0BAA0B,CAC/C,WAAW,CAAC,6BAA6B,CAAC,IAAI,EAAE,CACjD;QACD,yBAAyB,EAAE,MAAM,CAAC,MAAM,CAAC;YACvC,KAAK,EAAE,kBAAkB,CACvB,WAAW,CAAC,4BAA4B,CAAC,EACzC,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CACxC;YACD,MAAM,EAAE,kBAAkB,CACxB,WAAW,CAAC,6BAA6B,CAAC,EAC1C;gBACE,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,UAAU,CAAC;gBACtC,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,UAAU,CAAC;aACvC,CACF;YACD,MAAM,EAAE,kBAAkB,CACxB,WAAW,CAAC,6BAA6B,CAAC,EAC1C;gBACE,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,UAAU,CAAC;gBACtC,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC;aACnC,CACF;YACD,QAAQ,EAAE,kBAAkB,CAC1B,WAAW,CAAC,+BAA+B,CAAC,EAC5C;gBACE,IAAI,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,UAAU,CAAC;gBACxC,IAAI,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,MAAM,CAAC;aACrC,CACF;YACD,OAAO,EAAE,kBAAkB,CACzB,WAAW,CAAC,8BAA8B,CAAC,EAC3C,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC,CAC/C;YACD,QAAQ,EAAE,kBAAkB,CAC1B,WAAW,CAAC,+BAA+B,CAAC,EAC5C,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CACjD;YACD,MAAM,EAAE,kBAAkB,CACxB,WAAW,CAAC,6BAA6B,CAAC,EAC1C,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CACpC;YACD,KAAK,EAAE,kBAAkB,CACvB,WAAW,CAAC,4BAA4B,CAAC,EACzC,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAChD;YACD,KAAK,EAAE,kBAAkB,CACvB,WAAW,CAAC,4BAA4B,CAAC,EACzC,uBAAuB,CAAC,WAAW,CAAC,CACrC;YACD,MAAM,EAAE,kBAAkB,CACxB,WAAW,CAAC,6BAA6B,CAAC,EAC1C,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,CACzC;YACD,WAAW,EAAE,kBAAkB,CAC7B,WAAW,CAAC,mCAAmC,CAAC,EAChD,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC9C,MAAM,IAAI,GAAG,mBAAmB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;gBACvD,OAAO;oBACL,IAAI,CAAC,IAAI,EAAE,kBAAkB,CAAC;oBAC9B,IAAI,CAAC,IAAI,EAAE,eAAe,EAAE,yBAAyB,CAAC;iBACvD,CAAC;YACJ,CAAC,CAAC,CACH;YACD,IAAI,EAAE,kBAAkB,CACtB,WAAW,CAAC,2BAA2B,CAAC,EACxC,CAAC,IAAI,CACH,mBAAmB,CAAC,WAAW,EAAE,MAAM,CAAC,EACxC,eAAe,EACf,gBAAgB,EAChB,oBAAoB,CACrB,CAAC,CACH;YACD,GAAG,EAAE,kBAAkB,CACrB,WAAW,CAAC,0BAA0B,CAAC,EACvC,oBAAoB,CAAC,WAAW,CAAC,CAClC;YACD,KAAK,EAAE,kBAAkB,CACvB,WAAW,CAAC,4BAA4B,CAAC,EACzC,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAC1C;YACD,UAAU,EAAE,kBAAkB,CAC5B,WAAW,CAAC,kCAAkC,CAAC,EAC/C;gBACE,GAAG,wBAAwB,CAAC,WAAW,EAAE,wBAAwB,CAAC;gBAClE,kEAAkE;gBAClE,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC;aAC3C,CACF;YACD,OAAO,EAAE,kBAAkB,CACzB,WAAW,CAAC,+BAA+B,CAAC,EAC5C,wBAAwB,CAAC,WAAW,EAAE,4BAA4B,CAAC,CACpE;YACD,QAAQ,EAAE,kBAAkB,CAC1B,WAAW,CAAC,gCAAgC,CAAC,EAC7C,wBAAwB,CAAC,WAAW,EAAE,oBAAoB,CAAC,CAC5D;YACD,OAAO,EAAE,kBAAkB,CACzB,WAAW,CAAC,8BAA8B,CAAC,EAC3C,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC,CAC7C;SACF,CAAC;QACF,QAAQ;QACR,oBAAoB;QACpB,sBAAsB;QACtB,oBAAoB,EAAE,YAAY,CAChC,WAAW,CAAC,+BAA+B,CAAC,IAAI,OAAO,EACvD,+BAA+B,CAChC;QACD,qBAAqB,EAAE,YAAY,CAAC,WAAW,CAAC,gCAAgC,CAAC,IAAI,OAAO,EAAE,gCAAgC,CAAC;QAC/H,WAAW,EAAE,YAAY,CAAC,WAAW,CAAC,qBAAqB,CAAC,IAAI,MAAM,EAAE,qBAAqB,CAAC;QAC9F,yBAAyB,EAAE,2BAA2B,CACpD,WAAW,CAAC,qCAAqC,CAAC,IAAI,OAAO,EAC7D,qCAAqC,EACrC,GAAG,EACH,OAAO,CACR;QACD,SAAS,EAAE,WAAW,CAAC,oBAAoB,CAAC,EAAE,IAAI,EAAE,IAAI,SAAS;QACjE,iBAAiB;QACjB,gBAAgB;QAChB,MAAM,EAAE,UAAU,CAAC,MAAM;QACzB,6BAA6B,EAAE,UAAU,CAAC,OAAO;KAClD,CAAC,CAAC;AACL,CAAC;AAED,mEAAmE;AACnE,MAAM,UAAU,iBAAiB,CAAC,WAA8B;IAC9D,OAAO,WAAW,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE;QAC3C,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;AAC3C,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAa;IACzC,OAAO,gBAAgB,CAAC,KAAK,EAAE,0BAA0B,CAAC,CAAC;AAC7D,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAa,EAAE,IAAY;IACnD,IAAI,GAAQ,CAAC;IACb,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,uBAAuB,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,UAAU,GACd,GAAG,CAAC,QAAQ,KAAK,WAAW;QAC5B,GAAG,CAAC,QAAQ,KAAK,WAAW;QAC5B,GAAG,CAAC,QAAQ,KAAK,KAAK;QACtB,GAAG,CAAC,QAAQ,KAAK,OAAO,CAAC;IAC3B,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,CAAC,UAAU,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO,CAAC,EAAE,CAAC;QAC3E,MAAM,IAAI,KAAK,CACb,GAAG,IAAI,6CAA6C,CACrD,CAAC;IACJ,CAAC;IAED,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CACb,GAAG,IAAI,yCAAyC,CACjD,CAAC;IACJ,CAAC;IAED,IAAI,GAAG,CAAC,QAAQ,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;QACnD,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,wDAAwD,CAAC,CAAC;IACnF,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAa,EAAE,IAAY;IACvD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;QACjD,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,8BAA8B,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,aAAa,CAAC,KAAa,EAAE,IAAY;IAChD,MAAM,MAAM,GAAG,oBAAoB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACjD,IAAI,MAAM,GAAG,KAAK,IAAI,MAAM,GAAG,SAAS,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,iDAAiD,CAAC,CAAC;IAC5E,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,2BAA2B,CAClC,KAAa,EACb,IAAY,EACZ,OAAe,EACf,OAAe;IAEf,MAAM,MAAM,GAAG,oBAAoB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACjD,IAAI,MAAM,GAAG,OAAO,IAAI,MAAM,GAAG,OAAO,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,oBAAoB,OAAO,QAAQ,OAAO,GAAG,CAAC,CAAC;IACxE,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,2EAA2E;AAC3E,MAAM,CAAC,MAAM,mBAAmB,GAC9B,MAAM,CAAC,MAAM,CAAC;IACZ,aAAa,EAAE,+BAA+B;IAC9C,eAAe,EAAE,iCAAiC;IAClD,gBAAgB,EAAE,kCAAkC;IACpD,gBAAgB,EAAE,kCAAkC;IACpD,cAAc,EAAE,gCAAgC;IAChD,SAAS,EAAE,2BAA2B;IACtC,WAAW,EAAE,6BAA6B;IAC1C,WAAW,EAAE,6BAA6B;IAC1C,cAAc,EAAE,gCAAgC;IAChD,gBAAgB,EAAE,kCAAkC;IACpD,eAAe,EAAE,kCAAkC;IACnD,iBAAiB,EAAE,mCAAmC;IACtD,UAAU,EAAE,4BAA4B;IACxC,aAAa,EAAE,+BAA+B;IAC9C,eAAe,EAAE,iCAAiC;IAClD,gBAAgB,EAAE,kCAAkC;IACpD,YAAY,EAAE,8BAA8B;IAC5C,SAAS,EAAE,2BAA2B;IACtC,eAAe,EAAE,iCAAiC;IAClD,cAAc,EAAE,gCAAgC;IAChD,eAAe,EAAE,iCAAiC;IAClD,YAAY,EAAE,8BAA8B;IAC5C,SAAS,EAAE,2BAA2B;IACtC,YAAY,EAAE,8BAA8B;IAC5C,cAAc,EAAE,gCAAgC;CACjD,CAAC,CAAC;AAEL,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,CACxC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAA+B,CAC/D,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,6BAA6B,GACxC,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAErF,SAAS,gBAAgB,CACvB,WAA8B,EAC9B,OAA6B;IAE7B,MAAM,aAAa,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC;IACtE,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAC/B,oBAAoB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC;QACrC,QAAQ;QACR,YAAY,CACV,WAAW,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;YACxC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,EACjC,mBAAmB,CAAC,QAAQ,CAAC,CAC9B;KACF,CAAC,CACwC,CAAC;IAC7C,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;QACvB,kEAAkE;QAClE,sEAAsE;QACtE,KAAK,MAAM,QAAQ,IAAI,6BAA6B,EAAE,CAAC;YACrD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;gBAAE,SAAS;YAChC,MAAM,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;YACzB,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;QAC7B,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;KAChC,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,4BAA4B,CAC1C,QAA2B;IAE3B,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAC3B,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MACpC,iEAAiE;QAC/D,sGAAsG,CAAC;AAC3G,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,yBAAyB,CACvC,MAAwB,EACxB,cAAgD;IAEhD,IAAI,cAAc,KAAK,MAAM;QAAE,OAAO,MAAM,CAAC;IAC7C,MAAM,UAAU,GAA4C,EAAE,GAAG,MAAM,EAAE,CAAC;IAC1E,KAAK,MAAM,QAAQ,IAAI,6BAA6B,EAAE,CAAC;QACrD,UAAU,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;IAC/B,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,yBAAyB,CAAC,KAAa;IAC9C,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC9C,IAAI,UAAU,KAAK,UAAU,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;QACvD,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,MAAM,IAAI,KAAK,CACb,wDAAwD,CACzD,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAa;IAC3C,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC9C,IAAI,UAAU,KAAK,KAAK,IAAI,UAAU,KAAK,UAAU,EAAE,CAAC;QACtD,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,MAAM,IAAI,KAAK,CACb,8DAA8D,CAC/D,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,KAAa,EAAE,IAAY;IAC/C,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC9C,IAAI,UAAU,KAAK,MAAM,IAAI,UAAU,KAAK,GAAG;QAAE,OAAO,IAAI,CAAC;IAC7D,IAAI,UAAU,KAAK,OAAO,IAAI,UAAU,KAAK,GAAG;QAAE,OAAO,KAAK,CAAC;IAC/D,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,yBAAyB,CAAC,CAAC;AACpD,CAAC;AAED,SAAS,0BAA0B,CAAC,KAAa;IAC/C,MAAM,QAAQ,GAAG,KAAK;SACnB,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;SAChC,MAAM,CAAC,OAAO,CAAC,CAAC;IACnB,IAAI,QAAQ,CAAC,MAAM,GAAG,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC,EAAE,CAAC;QAC7E,MAAM,IAAI,KAAK,CACb,2EAA2E,CAC5E,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACjC,CAAC;AAED;;;;;GAKG;AACH,SAAS,uBAAuB,CAC9B,WAA8B;IAE9B,MAAM,QAAQ,GAAG,WAAW,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,CAAC;IACxD,IAAI,QAAQ,KAAK,SAAS,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnD,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;IAC9C,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,WAAW,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE;YAC5C,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QACxC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;IAC/D,CAAC;IACD,MAAM,QAAQ,GAAG,WAAW,CAAC,eAAe,CAAC,EAAE,IAAI,EAAE,CAAC;IACtD,OAAO,CAAC,IAAI,CACV,QAAQ,KAAK,SAAS,IAAI,UAAU,CAAC,QAAQ,CAAC;YAC5C,CAAC,CAAC,QAAQ;YACV,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,EACtC,OAAO,EACP,UAAU,CACX,CAAC,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACH,SAAS,oBAAoB,CAC3B,WAA8B;IAE9B,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,MAAM,YAAY,GAAG,WAAW,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE;YACtD,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QACtC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;IAChD,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAClC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,qBAAqB,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;IAC/E,CAAC;IACD,MAAM,QAAQ,GAAG;QACf,WAAW,CAAC,uBAAuB,CAAC,EAAE,IAAI,EAAE;QAC5C,WAAW,CAAC,eAAe,CAAC,EAAE,IAAI,EAAE;KACrC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5D,OAAO;QACL,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC;QACtE,IAAI,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC;KACxE,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH;;;;GAIG;AACH,SAAS,wBAAwB,CAC/B,WAA8B,EAC9B,SAAiB;IAEjB,OAAO,CAAC,MAAM,EAAE,iBAAiB,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,CACtF,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,OAAO,CAAC,EAAE,eAAe,EAAE,SAAS,EAAE,OAAO,CAAC,CAClG,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAC1B,WAA8B,EAC9B,OAAe;IAEf,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,WAAW,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE;YAC5C,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QACxC,OAAO,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACxC,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAC5E,CAAC;IACD,MAAM,UAAU,GAAG,WAAW,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,CAAC;IAC1D,OAAO,IAAI,CACT,UAAU,KAAK,SAAS,IAAI,UAAU,CAAC,UAAU,CAAC;QAChD,CAAC,CAAC,UAAU;QACZ,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,EAC9B,OAAO,EACP,MAAM,CACP,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CACzB,KAAyB,EACzB,QAA2B;IAE3B,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QAC/C,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;IACtC,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,MAAM,EAAE,CAAC;QAC1C,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC3B,CAAC;IACD,MAAM,WAAW,GAAG,KAAK;SACtB,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;SACpC,MAAM,CAAC,OAAO,CAAC,CAAC;IACnB,IACE,WAAW,CAAC,MAAM,GAAG,EAAE;QACvB,WAAW,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,KAAK,CAAC,EACzD,CAAC;QACD,MAAM,IAAI,KAAK,CACb,2DAA2D,CAC5D,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,aAAa,CAAC,KAAa;IAClC,IACE,KAAK,KAAK,OAAO;QACjB,KAAK,KAAK,MAAM;QAChB,KAAK,KAAK,MAAM;QAChB,KAAK,KAAK,OAAO,EACjB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;AAC3E,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"connection-config.d.ts","sourceRoot":"","sources":["../../src/connection-config.ts"],"names":[],"mappings":"AAGA,mFAAmF;AACnF,wBAAsB,qBAAqB,CACzC,WAAW,EAAE,MAAM,CAAC,UAAU,EAC9B,KAAK,GAAE,SAAS,MAAM,EAAO,GAC5B,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAe5B"}
1
+ {"version":3,"file":"connection-config.d.ts","sourceRoot":"","sources":["../../src/connection-config.ts"],"names":[],"mappings":"AAIA,mFAAmF;AACnF,wBAAsB,qBAAqB,CACzC,WAAW,EAAE,MAAM,CAAC,UAAU,EAC9B,KAAK,GAAE,SAAS,MAAM,EAAO,GAC5B,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAkB5B"}
@@ -1,5 +1,6 @@
1
1
  import { loadConfig } from "./config.js";
2
2
  import { FileCredentialStore } from "./credential-store.js";
3
+ import { trustSavedAuthority } from "./server-authority.js";
3
4
  /** Restore paired endpoints so a new terminal/service cannot switch workspaces. */
4
5
  export async function connectionEnvironment(environment, flags = []) {
5
6
  const result = { ...environment };
@@ -13,6 +14,10 @@ export async function connectionEnvironment(environment, flags = []) {
13
14
  result[name] = value;
14
15
  }
15
16
  const initial = loadConfig(result);
17
+ // A company's own server: trust the authority pinned when this computer paired.
18
+ const authority = trustSavedAuthority(initial.dataDirectory);
19
+ if (authority !== undefined)
20
+ result["PHIGON_TLS_CA_FILE"] ||= authority;
16
21
  const credential = await new FileCredentialStore(initial.dataDirectory).load();
17
22
  if (!credential)
18
23
  return result;
@@ -1 +1 @@
1
- {"version":3,"file":"connection-config.js","sourceRoot":"","sources":["../../src/connection-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,mFAAmF;AACnF,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,WAA8B,EAC9B,QAA2B,EAAE;IAE7B,MAAM,MAAM,GAAG,EAAE,GAAG,WAAW,EAAE,CAAC;IAClC,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,qBAAqB,EAAE,0BAA0B,CAAC,EAAE,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAU,EAAE,CAAC;QAC7H,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,KAAK,GAAG,CAAC;YAAE,SAAS;QACxB,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAC/B,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,4BAA4B,CAAC,CAAC;QAC3F,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;IACvB,CAAC;IACD,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IACnC,MAAM,UAAU,GAAG,MAAM,IAAI,mBAAmB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,IAAI,EAAE,CAAC;IAC/E,IAAI,CAAC,UAAU;QAAE,OAAO,MAAM,CAAC;IAC/B,MAAM,CAAC,0BAA0B,CAAC,KAAK,UAAU,CAAC,kBAAkB,CAAC;IACrE,IAAI,UAAU,CAAC,UAAU;QAAE,MAAM,CAAC,iBAAiB,CAAC,KAAK,UAAU,CAAC,UAAU,CAAC;IAC/E,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"connection-config.js","sourceRoot":"","sources":["../../src/connection-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,mFAAmF;AACnF,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,WAA8B,EAC9B,QAA2B,EAAE;IAE7B,MAAM,MAAM,GAAG,EAAE,GAAG,WAAW,EAAE,CAAC;IAClC,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,qBAAqB,EAAE,0BAA0B,CAAC,EAAE,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAU,EAAE,CAAC;QAC7H,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,KAAK,GAAG,CAAC;YAAE,SAAS;QACxB,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAC/B,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,4BAA4B,CAAC,CAAC;QAC3F,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;IACvB,CAAC;IACD,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IACnC,gFAAgF;IAChF,MAAM,SAAS,GAAG,mBAAmB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAC7D,IAAI,SAAS,KAAK,SAAS;QAAE,MAAM,CAAC,oBAAoB,CAAC,KAAK,SAAS,CAAC;IACxE,MAAM,UAAU,GAAG,MAAM,IAAI,mBAAmB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,IAAI,EAAE,CAAC;IAC/E,IAAI,CAAC,UAAU;QAAE,OAAO,MAAM,CAAC;IAC/B,MAAM,CAAC,0BAA0B,CAAC,KAAK,UAAU,CAAC,kBAAkB,CAAC;IACrE,IAAI,UAAU,CAAC,UAAU;QAAE,MAAM,CAAC,iBAAiB,CAAC,KAAK,UAAU,CAAC,UAAU,CAAC;IAC/E,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -1,3 +1,19 @@
1
- /** Pure redaction shared by collection and model egress. Run before truncation. */
1
+ /** Pure redaction shared by collection, model egress and command output. Run before truncation. */
2
2
  export declare function redactSecrets(value: string, marker?: string): string;
3
+ /**
4
+ * Names whose values are credentials, in environment variables and in
5
+ * NAME=value text. A name ending in "key", "pass" or "pwd" counts after a
6
+ * separator or a credential word only, so names such as monkey, cacheKey,
7
+ * PWD and primary_key, and token counts such as max_tokens, stay readable.
8
+ */
9
+ export declare function credentialName(name: string): boolean;
10
+ /**
11
+ * Names whose values may be credentials, judged broadly: which variables a
12
+ * remote command may inherit from the observer's environment, and which
13
+ * environment values are masked in its output. A command that misses a
14
+ * variable costs little; one that receives a secret can print it, so this
15
+ * keeps every name the narrower credentialName lets through, such as
16
+ * STRIPEKEY, MY_TOKEN_VALUE or AZURE_CREDENTIAL_FILE.
17
+ */
18
+ export declare function credentialEnvironmentName(name: string): boolean;
3
19
  //# sourceMappingURL=content-redaction.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"content-redaction.d.ts","sourceRoot":"","sources":["../../src/content-redaction.ts"],"names":[],"mappings":"AAAA,mFAAmF;AACnF,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,SAAsB,GAAG,MAAM,CASjF"}
1
+ {"version":3,"file":"content-redaction.d.ts","sourceRoot":"","sources":["../../src/content-redaction.ts"],"names":[],"mappings":"AAAA,mGAAmG;AACnG,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,SAAsB,GAAG,MAAM,CAwBjF;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGpD;AAED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAI/D"}
@@ -1,12 +1,60 @@
1
- /** Pure redaction shared by collection and model egress. Run before truncation. */
1
+ /** Pure redaction shared by collection, model egress and command output. Run before truncation. */
2
2
  export function redactSecrets(value, marker = "[REDACTED_SECRET]") {
3
3
  return value
4
4
  .replace(/\x1b\[[0-?]*[ -/]*[@-~]/gu, "")
5
5
  // An unterminated block is sensitive through the end, including bounded
6
6
  // command captures that stopped halfway through a private key.
7
7
  .replace(/-----BEGIN (?:[A-Z0-9 ]*PRIVATE KEY|PGP PRIVATE KEY BLOCK)-----[\s\S]*?(?:-----END (?:[A-Z0-9 ]*PRIVATE KEY|PGP PRIVATE KEY BLOCK)-----|$)/gu, marker)
8
- .replace(/\b(?:sk-[A-Za-z0-9_-]+|gh[pousr]_[A-Za-z0-9]+|github_pat_[A-Za-z0-9_]+|AKIA[0-9A-Z]+)\b/gu, marker)
8
+ .replace(/\b(?:sk-[A-Za-z0-9_-]+|sk_(?:live|test)_[A-Za-z0-9]+|phg_m_[A-Za-z0-9_-]+|gh[pousr]_[A-Za-z0-9]+|github_pat_[A-Za-z0-9_]+|AKIA[0-9A-Z]+|xox[abeoprs]-[A-Za-z0-9-]+|AIza[0-9A-Za-z_-]{35}|npm_[A-Za-z0-9]{20,})\b/gu, marker)
9
+ .replace(tokenFormats, marker)
10
+ .replace(/\beyJ[A-Za-z0-9_-]+\.eyJ[A-Za-z0-9_-]+\.[A-Za-z0-9_-]*/gu, marker)
11
+ // Bounded scheme length: an open-ended one made long dotted runs quadratic.
12
+ // The user may be empty, as in redis://:password@host.
13
+ .replace(/(\b[a-z][a-z0-9+.-]{0,31}:\/\/)[^\s/:@]*:[^\s/@]+@/giu, `$1${marker}@`)
14
+ // Non-bearer schemes carry the credential after the scheme word.
15
+ .replace(/(\bauthorization["']?\s*[:=]\s*)(?:Basic|Digest|Token)\s+[^\s,}"']+/giu, `$1${marker}`)
9
16
  .replace(/\b(Bearer\s+)[A-Za-z0-9._~+/=-]+/giu, `$1${marker}`)
10
- .replace(/(["']?(?:api[_-]?key|access[_-]?token|client[_-]?secret|password|passwd|private[_-]?key|authorization)["']?\s*[:=]\s*)(?:"[^"\n]*(?:"|$)|'[^'\n]*(?:'|$)|[^,\s}]+)/gimu, `$1${marker}`);
17
+ // No leading "[\w-]*": matching from the keyword itself keeps names such as
18
+ // refresh_token covered without rescanning every word run (quadratic).
19
+ .replace(/(["']?(?:api[_-]?key|token|secret(?:[_-]access[_-]key)?|password|passwd|private[_-]?key|authorization)["']?\s*[:=]\s*)(?:"[^"\n]*(?:"|$)|'[^'\n]*(?:'|$)|[^,\s}]+)/gimu, `$1${marker}`)
20
+ // Any other NAME=value or "name": value whose name is a credential's.
21
+ // Short values such as ids and booleans stay readable.
22
+ .replace(assignment, (match, lead, quote, name, separator, item) => credentialName(name) && item.replace(/^["']|["']$/gu, "").length >= 6 && !item.includes("[REDACTED")
23
+ ? `${lead}${quote}${name}${quote}${separator}${marker}`
24
+ : match);
11
25
  }
26
+ /**
27
+ * Names whose values are credentials, in environment variables and in
28
+ * NAME=value text. A name ending in "key", "pass" or "pwd" counts after a
29
+ * separator or a credential word only, so names such as monkey, cacheKey,
30
+ * PWD and primary_key, and token counts such as max_tokens, stay readable.
31
+ */
32
+ export function credentialName(name) {
33
+ const lower = name.toLowerCase();
34
+ return credentialNamePattern.test(lower) && !keyNamePattern.test(lower);
35
+ }
36
+ /**
37
+ * Names whose values may be credentials, judged broadly: which variables a
38
+ * remote command may inherit from the observer's environment, and which
39
+ * environment values are masked in its output. A command that misses a
40
+ * variable costs little; one that receives a secret can print it, so this
41
+ * keeps every name the narrower credentialName lets through, such as
42
+ * STRIPEKEY, MY_TOKEN_VALUE or AZURE_CREDENTIAL_FILE.
43
+ */
44
+ export function credentialEnvironmentName(name) {
45
+ const lower = name.toLowerCase();
46
+ if (lower === "key" || lower === "pwd" || lower === "oldpwd")
47
+ return false;
48
+ return credentialName(name) || broadCredentialNamePattern.test(lower);
49
+ }
50
+ const broadCredentialNamePattern = /token|secret|passw(?:or)?d|api[_-]?key|passphrase|credential|cookie|(?:key|pwd)$|(?:^|[_.-])auth$|dsn$|connection[_-]?string/u;
51
+ // Well-known credential formats with a fixed prefix. Phigon access keys are
52
+ // phg_<12 base32>_<32 base32>; license keys are phl_<payload>.<signature> in
53
+ // base64url; enrollment codes are phe_<32 base64url>; AWS temporary key IDs
54
+ // are ASIA and 16 more characters.
55
+ const tokenFormats = /\b(?:phg_[a-z2-7]{12}_[a-z2-7]{32}|phl_[A-Za-z0-9_-]{16,}\.[A-Za-z0-9_-]{43,}|phe_[A-Za-z0-9_-]{32,}|ASIA[0-9A-Z]{16}\b|GOCSPX-[A-Za-z0-9_-]{20,}|whsec_[A-Za-z0-9+/]{20,}={0,2}|https?:\/\/hooks\.slack\.com\/services\/[A-Za-z0-9_/-]+|glpat-[A-Za-z0-9_-]{20,}|xapp-[A-Za-z0-9-]{10,}|hf_[A-Za-z0-9]{30,}|ya29\.[A-Za-z0-9_-]{20,}|SG\.[A-Za-z0-9_-]{16,}\.[A-Za-z0-9_-]{16,}|rk_(?:live|test)_[A-Za-z0-9]{10,}|shp(?:at|ca|pa|ss)_[a-fA-F0-9]{32}|dop_v1_[a-f0-9]{64}|pypi-[A-Za-z0-9_-]{50,})/gu;
56
+ const credentialNamePattern = /passw(?:or)?d|passphrase|secret(?!s$)|token$|credentials?$|cookie$|api[_-]?key$|(?:access|account|private|signing|encryption|master|license|subscription|client)[_-]?key$|[_.-](?:key|pass|pwd)$|(?:^|[_.-])auth$|dsn$|connection[_-]?string/u;
57
+ // Keys that name or index something rather than unlock it.
58
+ const keyNamePattern = /(?:primary|foreign|sort|partition|cache|public|idempotency|unique|hash|range|row|object|composite)[_.-]?key$/u;
59
+ const assignment = /(^|[\s;,{(&?-])(["']?)([A-Za-z_][A-Za-z0-9_.-]{0,127})\2([ \t]*[:=][ \t]*)("[^"\n]*"|'[^'\n]*'|[^\s,;}&]+)/gmu;
12
60
  //# sourceMappingURL=content-redaction.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"content-redaction.js","sourceRoot":"","sources":["../../src/content-redaction.ts"],"names":[],"mappings":"AAAA,mFAAmF;AACnF,MAAM,UAAU,aAAa,CAAC,KAAa,EAAE,MAAM,GAAG,mBAAmB;IACvE,OAAO,KAAK;SACT,OAAO,CAAC,2BAA2B,EAAE,EAAE,CAAC;QACzC,wEAAwE;QACxE,+DAA+D;SAC9D,OAAO,CAAC,8IAA8I,EAAE,MAAM,CAAC;SAC/J,OAAO,CAAC,2FAA2F,EAAE,MAAM,CAAC;SAC5G,OAAO,CAAC,qCAAqC,EAAE,KAAK,MAAM,EAAE,CAAC;SAC7D,OAAO,CAAC,wKAAwK,EAAE,KAAK,MAAM,EAAE,CAAC,CAAC;AACtM,CAAC"}
1
+ {"version":3,"file":"content-redaction.js","sourceRoot":"","sources":["../../src/content-redaction.ts"],"names":[],"mappings":"AAAA,mGAAmG;AACnG,MAAM,UAAU,aAAa,CAAC,KAAa,EAAE,MAAM,GAAG,mBAAmB;IACvE,OAAO,KAAK;SACT,OAAO,CAAC,2BAA2B,EAAE,EAAE,CAAC;QACzC,wEAAwE;QACxE,+DAA+D;SAC9D,OAAO,CAAC,8IAA8I,EAAE,MAAM,CAAC;SAC/J,OAAO,CAAC,oNAAoN,EAAE,MAAM,CAAC;SACrO,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC;SAC7B,OAAO,CAAC,0DAA0D,EAAE,MAAM,CAAC;QAC5E,4EAA4E;QAC5E,uDAAuD;SACtD,OAAO,CAAC,uDAAuD,EAAE,KAAK,MAAM,GAAG,CAAC;QACjF,iEAAiE;SAChE,OAAO,CAAC,wEAAwE,EAAE,KAAK,MAAM,EAAE,CAAC;SAChG,OAAO,CAAC,qCAAqC,EAAE,KAAK,MAAM,EAAE,CAAC;QAC9D,4EAA4E;QAC5E,uEAAuE;SACtE,OAAO,CAAC,wKAAwK,EAAE,KAAK,MAAM,EAAE,CAAC;QACjM,sEAAsE;QACtE,uDAAuD;SACtD,OAAO,CAAC,UAAU,EAAE,CAAC,KAAa,EAAE,IAAY,EAAE,KAAa,EAAE,IAAY,EAAE,SAAiB,EAAE,IAAY,EAAE,EAAE,CACjH,cAAc,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;QAClG,CAAC,CAAC,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,SAAS,GAAG,MAAM,EAAE;QACvD,CAAC,CAAC,KAAK,CAAC,CAAC;AACjB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IACjC,OAAO,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC1E,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,yBAAyB,CAAC,IAAY;IACpD,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IACjC,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC3E,OAAO,cAAc,CAAC,IAAI,CAAC,IAAI,0BAA0B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACxE,CAAC;AAED,MAAM,0BAA0B,GAAG,+HAA+H,CAAC;AAEnK,4EAA4E;AAC5E,6EAA6E;AAC7E,4EAA4E;AAC5E,mCAAmC;AACnC,MAAM,YAAY,GAAG,seAAse,CAAC;AAC5f,MAAM,qBAAqB,GAAG,+OAA+O,CAAC;AAC9Q,2DAA2D;AAC3D,MAAM,cAAc,GAAG,+GAA+G,CAAC;AACvI,MAAM,UAAU,GAAG,+GAA+G,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { rename } from "node:fs/promises";
1
2
  export type StoredMachineCredential = Readonly<{
2
3
  machineId: string;
3
4
  tenantId: string;
@@ -8,14 +9,32 @@ export type StoredMachineCredential = Readonly<{
8
9
  consentProfile?: "metadata" | "full";
9
10
  consentPolicyVersion?: string;
10
11
  consentedAt?: string;
12
+ /**
13
+ * Who consented: the computer's owner at pairing, or the company with an
14
+ * enrollment code. Credentials saved before enrollment codes existed have
15
+ * none and are the owner's.
16
+ */
17
+ consentSource?: ConsentSource;
18
+ /** The enrollment code the company consented with, by ID and label. */
19
+ enrollmentCodeId?: string;
20
+ enrollmentCodeLabel?: string;
11
21
  }>;
22
+ export type ConsentSource = "owner" | "company";
23
+ /** Who consented for this computer; the owner unless the company did. */
24
+ export declare function consentSourceOf(credential: StoredMachineCredential): ConsentSource;
25
+ /** The longest enrollment code label kept, in characters. */
26
+ export declare const maxEnrollmentCodeLabelLength = 100;
12
27
  export interface CredentialStore {
13
28
  save(value: StoredMachineCredential): Promise<void>;
14
29
  load(): Promise<StoredMachineCredential | null>;
15
30
  }
31
+ /** The machine credential's file name in the data directory. */
32
+ export declare const credentialFileName = "machine-credential.json";
16
33
  export declare class FileCredentialStore implements CredentialStore {
17
34
  #private;
18
- constructor(dataDirectory: string);
35
+ constructor(dataDirectory: string, options?: Readonly<{
36
+ rename?: typeof rename;
37
+ }>);
19
38
  save(value: StoredMachineCredential): Promise<void>;
20
39
  load(): Promise<StoredMachineCredential | null>;
21
40
  clear(): Promise<boolean>;
@@ -1 +1 @@
1
- {"version":3,"file":"credential-store.d.ts","sourceRoot":"","sources":["../../src/credential-store.ts"],"names":[],"mappings":"AAWA,MAAM,MAAM,uBAAuB,GAAG,QAAQ,CAAC;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC;IACrC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC,CAAC;AAEH,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,IAAI,IAAI,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC,CAAC;CACjD;AAED,qBAAa,mBAAoB,YAAW,eAAe;;gBAI7C,aAAa,EAAE,MAAM;IAK3B,IAAI,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBnD,IAAI,IAAI,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC;IAqB/C,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC;CAWhC"}
1
+ {"version":3,"file":"credential-store.d.ts","sourceRoot":"","sources":["../../src/credential-store.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,MAAM,EAGP,MAAM,kBAAkB,CAAC;AAK1B,MAAM,MAAM,uBAAuB,GAAG,QAAQ,CAAC;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC;IACrC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,uEAAuE;IACvE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,SAAS,CAAC;AAEhD,yEAAyE;AACzE,wBAAgB,eAAe,CAAC,UAAU,EAAE,uBAAuB,GAAG,aAAa,CAElF;AAED,6DAA6D;AAC7D,eAAO,MAAM,4BAA4B,MAAM,CAAC;AAEhD,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,IAAI,IAAI,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC,CAAC;CACjD;AAED,gEAAgE;AAChE,eAAO,MAAM,kBAAkB,4BAA4B,CAAC;AAE5D,qBAAa,mBAAoB,YAAW,eAAe;;gBAMvD,aAAa,EAAE,MAAM,EACrB,OAAO,GAAE,QAAQ,CAAC;QAAE,MAAM,CAAC,EAAE,OAAO,MAAM,CAAA;KAAE,CAAM;IAO9C,IAAI,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBnD,IAAI,IAAI,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC;IAqB/C,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC;CAWhC"}
@@ -1,21 +1,35 @@
1
+ import { makeDirectoryPrivate } from "./private-directory.js";
1
2
  import { chmod, mkdir, readFile, rename, unlink, writeFile, } from "node:fs/promises";
2
3
  import { randomUUID } from "node:crypto";
3
4
  import { join } from "node:path";
5
+ import { atomicReplace } from "./atomic-replace.js";
6
+ /** Who consented for this computer; the owner unless the company did. */
7
+ export function consentSourceOf(credential) {
8
+ return credential.consentSource ?? "owner";
9
+ }
10
+ /** The longest enrollment code label kept, in characters. */
11
+ export const maxEnrollmentCodeLabelLength = 100;
12
+ /** The machine credential's file name in the data directory. */
13
+ export const credentialFileName = "machine-credential.json";
4
14
  export class FileCredentialStore {
5
15
  #dataDirectory;
6
16
  #credentialPath;
7
- constructor(dataDirectory) {
17
+ #rename;
18
+ constructor(dataDirectory, options = {}) {
8
19
  this.#dataDirectory = dataDirectory;
9
- this.#credentialPath = join(dataDirectory, "machine-credential.json");
20
+ this.#credentialPath = join(dataDirectory, credentialFileName);
21
+ this.#rename = options.rename ?? rename;
10
22
  }
11
23
  async save(value) {
12
24
  validateCredential(value);
13
25
  await mkdir(this.#dataDirectory, { recursive: true, mode: 0o700 });
14
- await chmod(this.#dataDirectory, 0o700);
26
+ await makeDirectoryPrivate(this.#dataDirectory);
15
27
  const temporaryPath = `${this.#credentialPath}.${process.pid}.${randomUUID()}.tmp`;
16
28
  try {
17
29
  await writeFile(temporaryPath, `${JSON.stringify(value)}\n`, { encoding: "utf8", flag: "wx", mode: 0o600 });
18
- await rename(temporaryPath, this.#credentialPath);
30
+ // Windows refuses a rename while antivirus or an indexer holds the
31
+ // file open; atomicReplace waits briefly and tries again.
32
+ await atomicReplace(temporaryPath, this.#credentialPath, this.#rename);
19
33
  await chmod(this.#credentialPath, 0o600);
20
34
  }
21
35
  catch (error) {
@@ -94,6 +108,17 @@ function validateCredential(value) {
94
108
  typeof value.consentedAt !== "string")) {
95
109
  throw new Error("Stored machine consent evidence is invalid.");
96
110
  }
111
+ if (("consentSource" in value &&
112
+ (value.consentSource !== "owner" && value.consentSource !== "company")) ||
113
+ // The company's consent is recorded only with its profile.
114
+ ("consentSource" in value && value.consentSource === "company" && !hasConsent) ||
115
+ ("enrollmentCodeId" in value &&
116
+ (typeof value.enrollmentCodeId !== "string" || value.enrollmentCodeId.length > 64)) ||
117
+ ("enrollmentCodeLabel" in value &&
118
+ (typeof value.enrollmentCodeLabel !== "string" ||
119
+ value.enrollmentCodeLabel.length > maxEnrollmentCodeLabelLength))) {
120
+ throw new Error("Stored machine consent evidence is invalid.");
121
+ }
97
122
  }
98
123
  function isNodeError(error) {
99
124
  return error instanceof Error && "code" in error;
@@ -1 +1 @@
1
- {"version":3,"file":"credential-store.js","sourceRoot":"","sources":["../../src/credential-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"credential-store.js","sourceRoot":"","sources":["../../src/credential-store.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"custom-agent-registry.d.ts","sourceRoot":"","sources":["../../src/custom-agent-registry.ts"],"names":[],"mappings":"AAiCA,MAAM,MAAM,uBAAuB,GAAG,QAAQ,CAAC;IAC7C,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,kBAAkB,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,mBAAmB,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;CACjC,CAAC,CAAC;AAOH,qBAAa,mBAAmB;;gBAIlB,aAAa,EAAE,MAAM;IAK3B,IAAI,IAAI,OAAO,CAAC,SAAS,uBAAuB,EAAE,CAAC;IAqCnD,GAAG,CACP,KAAK,EAAE,uBAAuB,GAC7B,OAAO,CAAC,uBAAuB,CAAC;IAiB7B,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,GAAG,SAAS,CAAC;CAkCvE;AAED,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,QAAQ,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,kBAAkB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,mBAAmB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAClC,CAAC,GACD,uBAAuB,CAUzB"}
1
+ {"version":3,"file":"custom-agent-registry.d.ts","sourceRoot":"","sources":["../../src/custom-agent-registry.ts"],"names":[],"mappings":"AAkCA,MAAM,MAAM,uBAAuB,GAAG,QAAQ,CAAC;IAC7C,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,kBAAkB,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,mBAAmB,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;CACjC,CAAC,CAAC;AAOH,qBAAa,mBAAmB;;gBAIlB,aAAa,EAAE,MAAM;IAK3B,IAAI,IAAI,OAAO,CAAC,SAAS,uBAAuB,EAAE,CAAC;IAqCnD,GAAG,CACP,KAAK,EAAE,uBAAuB,GAC7B,OAAO,CAAC,uBAAuB,CAAC;IAiB7B,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,GAAG,SAAS,CAAC;CAkCvE;AAED,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,QAAQ,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,kBAAkB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,mBAAmB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAClC,CAAC,GACD,uBAAuB,CAUzB"}