Skip to content

Commit 6bd3ed3

Browse files
author
Mohammod Al Amin Ashik
committed
Initial commit: MCP Mux desktop app, gateway, and tooling
0 parents  commit 6bd3ed3

345 files changed

Lines changed: 83544 additions & 0 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.cargo/config.toml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
[alias]
2+
lint = "clippy --all-targets --all-features -- -D warnings"
3+
4+
# Use lld linker for faster builds (if available)
5+
# Uncomment if lld is installed on your system
6+
# [target.x86_64-unknown-linux-gnu]
7+
# rustflags = ["-C", "link-arg=-fuse-ld=lld"]
8+
9+
# Windows uses MSVC linker by default, which is fine
10+
# [target.x86_64-pc-windows-msvc]
11+
# No special config needed
12+

.changeset/README.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# Changesets
2+
3+
This folder is used by [Changesets](https://github.com/changesets/changesets) to manage versioning and changelogs.
4+
5+
## Adding a changeset
6+
7+
```bash
8+
pnpm changeset
9+
```
10+
11+
Follow the prompts to describe your changes. This creates a markdown file in this folder.
12+
13+
## Release process
14+
15+
1. PRs with changesets get merged to main
16+
2. The release workflow creates a "Version Packages" PR
17+
3. Merging that PR triggers the release build

.changeset/config.json

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"$schema": "https://unpkg.com/@changesets/config@3.0.0/schema.json",
3+
"changelog": "@changesets/cli/changelog",
4+
"commit": false,
5+
"fixed": [],
6+
"linked": [],
7+
"access": "restricted",
8+
"baseBranch": "main",
9+
"updateInternalDependencies": "patch",
10+
"ignore": []
11+
}

.config/nextest.toml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# cargo-nextest configuration
2+
# https://nexte.st/docs/configuration/
3+
4+
[profile.default]
5+
retries = 2
6+
slow-timeout = "60s"
7+
status-level = "pass"
8+
final-status-level = "flaky"
9+
10+
[profile.ci]
11+
fail-fast = false
12+
retries = 3
13+
status-level = "retry"
14+
final-status-level = "slow"
15+
16+
[profile.ci.junit]
17+
path = "junit.xml"
18+
report-name = "mcpmux-tests"
Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
# Check if e2e-desktop should run: trigger in comment, or (optional) main branch, or [e2e] in commit.
2+
# Use in e2e-desktop-comment.yml (comment only) or ci.yml (comment + main + commit).
3+
4+
name: Check comment trigger
5+
description: Check if trigger phrase in PR comment; optionally also main branch or [e2e] in commit
6+
inputs:
7+
trigger:
8+
description: Trigger phrase to look for (e.g. /e2e-desktop)
9+
required: true
10+
check_main:
11+
description: Also return true when ref is refs/heads/main
12+
required: false
13+
default: "false"
14+
check_commit:
15+
description: Also return true when [e2e] in commit message
16+
required: false
17+
default: "false"
18+
allow_workflow_dispatch:
19+
description: When true, workflow_dispatch events always return true (for manual runs)
20+
required: false
21+
default: "false"
22+
outputs:
23+
should_run:
24+
description: "true if any condition matches, else false"
25+
value: ${{ steps.check.outputs.should_run }}
26+
runs:
27+
using: composite
28+
steps:
29+
- name: Check if e2e-desktop should run
30+
id: check
31+
uses: actions/github-script@v7
32+
env:
33+
TRIGGER: ${{ inputs.trigger }}
34+
CHECK_MAIN: ${{ inputs.check_main }}
35+
CHECK_COMMIT: ${{ inputs.check_commit }}
36+
ALLOW_WORKFLOW_DISPATCH: ${{ inputs.allow_workflow_dispatch }}
37+
with:
38+
script: |
39+
const trigger = process.env.TRIGGER;
40+
const checkMain = process.env.CHECK_MAIN === 'true';
41+
const checkCommit = process.env.CHECK_COMMIT === 'true';
42+
const allowWorkflowDispatch = process.env.ALLOW_WORKFLOW_DISPATCH === 'true';
43+
44+
if (allowWorkflowDispatch && context.eventName === 'workflow_dispatch') {
45+
core.setOutput('should_run', 'true');
46+
return;
47+
}
48+
49+
if (checkMain && context.ref === 'refs/heads/main') {
50+
core.setOutput('should_run', 'true');
51+
return;
52+
}
53+
54+
if (checkCommit) {
55+
let msg = '';
56+
if (context.eventName === 'push' && context.payload.head_commit) {
57+
msg = context.payload.head_commit.message || '';
58+
} else if (context.eventName === 'pull_request' && context.payload.pull_request) {
59+
const pr = context.payload.pull_request;
60+
const { data: commit } = await github.rest.repos.getCommit({
61+
owner: context.repo.owner,
62+
repo: context.repo.repo,
63+
ref: pr.head.sha,
64+
});
65+
msg = commit.commit?.message || '';
66+
}
67+
if (msg.includes('[e2e]')) {
68+
core.setOutput('should_run', 'true');
69+
return;
70+
}
71+
}
72+
73+
let commentMatch = false;
74+
if (context.eventName === 'issue_comment' && context.payload.issue?.pull_request) {
75+
commentMatch = (context.payload.comment?.body || '').includes(trigger);
76+
} else if (context.eventName === 'pull_request' && context.payload.pull_request) {
77+
const pr = context.payload.pull_request;
78+
const { data: comments } = await github.rest.issues.listComments({
79+
owner: context.repo.owner,
80+
repo: context.repo.repo,
81+
issue_number: pr.number,
82+
});
83+
commentMatch = comments.some(c => c.body && c.body.includes(trigger));
84+
}
85+
86+
core.setOutput('should_run', commentMatch ? 'true' : 'false');
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
name: Install Linux deps
2+
description: Install build and runtime deps for Tauri app on Ubuntu
3+
inputs:
4+
e2e:
5+
description: Include E2E desktop deps (webkit2gtk-driver, xvfb, gnome-keyring)
6+
required: false
7+
default: 'false'
8+
verify_glib:
9+
description: Run glib verification (dpkg, pkg-config checks)
10+
required: false
11+
default: 'true'
12+
runs:
13+
using: composite
14+
steps:
15+
- name: Install Linux deps
16+
shell: bash
17+
run: |
18+
BASE_DEPS="build-essential pkg-config libglib2.0-dev libgtk-3-dev libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf libsecret-1-dev"
19+
E2E_DEPS="webkit2gtk-driver xvfb gnome-keyring"
20+
sudo apt-get update
21+
if [ "${{ inputs.e2e }}" = "true" ]; then
22+
sudo apt-get install -y $BASE_DEPS $E2E_DEPS
23+
else
24+
sudo apt-get install -y $BASE_DEPS
25+
fi
26+
if [ "${{ inputs.verify_glib }}" = "true" ]; then
27+
echo "=== Verifying glib-2.0 installation ==="
28+
dpkg -l | grep libglib2.0-dev || echo "libglib2.0-dev not installed"
29+
find /usr -name 'glib-2.0.pc' 2>/dev/null || echo "glib-2.0.pc not found"
30+
pkg-config --modversion glib-2.0 || echo "pkg-config cannot find glib-2.0"
31+
pkg-config --exists 'glib-2.0 >= 2.70' && echo "glib-2.0 >= 2.70 found" || (echo "ERROR: glib-2.0 >= 2.70 not found"; exit 1)
32+
fi
33+
echo "PKG_CONFIG_PATH=$(pkg-config --variable pc_path pkg-config)" >> $GITHUB_ENV

0 commit comments

Comments
 (0)