@phigon/observer 8.2.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 (187) hide show
  1. package/README.md +194 -11
  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/activity/adapters/claude.d.ts.map +1 -1
  13. package/dist/src/activity/adapters/claude.js +9 -1
  14. package/dist/src/activity/adapters/claude.js.map +1 -1
  15. package/dist/src/activity/adapters/openai-compatible.d.ts.map +1 -1
  16. package/dist/src/activity/adapters/openai-compatible.js +9 -1
  17. package/dist/src/activity/adapters/openai-compatible.js.map +1 -1
  18. package/dist/src/activity/collector.d.ts +31 -1
  19. package/dist/src/activity/collector.d.ts.map +1 -1
  20. package/dist/src/activity/collector.js +337 -77
  21. package/dist/src/activity/collector.js.map +1 -1
  22. package/dist/src/activity/ingest.d.ts +9 -0
  23. package/dist/src/activity/ingest.d.ts.map +1 -1
  24. package/dist/src/activity/ingest.js +92 -3
  25. package/dist/src/activity/ingest.js.map +1 -1
  26. package/dist/src/activity/json-document-source.d.ts +15 -0
  27. package/dist/src/activity/json-document-source.d.ts.map +1 -1
  28. package/dist/src/activity/json-document-source.js +19 -2
  29. package/dist/src/activity/json-document-source.js.map +1 -1
  30. package/dist/src/activity/native-capabilities.d.ts.map +1 -1
  31. package/dist/src/activity/native-capabilities.js +8 -12
  32. package/dist/src/activity/native-capabilities.js.map +1 -1
  33. package/dist/src/activity/opencode-sqlite-source.js +1 -0
  34. package/dist/src/activity/opencode-sqlite-source.js.map +1 -1
  35. package/dist/src/activity/source-reader.d.ts +44 -3
  36. package/dist/src/activity/source-reader.d.ts.map +1 -1
  37. package/dist/src/activity/source-reader.js +325 -86
  38. package/dist/src/activity/source-reader.js.map +1 -1
  39. package/dist/src/agent-action-executor.d.ts +5 -0
  40. package/dist/src/agent-action-executor.d.ts.map +1 -1
  41. package/dist/src/agent-action-executor.js +9 -6
  42. package/dist/src/agent-action-executor.js.map +1 -1
  43. package/dist/src/atomic-replace.d.ts +7 -0
  44. package/dist/src/atomic-replace.d.ts.map +1 -1
  45. package/dist/src/atomic-replace.js +28 -3
  46. package/dist/src/atomic-replace.js.map +1 -1
  47. package/dist/src/bridge-journal.d.ts +32 -0
  48. package/dist/src/bridge-journal.d.ts.map +1 -0
  49. package/dist/src/bridge-journal.js +113 -0
  50. package/dist/src/bridge-journal.js.map +1 -0
  51. package/dist/src/cli.d.ts +7 -1
  52. package/dist/src/cli.d.ts.map +1 -1
  53. package/dist/src/cli.js +490 -43
  54. package/dist/src/cli.js.map +1 -1
  55. package/dist/src/collection-notice.d.ts +34 -0
  56. package/dist/src/collection-notice.d.ts.map +1 -0
  57. package/dist/src/collection-notice.js +73 -0
  58. package/dist/src/collection-notice.js.map +1 -0
  59. package/dist/src/config.d.ts +26 -0
  60. package/dist/src/config.d.ts.map +1 -1
  61. package/dist/src/config.js +88 -33
  62. package/dist/src/config.js.map +1 -1
  63. package/dist/src/content-redaction.d.ts +17 -1
  64. package/dist/src/content-redaction.d.ts.map +1 -1
  65. package/dist/src/content-redaction.js +44 -3
  66. package/dist/src/content-redaction.js.map +1 -1
  67. package/dist/src/credential-store.d.ts +20 -1
  68. package/dist/src/credential-store.d.ts.map +1 -1
  69. package/dist/src/credential-store.js +27 -3
  70. package/dist/src/credential-store.js.map +1 -1
  71. package/dist/src/discovery/engine.d.ts.map +1 -1
  72. package/dist/src/discovery/engine.js +1 -11
  73. package/dist/src/discovery/engine.js.map +1 -1
  74. package/dist/src/doctor-check.d.ts +51 -0
  75. package/dist/src/doctor-check.d.ts.map +1 -0
  76. package/dist/src/doctor-check.js +174 -0
  77. package/dist/src/doctor-check.js.map +1 -0
  78. package/dist/src/enroll.d.ts +86 -0
  79. package/dist/src/enroll.d.ts.map +1 -0
  80. package/dist/src/enroll.js +245 -0
  81. package/dist/src/enroll.js.map +1 -0
  82. package/dist/src/entry.d.ts +3 -0
  83. package/dist/src/entry.d.ts.map +1 -0
  84. package/dist/src/entry.js +14 -0
  85. package/dist/src/entry.js.map +1 -0
  86. package/dist/src/event-queue.d.ts +13 -1
  87. package/dist/src/event-queue.d.ts.map +1 -1
  88. package/dist/src/event-queue.js +50 -5
  89. package/dist/src/event-queue.js.map +1 -1
  90. package/dist/src/event-spool.d.ts +61 -3
  91. package/dist/src/event-spool.d.ts.map +1 -1
  92. package/dist/src/event-spool.js +290 -41
  93. package/dist/src/event-spool.js.map +1 -1
  94. package/dist/src/generated/phigon/v1/identity_pb.d.ts +7 -0
  95. package/dist/src/generated/phigon/v1/identity_pb.d.ts.map +1 -1
  96. package/dist/src/generated/phigon/v1/identity_pb.js +1 -1
  97. package/dist/src/generated/phigon/v1/identity_pb.js.map +1 -1
  98. package/dist/src/guardian-decision-journal.d.ts.map +1 -1
  99. package/dist/src/guardian-decision-journal.js +4 -20
  100. package/dist/src/guardian-decision-journal.js.map +1 -1
  101. package/dist/src/guardian-managed-exec.js +6 -19
  102. package/dist/src/guardian-managed-exec.js.map +1 -1
  103. package/dist/src/guardian-process-monitor.d.ts +1 -0
  104. package/dist/src/guardian-process-monitor.d.ts.map +1 -1
  105. package/dist/src/guardian-process-monitor.js +74 -26
  106. package/dist/src/guardian-process-monitor.js.map +1 -1
  107. package/dist/src/health.d.ts +19 -1
  108. package/dist/src/health.d.ts.map +1 -1
  109. package/dist/src/health.js +22 -1
  110. package/dist/src/health.js.map +1 -1
  111. package/dist/src/historical-identity-store.d.ts +8 -1
  112. package/dist/src/historical-identity-store.d.ts.map +1 -1
  113. package/dist/src/historical-identity-store.js +26 -9
  114. package/dist/src/historical-identity-store.js.map +1 -1
  115. package/dist/src/index.d.ts +2 -0
  116. package/dist/src/index.d.ts.map +1 -1
  117. package/dist/src/index.js +2 -0
  118. package/dist/src/index.js.map +1 -1
  119. package/dist/src/installation.d.ts +2 -0
  120. package/dist/src/installation.d.ts.map +1 -1
  121. package/dist/src/installation.js +3 -1
  122. package/dist/src/installation.js.map +1 -1
  123. package/dist/src/instance-lock.d.ts +45 -0
  124. package/dist/src/instance-lock.d.ts.map +1 -0
  125. package/dist/src/instance-lock.js +243 -0
  126. package/dist/src/instance-lock.js.map +1 -0
  127. package/dist/src/machine-command-executor.d.ts +2 -2
  128. package/dist/src/machine-command-executor.d.ts.map +1 -1
  129. package/dist/src/machine-command-executor.js +7 -20
  130. package/dist/src/machine-command-executor.js.map +1 -1
  131. package/dist/src/node-version.d.ts +8 -0
  132. package/dist/src/node-version.d.ts.map +1 -0
  133. package/dist/src/node-version.js +17 -0
  134. package/dist/src/node-version.js.map +1 -0
  135. package/dist/src/observer-log.d.ts +50 -0
  136. package/dist/src/observer-log.d.ts.map +1 -0
  137. package/dist/src/observer-log.js +141 -0
  138. package/dist/src/observer-log.js.map +1 -0
  139. package/dist/src/pair.d.ts +68 -1
  140. package/dist/src/pair.d.ts.map +1 -1
  141. package/dist/src/pair.js +204 -66
  142. package/dist/src/pair.js.map +1 -1
  143. package/dist/src/private-directory.d.ts +6 -0
  144. package/dist/src/private-directory.d.ts.map +1 -1
  145. package/dist/src/private-directory.js +33 -2
  146. package/dist/src/private-directory.js.map +1 -1
  147. package/dist/src/proxy.d.ts +68 -0
  148. package/dist/src/proxy.d.ts.map +1 -0
  149. package/dist/src/proxy.js +209 -0
  150. package/dist/src/proxy.js.map +1 -0
  151. package/dist/src/purge.d.ts +17 -0
  152. package/dist/src/purge.d.ts.map +1 -0
  153. package/dist/src/purge.js +84 -0
  154. package/dist/src/purge.js.map +1 -0
  155. package/dist/src/remove-machine.d.ts +5 -1
  156. package/dist/src/remove-machine.d.ts.map +1 -1
  157. package/dist/src/remove-machine.js +28 -14
  158. package/dist/src/remove-machine.js.map +1 -1
  159. package/dist/src/server-authority.d.ts +5 -2
  160. package/dist/src/server-authority.d.ts.map +1 -1
  161. package/dist/src/server-authority.js +10 -6
  162. package/dist/src/server-authority.js.map +1 -1
  163. package/dist/src/server-clock.d.ts +32 -0
  164. package/dist/src/server-clock.d.ts.map +1 -0
  165. package/dist/src/server-clock.js +72 -0
  166. package/dist/src/server-clock.js.map +1 -0
  167. package/dist/src/service-command.d.ts +20 -0
  168. package/dist/src/service-command.d.ts.map +1 -0
  169. package/dist/src/service-command.js +136 -0
  170. package/dist/src/service-command.js.map +1 -0
  171. package/dist/src/service.d.ts +98 -0
  172. package/dist/src/service.d.ts.map +1 -0
  173. package/dist/src/service.js +472 -0
  174. package/dist/src/service.js.map +1 -0
  175. package/dist/src/stream-client.d.ts +18 -0
  176. package/dist/src/stream-client.d.ts.map +1 -1
  177. package/dist/src/stream-client.js +91 -16
  178. package/dist/src/stream-client.js.map +1 -1
  179. package/dist/src/stream-state.d.ts +2 -0
  180. package/dist/src/stream-state.d.ts.map +1 -1
  181. package/dist/src/stream-state.js +3 -1
  182. package/dist/src/stream-state.js.map +1 -1
  183. package/dist/src/user-notices.d.ts +11 -0
  184. package/dist/src/user-notices.d.ts.map +1 -1
  185. package/dist/src/user-notices.js +24 -0
  186. package/dist/src/user-notices.js.map +1 -1
  187. package/package.json +7 -7
@@ -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":"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"}
@@ -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,CAgBjF"}
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,4 +1,4 @@
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, "")
@@ -6,14 +6,55 @@ export function redactSecrets(value, marker = "[REDACTED_SECRET]") {
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
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)
9
10
  .replace(/\beyJ[A-Za-z0-9_-]+\.eyJ[A-Za-z0-9_-]+\.[A-Za-z0-9_-]*/gu, marker)
10
11
  // Bounded scheme length: an open-ended one made long dotted runs quadratic.
11
- .replace(/(\b[a-z][a-z0-9+.-]{0,31}:\/\/)[^\s/:@]+:[^\s/@]+@/giu, `$1${marker}@`)
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}@`)
12
14
  // Non-bearer schemes carry the credential after the scheme word.
13
15
  .replace(/(\bauthorization["']?\s*[:=]\s*)(?:Basic|Digest|Token)\s+[^\s,}"']+/giu, `$1${marker}`)
14
16
  .replace(/\b(Bearer\s+)[A-Za-z0-9._~+/=-]+/giu, `$1${marker}`)
15
17
  // No leading "[\w-]*": matching from the keyword itself keeps names such as
16
18
  // refresh_token covered without rescanning every word run (quadratic).
17
- .replace(/(["']?(?:api[_-]?key|token|secret(?:[_-]access[_-]key)?|password|passwd|private[_-]?key|authorization)["']?\s*[:=]\s*)(?:"[^"\n]*(?:"|$)|'[^'\n]*(?:'|$)|[^,\s}]+)/gimu, `$1${marker}`);
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);
18
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;
19
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,oNAAoN,EAAE,MAAM,CAAC;SACrO,OAAO,CAAC,0DAA0D,EAAE,MAAM,CAAC;QAC5E,4EAA4E;SAC3E,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,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":"AAYA,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"}
@@ -2,12 +2,23 @@ import { makeDirectoryPrivate } from "./private-directory.js";
2
2
  import { chmod, mkdir, readFile, rename, unlink, writeFile, } from "node:fs/promises";
3
3
  import { randomUUID } from "node:crypto";
4
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";
5
14
  export class FileCredentialStore {
6
15
  #dataDirectory;
7
16
  #credentialPath;
8
- constructor(dataDirectory) {
17
+ #rename;
18
+ constructor(dataDirectory, options = {}) {
9
19
  this.#dataDirectory = dataDirectory;
10
- this.#credentialPath = join(dataDirectory, "machine-credential.json");
20
+ this.#credentialPath = join(dataDirectory, credentialFileName);
21
+ this.#rename = options.rename ?? rename;
11
22
  }
12
23
  async save(value) {
13
24
  validateCredential(value);
@@ -16,7 +27,9 @@ export class FileCredentialStore {
16
27
  const temporaryPath = `${this.#credentialPath}.${process.pid}.${randomUUID()}.tmp`;
17
28
  try {
18
29
  await writeFile(temporaryPath, `${JSON.stringify(value)}\n`, { encoding: "utf8", flag: "wx", mode: 0o600 });
19
- 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);
20
33
  await chmod(this.#credentialPath, 0o600);
21
34
  }
22
35
  catch (error) {
@@ -95,6 +108,17 @@ function validateCredential(value) {
95
108
  typeof value.consentedAt !== "string")) {
96
109
  throw new Error("Stored machine consent evidence is invalid.");
97
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
+ }
98
122
  }
99
123
  function isNodeError(error) {
100
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":"engine.d.ts","sourceRoot":"","sources":["../../../src/discovery/engine.ts"],"names":[],"mappings":"AAMA,OAAO,EAIL,KAAK,cAAc,EACpB,MAAM,uCAAuC,CAAC;AAO/C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAM1D,OAAO,KAAK,EACV,qBAAqB,EACrB,iBAAiB,EAClB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAUvE,MAAM,MAAM,sBAAsB,GAAG,QAAQ,CAAC;IAC5C,QAAQ,CAAC,EAAE,SAAS,qBAAqB,EAAE,CAAC;IAC5C,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,eAAe,CAAC,EAAE,MAAM,oBAAoB,CAAC;IAC7C,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;CACpB,CAAC,CAAC;AAEH,qBAAa,eAAe;;gBAUd,OAAO,GAAE,sBAA2B;IAkB1C,QAAQ,CAAC,SAAS,SAAK,GAAG,OAAO,CAAC,iBAAiB,CAAC;CAgH3D;AA+CD;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,eAAe,EACvB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,CAAC,SAAS,EAAE,cAAc,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EAC5D,OAAO,GAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAsB,GAClD,OAAO,CAAC,IAAI,CAAC,CAUf"}
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../src/discovery/engine.ts"],"names":[],"mappings":"AAOA,OAAO,EAIL,KAAK,cAAc,EACpB,MAAM,uCAAuC,CAAC;AAO/C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAM1D,OAAO,KAAK,EACV,qBAAqB,EACrB,iBAAiB,EAClB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAUvE,MAAM,MAAM,sBAAsB,GAAG,QAAQ,CAAC;IAC5C,QAAQ,CAAC,EAAE,SAAS,qBAAqB,EAAE,CAAC;IAC5C,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,eAAe,CAAC,EAAE,MAAM,oBAAoB,CAAC;IAC7C,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;CACpB,CAAC,CAAC;AAEH,qBAAa,eAAe;;gBAUd,OAAO,GAAE,sBAA2B;IAkB1C,QAAQ,CAAC,SAAS,SAAK,GAAG,OAAO,CAAC,iBAAiB,CAAC;CAgH3D;AA+CD;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,eAAe,EACvB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,CAAC,SAAS,EAAE,cAAc,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EAC5D,OAAO,GAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAsB,GAClD,OAAO,CAAC,IAAI,CAAC,CAUf"}
@@ -1,5 +1,6 @@
1
1
  import { create } from "@bufbuild/protobuf";
2
2
  import { timestampDate, timestampFromDate, } from "@bufbuild/protobuf/wkt";
3
+ import { abortableDelay } from "../abortable-delay.js";
3
4
  import { AgentState } from "../generated/phigon/v1/common_pb.js";
4
5
  import { AgentIdentitySchema, AgentInventorySchema, } from "../generated/phigon/v1/identity_pb.js";
5
6
  import { claudeAdapter } from "./adapters/claude.js";
@@ -165,15 +166,4 @@ export async function runDiscoveryLoop(engine, machineId, intervalMs, signal, pu
165
166
  await abortableDelay(intervalMs, signal);
166
167
  }
167
168
  }
168
- async function abortableDelay(milliseconds, signal) {
169
- if (signal.aborted)
170
- return;
171
- await new Promise((resolve) => {
172
- const timeout = setTimeout(resolve, milliseconds);
173
- signal.addEventListener("abort", () => {
174
- clearTimeout(timeout);
175
- resolve();
176
- }, { once: true });
177
- });
178
- }
179
169
  //# sourceMappingURL=engine.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../../src/discovery/engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../../src/discovery/engine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ import type { ObserverConfig } from "./config.js";
2
+ import { type ObserverConsentHealth } from "./health.js";
3
+ import { type InstanceLockHolder } from "./instance-lock.js";
4
+ /**
5
+ * Exit codes of `doctor --check`, for device management scripts. The first
6
+ * failing check, in this order, decides the code.
7
+ */
8
+ export declare const doctorCheckExitCodes: Readonly<{
9
+ ok: 0;
10
+ notPaired: 3;
11
+ consentMissing: 4;
12
+ notRunning: 5;
13
+ deliveryStale: 6;
14
+ controlPlaneUnreachable: 7;
15
+ }>;
16
+ export declare const defaultMaxDeliveryAgeMinutes = 15;
17
+ export type DoctorCheckName = "paired" | "consent" | "running" | "delivery" | "control_plane";
18
+ export type DoctorCheck = Readonly<{
19
+ name: DoctorCheckName;
20
+ status: "pass" | "fail" | "skip";
21
+ detail: string;
22
+ }>;
23
+ export type DoctorCheckReport = Readonly<{
24
+ ok: boolean;
25
+ exitCode: number;
26
+ observerVersion: string;
27
+ dataDirectory: string;
28
+ controlPlaneOrigin: string;
29
+ maxDeliveryAgeMinutes: number;
30
+ /** How this computer consented, when it is paired with this server. */
31
+ consent?: ObserverConsentHealth;
32
+ checks: readonly DoctorCheck[];
33
+ checkedAt: string;
34
+ }>;
35
+ export type DoctorCheckOptions = Readonly<{
36
+ config: ObserverConfig;
37
+ observerVersion: string;
38
+ maxDeliveryAgeMinutes?: number;
39
+ now?: () => Date;
40
+ fetcher?: typeof fetch;
41
+ inspectLock?: (dataDirectory: string) => Promise<InstanceLockHolder>;
42
+ probeTimeoutMs?: number;
43
+ }>;
44
+ /**
45
+ * Checks, without sending any activity, that this computer is paired with
46
+ * current consent, that an observer is running, that the workspace has
47
+ * confirmed delivery recently, and that the control plane answers.
48
+ */
49
+ export declare function runDoctorCheck(options: DoctorCheckOptions): Promise<DoctorCheckReport>;
50
+ export declare function formatDoctorCheck(report: DoctorCheckReport): string;
51
+ //# sourceMappingURL=doctor-check.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doctor-check.d.ts","sourceRoot":"","sources":["../../src/doctor-check.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,OAAO,EAAiB,KAAK,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EAAgB,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAI3E;;;GAGG;AACH,eAAO,MAAM,oBAAoB;;;;;;;EAO/B,CAAC;AAEH,eAAO,MAAM,4BAA4B,KAAK,CAAC;AAG/C,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,eAAe,CAAC;AAE9F,MAAM,MAAM,WAAW,GAAG,QAAQ,CAAC;IACjC,IAAI,EAAE,eAAe,CAAC;IACtB,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IACjC,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,QAAQ,CAAC;IACvC,EAAE,EAAE,OAAO,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,uEAAuE;IACvE,OAAO,CAAC,EAAE,qBAAqB,CAAC;IAChC,MAAM,EAAE,SAAS,WAAW,EAAE,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC,CAAC;AAUH,MAAM,MAAM,kBAAkB,GAAG,QAAQ,CAAC;IACxC,MAAM,EAAE,cAAc,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;IACvB,WAAW,CAAC,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACrE,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC,CAAC;AAEH;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA8F5F;AAgDD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAgBnE"}
@@ -0,0 +1,174 @@
1
+ import { FileCredentialStore } from "./credential-store.js";
2
+ import { consentHealth } from "./health.js";
3
+ import { InstanceLock } from "./instance-lock.js";
4
+ import { OBSERVER_CONSENT_POLICY_VERSION } from "./pair.js";
5
+ import { StreamStateStore } from "./stream-state.js";
6
+ /**
7
+ * Exit codes of `doctor --check`, for device management scripts. The first
8
+ * failing check, in this order, decides the code.
9
+ */
10
+ export const doctorCheckExitCodes = Object.freeze({
11
+ ok: 0,
12
+ notPaired: 3,
13
+ consentMissing: 4,
14
+ notRunning: 5,
15
+ deliveryStale: 6,
16
+ controlPlaneUnreachable: 7,
17
+ });
18
+ export const defaultMaxDeliveryAgeMinutes = 15;
19
+ const probeTimeoutMs = 5_000;
20
+ const exitCodeFor = Object.freeze({
21
+ paired: doctorCheckExitCodes.notPaired,
22
+ consent: doctorCheckExitCodes.consentMissing,
23
+ running: doctorCheckExitCodes.notRunning,
24
+ delivery: doctorCheckExitCodes.deliveryStale,
25
+ control_plane: doctorCheckExitCodes.controlPlaneUnreachable,
26
+ });
27
+ /**
28
+ * Checks, without sending any activity, that this computer is paired with
29
+ * current consent, that an observer is running, that the workspace has
30
+ * confirmed delivery recently, and that the control plane answers.
31
+ */
32
+ export async function runDoctorCheck(options) {
33
+ const { config } = options;
34
+ const now = (options.now ?? (() => new Date()))();
35
+ const maxAge = options.maxDeliveryAgeMinutes ?? defaultMaxDeliveryAgeMinutes;
36
+ const checks = [];
37
+ let credential = null;
38
+ try {
39
+ credential = await new FileCredentialStore(config.dataDirectory).load();
40
+ if (credential === null) {
41
+ checks.push(fail("paired", "This computer is not paired. Run phigon-observer pair with a code from Connect machine."));
42
+ }
43
+ else if (credential.controlPlaneOrigin !== config.controlPlaneUrl.origin) {
44
+ checks.push(fail("paired", `This computer is paired with ${credential.controlPlaneOrigin}, but the observer is set up for ${config.controlPlaneUrl.origin}.`));
45
+ credential = null;
46
+ }
47
+ else {
48
+ checks.push(pass("paired", `Paired as machine ${credential.machineId} with ${credential.controlPlaneOrigin}.`));
49
+ }
50
+ }
51
+ catch (error) {
52
+ checks.push(fail("paired", error instanceof Error ? error.message : "Stored pairing data could not be read."));
53
+ }
54
+ const consent = credential === null ? undefined : consentHealth(credential);
55
+ if (credential === null || consent === undefined) {
56
+ checks.push(skip("consent", "Needs pairing first."));
57
+ }
58
+ else if (credential.consentProfile === undefined ||
59
+ credential.consentPolicyVersion !== OBSERVER_CONSENT_POLICY_VERSION) {
60
+ // A company's consent is stored only with its profile, so this is an
61
+ // owner's consent from before profiles, or from an older policy.
62
+ checks.push(fail("consent", "The owner's consent is missing or out of date. Pair again with --consent-profile metadata or --consent-profile full."));
63
+ }
64
+ else {
65
+ const when = credential.consentedAt === undefined ? "" : ` on ${credential.consentedAt}`;
66
+ checks.push(pass("consent", consent.source === "company"
67
+ ? `Your company consented for this computer to the ${credential.consentProfile} profile${consent.enrollmentCodeLabel === undefined ? " with an enrollment code" : ` with the enrollment code "${consent.enrollmentCodeLabel}"`}${when}.`
68
+ : `The owner consented to the ${credential.consentProfile} profile${when}.`));
69
+ }
70
+ try {
71
+ const holder = await (options.inspectLock ?? ((directory) => InstanceLock.inspect(directory)))(config.dataDirectory);
72
+ checks.push(holder.running
73
+ ? pass("running", `An observer is running with this data directory${holder.pid === undefined ? "" : ` (process ${holder.pid})`}.`)
74
+ : fail("running", "No observer is running with this data directory. Start it with phigon-observer service install, or run phigon-observer run."));
75
+ }
76
+ catch {
77
+ checks.push(fail("running", "Could not tell whether an observer is running: its lock file could not be read."));
78
+ }
79
+ if (credential === null) {
80
+ checks.push(skip("delivery", "Needs pairing first."));
81
+ }
82
+ else {
83
+ try {
84
+ const state = await new StreamStateStore(config.dataDirectory).load(credential.machineId);
85
+ const confirmedAt = Date.parse(state.updatedAt);
86
+ const minutes = Math.floor((now.getTime() - confirmedAt) / 60_000);
87
+ if (confirmedAt <= 0) {
88
+ checks.push(fail("delivery", "The workspace has not confirmed any delivery from this computer yet."));
89
+ }
90
+ else if (minutes > maxAge) {
91
+ checks.push(fail("delivery", `Nothing has been delivered to the workspace for ${minutes} minutes (last confirmed ${state.updatedAt}).`));
92
+ }
93
+ else {
94
+ checks.push(pass("delivery", `The workspace last confirmed delivery ${Math.max(0, minutes)} minutes ago.`));
95
+ }
96
+ }
97
+ catch {
98
+ checks.push(fail("delivery", "The stored stream checkpoint could not be read."));
99
+ }
100
+ }
101
+ checks.push(await probeControlPlane(config.controlPlaneUrl, options.fetcher ?? fetch, options.probeTimeoutMs ?? probeTimeoutMs));
102
+ const failed = checks.find((check) => check.status === "fail");
103
+ return Object.freeze({
104
+ ok: failed === undefined,
105
+ exitCode: failed === undefined ? doctorCheckExitCodes.ok : exitCodeFor[failed.name],
106
+ observerVersion: options.observerVersion,
107
+ dataDirectory: config.dataDirectory,
108
+ controlPlaneOrigin: config.controlPlaneUrl.origin,
109
+ maxDeliveryAgeMinutes: maxAge,
110
+ ...(consent === undefined ? {} : { consent }),
111
+ checks: Object.freeze(checks),
112
+ checkedAt: now.toISOString(),
113
+ });
114
+ }
115
+ /** GET /healthz, through the configured proxy and the pinned authority. */
116
+ async function probeControlPlane(url, fetcher, timeoutMs) {
117
+ const endpoint = new URL("/healthz", url);
118
+ const started = performance.now();
119
+ try {
120
+ const response = await fetcher(endpoint, {
121
+ method: "GET",
122
+ headers: { Accept: "application/json" },
123
+ redirect: "error",
124
+ signal: AbortSignal.timeout(timeoutMs),
125
+ });
126
+ await response.body?.cancel().catch(() => undefined);
127
+ if (!response.ok) {
128
+ return fail("control_plane", `The control plane at ${url.origin} answered HTTP ${response.status}.`);
129
+ }
130
+ return pass("control_plane", `The control plane at ${url.origin} answered in ${Math.round(performance.now() - started)} ms.`);
131
+ }
132
+ catch (error) {
133
+ const reason = error instanceof Error && error.name === "TimeoutError"
134
+ ? `no answer within ${Math.round(timeoutMs / 1_000)} seconds`
135
+ : errorCode(error) ?? "the connection failed";
136
+ return fail("control_plane", `Could not reach the control plane at ${url.origin} (${reason}).`);
137
+ }
138
+ }
139
+ /** A system error code such as ENOTFOUND or a certificate error, never a message with data. */
140
+ function errorCode(error) {
141
+ for (let current = error, depth = 0; current instanceof Error && depth < 4; depth++) {
142
+ const code = current.code;
143
+ if (typeof code === "string" && /^[A-Z0-9_]{2,64}$/u.test(code))
144
+ return code;
145
+ current = current.cause;
146
+ }
147
+ return undefined;
148
+ }
149
+ function pass(name, detail) {
150
+ return Object.freeze({ name, status: "pass", detail });
151
+ }
152
+ function fail(name, detail) {
153
+ return Object.freeze({ name, status: "fail", detail });
154
+ }
155
+ function skip(name, detail) {
156
+ return Object.freeze({ name, status: "skip", detail });
157
+ }
158
+ export function formatDoctorCheck(report) {
159
+ const labels = {
160
+ paired: "Pairing",
161
+ consent: "Consent",
162
+ running: "Observer",
163
+ delivery: "Delivery",
164
+ control_plane: "Control plane",
165
+ };
166
+ return [
167
+ report.ok
168
+ ? "Phigon observer check passed."
169
+ : `Phigon observer check found a problem (exit code ${report.exitCode}).`,
170
+ ...report.checks.map((check) => `${check.status === "pass" ? "ok " : check.status === "fail" ? "FAIL" : "skip"} ${labels[check.name].padEnd(13)} ${check.detail}`),
171
+ "",
172
+ ].join("\n");
173
+ }
174
+ //# sourceMappingURL=doctor-check.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doctor-check.js","sourceRoot":"","sources":["../../src/doctor-check.ts"],"names":[],"mappings":"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"}