feat(console): embeddable graph editor + graph generate/validate API for host apps
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 20/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- python
- Domain
- api, backend, full-stack
Research direction
Start by locating the console’s graph editor routes and graph API entry points; the issue does not name files or tests. Map the editor’s current graph model and runtime pool capability manifest, then define the shared generate and validate behavior and embed token flow. Done means the host can embed and exchange graphs, both AIs use the same APIs, and invalid graphs receive structured 422 responses before queueing.
Written by the indexing model from the issue text.
Description
背景
墨者(MoZhe)场景运行时新增第四种形态 workflow:图在墨者侧编辑,执行走 plaita console + plaita-go worker。当前墨者只保存 flow_id/version/definition,没有可嵌入的图编辑器;用户只能在 plaita console 外部编辑。
需求
-
可嵌入编辑器
- 提供 iframe 路由,例如
/embed/graph-editor?tenant=...&readonly=false; postMessage协议:editor -> host: graph.changed { graph }editor -> host: graph.validated { valid, errors }host -> editor: graph.load { graph }host -> editor: graph.saveRequested
- 鉴权使用短期 embed token,不暴露 admin key。
- v1 可先 iframe,后续再抽
@plaita/graph-editornpm 包。
- 提供 iframe 路由,例如
-
graph generate / validate API
POST /api/graphs/generate:输入业务 brief + capability manifest + tenant,返回合法 graph;POST /api/graphs/validate:返回结构化 errors(节点/字段/连线/能力);- 让宿主 AI 调同一套生成/校验,不复制节点语义。
-
能力清单
- 宿主需要读取当前 runtime pool 的 live capability manifest;
- 与 #300 的
metadata.capability_manifest对齐。
验收
- 墨者 Studio 能嵌入编辑器,编辑后回传 graph;
- 编辑器 AI 与宿主 AI 调同一个 generate/validate API;
- 非法 graph 在保存/发布前返回结构化 422,不进入队列。
备注
这是墨者 Wave 2 的剩余跨仓项;执行链路(console start + Go worker + Multica bridge)已在测试环境打通。
- Dominant language
- Python
- Stars
- 0
- Forks
- 1
- Avg merge
- 2h 33m
- Merged PRs (30d)
- 9
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from jeffkit/plaita
-
Difficulty 5/5 Over a week Newbie friendliness 25/100
jeffkit/plaita#331 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 5/5 Over a week Newbie friendliness 35/100
jeffkit/plaita#330 · 1 comment ·
Maintainers usually reply within 1 day
-
keeper-ignore
Difficulty 5/5 Over a week Newbie friendliness 22/100
jeffkit/plaita#329 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 5/5 Over a week Newbie friendliness 25/100
Maintainers usually reply within 1 day
-
Difficulty 5/5 Over a week Newbie friendliness 35/100
jeffkit/plaita#327 · 2 comments ·
Maintainers usually reply within 1 day
Similar issues
-
good first issue infrastructure
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
kuznia-rdzeni/coreblocks#1135 ·
-
good first issue server
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
Maintainers usually reply within 1 day
-
documentation priority: high
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
a-lex-s/mealie-telegram-bot#54 ·
Maintainers usually reply within 1 day
-
type/test
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
SaltedTan/virgil-language-server#218 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 83/100
btclib-org/btclib-wallet#541 ·
Maintainers usually reply within 1 day