codmir 0.4.0 → 0.4.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/cli/index.js +93 -32
- package/dist/cli/index.mjs +93 -32
- package/package.json +13 -14
package/dist/cli/index.js
CHANGED
|
@@ -137,7 +137,7 @@ var require_package = __commonJS({
|
|
|
137
137
|
"package.json"(exports2, module2) {
|
|
138
138
|
module2.exports = {
|
|
139
139
|
name: "codmir",
|
|
140
|
-
version: "0.4.
|
|
140
|
+
version: "0.4.1",
|
|
141
141
|
description: "Official codmir SDK - AI that prevents wasted engineering time. CLI, SDK, voice assistant, codebase analysis, and intelligent automation.",
|
|
142
142
|
main: "dist/index.js",
|
|
143
143
|
module: "dist/index.mjs",
|
|
@@ -1725,25 +1725,62 @@ var import_clipboardy = __toESM(require("clipboardy"));
|
|
|
1725
1725
|
var import_fs6 = __toESM(require("fs"));
|
|
1726
1726
|
var import_path6 = __toESM(require("path"));
|
|
1727
1727
|
var import_form_data = __toESM(require("form-data"));
|
|
1728
|
+
var import_readline = __toESM(require("readline"));
|
|
1728
1729
|
init_config();
|
|
1730
|
+
function renderLogo() {
|
|
1731
|
+
const c1 = import_chalk8.default.hex("#00D4FF");
|
|
1732
|
+
const c2 = import_chalk8.default.hex("#0099FF");
|
|
1733
|
+
const c3 = import_chalk8.default.hex("#7C3AED");
|
|
1734
|
+
const c4 = import_chalk8.default.hex("#EC4899");
|
|
1735
|
+
const c5 = import_chalk8.default.hex("#F472B6");
|
|
1736
|
+
const logo = `
|
|
1737
|
+
${c1(" \u2588\u2588\u2588\u2588\u2588\u2588\u2557")}${c2(" \u2588\u2588\u2588\u2588\u2588\u2588\u2557 ")}${c2("\u2588\u2588\u2588\u2588\u2588\u2588\u2557 ")}${c3("\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2557")}${c4("\u2588\u2588\u2557")}${c5("\u2588\u2588\u2588\u2588\u2588\u2588\u2557 ")}
|
|
1738
|
+
${c1(" \u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D")}${c2("\u2588\u2588\u2554\u2550\u2550\u2550\u2588\u2588\u2557")}${c2("\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557")}${c3("\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2551")}${c4("\u2588\u2588\u2551")}${c5("\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557")}
|
|
1739
|
+
${c1(" \u2588\u2588\u2551 ")}${c2("\u2588\u2588\u2551 \u2588\u2588\u2551")}${c2("\u2588\u2588\u2551 \u2588\u2588\u2551")}${c3("\u2588\u2588\u2554\u2588\u2588\u2588\u2588\u2554\u2588\u2588\u2551")}${c4("\u2588\u2588\u2551")}${c5("\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D")}
|
|
1740
|
+
${c1(" \u2588\u2588\u2551 ")}${c2("\u2588\u2588\u2551 \u2588\u2588\u2551")}${c2("\u2588\u2588\u2551 \u2588\u2588\u2551")}${c3("\u2588\u2588\u2551\u255A\u2588\u2588\u2554\u255D\u2588\u2588\u2551")}${c4("\u2588\u2588\u2551")}${c5("\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557")}
|
|
1741
|
+
${c1(" \u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2557")}${c2("\u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D")}${c2("\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D")}${c3("\u2588\u2588\u2551 \u255A\u2550\u255D \u2588\u2588\u2551")}${c4("\u2588\u2588\u2551")}${c5("\u2588\u2588\u2551 \u2588\u2588\u2551")}
|
|
1742
|
+
${c1(" \u255A\u2550\u2550\u2550\u2550\u2550\u255D")}${c2(" \u255A\u2550\u2550\u2550\u2550\u2550\u255D ")}${c2("\u255A\u2550\u2550\u2550\u2550\u2550\u255D ")}${c3("\u255A\u2550\u255D \u255A\u2550\u255D")}${c4("\u255A\u2550\u255D")}${c5("\u255A\u2550\u255D \u255A\u2550\u255D")}
|
|
1743
|
+
`;
|
|
1744
|
+
console.log(logo);
|
|
1745
|
+
}
|
|
1746
|
+
function renderTips() {
|
|
1747
|
+
console.log(import_chalk8.default.white("Tips for getting started:"));
|
|
1748
|
+
console.log(import_chalk8.default.dim("1. Ask questions, edit files, or run commands."));
|
|
1749
|
+
console.log(import_chalk8.default.dim("2. Be specific for the best results."));
|
|
1750
|
+
console.log(import_chalk8.default.dim("3. Create ") + import_chalk8.default.cyan("CODMIR.md") + import_chalk8.default.dim(" files to customize your interactions with codmir."));
|
|
1751
|
+
console.log(import_chalk8.default.dim("4. ") + import_chalk8.default.cyan("/help") + import_chalk8.default.dim(" for more information."));
|
|
1752
|
+
console.log();
|
|
1753
|
+
}
|
|
1754
|
+
function renderStatusBar(context, model) {
|
|
1755
|
+
const termWidth = process.stdout.columns || 80;
|
|
1756
|
+
const projectInfo = context.isLinkedProject ? import_chalk8.default.cyan(`~/${context.projectConfig?.projectName || "project"}`) : import_chalk8.default.yellow("~/global");
|
|
1757
|
+
const sandboxStatus = import_chalk8.default.dim("no sandbox") + import_chalk8.default.dim(" (see /docs)");
|
|
1758
|
+
const modelInfo = import_chalk8.default.green(`${model}`) + import_chalk8.default.dim(" (100% context left)");
|
|
1759
|
+
console.log();
|
|
1760
|
+
console.log(import_chalk8.default.dim("\u2500".repeat(termWidth)));
|
|
1761
|
+
console.log(`${projectInfo} ${sandboxStatus} ${modelInfo}`);
|
|
1762
|
+
}
|
|
1763
|
+
function renderEditHint() {
|
|
1764
|
+
const termWidth = process.stdout.columns || 80;
|
|
1765
|
+
const hint = import_chalk8.default.dim("accepting edits") + import_chalk8.default.dim(" (shift + tab to toggle)");
|
|
1766
|
+
const padding = " ".repeat(Math.max(0, termWidth - 35));
|
|
1767
|
+
console.log(padding + hint);
|
|
1768
|
+
}
|
|
1729
1769
|
async function assistantCommand(query, options = {}) {
|
|
1730
1770
|
const token = getToken();
|
|
1771
|
+
const context = getExecutionContext();
|
|
1772
|
+
const model = options.model || "gpt-4-turbo";
|
|
1773
|
+
console.clear();
|
|
1774
|
+
renderLogo();
|
|
1731
1775
|
if (!token) {
|
|
1732
|
-
console.
|
|
1733
|
-
console.log(import_chalk8.default.dim(" Run")
|
|
1776
|
+
console.log(import_chalk8.default.red("\n\u274C Not authenticated"));
|
|
1777
|
+
console.log(import_chalk8.default.dim(" Run ") + import_chalk8.default.cyan("codmir login") + import_chalk8.default.dim(" to get started.\n"));
|
|
1734
1778
|
process.exit(1);
|
|
1735
1779
|
}
|
|
1780
|
+
renderTips();
|
|
1781
|
+
renderEditHint();
|
|
1736
1782
|
const baseUrl = getBaseUrl();
|
|
1737
1783
|
const conversationHistory = [];
|
|
1738
|
-
const context = getExecutionContext();
|
|
1739
|
-
if (context.isLinkedProject) {
|
|
1740
|
-
console.log(import_chalk8.default.dim(` \u{1F4C1} Project: ${context.projectConfig?.projectName || context.projectConfig?.projectId}`));
|
|
1741
|
-
console.log(import_chalk8.default.dim(` \u{1F517} Mode: ${import_chalk8.default.cyan("local")} (linked project)
|
|
1742
|
-
`));
|
|
1743
|
-
} else {
|
|
1744
|
-
console.log(import_chalk8.default.dim(` \u{1F310} Mode: ${import_chalk8.default.yellow("global")}
|
|
1745
|
-
`));
|
|
1746
|
-
}
|
|
1747
1784
|
conversationHistory.push({
|
|
1748
1785
|
role: "system",
|
|
1749
1786
|
content: `You are codmir, an AI assistant for developers. You help with:
|
|
@@ -1754,28 +1791,47 @@ async function assistantCommand(query, options = {}) {
|
|
|
1754
1791
|
|
|
1755
1792
|
Be concise, practical, and code-focused. Use lowercase "codmir" for the brand.`
|
|
1756
1793
|
});
|
|
1757
|
-
console.log(import_chalk8.default.bold("\n\u{1F916} codmir"));
|
|
1758
|
-
console.log(import_chalk8.default.dim(" AI assistant for developers\n"));
|
|
1759
1794
|
if (query) {
|
|
1760
1795
|
await handleQuery(query, conversationHistory, baseUrl, token, options);
|
|
1796
|
+
renderStatusBar(context, model);
|
|
1761
1797
|
return;
|
|
1762
1798
|
}
|
|
1763
|
-
|
|
1764
|
-
|
|
1765
|
-
|
|
1766
|
-
|
|
1767
|
-
|
|
1768
|
-
|
|
1769
|
-
|
|
1770
|
-
|
|
1771
|
-
|
|
1799
|
+
const rl = import_readline.default.createInterface({
|
|
1800
|
+
input: process.stdin,
|
|
1801
|
+
output: process.stdout
|
|
1802
|
+
});
|
|
1803
|
+
const promptUser = () => {
|
|
1804
|
+
rl.question(import_chalk8.default.cyan("> ") + import_chalk8.default.dim("Type your message or @path/to/file "), async (userInput) => {
|
|
1805
|
+
if (!userInput || userInput.toLowerCase() === "exit" || userInput.toLowerCase() === "quit" || userInput === "/exit") {
|
|
1806
|
+
console.log(import_chalk8.default.dim("\nGoodbye! \u{1F44B}\n"));
|
|
1807
|
+
rl.close();
|
|
1808
|
+
return;
|
|
1809
|
+
}
|
|
1810
|
+
if (userInput === "/help") {
|
|
1811
|
+
console.log("\n" + import_chalk8.default.bold("Available commands:"));
|
|
1812
|
+
console.log(import_chalk8.default.cyan(" /help") + import_chalk8.default.dim(" - Show this help message"));
|
|
1813
|
+
console.log(import_chalk8.default.cyan(" /clear") + import_chalk8.default.dim(" - Clear conversation history"));
|
|
1814
|
+
console.log(import_chalk8.default.cyan(" /exit") + import_chalk8.default.dim(" - Exit codmir"));
|
|
1815
|
+
console.log(import_chalk8.default.cyan(" @file") + import_chalk8.default.dim(" - Reference a file in your message"));
|
|
1816
|
+
console.log();
|
|
1817
|
+
promptUser();
|
|
1818
|
+
return;
|
|
1819
|
+
}
|
|
1820
|
+
if (userInput === "/clear") {
|
|
1821
|
+
conversationHistory.length = 1;
|
|
1822
|
+
console.log(import_chalk8.default.dim("\n\u2713 Conversation cleared\n"));
|
|
1823
|
+
promptUser();
|
|
1824
|
+
return;
|
|
1825
|
+
}
|
|
1826
|
+
await handleQuery(userInput, conversationHistory, baseUrl, token, options);
|
|
1827
|
+
console.log();
|
|
1828
|
+
promptUser();
|
|
1772
1829
|
});
|
|
1773
|
-
|
|
1774
|
-
|
|
1775
|
-
|
|
1776
|
-
|
|
1777
|
-
|
|
1778
|
-
}
|
|
1830
|
+
};
|
|
1831
|
+
promptUser();
|
|
1832
|
+
rl.on("close", () => {
|
|
1833
|
+
renderStatusBar(context, model);
|
|
1834
|
+
});
|
|
1779
1835
|
}
|
|
1780
1836
|
async function handleQuery(query, conversationHistory, baseUrl, token, options) {
|
|
1781
1837
|
let imagePaths;
|
|
@@ -2601,7 +2657,12 @@ program.command("council [task...]").description("\u{1F3AD} Assemble a council o
|
|
|
2601
2657
|
const taskString = task ? task.join(" ") : void 0;
|
|
2602
2658
|
councilCommand(taskString, options);
|
|
2603
2659
|
});
|
|
2604
|
-
|
|
2605
|
-
if (
|
|
2606
|
-
|
|
2660
|
+
if (!process.argv.slice(2).length || process.argv[2] === "--help" || process.argv[2] === "-h") {
|
|
2661
|
+
if (process.argv[2] === "--help" || process.argv[2] === "-h") {
|
|
2662
|
+
program.parse(process.argv);
|
|
2663
|
+
} else {
|
|
2664
|
+
assistantCommand(void 0, {});
|
|
2665
|
+
}
|
|
2666
|
+
} else {
|
|
2667
|
+
program.parse(process.argv);
|
|
2607
2668
|
}
|
package/dist/cli/index.mjs
CHANGED
|
@@ -25,7 +25,7 @@ var require_package = __commonJS({
|
|
|
25
25
|
"package.json"(exports, module) {
|
|
26
26
|
module.exports = {
|
|
27
27
|
name: "codmir",
|
|
28
|
-
version: "0.4.
|
|
28
|
+
version: "0.4.1",
|
|
29
29
|
description: "Official codmir SDK - AI that prevents wasted engineering time. CLI, SDK, voice assistant, codebase analysis, and intelligent automation.",
|
|
30
30
|
main: "dist/index.js",
|
|
31
31
|
module: "dist/index.mjs",
|
|
@@ -597,24 +597,61 @@ import clipboardy from "clipboardy";
|
|
|
597
597
|
import fs3 from "fs";
|
|
598
598
|
import path3 from "path";
|
|
599
599
|
import FormData from "form-data";
|
|
600
|
+
import readline2 from "readline";
|
|
601
|
+
function renderLogo() {
|
|
602
|
+
const c1 = chalk7.hex("#00D4FF");
|
|
603
|
+
const c2 = chalk7.hex("#0099FF");
|
|
604
|
+
const c3 = chalk7.hex("#7C3AED");
|
|
605
|
+
const c4 = chalk7.hex("#EC4899");
|
|
606
|
+
const c5 = chalk7.hex("#F472B6");
|
|
607
|
+
const logo = `
|
|
608
|
+
${c1(" \u2588\u2588\u2588\u2588\u2588\u2588\u2557")}${c2(" \u2588\u2588\u2588\u2588\u2588\u2588\u2557 ")}${c2("\u2588\u2588\u2588\u2588\u2588\u2588\u2557 ")}${c3("\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2557")}${c4("\u2588\u2588\u2557")}${c5("\u2588\u2588\u2588\u2588\u2588\u2588\u2557 ")}
|
|
609
|
+
${c1(" \u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D")}${c2("\u2588\u2588\u2554\u2550\u2550\u2550\u2588\u2588\u2557")}${c2("\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557")}${c3("\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2551")}${c4("\u2588\u2588\u2551")}${c5("\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557")}
|
|
610
|
+
${c1(" \u2588\u2588\u2551 ")}${c2("\u2588\u2588\u2551 \u2588\u2588\u2551")}${c2("\u2588\u2588\u2551 \u2588\u2588\u2551")}${c3("\u2588\u2588\u2554\u2588\u2588\u2588\u2588\u2554\u2588\u2588\u2551")}${c4("\u2588\u2588\u2551")}${c5("\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D")}
|
|
611
|
+
${c1(" \u2588\u2588\u2551 ")}${c2("\u2588\u2588\u2551 \u2588\u2588\u2551")}${c2("\u2588\u2588\u2551 \u2588\u2588\u2551")}${c3("\u2588\u2588\u2551\u255A\u2588\u2588\u2554\u255D\u2588\u2588\u2551")}${c4("\u2588\u2588\u2551")}${c5("\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557")}
|
|
612
|
+
${c1(" \u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2557")}${c2("\u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D")}${c2("\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D")}${c3("\u2588\u2588\u2551 \u255A\u2550\u255D \u2588\u2588\u2551")}${c4("\u2588\u2588\u2551")}${c5("\u2588\u2588\u2551 \u2588\u2588\u2551")}
|
|
613
|
+
${c1(" \u255A\u2550\u2550\u2550\u2550\u2550\u255D")}${c2(" \u255A\u2550\u2550\u2550\u2550\u2550\u255D ")}${c2("\u255A\u2550\u2550\u2550\u2550\u2550\u255D ")}${c3("\u255A\u2550\u255D \u255A\u2550\u255D")}${c4("\u255A\u2550\u255D")}${c5("\u255A\u2550\u255D \u255A\u2550\u255D")}
|
|
614
|
+
`;
|
|
615
|
+
console.log(logo);
|
|
616
|
+
}
|
|
617
|
+
function renderTips() {
|
|
618
|
+
console.log(chalk7.white("Tips for getting started:"));
|
|
619
|
+
console.log(chalk7.dim("1. Ask questions, edit files, or run commands."));
|
|
620
|
+
console.log(chalk7.dim("2. Be specific for the best results."));
|
|
621
|
+
console.log(chalk7.dim("3. Create ") + chalk7.cyan("CODMIR.md") + chalk7.dim(" files to customize your interactions with codmir."));
|
|
622
|
+
console.log(chalk7.dim("4. ") + chalk7.cyan("/help") + chalk7.dim(" for more information."));
|
|
623
|
+
console.log();
|
|
624
|
+
}
|
|
625
|
+
function renderStatusBar(context, model) {
|
|
626
|
+
const termWidth = process.stdout.columns || 80;
|
|
627
|
+
const projectInfo = context.isLinkedProject ? chalk7.cyan(`~/${context.projectConfig?.projectName || "project"}`) : chalk7.yellow("~/global");
|
|
628
|
+
const sandboxStatus = chalk7.dim("no sandbox") + chalk7.dim(" (see /docs)");
|
|
629
|
+
const modelInfo = chalk7.green(`${model}`) + chalk7.dim(" (100% context left)");
|
|
630
|
+
console.log();
|
|
631
|
+
console.log(chalk7.dim("\u2500".repeat(termWidth)));
|
|
632
|
+
console.log(`${projectInfo} ${sandboxStatus} ${modelInfo}`);
|
|
633
|
+
}
|
|
634
|
+
function renderEditHint() {
|
|
635
|
+
const termWidth = process.stdout.columns || 80;
|
|
636
|
+
const hint = chalk7.dim("accepting edits") + chalk7.dim(" (shift + tab to toggle)");
|
|
637
|
+
const padding = " ".repeat(Math.max(0, termWidth - 35));
|
|
638
|
+
console.log(padding + hint);
|
|
639
|
+
}
|
|
600
640
|
async function assistantCommand(query, options = {}) {
|
|
601
641
|
const token = getToken();
|
|
642
|
+
const context = getExecutionContext();
|
|
643
|
+
const model = options.model || "gpt-4-turbo";
|
|
644
|
+
console.clear();
|
|
645
|
+
renderLogo();
|
|
602
646
|
if (!token) {
|
|
603
|
-
console.
|
|
604
|
-
console.log(chalk7.dim(" Run")
|
|
647
|
+
console.log(chalk7.red("\n\u274C Not authenticated"));
|
|
648
|
+
console.log(chalk7.dim(" Run ") + chalk7.cyan("codmir login") + chalk7.dim(" to get started.\n"));
|
|
605
649
|
process.exit(1);
|
|
606
650
|
}
|
|
651
|
+
renderTips();
|
|
652
|
+
renderEditHint();
|
|
607
653
|
const baseUrl = getBaseUrl();
|
|
608
654
|
const conversationHistory = [];
|
|
609
|
-
const context = getExecutionContext();
|
|
610
|
-
if (context.isLinkedProject) {
|
|
611
|
-
console.log(chalk7.dim(` \u{1F4C1} Project: ${context.projectConfig?.projectName || context.projectConfig?.projectId}`));
|
|
612
|
-
console.log(chalk7.dim(` \u{1F517} Mode: ${chalk7.cyan("local")} (linked project)
|
|
613
|
-
`));
|
|
614
|
-
} else {
|
|
615
|
-
console.log(chalk7.dim(` \u{1F310} Mode: ${chalk7.yellow("global")}
|
|
616
|
-
`));
|
|
617
|
-
}
|
|
618
655
|
conversationHistory.push({
|
|
619
656
|
role: "system",
|
|
620
657
|
content: `You are codmir, an AI assistant for developers. You help with:
|
|
@@ -625,28 +662,47 @@ async function assistantCommand(query, options = {}) {
|
|
|
625
662
|
|
|
626
663
|
Be concise, practical, and code-focused. Use lowercase "codmir" for the brand.`
|
|
627
664
|
});
|
|
628
|
-
console.log(chalk7.bold("\n\u{1F916} codmir"));
|
|
629
|
-
console.log(chalk7.dim(" AI assistant for developers\n"));
|
|
630
665
|
if (query) {
|
|
631
666
|
await handleQuery(query, conversationHistory, baseUrl, token, options);
|
|
667
|
+
renderStatusBar(context, model);
|
|
632
668
|
return;
|
|
633
669
|
}
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
670
|
+
const rl = readline2.createInterface({
|
|
671
|
+
input: process.stdin,
|
|
672
|
+
output: process.stdout
|
|
673
|
+
});
|
|
674
|
+
const promptUser = () => {
|
|
675
|
+
rl.question(chalk7.cyan("> ") + chalk7.dim("Type your message or @path/to/file "), async (userInput) => {
|
|
676
|
+
if (!userInput || userInput.toLowerCase() === "exit" || userInput.toLowerCase() === "quit" || userInput === "/exit") {
|
|
677
|
+
console.log(chalk7.dim("\nGoodbye! \u{1F44B}\n"));
|
|
678
|
+
rl.close();
|
|
679
|
+
return;
|
|
680
|
+
}
|
|
681
|
+
if (userInput === "/help") {
|
|
682
|
+
console.log("\n" + chalk7.bold("Available commands:"));
|
|
683
|
+
console.log(chalk7.cyan(" /help") + chalk7.dim(" - Show this help message"));
|
|
684
|
+
console.log(chalk7.cyan(" /clear") + chalk7.dim(" - Clear conversation history"));
|
|
685
|
+
console.log(chalk7.cyan(" /exit") + chalk7.dim(" - Exit codmir"));
|
|
686
|
+
console.log(chalk7.cyan(" @file") + chalk7.dim(" - Reference a file in your message"));
|
|
687
|
+
console.log();
|
|
688
|
+
promptUser();
|
|
689
|
+
return;
|
|
690
|
+
}
|
|
691
|
+
if (userInput === "/clear") {
|
|
692
|
+
conversationHistory.length = 1;
|
|
693
|
+
console.log(chalk7.dim("\n\u2713 Conversation cleared\n"));
|
|
694
|
+
promptUser();
|
|
695
|
+
return;
|
|
696
|
+
}
|
|
697
|
+
await handleQuery(userInput, conversationHistory, baseUrl, token, options);
|
|
698
|
+
console.log();
|
|
699
|
+
promptUser();
|
|
643
700
|
});
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
}
|
|
701
|
+
};
|
|
702
|
+
promptUser();
|
|
703
|
+
rl.on("close", () => {
|
|
704
|
+
renderStatusBar(context, model);
|
|
705
|
+
});
|
|
650
706
|
}
|
|
651
707
|
async function handleQuery(query, conversationHistory, baseUrl, token, options) {
|
|
652
708
|
let imagePaths;
|
|
@@ -1466,7 +1522,12 @@ program.command("council [task...]").description("\u{1F3AD} Assemble a council o
|
|
|
1466
1522
|
const taskString = task ? task.join(" ") : void 0;
|
|
1467
1523
|
councilCommand(taskString, options);
|
|
1468
1524
|
});
|
|
1469
|
-
|
|
1470
|
-
if (
|
|
1471
|
-
|
|
1525
|
+
if (!process.argv.slice(2).length || process.argv[2] === "--help" || process.argv[2] === "-h") {
|
|
1526
|
+
if (process.argv[2] === "--help" || process.argv[2] === "-h") {
|
|
1527
|
+
program.parse(process.argv);
|
|
1528
|
+
} else {
|
|
1529
|
+
assistantCommand(void 0, {});
|
|
1530
|
+
}
|
|
1531
|
+
} else {
|
|
1532
|
+
program.parse(process.argv);
|
|
1472
1533
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "codmir",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.1",
|
|
4
4
|
"description": "Official codmir SDK - AI that prevents wasted engineering time. CLI, SDK, voice assistant, codebase analysis, and intelligent automation.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.mjs",
|
|
@@ -31,18 +31,6 @@
|
|
|
31
31
|
"LICENSE",
|
|
32
32
|
"runkit-example.js"
|
|
33
33
|
],
|
|
34
|
-
"scripts": {
|
|
35
|
-
"build": "tsup src/index.ts src/cli/index.ts src/voice-agent/index.ts src/voice-daemon/index.ts --format cjs,esm --dts --clean",
|
|
36
|
-
"dev": "tsup src/index.ts src/cli/index.ts --format cjs,esm --dts --watch",
|
|
37
|
-
"prepublishOnly": "pnpm build",
|
|
38
|
-
"test": "jest",
|
|
39
|
-
"test:login": "node scripts/test/login.mjs",
|
|
40
|
-
"test:link": "node scripts/test/link.mjs",
|
|
41
|
-
"test:projects": "node scripts/test/projects.mjs",
|
|
42
|
-
"test:whoami": "node scripts/test/whoami.mjs",
|
|
43
|
-
"test:logout": "node scripts/test/logout.mjs",
|
|
44
|
-
"test:all": "npm run test:logout && npm run test:login && npm run test:whoami && npm run test:projects"
|
|
45
|
-
},
|
|
46
34
|
"keywords": [
|
|
47
35
|
"codmir",
|
|
48
36
|
"sdk",
|
|
@@ -109,5 +97,16 @@
|
|
|
109
97
|
},
|
|
110
98
|
"engines": {
|
|
111
99
|
"node": ">=18.0.0"
|
|
100
|
+
},
|
|
101
|
+
"scripts": {
|
|
102
|
+
"build": "tsup src/index.ts src/cli/index.ts src/voice-agent/index.ts src/voice-daemon/index.ts --format cjs,esm --dts --clean",
|
|
103
|
+
"dev": "tsup src/index.ts src/cli/index.ts --format cjs,esm --dts --watch",
|
|
104
|
+
"test": "jest",
|
|
105
|
+
"test:login": "node scripts/test/login.mjs",
|
|
106
|
+
"test:link": "node scripts/test/link.mjs",
|
|
107
|
+
"test:projects": "node scripts/test/projects.mjs",
|
|
108
|
+
"test:whoami": "node scripts/test/whoami.mjs",
|
|
109
|
+
"test:logout": "node scripts/test/logout.mjs",
|
|
110
|
+
"test:all": "npm run test:logout && npm run test:login && npm run test:whoami && npm run test:projects"
|
|
112
111
|
}
|
|
113
|
-
}
|
|
112
|
+
}
|