@weavetab/mcp 2.5.0-beta.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 (281) hide show
  1. package/AGENTS.md +48 -0
  2. package/ARCHITECTURE.md +590 -0
  3. package/LICENSE +631 -0
  4. package/README.md +909 -0
  5. package/SECURITY.md +196 -0
  6. package/TROUBLESHOOTING.md +365 -0
  7. package/dist/anticaptcha/detector.d.ts +49 -0
  8. package/dist/anticaptcha/detector.js +465 -0
  9. package/dist/anticaptcha/integration.d.ts +36 -0
  10. package/dist/anticaptcha/integration.js +123 -0
  11. package/dist/anticaptcha/solver.d.ts +27 -0
  12. package/dist/anticaptcha/solver.js +552 -0
  13. package/dist/audit/logger.d.ts +13 -0
  14. package/dist/audit/logger.js +177 -0
  15. package/dist/audit/telemetry.d.ts +36 -0
  16. package/dist/audit/telemetry.js +162 -0
  17. package/dist/cdp/bridge.d.ts +16 -0
  18. package/dist/cdp/bridge.js +826 -0
  19. package/dist/cdp/confirm.d.ts +26 -0
  20. package/dist/cdp/confirm.js +79 -0
  21. package/dist/cdp/connector.d.ts +37 -0
  22. package/dist/cdp/connector.js +661 -0
  23. package/dist/cdp/extension.d.ts +36 -0
  24. package/dist/cdp/extension.js +118 -0
  25. package/dist/cdp/finder.d.ts +1 -0
  26. package/dist/cdp/finder.js +2 -0
  27. package/dist/cdp/helpers.d.ts +11 -0
  28. package/dist/cdp/helpers.js +195 -0
  29. package/dist/cdp/label_cache.d.ts +12 -0
  30. package/dist/cdp/label_cache.js +51 -0
  31. package/dist/cdp/lock.d.ts +33 -0
  32. package/dist/cdp/lock.js +206 -0
  33. package/dist/cdp/omni_broker.d.ts +17 -0
  34. package/dist/cdp/omni_broker.js +119 -0
  35. package/dist/cdp/profiles.d.ts +1 -0
  36. package/dist/cdp/profiles.js +87 -0
  37. package/dist/cdp/pruner.d.ts +41 -0
  38. package/dist/cdp/pruner.js +263 -0
  39. package/dist/cdp/ref_cache.d.ts +101 -0
  40. package/dist/cdp/ref_cache.js +234 -0
  41. package/dist/cdp/retry.d.ts +5 -0
  42. package/dist/cdp/retry.js +39 -0
  43. package/dist/cdp/retry_enhanced.d.ts +44 -0
  44. package/dist/cdp/retry_enhanced.js +102 -0
  45. package/dist/cdp/security.d.ts +50 -0
  46. package/dist/cdp/security.js +237 -0
  47. package/dist/cdp/verify.d.ts +39 -0
  48. package/dist/cdp/verify.js +143 -0
  49. package/dist/cdp/walker.d.ts +91 -0
  50. package/dist/cdp/walker.js +896 -0
  51. package/dist/cdp/walker.test.d.ts +2 -0
  52. package/dist/cdp/walker.test.js +172 -0
  53. package/dist/cdp/websocket_transport.d.ts +15 -0
  54. package/dist/cdp/websocket_transport.js +118 -0
  55. package/dist/cli/plugin.d.ts +9 -0
  56. package/dist/cli/plugin.js +1134 -0
  57. package/dist/cli/updater.d.ts +1 -0
  58. package/dist/cli/updater.js +72 -0
  59. package/dist/config/loader.d.ts +120 -0
  60. package/dist/config/loader.js +704 -0
  61. package/dist/index.d.ts +2 -0
  62. package/dist/index.js +1248 -0
  63. package/dist/intelligence/hints.d.ts +11 -0
  64. package/dist/intelligence/hints.js +39 -0
  65. package/dist/intelligence/intent.d.ts +33 -0
  66. package/dist/intelligence/intent.js +171 -0
  67. package/dist/intelligence/sessionMemory.d.ts +66 -0
  68. package/dist/intelligence/sessionMemory.js +284 -0
  69. package/dist/intelligence/sessionMemory.test.d.ts +2 -0
  70. package/dist/intelligence/sessionMemory.test.js +62 -0
  71. package/dist/intelligence/trail.d.ts +64 -0
  72. package/dist/intelligence/trail.js +233 -0
  73. package/dist/intelligence/trail.test.d.ts +2 -0
  74. package/dist/intelligence/trail.test.js +110 -0
  75. package/dist/intelligence/vision.d.ts +24 -0
  76. package/dist/intelligence/vision.js +151 -0
  77. package/dist/lifecycle/mission_manager.d.ts +16 -0
  78. package/dist/lifecycle/mission_manager.js +44 -0
  79. package/dist/overlay/bubble.d.ts +16 -0
  80. package/dist/overlay/bubble.js +37 -0
  81. package/dist/overlay/ghost.d.ts +35 -0
  82. package/dist/overlay/ghost.js +508 -0
  83. package/dist/overlay/injector.d.ts +22 -0
  84. package/dist/overlay/injector.js +198 -0
  85. package/dist/plugin/interface.d.ts +134 -0
  86. package/dist/plugin/interface.js +1 -0
  87. package/dist/plugin/loader.d.ts +18 -0
  88. package/dist/plugin/loader.js +155 -0
  89. package/dist/plugin/registry.d.ts +50 -0
  90. package/dist/plugin/registry.js +234 -0
  91. package/dist/security/blacklist.d.ts +24 -0
  92. package/dist/security/blacklist.js +80 -0
  93. package/dist/security/filter.d.ts +2 -0
  94. package/dist/security/filter.js +20 -0
  95. package/dist/security/guard.d.ts +8 -0
  96. package/dist/security/guard.js +35 -0
  97. package/dist/security/ratelimit.d.ts +11 -0
  98. package/dist/security/ratelimit.js +57 -0
  99. package/dist/security/secrets.d.ts +75 -0
  100. package/dist/security/secrets.js +365 -0
  101. package/dist/sensors/actionability.d.ts +81 -0
  102. package/dist/sensors/actionability.js +303 -0
  103. package/dist/sensors/guard.d.ts +25 -0
  104. package/dist/sensors/guard.js +168 -0
  105. package/dist/sensors/mutations.d.ts +23 -0
  106. package/dist/sensors/mutations.js +93 -0
  107. package/dist/sensors/network.d.ts +67 -0
  108. package/dist/sensors/network.js +193 -0
  109. package/dist/sensors/operation_monitor.d.ts +80 -0
  110. package/dist/sensors/operation_monitor.js +203 -0
  111. package/dist/sensors/pacing.d.ts +44 -0
  112. package/dist/sensors/pacing.js +111 -0
  113. package/dist/sensors/thoughts.d.ts +2 -0
  114. package/dist/sensors/thoughts.js +59 -0
  115. package/dist/sensors/wait.d.ts +12 -0
  116. package/dist/sensors/wait.js +44 -0
  117. package/dist/server.d.ts +7 -0
  118. package/dist/server.js +1687 -0
  119. package/dist/state/agent.d.ts +36 -0
  120. package/dist/state/agent.js +101 -0
  121. package/dist/state/cache.d.ts +16 -0
  122. package/dist/state/cache.js +92 -0
  123. package/dist/state/cache.test.d.ts +2 -0
  124. package/dist/state/cache.test.js +76 -0
  125. package/dist/state/delta.d.ts +71 -0
  126. package/dist/state/delta.js +234 -0
  127. package/dist/state/delta.test.d.ts +2 -0
  128. package/dist/state/delta.test.js +279 -0
  129. package/dist/state/groups.d.ts +15 -0
  130. package/dist/state/groups.js +80 -0
  131. package/dist/state/session.d.ts +30 -0
  132. package/dist/state/session.js +155 -0
  133. package/dist/tools/accessibility.d.ts +14 -0
  134. package/dist/tools/accessibility.js +32 -0
  135. package/dist/tools/ask.d.ts +14 -0
  136. package/dist/tools/ask.js +49 -0
  137. package/dist/tools/automation.d.ts +36 -0
  138. package/dist/tools/automation.js +218 -0
  139. package/dist/tools/browser_detect.d.ts +13 -0
  140. package/dist/tools/browser_detect.js +73 -0
  141. package/dist/tools/burst.d.ts +35 -0
  142. package/dist/tools/burst.js +344 -0
  143. package/dist/tools/canvas.d.ts +25 -0
  144. package/dist/tools/canvas.js +132 -0
  145. package/dist/tools/captcha.d.ts +38 -0
  146. package/dist/tools/captcha.js +209 -0
  147. package/dist/tools/click.d.ts +36 -0
  148. package/dist/tools/click.js +561 -0
  149. package/dist/tools/click_and_wait.d.ts +33 -0
  150. package/dist/tools/click_and_wait.js +149 -0
  151. package/dist/tools/clipboard.d.ts +29 -0
  152. package/dist/tools/clipboard.js +279 -0
  153. package/dist/tools/console.d.ts +21 -0
  154. package/dist/tools/console.js +107 -0
  155. package/dist/tools/cookies.d.ts +67 -0
  156. package/dist/tools/cookies.js +121 -0
  157. package/dist/tools/design_extract.d.ts +109 -0
  158. package/dist/tools/design_extract.js +641 -0
  159. package/dist/tools/dialog.d.ts +24 -0
  160. package/dist/tools/dialog.js +109 -0
  161. package/dist/tools/drag.d.ts +15 -0
  162. package/dist/tools/drag.js +29 -0
  163. package/dist/tools/emulation.d.ts +33 -0
  164. package/dist/tools/emulation.js +69 -0
  165. package/dist/tools/eval.d.ts +20 -0
  166. package/dist/tools/eval.js +92 -0
  167. package/dist/tools/fill.d.ts +41 -0
  168. package/dist/tools/fill.js +667 -0
  169. package/dist/tools/find.d.ts +30 -0
  170. package/dist/tools/find.js +60 -0
  171. package/dist/tools/geo.d.ts +19 -0
  172. package/dist/tools/geo.js +29 -0
  173. package/dist/tools/github/analyze.d.ts +4 -0
  174. package/dist/tools/github/analyze.js +113 -0
  175. package/dist/tools/github/cache.d.ts +21 -0
  176. package/dist/tools/github/cache.js +28 -0
  177. package/dist/tools/github/index.d.ts +4 -0
  178. package/dist/tools/github/index.js +4 -0
  179. package/dist/tools/github/issues.d.ts +9 -0
  180. package/dist/tools/github/issues.js +88 -0
  181. package/dist/tools/github/pr.d.ts +5 -0
  182. package/dist/tools/github/pr.js +88 -0
  183. package/dist/tools/github/rateLimiter.d.ts +4 -0
  184. package/dist/tools/github/rateLimiter.js +46 -0
  185. package/dist/tools/github/read.d.ts +34 -0
  186. package/dist/tools/github/read.js +74 -0
  187. package/dist/tools/github/repoContext.d.ts +20 -0
  188. package/dist/tools/github/repoContext.js +129 -0
  189. package/dist/tools/highlight.d.ts +20 -0
  190. package/dist/tools/highlight.js +140 -0
  191. package/dist/tools/hover.d.ts +19 -0
  192. package/dist/tools/hover.js +57 -0
  193. package/dist/tools/inspect.d.ts +17 -0
  194. package/dist/tools/inspect.js +125 -0
  195. package/dist/tools/integration.test.d.ts +2 -0
  196. package/dist/tools/integration.test.js +96 -0
  197. package/dist/tools/key.d.ts +25 -0
  198. package/dist/tools/key.js +173 -0
  199. package/dist/tools/macro_compiler.d.ts +7 -0
  200. package/dist/tools/macro_compiler.js +82 -0
  201. package/dist/tools/mouse.d.ts +21 -0
  202. package/dist/tools/mouse.js +62 -0
  203. package/dist/tools/navigate.d.ts +16 -0
  204. package/dist/tools/navigate.js +188 -0
  205. package/dist/tools/network_intercept.d.ts +17 -0
  206. package/dist/tools/network_intercept.js +151 -0
  207. package/dist/tools/office/index.d.ts +9 -0
  208. package/dist/tools/office/index.js +7 -0
  209. package/dist/tools/office/list.d.ts +15 -0
  210. package/dist/tools/office/list.js +41 -0
  211. package/dist/tools/office/parse.d.ts +20 -0
  212. package/dist/tools/office/parse.js +172 -0
  213. package/dist/tools/pdf.d.ts +22 -0
  214. package/dist/tools/pdf.js +42 -0
  215. package/dist/tools/performance.d.ts +12 -0
  216. package/dist/tools/performance.js +47 -0
  217. package/dist/tools/performance_test.d.ts +70 -0
  218. package/dist/tools/performance_test.js +128 -0
  219. package/dist/tools/plan.d.ts +39 -0
  220. package/dist/tools/plan.js +161 -0
  221. package/dist/tools/pointer.d.ts +35 -0
  222. package/dist/tools/pointer.js +522 -0
  223. package/dist/tools/read.d.ts +30 -0
  224. package/dist/tools/read.js +488 -0
  225. package/dist/tools/recording.d.ts +45 -0
  226. package/dist/tools/recording.js +124 -0
  227. package/dist/tools/response.d.ts +129 -0
  228. package/dist/tools/response.js +5 -0
  229. package/dist/tools/scrape.d.ts +24 -0
  230. package/dist/tools/scrape.js +140 -0
  231. package/dist/tools/screenshot.d.ts +40 -0
  232. package/dist/tools/screenshot.js +79 -0
  233. package/dist/tools/scroll.d.ts +23 -0
  234. package/dist/tools/scroll.js +196 -0
  235. package/dist/tools/select.d.ts +13 -0
  236. package/dist/tools/select.js +217 -0
  237. package/dist/tools/snapshot.d.ts +27 -0
  238. package/dist/tools/snapshot.js +99 -0
  239. package/dist/tools/storage.d.ts +18 -0
  240. package/dist/tools/storage.js +29 -0
  241. package/dist/tools/tabs.d.ts +77 -0
  242. package/dist/tools/tabs.js +342 -0
  243. package/dist/tools/thought.d.ts +16 -0
  244. package/dist/tools/thought.js +79 -0
  245. package/dist/tools/type.d.ts +65 -0
  246. package/dist/tools/type.js +1061 -0
  247. package/dist/tools/type_secret.d.ts +23 -0
  248. package/dist/tools/type_secret.js +229 -0
  249. package/dist/tools/upload.d.ts +19 -0
  250. package/dist/tools/upload.js +103 -0
  251. package/dist/tools/video_compiler.d.ts +24 -0
  252. package/dist/tools/video_compiler.js +199 -0
  253. package/dist/tools/viewport.d.ts +44 -0
  254. package/dist/tools/viewport.js +230 -0
  255. package/dist/tools/wait.d.ts +19 -0
  256. package/dist/tools/wait.js +202 -0
  257. package/dist/tools/wait_for.d.ts +23 -0
  258. package/dist/tools/wait_for.js +30 -0
  259. package/dist/tools/windows.d.ts +22 -0
  260. package/dist/tools/windows.js +57 -0
  261. package/dist/ui/index.d.ts +1 -0
  262. package/dist/ui/index.js +12 -0
  263. package/docs/DEV_MODE.md +68 -0
  264. package/docs/DOCUMENTATION.md +532 -0
  265. package/docs/PLUGINS.md +538 -0
  266. package/docs/TOOLS.md +104 -0
  267. package/docs/dev_plugin.md +310 -0
  268. package/ext-dist/background.js +467 -0
  269. package/ext-dist/content.js +3089 -0
  270. package/ext-dist/dashboard.html +583 -0
  271. package/ext-dist/hud/hud.js +73 -0
  272. package/ext-dist/hud/index.html +20 -0
  273. package/ext-dist/manifest.json +77 -0
  274. package/ext-dist/sidepanel/sidepanel.js +25 -0
  275. package/ext-dist/sidepanel.html +547 -0
  276. package/ext-dist/styles.css +218 -0
  277. package/icon.png +0 -0
  278. package/mcp.json +796 -0
  279. package/package.json +113 -0
  280. package/server.json +23 -0
  281. package/smithery.yaml +11 -0
@@ -0,0 +1 @@
1
+ export declare function checkForUpdates(): Promise<void>;
@@ -0,0 +1,72 @@
1
+ import fs from "node:fs";
2
+ import path from "node:path";
3
+ import { fileURLToPath } from "node:url";
4
+ const __filename = fileURLToPath(import.meta.url);
5
+ const __dirname = path.dirname(__filename);
6
+ export async function checkForUpdates() {
7
+ try {
8
+ // Read local package.json to get current version
9
+ const packageJsonPath = path.resolve(__dirname, "../../package.json");
10
+ if (!fs.existsSync(packageJsonPath))
11
+ return;
12
+ const pkg = JSON.parse(fs.readFileSync(packageJsonPath, "utf-8"));
13
+ const currentVersion = pkg.version;
14
+ // Fast, non-blocking fetch with 2-second timeout
15
+ const controller = new AbortController();
16
+ const timeoutId = setTimeout(() => controller.abort(), 2000);
17
+ const res = await fetch("https://registry.npmjs.org/@weavetab/mcp/latest", {
18
+ signal: controller.signal,
19
+ });
20
+ clearTimeout(timeoutId);
21
+ if (!res.ok)
22
+ return;
23
+ const data = await res.json();
24
+ const latestVersion = data.version;
25
+ // Simple version comparison (assumes semver format like x.y.z)
26
+ if (isNewerVersion(currentVersion, latestVersion)) {
27
+ await printUpdateBox(currentVersion, latestVersion);
28
+ }
29
+ }
30
+ catch (err) {
31
+ // Silently fail if offline or npm is down
32
+ }
33
+ }
34
+ function isNewerVersion(current, latest) {
35
+ const cParts = current.replace(/[^0-9.]/g, "").split(".").map(Number);
36
+ const lParts = latest.replace(/[^0-9.]/g, "").split(".").map(Number);
37
+ for (let i = 0; i < Math.max(cParts.length, lParts.length); i++) {
38
+ const c = cParts[i] || 0;
39
+ const l = lParts[i] || 0;
40
+ if (l > c)
41
+ return true;
42
+ if (l < c)
43
+ return false;
44
+ }
45
+ return false;
46
+ }
47
+ async function printUpdateBox(current, latest) {
48
+ try {
49
+ const boxen = (await import("boxen")).default;
50
+ const chalk = (await import("chalk")).default;
51
+ const msg = [
52
+ chalk.bold(`Update available! `) + chalk.dim(current) + chalk.reset(` → `) + chalk.green(latest),
53
+ `Run ${chalk.cyan("npm i -g @weavetab/mcp")} to update.`,
54
+ ``,
55
+ `Changelog: ${chalk.blue(`https://weavetab.dev/changelog/v${latest}`)}`
56
+ ].join("\n");
57
+ const box = boxen(msg, {
58
+ padding: 1,
59
+ margin: 1,
60
+ align: "center",
61
+ borderColor: "yellow",
62
+ borderStyle: "round",
63
+ });
64
+ console.error(box);
65
+ }
66
+ catch {
67
+ // Fallback if formatting fails
68
+ console.error(`\n[Weavetab MCP] Update available: ${current} -> ${latest}`);
69
+ console.error(`Run "npm i -g @weavetab/mcp" to update.`);
70
+ console.error(`Changelog: https://weavetab.dev/changelog/v${latest}\n`);
71
+ }
72
+ }
@@ -0,0 +1,120 @@
1
+ export type DevModeConfig = boolean;
2
+ export type PolicyMode = "allow" | "deny" | "audit-only" | "read-only";
3
+ export type Role = "admin" | "viewer" | "automation" | "system";
4
+ export type BrowserEngine = "chromium" | "firefox" | "webkit";
5
+ export interface PolicyEntry {
6
+ pattern: string;
7
+ mode: PolicyMode;
8
+ }
9
+ export interface Config {
10
+ mode: "session" | "attach";
11
+ session: string;
12
+ attachPort: number;
13
+ agentId: string;
14
+ telemetry: boolean;
15
+ browserPath: string;
16
+ browserType: BrowserEngine;
17
+ headless: boolean;
18
+ visuals: boolean;
19
+ darkMode: boolean;
20
+ disableExtensions: boolean;
21
+ browserFlags: string[];
22
+ profileDir: string;
23
+ cookies: boolean;
24
+ syncDataAcrossBrowsers: boolean;
25
+ role: Role;
26
+ block: string[];
27
+ allow: string[];
28
+ policies: PolicyEntry[];
29
+ sessionTimeout: number;
30
+ navigationTimeout: number;
31
+ idleTimeout: number;
32
+ actionabilityTimeoutMs: number;
33
+ maxTabs: number;
34
+ maxActionsPerMinute: number;
35
+ githubCacheTtlMs: number;
36
+ refCacheTtlMs: number;
37
+ downloadDir: string;
38
+ pdfDir: string;
39
+ snapshotDir: string;
40
+ recordingDir: string;
41
+ designDir: string;
42
+ devMode: DevModeConfig;
43
+ proxy?: string;
44
+ }
45
+ export declare const PLATFORM: NodeJS.Platform;
46
+ export declare const GLOBAL_CONFIG_DIR: string;
47
+ export declare const GLOBAL_CONFIG_PATH: string;
48
+ export declare const DEFAULT_CONFIG: Config;
49
+ export type OnConfigChange = (newConfig: Config) => void;
50
+ export declare function onConfigChange(cb: OnConfigChange): void;
51
+ /**
52
+ * Priority: Global (user) → Built-in defaults
53
+ *
54
+ * Each field is individually merged from global config.
55
+ * If a config file is broken JSON it is quarantined and defaults are used.
56
+ */
57
+ export declare function findProjectDir(startDir?: string): string | undefined;
58
+ /**
59
+ * Returns the "write target" directory for configs.
60
+ * Priority: Project config if it exists, otherwise global.
61
+ */
62
+ export declare function getActiveConfigPath(): {
63
+ dir: string;
64
+ file: string;
65
+ };
66
+ export declare function loadConfigSync(): Config;
67
+ export declare function loadConfig(): Promise<Config>;
68
+ /** Zero disk I/O after first load. Refreshed by fs.watch. */
69
+ export declare function getCachedConfig(): Config;
70
+ /** Force re-read from disk on next getCachedConfig/loadConfig call. */
71
+ export declare function invalidateConfigCache(): void;
72
+ /** Returns the resolved active directory (global). */
73
+ export declare function getActiveDirCached(): string;
74
+ export declare function getOutputDir(subdir: "downloads" | "pdfs" | "snapshots" | "recordings" | "designs", config?: Config): string;
75
+ /**
76
+ * Helper to get download directory from config.
77
+ */
78
+ export declare function getDownloadDir(config: Config): string;
79
+ /**
80
+ * Helper to get design output directory from config.
81
+ */
82
+ export declare function getDesignDir(config: Config): string;
83
+ export declare function getConfigMode(config: Config): "session" | "attach";
84
+ export declare function getConfigAttachPort(config: Config): number;
85
+ export declare function getConfigAgentId(config: Config): string;
86
+ export declare function getConfigTelemetry(config: Config): boolean;
87
+ export declare function getConfigBrowserPath(config: Config): string;
88
+ export declare function getConfigBrowserType(config: Config): BrowserEngine;
89
+ export declare function getConfigHeadless(config: Config): boolean;
90
+ export declare function getConfigVisuals(config: Config): boolean;
91
+ export declare function getConfigDarkMode(config: Config): boolean;
92
+ export declare function getConfigDisableExtensions(config: Config): boolean;
93
+ export declare function getConfigBrowserFlags(config: Config): string[];
94
+ export declare function getConfigProfileDir(config: Config): string;
95
+ export declare function getConfigCookies(config: Config): boolean;
96
+ export declare function getConfigSyncDataAcrossBrowsers(config: Config): boolean;
97
+ export declare function getConfigRole(config: Config): Role;
98
+ export declare function getConfigBlock(config: Config): string[];
99
+ export declare function getConfigAllow(config: Config): string[];
100
+ export declare function getConfigPolicies(config: Config): PolicyEntry[];
101
+ export declare function getConfigProxy(config: Config): string | undefined;
102
+ export declare function getConfigMaxTabs(config: Config): number;
103
+ export declare function getConfigMaxActionsPerMinute(config: Config): number;
104
+ export declare function getConfigSessionTimeout(config: Config): number;
105
+ export declare function getConfigNavigationTimeout(config: Config): number;
106
+ export declare function getConfigIdleTimeout(config: Config): number;
107
+ export declare function getConfigActionabilityTimeoutMs(config: Config): number;
108
+ export declare function getConfigGithubCacheTtl(config: Config): number;
109
+ export declare function getConfigRefCacheTtl(config: Config): number;
110
+ export declare function getConfigDevMode(config: Config): boolean;
111
+ export declare function getConfigNavigationTimeoutMs(config: Config): number;
112
+ export declare function getConfigGithubCacheTtlMs(config: Config): number;
113
+ export declare function getConfigRefCacheTtlMs(config: Config): number;
114
+ export declare function getSystemDir(subdir: string): string;
115
+ /**
116
+ * Returns a directory inside the global ~/.weavetab-system/ folder.
117
+ * Alias for consistency — identical to getSystemDir.
118
+ */
119
+ export declare function getGlobalSystemDir(subdir: string): string;
120
+ export declare function saveConfig(config: Config): void;