telegram-agent-mcp 0.1.0__tar.gz
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.
- telegram_agent_mcp-0.1.0/.github/workflows/CI.yml +172 -0
- telegram_agent_mcp-0.1.0/.gitignore +1 -0
- telegram_agent_mcp-0.1.0/Cargo.lock +1982 -0
- telegram_agent_mcp-0.1.0/Cargo.toml +37 -0
- telegram_agent_mcp-0.1.0/LICENSE +21 -0
- telegram_agent_mcp-0.1.0/PKG-INFO +164 -0
- telegram_agent_mcp-0.1.0/README.md +144 -0
- telegram_agent_mcp-0.1.0/pyproject.toml +38 -0
- telegram_agent_mcp-0.1.0/src/main.rs +46 -0
- telegram_agent_mcp-0.1.0/src/server.rs +268 -0
- telegram_agent_mcp-0.1.0/src/telegram.rs +560 -0
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
# Originally generated by maturin v1.14.1 (`maturin generate-ci github`),
|
|
2
|
+
# then trimmed by hand. If you regenerate it, re-apply the changes below:
|
|
3
|
+
#
|
|
4
|
+
# * The wheel matrix is limited to mainstream targets. This crate depends on
|
|
5
|
+
# `aws-lc-sys` (via reqwest -> rustls), which needs cmake and a C toolchain
|
|
6
|
+
# and does not reliably cross-compile to the musllinux / s390x / ppc64le /
|
|
7
|
+
# armv7 / windows-x86 targets the generator emits by default.
|
|
8
|
+
# * A `check` job (fmt + clippy + an MCP stdio smoke test) was added.
|
|
9
|
+
name: CI
|
|
10
|
+
|
|
11
|
+
on:
|
|
12
|
+
push:
|
|
13
|
+
branches:
|
|
14
|
+
- main
|
|
15
|
+
- master
|
|
16
|
+
tags:
|
|
17
|
+
- '*'
|
|
18
|
+
pull_request:
|
|
19
|
+
workflow_dispatch:
|
|
20
|
+
|
|
21
|
+
permissions:
|
|
22
|
+
contents: read
|
|
23
|
+
|
|
24
|
+
jobs:
|
|
25
|
+
check:
|
|
26
|
+
name: Check (fmt, clippy, smoke test)
|
|
27
|
+
runs-on: ubuntu-latest
|
|
28
|
+
steps:
|
|
29
|
+
- uses: actions/checkout@v6
|
|
30
|
+
- uses: dtolnay/rust-toolchain@stable
|
|
31
|
+
with:
|
|
32
|
+
components: clippy, rustfmt
|
|
33
|
+
- uses: Swatinem/rust-cache@v2
|
|
34
|
+
- name: Check formatting
|
|
35
|
+
run: cargo fmt --all --check
|
|
36
|
+
- name: Clippy
|
|
37
|
+
run: cargo clippy --all-targets -- -D warnings
|
|
38
|
+
- name: Build
|
|
39
|
+
run: cargo build --release
|
|
40
|
+
- name: MCP stdio smoke test
|
|
41
|
+
env:
|
|
42
|
+
TELEGRAM_BOT_TOKEN: dummy-token-for-startup-only
|
|
43
|
+
run: |
|
|
44
|
+
# Drive a real initialize + tools/list handshake over stdio and
|
|
45
|
+
# assert the server identifies itself and advertises its tools.
|
|
46
|
+
printf '%s\n%s\n' \
|
|
47
|
+
'{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"ci","version":"1"}}}' \
|
|
48
|
+
'{"jsonrpc":"2.0","id":2,"method":"tools/list"}' \
|
|
49
|
+
| ./target/release/telegram-agent-mcp 2>/dev/null > out.json
|
|
50
|
+
cat out.json
|
|
51
|
+
grep -q '"name":"telegram-agent-mcp"' out.json
|
|
52
|
+
grep -q '"name":"wait_for_reply"' out.json
|
|
53
|
+
grep -q '"name":"list_agents"' out.json
|
|
54
|
+
|
|
55
|
+
linux:
|
|
56
|
+
runs-on: ${{ matrix.platform.runner }}
|
|
57
|
+
strategy:
|
|
58
|
+
fail-fast: false
|
|
59
|
+
matrix:
|
|
60
|
+
platform:
|
|
61
|
+
- runner: ubuntu-22.04
|
|
62
|
+
target: x86_64
|
|
63
|
+
# Built on a native ARM runner rather than cross-compiled from x86_64.
|
|
64
|
+
# The manylinux cross-gcc fails to define __ARM_ARCH when assembling
|
|
65
|
+
# ring's .S files (`ARM assembler must define __ARM_ARCH`), and
|
|
66
|
+
# passing -march explicitly does not fix it. Building natively avoids
|
|
67
|
+
# the cross-compiler altogether.
|
|
68
|
+
- runner: ubuntu-22.04-arm
|
|
69
|
+
target: aarch64
|
|
70
|
+
steps:
|
|
71
|
+
- uses: actions/checkout@v6
|
|
72
|
+
- name: Build wheels
|
|
73
|
+
uses: PyO3/maturin-action@v1
|
|
74
|
+
with:
|
|
75
|
+
target: ${{ matrix.platform.target }}
|
|
76
|
+
args: --release --out dist
|
|
77
|
+
sccache: false
|
|
78
|
+
manylinux: auto
|
|
79
|
+
- name: Upload wheels
|
|
80
|
+
uses: actions/upload-artifact@v6
|
|
81
|
+
with:
|
|
82
|
+
name: wheels-linux-${{ matrix.platform.target }}
|
|
83
|
+
path: dist
|
|
84
|
+
|
|
85
|
+
windows:
|
|
86
|
+
runs-on: ${{ matrix.platform.runner }}
|
|
87
|
+
strategy:
|
|
88
|
+
fail-fast: false
|
|
89
|
+
matrix:
|
|
90
|
+
platform:
|
|
91
|
+
- runner: windows-latest
|
|
92
|
+
target: x64
|
|
93
|
+
steps:
|
|
94
|
+
- uses: actions/checkout@v6
|
|
95
|
+
- name: Build wheels
|
|
96
|
+
uses: PyO3/maturin-action@v1
|
|
97
|
+
with:
|
|
98
|
+
target: ${{ matrix.platform.target }}
|
|
99
|
+
args: --release --out dist
|
|
100
|
+
sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
|
|
101
|
+
- name: Upload wheels
|
|
102
|
+
uses: actions/upload-artifact@v6
|
|
103
|
+
with:
|
|
104
|
+
name: wheels-windows-${{ matrix.platform.target }}
|
|
105
|
+
path: dist
|
|
106
|
+
|
|
107
|
+
macos:
|
|
108
|
+
runs-on: ${{ matrix.platform.runner }}
|
|
109
|
+
strategy:
|
|
110
|
+
fail-fast: false
|
|
111
|
+
matrix:
|
|
112
|
+
platform:
|
|
113
|
+
- runner: macos-15-intel
|
|
114
|
+
target: x86_64
|
|
115
|
+
- runner: macos-latest
|
|
116
|
+
target: aarch64
|
|
117
|
+
steps:
|
|
118
|
+
- uses: actions/checkout@v6
|
|
119
|
+
- name: Build wheels
|
|
120
|
+
uses: PyO3/maturin-action@v1
|
|
121
|
+
with:
|
|
122
|
+
target: ${{ matrix.platform.target }}
|
|
123
|
+
args: --release --out dist
|
|
124
|
+
sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
|
|
125
|
+
- name: Upload wheels
|
|
126
|
+
uses: actions/upload-artifact@v6
|
|
127
|
+
with:
|
|
128
|
+
name: wheels-macos-${{ matrix.platform.target }}
|
|
129
|
+
path: dist
|
|
130
|
+
|
|
131
|
+
sdist:
|
|
132
|
+
runs-on: ubuntu-latest
|
|
133
|
+
steps:
|
|
134
|
+
- uses: actions/checkout@v6
|
|
135
|
+
- name: Build sdist
|
|
136
|
+
uses: PyO3/maturin-action@v1
|
|
137
|
+
with:
|
|
138
|
+
command: sdist
|
|
139
|
+
args: --out dist
|
|
140
|
+
- name: Upload sdist
|
|
141
|
+
uses: actions/upload-artifact@v6
|
|
142
|
+
with:
|
|
143
|
+
name: wheels-sdist
|
|
144
|
+
path: dist
|
|
145
|
+
|
|
146
|
+
release:
|
|
147
|
+
name: Release
|
|
148
|
+
runs-on: ubuntu-latest
|
|
149
|
+
# Only publish on a version tag; the manual dispatch path still builds and
|
|
150
|
+
# attests artifacts without pushing to PyPI.
|
|
151
|
+
if: ${{ startsWith(github.ref, 'refs/tags/') || github.event_name == 'workflow_dispatch' }}
|
|
152
|
+
needs: [check, linux, windows, macos, sdist]
|
|
153
|
+
environment: release
|
|
154
|
+
permissions:
|
|
155
|
+
# Use to sign the release artifacts
|
|
156
|
+
id-token: write
|
|
157
|
+
# Used to upload release artifacts
|
|
158
|
+
contents: write
|
|
159
|
+
# Used to generate artifact attestation
|
|
160
|
+
attestations: write
|
|
161
|
+
steps:
|
|
162
|
+
- uses: actions/download-artifact@v7
|
|
163
|
+
- name: Generate artifact attestation
|
|
164
|
+
uses: actions/attest@v4
|
|
165
|
+
with:
|
|
166
|
+
subject-path: 'wheels-*/*'
|
|
167
|
+
- name: Install uv
|
|
168
|
+
if: ${{ startsWith(github.ref, 'refs/tags/') }}
|
|
169
|
+
uses: astral-sh/setup-uv@v7
|
|
170
|
+
- name: Publish to PyPI
|
|
171
|
+
if: ${{ startsWith(github.ref, 'refs/tags/') }}
|
|
172
|
+
run: uv publish --trusted-publishing always 'wheels-*/*'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
/target
|