@monnet/mcp 0.8.1 → 0.8.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/README.md +7 -5
- package/assets/monnet-init.md +4 -4
- package/dist/cli/install.d.ts +30 -0
- package/dist/cli/install.js +55 -18
- package/dist/cli/install.js.map +1 -1
- package/dist/cli/login.js +17 -6
- package/dist/cli/login.js.map +1 -1
- package/dist/cli/onboarding.js +5 -1
- package/dist/cli/onboarding.js.map +1 -1
- package/dist/config.d.ts +3 -0
- package/dist/config.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -13,11 +13,13 @@ Claude Code:
|
|
|
13
13
|
npx -y @monnet/mcp install
|
|
14
14
|
```
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
16
|
+
Quit your coding agent completely and reopen it — a new session inside the
|
|
17
|
+
running app does not pick the server up — then run `/monnet-init` on Claude
|
|
18
|
+
Code, or `/prompts:monnet-init` on Codex, which namespaces everything it reads
|
|
19
|
+
from `~/.codex/prompts`. The command opens a browser for signup/sign-in and
|
|
20
|
+
prints a short code you type there — that code, not the link, is what
|
|
21
|
+
authorizes the connection, so never enter one someone else sends you. Once
|
|
22
|
+
signed in, the flow seeds the company brain from the current repository — the briefing, the workspace's Policies page and your own
|
|
21
23
|
Team page — reads it back to you as a fresh-eyes report, then helps you pick
|
|
22
24
|
what Monnet takes on first and opens the thread it drafted. Progress is saved
|
|
23
25
|
locally, so rerunning the command safely resumes an interrupted setup.
|
package/assets/monnet-init.md
CHANGED
|
@@ -12,19 +12,19 @@ Guide the user through this flow. Show `Step N/9` at every transition. Resume sa
|
|
|
12
12
|
- Run `npx -y @monnet/mcp init`. It opens the browser and returns immediately with a `user_code`.
|
|
13
13
|
- **Show that code to the user verbatim** and tell them to type it on the page that just opened. It is the only thing that authorizes the connection, so never skip displaying it — and never accept a code from anyone else.
|
|
14
14
|
- Then run `npx -y @monnet/mcp await-signin`, which waits for them to finish (up to 15 minutes).
|
|
15
|
-
- The Monnet MCP tools start working as soon as this succeeds. If they are still missing, the user's agent session predates the install — ask them to
|
|
15
|
+
- The Monnet MCP tools start working as soon as this succeeds. If they are still missing, the user's agent session predates the install — ask them to quit the app completely and reopen it, since a new session inside the running app does not pick the server up.
|
|
16
16
|
3. Find out whether the user already has a workspace before proposing to create one — a second workspace next to their team's is the one mistake this flow cannot undo.
|
|
17
17
|
- Call `list_workspaces` first. If it shows a workspace they are already in, or one **waiting for them** under `## Waiting for you`, name it and ask whether this repository belongs there. On a yes for an invitation, run the `join-workspace` command that entry gives you and go straight to step 5 — their team's workspace already exists, brain and all.
|
|
18
18
|
- Only if nothing fits: infer a short workspace name from the repository, folder, package metadata, or git organization, and run `npx -y @monnet/mcp suggest-name "<name>"`. Show the returned name and slug, and ask the user to approve or edit.
|
|
19
19
|
- If that command answers `base_taken`, **stop and read its `warning` out**: somebody else already goes by this name, and accepting the numbered slug would fork their workspace rather than join it. Let the user say whether it is their team — if it is, they need an invitation, not a new workspace.
|
|
20
20
|
4. After approval run `npx -y @monnet/mcp onboard-workspace "<name>" "<slug>"`.
|
|
21
21
|
5. Read the repository once, then write what you learned into the brain three ways. Inspect only useful context (README, manifests, product docs, architecture docs, and recent high-level history; respect ignore files and never include secrets).
|
|
22
|
-
- **The briefing.** One concise Markdown document covering what the company/product does, users, architecture, current initiatives, and concrete unknowns.
|
|
22
|
+
- **The briefing.** One concise Markdown document covering what the company/product does, users, architecture, current initiatives, and concrete unknowns. **Write it to `monnet-briefing.md` in the working directory, feed that file in, and delete it in the same command: `npx -y @monnet/mcp push-knowledge < monnet-briefing.md; rm -f monnet-briefing.md`.** Never put the document in the command itself: it describes real people, and quoting, argv limits, the shell history and your own approval review all work against a heredoc full of personal context. The file is short-lived on purpose — it exists between two commands and is never left behind, so do not `git add` while it is there. The command files the document and asks the brain to digest it straight away rather than tonight.
|
|
23
23
|
- **The workspace's Policies page.** It already exists: the page at the root of the tree, named after the workspace, written from a template of `[bracketed placeholders]`. Find it with `get_wiki_tree`, `read_wiki_page` it, then `edit_wiki_page` once — match the placeholder text and replace it with what the repository actually shows. Keep its section headings exactly as they are; they are the ones Monnet reads.
|
|
24
24
|
- **The user's own page.** `Team/<their name>`, created empty with the workspace — `monnet_whoami` tells you which one is theirs. Write how to work with them: their role, what they own, how they work, what they would rather Monnet just did without asking. Its `old_string` is the `(this page is empty)` placeholder `read_wiki_page` shows in place of a body.
|
|
25
25
|
|
|
26
26
|
Never create a page — both already exist, and a second copy splits the brain. If one is genuinely absent, move on and say so. Skip a section rather than filling it with a guess, and tell the user what you wrote.
|
|
27
|
-
6. Give the user a fresh-eyes report on them and their company: an outsider's read of what you just learned, not a summary of the repository. Write it in the terminal under `## What I learned`, `## First impressions`, `## Motions to kick off`. Say what surprised you and what looks unresolved — a report that only flatters is worth nothing. Then offer to keep it: on a yes,
|
|
27
|
+
6. Give the user a fresh-eyes report on them and their company: an outsider's read of what you just learned, not a summary of the repository. Write it in the terminal under `## What I learned`, `## First impressions`, `## Motions to kick off`. Say what surprised you and what looks unresolved — a report that only flatters is worth nothing. Then offer to keep it: on a yes, put it through its own file exactly as in step 5 — write `monnet-report.md`, then `npx -y @monnet/mcp push-knowledge < monnet-report.md; rm -f monnet-report.md` — so it is theirs to share.
|
|
28
28
|
7. Ask what Monnet should take on first. Offer exactly these three, and let them skip:
|
|
29
29
|
- **a fresh-eyes report on the team** — Monnet interviews each teammate and builds, with them, the outside view you just sketched alone;
|
|
30
30
|
- **the top priority the repository points at** — propose the three strongest candidates, one line of rationale each, and let them pick one;
|
|
@@ -32,6 +32,6 @@ Guide the user through this flow. Show `Step N/9` at every transition. Resume sa
|
|
|
32
32
|
|
|
33
33
|
Do not choose for them.
|
|
34
34
|
8. Ask how to invite teammates: Slack (default), Teams, email, or skip. For a channel run `npx -y @monnet/mcp invite <slack|teams|email>`; it opens the UI that connects that channel — Slack and email land on the invite flow, Teams on the workspace's Integrations tab. Continue when they say they are done. If skipped, continue without the command.
|
|
35
|
-
9. Unless the selection was skipped, build a focused prompt containing the chosen outcome, why now, relevant repository evidence, constraints, and a request for an actionable draft with owners.
|
|
35
|
+
9. Unless the selection was skipped, build a focused prompt containing the chosen outcome, why now, relevant repository evidence, constraints, and a request for an actionable draft with owners. Put it through its own file the same way as step 5: write `monnet-motion.md`, then `npx -y @monnet/mcp create-first-motion < monnet-motion.md; rm -f monnet-motion.md`. For the team report, pass the playbook Monnet already runs for it instead of describing the interviews yourself — `create-first-motion onboard-team < monnet-motion.md` — the playbook replaces your description of the interviews, not the prompt itself, which both variants still read from stdin. It opens the thread ready to review and publish. Report the returned URL.
|
|
36
36
|
|
|
37
37
|
If any command is interrupted, rerun this skill: all server creates and local progress are resumable. Never print or ask for an API key — only ever the short sign-in code from step 2.
|
package/dist/cli/install.d.ts
CHANGED
|
@@ -7,4 +7,34 @@
|
|
|
7
7
|
* flow is worse than no copy.
|
|
8
8
|
*/
|
|
9
9
|
import type { Io } from "./io.js";
|
|
10
|
+
/** How each agent exposes the command file we just wrote.
|
|
11
|
+
*
|
|
12
|
+
* Codex namespaces everything it reads from ~/.codex/prompts, so the two
|
|
13
|
+
* agents do NOT answer to the same slash command: its UI lists ours as
|
|
14
|
+
* `/prompts:monnet-init`. Saying "run /monnet-init" to everyone sends Codex
|
|
15
|
+
* users hunting for a command that, as they see it, is not there.
|
|
16
|
+
*/
|
|
17
|
+
declare const AGENTS: {
|
|
18
|
+
readonly claude: {
|
|
19
|
+
readonly label: "Claude Code";
|
|
20
|
+
readonly command: "/monnet-init";
|
|
21
|
+
readonly commandPath: readonly [".claude", "commands", "monnet-init.md"];
|
|
22
|
+
readonly mcpScope: readonly ["--scope", "user"];
|
|
23
|
+
};
|
|
24
|
+
readonly codex: {
|
|
25
|
+
readonly label: "Codex";
|
|
26
|
+
readonly command: "/prompts:monnet-init";
|
|
27
|
+
readonly commandPath: readonly [".codex", "prompts", "monnet-init.md"];
|
|
28
|
+
readonly mcpScope: readonly [];
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
export type AgentName = keyof typeof AGENTS;
|
|
32
|
+
/** What the person who just ran the install command reads.
|
|
33
|
+
*
|
|
34
|
+
* Plain sentences, not the JSON the rest of the CLI speaks: this one line is
|
|
35
|
+
* the only output of the whole flow that no coding agent rephrases, because
|
|
36
|
+
* it is what gets the agent installed in the first place.
|
|
37
|
+
*/
|
|
38
|
+
export declare function installSummary(agents: AgentName[]): string;
|
|
10
39
|
export declare function install(io: Io): Promise<void>;
|
|
40
|
+
export {};
|
package/dist/cli/install.js
CHANGED
|
@@ -14,12 +14,34 @@ import { dirname, join } from "node:path";
|
|
|
14
14
|
import { fileURLToPath } from "node:url";
|
|
15
15
|
import { promisify } from "node:util";
|
|
16
16
|
const execFileAsync = promisify(execFile);
|
|
17
|
-
const FALLBACK_COMMAND = "Run `npx -y @monnet/mcp init`, then follow the
|
|
17
|
+
const FALLBACK_COMMAND = "Run `npx -y @monnet/mcp init`, then follow the instructions it returns.\n";
|
|
18
|
+
/** How each agent exposes the command file we just wrote.
|
|
19
|
+
*
|
|
20
|
+
* Codex namespaces everything it reads from ~/.codex/prompts, so the two
|
|
21
|
+
* agents do NOT answer to the same slash command: its UI lists ours as
|
|
22
|
+
* `/prompts:monnet-init`. Saying "run /monnet-init" to everyone sends Codex
|
|
23
|
+
* users hunting for a command that, as they see it, is not there.
|
|
24
|
+
*/
|
|
25
|
+
const AGENTS = {
|
|
26
|
+
claude: {
|
|
27
|
+
label: "Claude Code",
|
|
28
|
+
command: "/monnet-init",
|
|
29
|
+
commandPath: [".claude", "commands", "monnet-init.md"],
|
|
30
|
+
// Without --scope user the server is registered against the directory the
|
|
31
|
+
// installer happened to run in, and disappears the moment the user opens
|
|
32
|
+
// their actual project.
|
|
33
|
+
mcpScope: ["--scope", "user"],
|
|
34
|
+
},
|
|
35
|
+
codex: {
|
|
36
|
+
label: "Codex",
|
|
37
|
+
command: "/prompts:monnet-init",
|
|
38
|
+
commandPath: [".codex", "prompts", "monnet-init.md"],
|
|
39
|
+
mcpScope: [],
|
|
40
|
+
},
|
|
41
|
+
};
|
|
42
|
+
const agentNames = Object.keys(AGENTS);
|
|
18
43
|
function commandTargets() {
|
|
19
|
-
return [
|
|
20
|
-
join(homedir(), ".claude", "commands", "monnet-init.md"),
|
|
21
|
-
join(homedir(), ".codex", "prompts", "monnet-init.md"),
|
|
22
|
-
];
|
|
44
|
+
return agentNames.map((agent) => join(homedir(), ...AGENTS[agent].commandPath));
|
|
23
45
|
}
|
|
24
46
|
async function commandBody() {
|
|
25
47
|
const source = join(dirname(fileURLToPath(import.meta.url)), "..", "..", "assets", "monnet-init.md");
|
|
@@ -43,34 +65,49 @@ async function isExecutable(name) {
|
|
|
43
65
|
async function registerMcp(agent) {
|
|
44
66
|
if (!(await isExecutable(agent)))
|
|
45
67
|
return false;
|
|
46
|
-
const scope = agent === "claude" ? ["--scope", "user"] : [];
|
|
47
68
|
try {
|
|
48
|
-
|
|
69
|
+
const args = ["mcp", "add", ...AGENTS[agent].mcpScope, "monnet", "--", "npx", "-y", "@monnet/mcp"];
|
|
70
|
+
await execFileAsync(agent, args);
|
|
49
71
|
}
|
|
50
72
|
catch {
|
|
51
73
|
// Already registered — an idempotent install, not a failure.
|
|
52
74
|
}
|
|
53
75
|
return true;
|
|
54
76
|
}
|
|
77
|
+
/** What the person who just ran the install command reads.
|
|
78
|
+
*
|
|
79
|
+
* Plain sentences, not the JSON the rest of the CLI speaks: this one line is
|
|
80
|
+
* the only output of the whole flow that no coding agent rephrases, because
|
|
81
|
+
* it is what gets the agent installed in the first place.
|
|
82
|
+
*/
|
|
83
|
+
export function installSummary(agents) {
|
|
84
|
+
if (!agents.length) {
|
|
85
|
+
return (`The /monnet-init command is installed, but no ${agentNames.map((a) => `\`${a}\``).join(" or ")} CLI was\n` +
|
|
86
|
+
"found on PATH, so the Monnet tools could not be registered with them. Add the MCP server manually\n" +
|
|
87
|
+
"(see https://www.npmjs.com/package/@monnet/mcp), then restart your coding agent and run it.");
|
|
88
|
+
}
|
|
89
|
+
const labels = agents.map((agent) => AGENTS[agent].label);
|
|
90
|
+
const width = Math.max(...labels.map((label) => label.length));
|
|
91
|
+
return [
|
|
92
|
+
`Monnet is installed for ${labels.join(" and ")}.`,
|
|
93
|
+
"",
|
|
94
|
+
"Restart your coding agent first — quit the app completely and reopen it, a new session",
|
|
95
|
+
"inside the running app will not pick this up. Then run:",
|
|
96
|
+
"",
|
|
97
|
+
...agents.map((agent) => ` ${AGENTS[agent].label.padEnd(width)} ${AGENTS[agent].command}`),
|
|
98
|
+
].join("\n");
|
|
99
|
+
}
|
|
55
100
|
export async function install(io) {
|
|
56
101
|
const body = await commandBody();
|
|
57
|
-
const
|
|
58
|
-
for (const target of targets) {
|
|
102
|
+
for (const target of commandTargets()) {
|
|
59
103
|
mkdirSync(dirname(target), { recursive: true });
|
|
60
104
|
writeFileSync(target, body);
|
|
61
105
|
}
|
|
62
106
|
const agents = [];
|
|
63
|
-
for (const agent of
|
|
107
|
+
for (const agent of agentNames) {
|
|
64
108
|
if (await registerMcp(agent))
|
|
65
109
|
agents.push(agent);
|
|
66
110
|
}
|
|
67
|
-
io.out(
|
|
68
|
-
installed: true,
|
|
69
|
-
commands: targets,
|
|
70
|
-
agents,
|
|
71
|
-
next: agents.length
|
|
72
|
-
? "Start a fresh coding-agent session and run /monnet-init."
|
|
73
|
-
: "No claude or codex CLI found on PATH — add the MCP server manually (see the README), then run /monnet-init.",
|
|
74
|
-
});
|
|
111
|
+
io.out(installSummary(agents));
|
|
75
112
|
}
|
|
76
113
|
//# sourceMappingURL=install.js.map
|
package/dist/cli/install.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/cli/install.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAItC,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAE1C,MAAM,gBAAgB,GAAG,
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/cli/install.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/login.js
CHANGED
|
@@ -21,9 +21,13 @@ export async function init(io) {
|
|
|
21
21
|
}
|
|
22
22
|
const session = await request("/api/cli-auth/mcp/start", { method: "POST" }, false);
|
|
23
23
|
const url = `${appUrl()}/cli-auth?kind=mcp`;
|
|
24
|
-
updateOnboarding({ pendingDevice: session.device, step: 2 });
|
|
25
|
-
|
|
26
|
-
|
|
24
|
+
updateOnboarding({ pendingDevice: session.device, pendingCode: session.user_code, step: 2 });
|
|
25
|
+
// On its own line, with nothing to its right: this is the one string the
|
|
26
|
+
// user has to select and carry to a browser, and a code shared with the
|
|
27
|
+
// sentence around it is a code half of which gets copied.
|
|
28
|
+
io.err("\nMonnet sign-in code\n\n" +
|
|
29
|
+
` ${session.user_code}\n\n` +
|
|
30
|
+
`Opened ${url} — sign in there, then type that code.\n` +
|
|
27
31
|
"It expires in 15 minutes, and only this terminal can use it.\n\n");
|
|
28
32
|
io.open(url);
|
|
29
33
|
io.out({
|
|
@@ -45,7 +49,10 @@ export async function awaitSignin(io) {
|
|
|
45
49
|
if (!device)
|
|
46
50
|
fail("no sign-in in progress; run `npx -y @monnet/mcp init` first");
|
|
47
51
|
const attempts = Math.ceil((DEFAULT_TTL_SECONDS * 1000) / POLL_INTERVAL_MS);
|
|
48
|
-
|
|
52
|
+
// The code stays on the line the dots grow from, so it is still on screen
|
|
53
|
+
// when the user gets to the browser — however long the sign-up takes.
|
|
54
|
+
const code = config.onboarding?.pendingCode;
|
|
55
|
+
io.err(`Waiting for the browser${code ? ` — your code is ${code}` : ""} `);
|
|
49
56
|
for (let attempt = 0; attempt < attempts; attempt++) {
|
|
50
57
|
await io.sleep(POLL_INTERVAL_MS);
|
|
51
58
|
const response = await fetch(`${apiUrl()}/api/cli-auth/mcp/poll`, {
|
|
@@ -66,12 +73,16 @@ export async function awaitSignin(io) {
|
|
|
66
73
|
apiKey: token,
|
|
67
74
|
apiUrl: apiUrl(),
|
|
68
75
|
appUrl: appUrl(),
|
|
69
|
-
onboarding: { ...current.onboarding, pendingDevice: undefined, step: 3 },
|
|
76
|
+
onboarding: { ...current.onboarding, pendingDevice: undefined, pendingCode: undefined, step: 3 },
|
|
70
77
|
});
|
|
71
78
|
io.err("\n");
|
|
72
79
|
io.out({ authenticated: true, next: "propose_workspace" });
|
|
73
80
|
return;
|
|
74
81
|
}
|
|
75
|
-
|
|
82
|
+
// The server's own TTL is 15 minutes, so this session is expired, not
|
|
83
|
+
// pending: leaving it in the config makes the next `await-signin` print a
|
|
84
|
+
// code the browser can only ever reject.
|
|
85
|
+
updateOnboarding({ pendingDevice: undefined, pendingCode: undefined });
|
|
86
|
+
fail("sign-in timed out after 15 minutes; run /monnet-init again to start a new one");
|
|
76
87
|
}
|
|
77
88
|
//# sourceMappingURL=login.js.map
|
package/dist/cli/login.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/cli/login.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACzE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAW,MAAM,SAAS,CAAC;AAExC,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAC9B,MAAM,mBAAmB,GAAG,EAAE,GAAG,EAAE,CAAC;AAQpC,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,EAAM;IAC/B,IAAI,MAAM,EAAE,EAAE,CAAC;QACb,EAAE,CAAC,GAAG,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC,CAAC;QAC1E,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,OAAO,CAAiB,yBAAyB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,KAAK,CAAC,CAAC;IACpG,MAAM,GAAG,GAAG,GAAG,MAAM,EAAE,oBAAoB,CAAC;IAC5C,gBAAgB,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/cli/login.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACzE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAW,MAAM,SAAS,CAAC;AAExC,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAC9B,MAAM,mBAAmB,GAAG,EAAE,GAAG,EAAE,CAAC;AAQpC,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,EAAM;IAC/B,IAAI,MAAM,EAAE,EAAE,CAAC;QACb,EAAE,CAAC,GAAG,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC,CAAC;QAC1E,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,OAAO,CAAiB,yBAAyB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,KAAK,CAAC,CAAC;IACpG,MAAM,GAAG,GAAG,GAAG,MAAM,EAAE,oBAAoB,CAAC;IAC5C,gBAAgB,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;IAE7F,yEAAyE;IACzE,wEAAwE;IACxE,0DAA0D;IAC1D,EAAE,CAAC,GAAG,CACJ,2BAA2B;QAC3B,OAAO,OAAO,CAAC,SAAS,MAAM;QAC9B,UAAU,GAAG,0CAA0C;QACvD,kEAAkE,CACnE,CAAC;IACF,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACb,EAAE,CAAC,GAAG,CAAC;QACL,aAAa,EAAE,KAAK;QACpB,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,GAAG;QACH,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,IAAI,EAAE,cAAc;QACpB,SAAS,EAAE,cAAc,GAAG,uBAAuB,OAAO,CAAC,SAAS,EAAE;KACvE,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,EAAM;IACtC,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,IAAI,MAAM,EAAE,EAAE,CAAC;QACb,EAAE,CAAC,GAAG,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC,CAAC;QAC1E,OAAO;IACT,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC;IAChD,IAAI,CAAC,MAAM;QAAE,IAAI,CAAC,6DAA6D,CAAC,CAAC;IAEjF,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,mBAAmB,GAAG,IAAI,CAAC,GAAG,gBAAgB,CAAC,CAAC;IAC5E,0EAA0E;IAC1E,sEAAsE;IACtE,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC;IAC5C,EAAE,CAAC,GAAG,CAAC,0BAA0B,IAAI,CAAC,CAAC,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC3E,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,QAAQ,EAAE,OAAO,EAAE,EAAE,CAAC;QACpD,MAAM,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACjC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,EAAE,wBAAwB,EAAE;YAChE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;SACjC,CAAC,CAAC;QACH,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC5B,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACZ,SAAS;QACX,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,EAAE;YAAE,IAAI,CAAC,mBAAmB,QAAQ,CAAC,MAAM,yCAAyC,CAAC,CAAC;QAEpG,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAsB,CAAC;QAC/D,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;QAC7B,WAAW,CAAC;YACV,GAAG,OAAO;YACV,MAAM,EAAE,KAAK;YACb,MAAM,EAAE,MAAM,EAAE;YAChB,MAAM,EAAE,MAAM,EAAE;YAChB,UAAU,EAAE,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE;SACjG,CAAC,CAAC;QACH,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACb,EAAE,CAAC,GAAG,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC,CAAC;QAC3D,OAAO;IACT,CAAC;IACD,sEAAsE;IACtE,0EAA0E;IAC1E,yCAAyC;IACzC,gBAAgB,CAAC,EAAE,aAAa,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC;IACvE,IAAI,CAAC,+EAA+E,CAAC,CAAC;AACxF,CAAC"}
|
package/dist/cli/onboarding.js
CHANGED
|
@@ -140,6 +140,10 @@ export async function createFirstMotion(io, args = []) {
|
|
|
140
140
|
}
|
|
141
141
|
export function status(io) {
|
|
142
142
|
const config = readConfig();
|
|
143
|
-
|
|
143
|
+
// Where the flow got to — not how it signs in. The two pending handles are
|
|
144
|
+
// the sign-in's own business, and this is the one command the skill calls on
|
|
145
|
+
// every resume, so anything left in here is repeated into the transcript.
|
|
146
|
+
const { pendingDevice: _device, pendingCode: _code, ...progress } = config.onboarding || { step: 1 };
|
|
147
|
+
io.out({ connected: Boolean(apiKey()), ...progress });
|
|
144
148
|
}
|
|
145
149
|
//# sourceMappingURL=onboarding.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"onboarding.js","sourceRoot":"","sources":["../../src/cli/onboarding.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"onboarding.js","sourceRoot":"","sources":["../../src/cli/onboarding.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts
CHANGED
|
@@ -8,6 +8,9 @@ export interface MonnetConfig {
|
|
|
8
8
|
motionId?: string;
|
|
9
9
|
/** Private handle of a sign-in started but not yet completed. */
|
|
10
10
|
pendingDevice?: string;
|
|
11
|
+
/** The short code that sign-in is waiting on, so the terminal can keep
|
|
12
|
+
* showing it instead of letting it scroll away. */
|
|
13
|
+
pendingCode?: string;
|
|
11
14
|
step?: number;
|
|
12
15
|
};
|
|
13
16
|
}
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC5E,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC5E,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAmBjC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;AACvD,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;AAEzD,MAAM,UAAU,UAAU;IACxB,IAAI,CAAC;QAAC,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAiB,CAAC;IAAC,CAAC;IAC5E,MAAM,CAAC;QAAC,OAAO,EAAE,CAAC;IAAC,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAkB;IAC5C,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACvD,aAAa,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACjF,SAAS,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAA8C;IAC7E,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,WAAW,CAAC,EAAE,GAAG,OAAO,EAAE,UAAU,EAAE,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,GAAG,KAAK,EAAE,EAAE,CAAC,CAAC;AAC/E,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@monnet/mcp",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.3",
|
|
4
4
|
"mcpName": "ai.monnet/mcp",
|
|
5
5
|
"description": "Model Context Protocol server for Monnet \u2014 exposes motions, plans, and approvals to MCP-compatible clients like Claude Desktop and Cursor.",
|
|
6
6
|
"license": "MIT",
|