Skip to content

Commit e26582b

Browse files
authored
Merge pull request #1139 from BobDickinson/launcher-and-docs
Clients directory, docs update, launcher rework
2 parents f3fd80e + f529d8a commit e26582b

225 files changed

Lines changed: 2763 additions & 7718 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.

.dockerignore

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ node_modules
77
npm-debug.log
88

99
# Build artifacts
10-
web/dist
11-
cli/build
12-
tui/build
10+
clients/web/dist
11+
clients/cli/build
12+
clients/tui/build
1313

1414
# Environment variables
1515
.env

.github/workflows/cli_tests.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,17 @@ name: CLI Tests
33
on:
44
push:
55
paths:
6-
- "cli/**"
6+
- "clients/cli/**"
77
pull_request:
88
paths:
9-
- "cli/**"
9+
- "clients/cli/**"
1010

1111
jobs:
1212
test:
1313
runs-on: ubuntu-latest
1414
defaults:
1515
run:
16-
working-directory: ./cli
16+
working-directory: ./clients/cli
1717
steps:
1818
- uses: actions/checkout@v6
1919

.github/workflows/e2e_tests.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -56,17 +56,17 @@ jobs:
5656
with:
5757
name: playwright-report
5858
path: |
59-
web/playwright-report/
60-
web/test-results/
61-
web/results.json
59+
clients/web/playwright-report/
60+
clients/web/test-results/
61+
clients/web/results.json
6262
retention-days: 2
6363

6464
- name: Publish Playwright Test Summary
6565
uses: daun/playwright-report-summary@v3
6666
if: steps.playwright-tests.conclusion != 'skipped'
6767
with:
6868
create-comment: ${{ github.event.pull_request.head.repo.full_name == github.repository }}
69-
report-file: web/results.json
69+
report-file: clients/web/results.json
7070
comment-title: "🎭 Playwright E2E Test Results"
7171
job-summary: true
7272
icon-style: "emojis"

.gitignore

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,22 +3,25 @@
33
.idea
44
node_modules/
55
*-workspace/
6-
web/tsconfig.app.tsbuildinfo
7-
web/tsconfig.node.tsbuildinfo
8-
web/tsconfig.jest.tsbuildinfo
6+
clients/web/tsconfig.app.tsbuildinfo
7+
clients/web/tsconfig.node.tsbuildinfo
8+
clients/web/tsconfig.jest.tsbuildinfo
99
core/build
10-
cli/build
11-
tui/build
10+
clients/cli/build
11+
clients/tui/build
12+
clients/launcher/build
13+
clients/web/build
14+
clients/web/dist
1215
test-servers/build
1316
test-output
1417
tool-test-output
1518
metadata-test-output
1619
# symlinked by `npm run link:sdk`:
1720
sdk
18-
web/playwright-report/
19-
web/results.json
20-
web/test-results/
21-
web/e2e/test-results/
21+
clients/web/playwright-report/
22+
clients/web/results.json
23+
clients/web/test-results/
24+
clients/web/e2e/test-results/
2225
# Only ignore mcp.json at repo root (configs in configs/ are committed)
2326
/mcp.json
2427
.claude/settings.local.json

.prettierignore

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
packages
22
core/build
3-
web/dist
4-
cli/build
5-
tui/build
3+
clients/web/dist
4+
clients/web/build
5+
clients/cli/build
6+
clients/tui/build
7+
clients/launcher/build
68
test-servers/build
79
CODE_OF_CONDUCT.md
810
SECURITY.md

AGENTS.md

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
- Build web: `npm run build-web`
99
- Development mode: `npm run dev` (use `npm run dev:windows` on Windows)
1010
- Format code: `npm run prettier-fix`
11-
- Web lint: `cd web && npm run lint`
11+
- Web lint: `cd clients/web && npm run lint`
1212

1313
## Code Style Guidelines
1414

@@ -25,12 +25,23 @@
2525
- Use Tailwind CSS for styling in the web app
2626
- Keep components small and focused on a single responsibility
2727

28+
## Tool Input Parameter Handling
29+
30+
When implementing or modifying tool input parameter handling in the Inspector:
31+
32+
- **Omit optional fields with empty values** - When processing form inputs, omit empty strings or null values for optional parameters, UNLESS the field has an explicit default value in the schema that matches the current value
33+
- **Preserve explicit default values** - If a field schema contains an explicit default (e.g., `default: null`), and the current value matches that default, include it in the request. This is a meaningful value the tool expects
34+
- **Always include required fields** - Preserve required field values even when empty, allowing the MCP server to validate and return appropriate error messages
35+
- **Defer deep validation to the server** - Implement basic field presence checking in the Inspector client, but rely on the MCP server for parameter validation according to its schema
36+
37+
These guidelines maintain clean parameter passing and proper separation of concerns between the Inspector client and MCP servers.
38+
2839
## Project Organization
2940

3041
The project is organized as a monorepo with workspaces:
3142

32-
- `web/`: Web application (Vite, TypeScript, Tailwind)
43+
- `clients/web/`: Web application (Vite, TypeScript, Tailwind)
3344
- `core/`: Core shared code used by web, CLI, and TUI
34-
- `cli/`: Command-line interface for testing and invoking MCP server methods directly
35-
- `tui/`: Terminal user interface
45+
- `clients/cli/`: Command-line interface for testing and invoking MCP server methods directly
46+
- `clients/tui/`: Terminal user interface
3647
- `test-servers/`: Composable MCP test servers, fixtures, and harness

Dockerfile

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,11 @@ WORKDIR /app
77
# Copy package files for installation
88
COPY package*.json ./
99
COPY .npmrc ./
10-
COPY web/package*.json ./web/
10+
COPY clients/web/package*.json ./clients/web/
1111
COPY core/package*.json ./core/
12-
COPY cli/package*.json ./cli/
13-
COPY tui/package*.json ./tui/
12+
COPY clients/cli/package*.json ./clients/cli/
13+
COPY clients/tui/package*.json ./clients/tui/
14+
COPY clients/launcher/package*.json ./clients/launcher/
1415

1516
# Install dependencies
1617
RUN npm ci --ignore-scripts
@@ -29,22 +30,24 @@ WORKDIR /app
2930
# Copy package files for production
3031
COPY package*.json ./
3132
COPY .npmrc ./
32-
COPY web/package*.json ./web/
33+
COPY clients/web/package*.json ./clients/web/
3334
COPY core/package*.json ./core/
34-
COPY cli/package*.json ./cli/
35-
COPY tui/package*.json ./tui/
35+
COPY clients/cli/package*.json ./clients/cli/
36+
COPY clients/tui/package*.json ./clients/tui/
37+
COPY clients/launcher/package*.json ./clients/launcher/
3638

3739
# Install only production dependencies
3840
RUN npm ci --omit=dev --ignore-scripts
3941

4042
# Copy built files from builder stage
41-
COPY --from=builder /app/web/dist ./web/dist
42-
COPY --from=builder /app/web/bin ./web/bin
43-
COPY --from=builder /app/cli/build ./cli/build
43+
COPY --from=builder /app/clients/web/dist ./clients/web/dist
44+
COPY --from=builder /app/clients/web/build ./clients/web/build
45+
COPY --from=builder /app/clients/cli/build ./clients/cli/build
46+
COPY --from=builder /app/clients/launcher/build ./clients/launcher/build
4447

4548
# Set default port
4649
ENV PORT=6274
4750
EXPOSE ${PORT}
4851

4952
# Run web app
50-
CMD ["node", "web/bin/start.js"]
53+
CMD ["node", "clients/launcher/build/index.js", "--web"]

0 commit comments

Comments
 (0)