youmd 0.5.0 → 0.6.1
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/__tests__/api.test.d.ts +2 -0
- package/dist/__tests__/api.test.d.ts.map +1 -0
- package/dist/__tests__/api.test.js +84 -0
- package/dist/__tests__/api.test.js.map +1 -0
- package/dist/__tests__/compiler.test.d.ts +2 -0
- package/dist/__tests__/compiler.test.d.ts.map +1 -0
- package/dist/__tests__/compiler.test.js +127 -0
- package/dist/__tests__/compiler.test.js.map +1 -0
- package/dist/__tests__/config.test.d.ts +2 -0
- package/dist/__tests__/config.test.d.ts.map +1 -0
- package/dist/__tests__/config.test.js +79 -0
- package/dist/__tests__/config.test.js.map +1 -0
- package/dist/__tests__/decompile.test.d.ts +2 -0
- package/dist/__tests__/decompile.test.d.ts.map +1 -0
- package/dist/__tests__/decompile.test.js +102 -0
- package/dist/__tests__/decompile.test.js.map +1 -0
- package/dist/__tests__/hash.test.d.ts +2 -0
- package/dist/__tests__/hash.test.d.ts.map +1 -0
- package/dist/__tests__/hash.test.js +44 -0
- package/dist/__tests__/hash.test.js.map +1 -0
- package/dist/__tests__/integration.test.d.ts +2 -0
- package/dist/__tests__/integration.test.d.ts.map +1 -0
- package/dist/__tests__/integration.test.js +277 -0
- package/dist/__tests__/integration.test.js.map +1 -0
- package/dist/__tests__/skill-renderer.test.d.ts +2 -0
- package/dist/__tests__/skill-renderer.test.d.ts.map +1 -0
- package/dist/__tests__/skill-renderer.test.js +68 -0
- package/dist/__tests__/skill-renderer.test.js.map +1 -0
- package/dist/commands/add.d.ts.map +1 -1
- package/dist/commands/add.js +6 -3
- package/dist/commands/add.js.map +1 -1
- package/dist/commands/agents.d.ts +2 -0
- package/dist/commands/agents.d.ts.map +1 -0
- package/dist/commands/agents.js +93 -0
- package/dist/commands/agents.js.map +1 -0
- package/dist/commands/build.d.ts.map +1 -1
- package/dist/commands/build.js +73 -20
- package/dist/commands/build.js.map +1 -1
- package/dist/commands/chat.d.ts.map +1 -1
- package/dist/commands/chat.js +63 -4
- package/dist/commands/chat.js.map +1 -1
- package/dist/commands/diff.d.ts +1 -1
- package/dist/commands/diff.d.ts.map +1 -1
- package/dist/commands/diff.js +402 -16
- package/dist/commands/diff.js.map +1 -1
- package/dist/commands/export.js +1 -1
- package/dist/commands/export.js.map +1 -1
- package/dist/commands/init.d.ts +1 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +131 -23
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/link.d.ts +1 -0
- package/dist/commands/link.d.ts.map +1 -1
- package/dist/commands/link.js +76 -12
- package/dist/commands/link.js.map +1 -1
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/login.js +76 -59
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/logs.d.ts +7 -0
- package/dist/commands/logs.d.ts.map +1 -0
- package/dist/commands/logs.js +115 -0
- package/dist/commands/logs.js.map +1 -0
- package/dist/commands/mcp.d.ts +6 -0
- package/dist/commands/mcp.d.ts.map +1 -0
- package/dist/commands/mcp.js +258 -0
- package/dist/commands/mcp.js.map +1 -0
- package/dist/commands/preview.d.ts.map +1 -1
- package/dist/commands/preview.js +191 -7
- package/dist/commands/preview.js.map +1 -1
- package/dist/commands/private.d.ts.map +1 -1
- package/dist/commands/private.js +248 -0
- package/dist/commands/private.js.map +1 -1
- package/dist/commands/prompts.d.ts +12 -0
- package/dist/commands/prompts.d.ts.map +1 -0
- package/dist/commands/prompts.js +245 -0
- package/dist/commands/prompts.js.map +1 -0
- package/dist/commands/publish.d.ts.map +1 -1
- package/dist/commands/publish.js +3 -2
- package/dist/commands/publish.js.map +1 -1
- package/dist/commands/pull.d.ts.map +1 -1
- package/dist/commands/pull.js +42 -133
- package/dist/commands/pull.js.map +1 -1
- package/dist/commands/push.d.ts.map +1 -1
- package/dist/commands/push.js +146 -38
- package/dist/commands/push.js.map +1 -1
- package/dist/commands/register.d.ts.map +1 -1
- package/dist/commands/register.js +39 -83
- package/dist/commands/register.js.map +1 -1
- package/dist/commands/skill.d.ts.map +1 -1
- package/dist/commands/skill.js +95 -19
- package/dist/commands/skill.js.map +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +132 -96
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/whoami.d.ts.map +1 -1
- package/dist/commands/whoami.js +53 -29
- package/dist/commands/whoami.js.map +1 -1
- package/dist/index.js +177 -5
- package/dist/index.js.map +1 -1
- package/dist/lib/api.d.ts +93 -7
- package/dist/lib/api.d.ts.map +1 -1
- package/dist/lib/api.js +143 -38
- package/dist/lib/api.js.map +1 -1
- package/dist/lib/compiler.d.ts +16 -33
- package/dist/lib/compiler.d.ts.map +1 -1
- package/dist/lib/compiler.js +499 -84
- package/dist/lib/compiler.js.map +1 -1
- package/dist/lib/config.d.ts +3 -0
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +10 -0
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/decompile.d.ts +21 -0
- package/dist/lib/decompile.d.ts.map +1 -0
- package/dist/lib/decompile.js +304 -0
- package/dist/lib/decompile.js.map +1 -0
- package/dist/lib/onboarding.d.ts +4 -4
- package/dist/lib/onboarding.d.ts.map +1 -1
- package/dist/lib/onboarding.js +116 -25
- package/dist/lib/onboarding.js.map +1 -1
- package/dist/lib/skill-catalog.d.ts.map +1 -1
- package/dist/lib/skill-catalog.js +57 -8
- package/dist/lib/skill-catalog.js.map +1 -1
- package/dist/lib/skill-renderer.d.ts.map +1 -1
- package/dist/lib/skill-renderer.js +18 -0
- package/dist/lib/skill-renderer.js.map +1 -1
- package/dist/lib/skills.d.ts +8 -3
- package/dist/lib/skills.d.ts.map +1 -1
- package/dist/lib/skills.js +281 -82
- package/dist/lib/skills.js.map +1 -1
- package/dist/lib/vault.d.ts +40 -0
- package/dist/lib/vault.d.ts.map +1 -0
- package/dist/lib/vault.js +187 -0
- package/dist/lib/vault.js.map +1 -0
- package/dist/mcp/server.d.ts +21 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +1283 -0
- package/dist/mcp/server.js.map +1 -0
- package/examples/houston/directives/agent.md +13 -0
- package/examples/houston/preferences/agent.md +14 -0
- package/examples/houston/profile/about.md +15 -0
- package/examples/houston/profile/links.md +10 -0
- package/examples/houston/profile/projects.md +37 -0
- package/examples/houston/profile/values.md +9 -0
- package/examples/houston/voice/voice.md +13 -0
- package/examples/jordan/directives/agent.md +13 -0
- package/examples/jordan/preferences/agent.md +16 -0
- package/examples/jordan/profile/about.md +15 -0
- package/examples/jordan/profile/links.md +10 -0
- package/examples/jordan/profile/projects.md +29 -0
- package/examples/jordan/profile/values.md +9 -0
- package/examples/jordan/voice/voice.md +12 -0
- package/examples/priya/directives/agent.md +13 -0
- package/examples/priya/preferences/agent.md +15 -0
- package/examples/priya/profile/about.md +15 -0
- package/examples/priya/profile/links.md +9 -0
- package/examples/priya/profile/projects.md +28 -0
- package/examples/priya/profile/values.md +9 -0
- package/examples/priya/voice/voice.md +12 -0
- package/package.json +11 -5
- package/skills/claude-md-generator.md +25 -0
- package/skills/meta-improve.md +27 -0
- package/skills/proactive-context-fill.md +52 -0
- package/skills/project-context-init.md +26 -0
- package/skills/voice-sync.md +48 -0
- package/skills/you-logs.md +71 -0
package/dist/commands/login.js
CHANGED
|
@@ -46,54 +46,30 @@ const render_1 = require("../lib/render");
|
|
|
46
46
|
const ACCENT = chalk_1.default.hex("#C46A3A");
|
|
47
47
|
async function loginCommand(options) {
|
|
48
48
|
if (options.web) {
|
|
49
|
-
|
|
50
|
-
console.log("opening you.md dashboard in your browser...");
|
|
51
|
-
console.log("");
|
|
52
|
-
const url = "https://you.md/dashboard";
|
|
53
|
-
const platform = process.platform;
|
|
54
|
-
const cmd = platform === "darwin"
|
|
55
|
-
? `open ${url}`
|
|
56
|
-
: platform === "win32"
|
|
57
|
-
? `start ${url}`
|
|
58
|
-
: `xdg-open ${url}`;
|
|
59
|
-
(0, child_process_1.exec)(cmd, (err) => {
|
|
60
|
-
if (err) {
|
|
61
|
-
console.log(chalk_1.default.yellow("could not open browser") +
|
|
62
|
-
" -- visit " +
|
|
63
|
-
chalk_1.default.cyan(url) +
|
|
64
|
-
" manually");
|
|
65
|
-
}
|
|
66
|
-
});
|
|
67
|
-
console.log("create an API key in the /tokens tab, then run: " +
|
|
68
|
-
chalk_1.default.cyan("youmd login --key YOUR_KEY"));
|
|
69
|
-
console.log("");
|
|
49
|
+
openBrowserLogin();
|
|
70
50
|
return;
|
|
71
51
|
}
|
|
72
52
|
if (options.key) {
|
|
73
53
|
await loginWithKey(options.key);
|
|
74
54
|
return;
|
|
75
55
|
}
|
|
76
|
-
// Interactive email
|
|
56
|
+
// Interactive email-code login
|
|
77
57
|
console.log("");
|
|
78
58
|
console.log(ACCENT("you.md") + " -- login");
|
|
79
59
|
console.log("");
|
|
80
|
-
|
|
60
|
+
console.log(" " + chalk_1.default.dim("press Enter to open browser sign-in"));
|
|
61
|
+
console.log(" " + chalk_1.default.dim("or type your email for an in-terminal code login"));
|
|
62
|
+
console.log(" " + chalk_1.default.dim("or run ") + chalk_1.default.cyan("youmd login --key YOUR_KEY") + chalk_1.default.dim(" for direct agent auth"));
|
|
63
|
+
console.log("");
|
|
64
|
+
const email = await promptInput(ACCENT(" email (or Enter for browser): "));
|
|
81
65
|
if (!email) {
|
|
82
|
-
|
|
83
|
-
console.log("");
|
|
66
|
+
openBrowserLogin();
|
|
84
67
|
return;
|
|
85
68
|
}
|
|
86
|
-
const
|
|
87
|
-
if (!password) {
|
|
88
|
-
console.log(chalk_1.default.yellow(" no password provided -- aborting"));
|
|
89
|
-
console.log("");
|
|
90
|
-
return;
|
|
91
|
-
}
|
|
92
|
-
console.log("");
|
|
93
|
-
const spinner = new render_1.BrailleSpinner("authenticating");
|
|
69
|
+
const spinner = new render_1.BrailleSpinner("sending verification code");
|
|
94
70
|
spinner.start();
|
|
95
71
|
try {
|
|
96
|
-
const res = await (0, api_1.
|
|
72
|
+
const res = await (0, api_1.startEmailLogin)(email);
|
|
97
73
|
if (!res.ok) {
|
|
98
74
|
spinner.fail();
|
|
99
75
|
const errData = res.data;
|
|
@@ -107,22 +83,48 @@ async function loginCommand(options) {
|
|
|
107
83
|
}
|
|
108
84
|
return;
|
|
109
85
|
}
|
|
110
|
-
|
|
86
|
+
spinner.stop();
|
|
87
|
+
console.log("");
|
|
88
|
+
console.log(" verification code sent to " + email);
|
|
89
|
+
if (res.data.devCode) {
|
|
90
|
+
console.log(" " + chalk_1.default.dim("dev code: ") + res.data.devCode);
|
|
91
|
+
}
|
|
92
|
+
console.log("");
|
|
93
|
+
const code = await promptInput(ACCENT(" code: "));
|
|
94
|
+
if (!code) {
|
|
95
|
+
console.log(chalk_1.default.yellow(" no verification code provided -- aborting"));
|
|
96
|
+
console.log("");
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
const verifySpinner = new render_1.BrailleSpinner("verifying code");
|
|
100
|
+
verifySpinner.start();
|
|
101
|
+
const verifyRes = await (0, api_1.verifyEmailCode)(email, code);
|
|
102
|
+
if (!verifyRes.ok) {
|
|
103
|
+
verifySpinner.fail();
|
|
104
|
+
const errData = verifyRes.data;
|
|
105
|
+
console.log("");
|
|
106
|
+
console.log(" " + chalk_1.default.yellow(errData?.error || `server returned ${verifyRes.status}`));
|
|
107
|
+
console.log("");
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
const { username, apiKey, user } = verifyRes.data;
|
|
111
111
|
// Save credentials
|
|
112
112
|
const config = (0, config_1.readGlobalConfig)();
|
|
113
|
-
config.token = apiKey;
|
|
113
|
+
config.token = apiKey || undefined;
|
|
114
114
|
config.username = username;
|
|
115
|
-
config.email = email;
|
|
116
|
-
config.apiUrl =
|
|
115
|
+
config.email = user.email;
|
|
116
|
+
config.apiUrl = (0, config_1.getConvexSiteUrl)();
|
|
117
117
|
(0, config_1.writeGlobalConfig)(config);
|
|
118
|
-
|
|
118
|
+
verifySpinner.stop();
|
|
119
119
|
console.log("");
|
|
120
120
|
console.log(" " + chalk_1.default.green("authenticated") + " as " + ACCENT("@" + username));
|
|
121
121
|
console.log("");
|
|
122
122
|
console.log(" user: " + username);
|
|
123
|
-
console.log(" email: " + email);
|
|
124
|
-
console.log(" plan:
|
|
125
|
-
|
|
123
|
+
console.log(" email: " + user.email);
|
|
124
|
+
console.log(" plan: free");
|
|
125
|
+
if (apiKey) {
|
|
126
|
+
console.log(" key: " + apiKey.slice(0, 8) + "..." + apiKey.slice(-4));
|
|
127
|
+
}
|
|
126
128
|
console.log("");
|
|
127
129
|
}
|
|
128
130
|
catch (err) {
|
|
@@ -135,11 +137,34 @@ async function loginCommand(options) {
|
|
|
135
137
|
console.log("");
|
|
136
138
|
}
|
|
137
139
|
}
|
|
140
|
+
function openBrowserLogin() {
|
|
141
|
+
console.log("");
|
|
142
|
+
console.log("opening you.md in your browser...");
|
|
143
|
+
console.log("");
|
|
144
|
+
const url = "https://you.md/sign-in?redirect_url=https%3A%2F%2Fwww.you.md%2Fdashboard";
|
|
145
|
+
const platform = process.platform;
|
|
146
|
+
const cmd = platform === "darwin"
|
|
147
|
+
? `open ${url}`
|
|
148
|
+
: platform === "win32"
|
|
149
|
+
? `start ${url}`
|
|
150
|
+
: `xdg-open ${url}`;
|
|
151
|
+
(0, child_process_1.exec)(cmd, (err) => {
|
|
152
|
+
if (err) {
|
|
153
|
+
console.log(chalk_1.default.yellow("could not open browser") +
|
|
154
|
+
" -- visit " +
|
|
155
|
+
chalk_1.default.cyan(url) +
|
|
156
|
+
" manually");
|
|
157
|
+
}
|
|
158
|
+
});
|
|
159
|
+
console.log("sign in there, then create or reveal an API key in settings if you want local agent access.");
|
|
160
|
+
console.log("after that, run " + chalk_1.default.cyan("youmd login --key YOUR_KEY"));
|
|
161
|
+
console.log("");
|
|
162
|
+
}
|
|
138
163
|
async function loginWithKey(key) {
|
|
139
164
|
// Save the key first
|
|
140
165
|
const config = (0, config_1.readGlobalConfig)();
|
|
141
166
|
config.token = key;
|
|
142
|
-
config.apiUrl =
|
|
167
|
+
config.apiUrl = (0, config_1.getConvexSiteUrl)();
|
|
143
168
|
(0, config_1.writeGlobalConfig)(config);
|
|
144
169
|
console.log("");
|
|
145
170
|
const spinner = new render_1.BrailleSpinner("verifying key");
|
|
@@ -161,20 +186,21 @@ async function loginWithKey(key) {
|
|
|
161
186
|
return;
|
|
162
187
|
}
|
|
163
188
|
const me = res.data;
|
|
164
|
-
|
|
165
|
-
config.
|
|
189
|
+
const user = (0, api_1.getMeUser)(me);
|
|
190
|
+
config.username = user.username;
|
|
191
|
+
config.email = user.email;
|
|
166
192
|
(0, config_1.writeGlobalConfig)(config);
|
|
167
193
|
spinner.stop();
|
|
168
194
|
console.log("");
|
|
169
195
|
console.log(" " + chalk_1.default.green("authenticated") +
|
|
170
196
|
" as " +
|
|
171
|
-
chalk_1.default.hex("#C46A3A")("@" +
|
|
197
|
+
chalk_1.default.hex("#C46A3A")("@" + (user.username || "unknown")));
|
|
172
198
|
console.log("");
|
|
173
|
-
console.log(" user: " +
|
|
174
|
-
if (
|
|
175
|
-
console.log(" email: " +
|
|
199
|
+
console.log(" user: " + (user.username || "unknown"));
|
|
200
|
+
if (user.email) {
|
|
201
|
+
console.log(" email: " + user.email);
|
|
176
202
|
}
|
|
177
|
-
console.log(" plan: " +
|
|
203
|
+
console.log(" plan: " + (user.plan || "free"));
|
|
178
204
|
console.log(" key: " + key.slice(0, 8) + "..." + key.slice(-4));
|
|
179
205
|
console.log("");
|
|
180
206
|
}
|
|
@@ -205,15 +231,6 @@ function promptInput(prompt) {
|
|
|
205
231
|
});
|
|
206
232
|
});
|
|
207
233
|
}
|
|
208
|
-
// Ensure raw mode is restored if the process exits unexpectedly during password input
|
|
209
|
-
process.on('exit', () => {
|
|
210
|
-
if (process.stdin.isTTY) {
|
|
211
|
-
try {
|
|
212
|
-
process.stdin.setRawMode(false);
|
|
213
|
-
}
|
|
214
|
-
catch { }
|
|
215
|
-
}
|
|
216
|
-
});
|
|
217
234
|
function promptPassword(prompt) {
|
|
218
235
|
return new Promise((resolve) => {
|
|
219
236
|
// Write the prompt manually
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logs.d.ts","sourceRoot":"","sources":["../../src/commands/logs.ts"],"names":[],"mappings":"AAyDA,wBAAsB,WAAW,CAAC,OAAO,EAAE;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,GAAG,OAAO,CAAC,IAAI,CAAC,CA2DhB"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.logsCommand = logsCommand;
|
|
7
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
8
|
+
const config_1 = require("../lib/config");
|
|
9
|
+
const DIM = chalk_1.default.dim;
|
|
10
|
+
function formatTime(ts) {
|
|
11
|
+
const d = new Date(ts);
|
|
12
|
+
return d.toTimeString().slice(0, 5);
|
|
13
|
+
}
|
|
14
|
+
function actionColor(action) {
|
|
15
|
+
if (action.includes("read") || action === "skill_use")
|
|
16
|
+
return chalk_1.default.cyan;
|
|
17
|
+
if (action.includes("write") || action === "push" || action === "publish")
|
|
18
|
+
return chalk_1.default.green;
|
|
19
|
+
if (action === "memory_add")
|
|
20
|
+
return chalk_1.default.magenta;
|
|
21
|
+
return chalk_1.default.white;
|
|
22
|
+
}
|
|
23
|
+
async function fetchActivity(opts) {
|
|
24
|
+
const config = (0, config_1.readGlobalConfig)();
|
|
25
|
+
if (!config.token)
|
|
26
|
+
return [];
|
|
27
|
+
const siteUrl = (0, config_1.getConvexSiteUrl)();
|
|
28
|
+
const params = new URLSearchParams();
|
|
29
|
+
if (opts.limit)
|
|
30
|
+
params.set("limit", String(opts.limit));
|
|
31
|
+
if (opts.agent)
|
|
32
|
+
params.set("agent", opts.agent);
|
|
33
|
+
if (opts.action)
|
|
34
|
+
params.set("action", opts.action);
|
|
35
|
+
try {
|
|
36
|
+
const res = await fetch(`${siteUrl}/api/v1/me/activity?${params}`, {
|
|
37
|
+
headers: { Authorization: `Bearer ${config.token}` },
|
|
38
|
+
signal: AbortSignal.timeout(10000),
|
|
39
|
+
});
|
|
40
|
+
if (!res.ok)
|
|
41
|
+
return [];
|
|
42
|
+
const data = (await res.json());
|
|
43
|
+
return data.activity || [];
|
|
44
|
+
}
|
|
45
|
+
catch {
|
|
46
|
+
return [];
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
async function logsCommand(options) {
|
|
50
|
+
if (!(0, config_1.isAuthenticated)()) {
|
|
51
|
+
console.log("");
|
|
52
|
+
console.log(chalk_1.default.yellow(" not authenticated"));
|
|
53
|
+
console.log(" run " + chalk_1.default.cyan("youmd login") + " to view activity logs.");
|
|
54
|
+
console.log("");
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
const limit = parseInt(options.limit || "30", 10);
|
|
58
|
+
if (options.tail) {
|
|
59
|
+
console.log("");
|
|
60
|
+
console.log(DIM(" --- youmd activity (live, ctrl-c to stop) ---"));
|
|
61
|
+
console.log("");
|
|
62
|
+
let lastSeen = null;
|
|
63
|
+
// eslint-disable-next-line no-constant-condition
|
|
64
|
+
while (true) {
|
|
65
|
+
const events = await fetchActivity({
|
|
66
|
+
limit: 50,
|
|
67
|
+
agent: options.agent,
|
|
68
|
+
action: options.action,
|
|
69
|
+
});
|
|
70
|
+
const newEvents = lastSeen
|
|
71
|
+
? events.filter((e) => e.createdAt > lastSeen).reverse()
|
|
72
|
+
: events.slice(0, 10).reverse();
|
|
73
|
+
for (const e of newEvents) {
|
|
74
|
+
printEvent(e);
|
|
75
|
+
}
|
|
76
|
+
if (events.length > 0) {
|
|
77
|
+
lastSeen = Math.max(...events.map((e) => e.createdAt));
|
|
78
|
+
}
|
|
79
|
+
await new Promise((r) => setTimeout(r, 2000));
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
console.log("");
|
|
84
|
+
console.log(DIM(" --- recent activity ---"));
|
|
85
|
+
console.log("");
|
|
86
|
+
const events = await fetchActivity({
|
|
87
|
+
limit,
|
|
88
|
+
agent: options.agent,
|
|
89
|
+
action: options.action,
|
|
90
|
+
});
|
|
91
|
+
if (events.length === 0) {
|
|
92
|
+
console.log(" " + DIM("no activity yet -- agents will appear here when they connect"));
|
|
93
|
+
console.log("");
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
for (const e of events.slice().reverse()) {
|
|
97
|
+
printEvent(e);
|
|
98
|
+
}
|
|
99
|
+
console.log("");
|
|
100
|
+
console.log(DIM(` ${events.length} event${events.length === 1 ? "" : "s"} -- use --tail for live mode`));
|
|
101
|
+
console.log("");
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
function printEvent(e) {
|
|
105
|
+
const time = formatTime(e.createdAt);
|
|
106
|
+
const agent = chalk_1.default.bold(e.agentName.padEnd(16));
|
|
107
|
+
const action = actionColor(e.action)(e.action.padEnd(12));
|
|
108
|
+
const resource = e.resource ? DIM(e.resource) : "";
|
|
109
|
+
const scope = e.scope ? DIM(`[${e.scope}]`) : "";
|
|
110
|
+
const versions = e.bundleVersionBefore && e.bundleVersionAfter
|
|
111
|
+
? DIM(` v${e.bundleVersionBefore}->v${e.bundleVersionAfter}`)
|
|
112
|
+
: "";
|
|
113
|
+
console.log(` ${DIM(time)} ${agent} ${action} ${resource} ${scope}${versions}`);
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=logs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logs.js","sourceRoot":"","sources":["../../src/commands/logs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/commands/mcp.ts"],"names":[],"mappings":"AAiBA,wBAAsB,UAAU,CAAC,OAAO,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAqB7G"}
|
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.mcpCommand = mcpCommand;
|
|
40
|
+
const fs = __importStar(require("fs"));
|
|
41
|
+
const os = __importStar(require("os"));
|
|
42
|
+
const path = __importStar(require("path"));
|
|
43
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
44
|
+
const config_1 = require("../lib/config");
|
|
45
|
+
const ACCENT = chalk_1.default.hex("#C46A3A");
|
|
46
|
+
const DIM = chalk_1.default.dim;
|
|
47
|
+
const PUBLISHED_MCP_PACKAGE = process.env.YOUMD_MCP_PACKAGE || "youmd@latest";
|
|
48
|
+
function getPublishedMcpEntry() {
|
|
49
|
+
return {
|
|
50
|
+
command: "npx",
|
|
51
|
+
args: ["--yes", PUBLISHED_MCP_PACKAGE, "mcp"],
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
async function mcpCommand(options) {
|
|
55
|
+
// --json: output MCP config for agent settings
|
|
56
|
+
if (options.json) {
|
|
57
|
+
const config = getMcpConfig();
|
|
58
|
+
console.log(JSON.stringify(config, null, 2));
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
// --install: show setup instructions for a specific agent (or auto-write)
|
|
62
|
+
if (options.install) {
|
|
63
|
+
await installMcp(options.install, options.auto);
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
// Default: start the MCP server
|
|
67
|
+
if (!(0, config_1.localBundleExists)()) {
|
|
68
|
+
console.error("youmd mcp: no local .youmd/ bundle -- remote-only mode (run youmd init for full features)");
|
|
69
|
+
}
|
|
70
|
+
const { startMcpServer } = await Promise.resolve().then(() => __importStar(require("../mcp/server")));
|
|
71
|
+
await startMcpServer();
|
|
72
|
+
}
|
|
73
|
+
function getMcpConfig() {
|
|
74
|
+
const binPath = process.argv[1];
|
|
75
|
+
const repoLocalDist = path.resolve(process.cwd(), "cli", "dist", "index.js");
|
|
76
|
+
// When running from the source repo itself, prefer the checked-out local CLI
|
|
77
|
+
// so MCP clients exercise the latest in-repo implementation instead of npm.
|
|
78
|
+
if (binPath && path.resolve(binPath) === repoLocalDist && fs.existsSync(repoLocalDist)) {
|
|
79
|
+
return {
|
|
80
|
+
youmd: {
|
|
81
|
+
command: "node",
|
|
82
|
+
args: [repoLocalDist, "mcp"],
|
|
83
|
+
},
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
return {
|
|
87
|
+
youmd: getPublishedMcpEntry(),
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
function mergeMcpServers(existing) {
|
|
91
|
+
return { ...(existing || {}), youmd: getPublishedMcpEntry() };
|
|
92
|
+
}
|
|
93
|
+
function backupAndWrite(filePath, content) {
|
|
94
|
+
const ts = new Date().toISOString().replace(/[:.]/g, "-");
|
|
95
|
+
const backupPath = `${filePath}.bak.${ts}`;
|
|
96
|
+
if (fs.existsSync(filePath)) {
|
|
97
|
+
fs.copyFileSync(filePath, backupPath);
|
|
98
|
+
}
|
|
99
|
+
fs.mkdirSync(path.dirname(filePath), { recursive: true });
|
|
100
|
+
fs.writeFileSync(filePath, content);
|
|
101
|
+
return backupPath;
|
|
102
|
+
}
|
|
103
|
+
function installClaudeAuto() {
|
|
104
|
+
const settingsPath = path.join(os.homedir(), ".claude", "settings.json");
|
|
105
|
+
let settings = {};
|
|
106
|
+
const existed = fs.existsSync(settingsPath);
|
|
107
|
+
if (existed) {
|
|
108
|
+
try {
|
|
109
|
+
const raw = fs.readFileSync(settingsPath, "utf-8");
|
|
110
|
+
settings = raw.trim().length > 0 ? JSON.parse(raw) : {};
|
|
111
|
+
}
|
|
112
|
+
catch (err) {
|
|
113
|
+
console.log("");
|
|
114
|
+
console.log(chalk_1.default.yellow(" could not parse ~/.claude/settings.json:"));
|
|
115
|
+
console.log(" " + DIM(err instanceof Error ? err.message : String(err)));
|
|
116
|
+
console.log(DIM(" falling back to manual instructions."));
|
|
117
|
+
console.log("");
|
|
118
|
+
return false;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
const mcpServers = mergeMcpServers(settings.mcpServers);
|
|
122
|
+
const next = { ...settings, mcpServers };
|
|
123
|
+
const json = JSON.stringify(next, null, 2) + "\n";
|
|
124
|
+
const backupPath = backupAndWrite(settingsPath, json);
|
|
125
|
+
console.log("");
|
|
126
|
+
console.log(" " + ACCENT("you.md mcp") + DIM(" -- claude code (auto)"));
|
|
127
|
+
console.log("");
|
|
128
|
+
console.log(" " + chalk_1.default.green("\u2713") + " merged youmd into " + chalk_1.default.cyan(settingsPath));
|
|
129
|
+
if (existed) {
|
|
130
|
+
console.log(" " + DIM("backup: " + backupPath));
|
|
131
|
+
}
|
|
132
|
+
console.log("");
|
|
133
|
+
console.log(" " + chalk_1.default.bold("Installed. Restart Claude Code to activate."));
|
|
134
|
+
console.log("");
|
|
135
|
+
return true;
|
|
136
|
+
}
|
|
137
|
+
function installCursorAuto() {
|
|
138
|
+
const settingsPath = path.join(process.cwd(), ".cursor", "mcp.json");
|
|
139
|
+
let settings = {};
|
|
140
|
+
const existed = fs.existsSync(settingsPath);
|
|
141
|
+
if (existed) {
|
|
142
|
+
try {
|
|
143
|
+
const raw = fs.readFileSync(settingsPath, "utf-8");
|
|
144
|
+
settings = raw.trim().length > 0 ? JSON.parse(raw) : {};
|
|
145
|
+
}
|
|
146
|
+
catch (err) {
|
|
147
|
+
console.log("");
|
|
148
|
+
console.log(chalk_1.default.yellow(" could not parse .cursor/mcp.json:"));
|
|
149
|
+
console.log(" " + DIM(err instanceof Error ? err.message : String(err)));
|
|
150
|
+
console.log(DIM(" falling back to manual instructions."));
|
|
151
|
+
console.log("");
|
|
152
|
+
return false;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
const mcpServers = mergeMcpServers(settings.mcpServers);
|
|
156
|
+
const next = { ...settings, mcpServers };
|
|
157
|
+
const json = JSON.stringify(next, null, 2) + "\n";
|
|
158
|
+
const backupPath = backupAndWrite(settingsPath, json);
|
|
159
|
+
console.log("");
|
|
160
|
+
console.log(" " + ACCENT("you.md mcp") + DIM(" -- cursor (auto)"));
|
|
161
|
+
console.log("");
|
|
162
|
+
console.log(" " + chalk_1.default.green("\u2713") + " merged youmd into " + chalk_1.default.cyan(settingsPath));
|
|
163
|
+
if (existed) {
|
|
164
|
+
console.log(" " + DIM("backup: " + backupPath));
|
|
165
|
+
}
|
|
166
|
+
else {
|
|
167
|
+
console.log(" " + DIM("created new .cursor/mcp.json"));
|
|
168
|
+
}
|
|
169
|
+
console.log("");
|
|
170
|
+
console.log(" " + chalk_1.default.bold("Installed. Restart Cursor to activate."));
|
|
171
|
+
console.log("");
|
|
172
|
+
return true;
|
|
173
|
+
}
|
|
174
|
+
async function installMcp(target, auto) {
|
|
175
|
+
const config = (0, config_1.readGlobalConfig)();
|
|
176
|
+
const username = config.username || "user";
|
|
177
|
+
const authed = (0, config_1.isAuthenticated)();
|
|
178
|
+
if (auto) {
|
|
179
|
+
if (target === "claude") {
|
|
180
|
+
if (installClaudeAuto())
|
|
181
|
+
return;
|
|
182
|
+
// fall through to manual instructions on error
|
|
183
|
+
}
|
|
184
|
+
else if (target === "cursor") {
|
|
185
|
+
if (installCursorAuto())
|
|
186
|
+
return;
|
|
187
|
+
}
|
|
188
|
+
else {
|
|
189
|
+
console.log("");
|
|
190
|
+
console.log(chalk_1.default.yellow(` --auto not supported for target: ${target}`));
|
|
191
|
+
console.log(DIM(" supported: claude, cursor"));
|
|
192
|
+
console.log("");
|
|
193
|
+
return;
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
if (target === "claude") {
|
|
197
|
+
console.log("");
|
|
198
|
+
console.log(" " + ACCENT("you.md mcp") + DIM(" -- claude code"));
|
|
199
|
+
console.log("");
|
|
200
|
+
console.log(" add to " + chalk_1.default.cyan("~/.claude/settings.json") + ":");
|
|
201
|
+
console.log("");
|
|
202
|
+
console.log(DIM(" {"));
|
|
203
|
+
console.log(DIM(" \"mcpServers\": {"));
|
|
204
|
+
console.log(` ${chalk_1.default.green('"youmd"')}: {`);
|
|
205
|
+
console.log(` "command": ${chalk_1.default.green('"npx"')},`);
|
|
206
|
+
console.log(` "args": [${chalk_1.default.green('"--yes"')}, ${chalk_1.default.green(`"${PUBLISHED_MCP_PACKAGE}"`)}, ${chalk_1.default.green('"mcp"')}]`);
|
|
207
|
+
console.log(" }");
|
|
208
|
+
console.log(DIM(" }"));
|
|
209
|
+
console.log(DIM(" }"));
|
|
210
|
+
console.log("");
|
|
211
|
+
console.log(" then restart claude code.");
|
|
212
|
+
console.log("");
|
|
213
|
+
if (authed) {
|
|
214
|
+
console.log(DIM(` authenticated as @${username}`));
|
|
215
|
+
console.log(DIM(" memories, remote push, and skill sync available"));
|
|
216
|
+
}
|
|
217
|
+
else {
|
|
218
|
+
console.log(chalk_1.default.yellow(" not authenticated -- run youmd login for full features"));
|
|
219
|
+
}
|
|
220
|
+
console.log("");
|
|
221
|
+
}
|
|
222
|
+
else if (target === "cursor") {
|
|
223
|
+
console.log("");
|
|
224
|
+
console.log(" " + ACCENT("you.md mcp") + DIM(" -- cursor"));
|
|
225
|
+
console.log("");
|
|
226
|
+
console.log(" add to " + chalk_1.default.cyan(".cursor/mcp.json") + " in your project root:");
|
|
227
|
+
console.log("");
|
|
228
|
+
// Show clean, copy-pasteable JSON
|
|
229
|
+
const cursorConfig = {
|
|
230
|
+
mcpServers: {
|
|
231
|
+
youmd: {
|
|
232
|
+
command: "npx",
|
|
233
|
+
args: ["--yes", PUBLISHED_MCP_PACKAGE, "mcp"],
|
|
234
|
+
},
|
|
235
|
+
},
|
|
236
|
+
};
|
|
237
|
+
const jsonLines = JSON.stringify(cursorConfig, null, 2).split("\n");
|
|
238
|
+
for (const line of jsonLines) {
|
|
239
|
+
console.log(" " + chalk_1.default.white(line));
|
|
240
|
+
}
|
|
241
|
+
console.log("");
|
|
242
|
+
if (authed) {
|
|
243
|
+
console.log(DIM(` authenticated as @${username}`));
|
|
244
|
+
console.log(DIM(" your identity context will be available to cursor agents."));
|
|
245
|
+
}
|
|
246
|
+
else {
|
|
247
|
+
console.log(chalk_1.default.yellow(" not authenticated -- run youmd login for full features"));
|
|
248
|
+
}
|
|
249
|
+
console.log("");
|
|
250
|
+
}
|
|
251
|
+
else {
|
|
252
|
+
console.log("");
|
|
253
|
+
console.log(chalk_1.default.yellow(` unknown target: ${target}`));
|
|
254
|
+
console.log(" supported: " + chalk_1.default.cyan("claude") + ", " + chalk_1.default.cyan("cursor"));
|
|
255
|
+
console.log("");
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
//# sourceMappingURL=mcp.js.map
|