mcp-pacemaker 1.3.1
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.
- package/CHANGELOG.md +424 -0
- package/CONTRIBUTING.md +156 -0
- package/LICENSE +21 -0
- package/README.md +620 -0
- package/SECURITY.md +110 -0
- package/THIRD_PARTY_NOTICES.txt +366 -0
- package/autostart/windows/launcher.vbs +11 -0
- package/autostart/windows/register-task.ps1 +63 -0
- package/bin/cli.mjs +880 -0
- package/bin/config-checks.mjs +62 -0
- package/bin/logs.mjs +465 -0
- package/bin/mcp-bridge.mjs +2113 -0
- package/bin/pooling-config.mjs +553 -0
- package/bin/pooling-execution.mjs +91 -0
- package/bin/pooling-writer.mjs +169 -0
- package/bin/prewarm.mjs +152 -0
- package/bin/server-metrics.mjs +69 -0
- package/bin/service-control.mjs +124 -0
- package/bin/shared-sessions.mjs +1083 -0
- package/bin/top.mjs +115 -0
- package/bin/update-check.mjs +153 -0
- package/bin/windows/PoolingSecurityHelper.build.json +39 -0
- package/bin/windows/PoolingSecurityHelper.exe +0 -0
- package/bin/windows/src/AssemblyInfo.cs +11 -0
- package/bin/windows/src/PoolingSecurityHelper.cs +165 -0
- package/bin/windows/src/PoolingSecurityReader.cs +50 -0
- package/docs/shared-sessions.md +181 -0
- package/examples/servers.example.json +31 -0
- package/package.json +77 -0
- package/supervisor/bridge-child.mjs +14 -0
- package/supervisor/supervise.mjs +172 -0
- package/supervisor/supervise.ps1 +23 -0
- package/supervisor/supervise.sh +11 -0
- package/tools/windows-security-helper/README.md +95 -0
- package/tools/windows-security-helper/build.ps1 +262 -0
- package/ui/dist/THIRD_PARTY_NOTICES.txt +366 -0
- package/ui/dist/assets/index-CIy7uxfd.css +1 -0
- package/ui/dist/assets/index-CtaaQsB9.js +8 -0
- package/ui/dist/index.html +14 -0
- package/ui/dist/third-party-manifest.json +579 -0
package/SECURITY.md
ADDED
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
# Security Policy
|
|
2
|
+
|
|
3
|
+
## Supported versions
|
|
4
|
+
|
|
5
|
+
Install the newest patch in the selected maintained line. Compatibility fixtures for older
|
|
6
|
+
releases preserve their historical behavior; they do not make those releases supported.
|
|
7
|
+
|
|
8
|
+
| Version | Supported |
|
|
9
|
+
| ------- | --------- |
|
|
10
|
+
| Newest 2.x patch | Current security and compatibility maintenance |
|
|
11
|
+
| Newest 1.3.x patch, starting with 1.3.1 | Legacy security and compatibility fixes through March 31, 2027 |
|
|
12
|
+
| 1.0.x-1.2.x, 1.3.0, and superseded patches | No |
|
|
13
|
+
|
|
14
|
+
The legacy line does not receive 2.x batching or new features. Its `legacy` npm channel is an
|
|
15
|
+
explicit opt-in, not the default for new users. After the legacy support window, migrate to
|
|
16
|
+
the current line. Node 20 compatibility is not a promise to fix vulnerabilities in an
|
|
17
|
+
end-of-life Node runtime; use a maintained Node release.
|
|
18
|
+
|
|
19
|
+
## Reporting a vulnerability
|
|
20
|
+
|
|
21
|
+
Please report security issues privately through
|
|
22
|
+
[GitHub Security Advisories](https://github.com/girishkvs/mcp-pacemaker/security/advisories/new).
|
|
23
|
+
Do not open a public issue for a vulnerability.
|
|
24
|
+
|
|
25
|
+
Include the version, your platform, what an attacker can achieve, and steps to reproduce.
|
|
26
|
+
You can expect an acknowledgement within 7 days and an assessment within 30.
|
|
27
|
+
|
|
28
|
+
## Threat model
|
|
29
|
+
|
|
30
|
+
The bridge is a local service holding long-lived credentials for the MCP servers it manages,
|
|
31
|
+
so a few properties matter more than usual:
|
|
32
|
+
|
|
33
|
+
- **It binds to `127.0.0.1` by default.** Passing `--host 0.0.0.0` exposes every configured
|
|
34
|
+
server, and the credentials injected on their behalf, to anything that can reach the port.
|
|
35
|
+
Do not do this on an untrusted network.
|
|
36
|
+
- **There is no user authentication on the proxy path.** Any local process that can open the
|
|
37
|
+
port can use the bridged servers. Treat access to the port as equivalent to access to every
|
|
38
|
+
credential the bridge holds.
|
|
39
|
+
- **Administrative endpoints require a nonce.** `/admin/*` is guarded by a random nonce written
|
|
40
|
+
to `~/.mcp-pacemaker/admin.nonce` on startup, readable only by the user running the bridge.
|
|
41
|
+
This covers `/admin/reload`, which re-reads `servers.json` — see the note below on why that
|
|
42
|
+
file is a trusted input.
|
|
43
|
+
- **Pooling controls are opt-in configuration writes.** The dashboard's Enable/Disable/Undo
|
|
44
|
+
buttons and the equivalent CLI actions require the admin nonce. Browser writes also require
|
|
45
|
+
a matching Origin when provided. Only `sharing` and `minWarm` can be changed; commands,
|
|
46
|
+
environment and auth settings are not accepted. Requests are bounded to 4 KiB.
|
|
47
|
+
Edits require a content revision, preserve unrelated JSON, keep a backup and replace the file
|
|
48
|
+
atomically. Undo restores the previous bytes only while that revision is still current.
|
|
49
|
+
These checks detect stale clients and observed editor changes; a non-cooperating external
|
|
50
|
+
writer can still race the final filesystem check/rename because portable filesystem CAS
|
|
51
|
+
is unavailable. Do not edit the file concurrently with an admin action.
|
|
52
|
+
- **Timeout is not proof of rollback.** Pooling operations have a nine-second budget and
|
|
53
|
+
shared cancellation before file-replacement ownership. Once replacement has started, it
|
|
54
|
+
can finish after cancellation or timeout. Uncertain and late-committed outcomes are reported
|
|
55
|
+
explicitly; saved state is reloaded, including after worker failure with config watching off.
|
|
56
|
+
Reconciliation failures are logged, not treated as success. Operations are never replayed,
|
|
57
|
+
and a failed worker refuses subsequent writes until the bridge restarts.
|
|
58
|
+
- **Config backups and Undo contain config data.** `servers.json.bak` has the previous config
|
|
59
|
+
and is protected like the source file, including its Windows DACL. Temporary files are given
|
|
60
|
+
the same permissions before data is written. Bounded in-memory Undo records can include
|
|
61
|
+
credential-bearing configuration; they are not returned to the browser or written elsewhere.
|
|
62
|
+
- **Windows timestamp changes are not permission changes by themselves.** Automatic writes
|
|
63
|
+
capture native non-audit security sections, audit policy and file attributes. A changed
|
|
64
|
+
timestamp is accepted only when that verified state, content and file identity still match.
|
|
65
|
+
Unreadable audit policy is refused before staging; security that cannot be preserved on both
|
|
66
|
+
replacement and backup files is also refused. No automatic elevation or security-policy
|
|
67
|
+
changes are performed. The built-in audit-read API uses only rights assigned to the account.
|
|
68
|
+
Inspection uses the bundled own-source .NET Framework helper, with no runtime compilation,
|
|
69
|
+
download or PowerShell fallback. Build metadata checks source/binary consistency; it is not
|
|
70
|
+
code signing or protection against replacement of the entire package.
|
|
71
|
+
- **Shared mode is not a user-security boundary.** It is opt-in for stateless tools with one
|
|
72
|
+
common credential context. Only a tools capability derived from the real upstream is exposed;
|
|
73
|
+
unsupported client capabilities and protocol methods fail explicitly. IDs, progress,
|
|
74
|
+
cancellation and cursors are scoped to virtual sessions, but a tool implementation can still
|
|
75
|
+
keep hidden process-global state. The operator must confirm that sharing that state is safe.
|
|
76
|
+
Do not enable it for separate users, accounts, workspaces or conversations. Dispatched work
|
|
77
|
+
is never replayed automatically, and deleting one session does not prove its tool stopped.
|
|
78
|
+
- **The bridge reloads `servers.json` when it changes.** A running bridge watches its config and
|
|
79
|
+
applies edits without a restart, so anything that can write that file can change what the
|
|
80
|
+
bridge runs, at the moment it writes — not only at the next start. The file is already a
|
|
81
|
+
trusted input for the reason below; watching it widens *when* that trust is exercised. Set
|
|
82
|
+
`MCP_CONFIG_WATCH=0` to require an explicit `mcp-pacemaker reload` instead.
|
|
83
|
+
- **Health probing makes requests you did not.** With `MCP_HEALTH_INTERVAL_MS` set, the bridge
|
|
84
|
+
periodically sends an `initialize` to each HTTP server, carrying that server's configured
|
|
85
|
+
credential. It is off by default for exactly that reason. stdio servers are never probed.
|
|
86
|
+
- **Tokens live in memory only.** Credentials obtained from an auth command are cached in the
|
|
87
|
+
process and never written to disk. The dashboard shows time-to-expiry, never the value.
|
|
88
|
+
- **Session initialization metadata is written to disk.** To re-establish a session after a
|
|
89
|
+
restart, `~/.mcp-pacemaker/sessions.json` records session ids and the `initialize` parameters
|
|
90
|
+
the client sent (protocol version, declared capabilities, client name and any extra fields).
|
|
91
|
+
Business requests and tool results are not recorded there. Treat it as sensitive because
|
|
92
|
+
client-defined initialization fields can contain additional data. Delete it to drop all resumable sessions, or
|
|
93
|
+
run with `MCP_RESUME=0` to never write it. Records past `MCP_RESUME_TTL_MS` (24h by default)
|
|
94
|
+
are refused and pruned, so the file does not accumulate indefinitely.
|
|
95
|
+
- **The log records activity, not content.** `~/.mcp-pacemaker/bridge.log` holds the same lines
|
|
96
|
+
the dashboard shows: server names, session ids, pids, timings and errors. It does not contain
|
|
97
|
+
credentials, request bodies or tool results, though a server's own stderr is included and an
|
|
98
|
+
error message a server chooses to print could carry anything. It is rolled at
|
|
99
|
+
`MCP_LOG_MAX_BYTES`; set that to `0` to disable the file entirely.
|
|
100
|
+
- **Auth commands run in a shell.** `servers.json` is a trusted input: anything in an `auth`
|
|
101
|
+
command executes with your privileges. Do not load a `servers.json` you did not write.
|
|
102
|
+
- **Client configs are rewritten in place.** `install` backs each file up to `<file>.bak`
|
|
103
|
+
before writing, and `plan` shows the exact change first.
|
|
104
|
+
|
|
105
|
+
## Out of scope
|
|
106
|
+
|
|
107
|
+
- Vulnerabilities in the MCP servers the bridge launches or proxies to.
|
|
108
|
+
- Consequences of deliberately binding to a non-loopback address.
|
|
109
|
+
- Anything requiring an attacker to already have write access to your `servers.json` or your
|
|
110
|
+
host's MCP configuration.
|
|
@@ -0,0 +1,366 @@
|
|
|
1
|
+
MCP Pacemaker - third-party notices
|
|
2
|
+
|
|
3
|
+
Dashboard entries come from retained Rollup modules and observed generated CSS.
|
|
4
|
+
Runtime supplements bind upstream license text to reviewed installed producer versions.
|
|
5
|
+
ui/dist/third-party-manifest.json records module and artifact hashes.
|
|
6
|
+
The project itself remains under its separate MIT LICENSE.
|
|
7
|
+
This inventory is technical attribution evidence, not a legal compliance certification.
|
|
8
|
+
|
|
9
|
+
CLI dependencies are installed separately by npm, not copied into this UI bundle.
|
|
10
|
+
Attribution supplied by those packages remains in their installed package directories.
|
|
11
|
+
This UI inventory does not audit every separately resolved CLI dependency.
|
|
12
|
+
Those dependencies are not represented as bundled UI code in this notice.
|
|
13
|
+
|
|
14
|
+
Bundled dashboard code
|
|
15
|
+
|
|
16
|
+
==============================================================================
|
|
17
|
+
lucide-react@0.462.0
|
|
18
|
+
Declared license: ISC
|
|
19
|
+
|
|
20
|
+
--- LICENSE ---
|
|
21
|
+
ISC License
|
|
22
|
+
|
|
23
|
+
Copyright (c) for portions of Lucide are held by Cole Bemis 2013-2022 as part of Feather (MIT). All other copyright (c) for Lucide are held by Lucide Contributors 2022.
|
|
24
|
+
|
|
25
|
+
Permission to use, copy, modify, and/or distribute this software for any
|
|
26
|
+
purpose with or without fee is hereby granted, provided that the above
|
|
27
|
+
copyright notice and this permission notice appear in all copies.
|
|
28
|
+
|
|
29
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
|
30
|
+
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
31
|
+
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
32
|
+
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
33
|
+
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
34
|
+
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
|
35
|
+
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
36
|
+
|
|
37
|
+
--- upstream/feather-LICENSE.txt ---
|
|
38
|
+
Source: https://raw.githubusercontent.com/feathericons/feather/1b002399e8758fb2bccea4d07312dc9e0f43dcb8/LICENSE
|
|
39
|
+
Lucide's LICENSE identifies Feather MIT portions. Its bundled terminal icon retains the polyline and line in this upstream revision; this is a license source, not a claim that the Feather npm package is installed.
|
|
40
|
+
|
|
41
|
+
The MIT License (MIT)
|
|
42
|
+
|
|
43
|
+
Copyright (c) 2013-2023 Cole Bemis
|
|
44
|
+
|
|
45
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
46
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
47
|
+
in the Software without restriction, including without limitation the rights
|
|
48
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
49
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
50
|
+
furnished to do so, subject to the following conditions:
|
|
51
|
+
|
|
52
|
+
The above copyright notice and this permission notice shall be included in all
|
|
53
|
+
copies or substantial portions of the Software.
|
|
54
|
+
|
|
55
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
56
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
57
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
58
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
59
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
60
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
61
|
+
SOFTWARE.
|
|
62
|
+
|
|
63
|
+
--- Notices retained from contributing source files ---
|
|
64
|
+
/**
|
|
65
|
+
* @license lucide-react v0.462.0 - ISC
|
|
66
|
+
*
|
|
67
|
+
* This source code is licensed under the ISC license.
|
|
68
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
69
|
+
*/
|
|
70
|
+
|
|
71
|
+
==============================================================================
|
|
72
|
+
react@18.3.1
|
|
73
|
+
Declared license: MIT
|
|
74
|
+
|
|
75
|
+
--- LICENSE ---
|
|
76
|
+
MIT License
|
|
77
|
+
|
|
78
|
+
Copyright (c) Facebook, Inc. and its affiliates.
|
|
79
|
+
|
|
80
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
81
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
82
|
+
in the Software without restriction, including without limitation the rights
|
|
83
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
84
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
85
|
+
furnished to do so, subject to the following conditions:
|
|
86
|
+
|
|
87
|
+
The above copyright notice and this permission notice shall be included in all
|
|
88
|
+
copies or substantial portions of the Software.
|
|
89
|
+
|
|
90
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
91
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
92
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
93
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
94
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
95
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
96
|
+
SOFTWARE.
|
|
97
|
+
|
|
98
|
+
--- Notices retained from contributing source files ---
|
|
99
|
+
/**
|
|
100
|
+
* @license React
|
|
101
|
+
* react-jsx-runtime.production.min.js
|
|
102
|
+
*
|
|
103
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
104
|
+
*
|
|
105
|
+
* This source code is licensed under the MIT license found in the
|
|
106
|
+
* LICENSE file in the root directory of this source tree.
|
|
107
|
+
*/
|
|
108
|
+
/**
|
|
109
|
+
* @license React
|
|
110
|
+
* react.production.min.js
|
|
111
|
+
*
|
|
112
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
113
|
+
*
|
|
114
|
+
* This source code is licensed under the MIT license found in the
|
|
115
|
+
* LICENSE file in the root directory of this source tree.
|
|
116
|
+
*/
|
|
117
|
+
|
|
118
|
+
==============================================================================
|
|
119
|
+
react-dom@18.3.1
|
|
120
|
+
Declared license: MIT
|
|
121
|
+
|
|
122
|
+
--- LICENSE ---
|
|
123
|
+
MIT License
|
|
124
|
+
|
|
125
|
+
Copyright (c) Facebook, Inc. and its affiliates.
|
|
126
|
+
|
|
127
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
128
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
129
|
+
in the Software without restriction, including without limitation the rights
|
|
130
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
131
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
132
|
+
furnished to do so, subject to the following conditions:
|
|
133
|
+
|
|
134
|
+
The above copyright notice and this permission notice shall be included in all
|
|
135
|
+
copies or substantial portions of the Software.
|
|
136
|
+
|
|
137
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
138
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
139
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
140
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
141
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
142
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
143
|
+
SOFTWARE.
|
|
144
|
+
|
|
145
|
+
--- Notices retained from contributing source files ---
|
|
146
|
+
/**
|
|
147
|
+
* @license React
|
|
148
|
+
* react-dom.production.min.js
|
|
149
|
+
*
|
|
150
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
151
|
+
*
|
|
152
|
+
* This source code is licensed under the MIT license found in the
|
|
153
|
+
* LICENSE file in the root directory of this source tree.
|
|
154
|
+
*/
|
|
155
|
+
|
|
156
|
+
==============================================================================
|
|
157
|
+
scheduler@0.23.2
|
|
158
|
+
Declared license: MIT
|
|
159
|
+
|
|
160
|
+
--- LICENSE ---
|
|
161
|
+
MIT License
|
|
162
|
+
|
|
163
|
+
Copyright (c) Facebook, Inc. and its affiliates.
|
|
164
|
+
|
|
165
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
166
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
167
|
+
in the Software without restriction, including without limitation the rights
|
|
168
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
169
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
170
|
+
furnished to do so, subject to the following conditions:
|
|
171
|
+
|
|
172
|
+
The above copyright notice and this permission notice shall be included in all
|
|
173
|
+
copies or substantial portions of the Software.
|
|
174
|
+
|
|
175
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
176
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
177
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
178
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
179
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
180
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
181
|
+
SOFTWARE.
|
|
182
|
+
|
|
183
|
+
--- Notices retained from contributing source files ---
|
|
184
|
+
/**
|
|
185
|
+
* @license React
|
|
186
|
+
* scheduler.production.min.js
|
|
187
|
+
*
|
|
188
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
189
|
+
*
|
|
190
|
+
* This source code is licensed under the MIT license found in the
|
|
191
|
+
* LICENSE file in the root directory of this source tree.
|
|
192
|
+
*/
|
|
193
|
+
|
|
194
|
+
==============================================================================
|
|
195
|
+
tailwindcss@3.4.19
|
|
196
|
+
Declared license: MIT
|
|
197
|
+
|
|
198
|
+
--- LICENSE ---
|
|
199
|
+
MIT License
|
|
200
|
+
|
|
201
|
+
Copyright (c) Tailwind Labs, Inc.
|
|
202
|
+
|
|
203
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
204
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
205
|
+
in the Software without restriction, including without limitation the rights
|
|
206
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
207
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
208
|
+
furnished to do so, subject to the following conditions:
|
|
209
|
+
|
|
210
|
+
The above copyright notice and this permission notice shall be included in all
|
|
211
|
+
copies or substantial portions of the Software.
|
|
212
|
+
|
|
213
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
214
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
215
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
216
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
217
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
218
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
219
|
+
SOFTWARE.
|
|
220
|
+
|
|
221
|
+
--- lib/css/LICENSE ---
|
|
222
|
+
MIT License
|
|
223
|
+
|
|
224
|
+
Copyright (c) Nicolas Gallagher
|
|
225
|
+
Copyright (c) Jonathan Neal
|
|
226
|
+
Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
|
|
227
|
+
Copyright (c) Adam Wathan
|
|
228
|
+
Copyright (c) Jonathan Reinink
|
|
229
|
+
|
|
230
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
231
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
232
|
+
in the Software without restriction, including without limitation the rights
|
|
233
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
234
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
235
|
+
furnished to do so, subject to the following conditions:
|
|
236
|
+
|
|
237
|
+
The above copyright notice and this permission notice shall be included in all
|
|
238
|
+
copies or substantial portions of the Software.
|
|
239
|
+
|
|
240
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
241
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
242
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
243
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
244
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
245
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
246
|
+
SOFTWARE.
|
|
247
|
+
|
|
248
|
+
==============================================================================
|
|
249
|
+
vite@7.3.6
|
|
250
|
+
Declared license: MIT
|
|
251
|
+
|
|
252
|
+
--- LICENSE.md: # Vite core license ---
|
|
253
|
+
# Vite core license
|
|
254
|
+
Vite is released under the MIT license:
|
|
255
|
+
|
|
256
|
+
MIT License
|
|
257
|
+
|
|
258
|
+
Copyright (c) 2019-present, VoidZero Inc. and Vite contributors
|
|
259
|
+
|
|
260
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
261
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
262
|
+
in the Software without restriction, including without limitation the rights
|
|
263
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
264
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
265
|
+
furnished to do so, subject to the following conditions:
|
|
266
|
+
|
|
267
|
+
The above copyright notice and this permission notice shall be included in all
|
|
268
|
+
copies or substantial portions of the Software.
|
|
269
|
+
|
|
270
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
271
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
272
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
273
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
274
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
275
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
276
|
+
SOFTWARE.
|
|
277
|
+
|
|
278
|
+
--- LICENSE.md: ## @rollup/plugin-alias, @rollup/plugin-commonjs, @rollup/plugin-dynamic-import-vars, @rollup/pluginutils ---
|
|
279
|
+
## @rollup/plugin-alias, @rollup/plugin-commonjs, @rollup/plugin-dynamic-import-vars, @rollup/pluginutils
|
|
280
|
+
License: MIT
|
|
281
|
+
By: Johannes Stein
|
|
282
|
+
Repository: https://github.com/rollup/plugins
|
|
283
|
+
|
|
284
|
+
License: MIT
|
|
285
|
+
By: Rich Harris
|
|
286
|
+
Repository: https://github.com/rollup/plugins
|
|
287
|
+
|
|
288
|
+
License: MIT
|
|
289
|
+
By: LarsDenBakker
|
|
290
|
+
Repository: https://github.com/rollup/plugins
|
|
291
|
+
|
|
292
|
+
License: MIT
|
|
293
|
+
By: Rich Harris
|
|
294
|
+
Repository: https://github.com/rollup/plugins
|
|
295
|
+
|
|
296
|
+
> The MIT License (MIT)
|
|
297
|
+
>
|
|
298
|
+
> Copyright (c) 2019 RollupJS Plugin Contributors (https://github.com/rollup/plugins/graphs/contributors)
|
|
299
|
+
>
|
|
300
|
+
> Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
301
|
+
> of this software and associated documentation files (the "Software"), to deal
|
|
302
|
+
> in the Software without restriction, including without limitation the rights
|
|
303
|
+
> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
304
|
+
> copies of the Software, and to permit persons to whom the Software is
|
|
305
|
+
> furnished to do so, subject to the following conditions:
|
|
306
|
+
>
|
|
307
|
+
> The above copyright notice and this permission notice shall be included in
|
|
308
|
+
> all copies or substantial portions of the Software.
|
|
309
|
+
>
|
|
310
|
+
> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
311
|
+
> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
312
|
+
> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
313
|
+
> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
314
|
+
> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
315
|
+
> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
316
|
+
> THE SOFTWARE.
|
|
317
|
+
|
|
318
|
+
---------------------------------------
|
|
319
|
+
|
|
320
|
+
Separately installed runtime supplements (not UI-bundled)
|
|
321
|
+
|
|
322
|
+
==============================================================================
|
|
323
|
+
yoga-layout@3.2.1
|
|
324
|
+
Declared license: MIT
|
|
325
|
+
|
|
326
|
+
--- upstream/yoga-LICENSE.txt ---
|
|
327
|
+
Source: https://raw.githubusercontent.com/facebook/yoga/042f5013152eb81c1552dec945b88f7b95ca350f/LICENSE
|
|
328
|
+
Supplement for the separately npm-installed runtime package, whose published source refers to this upstream LICENSE. This package is not bundled into the dashboard.
|
|
329
|
+
|
|
330
|
+
MIT License
|
|
331
|
+
|
|
332
|
+
Copyright (c) Facebook, Inc. and its affiliates.
|
|
333
|
+
|
|
334
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
335
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
336
|
+
in the Software without restriction, including without limitation the rights
|
|
337
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
338
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
339
|
+
furnished to do so, subject to the following conditions:
|
|
340
|
+
|
|
341
|
+
The above copyright notice and this permission notice shall be included in all
|
|
342
|
+
copies or substantial portions of the Software.
|
|
343
|
+
|
|
344
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
345
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
346
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
347
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
348
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
349
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
350
|
+
SOFTWARE.
|
|
351
|
+
|
|
352
|
+
--- Notices retained from contributing source files ---
|
|
353
|
+
/**
|
|
354
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
355
|
+
*
|
|
356
|
+
* This source code is licensed under the MIT license found in the
|
|
357
|
+
* LICENSE file in the root directory of this source tree.
|
|
358
|
+
*
|
|
359
|
+
* @format
|
|
360
|
+
*/
|
|
361
|
+
/**
|
|
362
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
363
|
+
*
|
|
364
|
+
* This source code is licensed under the MIT license found in the
|
|
365
|
+
* LICENSE file in the root directory of this source tree.
|
|
366
|
+
*/
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
' Launches the mcp-pacemaker supervisor hidden (no console window).
|
|
2
|
+
' Invoked by the "McpPacemaker" scheduled task. Arg 0 = port (optional, default 8791).
|
|
3
|
+
Dim shell, fso, here, root, ps1, port
|
|
4
|
+
Set shell = CreateObject("WScript.Shell")
|
|
5
|
+
Set fso = CreateObject("Scripting.FileSystemObject")
|
|
6
|
+
here = fso.GetParentFolderName(WScript.ScriptFullName) ' autostart\windows
|
|
7
|
+
root = fso.GetParentFolderName(fso.GetParentFolderName(here)) ' repo root
|
|
8
|
+
ps1 = fso.BuildPath(root, "supervisor\supervise.ps1")
|
|
9
|
+
port = "8791"
|
|
10
|
+
If WScript.Arguments.Count > 0 Then port = WScript.Arguments(0)
|
|
11
|
+
shell.Run "pwsh.exe -NoProfile -ExecutionPolicy Bypass -WindowStyle Hidden -File """ & ps1 & """ -Port " & port, 0, False
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
<#
|
|
2
|
+
.SYNOPSIS Registers the "McpPacemaker" per-user scheduled task (Windows), no admin required.
|
|
3
|
+
.DESCRIPTION
|
|
4
|
+
Uses the Task Scheduler COM API (works even where the ScheduledTasks PS module reports
|
|
5
|
+
"Invalid namespace" and schtasks.exe /Create needs elevation). Starts the supervisor at
|
|
6
|
+
logon AND on workstation unlock (unlock covers sleep/wake, where logon never fires).
|
|
7
|
+
.PARAMETER Port Port to pass through to the supervisor (default 8791).
|
|
8
|
+
.PARAMETER TaskName Selected per-user task name (default McpPacemaker-<port>).
|
|
9
|
+
.OUTPUTS
|
|
10
|
+
Registration result.
|
|
11
|
+
.EXAMPLE
|
|
12
|
+
.\register-task.ps1 -Port 8791
|
|
13
|
+
#>
|
|
14
|
+
[CmdletBinding()]
|
|
15
|
+
param([ValidateRange(1, 65535)][int]$Port = 8791, [string]$TaskName = "McpPacemaker-$Port")
|
|
16
|
+
|
|
17
|
+
$ErrorActionPreference = 'Stop'
|
|
18
|
+
try {
|
|
19
|
+
$installationRoot = (Resolve-Path -LiteralPath (Join-Path -Path $PSScriptRoot -ChildPath '..\..')).Path
|
|
20
|
+
if ($installationRoot -match '(^|[\\/])_npx([\\/]|$)') {
|
|
21
|
+
throw 'Cache-backed npx roots cannot host autostart. Install in a durable root first.'
|
|
22
|
+
}
|
|
23
|
+
$vbs = Join-Path $PSScriptRoot 'launcher.vbs'
|
|
24
|
+
$user = "$env:USERDOMAIN\$env:USERNAME"
|
|
25
|
+
|
|
26
|
+
$svc = New-Object -ComObject Schedule.Service
|
|
27
|
+
$svc.Connect()
|
|
28
|
+
$folder = $svc.GetFolder('\')
|
|
29
|
+
|
|
30
|
+
$def = $svc.NewTask(0)
|
|
31
|
+
$def.RegistrationInfo.Description = "Starts the mcp-pacemaker bridge supervisor (port $Port) at logon and on workstation unlock."
|
|
32
|
+
$def.RegistrationInfo.Author = $user
|
|
33
|
+
|
|
34
|
+
$def.Settings.Enabled = $true
|
|
35
|
+
$def.Settings.StartWhenAvailable = $true
|
|
36
|
+
$def.Settings.DisallowStartIfOnBatteries = $false
|
|
37
|
+
$def.Settings.StopIfGoingOnBatteries = $false
|
|
38
|
+
$def.Settings.ExecutionTimeLimit = 'PT0S'
|
|
39
|
+
$def.Settings.RestartCount = 3
|
|
40
|
+
$def.Settings.RestartInterval = 'PT1M'
|
|
41
|
+
$def.Settings.MultipleInstances = 2 # IgnoreNew
|
|
42
|
+
|
|
43
|
+
$logon = $def.Triggers.Create(9) # TASK_TRIGGER_LOGON
|
|
44
|
+
$logon.UserId = $user
|
|
45
|
+
$unlock = $def.Triggers.Create(11) # TASK_TRIGGER_SESSION_STATE_CHANGE
|
|
46
|
+
$unlock.StateChange = 8 # TASK_SESSION_UNLOCK
|
|
47
|
+
$unlock.UserId = $user
|
|
48
|
+
|
|
49
|
+
$action = $def.Actions.Create(0) # TASK_ACTION_EXEC
|
|
50
|
+
$action.Path = 'wscript.exe'
|
|
51
|
+
$action.Arguments = "`"$vbs`" $Port"
|
|
52
|
+
|
|
53
|
+
$def.Principal.UserId = $user
|
|
54
|
+
$def.Principal.LogonType = 3 # interactive token (no stored password)
|
|
55
|
+
$def.Principal.RunLevel = 0 # least privilege (so user CLI auth context works)
|
|
56
|
+
|
|
57
|
+
$folder.RegisterTaskDefinition($TaskName, $def, 6, $user, $null, 3) | Out-Null
|
|
58
|
+
Write-Output "OK: registered '$TaskName' (logon + unlock; $user; port $Port)"
|
|
59
|
+
}
|
|
60
|
+
catch {
|
|
61
|
+
Write-Output "FAIL: $($_.Exception.Message)"
|
|
62
|
+
exit 1
|
|
63
|
+
}
|