Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1294 commits
Select commit Hold shift + click to select a range
f5d862e
Merge pull request #3662 from MervinPraison/claude/issue-3649-2026080…
praisonai-triage-agent[bot] Aug 4, 2026
0188391
docs: auto-update documentation parity trackers [skip ci]
MervinPraison Aug 4, 2026
4163d7b
Merge pull request #3659 from MervinPraison/claude/issue-3657-2026080…
praisonai-triage-agent[bot] Aug 4, 2026
f3dacae
docs: auto-update documentation parity trackers [skip ci]
MervinPraison Aug 4, 2026
0074495
Merge pull request #3660 from MervinPraison/claude/issue-3651-2026080…
praisonai-triage-agent[bot] Aug 4, 2026
c33129f
docs: auto-update api.md [skip ci]
MervinPraison Aug 4, 2026
73de340
Merge pull request #3661 from MervinPraison/claude/issue-3655-2026080…
praisonai-triage-agent[bot] Aug 4, 2026
9a2c969
Merge pull request #3663 from MervinPraison/claude/issue-3650-2026080…
praisonai-triage-agent[bot] Aug 4, 2026
80a7aca
Merge pull request #3664 from MervinPraison/claude/issue-3654-2026080…
praisonai-triage-agent[bot] Aug 4, 2026
9e7de1a
Merge pull request #3667 from MervinPraison/claude/issue-3666-2026080…
praisonai-triage-agent[bot] Aug 4, 2026
cffde66
Merge pull request #3668 from MervinPraison/claude/issue-3665-2026080…
praisonai-triage-agent[bot] Aug 4, 2026
ee83a4a
feat: add .praisonai/environment.yaml loader + ComputeConfig.setup (f…
praisonai-triage-agent[bot] Aug 4, 2026
213d255
fix: wire environment loader to live consumer, validate nested shapes…
praisonai-triage-agent[bot] Aug 4, 2026
580b02e
Merge pull request #3671 from MervinPraison/claude/issue-3669-2026080…
praisonai-triage-agent[bot] Aug 4, 2026
fbbeacf
docs: auto-update documentation parity trackers [skip ci]
MervinPraison Aug 4, 2026
a61add4
fix: memoise pure model-capability lookups in LLM hot path (fixes #3672)
praisonai-triage-agent[bot] Aug 4, 2026
ca06462
fix: expose PraisonAIAgents alias from package root (fixes #3674)
praisonai-triage-agent[bot] Aug 4, 2026
bbd1283
fix: update stale v4 removal tests to restored PraisonAIAgents alias …
praisonai-triage-agent[bot] Aug 4, 2026
770666f
Merge pull request #3675 from MervinPraison/claude/issue-3674-2026080…
MervinPraison Aug 5, 2026
fe4927e
docs: auto-update feature parity trackers [skip ci]
MervinPraison Aug 5, 2026
45b6948
Merge pull request #3673 from MervinPraison/claude/issue-3672-2026080…
MervinPraison Aug 5, 2026
5561e78
Merge pull request #3638 from MervinPraison/claude/issue-3636-2026080…
MervinPraison Aug 5, 2026
de48d26
docs: auto-update api.md [skip ci]
MervinPraison Aug 5, 2026
0ca67c6
ci(release): harden the pipeline and add first-class single-package r…
MervinPraison Aug 5, 2026
3f0354d
fix: hierarchical return, shared-memory data loss, per-agent approval…
praisonai-triage-agent[bot] Aug 5, 2026
7fcca21
Merge pull request #3676 from MervinPraison/ci/release-pipeline-harde…
MervinPraison Aug 5, 2026
878cf5c
fix: skip leftover manager_task on repeated hierarchical runs
praisonai-triage-agent[bot] Aug 5, 2026
583ac1e
feat: capture-after-setup env reuse keyed by definition hash (fixes #…
praisonai-triage-agent[bot] Aug 5, 2026
8ff2277
fix: isolate captures per secret context + lock registry writes
praisonai-triage-agent[bot] Aug 5, 2026
11cfa85
fix: replace emoji prints in docker.py with ASCII to prevent Windows …
praisonai-triage-agent[bot] Aug 5, 2026
4b34c82
fix: replace emoji prints in api.py and cloud providers to complete c…
praisonai-triage-agent[bot] Aug 5, 2026
3eb3718
fix: wire --handoff, make approval hook functional, drop duplicate LE…
praisonai-triage-agent[bot] Aug 5, 2026
0b8abfb
refactor: drop dead ApprovalSpec.install_hook parallel enforcement path
praisonai-triage-agent[bot] Aug 5, 2026
279bc07
fix: restore a resumed session's model instead of re-resolving the de…
praisonai-triage-agent[bot] Aug 5, 2026
8969d8d
fix: surface read-only plan mode via discoverable --plan flag (fixes …
praisonai-triage-agent[bot] Aug 5, 2026
692e3c2
Merge pull request #3681 from MervinPraison/claude/issue-3680-2026080…
MervinPraison Aug 5, 2026
2f53460
fix: resolve session model before local fallback + restore legacy top…
praisonai-triage-agent[bot] Aug 5, 2026
ee2d56a
fix: propagate plan mode through profiled runs and REPL worker
praisonai-triage-agent[bot] Aug 5, 2026
602f5f6
Merge pull request #3679 from MervinPraison/claude/issue-3670-2026080…
praisonai-triage-agent[bot] Aug 5, 2026
f084e06
docs: auto-update documentation parity trackers [skip ci]
MervinPraison Aug 5, 2026
9acafb1
feat: add ask_conversation cross-conversation request/reply tool (fix…
praisonai-triage-agent[bot] Aug 5, 2026
897f0e9
fix: clamp ask_conversation timeout to a finite positive bound
praisonai-triage-agent[bot] Aug 5, 2026
9fcd38a
Merge pull request #3683 from MervinPraison/claude/issue-3682-2026080…
praisonai-triage-agent[bot] Aug 5, 2026
f96bf72
feat: add no-LLM command action to scheduler jobs (fixes #3692)
praisonai-triage-agent[bot] Aug 5, 2026
7aadc28
fix: bound command output at read boundary and use asyncio.run in tests
praisonai-triage-agent[bot] Aug 5, 2026
0e665bb
fix: normalise corrupt command_timeout so a bad value fails only its …
praisonai-triage-agent[bot] Aug 5, 2026
f94b85a
Merge pull request #3691 from MervinPraison/claude/issue-3689-2026080…
praisonai-triage-agent[bot] Aug 5, 2026
cc9d174
docs: auto-update documentation parity trackers [skip ci]
MervinPraison Aug 5, 2026
91e6900
feat: add read-only agent-callable gateway_status tool (fixes #3688)
praisonai-triage-agent[bot] Aug 5, 2026
cd0aa89
fix: harden gateway_status serialization for any dataclass snapshot
praisonai-triage-agent[bot] Aug 5, 2026
541b4bf
Merge pull request #3687 from MervinPraison/claude/issue-3684-2026080…
praisonai-triage-agent[bot] Aug 5, 2026
a47fd46
Merge pull request #3686 from MervinPraison/claude/issue-3685-2026080…
praisonai-triage-agent[bot] Aug 5, 2026
366d09b
Merge pull request #3693 from MervinPraison/claude/issue-3692-2026080…
praisonai-triage-agent[bot] Aug 5, 2026
a0baace
docs: auto-update documentation parity trackers [skip ci]
MervinPraison Aug 5, 2026
b424558
Merge pull request #3690 from MervinPraison/claude/issue-3688-2026080…
praisonai-triage-agent[bot] Aug 5, 2026
d23cd30
fix(claude-code): make streaming progress actually work + on_event ca…
MervinPraison Aug 5, 2026
4420701
fix(claude-code): await async progress callbacks, route SDK progress,…
praisonai-triage-agent[bot] Aug 5, 2026
468f40d
Merge pull request #3695 from MervinPraison/feat/claude-code-progress…
praisonai-triage-agent[bot] Aug 5, 2026
2b98507
refactor: extract ContextConfig→ManagerConfig mapping helper (fixes #…
praisonai-triage-agent[bot] Aug 5, 2026
9e7e426
fix: remove dead FunctionTool.get_schema override (fixes #3696)
praisonai-triage-agent[bot] Aug 5, 2026
aadb62a
Release v4.6.160
praisonai-triage-agent[bot] Aug 5, 2026
f65e85c
Merge pull request #3699 from MervinPraison/claude/issue-3696-2026080…
praisonai-triage-agent[bot] Aug 5, 2026
ab3e0bb
docs: auto-update api.md [skip ci]
MervinPraison Aug 5, 2026
139f9c0
Merge pull request #3698 from MervinPraison/claude/issue-3697-2026080…
MervinPraison Aug 5, 2026
ffb8f7d
docs: auto-update documentation parity trackers [skip ci]
MervinPraison Aug 5, 2026
06b6c30
Merge pull request #3678 from MervinPraison/claude/issue-3677-2026080…
MervinPraison Aug 5, 2026
4263111
feat: add AgentTeam.start_for_each / astart_for_each batch map API (f…
praisonai-triage-agent[bot] Aug 6, 2026
3830260
fix: fail-closed on output_pydantic/output_json parse failure (fixes …
praisonai-triage-agent[bot] Aug 6, 2026
e706a2b
fix: reject hierarchical manager selecting synthetic manager_task (fi…
praisonai-triage-agent[bot] Aug 6, 2026
216b90b
fix: accept falsey structured output and preserve parse error detail
praisonai-triage-agent[bot] Aug 6, 2026
15858cf
fix: identify synthetic manager_task by id, not name, in hierarchical…
praisonai-triage-agent[bot] Aug 6, 2026
b00d73d
fix: reset & restore task state per batch item; validate batch inputs
praisonai-triage-agent[bot] Aug 6, 2026
f31bb19
Merge pull request #3704 from MervinPraison/claude/issue-3702-2026080…
praisonai-triage-agent[bot] Aug 6, 2026
8fc5055
docs: auto-update feature parity trackers [skip ci]
MervinPraison Aug 6, 2026
90b3502
Merge pull request #3705 from MervinPraison/claude/issue-3703-2026080…
praisonai-triage-agent[bot] Aug 6, 2026
404c03c
docs: auto-update api.md [skip ci]
MervinPraison Aug 6, 2026
7ce9676
Merge pull request #3706 from MervinPraison/claude/issue-3700-2026080…
praisonai-triage-agent[bot] Aug 6, 2026
d2374cd
docs: auto-update documentation parity trackers [skip ci]
MervinPraison Aug 6, 2026
b12b2b6
fix: harden async bridge, agent file tools, and A2U server (fixes #3709)
praisonai-triage-agent[bot] Aug 6, 2026
86dd01a
fix: make workspace confinement opt-in and bind A2U guard to real host
praisonai-triage-agent[bot] Aug 6, 2026
a2f65e6
fix: cancel offloaded coro on join-timeout; validate A2U limits as po…
praisonai-triage-agent[bot] Aug 6, 2026
7ebbe47
fix: unify tool discovery under canonical praisonai.tools entry-point…
praisonai-triage-agent[bot] Aug 6, 2026
343c936
feat: add 'plugins add' and 'tools add' install-and-verify CLI comman…
praisonai-triage-agent[bot] Aug 6, 2026
c7b1a0f
fix: serialize first plugin discovery under registry lock
praisonai-triage-agent[bot] Aug 6, 2026
9468514
fix: target CLI interpreter for uv installs, refresh discovery, add -…
praisonai-triage-agent[bot] Aug 6, 2026
682b8d1
feat: static capability manifest for plugins/channels without runtime…
praisonai-triage-agent[bot] Aug 6, 2026
841b1dd
fix: quarantine corrupt session files instead of silently resetting h…
praisonai-triage-agent[bot] Aug 6, 2026
158de27
fix: wire deferred tool results to a resolver so long-running results…
praisonai-triage-agent[bot] Aug 6, 2026
b49c3b3
fix: auto-create RateLimiter from ExecutionConfig max_rpm (fixes #3718)
praisonai-triage-agent[bot] Aug 6, 2026
fe2b0d6
fix: quarantine invalid-UTF-8 session files and use collision-free qu…
praisonai-triage-agent[bot] Aug 6, 2026
8b9bde6
fix: validate max_rpm before limiter precedence (PR #3722 review)
praisonai-triage-agent[bot] Aug 6, 2026
c69b3a2
fix: buffer early deferred resolutions and make registration atomic (…
praisonai-triage-agent[bot] Aug 6, 2026
4ae40f1
fix: eliminate false 124 timeout race in scheduler command runner
praisonai-triage-agent[bot] Aug 6, 2026
72c5af7
fix: add out-of-process standalone sender for scheduled delivery (fix…
praisonai-triage-agent[bot] Aug 6, 2026
3ab5c03
Merge pull request #3722 from MervinPraison/claude/issue-3718-2026080…
MervinPraison Aug 6, 2026
8a546e1
docs: auto-update documentation parity trackers [skip ci]
MervinPraison Aug 6, 2026
3c7bb56
fix: standalone sender chunking, home-channel registry, discord threa…
praisonai-triage-agent[bot] Aug 6, 2026
d2506aa
Merge pull request #3710 from MervinPraison/claude/issue-3709-2026080…
praisonai-triage-agent[bot] Aug 6, 2026
e55212d
Merge pull request #3713 from MervinPraison/claude/issue-3711-2026080…
praisonai-triage-agent[bot] Aug 6, 2026
7d426c7
Merge pull request #3714 from MervinPraison/claude/issue-3712-2026080…
praisonai-triage-agent[bot] Aug 6, 2026
6ebc99e
Merge pull request #3720 from MervinPraison/claude/issue-3715-2026080…
praisonai-triage-agent[bot] Aug 6, 2026
5f67cef
docs: auto-update documentation parity trackers [skip ci]
MervinPraison Aug 6, 2026
7b4726c
fix: add command frontmatter parity and positional $1..$n args (fixes…
praisonai-triage-agent[bot] Aug 6, 2026
3945dfe
fix: truthful plugins CLI, project-plugin trust gate, clean unload (f…
praisonai-triage-agent[bot] Aug 6, 2026
386e2c2
Merge pull request #3719 from MervinPraison/claude/issue-3717-2026080…
praisonai-triage-agent[bot] Aug 6, 2026
8281400
Merge pull request #3721 from MervinPraison/claude/issue-3716-2026080…
praisonai-triage-agent[bot] Aug 6, 2026
e34989a
fix: bridge file-based custom slash commands into bot chats (fixes #3…
praisonai-triage-agent[bot] Aug 6, 2026
0ccfea1
fix: harden command positional interpolation (#3727)
praisonai-triage-agent[bot] Aug 6, 2026
2a5b3d4
docs: auto-update documentation parity trackers [skip ci]
MervinPraison Aug 6, 2026
7d31c35
feat: add /btw side-question command to interactive REPL (fixes #3735)
praisonai-triage-agent[bot] Aug 6, 2026
0d8d32f
feat: add SkillManager.reload() + `praisonai skills reload` for live …
praisonai-triage-agent[bot] Aug 6, 2026
9f06457
feat: add /recap on-demand read-only session summary (fixes #3740)
praisonai-triage-agent[bot] Aug 6, 2026
5364f23
fix: make interactive /plan a real read-only mode with enforcement (f…
praisonai-triage-agent[bot] Aug 6, 2026
8967c60
feat: add !command shell escape to interactive REPL/TUI (fixes #3742)
praisonai-triage-agent[bot] Aug 6, 2026
94ba57c
fix: add working /diff (session file changes) and wire TUI /diff & /u…
praisonai-triage-agent[bot] Aug 6, 2026
43fdb1d
feat: add /tasks command to interactive session and bot registry (fix…
praisonai-triage-agent[bot] Aug 6, 2026
149ee16
fix: add session rename for human-readable titles (fixes #3737)
praisonai-triage-agent[bot] Aug 6, 2026
55eb6a1
feat: add /branch REPL command and session fork CLI verb (fixes #3731)
praisonai-triage-agent[bot] Aug 6, 2026
b61bc2c
fix: add headless -p/--print + --output json|text to `praisonai code`…
praisonai-triage-agent[bot] Aug 6, 2026
cacb4f9
fix: parity across interactive REPL surfaces (fixes #3744)
praisonai-triage-agent[bot] Aug 6, 2026
20831c7
fix: close symlink gate bypass, config corruption, stale reload/disab…
praisonai-triage-agent[bot] Aug 6, 2026
f6df4a8
fix: harden /btw side-question (streaming, autonomy, --keep parsing)
praisonai-triage-agent[bot] Aug 6, 2026
f4266f7
fix: record skill mtime baseline at load; preserve add_skill() on reload
praisonai-triage-agent[bot] Aug 6, 2026
707d689
fix: reach file commands in bots, gate per-command shell, sanitize er…
praisonai-triage-agent[bot] Aug 6, 2026
0f69038
fix: bound /recap output so a large summary can't overflow a channel
praisonai-triage-agent[bot] Aug 6, 2026
11f4d96
fix: retain !!cmd context on failure and attach failed output
praisonai-triage-agent[bot] Aug 6, 2026
caa6b9b
fix: restore prior approval mode on /plan exit + sync PLAN state at s…
praisonai-triage-agent[bot] Aug 6, 2026
6329b23
fix: allow renaming legacy-only sessions (Issue #3737)
praisonai-triage-agent[bot] Aug 6, 2026
f29750f
fix: capture TUI session baseline at startup + pre-turn checkpoints
praisonai-triage-agent[bot] Aug 6, 2026
60a4e71
fix: resolve /tasks P1 issues — dispatch, shared runner, ownership, c…
praisonai-triage-agent[bot] Aug 6, 2026
449b397
fix: harden `code -p` headless mode (profiling precedence + fail-clos…
praisonai-triage-agent[bot] Aug 6, 2026
77c5fa7
fix: harden session fork against wrong store, bad index, and in-fligh…
praisonai-triage-agent[bot] Aug 6, 2026
2b031fd
fix: expand @file mentions exactly once in async TUI (fixes double ex…
praisonai-triage-agent[bot] Aug 6, 2026
b4218d3
fix: sync legacy /plan toggle from live backend at startup
praisonai-triage-agent[bot] Aug 6, 2026
ccabb98
fix: sanitize fork store lookup + close /branch busy-check race
praisonai-triage-agent[bot] Aug 6, 2026
94fa543
Merge pull request #3741 from MervinPraison/claude/issue-3728-2026080…
praisonai-triage-agent[bot] Aug 6, 2026
a18f4e8
docs: auto-update documentation parity trackers [skip ci]
MervinPraison Aug 6, 2026
f42009e
Merge pull request #3730 from MervinPraison/claude/issue-3727-2026080…
praisonai-triage-agent[bot] Aug 6, 2026
ab1696b
Merge pull request #3726 from MervinPraison/claude/issue-3724-2026080…
praisonai-triage-agent[bot] Aug 6, 2026
c4af36d
Merge pull request #3745 from MervinPraison/claude/issue-3729-2026080…
praisonai-triage-agent[bot] Aug 6, 2026
f3679c5
Merge pull request #3749 from MervinPraison/claude/issue-3740-2026080…
praisonai-triage-agent[bot] Aug 6, 2026
c3a3e39
fix: isolate REPL /tasks tests from shared background runner singleton
praisonai-triage-agent[bot] Aug 6, 2026
47c7627
Merge pull request #3748 from MervinPraison/claude/issue-3739-2026080…
praisonai-triage-agent[bot] Aug 6, 2026
fd67458
docs: auto-update api.md [skip ci]
MervinPraison Aug 6, 2026
3f1d8e1
Merge pull request #3750 from MervinPraison/claude/issue-3736-2026080…
praisonai-triage-agent[bot] Aug 6, 2026
6b59958
Merge pull request #3751 from MervinPraison/claude/issue-3742-2026080…
praisonai-triage-agent[bot] Aug 6, 2026
910f135
feat: add /code-review + /security-review interactive commands (fixes…
praisonai-triage-agent[bot] Aug 6, 2026
e6eb0d0
fix: enforce read-only review, harden diff handling in TUI review com…
praisonai-triage-agent[bot] Aug 6, 2026
7fe53aa
Merge pull request #3754 from MervinPraison/claude/issue-3737-2026080…
praisonai-triage-agent[bot] Aug 6, 2026
2928219
docs: auto-update documentation parity trackers [skip ci]
MervinPraison Aug 6, 2026
85b9494
Merge pull request #3746 from MervinPraison/claude/issue-3735-2026080…
praisonai-triage-agent[bot] Aug 6, 2026
c0f9278
Merge pull request #3752 from MervinPraison/claude/issue-3733-2026080…
praisonai-triage-agent[bot] Aug 6, 2026
d354049
docs: auto-update documentation parity trackers [skip ci]
MervinPraison Aug 6, 2026
50605a1
Merge pull request #3753 from MervinPraison/claude/issue-3732-2026080…
praisonai-triage-agent[bot] Aug 6, 2026
6ca4b97
Merge pull request #3755 from MervinPraison/claude/issue-3731-2026080…
praisonai-triage-agent[bot] Aug 6, 2026
5f6575f
Merge pull request #3747 from MervinPraison/claude/issue-3734-2026080…
praisonai-triage-agent[bot] Aug 6, 2026
80a3d65
Merge pull request #3757 from MervinPraison/claude/issue-3738-2026080…
praisonai-triage-agent[bot] Aug 6, 2026
2251822
Merge pull request #3758 from MervinPraison/claude/issue-3744-2026080…
praisonai-triage-agent[bot] Aug 6, 2026
13d8199
feat: add one-shot plugin-isolation flag (--pure / --no-plugins) (fix…
praisonai-triage-agent[bot] Aug 7, 2026
2b450bb
fix: scope --pure suppression per-run and repair pre-existing read_on…
praisonai-triage-agent[bot] Aug 7, 2026
b86653d
fix: add canonical inbound admission primitive to core bots (fixes #3…
praisonai-triage-agent[bot] Aug 7, 2026
8dc05d5
fix: add core presentation renderer registration seam for plugin chan…
praisonai-triage-agent[bot] Aug 7, 2026
a49916a
fix: default unset group_policy to mention_only in admission primitive
praisonai-triage-agent[bot] Aug 7, 2026
cf37bd2
fix: match _execute_prompt fake signature to accept read_only in pari…
praisonai-triage-agent[bot] Aug 7, 2026
322f8d6
fix: harden presentation renderer seam + fix unrelated CLI test stub
praisonai-triage-agent[bot] Aug 7, 2026
7186a5c
Merge pull request #3777 from MervinPraison/claude/issue-3773-2026080…
praisonai-triage-agent[bot] Aug 7, 2026
d169cf2
docs: auto-update feature parity trackers [skip ci]
MervinPraison Aug 7, 2026
ce3e896
Merge pull request #3782 from MervinPraison/claude/issue-3780-2026080…
praisonai-triage-agent[bot] Aug 7, 2026
9e1ea90
docs: auto-update documentation parity trackers [skip ci]
MervinPraison Aug 7, 2026
ddf496f
Merge pull request #3783 from MervinPraison/claude/issue-3778-2026080…
praisonai-triage-agent[bot] Aug 7, 2026
2aa2348
docs: auto-update documentation parity trackers [skip ci]
MervinPraison Aug 7, 2026
129ac43
fix: bound persistence session cache, fix flow components path separa…
praisonai-triage-agent[bot] Aug 8, 2026
6bb1f07
fix: rewrite route/loop agent refs on merge collision; guard cache-si…
praisonai-triage-agent[bot] Aug 8, 2026
e5c6b5b
fix: derive compaction context window from litellm model_cost before …
praisonai-triage-agent[bot] Aug 8, 2026
892b9fb
fix: add visible failure-reply and degraded-delivery bot primitives (…
praisonai-triage-agent[bot] Aug 8, 2026
7ff6194
fix: validate & preview scheduler delivery target at creation time (f…
praisonai-triage-agent[bot] Aug 8, 2026
644421d
Merge pull request #3792 from MervinPraison/claude/issue-3791-2026080…
praisonai-triage-agent[bot] Aug 8, 2026
c8f9294
fix: run scheduler delivery pre-flight at creation & split optional r…
praisonai-triage-agent[bot] Aug 8, 2026
cb01663
fix: preserve invalid_output retryability & align degraded-delivery r…
praisonai-triage-agent[bot] Aug 8, 2026
a5c064f
Merge pull request #3796 from MervinPraison/claude/issue-3795-2026080…
praisonai-triage-agent[bot] Aug 8, 2026
ca0337f
fix: add cgroup-aware memory-pressure cache eviction planner (fixes #…
praisonai-triage-agent[bot] Aug 8, 2026
e964230
fix: pin model/provider per scheduled job and fail closed on drift (f…
praisonai-triage-agent[bot] Aug 8, 2026
ec65b2a
docs: auto-update feature parity trackers [skip ci]
MervinPraison Aug 8, 2026
65d72e9
fix: reject non-finite budget/rss and non-numeric headroom in evictio…
praisonai-triage-agent[bot] Aug 8, 2026
ea94c47
fix: make scheduled model pin run-scoped and normalize provider/model…
praisonai-triage-agent[bot] Aug 8, 2026
82bd30f
fix: pin dedicated background runner in REPL /tasks tests to close xd…
praisonai-triage-agent[bot] Aug 8, 2026
ceab879
Merge pull request #3801 from MervinPraison/claude/issue-3799-2026080…
praisonai-triage-agent[bot] Aug 8, 2026
601b047
docs: auto-update documentation parity trackers [skip ci]
MervinPraison Aug 8, 2026
f69fe97
test: pin dedicated background runner in REPL /tasks tests to fix xdi…
praisonai-triage-agent[bot] Aug 8, 2026
ee9c815
Merge pull request #3806 from MervinPraison/claude/issue-3803-2026080…
praisonai-triage-agent[bot] Aug 8, 2026
8c9970e
docs: auto-update documentation parity trackers [skip ci]
MervinPraison Aug 8, 2026
51f337b
Merge pull request #3805 from MervinPraison/claude/issue-3804-2026080…
praisonai-triage-agent[bot] Aug 8, 2026
5b1a437
docs: auto-update documentation parity trackers [skip ci]
MervinPraison Aug 8, 2026
9e0c608
Merge pull request #3802 from MervinPraison/claude/issue-3800-2026080…
praisonai-triage-agent[bot] Aug 8, 2026
5894a01
refactor: consolidate scheduler delivery methods into base class (fix…
praisonai-triage-agent[bot] Aug 8, 2026
ac4b91c
fix: patch package-level get_background_runner in tasks-command test …
praisonai-triage-agent[bot] Aug 8, 2026
51b102e
Merge pull request #3808 from MervinPraison/claude/issue-3807-2026080…
praisonai-triage-agent[bot] Aug 8, 2026
6b6707c
fix: cleanup launched routes, drop dead checkpoints/background state,…
praisonai-triage-agent[bot] Aug 9, 2026
e01a8ae
fix: scope launch-route cleanup to agent-owned POST route
praisonai-triage-agent[bot] Aug 9, 2026
9b9dcc7
test: pin REPL /tasks tests to one xdist worker and reset shared runner
praisonai-triage-agent[bot] Aug 9, 2026
c5781b6
Merge pull request #3810 from MervinPraison/claude/issue-3809-2026080…
praisonai-triage-agent[bot] Aug 9, 2026
9335bc8
docs: auto-update api.md [skip ci]
MervinPraison Aug 9, 2026
4cde8cf
fix: serve concurrency, Redis SCAN, and injection over-blocking (fixe…
praisonai-triage-agent[bot] Aug 9, 2026
3e87d05
fix: route serve per-request tool-timeout leaks to cached pool owner
praisonai-triage-agent[bot] Aug 9, 2026
a0170e7
fix: emit live TODO_UPDATED stream events on todo mutations (fixes #3…
praisonai-triage-agent[bot] Aug 9, 2026
2d2ba1d
fix: install tool-progress channel on async tool path for live todo e…
praisonai-triage-agent[bot] Aug 9, 2026
f2ab5a7
Merge pull request #3812 from MervinPraison/claude/issue-3811-2026080…
praisonai-triage-agent[bot] Aug 9, 2026
ae1aa47
fix: make REPL /tasks tests deterministic via runner injection
praisonai-triage-agent[bot] Aug 9, 2026
ca76128
Release v4.6.161
praisonai-triage-agent[bot] Aug 9, 2026
0641e5c
Merge pull request #3816 from MervinPraison/claude/issue-3813-2026080…
praisonai-triage-agent[bot] Aug 9, 2026
144683d
docs: auto-update feature parity trackers [skip ci]
MervinPraison Aug 9, 2026
f4e32cf
fix: include live MCP server tools in `tools list` (fixes #3815)
praisonai-triage-agent[bot] Aug 9, 2026
b3d1b59
fix: list MCP tools under runtime-callable names + bound discovery ti…
praisonai-triage-agent[bot] Aug 9, 2026
82fe82c
fix: deterministic /tasks REPL test isolation under xdist loadfile
praisonai-triage-agent[bot] Aug 9, 2026
63754c7
Merge pull request #3817 from MervinPraison/claude/issue-3815-2026080…
praisonai-triage-agent[bot] Aug 9, 2026
614d2b6
fix: emit MODEL_FALLBACK hook + stream event on silent model switch (…
praisonai-triage-agent[bot] Aug 9, 2026
7af120c
fix: route MODEL_FALLBACK through agent registry + async emitter (PR …
praisonai-triage-agent[bot] Aug 9, 2026
6a32814
Merge pull request #3821 from MervinPraison/claude/issue-3820-2026080…
praisonai-triage-agent[bot] Aug 9, 2026
84752e7
docs: auto-update documentation parity trackers [skip ci]
MervinPraison Aug 9, 2026
ee4ba66
fix: reuse image/URL helpers from replay.judge in recipe_optimizer (f…
praisonai-triage-agent[bot] Aug 9, 2026
d1f387e
fix: restore orphaned workflow-runs L3 dashboard page (fixes #3825)
praisonai-triage-agent[bot] Aug 9, 2026
4fe61c8
fix: remove superseded unreferenced argparse builders in eval and san…
praisonai-triage-agent[bot] Aug 9, 2026
605ff7b
fix: delegate _resolve_llm model precedence to core (fixes #3827)
praisonai-triage-agent[bot] Aug 9, 2026
638f4e2
Merge pull request #3828 from MervinPraison/claude/issue-3824-2026080…
praisonai-triage-agent[bot] Aug 9, 2026
fc131bf
Merge pull request #3829 from MervinPraison/claude/issue-3825-2026080…
praisonai-triage-agent[bot] Aug 9, 2026
814a215
Merge pull request #3831 from MervinPraison/claude/issue-3827-2026080…
praisonai-triage-agent[bot] Aug 9, 2026
7b1ddd4
Merge pull request #3830 from MervinPraison/claude/issue-3826-2026080…
praisonai-triage-agent[bot] Aug 9, 2026
48a8d4f
fix: async RAG offload, non-lossy tool persistence, nesting-proof inj…
praisonai-triage-agent[bot] Aug 10, 2026
e705e1b
fix(security): fail-closed when injection scan budget is exhausted
praisonai-triage-agent[bot] Aug 10, 2026
f55da51
fix: add litellm-free capability fallback in model_capabilities (fixe…
praisonai-triage-agent[bot] Aug 10, 2026
4317371
fix: keep litellm authoritative on error; narrower parallel fallback
praisonai-triage-agent[bot] Aug 10, 2026
e0254be
Merge pull request #3837 from MervinPraison/claude/issue-3836-2026081…
praisonai-triage-agent[bot] Aug 10, 2026
e0e46a0
fix: add gateway config_version stamp + doctor-driven migration (fixe…
praisonai-triage-agent[bot] Aug 10, 2026
ae9b0cc
fix: add fleet-level crash-loop breaker for gateway channel supervisi…
praisonai-triage-agent[bot] Aug 10, 2026
db412e5
fix: reject newer/malformed gateway config_version + atomic doctor wr…
praisonai-triage-agent[bot] Aug 10, 2026
7647606
fix: fleet breaker recovery, failing-fraction enforcement, CI schema …
praisonai-triage-agent[bot] Aug 10, 2026
1d80672
Merge pull request #3839 from MervinPraison/claude/issue-3838-2026081…
praisonai-triage-agent[bot] Aug 10, 2026
5fbdd1e
docs: auto-update feature parity trackers [skip ci]
MervinPraison Aug 10, 2026
96f6544
Merge pull request #3843 from MervinPraison/claude/issue-3840-2026081…
praisonai-triage-agent[bot] Aug 10, 2026
10c6cb8
Merge pull request #3842 from MervinPraison/claude/issue-3841-2026081…
praisonai-triage-agent[bot] Aug 10, 2026
257a7c8
docs: auto-update documentation parity trackers [skip ci]
MervinPraison Aug 10, 2026
f4964e1
fix: consolidate module-member tool extraction onto canonical helper …
praisonai-triage-agent[bot] Aug 10, 2026
30652e0
fix(tenki): migrate to renamed `tenki` SDK 0.5.4 (was tenki-sandbox 0…
rishijoshi Aug 10, 2026
0a0c1ce
Merge pull request #3849 from MervinPraison/claude/issue-3848-2026081…
praisonai-triage-agent[bot] Aug 10, 2026
de0b4f6
fix(tenki): address post-migration review findings
rishijoshi Aug 10, 2026
d2fa4df
fix(tenki): forward networking/metadata through provision + honor TEN…
rishijoshi Aug 10, 2026
7ec5f05
Merge remote-tracking branch 'upstream/main' into feat/tenki-compute-…
rishijoshi Aug 11, 2026
fb23e34
test(tenki): skip integration tests on TENKI_API_KEY OR TENKI_AUTH_TOKEN
rishijoshi Aug 11, 2026
baf6157
chore(tenki): keep fork CI workflow files unchanged
rishijoshi Aug 11, 2026
1faed55
chore(tenki): restore .github/workflows to match main
rishijoshi Aug 11, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
330 changes: 330 additions & 0 deletions .agent/mer-vin-praisonai-mcp.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,330 @@
<!-- wp:paragraph -->
<p>praisonai-mcp is Tier 2e — the heavy MCP server host: full <code>MCPServer</code>, tool/resource/prompt registries, recipe bridge, HTTP-stream auth, and MCP client config management. Depends only on <code>praisonaiagents</code>. v0.0.2. Protocol: MCP 2025-11-25.</p>
<!-- /wp:paragraph -->

<!-- wp:merpress/mermaidjs {"align":"full"} -->
<div class="wp-block-merpress-mermaidjs diagram-source-mermaid alignfull"><pre class="mermaid">%%{init: {"theme": "base", "themeVariables": {"background": "transparent", "lineColor": "#000000"}}}%%
flowchart TB
CLIENT[Cursor Claude Desktop]
subgraph T1 [praisonaiagents]
SDK[MCP client ToolsMCPServer]
SEC[mcp_security shared]
end
subgraph T2e [praisonai-mcp]
HOST[MCPServer]
REG[tool resource prompt registry]
TR[stdio http-stream]
AUTH[api-key oauth scopes]
CFG[mcp list add sync]
end
subgraph T2a [praisonai-code optional]
LIGHT[serve mcp light]
BRIDGE[_mcp_bridge]
end
subgraph T3 [praisonai wrapper optional]
CAP[capabilities recipe]
end
CLIENT --> TR
TR --> HOST
HOST --> REG
REG -.->|adapters| CAP
CFG -.->|_code_bridge| LIGHT
BRIDGE --> CFG
SDK --> LIGHT
SEC --> TR
classDef agent fill:#8B0000,color:#fff
classDef tool fill:#189AB4,color:#fff
class CLIENT agent
class SDK agent
class HOST agent
class REG tool
class TR tool
class AUTH tool
class CFG tool
class LIGHT tool
class SEC tool
</pre></div>
<!-- /wp:merpress/mermaidjs -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Three MCP layers (do not conflate)</h2>
<!-- /wp:heading -->

<!-- wp:table -->
<figure class="wp-block-table"><table><thead><tr><th>Layer</th><th>Package</th><th>Role</th><th>Entry</th></tr></thead><tbody><tr><td>Client</td><td><code>praisonaiagents/mcp/</code></td><td>Connect agents to external MCP servers; OAuth storage</td><td><code>pip install "praisonaiagents[mcp]"</code></td></tr><tr><td>Light server</td><td><code>praisonai-code</code></td><td>Config-driven basic tool hosting</td><td><code>praisonai serve mcp</code></td></tr><tr><td>Heavy host</td><td><code>praisonai-mcp</code></td><td>Full server, adapters, recipe bridge, HTTP auth</td><td><code>praisonai mcp serve</code></td></tr></tbody></table></figure>
<!-- /wp:table -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Install matrix</h2>
<!-- /wp:heading -->

<!-- wp:table -->
<figure class="wp-block-table"><table><thead><tr><th>Install</th><th><code>praisonai mcp</code></th><th><code>praisonai serve mcp</code></th><th><code>praisonai-mcp</code> script</th></tr></thead><tbody><tr><td><code>pip install praisonai-mcp</code></td><td>—</td><td>—</td><td>✅</td></tr><tr><td><code>pip install "praisonai-mcp[all]"</code></td><td>—</td><td>—</td><td>✅ HTTP + auth</td></tr><tr><td><code>pip install praisonai-code</code> only</td><td>hidden</td><td>✅ light</td><td>—</td></tr><tr><td><code>pip install "praisonai[mcp]"</code></td><td>✅</td><td>✅</td><td>✅</td></tr><tr><td><code>pip install praisonai</code></td><td>✅</td><td>✅</td><td>✅</td></tr></tbody></table></figure>
<!-- /wp:table -->

<!-- wp:paragraph -->
<p>1. Standalone heavy host</p>
<!-- /wp:paragraph -->

<!-- wp:code -->
<pre class="wp-block-code"><code>pip install "praisonai-mcp[all]"
export OPENAI_API_KEY=sk-...

praisonai-mcp --version
praisonai-mcp serve --transport stdio
praisonai-mcp list-tools
praisonai-mcp doctor</code></pre>
<!-- /wp:code -->

<!-- wp:paragraph -->
<p>2. Full stack (same commands via <code>praisonai mcp …</code>)</p>
<!-- /wp:paragraph -->

<!-- wp:code -->
<pre class="wp-block-code"><code>pip install praisonai
# or MCP-only extra
pip install "praisonai[mcp]"

praisonai mcp serve --transport stdio
praisonai mcp list-tools
praisonai mcp doctor</code></pre>
<!-- /wp:code -->

<!-- wp:paragraph -->
<p>3. Light server only (no praisonai-mcp required)</p>
<!-- /wp:paragraph -->

<!-- wp:code -->
<pre class="wp-block-code"><code>pip install praisonai-code "praisonaiagents[mcp]"

praisonai serve mcp --port 8080
# Uses agents ToolsMCPServer — not the heavy MCPServer</code></pre>
<!-- /wp:code -->

<!-- wp:separator -->
<hr class="wp-block-separator has-alpha-channel-opacity"/>
<!-- /wp:separator -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Section 1 — STDIO host (Cursor / Claude Desktop)</h2>
<!-- /wp:heading -->

<!-- wp:code -->
<pre class="wp-block-code"><code># Heavy host — full PraisonAI tool registry
praisonai-mcp serve --transport stdio
# or
praisonai mcp serve --transport stdio

# Generate client config
praisonai mcp config-generate --client cursor --transport stdio
praisonai mcp config-generate --client claude-desktop --transport stdio</code></pre>
<!-- /wp:code -->

<!-- wp:paragraph -->
<p>STDIO uses JSON-RPC over stdin/stdout. Logs go to stderr only — never corrupt the protocol stream.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Section 2 — HTTP Stream host</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Streamable HTTP (MCP 2025-11-25) — not legacy standalone SSE. Requires <code>[server]</code> extra (starlette + uvicorn).</p>
<!-- /wp:paragraph -->

<!-- wp:code -->
<pre class="wp-block-code"><code>praisonai mcp serve \
--transport http-stream \
--host 127.0.0.1 \
--port 8080 \
--endpoint /mcp \
--api-key my-secret-key \
--response-mode batch

# Endpoints: POST/GET/DELETE /mcp, plus /health</code></pre>
<!-- /wp:code -->

<!-- wp:paragraph -->
<p>Non-localhost binds require <code>--api-key</code> or <code>--keys-file</code>. Origin validation uses shared helpers from <code>praisonaiagents.mcp.mcp_security</code>.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Section 3 — Recipe → MCP bridge</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Turn any PraisonAI recipe into a scoped MCP server with allow/deny lists and safe mode.</p>
<!-- /wp:paragraph -->

<!-- wp:code -->
<pre class="wp-block-code"><code>praisonai mcp serve-recipe support-reply --transport stdio

praisonai mcp validate-recipe support-reply
praisonai mcp inspect-recipe support-reply

praisonai mcp config-generate-recipe support-reply --client claude-desktop</code></pre>
<!-- /wp:code -->

<!-- wp:paragraph -->
<p>Default denied tools include <code>shell.exec</code>, <code>file.delete</code>, <code>eval</code>, and similar destructive operations.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Section 4 — MCP client config management</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Config subcommands (<code>list</code>, <code>add</code>, <code>remove</code>, <code>sync</code>, <code>test</code>) require <code>praisonai-code</code> via <code>_code_bridge</code>.</p>
<!-- /wp:paragraph -->

<!-- wp:code -->
<pre class="wp-block-code"><code>praisonai mcp list
praisonai mcp add filesystem \
--command npx \
--args "-y @modelcontextprotocol/server-filesystem ."

praisonai mcp test filesystem
praisonai mcp sync
praisonai mcp tools
praisonai mcp status</code></pre>
<!-- /wp:code -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Section 5 — Built-in registry (tools, resources, prompts)</h2>
<!-- /wp:heading -->

<!-- wp:table -->
<figure class="wp-block-table"><table><thead><tr><th>Type</th><th>Examples</th><th>Adapter</th></tr></thead><tbody><tr><td>Tools</td><td><code>praisonai.chat.*</code>, <code>praisonai.workflow.*</code>, agent run helpers</td><td><code>mcp_server/adapters/capabilities.py</code>, <code>cli_tools.py</code></td></tr><tr><td>Resources</td><td><code>praisonai://memory/sessions</code>, <code>praisonai://workflows</code>, <code>praisonai://agents</code></td><td><code>adapters/resources.py</code></td></tr><tr><td>Prompts</td><td><code>deep-research</code>, <code>code-review</code>, <code>workflow-auto</code></td><td><code>adapters/prompts.py</code></td></tr></tbody></table></figure>
<!-- /wp:table -->

<!-- wp:code -->
<pre class="wp-block-code"><code># Inspect what the host exposes
praisonai-mcp list-tools
praisonai-mcp list-resources
praisonai-mcp list-prompts

# Host tool search (MCPServerCLI)
praisonai-mcp tools search "workflow"</code></pre>
<!-- /wp:code -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Section 6 — Security &amp; auth</h2>
<!-- /wp:heading -->

<!-- wp:table -->
<figure class="wp-block-table"><table><thead><tr><th>Concern</th><th>Package</th><th>Module</th></tr></thead><tbody><tr><td>Origin validation, session IDs</td><td><code>praisonaiagents</code></td><td><code>mcp/mcp_security.py</code></td></tr><tr><td>API keys, scoped keys file</td><td><code>praisonai-mcp</code></td><td><code>mcp_server/auth/api_key.py</code></td></tr><tr><td>OAuth 2.1 + PKCE</td><td><code>praisonai-mcp</code></td><td><code>mcp_server/auth/oauth.py</code></td></tr><tr><td>OIDC discovery</td><td><code>praisonai-mcp</code></td><td><code>mcp_server/auth/oidc.py</code></td></tr><tr><td>Scope enforcement</td><td><code>praisonai-mcp</code></td><td><code>mcp_server/auth/scopes.py</code></td></tr></tbody></table></figure>
<!-- /wp:table -->

<!-- wp:code -->
<pre class="wp-block-code"><code># Scoped keys file (--keys-file)
[
{"key": "monitor-key", "name": "monitor", "scopes": ["tools:read", "resources:read"]},
{"key": "admin-key", "name": "admin", "scopes": ["*"]}
]

# Env vars
export MCP_API_KEY=your-key
export PRAISONAI_MCP_MAX_SESSIONS=1000</code></pre>
<!-- /wp:code -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Section 7 — CLI routing (lazy load)</h2>
<!-- /wp:heading -->

<!-- wp:table -->
<figure class="wp-block-table"><table><thead><tr><th>Registry</th><th>Commands</th><th>Gate</th></tr></thead><tbody><tr><td>MCP-resident Typer</td><td>list, add, remove, sync, test, serve, doctor</td><td><code>mcp_package_available()</code></td></tr><tr><td>MCPServerCLI host</td><td>serve, list-tools, list-resources, config-generate, tasks, auth</td><td>Direct via <code>praisonai-mcp &lt;cmd&gt;</code></td></tr><tr><td>Code-resident light</td><td><code>serve mcp</code></td><td>Always available with code + agents</td></tr><tr><td>Wrapper-resident</td><td>dashboard, schedule, langfuse</td><td><code>wrapper_package_available()</code></td></tr></tbody></table></figure>
<!-- /wp:table -->

<!-- wp:paragraph -->
<p>Standalone <code>praisonai-code</code> hides <code>mcp</code> from <code>--help</code> when <code>praisonai-mcp</code> is not installed. Host commands like <code>praisonai-mcp serve</code> skip the <code>mcp</code> prefix; <code>praisonai mcp serve</code> goes through the Typer group.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Section 8 — Python API</h2>
<!-- /wp:heading -->

<!-- wp:code -->
<pre class="wp-block-code"><code>import praisonai_mcp
from praisonai_mcp.mcp_server import MCPServer
from praisonai_mcp.mcp_server.registry import register_tool
from praisonai_mcp.mcp_server.adapters import register_all

@register_tool("custom.greet")
def greet(name: str) -> str:
"""Greet a person by name."""
return f"Hello, {name}!"

register_all()
server = MCPServer(name="praisonai")
server.run(transport="stdio")</code></pre>
<!-- /wp:code -->

<!-- wp:code -->
<pre class="wp-block-code"><code># Recipe host
from praisonai_mcp.mcp_server import RecipeMCPAdapter

adapter = RecipeMCPAdapter("support-reply")
adapter.load()
adapter.to_mcp_server().run(transport="stdio")

# Shim path still works
from praisonai.mcp_server import MCPServer</code></pre>
<!-- /wp:code -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Section 9 — Standalone (no wrapper)</h2>
<!-- /wp:heading -->

<!-- wp:code -->
<pre class="wp-block-code"><code>pip install praisonaiagents "praisonai-mcp[all]"
export OPENAI_API_KEY=sk-...

praisonai-mcp serve --transport stdio
praisonai-mcp list-tools
praisonai-mcp doctor
praisonai-mcp --help</code></pre>
<!-- /wp:code -->

<!-- wp:paragraph -->
<p>Heavy MCP hosting needs only <code>praisonaiagents</code> + <code>praisonai-mcp</code>. Full capability registry (workflows, deploy, extended tools) activates when the wrapper is co-installed via <code>_wrapper_bridge</code>.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Bridges (no PyPI cycles)</h2>
<!-- /wp:heading -->

<!-- wp:table -->
<figure class="wp-block-table"><table><thead><tr><th>Bridge</th><th>Direction</th><th>Use</th></tr></thead><tbody><tr><td><code>_mcp_bridge</code></td><td>code → mcp</td><td>Route <code>praisonai mcp</code> into Typer group</td></tr><tr><td><code>_code_bridge</code></td><td>mcp → code</td><td>Config loader, paths, output controller</td></tr><tr><td><code>_wrapper_bridge</code></td><td>mcp → wrapper</td><td>Capabilities, recipe, deploy adapters</td></tr></tbody></table></figure>
<!-- /wp:table -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Backward-compat shims</h2>
<!-- /wp:heading -->

<!-- wp:table -->
<figure class="wp-block-table"><table><thead><tr><th>Old path</th><th>Still works via</th></tr></thead><tbody><tr><td><code>praisonai.mcp_server.*</code></td><td><code>alias_package</code> → <code>praisonai_mcp.mcp_server</code></td></tr><tr><td><code>praisonai.cli.commands.mcp</code></td><td><code>sys.modules</code> shim → mcp Typer group</td></tr><tr><td><code>from praisonai.mcp_server import MCPServer</code></td><td>Lazy re-export through shim</td></tr></tbody></table></figure>
<!-- /wp:table -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Seven-package publish order</h2>
<!-- /wp:heading -->

<!-- wp:code -->
<pre class="wp-block-code"><code>praisonaiagents → praisonai-code → praisonai-bot → praisonai-train → praisonai-browser → praisonai-mcp → praisonai (wrapper)</code></pre>
<!-- /wp:code -->

<!-- wp:paragraph -->
<p>Wrapper pins <code>praisonai-mcp&gt;=X</code> after mcp is on PyPI. CI: <code>.github/workflows/pypi-release.yml</code>. Import gate: <code>scripts/check_c12_mcp_imports.sh</code>.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Summary</h2>
<!-- /wp:heading -->

<!-- wp:table -->
<figure class="wp-block-table"><table><thead><tr><th>Item</th><th>Value</th></tr></thead><tbody><tr><td>Tier</td><td>2e</td></tr><tr><td>PyPI</td><td><code>praisonai-mcp</code> v0.0.2</td></tr><tr><td>Runtime deps</td><td><code>praisonaiagents</code>, <code>mcp</code>, rich, typer</td></tr><tr><td>HTTP extra</td><td><code>[server]</code> — starlette, uvicorn</td></tr><tr><td>Auth extra</td><td><code>[auth]</code> — httpx</td></tr><tr><td>Transports</td><td><code>stdio</code>, <code>http-stream</code></td></tr><tr><td>Light alternative</td><td><code>praisonai serve mcp</code> (code tier)</td></tr><tr><td>CLI entry</td><td><code>praisonai-mcp</code> or <code>praisonai mcp</code></td></tr></tbody></table></figure>
<!-- /wp:table -->

<!-- wp:paragraph -->
<p>Previous: <a href="https://mer.vin/2026/07/praisonai-train-praisonai-train-fine-tuning-agent-training-in-depth/">praisonai-train</a> · Next: praisonai wrapper</p>
<!-- /wp:paragraph -->
Loading
Loading