youmd 0.6.13 → 0.6.19
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.js +3 -0
- package/dist/__tests__/api.test.js.map +1 -1
- package/dist/__tests__/integration.test.js +15 -8
- package/dist/__tests__/integration.test.js.map +1 -1
- package/dist/commands/chat.d.ts.map +1 -1
- package/dist/commands/chat.js +289 -96
- package/dist/commands/chat.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/lib/ascii.d.ts +1 -0
- package/dist/lib/ascii.d.ts.map +1 -1
- package/dist/lib/ascii.js +26 -2
- package/dist/lib/ascii.js.map +1 -1
- package/dist/lib/project.d.ts +2 -0
- package/dist/lib/project.d.ts.map +1 -1
- package/dist/lib/project.js +173 -22
- package/dist/lib/project.js.map +1 -1
- package/dist/mcp/server.js +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.test.js","sourceRoot":"","sources":["../../src/__tests__/api.test.ts"],"names":[],"mappings":";;AAAA,mCAA6D;AAC7D,oCAA0E;AAE1E,IAAA,iBAAQ,EAAC,WAAW,EAAE,GAAG,EAAE;IACzB,IAAA,WAAE,EAAC,6DAA6D,EAAE,GAAG,EAAE;QACrE,MAAM,EAAE,GAAe;YACrB,IAAI,EAAE;gBACJ,QAAQ,EAAE,aAAa;gBACvB,KAAK,EAAE,oBAAoB;gBAC3B,WAAW,EAAE,aAAa;gBAC1B,IAAI,EAAE,KAAK;gBACX,SAAS,EAAE,GAAG;aACf;YACD,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,IAAI;YACrB,WAAW,EAAE,CAAC;SACf,CAAC;QAEF,IAAA,eAAM,EAAC,IAAA,eAAS,EAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;YAC5B,QAAQ,EAAE,aAAa;YACvB,KAAK,EAAE,oBAAoB;YAC3B,WAAW,EAAE,aAAa;YAC1B,IAAI,EAAE,KAAK;YACX,SAAS,EAAE,GAAG;SACf,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,6DAA6D,EAAE,GAAG,EAAE;QACrE,MAAM,EAAE,GAAe;YACrB,QAAQ,EAAE,WAAW;YACrB,KAAK,EAAE,kBAAkB;YACzB,WAAW,EAAE,WAAW;YACxB,IAAI,EAAE,MAAM;YACZ,SAAS,EAAE,GAAG;YACd,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,IAAI;YACrB,WAAW,EAAE,CAAC;SACf,CAAC;QAEF,IAAA,eAAM,EAAC,IAAA,eAAS,EAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;YAC5B,QAAQ,EAAE,WAAW;YACrB,KAAK,EAAE,kBAAkB;YACzB,WAAW,EAAE,WAAW;YACxB,IAAI,EAAE,MAAM;YACZ,SAAS,EAAE,GAAG;SACf,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAA,iBAAQ,EAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,IAAA,kBAAS,EAAC,GAAG,EAAE;QACb,WAAE,CAAC,eAAe,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;QAC7E,MAAM,OAAO,GAAG;YACd,MAAM,EAAE,WAAW;YACnB,QAAQ,EAAE,aAAa;YACvB,QAAQ,EAAE;gBACR,IAAI,EAAE,aAAa;aACpB;YACD,QAAQ,EAAE;gBACR,WAAW,EAAE,aAAa;aAC3B;YACD,KAAK,EAAE,eAAe;SACvB,CAAC;QAEF,WAAE,CAAC,UAAU,CACX,OAAO,EACP,WAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CACf,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YACpC,MAAM,EAAE,GAAG;YACX,OAAO,EAAE;gBACP,cAAc,EAAE,gCAAgC;aACjD;SACF,CAAC,CACH,CACF,CAAC;QAEF,MAAM,IAAA,eAAM,EAAC,IAAA,sBAAgB,EAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;YAC7D,OAAO,EAAE;gBACP,MAAM,EAAE,WAAW;gBACnB,QAAQ,EAAE,aAAa;gBACvB,QAAQ,EAAE;oBACR,IAAI,EAAE,aAAa;iBACpB;gBACD,KAAK,EAAE,eAAe;aACvB;YACD,KAAK,EAAE,eAAe;YACtB,QAAQ,EAAE,aAAa;YACvB,WAAW,EAAE,aAAa;SAC3B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"api.test.js","sourceRoot":"","sources":["../../src/__tests__/api.test.ts"],"names":[],"mappings":";;AAAA,mCAA6D;AAC7D,oCAA0E;AAE1E,IAAA,iBAAQ,EAAC,WAAW,EAAE,GAAG,EAAE;IACzB,IAAA,WAAE,EAAC,6DAA6D,EAAE,GAAG,EAAE;QACrE,MAAM,EAAE,GAAe;YACrB,IAAI,EAAE;gBACJ,QAAQ,EAAE,aAAa;gBACvB,KAAK,EAAE,oBAAoB;gBAC3B,WAAW,EAAE,aAAa;gBAC1B,IAAI,EAAE,KAAK;gBACX,SAAS,EAAE,GAAG;aACf;YACD,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,IAAI;YACrB,WAAW,EAAE,CAAC;SACf,CAAC;QAEF,IAAA,eAAM,EAAC,IAAA,eAAS,EAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;YAC5B,QAAQ,EAAE,aAAa;YACvB,KAAK,EAAE,oBAAoB;YAC3B,WAAW,EAAE,aAAa;YAC1B,IAAI,EAAE,KAAK;YACX,SAAS,EAAE,GAAG;SACf,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,6DAA6D,EAAE,GAAG,EAAE;QACrE,MAAM,EAAE,GAAe;YACrB,QAAQ,EAAE,WAAW;YACrB,KAAK,EAAE,kBAAkB;YACzB,WAAW,EAAE,WAAW;YACxB,IAAI,EAAE,MAAM;YACZ,SAAS,EAAE,GAAG;YACd,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,IAAI;YACrB,WAAW,EAAE,CAAC;SACf,CAAC;QAEF,IAAA,eAAM,EAAC,IAAA,eAAS,EAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;YAC5B,QAAQ,EAAE,WAAW;YACrB,KAAK,EAAE,kBAAkB;YACzB,WAAW,EAAE,WAAW;YACxB,IAAI,EAAE,MAAM;YACZ,SAAS,EAAE,GAAG;SACf,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAA,iBAAQ,EAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,IAAA,kBAAS,EAAC,GAAG,EAAE;QACb,WAAE,CAAC,eAAe,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;QAC7E,MAAM,OAAO,GAAG;YACd,MAAM,EAAE,WAAW;YACnB,QAAQ,EAAE,aAAa;YACvB,QAAQ,EAAE;gBACR,IAAI,EAAE,aAAa;aACpB;YACD,QAAQ,EAAE;gBACR,WAAW,EAAE,aAAa;aAC3B;YACD,KAAK,EAAE,eAAe;SACvB,CAAC;QAEF,WAAE,CAAC,UAAU,CACX,OAAO,EACP,WAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CACf,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;YACpC,MAAM,EAAE,GAAG;YACX,OAAO,EAAE;gBACP,cAAc,EAAE,gCAAgC;aACjD;SACF,CAAC,CACH,CACF,CAAC;QAEF,MAAM,IAAA,eAAM,EAAC,IAAA,sBAAgB,EAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;YAC7D,OAAO,EAAE;gBACP,MAAM,EAAE,WAAW;gBACnB,QAAQ,EAAE,aAAa;gBACvB,QAAQ,EAAE;oBACR,IAAI,EAAE,aAAa;iBACpB;gBACD,QAAQ,EAAE;oBACR,WAAW,EAAE,aAAa;iBAC3B;gBACD,KAAK,EAAE,eAAe;aACvB;YACD,KAAK,EAAE,eAAe;YACtB,QAAQ,EAAE,aAAa;YACvB,WAAW,EAAE,aAAa;SAC3B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -192,6 +192,16 @@ A test bio.`);
|
|
|
192
192
|
});
|
|
193
193
|
});
|
|
194
194
|
(0, vitest_1.describe)("integration: API endpoint contract", () => {
|
|
195
|
+
function hasUsableIdentityData(data) {
|
|
196
|
+
const identity = data.identity;
|
|
197
|
+
if (!identity)
|
|
198
|
+
return false;
|
|
199
|
+
const bio = identity.bio;
|
|
200
|
+
return (Boolean(identity.name) ||
|
|
201
|
+
Boolean(identity.tagline) ||
|
|
202
|
+
Boolean(bio?.short) ||
|
|
203
|
+
Boolean(bio?.medium));
|
|
204
|
+
}
|
|
195
205
|
async function getLivePublicUsernames(limit = 3) {
|
|
196
206
|
const res = await fetch("https://kindly-cassowary-600.convex.site/api/v1/profiles", { signal: AbortSignal.timeout(10000) });
|
|
197
207
|
(0, vitest_1.expect)(res.ok).toBe(true);
|
|
@@ -204,7 +214,10 @@ A test bio.`);
|
|
|
204
214
|
for (const username of candidates) {
|
|
205
215
|
const profileRes = await fetch(`https://kindly-cassowary-600.convex.site/api/v1/profiles?username=${username}`, { signal: AbortSignal.timeout(10000) });
|
|
206
216
|
if (profileRes.ok) {
|
|
207
|
-
|
|
217
|
+
const profile = await profileRes.json();
|
|
218
|
+
if (hasUsableIdentityData(profile)) {
|
|
219
|
+
confirmed.push(username);
|
|
220
|
+
}
|
|
208
221
|
}
|
|
209
222
|
if (confirmed.length >= limit) {
|
|
210
223
|
break;
|
|
@@ -262,13 +275,7 @@ A test bio.`);
|
|
|
262
275
|
const res = await fetch(`https://kindly-cassowary-600.convex.site/api/v1/profiles?username=${username}`, { signal: AbortSignal.timeout(10000) });
|
|
263
276
|
(0, vitest_1.expect)(res.ok).toBe(true);
|
|
264
277
|
const data = await res.json();
|
|
265
|
-
|
|
266
|
-
(0, vitest_1.expect)(identity).toBeDefined();
|
|
267
|
-
const bio = identity.bio;
|
|
268
|
-
(0, vitest_1.expect)(Boolean(identity.name) ||
|
|
269
|
-
Boolean(identity.tagline) ||
|
|
270
|
-
Boolean(bio?.short) ||
|
|
271
|
-
Boolean(bio?.medium)).toBe(true);
|
|
278
|
+
(0, vitest_1.expect)(hasUsableIdentityData(data)).toBe(true);
|
|
272
279
|
const projects = data.projects;
|
|
273
280
|
(0, vitest_1.expect)(Array.isArray(projects)).toBe(true);
|
|
274
281
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"integration.test.js","sourceRoot":"","sources":["../../src/__tests__/integration.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"integration.test.js","sourceRoot":"","sources":["../../src/__tests__/integration.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/commands/chat.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/commands/chat.ts"],"names":[],"mappings":"AAslDA,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CA0jBjD"}
|
package/dist/commands/chat.js
CHANGED
|
@@ -46,6 +46,7 @@ const config_1 = require("../lib/config");
|
|
|
46
46
|
const project_1 = require("../lib/project");
|
|
47
47
|
const compiler_1 = require("../lib/compiler");
|
|
48
48
|
const api_1 = require("../lib/api");
|
|
49
|
+
const skills_1 = require("../lib/skills");
|
|
49
50
|
const render_1 = require("../lib/render");
|
|
50
51
|
const onboarding_1 = require("../lib/onboarding");
|
|
51
52
|
const ascii_1 = require("../lib/ascii");
|
|
@@ -54,7 +55,7 @@ const update_1 = require("../lib/update");
|
|
|
54
55
|
const config_2 = require("../lib/config");
|
|
55
56
|
const CONVEX_SITE_URL = (0, config_2.getConvexSiteUrl)();
|
|
56
57
|
const STREAM_URL = `${CONVEX_SITE_URL}/api/v1/chat/stream`;
|
|
57
|
-
const CURRENT_VERSION = "0.6.
|
|
58
|
+
const CURRENT_VERSION = "0.6.19";
|
|
58
59
|
function delay(ms) {
|
|
59
60
|
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
60
61
|
}
|
|
@@ -980,13 +981,14 @@ async function runYouLaunchInvestigation(bundleDir, projectCtx, recentProjects)
|
|
|
980
981
|
const findings = [];
|
|
981
982
|
let strongestMove;
|
|
982
983
|
let strongestCommand;
|
|
984
|
+
let strongestProject;
|
|
983
985
|
const rotation = setInterval(() => {
|
|
984
986
|
spinner.update(labels[labelIndex % labels.length]);
|
|
985
987
|
labelIndex += 1;
|
|
986
988
|
}, 1100);
|
|
987
989
|
spinner.start();
|
|
988
990
|
try {
|
|
989
|
-
await delay(
|
|
991
|
+
await delay(600);
|
|
990
992
|
try {
|
|
991
993
|
const hasPreferences = fs.existsSync(path.join(bundleDir, "preferences", "agent.md"));
|
|
992
994
|
const hasDirectives = fs.existsSync(path.join(bundleDir, "directives", "agent.md"));
|
|
@@ -1026,6 +1028,15 @@ async function runYouLaunchInvestigation(bundleDir, projectCtx, recentProjects)
|
|
|
1026
1028
|
if (repoNeedsBootstrap(projectCtx.root)) {
|
|
1027
1029
|
strongestMove = `${projectCtx.name} still wants cleaner agent wiring and project-context scaffolding.`;
|
|
1028
1030
|
strongestCommand = "youmd skill init-project";
|
|
1031
|
+
strongestProject = {
|
|
1032
|
+
name: projectCtx.name,
|
|
1033
|
+
slug: projectCtx.name,
|
|
1034
|
+
projectDir: projectCtx.root,
|
|
1035
|
+
updatedAt: Date.now(),
|
|
1036
|
+
signals: ["still wants cleaner agent wiring and project-context scaffolding"],
|
|
1037
|
+
summary: `${projectCtx.name} still wants cleaner agent wiring and project-context scaffolding.`,
|
|
1038
|
+
suggestedCommand: "youmd skill init-project",
|
|
1039
|
+
};
|
|
1029
1040
|
}
|
|
1030
1041
|
}
|
|
1031
1042
|
catch {
|
|
@@ -1044,16 +1055,24 @@ async function runYouLaunchInvestigation(bundleDir, projectCtx, recentProjects)
|
|
|
1044
1055
|
findings.push(`${insights[0].name} already looks pretty well-shaped, so i can go deeper instead of scaffolding basics.`);
|
|
1045
1056
|
}
|
|
1046
1057
|
else if (opportunities.length > 0) {
|
|
1047
|
-
|
|
1048
|
-
|
|
1058
|
+
const strongest = opportunities[0];
|
|
1059
|
+
strongestMove = strongest.summary;
|
|
1060
|
+
strongestCommand = strongest.suggestedCommand;
|
|
1061
|
+
strongestProject = strongest;
|
|
1049
1062
|
}
|
|
1050
1063
|
}
|
|
1051
1064
|
else {
|
|
1052
1065
|
findings.push("i've got your home bundle loaded, even though we're not inside a project yet.");
|
|
1053
1066
|
}
|
|
1054
|
-
await delay(
|
|
1067
|
+
await delay(900);
|
|
1055
1068
|
spinner.stop("looked through local context");
|
|
1056
|
-
return {
|
|
1069
|
+
return {
|
|
1070
|
+
findings: findings.slice(0, 3),
|
|
1071
|
+
strongestMove,
|
|
1072
|
+
strongestCommand,
|
|
1073
|
+
strongestProject,
|
|
1074
|
+
recentProjects: recentProjects.slice(0, 3),
|
|
1075
|
+
};
|
|
1057
1076
|
}
|
|
1058
1077
|
finally {
|
|
1059
1078
|
clearInterval(rotation);
|
|
@@ -1068,7 +1087,7 @@ async function printChatOpening(bundleDir, projectCtx) {
|
|
|
1068
1087
|
const recentInsights = (0, project_1.getRecentProjectInsights)(process.cwd(), 6);
|
|
1069
1088
|
const recentProjects = (0, project_1.getFeaturedRecentProjectNames)(recentInsights, 6);
|
|
1070
1089
|
const launchSurface = process.env.YOUMD_LAUNCH_SURFACE;
|
|
1071
|
-
let investigation = { findings: [] };
|
|
1090
|
+
let investigation = { findings: [], recentProjects: recentProjects.slice(0, 3) };
|
|
1072
1091
|
(0, ascii_1.printYouLogo)();
|
|
1073
1092
|
let didShowPortrait = false;
|
|
1074
1093
|
if (launchSurface !== "you") {
|
|
@@ -1083,6 +1102,7 @@ async function printChatOpening(bundleDir, projectCtx) {
|
|
|
1083
1102
|
currentProject: projectCtx?.name,
|
|
1084
1103
|
recentProjects,
|
|
1085
1104
|
portraitLines,
|
|
1105
|
+
compact: true,
|
|
1086
1106
|
})
|
|
1087
1107
|
: false;
|
|
1088
1108
|
}
|
|
@@ -1090,74 +1110,46 @@ async function printChatOpening(bundleDir, projectCtx) {
|
|
|
1090
1110
|
console.log("");
|
|
1091
1111
|
console.log(" " + ACCENT("there you are.") + " " + DIM("your portrait is loaded."));
|
|
1092
1112
|
}
|
|
1093
|
-
if (launchSurface === "you") {
|
|
1094
|
-
console.log("");
|
|
1095
|
-
investigation = await runYouLaunchInvestigation(bundleDir, projectCtx, recentProjects);
|
|
1096
|
-
if (investigation.findings.length > 0) {
|
|
1097
|
-
console.log("");
|
|
1098
|
-
console.log(" " + ACCENT("i checked a few corners."));
|
|
1099
|
-
for (const finding of investigation.findings) {
|
|
1100
|
-
console.log(" " + DIM("· ") + chalk_1.default.white(finding));
|
|
1101
|
-
}
|
|
1102
|
-
}
|
|
1103
|
-
}
|
|
1104
1113
|
console.log("");
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
|
-
if (projectCtx) {
|
|
1112
|
-
console.log(" " + DIM("current project: ") + chalk_1.default.white(projectCtx.name) + DIM(` (${projectCtx.root})`));
|
|
1113
|
-
if (repoNeedsBootstrap(projectCtx.root)) {
|
|
1114
|
-
console.log(" " + ACCENT("i spotted an opening.") + " " + DIM("this repo still wants AGENTS/project-context wiring."));
|
|
1115
|
-
console.log(" " + DIM("say the word or run ") + chalk_1.default.cyan("youmd skill init-project") + DIM(" and i'll set it up."));
|
|
1114
|
+
investigation = await runYouLaunchInvestigation(bundleDir, projectCtx, recentProjects);
|
|
1115
|
+
if (investigation.findings.length > 0) {
|
|
1116
|
+
console.log("");
|
|
1117
|
+
console.log(" " + ACCENT("found:"));
|
|
1118
|
+
for (const finding of investigation.findings.slice(0, 2)) {
|
|
1119
|
+
console.log(" " + DIM("· ") + chalk_1.default.white(finding));
|
|
1116
1120
|
}
|
|
1117
1121
|
}
|
|
1118
|
-
|
|
1119
|
-
console.log("
|
|
1120
|
-
|
|
1121
|
-
|
|
1122
|
-
console.log(" " + DIM("recently active: ") + recentProjects.map((name) => chalk_1.default.cyan(name)).join(DIM(", ")));
|
|
1123
|
-
}
|
|
1124
|
-
const topOpportunity = !projectCtx ? (0, project_1.getTopProjectOpportunity)(recentInsights) : null;
|
|
1125
|
-
if (topOpportunity) {
|
|
1126
|
-
console.log(" " + ACCENT("next opening i see.") + " " + DIM(topOpportunity.summary));
|
|
1127
|
-
console.log(" " + DIM("run:"));
|
|
1128
|
-
console.log(" " + chalk_1.default.cyan(topOpportunity.suggestedCommand));
|
|
1129
|
-
console.log(" " + DIM("then i'll help tighten it up."));
|
|
1122
|
+
if (launchSurface !== "you") {
|
|
1123
|
+
console.log("");
|
|
1124
|
+
console.log(" " + chalk_1.default.bold("you.md chat"));
|
|
1125
|
+
console.log(" " + DIM(`local context loaded for ${user}.`));
|
|
1130
1126
|
}
|
|
1131
1127
|
console.log("");
|
|
1132
|
-
console.log(" " + chalk_1.default.bold("you.md chat"));
|
|
1133
|
-
console.log(" " + DIM("talk naturally. i'll update your identity, spot useful structure, and suggest next moves."));
|
|
1134
|
-
console.log("");
|
|
1135
1128
|
return investigation;
|
|
1136
1129
|
}
|
|
1137
1130
|
function buildYouLaunchIntro(projectCtx, bundleDir, investigation) {
|
|
1138
1131
|
const displayName = readDisplayName(bundleDir).split(" ")[0];
|
|
1139
1132
|
const recentInsights = (0, project_1.getRecentProjectInsights)(process.cwd(), 6);
|
|
1140
|
-
const recentProjects =
|
|
1133
|
+
const recentProjects = investigation.recentProjects.length > 0
|
|
1134
|
+
? investigation.recentProjects
|
|
1135
|
+
: (0, project_1.getFeaturedRecentProjectNames)(recentInsights, 3);
|
|
1141
1136
|
const lines = [];
|
|
1142
|
-
lines.push(`hi ${displayName}. i'm U
|
|
1137
|
+
lines.push(`hi ${displayName}. i'm U.`);
|
|
1143
1138
|
if (projectCtx) {
|
|
1144
|
-
lines.push(`i
|
|
1139
|
+
lines.push(`i'm inside ${projectCtx.name}.`);
|
|
1145
1140
|
if (repoNeedsBootstrap(projectCtx.root)) {
|
|
1146
|
-
lines.push("
|
|
1141
|
+
lines.push("it still wants cleaner agent wiring.");
|
|
1147
1142
|
}
|
|
1148
1143
|
}
|
|
1149
1144
|
else if (recentProjects.length > 0) {
|
|
1150
|
-
lines.push(`
|
|
1145
|
+
lines.push(`recent orbit: ${recentProjects.slice(0, 3).join(", ")}.`);
|
|
1151
1146
|
const topOpportunity = (0, project_1.getTopProjectOpportunity)(recentInsights);
|
|
1152
1147
|
if (topOpportunity) {
|
|
1153
|
-
lines.push(`
|
|
1148
|
+
lines.push(`strongest opening: ${topOpportunity.summary}`);
|
|
1154
1149
|
}
|
|
1155
1150
|
}
|
|
1156
1151
|
else {
|
|
1157
|
-
lines.push("clean slate. we can
|
|
1158
|
-
}
|
|
1159
|
-
if (investigation.findings.length > 0) {
|
|
1160
|
-
lines.push(`quick read: ${investigation.findings.slice(0, 2).join(" ")}`);
|
|
1152
|
+
lines.push("clean slate. we can shape identity, private context, or project structure from here.");
|
|
1161
1153
|
}
|
|
1162
1154
|
const strongestMove = investigation.strongestMove
|
|
1163
1155
|
|| (projectCtx && repoNeedsBootstrap(projectCtx.root)
|
|
@@ -1165,19 +1157,242 @@ function buildYouLaunchIntro(projectCtx, bundleDir, investigation) {
|
|
|
1165
1157
|
: null)
|
|
1166
1158
|
|| (0, project_1.getTopProjectOpportunity)(recentInsights)?.summary
|
|
1167
1159
|
|| null;
|
|
1168
|
-
const strongestCommand = investigation.strongestCommand
|
|
1169
|
-
|| (projectCtx && repoNeedsBootstrap(projectCtx.root) ? "youmd skill init-project" : null)
|
|
1170
|
-
|| (0, project_1.getTopProjectOpportunity)(recentInsights)?.suggestedCommand
|
|
1171
|
-
|| null;
|
|
1172
1160
|
if (strongestMove) {
|
|
1173
|
-
lines.push(`
|
|
1174
|
-
lines.push("say \"start there\" and i'll take it
|
|
1161
|
+
lines.push(`next strongest move: ${strongestMove}`);
|
|
1162
|
+
lines.push("say \"start there\" and i'll take it.");
|
|
1175
1163
|
}
|
|
1176
1164
|
else {
|
|
1177
|
-
lines.push("point me at the next thing and i'll move first
|
|
1165
|
+
lines.push("point me at the next thing and i'll move first.");
|
|
1178
1166
|
}
|
|
1179
1167
|
return lines.join("\n\n");
|
|
1180
1168
|
}
|
|
1169
|
+
function isStartThereIntent(input) {
|
|
1170
|
+
const lower = input.toLowerCase().trim().replace(/[.!?]+$/, "");
|
|
1171
|
+
return [
|
|
1172
|
+
"start there",
|
|
1173
|
+
"start there please",
|
|
1174
|
+
"do that",
|
|
1175
|
+
"do it",
|
|
1176
|
+
"take it",
|
|
1177
|
+
"go",
|
|
1178
|
+
"go ahead",
|
|
1179
|
+
"yes",
|
|
1180
|
+
"yep",
|
|
1181
|
+
"start",
|
|
1182
|
+
].includes(lower);
|
|
1183
|
+
}
|
|
1184
|
+
function isLocalRecentProjectsIntent(input) {
|
|
1185
|
+
const lower = input.toLowerCase();
|
|
1186
|
+
const mentionsLocalWork = lower.includes("local director") ||
|
|
1187
|
+
lower.includes("local directory") ||
|
|
1188
|
+
lower.includes("local filesystem") ||
|
|
1189
|
+
lower.includes("my local") ||
|
|
1190
|
+
lower.includes("on my computer") ||
|
|
1191
|
+
lower.includes("workspace") ||
|
|
1192
|
+
lower.includes("workspaces");
|
|
1193
|
+
const asksRecentWork = lower.includes("recently touched") ||
|
|
1194
|
+
lower.includes("most recently") ||
|
|
1195
|
+
lower.includes("what i've been working") ||
|
|
1196
|
+
lower.includes("what ive been working") ||
|
|
1197
|
+
lower.includes("working on lately") ||
|
|
1198
|
+
lower.includes("recent projects");
|
|
1199
|
+
return mentionsLocalWork && asksRecentWork;
|
|
1200
|
+
}
|
|
1201
|
+
function getLocalWorkspaceRoots() {
|
|
1202
|
+
return (0, project_1.getWorkspaceRootCandidates)(process.cwd());
|
|
1203
|
+
}
|
|
1204
|
+
function getRecentFileMtime(projectDir, maxFiles = 1200) {
|
|
1205
|
+
const skipDirs = new Set([
|
|
1206
|
+
".git",
|
|
1207
|
+
"node_modules",
|
|
1208
|
+
".next",
|
|
1209
|
+
"dist",
|
|
1210
|
+
"build",
|
|
1211
|
+
".turbo",
|
|
1212
|
+
".vercel",
|
|
1213
|
+
"coverage",
|
|
1214
|
+
".cache",
|
|
1215
|
+
]);
|
|
1216
|
+
let latest = 0;
|
|
1217
|
+
let visited = 0;
|
|
1218
|
+
const stack = [{ dir: projectDir, depth: 0 }];
|
|
1219
|
+
while (stack.length > 0 && visited < maxFiles) {
|
|
1220
|
+
const current = stack.pop();
|
|
1221
|
+
if (!current)
|
|
1222
|
+
break;
|
|
1223
|
+
let entries = [];
|
|
1224
|
+
try {
|
|
1225
|
+
entries = fs.readdirSync(current.dir, { withFileTypes: true });
|
|
1226
|
+
}
|
|
1227
|
+
catch {
|
|
1228
|
+
continue;
|
|
1229
|
+
}
|
|
1230
|
+
for (const entry of entries) {
|
|
1231
|
+
if (visited >= maxFiles)
|
|
1232
|
+
break;
|
|
1233
|
+
if (entry.name.startsWith(".") && entry.name !== ".youmd-project")
|
|
1234
|
+
continue;
|
|
1235
|
+
const fullPath = path.join(current.dir, entry.name);
|
|
1236
|
+
try {
|
|
1237
|
+
const stat = fs.statSync(fullPath);
|
|
1238
|
+
latest = Math.max(latest, stat.mtimeMs);
|
|
1239
|
+
visited += 1;
|
|
1240
|
+
if (entry.isDirectory() && current.depth < 3 && !skipDirs.has(entry.name)) {
|
|
1241
|
+
stack.push({ dir: fullPath, depth: current.depth + 1 });
|
|
1242
|
+
}
|
|
1243
|
+
}
|
|
1244
|
+
catch {
|
|
1245
|
+
// keep scanning; one unreadable file should not break the local read.
|
|
1246
|
+
}
|
|
1247
|
+
}
|
|
1248
|
+
}
|
|
1249
|
+
return latest;
|
|
1250
|
+
}
|
|
1251
|
+
function scanRecentWorkspaceProjects(limit = 8) {
|
|
1252
|
+
const insights = [];
|
|
1253
|
+
const seen = new Set();
|
|
1254
|
+
for (const root of getLocalWorkspaceRoots()) {
|
|
1255
|
+
let entries = [];
|
|
1256
|
+
try {
|
|
1257
|
+
entries = fs.readdirSync(root, { withFileTypes: true });
|
|
1258
|
+
}
|
|
1259
|
+
catch {
|
|
1260
|
+
continue;
|
|
1261
|
+
}
|
|
1262
|
+
for (const entry of entries) {
|
|
1263
|
+
if (!entry.isDirectory() || entry.name.startsWith("."))
|
|
1264
|
+
continue;
|
|
1265
|
+
const projectDir = path.join(root, entry.name);
|
|
1266
|
+
let realDir = projectDir;
|
|
1267
|
+
try {
|
|
1268
|
+
realDir = fs.realpathSync.native(projectDir);
|
|
1269
|
+
}
|
|
1270
|
+
catch {
|
|
1271
|
+
// use unresolved path below
|
|
1272
|
+
}
|
|
1273
|
+
if (seen.has(realDir))
|
|
1274
|
+
continue;
|
|
1275
|
+
seen.add(realDir);
|
|
1276
|
+
const markerSignals = (0, project_1.getProjectMarkerSignals)(projectDir);
|
|
1277
|
+
if (markerSignals.length === 0)
|
|
1278
|
+
continue;
|
|
1279
|
+
const updatedAt = Math.max(getRecentFileMtime(projectDir), statMtimeMs(projectDir) || 0);
|
|
1280
|
+
insights.push({
|
|
1281
|
+
name: entry.name,
|
|
1282
|
+
slug: entry.name,
|
|
1283
|
+
projectDir,
|
|
1284
|
+
updatedAt,
|
|
1285
|
+
signals: markerSignals,
|
|
1286
|
+
summary: `${entry.name} touched ${formatRelativeTimeFromMs(updatedAt)}${markerSignals.length > 0 ? `; found ${markerSignals.slice(0, 3).join(", ")}` : ""}.`,
|
|
1287
|
+
suggestedCommand: `cd ${projectDir} && you`,
|
|
1288
|
+
});
|
|
1289
|
+
}
|
|
1290
|
+
}
|
|
1291
|
+
return insights.sort((a, b) => b.updatedAt - a.updatedAt).slice(0, limit);
|
|
1292
|
+
}
|
|
1293
|
+
function formatLocalRecentProjectsToolResult(insights) {
|
|
1294
|
+
if (insights.length === 0) {
|
|
1295
|
+
const roots = getLocalWorkspaceRoots();
|
|
1296
|
+
return roots.length === 0
|
|
1297
|
+
? "tool: workspace_recent_projects\nstatus: empty\nresult: checked common local workspace roots and did not find one. users can set YOUMD_WORKSPACE_ROOTS to add explicit roots."
|
|
1298
|
+
: "tool: workspace_recent_projects\nstatus: empty\nresult: found the workspace root, but no project folders showed up in the first scan.";
|
|
1299
|
+
}
|
|
1300
|
+
const lines = [
|
|
1301
|
+
"tool: workspace_recent_projects",
|
|
1302
|
+
"status: ok",
|
|
1303
|
+
"projects:",
|
|
1304
|
+
...insights.slice(0, 6).map((item, index) => {
|
|
1305
|
+
const markers = item.signals.length > 0 ? ` — ${item.signals.slice(0, 3).join(", ")}` : "";
|
|
1306
|
+
return `${index + 1}. ${item.name} — ${item.projectDir} — touched ${formatRelativeTimeFromMs(item.updatedAt)}${markers}`;
|
|
1307
|
+
}),
|
|
1308
|
+
"",
|
|
1309
|
+
`recommended_next_project: ${insights[0].name}`,
|
|
1310
|
+
`recommended_next_project_dir: ${insights[0].projectDir}`,
|
|
1311
|
+
`recommended_next_command: cd ${insights[0].projectDir} && you`,
|
|
1312
|
+
`recommended_next_move: say "start there" to open ${insights[0].name} and tighten the agent entrypoint from actual files, not a guessed summary.`,
|
|
1313
|
+
];
|
|
1314
|
+
return lines.join("\n");
|
|
1315
|
+
}
|
|
1316
|
+
function formatProjectBootstrapToolResult(project, result) {
|
|
1317
|
+
const changed = result.steps
|
|
1318
|
+
.filter((step) => step.ok && step.detail && !step.detail.includes("unchanged") && !step.detail.includes("already present"))
|
|
1319
|
+
.map((step) => `${step.name}: ${step.detail}`);
|
|
1320
|
+
const checked = result.steps.filter((step) => step.ok).length;
|
|
1321
|
+
return [
|
|
1322
|
+
"tool: project_bootstrap",
|
|
1323
|
+
"status: ok",
|
|
1324
|
+
`project: ${project.name}`,
|
|
1325
|
+
`project_dir: ${project.projectDir}`,
|
|
1326
|
+
changed.length > 0
|
|
1327
|
+
? `changed: ${changed.slice(0, 6).join("; ")}`
|
|
1328
|
+
: `changed: none; checked ${checked} bootstrap steps; everything important was already present.`,
|
|
1329
|
+
"",
|
|
1330
|
+
`recommended_next_move: read ${project.name}'s project-context and turn the rough docs into a sharper current-state + TODO pass.`,
|
|
1331
|
+
].join("\n");
|
|
1332
|
+
}
|
|
1333
|
+
async function handleLocalChatIntent(args) {
|
|
1334
|
+
const runToolResultThroughModel = async (toolResult, spinnerLabel) => {
|
|
1335
|
+
args.messages.push({ role: "user", content: args.userInput });
|
|
1336
|
+
args.messages.push({
|
|
1337
|
+
role: "user",
|
|
1338
|
+
content: [
|
|
1339
|
+
"--- local host tool result ---",
|
|
1340
|
+
toolResult,
|
|
1341
|
+
"--- instructions ---",
|
|
1342
|
+
"Use this local tool result as ground truth. Do not say you cannot access the filesystem; the CLI host just accessed it for you.",
|
|
1343
|
+
"Use recommended_next_project exactly as the target unless the user explicitly asks for a different project.",
|
|
1344
|
+
"Do not say you are scraping, pulling, reading, opening, or updating anything now unless that completed action appears in the tool result.",
|
|
1345
|
+
"Do not ask the user what the local project is if the tool result already names it.",
|
|
1346
|
+
"State what the local host actually found, make one concrete recommendation, and end with the exact phrase `next strongest move: ...`.",
|
|
1347
|
+
"For workspace scans, reuse recommended_next_move as the final next strongest move. The supported follow-up command is `start there`; do not invent commands like `open PROJECT`.",
|
|
1348
|
+
"Do not end with a question. Keep it under 8 lines. No generic help-desk closer.",
|
|
1349
|
+
].join("\n"),
|
|
1350
|
+
});
|
|
1351
|
+
const result = await callLLMWithStreaming(args.apiKey, args.messages, spinnerLabel);
|
|
1352
|
+
args.messages.push({ role: "assistant", content: result.text });
|
|
1353
|
+
if (!result.streamed) {
|
|
1354
|
+
printAgentMessage((0, onboarding_1.parseUpdatesFromResponse)(result.text).display);
|
|
1355
|
+
}
|
|
1356
|
+
};
|
|
1357
|
+
if (isLocalRecentProjectsIntent(args.userInput)) {
|
|
1358
|
+
const spinner = new render_1.BrailleSpinner("checking local workspaces");
|
|
1359
|
+
spinner.start();
|
|
1360
|
+
await delay(700);
|
|
1361
|
+
const insights = scanRecentWorkspaceProjects(8);
|
|
1362
|
+
spinner.stop("local workspace scanned");
|
|
1363
|
+
args.launchInvestigation.strongestProject = insights[0] || args.launchInvestigation.strongestProject;
|
|
1364
|
+
args.launchInvestigation.strongestMove = insights[0]?.summary || args.launchInvestigation.strongestMove;
|
|
1365
|
+
await runToolResultThroughModel(formatLocalRecentProjectsToolResult(insights), "turning local project scan into a useful read");
|
|
1366
|
+
return true;
|
|
1367
|
+
}
|
|
1368
|
+
if (isStartThereIntent(args.userInput)) {
|
|
1369
|
+
const project = args.launchInvestigation.strongestProject ||
|
|
1370
|
+
(0, project_1.getTopProjectOpportunity)((0, project_1.getRecentProjectInsights)(process.cwd(), 8));
|
|
1371
|
+
if (!project || !fs.existsSync(project.projectDir)) {
|
|
1372
|
+
const response = "i don't have a real local target for that yet. ask me to scan local workspaces and i'll pick from actual folders.\n\nnext strongest move: scan local recent projects first.";
|
|
1373
|
+
args.messages.push({ role: "user", content: args.userInput });
|
|
1374
|
+
args.messages.push({ role: "assistant", content: response });
|
|
1375
|
+
printAgentMessage(response);
|
|
1376
|
+
return true;
|
|
1377
|
+
}
|
|
1378
|
+
const spinner = new render_1.BrailleSpinner(`opening ${project.name} from local disk`);
|
|
1379
|
+
spinner.start();
|
|
1380
|
+
await delay(500);
|
|
1381
|
+
const previousCwd = process.cwd();
|
|
1382
|
+
let result;
|
|
1383
|
+
try {
|
|
1384
|
+
process.chdir(project.projectDir);
|
|
1385
|
+
result = (0, skills_1.initProject)({ mode: "additive" });
|
|
1386
|
+
}
|
|
1387
|
+
finally {
|
|
1388
|
+
process.chdir(previousCwd);
|
|
1389
|
+
}
|
|
1390
|
+
spinner.stop(`${project.name} updated`);
|
|
1391
|
+
await runToolResultThroughModel(formatProjectBootstrapToolResult(project, result), `summarizing ${project.name} changes`);
|
|
1392
|
+
return true;
|
|
1393
|
+
}
|
|
1394
|
+
return false;
|
|
1395
|
+
}
|
|
1181
1396
|
// ─── Main chat command ────────────────────────────────────────────────
|
|
1182
1397
|
async function chatCommand() {
|
|
1183
1398
|
const bundleDir = resolveBundleDirForChat();
|
|
@@ -1274,41 +1489,11 @@ async function chatCommand() {
|
|
|
1274
1489
|
content: `here is my current identity bundle:\n\n${currentBundle}${directivesContext}${projectContextBlock}\n\n${greetingInstruction}`,
|
|
1275
1490
|
},
|
|
1276
1491
|
];
|
|
1277
|
-
// Initial greeting
|
|
1278
|
-
|
|
1279
|
-
|
|
1280
|
-
|
|
1281
|
-
|
|
1282
|
-
}
|
|
1283
|
-
else {
|
|
1284
|
-
let response;
|
|
1285
|
-
let streamed = false;
|
|
1286
|
-
try {
|
|
1287
|
-
const result = await callLLMWithStreaming(apiKey, messages, (0, onboarding_1.randomThinking)());
|
|
1288
|
-
response = result.text;
|
|
1289
|
-
streamed = result.streamed;
|
|
1290
|
-
}
|
|
1291
|
-
catch (err) {
|
|
1292
|
-
console.log(chalk_1.default.red(` failed to connect: ${err instanceof Error ? err.message : String(err)}`));
|
|
1293
|
-
console.log(chalk_1.default.dim(" chat requires the AI service. try again later."));
|
|
1294
|
-
console.log("");
|
|
1295
|
-
rl.close();
|
|
1296
|
-
return;
|
|
1297
|
-
}
|
|
1298
|
-
messages.push({ role: "assistant", content: response });
|
|
1299
|
-
const initial = (0, onboarding_1.parseUpdatesFromResponse)(response);
|
|
1300
|
-
// Write any updates (unlikely on greeting, but handle it)
|
|
1301
|
-
if (initial.updates.length > 0) {
|
|
1302
|
-
for (const update of initial.updates) {
|
|
1303
|
-
(0, onboarding_1.writeSectionFile)(bundleDir, update.section, update.content);
|
|
1304
|
-
}
|
|
1305
|
-
console.log(chalk_1.default.cyan(` [updated: ${initial.updates.map((u) => (0, onboarding_1.sectionLabel)(u.section)).join(", ")}]`));
|
|
1306
|
-
console.log("");
|
|
1307
|
-
}
|
|
1308
|
-
if (!streamed) {
|
|
1309
|
-
printAgentMessage(initial.display);
|
|
1310
|
-
}
|
|
1311
|
-
}
|
|
1492
|
+
// Initial greeting is local and action-aware. The remote model should not invent
|
|
1493
|
+
// filesystem capabilities before the CLI has decided what it can actually do.
|
|
1494
|
+
const proactiveIntro = buildYouLaunchIntro(projectCtx, bundleDir, launchInvestigation);
|
|
1495
|
+
messages.push({ role: "assistant", content: proactiveIntro });
|
|
1496
|
+
printAgentMessage(proactiveIntro);
|
|
1312
1497
|
// ── Conversation loop ──────────────────────────────────────────────
|
|
1313
1498
|
let response = "";
|
|
1314
1499
|
let streamed = false;
|
|
@@ -1517,6 +1702,14 @@ async function chatCommand() {
|
|
|
1517
1702
|
}
|
|
1518
1703
|
continue;
|
|
1519
1704
|
}
|
|
1705
|
+
const handledLocally = await handleLocalChatIntent({
|
|
1706
|
+
userInput,
|
|
1707
|
+
messages,
|
|
1708
|
+
launchInvestigation,
|
|
1709
|
+
apiKey,
|
|
1710
|
+
});
|
|
1711
|
+
if (handledLocally)
|
|
1712
|
+
continue;
|
|
1520
1713
|
// ── Detect dragged/pasted file paths ──
|
|
1521
1714
|
const detectedFile = detectFilePath(userInput);
|
|
1522
1715
|
if (detectedFile) {
|