umtri-mcp 1.3.0 → 1.3.2
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.
- package/core/resources/plan.md +4 -0
- package/core/tools.js +6 -4
- package/package.json +1 -1
package/core/resources/plan.md
CHANGED
|
@@ -26,6 +26,10 @@ back onto the nodes. The human commits when satisfied.
|
|
|
26
26
|
didn't draw (child leaves/veins, an extra twig), create them with
|
|
27
27
|
`metadata.plan = true` too — everything you add stays reviewable until the
|
|
28
28
|
human commits. Do not create finalized (non-plan) nodes during realization.
|
|
29
|
+
**Except a trunk:** trunks are the frame of the tree and are never plan —
|
|
30
|
+
`create_node`/`update_node` reject a trunk with `metadata.plan`. If the brief
|
|
31
|
+
needs a new trunk (a new app or service), ask the human to add it; then
|
|
32
|
+
draw the plan as limbs under it.
|
|
29
33
|
5. **Commit when realized.** Promote a plan node to the real tree with
|
|
30
34
|
`commit_plan` — it clears `metadata.plan`. The tool **rejects the commit
|
|
31
35
|
unless the node already has `metadata.implements`** (step 3), so attach the
|
package/core/tools.js
CHANGED
|
@@ -660,7 +660,7 @@ export function registerTools(server, { api }) {
|
|
|
660
660
|
'The tool validates against protocol policies. Hierarchy violations are rejected. Soft issues (reserved-domain labels, leaf↔vein heuristic, trunk naming) come back as warnings in the response — reconsider before continuing if warnings appear.',
|
|
661
661
|
'After creating a leaf/vein, consider its connections: if it calls/feeds another node add an api (create_api), if it depends on/is built on another add an edge (create_edge). The response carries a connectionCheck reminder. See umtri://rules/system-structure (Connections).',
|
|
662
662
|
'Do not open a new season just because none fits — attach to the now-season, or ask the user. create_season needs their confirmation (umtri://rules/seasons).',
|
|
663
|
-
'When realizing a human-drawn plan brief, any detail nodes you add should carry metadata.plan=true and the realized node needs metadata.implements — see umtri://rules/plan.',
|
|
663
|
+
'When realizing a human-drawn plan brief, any detail nodes you add should carry metadata.plan=true and the realized node needs metadata.implements — see umtri://rules/plan. A trunk is never plan: metadata.plan on a trunk is rejected.',
|
|
664
664
|
].join(' '),
|
|
665
665
|
inputSchema: z.object({
|
|
666
666
|
slug: z.string().min(1).describe('Ground slug.'),
|
|
@@ -857,7 +857,10 @@ export function registerTools(server, { api }) {
|
|
|
857
857
|
slug: z.string().min(1).describe('Ground slug.'),
|
|
858
858
|
source: z.string().min(1).describe('Source node id.'),
|
|
859
859
|
target: z.string().min(1).describe('Target node id.'),
|
|
860
|
-
|
|
860
|
+
// 서버(store.createEdge)가 type을 필수로 요구한다. 예전엔 optional + "Backend defaults"라고
|
|
861
|
+
// 안내해 생략한 에이전트가 매번 한 번씩 거부당했다. 그라운드마다 edge_types가 있어 enum으로
|
|
862
|
+
// 못 박지 않고 필수 문자열로 둔다.
|
|
863
|
+
type: z.string().min(1).describe('Edge type — required. "dependency" (source is built on / needs target) or "data_flow" (data moves source → target) — use one of the ground\'s edgeTypes.'),
|
|
861
864
|
label: z.string().optional(),
|
|
862
865
|
metadata: z.record(z.any()).optional(),
|
|
863
866
|
}),
|
|
@@ -867,8 +870,7 @@ export function registerTools(server, { api }) {
|
|
|
867
870
|
const { ok, rejectReason } = validateEdge({ sourceId: source, targetId: target });
|
|
868
871
|
if (!ok) throw new Error(`Rejected by protocol: ${rejectReason}`);
|
|
869
872
|
|
|
870
|
-
const body = { source, target };
|
|
871
|
-
if (type !== undefined) body.type = type;
|
|
873
|
+
const body = { source, target, type };
|
|
872
874
|
if (label !== undefined) body.label = label;
|
|
873
875
|
if (metadata !== undefined) body.metadata = metadata;
|
|
874
876
|
|
package/package.json
CHANGED