umtri-mcp 1.3.1 → 1.3.3
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 +3 -1
- package/core/tools.js +6 -4
- package/package.json +1 -1
package/core/resources/plan.md
CHANGED
|
@@ -35,7 +35,9 @@ back onto the nodes. The human commits when satisfied.
|
|
|
35
35
|
unless the node already has `metadata.implements`** (step 3), so attach the
|
|
36
36
|
source paths first. The human can also commit from the UI. If you are unsure
|
|
37
37
|
the realization is complete, leave it as plan and ask the human rather than
|
|
38
|
-
committing.
|
|
38
|
+
committing. **Commit from the top down:** a node whose parent is still a plan
|
|
39
|
+
is rejected — commit the parent first. (A committed node under a plan parent
|
|
40
|
+
would vanish from the tree whenever Plan mode is off.)
|
|
39
41
|
6. **Record the commit (CI/CD form record).** When the code lands in git, the
|
|
40
42
|
commit is recorded onto the nodes it touched via `record_commit`
|
|
41
43
|
(sha + changed files → appended to each matching node's `metadata.commits`).
|
package/core/tools.js
CHANGED
|
@@ -814,7 +814,7 @@ export function registerTools(server, { api }) {
|
|
|
814
814
|
'commit_plan',
|
|
815
815
|
{
|
|
816
816
|
title: 'Commit a realized plan node',
|
|
817
|
-
description: 'Promotes a plan node (metadata.plan=true) to the real tree by clearing the plan flag. VERIFICATION GATE: the node must already carry metadata.implements (the source path(s) you wrote) — without it the commit is rejected, because an uncommitted plan node with no implements is not considered realized. Call this only after you have actually written the code and recorded implements via update_node. See umtri://rules/plan.',
|
|
817
|
+
description: 'Promotes a plan node (metadata.plan=true) to the real tree by clearing the plan flag. VERIFICATION GATE: the node must already carry metadata.implements (the source path(s) you wrote) — without it the commit is rejected, because an uncommitted plan node with no implements is not considered realized. Call this only after you have actually written the code and recorded implements via update_node. Commit from the top down: a node whose parent is still a plan is rejected — commit the parent first. See umtri://rules/plan.',
|
|
818
818
|
inputSchema: z.object({
|
|
819
819
|
slug: z.string().min(1).describe('Ground slug.'),
|
|
820
820
|
id: z.string().min(1).describe('Plan node id to commit.'),
|
|
@@ -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