ssh-mcp-pro 1.2.3 → 1.4.2

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 (212) hide show
  1. package/CHANGELOG.md +71 -0
  2. package/MIGRATION.md +2 -2
  3. package/README.md +34 -13
  4. package/SECURITY_DECISIONS.md +19 -0
  5. package/dist/agent-bin.js +5 -2
  6. package/dist/agent-bin.js.map +1 -1
  7. package/dist/cli.d.ts +1 -0
  8. package/dist/cli.d.ts.map +1 -1
  9. package/dist/cli.js +38 -47
  10. package/dist/cli.js.map +1 -1
  11. package/dist/config-security-env.d.ts +4 -0
  12. package/dist/config-security-env.d.ts.map +1 -0
  13. package/dist/config-security-env.js +64 -0
  14. package/dist/config-security-env.js.map +1 -0
  15. package/dist/config-types.d.ts +82 -0
  16. package/dist/config-types.d.ts.map +1 -0
  17. package/dist/config-types.js +2 -0
  18. package/dist/config-types.js.map +1 -0
  19. package/dist/config.d.ts +3 -82
  20. package/dist/config.d.ts.map +1 -1
  21. package/dist/config.js +4 -67
  22. package/dist/config.js.map +1 -1
  23. package/dist/connector-profile.d.ts +1 -1
  24. package/dist/connector-profile.d.ts.map +1 -1
  25. package/dist/detect.d.ts.map +1 -1
  26. package/dist/detect.js +226 -192
  27. package/dist/detect.js.map +1 -1
  28. package/dist/ensure-package-service.d.ts +9 -0
  29. package/dist/ensure-package-service.d.ts.map +1 -0
  30. package/dist/ensure-package-service.js +146 -0
  31. package/dist/ensure-package-service.js.map +1 -0
  32. package/dist/ensure-pkg.js +4 -4
  33. package/dist/ensure-pkg.js.map +1 -1
  34. package/dist/ensure.d.ts.map +1 -1
  35. package/dist/ensure.js +15 -144
  36. package/dist/ensure.js.map +1 -1
  37. package/dist/fs-sftp.js +1 -1
  38. package/dist/fs-sftp.js.map +1 -1
  39. package/dist/fs-stat.d.ts +10 -0
  40. package/dist/fs-stat.d.ts.map +1 -0
  41. package/dist/fs-stat.js +62 -0
  42. package/dist/fs-stat.js.map +1 -0
  43. package/dist/fs-tools.d.ts.map +1 -1
  44. package/dist/fs-tools.js +6 -58
  45. package/dist/fs-tools.js.map +1 -1
  46. package/dist/http-security.d.ts.map +1 -1
  47. package/dist/http-security.js +6 -6
  48. package/dist/http-security.js.map +1 -1
  49. package/dist/http-server-runtime.d.ts.map +1 -1
  50. package/dist/http-server-runtime.js +41 -7
  51. package/dist/http-server-runtime.js.map +1 -1
  52. package/dist/index.js +7 -24
  53. package/dist/index.js.map +1 -1
  54. package/dist/mcp-http-web.d.ts +8 -0
  55. package/dist/mcp-http-web.d.ts.map +1 -0
  56. package/dist/mcp-http-web.js +35 -0
  57. package/dist/mcp-http-web.js.map +1 -0
  58. package/dist/mcp.d.ts +6 -2
  59. package/dist/mcp.d.ts.map +1 -1
  60. package/dist/mcp.js +22 -14
  61. package/dist/mcp.js.map +1 -1
  62. package/dist/policy.d.ts +8 -0
  63. package/dist/policy.d.ts.map +1 -1
  64. package/dist/policy.js +147 -105
  65. package/dist/policy.js.map +1 -1
  66. package/dist/process.d.ts.map +1 -1
  67. package/dist/process.js +11 -7
  68. package/dist/process.js.map +1 -1
  69. package/dist/remote/agent-activity-log.d.ts +26 -0
  70. package/dist/remote/agent-activity-log.d.ts.map +1 -0
  71. package/dist/remote/agent-activity-log.js +211 -0
  72. package/dist/remote/agent-activity-log.js.map +1 -0
  73. package/dist/remote/agent-cli.d.ts.map +1 -1
  74. package/dist/remote/agent-cli.js +153 -33
  75. package/dist/remote/agent-cli.js.map +1 -1
  76. package/dist/remote/agent-executor.d.ts.map +1 -1
  77. package/dist/remote/agent-executor.js +22 -10
  78. package/dist/remote/agent-executor.js.map +1 -1
  79. package/dist/remote/agent-handler.d.ts +2 -0
  80. package/dist/remote/agent-handler.d.ts.map +1 -1
  81. package/dist/remote/agent-handler.js +4 -0
  82. package/dist/remote/agent-handler.js.map +1 -1
  83. package/dist/remote/config.d.ts.map +1 -1
  84. package/dist/remote/config.js +12 -1
  85. package/dist/remote/config.js.map +1 -1
  86. package/dist/remote/control-plane.d.ts +12 -0
  87. package/dist/remote/control-plane.d.ts.map +1 -1
  88. package/dist/remote/control-plane.js +164 -56
  89. package/dist/remote/control-plane.js.map +1 -1
  90. package/dist/remote/crypto.d.ts +9 -4
  91. package/dist/remote/crypto.d.ts.map +1 -1
  92. package/dist/remote/crypto.js +41 -9
  93. package/dist/remote/crypto.js.map +1 -1
  94. package/dist/remote/http-util.d.ts.map +1 -1
  95. package/dist/remote/http-util.js +14 -7
  96. package/dist/remote/http-util.js.map +1 -1
  97. package/dist/remote/mcp-tools.d.ts +7 -0
  98. package/dist/remote/mcp-tools.d.ts.map +1 -1
  99. package/dist/remote/mcp-tools.js +28 -0
  100. package/dist/remote/mcp-tools.js.map +1 -1
  101. package/dist/remote/oauth-handler.d.ts +30 -3
  102. package/dist/remote/oauth-handler.d.ts.map +1 -1
  103. package/dist/remote/oauth-handler.js +232 -18
  104. package/dist/remote/oauth-handler.js.map +1 -1
  105. package/dist/remote/policy.js +2 -2
  106. package/dist/remote/policy.js.map +1 -1
  107. package/dist/remote/schemas.d.ts +9 -9
  108. package/dist/remote/schemas.js +6 -6
  109. package/dist/remote/schemas.js.map +1 -1
  110. package/dist/remote/store.d.ts +38 -1
  111. package/dist/remote/store.d.ts.map +1 -1
  112. package/dist/remote/store.js +149 -11
  113. package/dist/remote/store.js.map +1 -1
  114. package/dist/remote/types.d.ts +14 -0
  115. package/dist/remote/types.d.ts.map +1 -1
  116. package/dist/remote/types.js.map +1 -1
  117. package/dist/remote/web-dashboard-client-config.d.ts +77 -0
  118. package/dist/remote/web-dashboard-client-config.d.ts.map +1 -0
  119. package/dist/remote/web-dashboard-client-config.js +81 -0
  120. package/dist/remote/web-dashboard-client-config.js.map +1 -0
  121. package/dist/remote/web-dashboard-html.d.ts +2 -0
  122. package/dist/remote/web-dashboard-html.d.ts.map +1 -0
  123. package/dist/remote/web-dashboard-html.js +451 -0
  124. package/dist/remote/web-dashboard-html.js.map +1 -0
  125. package/dist/remote/web-dashboard-oauth-users.d.ts +4 -0
  126. package/dist/remote/web-dashboard-oauth-users.d.ts.map +1 -0
  127. package/dist/remote/web-dashboard-oauth-users.js +78 -0
  128. package/dist/remote/web-dashboard-oauth-users.js.map +1 -0
  129. package/dist/remote/web-dashboard-static.d.ts +4 -0
  130. package/dist/remote/web-dashboard-static.d.ts.map +1 -0
  131. package/dist/remote/web-dashboard-static.js +19 -0
  132. package/dist/remote/web-dashboard-static.js.map +1 -0
  133. package/dist/remote/web-dashboard-styles.d.ts +2 -0
  134. package/dist/remote/web-dashboard-styles.d.ts.map +1 -0
  135. package/dist/remote/web-dashboard-styles.js +206 -0
  136. package/dist/remote/web-dashboard-styles.js.map +1 -0
  137. package/dist/remote/web-dashboard.d.ts +62 -0
  138. package/dist/remote/web-dashboard.d.ts.map +1 -0
  139. package/dist/remote/web-dashboard.js +467 -0
  140. package/dist/remote/web-dashboard.js.map +1 -0
  141. package/dist/retry.d.ts.map +1 -1
  142. package/dist/retry.js +6 -3
  143. package/dist/retry.js.map +1 -1
  144. package/dist/safety.d.ts.map +1 -1
  145. package/dist/safety.js +56 -6
  146. package/dist/safety.js.map +1 -1
  147. package/dist/session-auth.js +7 -7
  148. package/dist/session-auth.js.map +1 -1
  149. package/dist/session.d.ts +1 -0
  150. package/dist/session.d.ts.map +1 -1
  151. package/dist/session.js +44 -40
  152. package/dist/session.js.map +1 -1
  153. package/dist/shell.d.ts.map +1 -1
  154. package/dist/shell.js +5 -4
  155. package/dist/shell.js.map +1 -1
  156. package/dist/ssh-config.d.ts +2 -2
  157. package/dist/ssh-config.d.ts.map +1 -1
  158. package/dist/ssh-config.js +24 -20
  159. package/dist/ssh-config.js.map +1 -1
  160. package/dist/telemetry.d.ts.map +1 -1
  161. package/dist/telemetry.js +9 -2
  162. package/dist/telemetry.js.map +1 -1
  163. package/dist/tools/connector.provider.d.ts +1 -1
  164. package/dist/tools/connector.provider.d.ts.map +1 -1
  165. package/dist/tools/ensure.provider.d.ts +1 -1
  166. package/dist/tools/ensure.provider.d.ts.map +1 -1
  167. package/dist/tools/fs.provider.d.ts +1 -1
  168. package/dist/tools/fs.provider.d.ts.map +1 -1
  169. package/dist/tools/metadata.d.ts +1 -1
  170. package/dist/tools/metadata.d.ts.map +1 -1
  171. package/dist/tools/output-schemas.d.ts +27 -135
  172. package/dist/tools/output-schemas.d.ts.map +1 -1
  173. package/dist/tools/process.provider.d.ts +1 -1
  174. package/dist/tools/process.provider.d.ts.map +1 -1
  175. package/dist/tools/registry.d.ts +1 -1
  176. package/dist/tools/registry.d.ts.map +1 -1
  177. package/dist/tools/registry.js +16 -13
  178. package/dist/tools/registry.js.map +1 -1
  179. package/dist/tools/session.provider.d.ts +1 -1
  180. package/dist/tools/session.provider.d.ts.map +1 -1
  181. package/dist/tools/system.provider.d.ts +1 -1
  182. package/dist/tools/system.provider.d.ts.map +1 -1
  183. package/dist/tools/transfer.provider.d.ts +1 -1
  184. package/dist/tools/transfer.provider.d.ts.map +1 -1
  185. package/dist/tools/tunnel.provider.d.ts +1 -1
  186. package/dist/tools/tunnel.provider.d.ts.map +1 -1
  187. package/dist/tools/types.d.ts +1 -1
  188. package/dist/tools/types.d.ts.map +1 -1
  189. package/dist/transfer.js +2 -2
  190. package/dist/transfer.js.map +1 -1
  191. package/dist/types.js +1 -1
  192. package/dist/types.js.map +1 -1
  193. package/docs/adding-a-device.md +39 -17
  194. package/docs/agent-activity-monitor.md +34 -0
  195. package/docs/coolify.md +29 -0
  196. package/docs/development/dependency-management.md +1 -1
  197. package/docs/development/local-setup.md +1 -1
  198. package/docs/development/mcp-protocol-2026.md +33 -0
  199. package/docs/docker.md +4 -4
  200. package/docs/doppler-guide.md +34 -0
  201. package/docs/openssf-evidence.md +11 -7
  202. package/docs/openssf-gap-analysis.md +7 -8
  203. package/docs/reference/cli.md +17 -6
  204. package/docs/reference/compatibility.md +1 -1
  205. package/docs/security/dependency-audit-exceptions.md +3 -7
  206. package/docs/security/hosted-data-inventory.md +81 -0
  207. package/docs/sonarcloud-analysis.md +9 -0
  208. package/docs/tutorials/getting-started.md +1 -1
  209. package/mcp.json +1 -1
  210. package/package.json +26 -21
  211. package/registry/ssh-mcp-pro/mcp.json +1 -1
  212. package/server.json +3 -3
@@ -0,0 +1,206 @@
1
+ export const DASHBOARD_STYLES = `
2
+ :root {
3
+ --bg: #0d1117;
4
+ --card-bg: #161b22;
5
+ --card-border: #30363d;
6
+ --text-main: #f0f6fc;
7
+ --text-muted: #8b949e;
8
+ --primary: #238636;
9
+ --primary-hover: #2ea043;
10
+ --blue: #58a6ff;
11
+ --blue-bg: rgba(56, 139, 253, 0.15);
12
+ --red: #f85149;
13
+ --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
14
+ }
15
+ * { box-sizing: border-box; margin: 0; padding: 0; }
16
+ body {
17
+ background-color: var(--bg);
18
+ color: var(--text-main);
19
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
20
+ line-height: 1.5;
21
+ padding-bottom: 60px;
22
+ }
23
+ header {
24
+ background: #161b22;
25
+ border-bottom: 1px solid var(--card-border);
26
+ padding: 16px 24px;
27
+ display: flex;
28
+ align-items: center;
29
+ justify-content: space-between;
30
+ flex-wrap: wrap;
31
+ gap: 12px;
32
+ position: sticky;
33
+ top: 0;
34
+ z-index: 100;
35
+ }
36
+ .logo-area { display: flex; align-items: center; gap: 12px; }
37
+ .logo-icon { font-size: 24px; }
38
+ .brand-title { font-size: 18px; font-weight: 700; color: #fff; letter-spacing: -0.5px; }
39
+ .brand-sub { font-size: 12px; color: var(--text-muted); }
40
+ .user-area { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; min-width: 0; }
41
+ .badge {
42
+ display: inline-block;
43
+ padding: 2px 8px;
44
+ border-radius: 12px;
45
+ font-size: 11px;
46
+ font-weight: 600;
47
+ text-transform: uppercase;
48
+ }
49
+ .badge-green { background: #238636; color: #fff; }
50
+ .badge-gray { background: #30363d; color: #c9d1d9; }
51
+ .badge-blue { background: var(--blue-bg); color: var(--blue); border: 1px solid rgba(56,139,253,0.3); }
52
+ .btn {
53
+ display: inline-flex;
54
+ align-items: center;
55
+ gap: 8px;
56
+ padding: 8px 16px;
57
+ border-radius: 6px;
58
+ font-size: 14px;
59
+ font-weight: 600;
60
+ cursor: pointer;
61
+ text-decoration: none;
62
+ border: 1px solid transparent;
63
+ transition: all 0.2s ease;
64
+ }
65
+ .btn-primary { background: var(--primary); color: #fff; border-color: rgba(240,246,252,0.1); }
66
+ .btn-primary:hover { background: var(--primary-hover); }
67
+ .btn-outline { background: transparent; color: var(--text-main); border-color: var(--card-border); }
68
+ .btn-outline:hover { background: #21262d; border-color: #8b949e; }
69
+ .btn-danger { background: rgba(248,81,73,0.1); color: var(--red); border-color: rgba(248,81,73,0.4); }
70
+ .btn-danger:hover { background: var(--red); color: #fff; }
71
+ .btn-sm { padding: 4px 10px; font-size: 12px; }
72
+
73
+ .container { max-width: 1100px; margin: 32px auto; padding: 0 20px; }
74
+
75
+ /* Hero banner */
76
+ .hero {
77
+ background: linear-gradient(180deg, #161b22 0%, #0d1117 100%);
78
+ border: 1px solid var(--card-border);
79
+ border-radius: 12px;
80
+ padding: 48px 32px;
81
+ text-align: center;
82
+ margin-bottom: 32px;
83
+ }
84
+ .hero h1 { font-size: 32px; font-weight: 800; margin-bottom: 12px; color: #fff; }
85
+ .hero p { font-size: 16px; color: var(--text-muted); max-width: 650px; margin: 0 auto 28px; }
86
+ .auth-buttons { display: flex; justify-content: center; gap: 16px; flex-wrap: wrap; }
87
+ .auth-btn {
88
+ display: flex;
89
+ align-items: center;
90
+ gap: 12px;
91
+ padding: 12px 24px;
92
+ border-radius: 8px;
93
+ font-weight: 600;
94
+ font-size: 15px;
95
+ text-decoration: none;
96
+ border: 1px solid transparent;
97
+ transition: transform 0.15s ease;
98
+ }
99
+ .auth-btn:hover { transform: translateY(-2px); }
100
+ .auth-btn-google { background: #ffffff; color: #1f2937; border-color: #d1d5db; }
101
+ .auth-btn-github { background: #24292f; color: #ffffff; border-color: #30363d; }
102
+
103
+ /* Tab nav */
104
+ .tabs { display: flex; flex-wrap: wrap; gap: 8px; border-bottom: 1px solid var(--card-border); margin-bottom: 24px; }
105
+ .tab-item {
106
+ background: transparent;
107
+ border: 0;
108
+ font-family: inherit;
109
+ text-align: left;
110
+ padding: 12px 20px;
111
+ cursor: pointer;
112
+ font-weight: 600;
113
+ font-size: 14px;
114
+ color: var(--text-muted);
115
+ border-bottom: 2px solid transparent;
116
+ transition: color 0.15s ease;
117
+ }
118
+ .tab-item.active { color: var(--blue); border-bottom-color: var(--blue); }
119
+ .tab-item:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }
120
+ .tab-pane { display: none; }
121
+ .tab-pane.active { display: block; }
122
+
123
+ /* Device Cards */
124
+ .card {
125
+ background: var(--card-bg);
126
+ border: 1px solid var(--card-border);
127
+ border-radius: 8px;
128
+ padding: 20px;
129
+ margin-bottom: 16px;
130
+ }
131
+ .device-row {
132
+ display: flex;
133
+ align-items: center;
134
+ justify-content: space-between;
135
+ flex-wrap: wrap;
136
+ gap: 16px;
137
+ }
138
+ .device-info { display: flex; align-items: center; flex: 1 1 260px; min-width: 0; gap: 16px; }
139
+ .device-info > div:last-child { min-width: 0; }
140
+ .device-icon {
141
+ font-size: 28px;
142
+ width: 48px;
143
+ height: 48px;
144
+ background: #21262d;
145
+ border-radius: 8px;
146
+ display: flex;
147
+ align-items: center;
148
+ justify-content: center;
149
+ }
150
+ .device-name { font-size: 16px; font-weight: 700; margin-bottom: 4px; display: flex; align-items: center; flex-wrap: wrap; overflow-wrap: anywhere; gap: 8px; }
151
+ .device-meta { font-size: 13px; color: var(--text-muted); font-family: var(--font-mono); overflow-wrap: anywhere; }
152
+ .device-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
153
+
154
+ /* Code block */
155
+ .code-box {
156
+ background: #090d13;
157
+ border: 1px solid #30363d;
158
+ border-radius: 6px;
159
+ padding: 14px 18px;
160
+ font-family: var(--font-mono);
161
+ font-size: 13px;
162
+ color: #7ee787;
163
+ overflow-x: auto;
164
+ margin: 12px 0;
165
+ position: relative;
166
+ }
167
+ .code-box > span {
168
+ display: block;
169
+ padding-right: 52px;
170
+ overflow-wrap: anywhere;
171
+ }
172
+ .card a { color: var(--blue); text-underline-offset: 2px; }
173
+ .card a:hover { color: #b0d4ff; }
174
+ .copy-btn {
175
+ position: absolute;
176
+ top: 8px;
177
+ right: 8px;
178
+ padding: 4px 8px;
179
+ font-size: 11px;
180
+ background: #21262d;
181
+ color: #c9d1d9;
182
+ border: 1px solid #30363d;
183
+ border-radius: 4px;
184
+ cursor: pointer;
185
+ }
186
+ .copy-btn:hover { background: #30363d; color: #fff; }
187
+ .copy-btn:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }
188
+
189
+ /* Config guide cards */
190
+ .grid-2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: 20px; }
191
+ @media (max-width: 480px) {
192
+ .container { margin: 20px auto; padding: 0 12px; }
193
+ .hero { padding: 28px 18px; }
194
+ .hero h1 { font-size: 26px; }
195
+ .device-actions { width: 100%; }
196
+ .device-actions select { width: 100%; min-width: 0; }
197
+ }
198
+
199
+ /* Empty state */
200
+ .empty-box {
201
+ text-align: center;
202
+ padding: 48px 16px;
203
+ color: var(--text-muted);
204
+ }
205
+ `;
206
+ //# sourceMappingURL=web-dashboard-styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web-dashboard-styles.js","sourceRoot":"","sources":["../../src/remote/web-dashboard-styles.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4M/B,CAAC"}
@@ -0,0 +1,62 @@
1
+ import type { IncomingMessage, ServerResponse } from "node:http";
2
+ import { type JwtKeyPair } from "./crypto.js";
3
+ import type { OAuthHandler } from "./oauth-handler.js";
4
+ import type { AgentWebSocketHandler } from "./agent-handler.js";
5
+ import { RemoteStore } from "./store.js";
6
+ import type { AuditEvent, RemoteAgentRecord, RemoteConfig, RemotePrincipal } from "./types.js";
7
+ export interface WebDashboardDependencies {
8
+ config: RemoteConfig;
9
+ store: RemoteStore;
10
+ oauth: OAuthHandler;
11
+ agentHandler: AgentWebSocketHandler;
12
+ getJwtKeyPair: () => JwtKeyPair;
13
+ audit: (event: Omit<AuditEvent, "id" | "createdAt">) => void;
14
+ createEnrollmentToken: (principal: RemotePrincipal, args: Record<string, unknown>) => Record<string, unknown>;
15
+ updateAgentPolicy: (principal: RemotePrincipal, agent: RemoteAgentRecord, policyInput: unknown) => RemoteAgentRecord;
16
+ revokeAgent: (principal: RemotePrincipal, agent: RemoteAgentRecord) => RemoteAgentRecord;
17
+ resolveAgent: (userId: string, value: string) => RemoteAgentRecord | undefined;
18
+ }
19
+ export declare class WebDashboardHandler {
20
+ private readonly deps;
21
+ private readonly webAuthTransactions;
22
+ constructor(deps: WebDashboardDependencies);
23
+ private readonly sessionCookieName;
24
+ private sessionCookie;
25
+ private authTransactionCookie;
26
+ private extractSessionToken;
27
+ private matchingAuthTransaction;
28
+ private createWebSession;
29
+ private assertBrowserMutation;
30
+ getPrincipalFromSession(req: IncomingMessage): RemotePrincipal | undefined;
31
+ /** Handle routes for web UI, authentication, dashboard APIs, and agent scripts. */
32
+ handleHttpRequest(req: IncomingMessage, res: ServerResponse, pathname: string): Promise<boolean>;
33
+ private handleScriptRoutes;
34
+ private handleAuthRoutes;
35
+ private handleDashboardApiRoutes;
36
+ private handleDashboardDeviceRoutes;
37
+ private handleDashboardPageRoutes;
38
+ private handleDirectLoginGitHub;
39
+ private handleDirectLoginGoogle;
40
+ /** Authorization state is one-use even after a rejected callback. */
41
+ private consumeWebAuthTransaction;
42
+ private completeWebAuth;
43
+ private handleDirectCallbackGitHub;
44
+ /** A dashboard Google login shares the registered MCP Google callback URL. */
45
+ handleSharedGoogleCallback(req: IncomingMessage, res: ServerResponse): Promise<boolean>;
46
+ private handleDirectCallbackGoogle;
47
+ private handleApiMe;
48
+ private handleApiDevices;
49
+ private quotePosixArg;
50
+ private quotePowerShellArg;
51
+ private handleApiEnrollDevice;
52
+ /** Resolve devices only through the authenticated tenant's ownership boundary. */
53
+ private findOwnedDashboardDevice;
54
+ private handleApiUpdateDevicePolicy;
55
+ /** Revoke access without deleting the inventory or the retained audit trail. */
56
+ private handleApiRevokeDevice;
57
+ private handleApiRemoveDevice;
58
+ private handleApiAudit;
59
+ private handleApiClientConfigs;
60
+ private serveDashboardHtml;
61
+ }
62
+ //# sourceMappingURL=web-dashboard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web-dashboard.d.ts","sourceRoot":"","sources":["../../src/remote/web-dashboard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAEjE,OAAO,EAA+B,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAG3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAQ/F,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,YAAY,CAAC;IACrB,KAAK,EAAE,WAAW,CAAC;IACnB,KAAK,EAAE,YAAY,CAAC;IACpB,YAAY,EAAE,qBAAqB,CAAC;IACpC,aAAa,EAAE,MAAM,UAAU,CAAC;IAChC,KAAK,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,GAAG,WAAW,CAAC,KAAK,IAAI,CAAC;IAC7D,qBAAqB,EAAE,CACrB,SAAS,EAAE,eAAe,EAC1B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC1B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7B,iBAAiB,EAAE,CACjB,SAAS,EAAE,eAAe,EAC1B,KAAK,EAAE,iBAAiB,EACxB,WAAW,EAAE,OAAO,KACjB,iBAAiB,CAAC;IACvB,WAAW,EAAE,CAAC,SAAS,EAAE,eAAe,EAAE,KAAK,EAAE,iBAAiB,KAAK,iBAAiB,CAAC;IACzF,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,iBAAiB,GAAG,SAAS,CAAC;CAChF;AAED,qBAAa,mBAAmB;IAMlB,OAAO,CAAC,QAAQ,CAAC,IAAI;IALjC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAGhC;gBAEyB,IAAI,EAAE,wBAAwB;IAE3D,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAyB;IAE3D,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,qBAAqB;IAS7B,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,uBAAuB;IAM/B,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,qBAAqB;IAY7B,uBAAuB,CAAC,GAAG,EAAE,eAAe,GAAG,eAAe,GAAG,SAAS;IAsB1E,mFAAmF;IAC7E,iBAAiB,CACrB,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,OAAO,CAAC;IASnB,OAAO,CAAC,kBAAkB;YAcZ,gBAAgB;YAqChB,wBAAwB;YA2BxB,2BAA2B;IAgCzC,OAAO,CAAC,yBAAyB;IAcjC,OAAO,CAAC,uBAAuB;IAoC/B,OAAO,CAAC,uBAAuB;IAwC/B,qEAAqE;IACrE,OAAO,CAAC,yBAAyB;IAsBjC,OAAO,CAAC,eAAe;YAgBT,0BAA0B;IAUxC,8EAA8E;IACxE,0BAA0B,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;YAQ/E,0BAA0B;IAWxC,OAAO,CAAC,WAAW;IAwBnB,OAAO,CAAC,gBAAgB;IAmBxB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,kBAAkB;YAIZ,qBAAqB;IAuCnC,kFAAkF;IAClF,OAAO,CAAC,wBAAwB;YAmBlB,2BAA2B;IAYzC,gFAAgF;IAChF,OAAO,CAAC,qBAAqB;YAWf,qBAAqB;IAyBnC,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,sBAAsB;IAQ9B,OAAO,CAAC,kBAAkB;CAmC3B"}