@trusty-squire/mcp 1.1.13-rc.8 → 1.1.13

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 (162) hide show
  1. package/README.md +139 -62
  2. package/assets/login/vnc-input.js +9 -0
  3. package/assets/login/vnc.html +214 -202
  4. package/assets/screencaps/connect-walkthrough.png +0 -0
  5. package/assets/screencaps/connect-walkthrough.svg +1 -1
  6. package/dist/api-client.d.ts +26 -3
  7. package/dist/api-client.d.ts.map +1 -1
  8. package/dist/api-client.js +19 -31
  9. package/dist/api-client.js.map +1 -1
  10. package/dist/bin.js +2 -3
  11. package/dist/bin.js.map +1 -1
  12. package/dist/bot/browser.d.ts +134 -77
  13. package/dist/bot/browser.d.ts.map +1 -1
  14. package/dist/bot/browser.js +1788 -1543
  15. package/dist/bot/browser.js.map +1 -1
  16. package/dist/bot/compact-observation-v2.d.ts +167 -0
  17. package/dist/bot/compact-observation-v2.d.ts.map +1 -0
  18. package/dist/bot/compact-observation-v2.js +1038 -0
  19. package/dist/bot/compact-observation-v2.js.map +1 -0
  20. package/dist/bot/credential-shape.d.ts +2 -0
  21. package/dist/bot/credential-shape.d.ts.map +1 -1
  22. package/dist/bot/credential-shape.js +21 -8
  23. package/dist/bot/credential-shape.js.map +1 -1
  24. package/dist/bot/element-fingerprint.d.ts +9 -0
  25. package/dist/bot/element-fingerprint.d.ts.map +1 -0
  26. package/dist/bot/element-fingerprint.js +147 -0
  27. package/dist/bot/element-fingerprint.js.map +1 -0
  28. package/dist/bot/email-verification.d.ts +7 -1
  29. package/dist/bot/email-verification.d.ts.map +1 -1
  30. package/dist/bot/email-verification.js +48 -14
  31. package/dist/bot/email-verification.js.map +1 -1
  32. package/dist/bot/google-login.d.ts +28 -52
  33. package/dist/bot/google-login.d.ts.map +1 -1
  34. package/dist/bot/google-login.js +246 -1119
  35. package/dist/bot/google-login.js.map +1 -1
  36. package/dist/bot/install-completion.d.ts +1 -2
  37. package/dist/bot/install-completion.d.ts.map +1 -1
  38. package/dist/bot/install-completion.js +1 -2
  39. package/dist/bot/install-completion.js.map +1 -1
  40. package/dist/bot/login-state.d.ts +13 -7
  41. package/dist/bot/login-state.d.ts.map +1 -1
  42. package/dist/bot/login-state.js +50 -114
  43. package/dist/bot/login-state.js.map +1 -1
  44. package/dist/bot/oauth-providers.d.ts +1 -1
  45. package/dist/bot/oauth-providers.d.ts.map +1 -1
  46. package/dist/bot/oauth-providers.js +3 -3
  47. package/dist/bot/oauth-providers.js.map +1 -1
  48. package/dist/bot/oauth-scope.d.ts +4 -0
  49. package/dist/bot/oauth-scope.d.ts.map +1 -0
  50. package/dist/bot/oauth-scope.js +58 -0
  51. package/dist/bot/oauth-scope.js.map +1 -0
  52. package/dist/bot/operator-browser-watchdog.d.ts +127 -0
  53. package/dist/bot/operator-browser-watchdog.d.ts.map +1 -0
  54. package/dist/bot/operator-browser-watchdog.js +438 -0
  55. package/dist/bot/operator-browser-watchdog.js.map +1 -0
  56. package/dist/bot/owner-process-reaper-worker.d.ts +2 -0
  57. package/dist/bot/owner-process-reaper-worker.d.ts.map +1 -0
  58. package/dist/bot/owner-process-reaper-worker.js +17 -0
  59. package/dist/bot/owner-process-reaper-worker.js.map +1 -0
  60. package/dist/bot/owner-process-reaper.d.ts +103 -0
  61. package/dist/bot/owner-process-reaper.d.ts.map +1 -0
  62. package/dist/bot/owner-process-reaper.js +1058 -0
  63. package/dist/bot/owner-process-reaper.js.map +1 -0
  64. package/dist/bot/pay-operator.d.ts +13 -2
  65. package/dist/bot/pay-operator.d.ts.map +1 -1
  66. package/dist/bot/pay-operator.js +319 -123
  67. package/dist/bot/pay-operator.js.map +1 -1
  68. package/dist/bot/profile.d.ts +10 -1
  69. package/dist/bot/profile.d.ts.map +1 -1
  70. package/dist/bot/profile.js +137 -11
  71. package/dist/bot/profile.js.map +1 -1
  72. package/dist/bot/promote-to-skill.js +1 -1
  73. package/dist/bot/promote-to-skill.js.map +1 -1
  74. package/dist/bot/provision-session.d.ts +60 -164
  75. package/dist/bot/provision-session.d.ts.map +1 -1
  76. package/dist/bot/provision-session.js +2049 -1546
  77. package/dist/bot/provision-session.js.map +1 -1
  78. package/dist/bot/remote-login-display.d.ts +61 -0
  79. package/dist/bot/remote-login-display.d.ts.map +1 -0
  80. package/dist/bot/remote-login-display.js +765 -0
  81. package/dist/bot/remote-login-display.js.map +1 -0
  82. package/dist/bot/session/hosts.d.ts +8 -0
  83. package/dist/bot/session/hosts.d.ts.map +1 -0
  84. package/dist/bot/session/hosts.js +36 -0
  85. package/dist/bot/session/hosts.js.map +1 -0
  86. package/dist/bot/session/lifecycle.d.ts +56 -0
  87. package/dist/bot/session/lifecycle.d.ts.map +1 -0
  88. package/dist/bot/session/lifecycle.js +962 -0
  89. package/dist/bot/session/lifecycle.js.map +1 -0
  90. package/dist/bot/session/model.d.ts +175 -0
  91. package/dist/bot/session/model.d.ts.map +1 -0
  92. package/dist/bot/session/model.js +77 -0
  93. package/dist/bot/session/model.js.map +1 -0
  94. package/dist/install/cli.d.ts +29 -9
  95. package/dist/install/cli.d.ts.map +1 -1
  96. package/dist/install/cli.js +243 -322
  97. package/dist/install/cli.js.map +1 -1
  98. package/dist/install/interactive.d.ts +1 -0
  99. package/dist/install/interactive.d.ts.map +1 -1
  100. package/dist/install/interactive.js +19 -5
  101. package/dist/install/interactive.js.map +1 -1
  102. package/dist/install/ui.d.ts.map +1 -1
  103. package/dist/install/ui.js +3 -15
  104. package/dist/install/ui.js.map +1 -1
  105. package/dist/operator-env.js +1 -1
  106. package/dist/operator-env.js.map +1 -1
  107. package/dist/server-instance-registry.d.ts +103 -0
  108. package/dist/server-instance-registry.d.ts.map +1 -0
  109. package/dist/server-instance-registry.js +392 -0
  110. package/dist/server-instance-registry.js.map +1 -0
  111. package/dist/server.d.ts +15 -1
  112. package/dist/server.d.ts.map +1 -1
  113. package/dist/server.js +164 -62
  114. package/dist/server.js.map +1 -1
  115. package/dist/session-guard.d.ts +28 -0
  116. package/dist/session-guard.d.ts.map +1 -0
  117. package/dist/session-guard.js +84 -0
  118. package/dist/session-guard.js.map +1 -0
  119. package/dist/session.d.ts +57 -13
  120. package/dist/session.d.ts.map +1 -1
  121. package/dist/session.js +246 -127
  122. package/dist/session.js.map +1 -1
  123. package/dist/tools/audit-log.d.ts +16 -2
  124. package/dist/tools/audit-log.d.ts.map +1 -1
  125. package/dist/tools/audit-log.js +223 -13
  126. package/dist/tools/audit-log.js.map +1 -1
  127. package/dist/tools/audit-rollup.d.ts +80 -0
  128. package/dist/tools/audit-rollup.d.ts.map +1 -0
  129. package/dist/tools/audit-rollup.js +0 -0
  130. package/dist/tools/audit-rollup.js.map +1 -0
  131. package/dist/tools/fetch-credential.d.ts +37 -0
  132. package/dist/tools/fetch-credential.d.ts.map +1 -0
  133. package/dist/tools/fetch-credential.js +153 -0
  134. package/dist/tools/fetch-credential.js.map +1 -0
  135. package/dist/tools/index.d.ts +3 -1
  136. package/dist/tools/index.d.ts.map +1 -1
  137. package/dist/tools/index.js +7 -3
  138. package/dist/tools/index.js.map +1 -1
  139. package/dist/tools/operate-pay.d.ts +4 -4
  140. package/dist/tools/operate-pay.d.ts.map +1 -1
  141. package/dist/tools/operate-pay.js +163 -96
  142. package/dist/tools/operate-pay.js.map +1 -1
  143. package/dist/tools/provision-drive.d.ts +43 -35
  144. package/dist/tools/provision-drive.d.ts.map +1 -1
  145. package/dist/tools/provision-drive.js +268 -164
  146. package/dist/tools/provision-drive.js.map +1 -1
  147. package/dist/tools/use-credential.d.ts.map +1 -1
  148. package/dist/tools/use-credential.js +3 -2
  149. package/dist/tools/use-credential.js.map +1 -1
  150. package/package.json +4 -6
  151. package/dist/bot/operator-direct-identity.d.ts +0 -26
  152. package/dist/bot/operator-direct-identity.d.ts.map +0 -1
  153. package/dist/bot/operator-direct-identity.js +0 -120
  154. package/dist/bot/operator-direct-identity.js.map +0 -1
  155. package/dist/bot/operator-profile-pool.d.ts +0 -97
  156. package/dist/bot/operator-profile-pool.d.ts.map +0 -1
  157. package/dist/bot/operator-profile-pool.js +0 -855
  158. package/dist/bot/operator-profile-pool.js.map +0 -1
  159. package/dist/bot/xvfb.d.ts +0 -13
  160. package/dist/bot/xvfb.d.ts.map +0 -1
  161. package/dist/bot/xvfb.js +0 -146
  162. package/dist/bot/xvfb.js.map +0 -1
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=owner-process-reaper-worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"owner-process-reaper-worker.d.ts","sourceRoot":"","sources":["../../src/bot/owner-process-reaper-worker.ts"],"names":[],"mappings":""}
@@ -0,0 +1,17 @@
1
+ import { writeFileSync } from "node:fs";
2
+ import { runOwnerProcessReaperWorker } from "./owner-process-reaper.js";
3
+ const manifestPath = process.argv[2];
4
+ const readyPath = process.argv[3];
5
+ const token = process.argv[4];
6
+ if (manifestPath === undefined || readyPath === undefined || token === undefined)
7
+ process.exit(2);
8
+ runOwnerProcessReaperWorker(manifestPath, () => {
9
+ writeFileSync(readyPath, `${JSON.stringify({ version: 1, token, pid: process.pid })}\n`, {
10
+ mode: 0o600,
11
+ flag: "wx",
12
+ });
13
+ }).then(() => process.exit(0), (error) => {
14
+ process.stderr.write(`[trusty-squire] owner reaper failed: ${error instanceof Error ? error.message : String(error)}\n`);
15
+ process.exit(1);
16
+ });
17
+ //# sourceMappingURL=owner-process-reaper-worker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"owner-process-reaper-worker.js","sourceRoot":"","sources":["../../src/bot/owner-process-reaper-worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AAExE,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACrC,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClC,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC9B,IAAI,YAAY,KAAK,SAAS,IAAI,SAAS,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS;IAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAElG,2BAA2B,CAAC,YAAY,EAAE,GAAG,EAAE;IAC7C,aAAa,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE;QACvF,IAAI,EAAE,KAAK;QACX,IAAI,EAAE,IAAI;KACX,CAAC,CAAC;AACL,CAAC,CAAC,CAAC,IAAI,CACL,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EACrB,CAAC,KAAc,EAAE,EAAE;IACjB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,wCACE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CACvD,IAAI,CACL,CAAC;IACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CACF,CAAC"}
@@ -0,0 +1,103 @@
1
+ import { spawn, type ChildProcess, type SpawnOptions } from "node:child_process";
2
+ import { type OperatorBrowserProcessMarkerState } from "./operator-browser-watchdog.js";
3
+ import { type ProcessIdentityState, type ProcessProfileArgumentState, type ProfileProcessIdentity } from "./profile.js";
4
+ interface OwnerIdentity {
5
+ pid: number;
6
+ start_time: string;
7
+ }
8
+ export interface OwnerHelperIdentity {
9
+ pid: number;
10
+ start_time: string;
11
+ marker: string;
12
+ process_group_id?: number;
13
+ }
14
+ interface OwnerPendingHelper {
15
+ marker: string;
16
+ state: "pending";
17
+ }
18
+ type OwnerHelperRecord = OwnerHelperIdentity | OwnerPendingHelper;
19
+ export interface OwnerProcessReaper {
20
+ readonly manifestPath: string;
21
+ readonly token: string;
22
+ isAvailable(): boolean;
23
+ restart(): boolean;
24
+ track(identity: ProfileProcessIdentity): void;
25
+ untrack(identity: ProfileProcessIdentity): void;
26
+ trackLaunch(marker: string, profileDir: string): void;
27
+ bindLaunch(marker: string, identity: ProfileProcessIdentity): boolean;
28
+ launchAnchor(marker: string, profileDir: string): OwnerIdentity | null;
29
+ untrackLaunch(marker: string): void;
30
+ reserveHelper(marker: string): void;
31
+ bindHelper(marker: string, identity: OwnerHelperIdentity): void;
32
+ untrackHelper(marker: string): void;
33
+ stop(): void;
34
+ }
35
+ export declare const OWNER_HELPER_MARKER_ENV = "TRUSTY_SQUIRE_OWNER_HELPER_MARKER";
36
+ export declare const OWNER_REAPER_WORKER_MARKER_ENV = "TRUSTY_SQUIRE_OWNER_REAPER_WORKER_MARKER";
37
+ export declare function shouldReapOwner(state: ProcessIdentityState): boolean;
38
+ type ProcessGroupIdRead = number | "stale" | "unknown";
39
+ interface HelperIdentityReaders {
40
+ readProcessIds?: () => number[];
41
+ readProcessGroupId?: (pid: number) => ProcessGroupIdRead;
42
+ readRunningState?: (pid: number) => ProcessIdentityState;
43
+ readMarkerState?: (pid: number, marker: string) => ProcessIdentityState;
44
+ readBirthState?: (identity: OwnerHelperIdentity) => ProcessIdentityState;
45
+ readUidState?: (pid: number) => ProcessIdentityState;
46
+ }
47
+ export declare function ownerHelperIdentityState(identity: OwnerHelperRecord, readers?: HelperIdentityReaders): ProcessIdentityState;
48
+ interface BrowserIdentityReaders {
49
+ anchor?: OwnerIdentity;
50
+ readProcessIds?: () => number[];
51
+ readBirthIdentity?: (pid: number) => OwnerIdentity | null;
52
+ readMarker?: (pid: number) => string | null;
53
+ readMarkerState?: (pid: number) => OperatorBrowserProcessMarkerState;
54
+ readCommandState?: (pid: number) => ProcessIdentityState;
55
+ readProfileState?: (pid: number, profileDir: string) => ProcessProfileArgumentState;
56
+ readBirthState?: (identity: OwnerIdentity) => ProcessIdentityState;
57
+ readRunningState?: (pid: number) => ProcessIdentityState;
58
+ readUidState?: (pid: number) => ProcessIdentityState;
59
+ }
60
+ export declare function ownerBrowserLaunchState(marker: string, profileDir: string, readers?: BrowserIdentityReaders): ProcessIdentityState;
61
+ export declare function terminateOwnerBrowserLaunch(marker: string, profileDir: string, options?: {
62
+ graceMs?: number;
63
+ readProcessIds?: () => number[];
64
+ readBirthIdentity?: (pid: number) => OwnerIdentity | null;
65
+ readMarkerState?: (pid: number) => OperatorBrowserProcessMarkerState;
66
+ readCommandState?: (pid: number) => ProcessIdentityState;
67
+ readProfileState?: (pid: number, profileDir: string) => ProcessProfileArgumentState;
68
+ readBirthState?: (identity: OwnerIdentity) => ProcessIdentityState;
69
+ readRunningState?: (pid: number) => ProcessIdentityState;
70
+ anchor?: OwnerIdentity;
71
+ readUidState?: (pid: number) => ProcessIdentityState;
72
+ kill?: (pid: number, signal: NodeJS.Signals) => void;
73
+ wait?: (ms: number) => Promise<void>;
74
+ }): Promise<boolean>;
75
+ export declare function sweepOrphanedOwnerProcesses(rootDir?: string): Promise<number>;
76
+ export declare function runOwnerProcessReaperWorker(manifestPath: string, onReady?: () => void): Promise<void>;
77
+ export declare function startOwnerProcessReaper(options?: {
78
+ rootDir?: string;
79
+ workerPath?: string;
80
+ }, runtime?: {
81
+ spawn?: typeof spawn;
82
+ beforeWorkerLaunch?: () => void;
83
+ }): OwnerProcessReaper | null;
84
+ export declare function ensureOwnerProcessReaper(): OwnerProcessReaper | null;
85
+ export declare function stopOwnerProcessReaper(): void;
86
+ export declare function trackOwnerProcess(identity: ProfileProcessIdentity): void;
87
+ export declare function untrackOwnerProcess(identity: ProfileProcessIdentity): void;
88
+ export declare function trackOwnerBrowserLaunch(marker: string, profileDir: string, runtime?: {
89
+ ensureReaper?: typeof ensureOwnerProcessReaper;
90
+ }): void;
91
+ export declare function bindOwnerBrowserLaunch(marker: string, identity: ProfileProcessIdentity): boolean;
92
+ export declare function markOwnerBrowserLaunchTerminal(_marker: string): void;
93
+ export declare function untrackOwnerBrowserLaunch(marker: string): void;
94
+ export declare function reconcileOwnerBrowserLaunchAfterLeaderExit(marker: string, profileDir: string, launchState?: (marker: string, profileDir: string) => ProcessIdentityState): void;
95
+ export declare function spawnOwnerTrackedHelper(command: string, args: readonly string[], options?: SpawnOptions, runtime?: {
96
+ spawn?: typeof spawn;
97
+ }): ChildProcess;
98
+ export declare function signalOwnerTrackedHelper(child: ChildProcess, signal: NodeJS.Signals): boolean;
99
+ export declare function ownerTrackedHelperState(child: ChildProcess): ProcessIdentityState;
100
+ export declare function waitForOwnerTrackedHelperExit(child: ChildProcess, timeoutMs: number): Promise<boolean>;
101
+ export declare function releaseOwnerTrackedHelper(child: ChildProcess): boolean;
102
+ export {};
103
+ //# sourceMappingURL=owner-process-reaper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"owner-process-reaper.d.ts","sourceRoot":"","sources":["../../src/bot/owner-process-reaper.ts"],"names":[],"mappings":"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"}