nomoreide 0.1.44 → 0.1.46
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/dist/cli/git.js +4 -1
- package/dist/cli/git.js.map +1 -1
- package/dist/core/agent-runtime.d.ts +15 -0
- package/dist/core/agent-runtime.js +39 -3
- package/dist/core/agent-runtime.js.map +1 -1
- package/dist/core/config-store.d.ts +7 -0
- package/dist/core/config-store.js +45 -0
- package/dist/core/config-store.js.map +1 -1
- package/dist/core/git-actions.d.ts +30 -0
- package/dist/core/git-actions.js +58 -0
- package/dist/core/git-actions.js.map +1 -0
- package/dist/core/git-manager.d.ts +13 -0
- package/dist/core/git-manager.js +43 -1
- package/dist/core/git-manager.js.map +1 -1
- package/dist/core/github-manager.d.ts +149 -0
- package/dist/core/github-manager.js +181 -0
- package/dist/core/github-manager.js.map +1 -0
- package/dist/core/repo-onboard.d.ts +2 -2
- package/dist/core/types.d.ts +8 -0
- package/dist/core/workflows.d.ts +204 -0
- package/dist/core/workflows.js +146 -0
- package/dist/core/workflows.js.map +1 -0
- package/dist/mcp/tools/context.d.ts +3 -0
- package/dist/mcp/tools/context.js +5 -0
- package/dist/mcp/tools/context.js.map +1 -1
- package/dist/mcp/tools/git.d.ts +1 -1
- package/dist/mcp/tools/git.js +10 -1
- package/dist/mcp/tools/git.js.map +1 -1
- package/dist/mcp/tools/github.d.ts +4 -0
- package/dist/mcp/tools/github.js +206 -0
- package/dist/mcp/tools/github.js.map +1 -0
- package/dist/mcp/tools/index.d.ts +1 -1
- package/dist/mcp/tools/index.js +3 -0
- package/dist/mcp/tools/index.js.map +1 -1
- package/dist/web/client/assets/{code-editor-NLVWCtZl.js → code-editor-o1tS7fpw.js} +1 -1
- package/dist/web/client/assets/index-CFZyk7FD.js +201 -0
- package/dist/web/client/assets/index-Dcqu3Z0L.css +1 -0
- package/dist/web/client/index.html +2 -2
- package/dist/web/routes/agent-chat-routes.js +3 -0
- package/dist/web/routes/agent-chat-routes.js.map +1 -1
- package/dist/web/routes/git-routes.js +60 -0
- package/dist/web/routes/git-routes.js.map +1 -1
- package/dist/web/routes/github-context.d.ts +9 -0
- package/dist/web/routes/github-context.js +31 -0
- package/dist/web/routes/github-context.js.map +1 -0
- package/dist/web/routes/github-routes.d.ts +2 -0
- package/dist/web/routes/github-routes.js +342 -0
- package/dist/web/routes/github-routes.js.map +1 -0
- package/dist/web/routes/index.js +4 -0
- package/dist/web/routes/index.js.map +1 -1
- package/dist/web/routes/workflow-routes.d.ts +8 -0
- package/dist/web/routes/workflow-routes.js +45 -0
- package/dist/web/routes/workflow-routes.js.map +1 -0
- package/package.json +1 -1
- package/dist/web/client/assets/index-B-5D3C0G.js +0 -197
- package/dist/web/client/assets/index-g1k-tjDx.css +0 -1
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
/**
|
|
3
|
+
* User-owned git/GitHub workflows — the AI-native answer to fixed IDE buttons.
|
|
4
|
+
*
|
|
5
|
+
* A workflow is an ordered list of steps the runner walks one at a time. A step
|
|
6
|
+
* is one of three kinds:
|
|
7
|
+
*
|
|
8
|
+
* - **action** — deterministic, no inputs needed (e.g. `push`). Runs via the
|
|
9
|
+
* REST API and its result tells us pass/fail. Predictable, no tokens spent.
|
|
10
|
+
* - **agent** — a scoped natural-language task handed to the dock agent, which
|
|
11
|
+
* does the fuzzy work (review a diff, group commits, draft + file a PR/issue)
|
|
12
|
+
* using its own git/GitHub tools. Optionally `verify`-d against real git state.
|
|
13
|
+
* - **gate** — a hard stop that waits for the human (Approve / Skip / Stop).
|
|
14
|
+
*
|
|
15
|
+
* The runner itself lives client-side (agent steps execute through the dock
|
|
16
|
+
* conversation); this module owns the *shape* and the built-in templates, and is
|
|
17
|
+
* persisted through {@link ConfigStore} so a user can fork/edit them later.
|
|
18
|
+
*/
|
|
19
|
+
export const workflowStepSchema = z.discriminatedUnion("kind", [
|
|
20
|
+
z.object({
|
|
21
|
+
kind: z.literal("action"),
|
|
22
|
+
id: z.string().min(1),
|
|
23
|
+
title: z.string().min(1),
|
|
24
|
+
/**
|
|
25
|
+
* Deterministic op with no inputs — runs straight through the REST API with
|
|
26
|
+
* zero agent tokens. `commit` stages everything and commits with a generated
|
|
27
|
+
* message (no diff reading, no quality analysis); `push` pushes the branch.
|
|
28
|
+
*/
|
|
29
|
+
op: z.enum(["push", "commit"]),
|
|
30
|
+
}),
|
|
31
|
+
z.object({
|
|
32
|
+
kind: z.literal("agent"),
|
|
33
|
+
id: z.string().min(1),
|
|
34
|
+
title: z.string().min(1),
|
|
35
|
+
/** The instruction handed to the dock agent. */
|
|
36
|
+
prompt: z.string().min(1),
|
|
37
|
+
/**
|
|
38
|
+
* Real-state check run after the agent's turn before advancing:
|
|
39
|
+
* - `committed` — the working tree is clean (changes were committed).
|
|
40
|
+
* - `pushed` — the branch is no longer ahead of its upstream.
|
|
41
|
+
*/
|
|
42
|
+
verify: z.enum(["committed", "pushed"]).optional(),
|
|
43
|
+
}),
|
|
44
|
+
z.object({
|
|
45
|
+
kind: z.literal("gate"),
|
|
46
|
+
id: z.string().min(1),
|
|
47
|
+
title: z.string().min(1),
|
|
48
|
+
/** Shown at the pause so the user knows what they're approving. */
|
|
49
|
+
message: z.string().min(1),
|
|
50
|
+
}),
|
|
51
|
+
]);
|
|
52
|
+
export const workflowSchema = z.object({
|
|
53
|
+
id: z.string().min(1),
|
|
54
|
+
name: z.string().min(1),
|
|
55
|
+
description: z.string().optional(),
|
|
56
|
+
/** True for the shipped templates; false/absent for user-saved workflows. */
|
|
57
|
+
builtin: z.boolean().optional(),
|
|
58
|
+
steps: z.array(workflowStepSchema).min(1),
|
|
59
|
+
});
|
|
60
|
+
/**
|
|
61
|
+
* One lightweight AI pass that writes a real commit message and commits — the
|
|
62
|
+
* balance the user wanted: a thought-through message like the `commit-push`
|
|
63
|
+
* skill, but a single pass (no review report, no splitting into many commits).
|
|
64
|
+
* Shared by the commit-bearing templates.
|
|
65
|
+
*/
|
|
66
|
+
const COMMIT_STEP = {
|
|
67
|
+
kind: "agent",
|
|
68
|
+
id: "commit",
|
|
69
|
+
title: "Commit all changes",
|
|
70
|
+
prompt: "Stage my changes and make ONE commit, in a single pass. Steps: stage the changed files with `nomoreide_git_stage` (skip anything that looks like a secret, e.g. `.env`); glance at the staged diff once with `nomoreide_git_staged_diff`; then commit with `nomoreide_git_commit` using a conventional-commit message — a `<type>: concise title` line (feat/fix/refactor/chore/docs/test) plus a few short bullets of what changed. One commit only: do NOT split into multiple commits and do NOT write a separate review or analysis. Reply with just the commit message you used.",
|
|
71
|
+
verify: "committed",
|
|
72
|
+
};
|
|
73
|
+
/**
|
|
74
|
+
* The Phase-1 starter set. These are plain data (not hardcoded UI), so the same
|
|
75
|
+
* structure a user authors later can be forked from one of these.
|
|
76
|
+
*/
|
|
77
|
+
export const BUILTIN_WORKFLOWS = [
|
|
78
|
+
{
|
|
79
|
+
id: "commit-push",
|
|
80
|
+
name: "Commit & push",
|
|
81
|
+
description: "One quick AI pass writes a good commit message and commits, then pushes. No heavy review or multi-commit splitting.",
|
|
82
|
+
builtin: true,
|
|
83
|
+
steps: [
|
|
84
|
+
COMMIT_STEP,
|
|
85
|
+
{ kind: "gate", id: "gate-push", title: "Approve push", message: "Push to the remote?" },
|
|
86
|
+
{ kind: "action", id: "push", title: "Push", op: "push" },
|
|
87
|
+
],
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
id: "ship-it",
|
|
91
|
+
name: "Ship it",
|
|
92
|
+
description: "Commit (one AI pass), push, then a quick AI turn each to open and squash-merge the PR.",
|
|
93
|
+
builtin: true,
|
|
94
|
+
steps: [
|
|
95
|
+
COMMIT_STEP,
|
|
96
|
+
{ kind: "gate", id: "gate-push", title: "Approve push", message: "Push and open a PR?" },
|
|
97
|
+
{ kind: "action", id: "push", title: "Push", op: "push" },
|
|
98
|
+
{
|
|
99
|
+
kind: "agent",
|
|
100
|
+
id: "open-pr",
|
|
101
|
+
title: "Open a PR",
|
|
102
|
+
prompt: "Open a PR for the current branch into `main` using the `nomoreide_github_create_pr` tool. Title = the latest commit subject; for the body, list the commits via `nomoreide_git_log`. Do NOT read file diffs. Reply with just the PR number and URL.",
|
|
103
|
+
},
|
|
104
|
+
{ kind: "gate", id: "gate-merge", title: "Approve merge", message: "Squash-merge the pull request?" },
|
|
105
|
+
{
|
|
106
|
+
kind: "agent",
|
|
107
|
+
id: "merge",
|
|
108
|
+
title: "Squash-merge",
|
|
109
|
+
prompt: "Squash-merge the PR you just opened with the `nomoreide_github_merge_pr` tool. Don't analyze anything — just merge. Reply with one line.",
|
|
110
|
+
},
|
|
111
|
+
],
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
id: "file-issue",
|
|
115
|
+
name: "File an issue from these changes",
|
|
116
|
+
description: "One quick AI turn drafts a short issue from your file list, then files it on approval.",
|
|
117
|
+
builtin: true,
|
|
118
|
+
steps: [
|
|
119
|
+
{
|
|
120
|
+
kind: "agent",
|
|
121
|
+
id: "draft",
|
|
122
|
+
title: "Draft a short issue",
|
|
123
|
+
prompt: "Draft a SHORT GitHub issue (a title + a 2–3 line body) from the list of changed files only — call `nomoreide_git_status` for the file list. Do NOT read file diffs or analyze the changes. Show me the draft; don't file it.",
|
|
124
|
+
},
|
|
125
|
+
{ kind: "gate", id: "gate-file", title: "Approve filing", message: "File this issue on GitHub?" },
|
|
126
|
+
{
|
|
127
|
+
kind: "agent",
|
|
128
|
+
id: "create",
|
|
129
|
+
title: "File the issue",
|
|
130
|
+
prompt: "Create the GitHub issue you just drafted using the `nomoreide_github_create_issue` tool. Reply with just the issue number and URL.",
|
|
131
|
+
},
|
|
132
|
+
],
|
|
133
|
+
},
|
|
134
|
+
];
|
|
135
|
+
/**
|
|
136
|
+
* Merge the built-in templates with the user's saved workflows. A stored
|
|
137
|
+
* workflow whose id matches a built-in *replaces* it (that's a fork/edit);
|
|
138
|
+
* everything else is appended. Built-ins come first.
|
|
139
|
+
*/
|
|
140
|
+
export function listWorkflows(stored) {
|
|
141
|
+
const overrides = new Map(stored.map((workflow) => [workflow.id, workflow]));
|
|
142
|
+
const merged = BUILTIN_WORKFLOWS.map((builtin) => overrides.get(builtin.id) ?? builtin);
|
|
143
|
+
const extras = stored.filter((workflow) => !BUILTIN_WORKFLOWS.some((b) => b.id === workflow.id));
|
|
144
|
+
return [...merged, ...extras];
|
|
145
|
+
}
|
|
146
|
+
//# sourceMappingURL=workflows.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflows.js","sourceRoot":"","sources":["../../src/core/workflows.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import type { FastMCP } from "fastmcp";
|
|
|
2
2
|
import type { ConfigStore } from "../../core/config-store.js";
|
|
3
3
|
import type { DbPeek } from "../../core/db-peek.js";
|
|
4
4
|
import type { ErrorInbox } from "../../core/error-inbox.js";
|
|
5
|
+
import { GitActions } from "../../core/git-actions.js";
|
|
5
6
|
import { GitManager } from "../../core/git-manager.js";
|
|
6
7
|
import type { LogStore } from "../../core/log-store.js";
|
|
7
8
|
import type { ProcessManager } from "../../core/process-manager.js";
|
|
@@ -21,6 +22,8 @@ export interface ToolContext {
|
|
|
21
22
|
/** Each domain registers its tools onto the (optionally recording) server. */
|
|
22
23
|
export type RegisterTools = (server: FastMCP, ctx: ToolContext) => void;
|
|
23
24
|
export declare function git(cwd?: string): GitManager;
|
|
25
|
+
/** Write-capable Git ops (push) — kept distinct from the read-safe {@link git}. */
|
|
26
|
+
export declare function gitActions(cwd?: string): GitActions;
|
|
24
27
|
export declare function stringify(value: unknown): string;
|
|
25
28
|
/**
|
|
26
29
|
* Wrap a FastMCP server so every `addTool` execute is timed and recorded in
|
|
@@ -1,8 +1,13 @@
|
|
|
1
|
+
import { GitActions } from "../../core/git-actions.js";
|
|
1
2
|
import { GitManager } from "../../core/git-manager.js";
|
|
2
3
|
import { previewArgs } from "../../core/tool-call-store.js";
|
|
3
4
|
export function git(cwd) {
|
|
4
5
|
return new GitManager(cwd ?? process.cwd());
|
|
5
6
|
}
|
|
7
|
+
/** Write-capable Git ops (push) — kept distinct from the read-safe {@link git}. */
|
|
8
|
+
export function gitActions(cwd) {
|
|
9
|
+
return new GitActions(cwd ?? process.cwd());
|
|
10
|
+
}
|
|
6
11
|
export function stringify(value) {
|
|
7
12
|
return JSON.stringify(value, null, 2);
|
|
8
13
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/mcp/tools/context.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAIvD,OAAO,EAAE,WAAW,EAAsB,MAAM,+BAA+B,CAAC;AAiBhF,MAAM,UAAU,GAAG,CAAC,GAAY;IAC9B,OAAO,IAAI,UAAU,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAAc;IACtC,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACxC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CACpC,MAAe,EACf,KAAoB;IAEpB,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,CAAC,UAA6C,EAAE,EAAE;QAChE,MAAM,eAAe,GAAG,UAAU,CAAC,OAAO,CAAC;QAC3C,MAAM,mBAAmB,GAAG;YAC1B,GAAG,UAAU;YACb,OAAO,EAAE,KAAK,EAAE,IAAa,EAAE,OAAgB,EAAE,EAAE;gBACjD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBACzB,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;gBAChD,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,MAAO,eAGA,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;oBACtC,KAAK,CAAC,MAAM,CAAC;wBACX,IAAI,EAAE,UAAU,CAAC,IAAI;wBACrB,SAAS;wBACT,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;wBAC9B,MAAM,EAAE,IAAI;wBACZ,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC;qBACxB,CAAC,CAAC;oBACH,OAAO,MAA4C,CAAC;gBACtD,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,KAAK,CAAC,MAAM,CAAC;wBACX,IAAI,EAAE,UAAU,CAAC,IAAI;wBACrB,SAAS;wBACT,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;wBAC9B,MAAM,EAAE,OAAO;wBACf,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC;wBACvB,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;qBAC9D,CAAC,CAAC;oBACH,MAAM,KAAK,CAAC;gBACd,CAAC;YACH,CAAC;SACmC,CAAC;QACvC,OAAO,WAAW,CAAC,mBAAmB,CAAC,CAAC;IAC1C,CAAC,CAAC;IACF,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;QACvB,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ;YACxB,IAAI,IAAI,KAAK,SAAS;gBAAE,OAAO,OAAO,CAAC;YACvC,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC7C,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/mcp/tools/context.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAIvD,OAAO,EAAE,WAAW,EAAsB,MAAM,+BAA+B,CAAC;AAiBhF,MAAM,UAAU,GAAG,CAAC,GAAY;IAC9B,OAAO,IAAI,UAAU,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;AAC9C,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,UAAU,CAAC,GAAY;IACrC,OAAO,IAAI,UAAU,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAAc;IACtC,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACxC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CACpC,MAAe,EACf,KAAoB;IAEpB,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,CAAC,UAA6C,EAAE,EAAE;QAChE,MAAM,eAAe,GAAG,UAAU,CAAC,OAAO,CAAC;QAC3C,MAAM,mBAAmB,GAAG;YAC1B,GAAG,UAAU;YACb,OAAO,EAAE,KAAK,EAAE,IAAa,EAAE,OAAgB,EAAE,EAAE;gBACjD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBACzB,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;gBAChD,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,MAAO,eAGA,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;oBACtC,KAAK,CAAC,MAAM,CAAC;wBACX,IAAI,EAAE,UAAU,CAAC,IAAI;wBACrB,SAAS;wBACT,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;wBAC9B,MAAM,EAAE,IAAI;wBACZ,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC;qBACxB,CAAC,CAAC;oBACH,OAAO,MAA4C,CAAC;gBACtD,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,KAAK,CAAC,MAAM,CAAC;wBACX,IAAI,EAAE,UAAU,CAAC,IAAI;wBACrB,SAAS;wBACT,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;wBAC9B,MAAM,EAAE,OAAO;wBACf,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC;wBACvB,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;qBAC9D,CAAC,CAAC;oBACH,MAAM,KAAK,CAAC;gBACd,CAAC;YACH,CAAC;SACmC,CAAC;QACvC,OAAO,WAAW,CAAC,mBAAmB,CAAC,CAAC;IAC1C,CAAC,CAAC;IACF,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;QACvB,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ;YACxB,IAAI,IAAI,KAAK,SAAS;gBAAE,OAAO,OAAO,CAAC;YACvC,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC7C,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
|
package/dist/mcp/tools/git.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { FastMCP } from "fastmcp";
|
|
2
2
|
import { type ToolContext } from "./context.js";
|
|
3
|
-
export declare const GIT_TOOL_NAMES: readonly ["nomoreide_git_status", "nomoreide_git_branches", "nomoreide_git_switch_branch", "nomoreide_git_create_branch", "nomoreide_git_fetch", "nomoreide_git_diff", "nomoreide_git_staged_diff", "nomoreide_git_log", "nomoreide_git_stage", "nomoreide_git_unstage", "nomoreide_git_commit", "nomoreide_git_register_repository", "nomoreide_git_select_repository"];
|
|
3
|
+
export declare const GIT_TOOL_NAMES: readonly ["nomoreide_git_status", "nomoreide_git_branches", "nomoreide_git_switch_branch", "nomoreide_git_create_branch", "nomoreide_git_fetch", "nomoreide_git_diff", "nomoreide_git_staged_diff", "nomoreide_git_log", "nomoreide_git_stage", "nomoreide_git_unstage", "nomoreide_git_commit", "nomoreide_git_push", "nomoreide_git_register_repository", "nomoreide_git_select_repository"];
|
|
4
4
|
export declare function registerGitTools(server: FastMCP, ctx: ToolContext): void;
|
package/dist/mcp/tools/git.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
import { git, stringify } from "./context.js";
|
|
2
|
+
import { git, gitActions, stringify } from "./context.js";
|
|
3
3
|
export const GIT_TOOL_NAMES = [
|
|
4
4
|
"nomoreide_git_status",
|
|
5
5
|
"nomoreide_git_branches",
|
|
@@ -12,6 +12,7 @@ export const GIT_TOOL_NAMES = [
|
|
|
12
12
|
"nomoreide_git_stage",
|
|
13
13
|
"nomoreide_git_unstage",
|
|
14
14
|
"nomoreide_git_commit",
|
|
15
|
+
"nomoreide_git_push",
|
|
15
16
|
"nomoreide_git_register_repository",
|
|
16
17
|
"nomoreide_git_select_repository",
|
|
17
18
|
];
|
|
@@ -99,6 +100,14 @@ export function registerGitTools(server, ctx) {
|
|
|
99
100
|
}),
|
|
100
101
|
execute: async ({ cwd, message }) => await git(cwd).commit(message),
|
|
101
102
|
});
|
|
103
|
+
server.addTool({
|
|
104
|
+
name: "nomoreide_git_push",
|
|
105
|
+
description: "Push the current branch to its remote (sets upstream on first push). Write op — does not force-push.",
|
|
106
|
+
parameters: gitCwdSchema.extend({
|
|
107
|
+
remote: z.string().min(1).optional().describe("Remote name (default origin)."),
|
|
108
|
+
}),
|
|
109
|
+
execute: async ({ cwd, remote }) => stringify(await gitActions(cwd).push({ remote })),
|
|
110
|
+
});
|
|
102
111
|
server.addTool({
|
|
103
112
|
name: "nomoreide_git_register_repository",
|
|
104
113
|
description: "Register a named Git repository folder for NoMoreIDE.",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../../src/mcp/tools/git.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,GAAG,EAAE,SAAS,EAAoB,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../../src/mcp/tools/git.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { FastMCP } from "fastmcp";
|
|
2
|
+
import { type ToolContext } from "./context.js";
|
|
3
|
+
export declare const GITHUB_TOOL_NAMES: readonly ["nomoreide_github_set_token", "nomoreide_github_list_prs", "nomoreide_github_get_pr", "nomoreide_github_get_pr_diff", "nomoreide_github_create_pr", "nomoreide_github_merge_pr", "nomoreide_github_list_issues", "nomoreide_github_get_issue", "nomoreide_github_list_issue_comments", "nomoreide_github_add_issue_comment", "nomoreide_github_create_issue", "nomoreide_github_get_commit_ci", "nomoreide_github_list_workflow_runs"];
|
|
4
|
+
export declare function registerGithubTools(server: FastMCP, ctx: ToolContext): void;
|
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { GitManager } from "../../core/git-manager.js";
|
|
3
|
+
import { GitHubManager, } from "../../core/github-manager.js";
|
|
4
|
+
import { stringify } from "./context.js";
|
|
5
|
+
export const GITHUB_TOOL_NAMES = [
|
|
6
|
+
"nomoreide_github_set_token",
|
|
7
|
+
"nomoreide_github_list_prs",
|
|
8
|
+
"nomoreide_github_get_pr",
|
|
9
|
+
"nomoreide_github_get_pr_diff",
|
|
10
|
+
"nomoreide_github_create_pr",
|
|
11
|
+
"nomoreide_github_merge_pr",
|
|
12
|
+
"nomoreide_github_list_issues",
|
|
13
|
+
"nomoreide_github_get_issue",
|
|
14
|
+
"nomoreide_github_list_issue_comments",
|
|
15
|
+
"nomoreide_github_add_issue_comment",
|
|
16
|
+
"nomoreide_github_create_issue",
|
|
17
|
+
"nomoreide_github_get_commit_ci",
|
|
18
|
+
"nomoreide_github_list_workflow_runs",
|
|
19
|
+
];
|
|
20
|
+
const cwdSchema = z.object({
|
|
21
|
+
cwd: z.string().min(1).optional().describe("Git repository directory. Defaults to selected repository."),
|
|
22
|
+
});
|
|
23
|
+
async function buildManager(ctx, cwd) {
|
|
24
|
+
const config = await ctx.configStore.load();
|
|
25
|
+
const token = ctx.configStore.getGithubToken(config);
|
|
26
|
+
if (!token) {
|
|
27
|
+
throw new Error("No GitHub token configured. Use nomoreide_github_set_token first.");
|
|
28
|
+
}
|
|
29
|
+
const gitCwd = cwd ?? process.cwd();
|
|
30
|
+
const remoteUrl = await new GitManager(gitCwd).remoteUrl("origin");
|
|
31
|
+
if (!remoteUrl) {
|
|
32
|
+
throw new Error("No git remote 'origin' found in the repository.");
|
|
33
|
+
}
|
|
34
|
+
const parsed = GitHubManager.parseRemoteUrl(remoteUrl);
|
|
35
|
+
if (!parsed) {
|
|
36
|
+
throw new Error(`Could not parse GitHub remote URL: ${remoteUrl}`);
|
|
37
|
+
}
|
|
38
|
+
return {
|
|
39
|
+
manager: new GitHubManager(token, parsed.owner, parsed.repo),
|
|
40
|
+
owner: parsed.owner,
|
|
41
|
+
repo: parsed.repo,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
export function registerGithubTools(server, ctx) {
|
|
45
|
+
const { configStore } = ctx;
|
|
46
|
+
server.addTool({
|
|
47
|
+
name: "nomoreide_github_set_token",
|
|
48
|
+
description: "Store a GitHub Personal Access Token (PAT) for API access.",
|
|
49
|
+
parameters: z.object({
|
|
50
|
+
token: z.string().min(1).describe("GitHub PAT (ghp_...)."),
|
|
51
|
+
host: z.string().min(1).default("github.com").describe("GitHub host (default: github.com)."),
|
|
52
|
+
}),
|
|
53
|
+
execute: async ({ token, host }) => {
|
|
54
|
+
await configStore.setGithubToken(host, token);
|
|
55
|
+
return `GitHub token stored for ${host}.`;
|
|
56
|
+
},
|
|
57
|
+
});
|
|
58
|
+
server.addTool({
|
|
59
|
+
name: "nomoreide_github_list_prs",
|
|
60
|
+
description: "List pull requests for the active GitHub repository.",
|
|
61
|
+
parameters: cwdSchema.extend({
|
|
62
|
+
state: z.enum(["open", "closed", "all"]).default("open").describe("PR state filter."),
|
|
63
|
+
page: z.number().int().positive().default(1),
|
|
64
|
+
}),
|
|
65
|
+
execute: async ({ cwd, state, page }) => {
|
|
66
|
+
const { manager } = await buildManager(ctx, cwd);
|
|
67
|
+
return stringify(await manager.listPRs(state, page));
|
|
68
|
+
},
|
|
69
|
+
});
|
|
70
|
+
server.addTool({
|
|
71
|
+
name: "nomoreide_github_get_pr",
|
|
72
|
+
description: "Get details for a pull request including review status.",
|
|
73
|
+
parameters: cwdSchema.extend({
|
|
74
|
+
number: z.number().int().positive().describe("Pull request number."),
|
|
75
|
+
}),
|
|
76
|
+
execute: async ({ cwd, number }) => {
|
|
77
|
+
const { manager } = await buildManager(ctx, cwd);
|
|
78
|
+
return stringify(await manager.getPR(number));
|
|
79
|
+
},
|
|
80
|
+
});
|
|
81
|
+
server.addTool({
|
|
82
|
+
name: "nomoreide_github_get_pr_diff",
|
|
83
|
+
description: "Get the unified diff for a pull request.",
|
|
84
|
+
parameters: cwdSchema.extend({
|
|
85
|
+
number: z.number().int().positive().describe("Pull request number."),
|
|
86
|
+
}),
|
|
87
|
+
execute: async ({ cwd, number }) => {
|
|
88
|
+
const { manager } = await buildManager(ctx, cwd);
|
|
89
|
+
return manager.getPRDiff(number);
|
|
90
|
+
},
|
|
91
|
+
});
|
|
92
|
+
server.addTool({
|
|
93
|
+
name: "nomoreide_github_create_pr",
|
|
94
|
+
description: "Create a pull request on GitHub.",
|
|
95
|
+
parameters: cwdSchema.extend({
|
|
96
|
+
title: z.string().min(1).describe("PR title."),
|
|
97
|
+
body: z.string().optional().describe("PR description (markdown)."),
|
|
98
|
+
head: z.string().min(1).describe("Source branch name."),
|
|
99
|
+
base: z.string().min(1).describe("Target branch (e.g. main)."),
|
|
100
|
+
draft: z.boolean().default(false).describe("Create as draft PR."),
|
|
101
|
+
}),
|
|
102
|
+
execute: async ({ cwd, title, body, head, base, draft }) => {
|
|
103
|
+
const { manager } = await buildManager(ctx, cwd);
|
|
104
|
+
const pr = await manager.createPR({ title, body, head, base, draft });
|
|
105
|
+
return `Created PR #${pr.number}: ${pr.html_url}`;
|
|
106
|
+
},
|
|
107
|
+
});
|
|
108
|
+
server.addTool({
|
|
109
|
+
name: "nomoreide_github_merge_pr",
|
|
110
|
+
description: "Merge a pull request (squash by default). Fails if GitHub reports the PR is not mergeable (conflicts, failing required checks, branch protection).",
|
|
111
|
+
parameters: cwdSchema.extend({
|
|
112
|
+
number: z.number().int().positive().describe("Pull request number."),
|
|
113
|
+
method: z.enum(["merge", "squash", "rebase"]).default("squash").describe("Merge method."),
|
|
114
|
+
commitTitle: z.string().optional().describe("Override the merge commit title."),
|
|
115
|
+
commitMessage: z.string().optional().describe("Override the merge commit body."),
|
|
116
|
+
}),
|
|
117
|
+
execute: async ({ cwd, number, method, commitTitle, commitMessage }) => {
|
|
118
|
+
const { manager } = await buildManager(ctx, cwd);
|
|
119
|
+
return stringify(await manager.mergePR(number, { method, commitTitle, commitMessage }));
|
|
120
|
+
},
|
|
121
|
+
});
|
|
122
|
+
server.addTool({
|
|
123
|
+
name: "nomoreide_github_list_issues",
|
|
124
|
+
description: "List issues for the active GitHub repository.",
|
|
125
|
+
parameters: cwdSchema.extend({
|
|
126
|
+
state: z.enum(["open", "closed", "all"]).default("open").describe("Issue state filter."),
|
|
127
|
+
page: z.number().int().positive().default(1),
|
|
128
|
+
}),
|
|
129
|
+
execute: async ({ cwd, state, page }) => {
|
|
130
|
+
const { manager } = await buildManager(ctx, cwd);
|
|
131
|
+
return stringify(await manager.listIssues(state, page));
|
|
132
|
+
},
|
|
133
|
+
});
|
|
134
|
+
server.addTool({
|
|
135
|
+
name: "nomoreide_github_get_issue",
|
|
136
|
+
description: "Get details for a GitHub issue.",
|
|
137
|
+
parameters: cwdSchema.extend({
|
|
138
|
+
number: z.number().int().positive().describe("Issue number."),
|
|
139
|
+
}),
|
|
140
|
+
execute: async ({ cwd, number }) => {
|
|
141
|
+
const { manager } = await buildManager(ctx, cwd);
|
|
142
|
+
return stringify(await manager.getIssue(number));
|
|
143
|
+
},
|
|
144
|
+
});
|
|
145
|
+
server.addTool({
|
|
146
|
+
name: "nomoreide_github_list_issue_comments",
|
|
147
|
+
description: "List comments on a GitHub issue.",
|
|
148
|
+
parameters: cwdSchema.extend({
|
|
149
|
+
number: z.number().int().positive().describe("Issue number."),
|
|
150
|
+
}),
|
|
151
|
+
execute: async ({ cwd, number }) => {
|
|
152
|
+
const { manager } = await buildManager(ctx, cwd);
|
|
153
|
+
return stringify(await manager.listIssueComments(number));
|
|
154
|
+
},
|
|
155
|
+
});
|
|
156
|
+
server.addTool({
|
|
157
|
+
name: "nomoreide_github_add_issue_comment",
|
|
158
|
+
description: "Add a comment to a GitHub issue or pull request.",
|
|
159
|
+
parameters: cwdSchema.extend({
|
|
160
|
+
number: z.number().int().positive().describe("Issue or PR number."),
|
|
161
|
+
body: z.string().min(1).describe("Comment text (markdown)."),
|
|
162
|
+
}),
|
|
163
|
+
execute: async ({ cwd, number, body }) => {
|
|
164
|
+
const { manager } = await buildManager(ctx, cwd);
|
|
165
|
+
const comment = await manager.addIssueComment(number, body);
|
|
166
|
+
return `Comment added: ${comment.html_url}`;
|
|
167
|
+
},
|
|
168
|
+
});
|
|
169
|
+
server.addTool({
|
|
170
|
+
name: "nomoreide_github_create_issue",
|
|
171
|
+
description: "Create a new GitHub issue.",
|
|
172
|
+
parameters: cwdSchema.extend({
|
|
173
|
+
title: z.string().min(1).describe("Issue title."),
|
|
174
|
+
body: z.string().optional().describe("Issue description (markdown)."),
|
|
175
|
+
}),
|
|
176
|
+
execute: async ({ cwd, title, body }) => {
|
|
177
|
+
const { manager } = await buildManager(ctx, cwd);
|
|
178
|
+
const issue = await manager.createIssue({ title, body });
|
|
179
|
+
return `Created issue #${issue.number}: ${issue.html_url}`;
|
|
180
|
+
},
|
|
181
|
+
});
|
|
182
|
+
server.addTool({
|
|
183
|
+
name: "nomoreide_github_get_commit_ci",
|
|
184
|
+
description: "Get CI check status for a commit SHA.",
|
|
185
|
+
parameters: cwdSchema.extend({
|
|
186
|
+
sha: z.string().min(7).describe("Commit SHA (full or abbreviated to ≥7 chars)."),
|
|
187
|
+
}),
|
|
188
|
+
execute: async ({ cwd, sha }) => {
|
|
189
|
+
const { manager } = await buildManager(ctx, cwd);
|
|
190
|
+
return stringify(await manager.getCommitChecks(sha));
|
|
191
|
+
},
|
|
192
|
+
});
|
|
193
|
+
server.addTool({
|
|
194
|
+
name: "nomoreide_github_list_workflow_runs",
|
|
195
|
+
description: "List recent GitHub Actions workflow runs.",
|
|
196
|
+
parameters: cwdSchema.extend({
|
|
197
|
+
branch: z.string().optional().describe("Filter by branch name."),
|
|
198
|
+
page: z.number().int().positive().default(1),
|
|
199
|
+
}),
|
|
200
|
+
execute: async ({ cwd, branch, page }) => {
|
|
201
|
+
const { manager } = await buildManager(ctx, cwd);
|
|
202
|
+
return stringify(await manager.listWorkflowRuns(branch, page));
|
|
203
|
+
},
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
//# sourceMappingURL=github.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"github.js","sourceRoot":"","sources":["../../../src/mcp/tools/github.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@ import { type ToolContext } from "./context.js";
|
|
|
9
9
|
* a new domain module and register it below. This aggregator never grows a
|
|
10
10
|
* per-tool branch.
|
|
11
11
|
*/
|
|
12
|
-
export declare const NOMOREIDE_TOOL_NAMES: readonly ["nomoreide_list_services", "nomoreide_register_service", "nomoreide_start_service", "nomoreide_stop_service", "nomoreide_restart_service", "nomoreide_read_logs", "nomoreide_register_bundle", "nomoreide_start_bundle", "nomoreide_stop_bundle", "nomoreide_status", "nomoreide_service_context", "nomoreide_service_health", "nomoreide_timeline", "nomoreide_onboard_repo", "nomoreide_git_status", "nomoreide_git_branches", "nomoreide_git_switch_branch", "nomoreide_git_create_branch", "nomoreide_git_fetch", "nomoreide_git_diff", "nomoreide_git_staged_diff", "nomoreide_git_log", "nomoreide_git_stage", "nomoreide_git_unstage", "nomoreide_git_commit", "nomoreide_git_register_repository", "nomoreide_git_select_repository", "nomoreide_list_errors", "nomoreide_error_prompt", "nomoreide_list_databases", "nomoreide_db_tables", "nomoreide_db_sample", "nomoreide_docs", "nomoreide_open_ui", "nomoreide_close_ui"];
|
|
12
|
+
export declare const NOMOREIDE_TOOL_NAMES: readonly ["nomoreide_list_services", "nomoreide_register_service", "nomoreide_start_service", "nomoreide_stop_service", "nomoreide_restart_service", "nomoreide_read_logs", "nomoreide_register_bundle", "nomoreide_start_bundle", "nomoreide_stop_bundle", "nomoreide_status", "nomoreide_service_context", "nomoreide_service_health", "nomoreide_timeline", "nomoreide_onboard_repo", "nomoreide_git_status", "nomoreide_git_branches", "nomoreide_git_switch_branch", "nomoreide_git_create_branch", "nomoreide_git_fetch", "nomoreide_git_diff", "nomoreide_git_staged_diff", "nomoreide_git_log", "nomoreide_git_stage", "nomoreide_git_unstage", "nomoreide_git_commit", "nomoreide_git_push", "nomoreide_git_register_repository", "nomoreide_git_select_repository", "nomoreide_github_set_token", "nomoreide_github_list_prs", "nomoreide_github_get_pr", "nomoreide_github_get_pr_diff", "nomoreide_github_create_pr", "nomoreide_github_merge_pr", "nomoreide_github_list_issues", "nomoreide_github_get_issue", "nomoreide_github_list_issue_comments", "nomoreide_github_add_issue_comment", "nomoreide_github_create_issue", "nomoreide_github_get_commit_ci", "nomoreide_github_list_workflow_runs", "nomoreide_list_errors", "nomoreide_error_prompt", "nomoreide_list_databases", "nomoreide_db_tables", "nomoreide_db_sample", "nomoreide_docs", "nomoreide_open_ui", "nomoreide_close_ui"];
|
|
13
13
|
interface RegisterNoMoreIdeToolsOptions extends ToolContext {
|
|
14
14
|
server: FastMCP;
|
|
15
15
|
toolCallStore?: ToolCallStore;
|
package/dist/mcp/tools/index.js
CHANGED
|
@@ -4,6 +4,7 @@ import { DATABASE_TOOL_NAMES, registerDatabaseTools } from "./database.js";
|
|
|
4
4
|
import { DOC_TOOL_NAMES, registerDocTools } from "./docs.js";
|
|
5
5
|
import { ERROR_TOOL_NAMES, registerErrorTools } from "./errors.js";
|
|
6
6
|
import { GIT_TOOL_NAMES, registerGitTools } from "./git.js";
|
|
7
|
+
import { GITHUB_TOOL_NAMES, registerGithubTools } from "./github.js";
|
|
7
8
|
import { ONBOARD_TOOL_NAMES, registerOnboardTools } from "./onboard.js";
|
|
8
9
|
import { registerServiceTools, SERVICE_TOOL_NAMES } from "./services.js";
|
|
9
10
|
/**
|
|
@@ -18,6 +19,7 @@ export const NOMOREIDE_TOOL_NAMES = [
|
|
|
18
19
|
...SERVICE_TOOL_NAMES,
|
|
19
20
|
...ONBOARD_TOOL_NAMES,
|
|
20
21
|
...GIT_TOOL_NAMES,
|
|
22
|
+
...GITHUB_TOOL_NAMES,
|
|
21
23
|
...ERROR_TOOL_NAMES,
|
|
22
24
|
...DATABASE_TOOL_NAMES,
|
|
23
25
|
...DOC_TOOL_NAMES,
|
|
@@ -31,6 +33,7 @@ export function registerNoMoreIdeTools(options) {
|
|
|
31
33
|
registerServiceTools(server, ctx);
|
|
32
34
|
registerOnboardTools(server, ctx);
|
|
33
35
|
registerGitTools(server, ctx);
|
|
36
|
+
registerGithubTools(server, ctx);
|
|
34
37
|
registerErrorTools(server, ctx);
|
|
35
38
|
registerDatabaseTools(server, ctx);
|
|
36
39
|
registerDocTools(server, ctx);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mcp/tools/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAoB,MAAM,cAAc,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAEzE;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,GAAG,kBAAkB;IACrB,GAAG,kBAAkB;IACrB,GAAG,cAAc;IACjB,GAAG,gBAAgB;IACnB,GAAG,mBAAmB;IACtB,GAAG,cAAc;IACjB,GAAG,gBAAgB;CACX,CAAC;AAOX,MAAM,UAAU,sBAAsB,CACpC,OAAsC;IAEtC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC;IAC7D,MAAM,MAAM,GAAG,aAAa;QAC1B,CAAC,CAAC,sBAAsB,CAAC,SAAS,EAAE,aAAa,CAAC;QAClD,CAAC,CAAC,SAAS,CAAC;IAEd,oBAAoB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAClC,oBAAoB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAClC,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9B,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChC,qBAAqB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACnC,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9B,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAClC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mcp/tools/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAoB,MAAM,cAAc,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAEzE;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,GAAG,kBAAkB;IACrB,GAAG,kBAAkB;IACrB,GAAG,cAAc;IACjB,GAAG,iBAAiB;IACpB,GAAG,gBAAgB;IACnB,GAAG,mBAAmB;IACtB,GAAG,cAAc;IACjB,GAAG,gBAAgB;CACX,CAAC;AAOX,MAAM,UAAU,sBAAsB,CACpC,OAAsC;IAEtC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC;IAC7D,MAAM,MAAM,GAAG,aAAa;QAC1B,CAAC,CAAC,sBAAsB,CAAC,SAAS,EAAE,aAAa,CAAC;QAClD,CAAC,CAAC,SAAS,CAAC;IAEd,oBAAoB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAClC,oBAAoB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAClC,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9B,mBAAmB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjC,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChC,qBAAqB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACnC,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9B,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAClC,CAAC"}
|