Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,9 @@ __pycache__/
*_pb2_grpc.py
*_rbt.py

*_pb.ts*
*_pb_grpc.ts
*_rbt.ts
*_react.ts

dist
1 change: 1 addition & 0 deletions .rbtrc
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,4 @@ generate api/
# Tell `rbt` where to output its generated files.
# The paths are different for backend and frontend code.
generate --python=api/
generate --react=reboot/inspect/api
8 changes: 8 additions & 0 deletions .style.yapf
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
[style]
based_on_style = google
indent_width = 4
column_limit = 79

split_arguments_when_comma_terminated = true
dedent_closing_brackets = true
split_before_named_assigns = false
18 changes: 12 additions & 6 deletions RELEASE.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,32 +32,38 @@ rm -rf dist build *.egg-info
uv pip install --upgrade build twine
```

4. Build sdist and wheel:
4. Build inspect frontend

```console
cd reboot/inspect && npm install && npm run build
```

5. Build sdist and wheel:

```console
python -m build
```

5. Validate artifacts:
6. Validate artifacts:

```console
twine check dist/*
```

6. Upload to PyPI:
7. Upload to PyPI:

```console
twine upload dist/*
```

7. Push all local tags:
8. Push all local tags:

```console
git push --tags origin
```

8. Update GitHub releases
9. Update GitHub releases

Go to https://github.com/reboot-dev/durable-mcp-python/releases/new
and create a new release for the version just published. See other
examples for what you can put in the release notes.
examples for what you can put in the release notes.
36 changes: 36 additions & 0 deletions api/rbt/mcp/v1/session.proto
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,42 @@ import "rbt/v1alpha1/options.proto";

////////////////////////////////////////////////////////////////////////


message Sessions {
option (rbt.v1alpha1.state) = {
};
}

service SessionsMethods {
rpc Create(CreateRequest) returns (CreateResponse) {
option (rbt.v1alpha1.method) = {
writer: {
constructor: {},
}
};
}

rpc List(ListRequest) returns (ListResponse) {
option (rbt.v1alpha1.method).reader = {
};
}
}

message ListRequest {
// Maximum number of session IDs to return.
optional uint32 limit = 1;
}

message ListResponse {
repeated string session_ids = 1;
}

message CreateRequest {}

message CreateResponse {}

////////////////////////////////////////////////////////////////////////

message Session {
option (rbt.v1alpha1.state) = {
};
Expand Down
24 changes: 24 additions & 0 deletions reboot/inspect/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*

node_modules
dist
dist-ssr
*.local

# Editor directories and files
.vscode/*
!.vscode/extensions.json
.idea
.DS_Store
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
6 changes: 6 additions & 0 deletions reboot/inspect/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Durable MCP Sequence Diagram

This dashboard shows:
Sessions
-> Requests
-> MCP messages
23 changes: 23 additions & 0 deletions reboot/inspect/eslint.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
import js from '@eslint/js'
import globals from 'globals'
import reactHooks from 'eslint-plugin-react-hooks'
import reactRefresh from 'eslint-plugin-react-refresh'
import tseslint from 'typescript-eslint'
import { defineConfig, globalIgnores } from 'eslint/config'

export default defineConfig([
globalIgnores(['dist']),
{
files: ['**/*.{ts,tsx}'],
extends: [
js.configs.recommended,
tseslint.configs.recommended,
reactHooks.configs['recommended-latest'],
reactRefresh.configs.vite,
],
languageOptions: {
ecmaVersion: 2020,
globals: globals.browser,
},
},
])
13 changes: 13 additions & 0 deletions reboot/inspect/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/favicon.ico" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Durable MCP Sequence Diagram</title>
</head>
<body>
<div id="root"></div>
<script type="module" src="/src/main.tsx"></script>
</body>
</html>
Loading