@comecaramelos/dsh-chrome-mcp 0.0.1 → 2.0.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 (214) hide show
  1. package/README.md +44 -95
  2. package/assets/dsh-chrome-mcp-social.png +0 -0
  3. package/assets/icon.svg +71 -0
  4. package/assets/prelaunch-windows-chrome.html +277 -0
  5. package/lib/client.js +3005 -568
  6. package/lib/client.js.map +7 -0
  7. package/lib/host/apply.d.ts +40 -0
  8. package/lib/host/apply.d.ts.map +1 -0
  9. package/lib/host/apply.js +57 -0
  10. package/lib/host/apply.js.map +1 -0
  11. package/lib/host/bridge.d.ts +74 -0
  12. package/lib/host/bridge.d.ts.map +1 -0
  13. package/lib/host/bridge.js +168 -0
  14. package/lib/host/bridge.js.map +1 -0
  15. package/lib/host/catalog.d.ts +31 -0
  16. package/lib/host/catalog.d.ts.map +1 -0
  17. package/lib/host/catalog.js +92 -0
  18. package/lib/host/catalog.js.map +1 -0
  19. package/lib/host/commands/chrome-path.d.ts +4 -0
  20. package/lib/host/commands/chrome-path.d.ts.map +1 -0
  21. package/lib/host/commands/chrome-path.js +65 -0
  22. package/lib/host/commands/chrome-path.js.map +1 -0
  23. package/lib/host/commands/chrome-refresh.d.ts +17 -0
  24. package/lib/host/commands/chrome-refresh.d.ts.map +1 -0
  25. package/lib/host/commands/chrome-refresh.js +37 -0
  26. package/lib/host/commands/chrome-refresh.js.map +1 -0
  27. package/lib/host/commands/index.d.ts +26 -0
  28. package/lib/host/commands/index.d.ts.map +1 -0
  29. package/lib/host/commands/index.js +41 -0
  30. package/lib/host/commands/index.js.map +1 -0
  31. package/lib/host/constants.d.ts +306 -0
  32. package/lib/host/constants.d.ts.map +1 -0
  33. package/lib/host/constants.js +319 -0
  34. package/lib/host/constants.js.map +1 -0
  35. package/lib/host/controller/_trace.d.ts +3 -0
  36. package/lib/host/controller/_trace.d.ts.map +1 -0
  37. package/lib/host/controller/_trace.js +14 -0
  38. package/lib/host/controller/_trace.js.map +1 -0
  39. package/lib/host/controller/bridge-run.d.ts +40 -0
  40. package/lib/host/controller/bridge-run.d.ts.map +1 -0
  41. package/lib/host/controller/bridge-run.js +85 -0
  42. package/lib/host/controller/bridge-run.js.map +1 -0
  43. package/lib/host/controller/captures.d.ts +15 -0
  44. package/lib/host/controller/captures.d.ts.map +1 -0
  45. package/lib/host/controller/captures.js +85 -0
  46. package/lib/host/controller/captures.js.map +1 -0
  47. package/lib/host/controller/commits.d.ts +4 -0
  48. package/lib/host/controller/commits.d.ts.map +1 -0
  49. package/lib/host/controller/commits.js +131 -0
  50. package/lib/host/controller/commits.js.map +1 -0
  51. package/lib/host/controller/connections.d.ts +38 -0
  52. package/lib/host/controller/connections.d.ts.map +1 -0
  53. package/lib/host/controller/connections.js +71 -0
  54. package/lib/host/controller/connections.js.map +1 -0
  55. package/lib/host/controller/controller.d.ts +35 -0
  56. package/lib/host/controller/controller.d.ts.map +1 -0
  57. package/lib/host/controller/controller.js +234 -0
  58. package/lib/host/controller/controller.js.map +1 -0
  59. package/lib/host/controller/index.d.ts +30 -0
  60. package/lib/host/controller/index.d.ts.map +1 -0
  61. package/lib/host/controller/index.js +27 -0
  62. package/lib/host/controller/index.js.map +1 -0
  63. package/lib/host/controller/notes.d.ts +26 -0
  64. package/lib/host/controller/notes.d.ts.map +1 -0
  65. package/lib/host/controller/notes.js +44 -0
  66. package/lib/host/controller/notes.js.map +1 -0
  67. package/lib/host/controller/persist.d.ts +16 -0
  68. package/lib/host/controller/persist.d.ts.map +1 -0
  69. package/lib/host/controller/persist.js +98 -0
  70. package/lib/host/controller/persist.js.map +1 -0
  71. package/lib/host/controller/publish.d.ts +4 -0
  72. package/lib/host/controller/publish.d.ts.map +1 -0
  73. package/lib/host/controller/publish.js +56 -0
  74. package/lib/host/controller/publish.js.map +1 -0
  75. package/lib/host/controller/runs.d.ts +80 -0
  76. package/lib/host/controller/runs.d.ts.map +1 -0
  77. package/lib/host/controller/runs.js +394 -0
  78. package/lib/host/controller/runs.js.map +1 -0
  79. package/lib/host/controller/state.d.ts +172 -0
  80. package/lib/host/controller/state.d.ts.map +1 -0
  81. package/lib/host/controller/state.js +2 -0
  82. package/lib/host/controller/state.js.map +1 -0
  83. package/lib/host/controller/windows-run.d.ts +17 -0
  84. package/lib/host/controller/windows-run.d.ts.map +1 -0
  85. package/lib/host/controller/windows-run.js +109 -0
  86. package/lib/host/controller/windows-run.js.map +1 -0
  87. package/lib/host/discovery/candidates.d.ts +47 -0
  88. package/lib/host/discovery/candidates.d.ts.map +1 -0
  89. package/lib/host/discovery/candidates.js +68 -0
  90. package/lib/host/discovery/candidates.js.map +1 -0
  91. package/lib/host/discovery/index.d.ts +19 -0
  92. package/lib/host/discovery/index.d.ts.map +1 -0
  93. package/lib/host/discovery/index.js +19 -0
  94. package/lib/host/discovery/index.js.map +1 -0
  95. package/lib/host/discovery/probe.d.ts +29 -0
  96. package/lib/host/discovery/probe.d.ts.map +1 -0
  97. package/lib/host/discovery/probe.js +155 -0
  98. package/lib/host/discovery/probe.js.map +1 -0
  99. package/lib/host/discovery/scan.d.ts +72 -0
  100. package/lib/host/discovery/scan.d.ts.map +1 -0
  101. package/lib/host/discovery/scan.js +195 -0
  102. package/lib/host/discovery/scan.js.map +1 -0
  103. package/lib/host/flags.d.ts +65 -0
  104. package/lib/host/flags.d.ts.map +1 -0
  105. package/lib/host/flags.js +186 -0
  106. package/lib/host/flags.js.map +1 -0
  107. package/lib/host/kind.d.ts +45 -0
  108. package/lib/host/kind.d.ts.map +1 -0
  109. package/lib/host/kind.js +251 -0
  110. package/lib/host/kind.js.map +1 -0
  111. package/lib/host/manager.d.ts +21 -0
  112. package/lib/host/manager.d.ts.map +1 -0
  113. package/lib/host/manager.js +113 -0
  114. package/lib/host/manager.js.map +1 -0
  115. package/lib/host/migration.d.ts +26 -0
  116. package/lib/host/migration.d.ts.map +1 -0
  117. package/lib/host/migration.js +127 -0
  118. package/lib/host/migration.js.map +1 -0
  119. package/lib/host/platform.d.ts +38 -0
  120. package/lib/host/platform.d.ts.map +1 -0
  121. package/lib/host/platform.js +64 -0
  122. package/lib/host/platform.js.map +1 -0
  123. package/lib/host/plugin-meta.d.ts +21 -0
  124. package/lib/host/plugin-meta.d.ts.map +1 -0
  125. package/lib/host/plugin-meta.js +21 -0
  126. package/lib/host/plugin-meta.js.map +1 -0
  127. package/lib/host/schema.d.ts +361 -0
  128. package/lib/host/schema.d.ts.map +1 -0
  129. package/lib/host/schema.js +196 -0
  130. package/lib/host/schema.js.map +1 -0
  131. package/lib/host/settings.d.ts +28 -0
  132. package/lib/host/settings.d.ts.map +1 -0
  133. package/lib/host/settings.js +91 -0
  134. package/lib/host/settings.js.map +1 -0
  135. package/lib/host/status.d.ts +25 -0
  136. package/lib/host/status.d.ts.map +1 -0
  137. package/lib/host/status.js +45 -0
  138. package/lib/host/status.js.map +1 -0
  139. package/lib/host/tool.d.ts +65 -0
  140. package/lib/host/tool.d.ts.map +1 -0
  141. package/lib/host/tool.js +52 -0
  142. package/lib/host/tool.js.map +1 -0
  143. package/lib/host/types/config.d.ts +101 -0
  144. package/lib/host/types/config.d.ts.map +1 -0
  145. package/lib/host/types/config.js +2 -0
  146. package/lib/host/types/config.js.map +1 -0
  147. package/lib/host/types/executable.d.ts +35 -0
  148. package/lib/host/types/executable.d.ts.map +1 -0
  149. package/lib/host/types/executable.js +9 -0
  150. package/lib/host/types/executable.js.map +1 -0
  151. package/lib/host/types/index.d.ts +24 -0
  152. package/lib/host/types/index.d.ts.map +1 -0
  153. package/lib/host/types/index.js +2 -0
  154. package/lib/host/types/index.js.map +1 -0
  155. package/lib/host/types/plugin.d.ts +38 -0
  156. package/lib/host/types/plugin.d.ts.map +1 -0
  157. package/lib/host/types/plugin.js +10 -0
  158. package/lib/host/types/plugin.js.map +1 -0
  159. package/lib/host/types/services.d.ts +26 -0
  160. package/lib/host/types/services.d.ts.map +1 -0
  161. package/lib/host/types/services.js +9 -0
  162. package/lib/host/types/services.js.map +1 -0
  163. package/lib/host/types/settings.d.ts +180 -0
  164. package/lib/host/types/settings.d.ts.map +1 -0
  165. package/lib/host/types/settings.js +2 -0
  166. package/lib/host/types/settings.js.map +1 -0
  167. package/lib/host/types/stderr.d.ts +51 -0
  168. package/lib/host/types/stderr.d.ts.map +1 -0
  169. package/lib/host/types/stderr.js +9 -0
  170. package/lib/host/types/stderr.js.map +1 -0
  171. package/lib/host/types/windows.d.ts +39 -0
  172. package/lib/host/types/windows.d.ts.map +1 -0
  173. package/lib/host/types/windows.js +9 -0
  174. package/lib/host/types/windows.js.map +1 -0
  175. package/lib/host/values.d.ts +204 -0
  176. package/lib/host/values.d.ts.map +1 -0
  177. package/lib/host/values.js +404 -0
  178. package/lib/host/values.js.map +1 -0
  179. package/lib/host/windows/connect-flags.d.ts +27 -0
  180. package/lib/host/windows/connect-flags.d.ts.map +1 -0
  181. package/lib/host/windows/connect-flags.js +97 -0
  182. package/lib/host/windows/connect-flags.js.map +1 -0
  183. package/lib/host/windows/index.d.ts +31 -0
  184. package/lib/host/windows/index.d.ts.map +1 -0
  185. package/lib/host/windows/index.js +30 -0
  186. package/lib/host/windows/index.js.map +1 -0
  187. package/lib/host/windows/landing.d.ts +47 -0
  188. package/lib/host/windows/landing.d.ts.map +1 -0
  189. package/lib/host/windows/landing.js +174 -0
  190. package/lib/host/windows/landing.js.map +1 -0
  191. package/lib/host/windows/link.d.ts +11 -0
  192. package/lib/host/windows/link.d.ts.map +1 -0
  193. package/lib/host/windows/link.js +52 -0
  194. package/lib/host/windows/link.js.map +1 -0
  195. package/lib/host/windows/paths.d.ts +64 -0
  196. package/lib/host/windows/paths.d.ts.map +1 -0
  197. package/lib/host/windows/paths.js +148 -0
  198. package/lib/host/windows/paths.js.map +1 -0
  199. package/lib/host/windows/run.d.ts +74 -0
  200. package/lib/host/windows/run.d.ts.map +1 -0
  201. package/lib/host/windows/run.js +211 -0
  202. package/lib/host/windows/run.js.map +1 -0
  203. package/lib/host/windows/spawn.d.ts +22 -0
  204. package/lib/host/windows/spawn.d.ts.map +1 -0
  205. package/lib/host/windows/spawn.js +73 -0
  206. package/lib/host/windows/spawn.js.map +1 -0
  207. package/lib/index.d.ts +102 -0
  208. package/lib/index.d.ts.map +1 -0
  209. package/lib/index.js +102 -636
  210. package/lib/index.js.map +1 -0
  211. package/locale/en.json +6 -0
  212. package/locale/zh.json +6 -0
  213. package/package.json +57 -14
  214. package/cordis.patch.yml +0 -5
package/lib/index.d.ts ADDED
@@ -0,0 +1,102 @@
1
+ /**
2
+ * @comecaramelos/dsh-chrome-mcp — host half, public surface.
3
+ *
4
+ * A **component** of the `dsh-mcp-manager` bundle: this package registers the
5
+ * `chrome` and `chrome-windows` kinds of MCP connection with the manager's
6
+ * `mcpConnections` service — the first runs `chrome-devtools-mcp` as a local
7
+ * stdio connection (`npx -y chrome-devtools-mcp@latest [extraFlags]`, wrapped
8
+ * for its stderr), the second drives the Windows-side Chrome through the WSL
9
+ * interop mount and connects to its debugging port. Whether a connection runs
10
+ * is the manager pool's decision, not this package's; the row itself starts
11
+ * nothing.
12
+ *
13
+ * Identity is the row's **profile entry id** (`mcp-chrome`), read off the
14
+ * plugin's own fiber — not a namespace of its own, and `serverName` is no longer
15
+ * part of it (a connection's tool namespace is its own `entry.id`).
16
+ *
17
+ * What stays in the row is machine state — the saved executable rows, the
18
+ * seeded selection, the defaults the connections follow when they carry no own
19
+ * answer — and the card surface that edits it: the extra-flags rows, the
20
+ * Chrome executable picker, and error reporting.
21
+ *
22
+ * Persistence boundary: only the user-authored fields land in the profile's own
23
+ * patch layer — `extraFlags` (the default flags list),
24
+ * `chromePath` (the default executable: the picker's pick or the host's seed),
25
+ * `executables` (the saved-executable rows: `{ id: path, name: label }`),
26
+ * `droppedExecutables`, `chromeCustomPaths` (**legacy** MRU, folded once),
27
+ * `refreshExecutablesNonce` (**Fetch executables** trigger),
28
+ * `openWindowsChromeNonce` (**Prelaunch Windows Chrome** trigger),
29
+ * `stderrMode` (the default console-output mode) and `migrationDismissed`
30
+ * (whether the standalone-config translation was turned down; see D4).
31
+ *
32
+ * Status state (`lastError`, `executableDiscoveryRevision`, `chromeVersion`,
33
+ * `executableStatus`, `chromeMissing`, `effectiveChromePath`, `effectiveSource`,
34
+ * `stderrEffective`, `wslWindowsExecutable`, the static `defaultExtraFlags`
35
+ * mirror, the static `wslExtraFlags` mirror, `windowsChromeStatus`,
36
+ * `carriesConnectionMode`, `runningFlags` and `runningNote`) is the **live
37
+ * mirror**: every one of them is a `.volatile()` field of the same `Config` the
38
+ * form edits, published by committing that mirror onto this fiber's entry — a
39
+ * purely volatile commit persists nothing, never remounts the fiber, and is what
40
+ * the card settles its snapshot on. The controller reads the two layers the
41
+ * distinction needs (`user` = what the patch carries, `base` = what the row
42
+ * config carries under it) off the described form row, never off a document of
43
+ * its own.
44
+ *
45
+ * Everything behind this surface lives in ./host/*:
46
+ *
47
+ * ./host/apply.ts the wiring (controller + kinds + form + tool + commands)
48
+ * ./host/manager.ts the `mcpConnections` seam (register, notify, propose)
49
+ * ./host/kind.ts the two kinds: fields, choices, `resolve`
50
+ * ./host/migration.ts the standalone-config translation (D4)
51
+ * ./host/controller/ live state: the mirror + its publish, runs, captures
52
+ * ./host/settings.ts form attach, entry-id rule, commit routing
53
+ * ./host/catalog.ts the saved-executable rows the picker edits
54
+ * ./host/discovery/ the candidate paths + `--version` probes + check run
55
+ * ./host/bridge.ts the bridge argv + spawn wrapper, stderr log
56
+ * ./host/flags.ts extra-flags validation + flag predicates
57
+ * ./host/platform.ts WSL detection + the Windows-executable predicate
58
+ * ./host/values.ts precedence resolution + the form's layer reads
59
+ * ./host/status.ts error classification + tool-result notes
60
+ * ./host/schema.ts the single `Config`
61
+ * ./host/constants.ts fixed identifiers, budgets, patterns
62
+ *
63
+ * Config (the single `Config`, cordis row + form):
64
+ * serverName legacy tool namespace (ignored by connections; the
65
+ * standalone translation reads it as the entry `id`)
66
+ * command launcher executable (default "npx")
67
+ * package npm spec to npx (default "chrome-devtools-mcp@latest")
68
+ * extraFlags default flags appended after the spec (.volatile())
69
+ * (default ["--no-usage-statistics", "--no-performance-crux"])
70
+ * chromePath the default executable selection (.volatile())
71
+ * chromePaths scan candidate list when nothing is picked
72
+ * (default defaultChromePaths(), mirroring upstream's
73
+ * stable-channel locations)
74
+ * env / cwd / toolCallTimeoutMs / maxInstructionBytes / failOnStartupError /
75
+ * reconnect defaults every connection config carries with
76
+ * whatever its own fields answer instead
77
+ *
78
+ * One plugin instance per dsh host: the entry id is fixed.
79
+ */
80
+ export { inject, name } from "./host/plugin-meta.js";
81
+ export { CONFIGURATION_DOCS_URL, DEFAULT_EXTRA_FLAGS, ENTRY_ID, FLAGS_ENV_VAR, WINDOWS_CHROME_CANDIDATES, WINDOWS_CHROME_PORT, WINDOWS_CHROME_PORT_POOL, WINDOWS_CHROME_PREREQ_PORTS, WSL_EXTRA_FLAGS } from "./host/constants.js";
82
+ export { Config } from "./host/schema.js";
83
+ export { apply } from "./host/apply.js";
84
+ export { createChromeKinds, createChromeKind, createChromeWindowsKind, entryExecutable, entryExtraFlags, entryStderrMode, executableChoices, joinFlagLines, parseFlagLines } from "./host/kind.js";
85
+ export { carriesStandaloneConfig, migrationDismissed, standaloneProposal } from "./host/migration.js";
86
+ export { attachToManager, isOwnedKind } from "./host/manager.js";
87
+ export { chromeMcpEntryId } from "./host/settings.js";
88
+ export { bridgeConfig, bridgeStderrLogPath, buildBridgeSpawn, buildServerArgs, captureLogger, pinnedServerCli, serverCommand, usesPinnedServer } from "./host/bridge.js";
89
+ export { checkChrome, chromeExecutableCandidates, DEFAULT_CHROME_PATHS, defaultChromePaths, discoverChrome, probeExecutable, readWindowsInstallVersion, scanChromeExecutables } from "./host/discovery/index.js";
90
+ export { isChromeMissing, toolResultNote } from "./host/status.js";
91
+ export { WINDOWS_VERSION_UNKNOWN } from "./host/constants.js";
92
+ export { isWindowsExecutablePath, isWindowsExecutableUnderWsl, isWindowsSubsystemForLinux } from "./host/platform.js";
93
+ export { browserUrlFlagPort, findWindowsChromeExecutable, findWindowsChromeExecutables, linkWindowsChromeProfile, runWindowsChromeConnect, windowsChromeLandingHtml, windowsChromeLandingPath, windowsChromeLandingUrl, windowsChromeLocalAppData, windowsChromeProfileDir, windowsChromeUrl, windowsChromeProjectDir, windowsFileUrl, windowsPathToMount, withBrowserUrlFlag } from "./host/windows/index.js";
94
+ export { PRELAUNCH_WINDOWS_CHROME_NAME, installPrelaunchWindowsChromeTool, prelaunchWindowsChromeDefinition } from "./host/tool.js";
95
+ export { carriesConfigFile, carriesConnectionMode, carriesExecutablePath, carriesOtherChannel, extractExecutablePathFlag, flagsSkipCheck, flagsSkipProbe, sameFlags, stripExecutablePathFlags, validateExtraFlags } from "./host/flags.js";
96
+ export { createLiveMirror, liveMirrorKeys, normalizeCustomPaths, readConfigField, readConfigForm, readConfigLayers, readPersistedChromePath, readPersistedCustomPaths, readPersistedFlags, readPersistedStderrMode, readSavedExecutables, resolveEffectiveChromePath, resolveEnvFlags, resolveLaunchFlags, resolveSelection, resolveStderrMode } from "./host/values.js";
97
+ export { entryIds, entryLabel, findEntry, isValidEntryId, mergeEntries, normalizeEntries } from "./host/catalog.js";
98
+ export type { BridgeStderrMode, ChromeMcpConfig, ConfigField, ConfigLayers, ConfigLayerFields, ConfigLiveFields, ConfigUserFields, EffectiveChromeSource, ReconnectConfig } from "./host/types/index.js";
99
+ export type { ChromeExecutableEntry, ChromeExecutableStatus } from "./host/types/index.js";
100
+ export type { ChromeMcpForm, McpBridge, PluginContext, SettingsFormRow, SettingsForms, ToolCallExecution, ToolCallResult, WindowsChromeRun, WindowsChromeState, WindowsChromeStatus } from "./host/types/index.js";
101
+ export type { ConfigFormValues } from "./host/schema.js";
102
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}