md4ai 0.2.0 → 0.3.0
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/index.bundled.js +9 -7
- package/package.json +1 -1
package/dist/index.bundled.js
CHANGED
|
@@ -914,7 +914,7 @@ function escapeHtml(text) {
|
|
|
914
914
|
|
|
915
915
|
// dist/check-update.js
|
|
916
916
|
import chalk8 from "chalk";
|
|
917
|
-
var CURRENT_VERSION = "0.
|
|
917
|
+
var CURRENT_VERSION = "0.3.0";
|
|
918
918
|
async function checkForUpdate() {
|
|
919
919
|
try {
|
|
920
920
|
const controller = new AbortController();
|
|
@@ -939,6 +939,8 @@ async function checkForUpdate() {
|
|
|
939
939
|
console.log(chalk8.yellow("\u2502") + chalk8.dim(" Changelog: https://www.md4ai.com/how-it-works") + " " + chalk8.yellow("\u2502"));
|
|
940
940
|
console.log(chalk8.yellow("\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518"));
|
|
941
941
|
console.log("");
|
|
942
|
+
} else {
|
|
943
|
+
console.log(chalk8.green(`md4ai v${CURRENT_VERSION} \u2014 you're on the latest version.`));
|
|
942
944
|
}
|
|
943
945
|
} catch {
|
|
944
946
|
}
|
|
@@ -1116,7 +1118,7 @@ async function printCommand(title) {
|
|
|
1116
1118
|
const projectRoot = process.cwd();
|
|
1117
1119
|
const scanDataPath = join8(projectRoot, "output", "index.html");
|
|
1118
1120
|
if (!existsSync7(scanDataPath)) {
|
|
1119
|
-
console.error(chalk11.red("No scan data found. Run: md4ai
|
|
1121
|
+
console.error(chalk11.red("No scan data found. Run: md4ai scan"));
|
|
1120
1122
|
process.exit(1);
|
|
1121
1123
|
}
|
|
1122
1124
|
const html = await readFile4(scanDataPath, "utf-8");
|
|
@@ -1199,7 +1201,7 @@ async function syncCommand(options) {
|
|
|
1199
1201
|
console.log(chalk12.blue(`Syncing: ${device.path}`));
|
|
1200
1202
|
const { data: proposedAll } = await supabase.from("folder_files").select("file_path").eq("folder_id", device.folder_id).eq("proposed_for_deletion", true);
|
|
1201
1203
|
if (proposedAll?.length) {
|
|
1202
|
-
console.log(chalk12.yellow(` ${proposedAll.length} file(s) proposed for deletion \u2014 run \`md4ai
|
|
1204
|
+
console.log(chalk12.yellow(` ${proposedAll.length} file(s) proposed for deletion \u2014 run \`md4ai scan\` to review.`));
|
|
1203
1205
|
}
|
|
1204
1206
|
try {
|
|
1205
1207
|
const result = await scanProject(device.path);
|
|
@@ -1222,7 +1224,7 @@ async function syncCommand(options) {
|
|
|
1222
1224
|
} else {
|
|
1223
1225
|
const state = await loadState();
|
|
1224
1226
|
if (!state.lastFolderId) {
|
|
1225
|
-
console.error(chalk12.yellow("No recent sync. Use: md4ai sync --all, or md4ai
|
|
1227
|
+
console.error(chalk12.yellow("No recent sync. Use: md4ai sync --all, or md4ai scan <path> first."));
|
|
1226
1228
|
process.exit(1);
|
|
1227
1229
|
}
|
|
1228
1230
|
const { data: device } = await supabase.from("device_paths").select("folder_id, device_name, path").eq("folder_id", state.lastFolderId).eq("device_name", state.lastDeviceName).single();
|
|
@@ -1233,7 +1235,7 @@ async function syncCommand(options) {
|
|
|
1233
1235
|
console.log(chalk12.blue(`Syncing: ${device.path}`));
|
|
1234
1236
|
const { data: proposedSingle } = await supabase.from("folder_files").select("file_path").eq("folder_id", device.folder_id).eq("proposed_for_deletion", true);
|
|
1235
1237
|
if (proposedSingle?.length) {
|
|
1236
|
-
console.log(chalk12.yellow(` ${proposedSingle.length} file(s) proposed for deletion \u2014 run \`md4ai
|
|
1238
|
+
console.log(chalk12.yellow(` ${proposedSingle.length} file(s) proposed for deletion \u2014 run \`md4ai scan\` to review.`));
|
|
1237
1239
|
}
|
|
1238
1240
|
const result = await scanProject(device.path);
|
|
1239
1241
|
await supabase.from("claude_folders").update({
|
|
@@ -1351,7 +1353,7 @@ Linking "${folder.name}" to this device...
|
|
|
1351
1353
|
console.log(chalk13.cyan(`
|
|
1352
1354
|
${projectUrl}
|
|
1353
1355
|
`));
|
|
1354
|
-
console.log(chalk13.grey('Run "md4ai
|
|
1356
|
+
console.log(chalk13.grey('Run "md4ai scan" to rescan at any time.'));
|
|
1355
1357
|
}
|
|
1356
1358
|
|
|
1357
1359
|
// dist/commands/import-bundle.js
|
|
@@ -1430,7 +1432,7 @@ program.command("add-folder").description("Create a new Claude folder").action(a
|
|
|
1430
1432
|
program.command("add-device").description("Add a device path to a Claude folder").action(addDeviceCommand);
|
|
1431
1433
|
program.command("list-devices").description("List all devices and their linked folders").action(listDevicesCommand);
|
|
1432
1434
|
program.command("link <project-id>").description("Link the current directory to a project created in the web dashboard").action(linkCommand);
|
|
1433
|
-
program.command("
|
|
1435
|
+
program.command("scan [path]").description("Scan Claude project files and push results to your dashboard").option("--offline", "Skip pushing to Supabase").action(mapCommand);
|
|
1434
1436
|
program.command("simulate <prompt>").description("Show which files Claude would load for a given prompt").action(simulateCommand);
|
|
1435
1437
|
program.command("print <title>").description("Generate a printable wall-chart HTML from the last scan").action(printCommand);
|
|
1436
1438
|
program.command("sync").description("Re-push latest scan data to Supabase").option("--all", "Sync all folders on all devices").action(syncCommand);
|