codebuff 1.0.283 → 1.0.284
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-definitions.d.ts +9 -0
- package/dist/cli-definitions.js +55 -0
- package/dist/cli-definitions.js.map +1 -0
- package/dist/cli.d.ts +0 -1
- package/dist/cli.js +48 -51
- package/dist/cli.js.map +1 -1
- package/dist/client.d.ts +16 -12
- package/dist/client.js +14 -0
- package/dist/client.js.map +1 -1
- package/dist/code-map/tsconfig.tsbuildinfo +1 -1
- package/dist/common/actions.d.ts +64 -64
- package/dist/common/analytics.js +7 -1
- package/dist/common/analytics.js.map +1 -1
- package/dist/common/constants/analytics-events.d.ts +2 -1
- package/dist/common/constants/analytics-events.js +2 -0
- package/dist/common/constants/analytics-events.js.map +1 -1
- package/dist/common/db/schema.js +1 -0
- package/dist/common/db/schema.js.map +1 -1
- package/dist/common/types/agent-state.d.ts +8 -8
- package/dist/common/types/message.d.ts +6 -6
- package/dist/common/types/usage.d.ts +2 -2
- package/dist/common/util/credentials.d.ts +2 -2
- package/dist/common/util/random.d.ts +1 -0
- package/dist/common/util/random.js +17 -0
- package/dist/common/util/random.js.map +1 -0
- package/dist/common/util/saxy.js +2 -6
- package/dist/common/util/saxy.js.map +1 -1
- package/dist/common/util/string.js +4 -4
- package/dist/common/util/string.js.map +1 -1
- package/dist/common/websockets/websocket-schema.d.ts +120 -120
- package/dist/index.js +25 -30
- package/dist/index.js.map +1 -1
- package/dist/menu.js +94 -52
- package/dist/menu.js.map +1 -1
- package/package.json +1 -1
- package/dist/cli-handlers/initialization-flow.d.ts +0 -1
- package/dist/cli-handlers/initialization-flow.js +0 -24
- package/dist/cli-handlers/initialization-flow.js.map +0 -1
- package/dist/cli-modules/command-processor.d.ts +0 -2
- package/dist/cli-modules/command-processor.js +0 -112
- package/dist/cli-modules/command-processor.js.map +0 -1
- package/dist/cli-modules/input-handler.d.ts +0 -4
- package/dist/cli-modules/input-handler.js +0 -75
- package/dist/cli-modules/input-handler.js.map +0 -1
- package/dist/cli-modules/readline-handler.d.ts +0 -11
- package/dist/cli-modules/readline-handler.js +0 -158
- package/dist/cli-modules/readline-handler.js.map +0 -1
- package/dist/cli-modules/signal-handler.d.ts +0 -7
- package/dist/cli-modules/signal-handler.js +0 -128
- package/dist/cli-modules/signal-handler.js.map +0 -1
- package/dist/cli-modules/types.d.ts +0 -51
- package/dist/cli-modules/types.js +0 -3
- package/dist/cli-modules/types.js.map +0 -1
- package/dist/cli-modules/websocket-handler.d.ts +0 -16
- package/dist/cli-modules/websocket-handler.js +0 -53
- package/dist/cli-modules/websocket-handler.js.map +0 -1
- package/dist/code-map/__mocks__/tree-sitter-typescript.d.ts +0 -12
- package/dist/code-map/__mocks__/tree-sitter-typescript.d.ts.map +0 -1
- package/dist/code-map/__mocks__/tree-sitter-typescript.js +0 -14
- package/dist/code-map/__mocks__/tree-sitter-typescript.js.map +0 -1
- package/dist/code-map/__mocks__/wasm-mock.d.ts +0 -2
- package/dist/code-map/__mocks__/wasm-mock.d.ts.map +0 -1
- package/dist/code-map/__mocks__/wasm-mock.js +0 -3
- package/dist/code-map/__mocks__/wasm-mock.js.map +0 -1
- package/dist/code-map/__tests__/parse.test.d.ts +0 -2
- package/dist/code-map/__tests__/parse.test.d.ts.map +0 -1
- package/dist/code-map/__tests__/parse.test.js +0 -231
- package/dist/code-map/__tests__/parse.test.js.map +0 -1
- package/dist/code-map/__tests__/test-langs/consumer.d.ts +0 -2
- package/dist/code-map/__tests__/test-langs/consumer.d.ts.map +0 -1
- package/dist/code-map/__tests__/test-langs/consumer.js +0 -6
- package/dist/code-map/__tests__/test-langs/consumer.js.map +0 -1
- package/dist/code-map/__tests__/test-langs/empty.d.ts +0 -1
- package/dist/code-map/__tests__/test-langs/empty.d.ts.map +0 -1
- package/dist/code-map/__tests__/test-langs/empty.js +0 -2
- package/dist/code-map/__tests__/test-langs/empty.js.map +0 -1
- package/dist/code-map/__tests__/test-langs/test.d.ts +0 -12
- package/dist/code-map/__tests__/test-langs/test.d.ts.map +0 -1
- package/dist/code-map/__tests__/test-langs/test.js +0 -23
- package/dist/code-map/__tests__/test-langs/test.js.map +0 -1
- package/dist/code-map/__tests__/test-langs/unused.d.ts +0 -2
- package/dist/code-map/__tests__/test-langs/unused.d.ts.map +0 -1
- package/dist/code-map/__tests__/test-langs/unused.js +0 -7
- package/dist/code-map/__tests__/test-langs/unused.js.map +0 -1
- package/dist/code-map/__tests__/test-langs/utils1.d.ts +0 -2
- package/dist/code-map/__tests__/test-langs/utils1.d.ts.map +0 -1
- package/dist/code-map/__tests__/test-langs/utils1.js +0 -7
- package/dist/code-map/__tests__/test-langs/utils1.js.map +0 -1
- package/dist/code-map/__tests__/test-langs/utils2.d.ts +0 -2
- package/dist/code-map/__tests__/test-langs/utils2.d.ts.map +0 -1
- package/dist/code-map/__tests__/test-langs/utils2.js +0 -8
- package/dist/code-map/__tests__/test-langs/utils2.js.map +0 -1
- package/dist/code-map/__tests__/tree-sitter-minimal.test.d.ts +0 -2
- package/dist/code-map/__tests__/tree-sitter-minimal.test.d.ts.map +0 -1
- package/dist/code-map/__tests__/tree-sitter-minimal.test.js +0 -79
- package/dist/code-map/__tests__/tree-sitter-minimal.test.js.map +0 -1
- package/dist/code-map/jest.config.d.ts +0 -4
- package/dist/code-map/jest.config.d.ts.map +0 -1
- package/dist/code-map/jest.config.js +0 -18
- package/dist/code-map/jest.config.js.map +0 -1
- package/dist/code-map/parse.test.d.ts +0 -2
- package/dist/code-map/parse.test.d.ts.map +0 -1
- package/dist/code-map/parse.test.js +0 -218
- package/dist/code-map/parse.test.js.map +0 -1
- package/dist/code-map/scripts/tree-sitter-test.cjs +0 -27
- package/dist/code-map/scripts/tree-sitter-test.cjs.map +0 -1
- package/dist/code-map/scripts/tree-sitter-test.d.cts +0 -2
- package/dist/code-map/scripts/tree-sitter-test.d.cts.map +0 -1
- package/dist/code-map/scripts/tree-sitter-test.d.ts +0 -2
- package/dist/code-map/scripts/tree-sitter-test.d.ts.map +0 -1
- package/dist/code-map/scripts/tree-sitter-test.js +0 -54
- package/dist/code-map/scripts/tree-sitter-test.js.map +0 -1
- package/dist/code-map/test-parser.d.ts +0 -2
- package/dist/code-map/test-parser.d.ts.map +0 -1
- package/dist/code-map/test-parser.js +0 -42
- package/dist/code-map/test-parser.js.map +0 -1
- package/dist/common/bigquery/client.d.ts +0 -15
- package/dist/common/bigquery/client.js +0 -265
- package/dist/common/bigquery/client.js.map +0 -1
- package/dist/common/bigquery/schema.d.ts +0 -55
- package/dist/common/bigquery/schema.js +0 -24
- package/dist/common/bigquery/schema.js.map +0 -1
- package/dist/common/util/file-metadata.d.ts +0 -9
- package/dist/common/util/file-metadata.js +0 -24
- package/dist/common/util/file-metadata.js.map +0 -1
package/dist/index.js
CHANGED
|
@@ -4,7 +4,7 @@ process.env.NEXT_PUBLIC_BACKEND_URL = 'manicode-backend.onrender.com';
|
|
|
4
4
|
process.env.NEXT_PUBLIC_APP_URL = 'https://codebuff.com';
|
|
5
5
|
process.env.NEXT_PUBLIC_SUPPORT_EMAIL = 'support@codebuff.com';
|
|
6
6
|
process.env.NEXT_PUBLIC_POSTHOG_API_KEY = 'phc_tug7g8yc10qNestK14QV8WyKwjfEl6vwzIbJkBdqeHS';
|
|
7
|
-
process.env.NEXT_PUBLIC_POSTHOG_HOST_URL = 'https://us.i.posthog.com
|
|
7
|
+
process.env.NEXT_PUBLIC_POSTHOG_HOST_URL = 'https://us.i.posthog.com';
|
|
8
8
|
"use strict";
|
|
9
9
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
10
10
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
@@ -15,6 +15,7 @@ const parser_1 = require("./common/json-config/parser");
|
|
|
15
15
|
const picocolors_1 = require("picocolors");
|
|
16
16
|
const package_json_1 = __importDefault(require("../package.json"));
|
|
17
17
|
const cli_1 = require("./cli");
|
|
18
|
+
const cli_definitions_1 = require("./cli-definitions");
|
|
18
19
|
const create_template_project_1 = require("./create-template-project");
|
|
19
20
|
const display_1 = require("./display");
|
|
20
21
|
const project_files_1 = require("./project-files");
|
|
@@ -50,38 +51,32 @@ async function codebuff(projectDir, { initialInput, git, costMode, runInitFlow,
|
|
|
50
51
|
}
|
|
51
52
|
if (require.main === module) {
|
|
52
53
|
const program = new commander_1.Command();
|
|
53
|
-
program
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
chrome-extension - Chrome extension starter template
|
|
74
|
-
|
|
75
|
-
See all templates at:
|
|
76
|
-
https://github.com/CodebuffAI/codebuff-community/tree/main/starter-templates
|
|
77
|
-
|
|
54
|
+
program.name('codebuff').version(package_json_1.default.version);
|
|
55
|
+
// Add arguments from shared definitions
|
|
56
|
+
cli_definitions_1.cliArguments.forEach((arg) => {
|
|
57
|
+
// For hidden arguments, just skip adding them to the help text
|
|
58
|
+
if (arg.hidden) {
|
|
59
|
+
program.argument(arg.flags, arg.description, { hidden: true });
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
program.argument(arg.flags, arg.description);
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
// Add options from shared definitions
|
|
66
|
+
cli_definitions_1.cliOptions.forEach((opt) => {
|
|
67
|
+
const optionInstance = new commander_1.Option(opt.flags, opt.description);
|
|
68
|
+
if (opt.hidden) {
|
|
69
|
+
optionInstance.hideHelp(true);
|
|
70
|
+
}
|
|
71
|
+
program.addOption(optionInstance);
|
|
72
|
+
});
|
|
73
|
+
program.addHelpText('after', `
|
|
78
74
|
Examples:
|
|
79
75
|
$ codebuff # Start in current directory
|
|
80
76
|
$ codebuff my-project # Start in specific directory
|
|
81
|
-
$ codebuff --create nextjs my-app # Create new Next.js project
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
The recommended way to get started is by running 'codebuff' in your project directory.
|
|
77
|
+
$ codebuff --create nextjs my-app # Create and scaffold a new Next.js project
|
|
78
|
+
|
|
79
|
+
For all commands and options, run 'codebuff' and then type 'help'.
|
|
85
80
|
`);
|
|
86
81
|
program.parse();
|
|
87
82
|
const options = program.opts();
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAEA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAEA,yCAAqD;AAErD,sDAA8D;AAC9D,2CAAgC;AAEhC,mEAAyC;AACzC,+BAA2B;AAC3B,uDAA4D;AAC5D,uEAAiE;AACjE,uCAAgD;AAChD,mDAKwB;AACxB,uEAA+D;AAE/D,uDAAkD;AAClD,iDAAiD;AACjD,qCAAyC;AACzC,+CAAgD;AAEhD,KAAK,UAAU,QAAQ,CACrB,UAA8B,EAC9B,EAAE,YAAY,EAAE,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAc;IAE/D,IAAA,8BAAoB,GAAE,CAAA;IAEtB,gCAAgC;IAChC,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,IAAA,oCAAoB,EAAC,UAAU,CAAC,CAAA;IAC9D,MAAM,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,IAAA,iBAAW,EAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAA;IAC5D,MAAM,WAAW,GAAG,IAAA,8BAAc,EAAC,OAAO,CAAC,CAAA;IAC3C,IAAA,mCAAmB,EAAC,GAAG,CAAC,CAAA;IAExB,IAAA,wBAAa,EAAC,GAAG,CAAC,CAAA;IAElB,gCAAgC;IAChC,MAAM,MAAM,GAAG,IAAA,2BAAkB,EAAC,WAAW,CAAC,CAAA;IAE9C,8CAA8C;IAC9C,MAAM,qBAAqB,GAAG,IAAA,6CAAmB,EAAC,WAAW,EAAE,MAAM,CAAC,CAAA;IAEtE,IAAA,yBAAa,GAAE,CAAA;IAEf,MAAM,aAAa,GAAG,IAAA,gCAAc,GAAE,CAAA;IAEtC,MAAM,sBAAsB,GAAG,IAAA,gDAAgC,EAAC,WAAW,CAAC,CAAA;IAE5E,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC;QAC/B,sBAAsB;QACtB,aAAa;QACb,qBAAqB;KACtB,CAAC,CAAA;IAEF,+BAA+B;IAC/B,SAAG,CAAC,UAAU,CAAC,YAAY,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAA;IACtD,MAAM,GAAG,GAAG,SAAG,CAAC,WAAW,EAAE,CAAA;IAE7B,MAAM,GAAG,CAAC,kBAAkB,CAAC,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC,CAAA;AAC7D,CAAC;AAED,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;IAC5B,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAA;IAE7B,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,sBAAW,CAAC,OAAO,CAAC,CAAA;IAErD,wCAAwC;IACxC,8BAAY,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QAC3B,+DAA+D;QAC/D,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACf,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;QAChE,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,WAAW,CAAC,CAAA;QAC9C,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,sCAAsC;IACtC,4BAAU,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QACzB,MAAM,cAAc,GAAG,IAAI,kBAAM,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,WAAW,CAAC,CAAA;QAC7D,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACf,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QAC/B,CAAC;QACD,OAAO,CAAC,SAAS,CAAC,cAAc,CAAC,CAAA;IACnC,CAAC,CAAC,CAAA;IAEF,OAAO,CAAC,WAAW,CACjB,OAAO,EACP;;;;;;;CAOH,CACE,CAAA;IAED,OAAO,CAAC,KAAK,EAAE,CAAA;IAEf,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAA;IAC9B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;IAEzB,2BAA2B;IAC3B,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAA;QAC/B,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,CAAA;QACjC,MAAM,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAA;QAEvC,IAAA,+CAAqB,EAAC,QAAQ,EAAE,UAAU,EAAE,WAAW,CAAC,CAAA;QACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,+BAA+B;IAC/B,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CACX,IAAA,gBAAG,EACD,kGAAkG,CACnG,CACF,CAAA;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,sBAAsB;IACtB,IAAI,QAAQ,GAAa,QAAQ,CAAA;IACjC,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,QAAQ,GAAG,MAAM,CAAA;IACnB,CAAC;SAAM,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QACvB,QAAQ,GAAG,KAAK,CAAA;IAClB,CAAC;SAAM,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;QAChC,QAAQ,GAAG,cAAc,CAAA;IAC3B,CAAC;IAED,yBAAyB;IACzB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,KAAK,OAAO,CAAC,CAAC,CAAE,OAAiB,CAAC,CAAC,CAAC,SAAS,CAAA;IAEpE,0CAA0C;IAC1C,MAAM,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;IAC3B,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAE5C,QAAQ,CAAC,WAAW,EAAE;QACpB,YAAY;QACZ,GAAG;QACH,QAAQ;QACR,WAAW,EAAE,OAAO,CAAC,IAAI;QACzB,KAAK,EAAE,OAAO,CAAC,KAAK;KACrB,CAAC,CAAA;AACJ,CAAC"}
|
package/dist/menu.js
CHANGED
|
@@ -31,20 +31,8 @@ exports.displayMenu = displayMenu;
|
|
|
31
31
|
const fs = __importStar(require("fs"));
|
|
32
32
|
const os_1 = __importDefault(require("os"));
|
|
33
33
|
const path_1 = __importDefault(require("path"));
|
|
34
|
-
const
|
|
35
|
-
const picocolors_1 = __importStar(require("picocolors"));
|
|
34
|
+
const picocolors_1 = require("picocolors");
|
|
36
35
|
const project_files_1 = require("./project-files");
|
|
37
|
-
const getRandomColors = () => {
|
|
38
|
-
const allColors = ['red', 'green', 'yellow', 'blue', 'magenta', 'cyan'];
|
|
39
|
-
const colors = [];
|
|
40
|
-
while (colors.length < 3) {
|
|
41
|
-
const color = allColors[Math.floor(Math.random() * allColors.length)];
|
|
42
|
-
if (!colors.includes(color)) {
|
|
43
|
-
colors.push(color);
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
return colors;
|
|
47
|
-
};
|
|
48
36
|
function displayGreeting(costMode, username) {
|
|
49
37
|
// Show extra info only for logged in users
|
|
50
38
|
const costModeDescription = {
|
|
@@ -68,24 +56,19 @@ function displayGreeting(costMode, username) {
|
|
|
68
56
|
console.log(`\nWelcome${username ? ` back ${username}` : ''}! What would you like to do?`);
|
|
69
57
|
}
|
|
70
58
|
function displayMenu() {
|
|
71
|
-
const
|
|
72
|
-
const
|
|
73
|
-
return selectedColors[Math.floor(Math.random() * selectedColors.length)];
|
|
74
|
-
};
|
|
59
|
+
const terminalWidth = process.stdout.columns || 80;
|
|
60
|
+
const dividerLine = '─'.repeat(terminalWidth);
|
|
75
61
|
const colorizeRandom = (text) => {
|
|
62
|
+
const colorFunctions = [picocolors_1.blueBright, picocolors_1.green, picocolors_1.yellow, picocolors_1.magenta, picocolors_1.cyan];
|
|
76
63
|
return text
|
|
77
64
|
.split('')
|
|
78
65
|
.map((char) => {
|
|
79
|
-
const
|
|
80
|
-
return
|
|
66
|
+
const colorFn = colorFunctions[Math.floor(Math.random() * colorFunctions.length)];
|
|
67
|
+
return colorFn(char);
|
|
81
68
|
})
|
|
82
69
|
.join('');
|
|
83
70
|
};
|
|
84
|
-
process.stdout.clearLine(0);
|
|
85
|
-
console.log();
|
|
86
71
|
console.log(`
|
|
87
|
-
${colorizeRandom(' { AI }')}
|
|
88
|
-
${colorizeRandom(' [CODER]')}
|
|
89
72
|
${colorizeRandom(' ')}
|
|
90
73
|
${colorizeRandom('██████╗')}${colorizeRandom(' ██████╗ ')}${colorizeRandom('██████╗ ')}${colorizeRandom('███████╗')}${colorizeRandom('██████╗ ')}${colorizeRandom('██╗ ██╗')}${colorizeRandom('███████╗')}${colorizeRandom('███████╗')}
|
|
91
74
|
${colorizeRandom('██╔════╝')}${colorizeRandom('██╔═══██╗')}${colorizeRandom('██╔══██╗')}${colorizeRandom('██╔════╝')}${colorizeRandom('██╔══██╗')}${colorizeRandom('██║ ██║')}${colorizeRandom('██╔════╝')}${colorizeRandom('██╔════╝')}
|
|
@@ -94,34 +77,93 @@ ${colorizeRandom('██║ ')}${colorizeRandom('██║ ██║')}${c
|
|
|
94
77
|
${colorizeRandom('╚██████╗')}${colorizeRandom('╚██████╔╝')}${colorizeRandom('██████╔╝')}${colorizeRandom('███████╗')}${colorizeRandom('██████╔╝')}${colorizeRandom('╚██████╔╝')}${colorizeRandom('██║ ')}${colorizeRandom('██║ ')}
|
|
95
78
|
${colorizeRandom(' ╚═════╝')}${colorizeRandom(' ╚═════╝ ')}${colorizeRandom('╚═════╝ ')}${colorizeRandom('╚══════╝')}${colorizeRandom('╚═════╝ ')}${colorizeRandom(' ╚═════╝ ')}${colorizeRandom('╚═╝ ')}${colorizeRandom('╚═╝ ')}
|
|
96
79
|
`);
|
|
97
|
-
console.log((0, picocolors_1.bold)(
|
|
98
|
-
console.log(`\
|
|
99
|
-
console.log(
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
80
|
+
console.log(`\n${(0, picocolors_1.bold)('Your AI pair programmer that understands, edits, and improves your codebase through natural conversation.')}`);
|
|
81
|
+
console.log(`\n${(0, picocolors_1.bold)((0, picocolors_1.underline)('DIAGNOSTICS CHECK'))}`);
|
|
82
|
+
console.log((() => {
|
|
83
|
+
const currentDirectoryLine = `${(0, picocolors_1.green)('✅ Current directory:')} ${(0, picocolors_1.bold)((0, picocolors_1.blueBright)((0, project_files_1.getProjectRoot)()))}`;
|
|
84
|
+
const hasGitRepo = fs.existsSync(path_1.default.join((0, project_files_1.getProjectRoot)(), '.git'));
|
|
85
|
+
const hasGitIgnore = fs.existsSync(path_1.default.join((0, project_files_1.getProjectRoot)(), '.gitignore'));
|
|
86
|
+
const hasKnowledgeMd = fs.existsSync(path_1.default.join((0, project_files_1.getProjectRoot)(), 'knowledge.md'));
|
|
87
|
+
const hasCodebuffJson = fs.existsSync(path_1.default.join((0, project_files_1.getProjectRoot)(), 'codebuff.json'));
|
|
88
|
+
const gitignoreNote = ' (Codebuff never reads files in your .gitignore/.codebuffignore)';
|
|
89
|
+
// Condition 1: Git repo found, all files present
|
|
90
|
+
if (hasGitRepo && hasGitIgnore && hasKnowledgeMd && hasCodebuffJson) {
|
|
91
|
+
return `${currentDirectoryLine}\n${(0, picocolors_1.green)('✅ Git repo: detected')}
|
|
92
|
+
${(0, picocolors_1.green)('✅ .gitignore: detected')}${gitignoreNote}
|
|
93
|
+
${(0, picocolors_1.green)('✅ knowledge.md: detected')}
|
|
94
|
+
${(0, picocolors_1.green)('✅ codebuff.json: detected')}`;
|
|
95
|
+
}
|
|
96
|
+
// Condition 2: Git repo not found
|
|
97
|
+
if (!hasGitRepo) {
|
|
98
|
+
return `${currentDirectoryLine}\n${(0, picocolors_1.yellow)('❌ Git repo: not found - navigate to a working directory!')}
|
|
99
|
+
${hasGitIgnore ? (0, picocolors_1.green)('✅ .gitignore: detected') : (0, picocolors_1.yellow)('❌ .gitignore: missing')}${gitignoreNote}
|
|
100
|
+
${hasKnowledgeMd ? (0, picocolors_1.green)('✅ knowledge.md: detected') : (0, picocolors_1.yellow)('❌ knowledge.md: missing')}
|
|
101
|
+
${hasCodebuffJson ? (0, picocolors_1.green)('✅ codebuff.json: detected') : (0, picocolors_1.yellow)('❌ codebuff.json: missing')}`;
|
|
102
|
+
}
|
|
103
|
+
// Condition 3: Missing .gitignore
|
|
104
|
+
if (!hasGitIgnore) {
|
|
105
|
+
return `${currentDirectoryLine}\n${(0, picocolors_1.green)('✅ Git repo: detected')}
|
|
106
|
+
${(0, picocolors_1.yellow)('❌ .gitignore: missing - type "generate a reasonable .gitignore"')}${gitignoreNote}
|
|
107
|
+
${hasKnowledgeMd ? (0, picocolors_1.green)('✅ knowledge.md: detected') : (0, picocolors_1.yellow)('❌ knowledge.md: missing')}
|
|
108
|
+
${hasCodebuffJson ? (0, picocolors_1.green)('✅ codebuff.json: detected') : (0, picocolors_1.yellow)('❌ codebuff.json: missing')}`;
|
|
109
|
+
}
|
|
110
|
+
// Condition 4: Missing knowledge files
|
|
111
|
+
return `${currentDirectoryLine}\n${(0, picocolors_1.green)('✅ Git repo: detected')}
|
|
112
|
+
${(0, picocolors_1.green)('✅ .gitignore: detected')}${gitignoreNote}
|
|
113
|
+
${!hasKnowledgeMd && !hasCodebuffJson
|
|
114
|
+
? (0, picocolors_1.yellow)('❌ knowledge.md & codebuff.json: missing - type "init"')
|
|
115
|
+
: !hasKnowledgeMd
|
|
116
|
+
? (0, picocolors_1.yellow)('❌ knowledge.md: missing - type "init"')
|
|
117
|
+
: !hasCodebuffJson
|
|
118
|
+
? (0, picocolors_1.yellow)('❌ codebuff.json: missing - type "init"')
|
|
119
|
+
: (0, picocolors_1.green)('✅ knowledge.md & codebuff.json: detected')}
|
|
120
|
+
${hasKnowledgeMd && !hasCodebuffJson ? `\n${(0, picocolors_1.yellow)('codebuff.json runs deployment scripts for you to test your code and runs configured checks for you by running your dev server.')}` : ''}
|
|
121
|
+
${!hasKnowledgeMd && hasCodebuffJson ? `\n${(0, picocolors_1.yellow)('knowledge.md helps Codebuff understand your project structure and codebase better for better results.')}` : ''}
|
|
122
|
+
${!hasKnowledgeMd && !hasCodebuffJson ? `\n${(0, picocolors_1.yellow)('knowledge.md helps Codebuff understand your project structure and codebase better for better results.')}\n${(0, picocolors_1.yellow)('codebuff.json runs deployment scripts for you to test your code and runs configured checks for you by running your dev server.')}` : ''}`;
|
|
123
|
+
})());
|
|
124
|
+
// COMMUNITY & FEEDBACK SECTION
|
|
125
|
+
console.log(`\n${(0, picocolors_1.bold)((0, picocolors_1.underline)('COMMUNITY & FEEDBACK'))}`);
|
|
126
|
+
console.log(`DM @brandonkachen or @jahooma on Discord, or email ${(0, picocolors_1.blueBright)('founders@codebuff.com')}`);
|
|
127
|
+
console.log(`Join our Discord: ${(0, picocolors_1.blueBright)('https://codebuff.com/discord')} ${(0, picocolors_1.yellow)('(Ctrl/Cmd+Click to open)')}`);
|
|
128
|
+
console.log(`\n${(0, picocolors_1.bold)((0, picocolors_1.underline)('EXAMPLE PROMPTS'))}
|
|
129
|
+
${'Code Quality:'}
|
|
130
|
+
${(0, picocolors_1.cyan)(' • "Add error handling to this function"')}
|
|
131
|
+
${(0, picocolors_1.cyan)(' • "Add JSDoc comments to this file"')}
|
|
132
|
+
${(0, picocolors_1.cyan)(' • "Fix the type errors in this component"')}
|
|
133
|
+
|
|
134
|
+
${'Testing & Validation:'}
|
|
135
|
+
${(0, picocolors_1.cyan)(' • "Create a unit test for the auth module"')}
|
|
136
|
+
${(0, picocolors_1.cyan)(' • "Add input validation to this endpoint"')}
|
|
137
|
+
|
|
138
|
+
${'Performance & Architecture:'}
|
|
139
|
+
${(0, picocolors_1.cyan)(' • "Optimize this database query"')}
|
|
140
|
+
${(0, picocolors_1.cyan)(' • "Refactor this to use async/await"')}
|
|
141
|
+
${(0, picocolors_1.cyan)(' • "Add caching to this service"')}
|
|
142
|
+
|
|
143
|
+
${'Features & Infrastructure:'}
|
|
144
|
+
${(0, picocolors_1.cyan)(' • "Create a new API endpoint for users"')}
|
|
145
|
+
${(0, picocolors_1.cyan)(' • "Add logging to these functions"')}
|
|
146
|
+
${(0, picocolors_1.cyan)(' • "Set up CI/CD pipeline config"')}
|
|
147
|
+
`);
|
|
148
|
+
// INTERACTIVE COMMANDS SECTION
|
|
149
|
+
const fixedCommandWidth = 30; // Fixed width for command column
|
|
150
|
+
const formatMenuLine = (command, description) => {
|
|
151
|
+
const paddedCommand = command.padEnd(fixedCommandWidth);
|
|
152
|
+
return `${paddedCommand}${description}`;
|
|
153
|
+
};
|
|
154
|
+
const menuLines = [
|
|
155
|
+
formatMenuLine('type "login"', 'Authenticate your session'),
|
|
156
|
+
formatMenuLine('type "init"', 'Configure project for better results'),
|
|
157
|
+
formatMenuLine('type "diff" or "d"', 'Show last assistant change diff'),
|
|
158
|
+
formatMenuLine('type "undo" / "redo"', 'Revert or re-apply last change'),
|
|
159
|
+
formatMenuLine('type "checkpoint <id>"', 'Restore to a specific checkpoint'),
|
|
160
|
+
formatMenuLine('type "!<cmd>"', 'Run shell command directly'),
|
|
161
|
+
formatMenuLine('type "usage" / "credits"', 'View remaining / bonus AI credits'),
|
|
162
|
+
formatMenuLine('hit ESC key or Ctrl-C', 'Cancel generation'),
|
|
163
|
+
formatMenuLine('type "exit" or Ctrl-C x2', 'Quit Codebuff'),
|
|
164
|
+
];
|
|
165
|
+
console.log(`\n${(0, picocolors_1.bold)((0, picocolors_1.underline)('INTERACTIVE COMMANDS'))}${' '.repeat(fixedCommandWidth - 20)}${(0, picocolors_1.bold)((0, picocolors_1.underline)('DESCRIPTION'))}\n${menuLines.join(`\n${dividerLine}`)}\n`);
|
|
166
|
+
console.log(`\nThanks for using Codebuff!`);
|
|
167
|
+
console.log(`${(0, picocolors_1.green)('↓ Start prompting now ↓')}`);
|
|
126
168
|
}
|
|
127
169
|
//# sourceMappingURL=menu.js.map
|
package/dist/menu.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menu.js","sourceRoot":"","sources":["../src/menu.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"menu.js","sourceRoot":"","sources":["../src/menu.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function handleInitializationFlowLocally(): void;
|
|
@@ -1,24 +0,0 @@
|
|
|
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.handleInitializationFlowLocally = handleInitializationFlowLocally;
|
|
7
|
-
const fs_1 = require("fs");
|
|
8
|
-
const path_1 = __importDefault(require("path"));
|
|
9
|
-
const constants_1 = require("../common/json-config/constants");
|
|
10
|
-
const project_files_1 = require("../project-files");
|
|
11
|
-
function handleInitializationFlowLocally() {
|
|
12
|
-
const projectRoot = (0, project_files_1.getProjectRoot)();
|
|
13
|
-
// Knowledge file will be created in the backend
|
|
14
|
-
const configPath = path_1.default.join(projectRoot, constants_1.codebuffConfigFile);
|
|
15
|
-
if (!(0, fs_1.existsSync)(configPath)) {
|
|
16
|
-
// Create the config file
|
|
17
|
-
const configContent = {
|
|
18
|
-
description: 'Template configuration for this project. See https://www.codebuff.com/config for all options.',
|
|
19
|
-
startupProcesses: [],
|
|
20
|
-
};
|
|
21
|
-
(0, fs_1.writeFileSync)(configPath, JSON.stringify(configContent, null, 2));
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
//# sourceMappingURL=initialization-flow.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"initialization-flow.js","sourceRoot":"","sources":["../../src/cli-handlers/initialization-flow.ts"],"names":[],"mappings":";;;;;AAOA,0EAeC;AAtBD,2BAA8C;AAC9C,gDAAuB;AAEvB,4DAAiE;AAEjE,oDAAiD;AAEjD,SAAgB,+BAA+B;IAC7C,MAAM,WAAW,GAAG,IAAA,8BAAc,GAAE,CAAA;IAEpC,gDAAgD;IAEhD,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,8BAAkB,CAAC,CAAA;IAC7D,IAAI,CAAC,IAAA,eAAU,EAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,yBAAyB;QACzB,MAAM,aAAa,GAAG;YACpB,WAAW,EACT,+FAA+F;YACjG,gBAAgB,EAAE,EAAE;SACrB,CAAA;QACD,IAAA,kBAAa,EAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;IACnE,CAAC;AACH,CAAC"}
|
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.processCommand = processCommand;
|
|
4
|
-
const analytics_events_1 = require("../common/constants/analytics-events");
|
|
5
|
-
const analytics_1 = require("../utils/analytics");
|
|
6
|
-
const menu_1 = require("../menu");
|
|
7
|
-
const checkpoint_manager_1 = require("../checkpoints/checkpoint-manager");
|
|
8
|
-
const api_key_1 = require("../cli-handlers/api-key");
|
|
9
|
-
const checkpoint_1 = require("../cli-handlers/checkpoint");
|
|
10
|
-
const diff_1 = require("../cli-handlers/diff");
|
|
11
|
-
const easter_egg_1 = require("../cli-handlers/easter-egg");
|
|
12
|
-
const inititalization_flow_1 = require("../cli-handlers/inititalization-flow");
|
|
13
|
-
async function processCommand(cli, userInput) {
|
|
14
|
-
const { client, readyPromise, rl } = cli;
|
|
15
|
-
// freshPrompt is now an arrow function on CLI, so direct reference is fine.
|
|
16
|
-
const freshPromptFn = cli.freshPrompt;
|
|
17
|
-
if (userInput === 'help' || userInput === 'h' || userInput === '/help') {
|
|
18
|
-
(0, menu_1.displayMenu)();
|
|
19
|
-
freshPromptFn();
|
|
20
|
-
return true;
|
|
21
|
-
}
|
|
22
|
-
if (userInput === 'login' || userInput === 'signin') {
|
|
23
|
-
await client.login();
|
|
24
|
-
checkpoint_manager_1.checkpointManager.clearCheckpoints();
|
|
25
|
-
return true;
|
|
26
|
-
}
|
|
27
|
-
if (userInput === 'logout' || userInput === 'signout') {
|
|
28
|
-
await client.logout();
|
|
29
|
-
freshPromptFn();
|
|
30
|
-
return true;
|
|
31
|
-
}
|
|
32
|
-
if (userInput.startsWith('ref-')) {
|
|
33
|
-
await client.handleReferralCode(userInput.trim());
|
|
34
|
-
return true;
|
|
35
|
-
}
|
|
36
|
-
const detectionResult = (0, api_key_1.detectApiKey)(userInput);
|
|
37
|
-
if (detectionResult.status !== 'not_found') {
|
|
38
|
-
await (0, api_key_1.handleApiKeyInput)(client, detectionResult, readyPromise, freshPromptFn // Pass the function directly
|
|
39
|
-
);
|
|
40
|
-
return true;
|
|
41
|
-
}
|
|
42
|
-
if (userInput === 'usage' || userInput === 'credits') {
|
|
43
|
-
await client.getUsage();
|
|
44
|
-
return true;
|
|
45
|
-
}
|
|
46
|
-
if (userInput === 'quit' || userInput === 'exit' || userInput === 'q') {
|
|
47
|
-
rl.close();
|
|
48
|
-
return true;
|
|
49
|
-
}
|
|
50
|
-
if (['diff', 'doff', 'dif', 'iff', 'd'].includes(userInput)) {
|
|
51
|
-
(0, diff_1.handleDiff)(client.lastChanges);
|
|
52
|
-
freshPromptFn();
|
|
53
|
-
return true;
|
|
54
|
-
}
|
|
55
|
-
if (userInput === 'uuddlrlrba' ||
|
|
56
|
-
userInput === 'konami' ||
|
|
57
|
-
userInput === 'codebuffy') {
|
|
58
|
-
(0, easter_egg_1.showEasterEgg)(freshPromptFn); // Pass the function directly
|
|
59
|
-
return true;
|
|
60
|
-
}
|
|
61
|
-
if ((0, checkpoint_1.isCheckpointCommand)(userInput)) {
|
|
62
|
-
(0, analytics_1.trackEvent)(analytics_events_1.AnalyticsEvent.CHECKPOINT_COMMAND_USED, {
|
|
63
|
-
command: userInput,
|
|
64
|
-
});
|
|
65
|
-
if ((0, checkpoint_1.isCheckpointCommand)(userInput, 'undo')) {
|
|
66
|
-
await (0, checkpoint_1.saveCheckpoint)(userInput, client, readyPromise);
|
|
67
|
-
const toRestore = await (0, checkpoint_1.handleUndo)(client, rl);
|
|
68
|
-
freshPromptFn(toRestore);
|
|
69
|
-
return true;
|
|
70
|
-
}
|
|
71
|
-
if ((0, checkpoint_1.isCheckpointCommand)(userInput, 'redo')) {
|
|
72
|
-
await (0, checkpoint_1.saveCheckpoint)(userInput, client, readyPromise);
|
|
73
|
-
const toRestore = await (0, checkpoint_1.handleRedo)(client, rl);
|
|
74
|
-
freshPromptFn(toRestore);
|
|
75
|
-
return true;
|
|
76
|
-
}
|
|
77
|
-
if ((0, checkpoint_1.isCheckpointCommand)(userInput, 'list')) {
|
|
78
|
-
await (0, checkpoint_1.saveCheckpoint)(userInput, client, readyPromise);
|
|
79
|
-
await (0, checkpoint_1.listCheckpoints)();
|
|
80
|
-
freshPromptFn();
|
|
81
|
-
return true;
|
|
82
|
-
}
|
|
83
|
-
const restoreMatch = (0, checkpoint_1.isCheckpointCommand)(userInput, 'restore');
|
|
84
|
-
if (restoreMatch) {
|
|
85
|
-
const id = parseInt(restoreMatch[1], 10);
|
|
86
|
-
await (0, checkpoint_1.saveCheckpoint)(userInput, client, readyPromise);
|
|
87
|
-
const toRestore = await (0, checkpoint_1.handleRestoreCheckpoint)(id, client, rl);
|
|
88
|
-
freshPromptFn(toRestore);
|
|
89
|
-
return true;
|
|
90
|
-
}
|
|
91
|
-
if ((0, checkpoint_1.isCheckpointCommand)(userInput, 'clear')) {
|
|
92
|
-
(0, checkpoint_1.handleClearCheckpoints)();
|
|
93
|
-
freshPromptFn();
|
|
94
|
-
return true;
|
|
95
|
-
}
|
|
96
|
-
if ((0, checkpoint_1.isCheckpointCommand)(userInput, 'save')) {
|
|
97
|
-
await (0, checkpoint_1.saveCheckpoint)(userInput, client, readyPromise, true);
|
|
98
|
-
(0, checkpoint_1.displayCheckpointMenu)();
|
|
99
|
-
freshPromptFn();
|
|
100
|
-
return true;
|
|
101
|
-
}
|
|
102
|
-
(0, checkpoint_1.displayCheckpointMenu)();
|
|
103
|
-
freshPromptFn();
|
|
104
|
-
return true;
|
|
105
|
-
}
|
|
106
|
-
if (userInput === 'init') {
|
|
107
|
-
(0, inititalization_flow_1.handleInitializationFlowLocally)();
|
|
108
|
-
return false;
|
|
109
|
-
}
|
|
110
|
-
return false;
|
|
111
|
-
}
|
|
112
|
-
//# sourceMappingURL=command-processor.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"command-processor.js","sourceRoot":"","sources":["../../src/cli-modules/command-processor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.handleLineInput = handleLineInput;
|
|
4
|
-
exports.handleKeyPressInput = handleKeyPressInput;
|
|
5
|
-
exports.attachInputEventHandlers = attachInputEventHandlers;
|
|
6
|
-
const readline_handler_1 = require("./readline-handler"); // For handleLine
|
|
7
|
-
// State variables that were previously in CLI, now managed here or passed via CLI instance
|
|
8
|
-
// For simplicity, we'll access them via the CLI instance passed to functions.
|
|
9
|
-
function detectPasting(cli) {
|
|
10
|
-
const currentTime = Date.now();
|
|
11
|
-
// Accessing and modifying CLI instance properties directly.
|
|
12
|
-
// Consider if these should be passed and returned if more functional style is preferred.
|
|
13
|
-
const timeDiff = currentTime - cli['lastInputTime']; // Private access via string key
|
|
14
|
-
if (timeDiff < 10) {
|
|
15
|
-
cli['consecutiveFastInputs']++;
|
|
16
|
-
if (cli['consecutiveFastInputs'] >= 2) {
|
|
17
|
-
cli['isPasting'] = true;
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
else {
|
|
21
|
-
cli['consecutiveFastInputs'] = 0;
|
|
22
|
-
if (cli['isPasting']) {
|
|
23
|
-
cli['isPasting'] = false;
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
cli['lastInputTime'] = currentTime;
|
|
27
|
-
}
|
|
28
|
-
async function handleLineInput(cli, line) {
|
|
29
|
-
detectPasting(cli); // detectPasting will modify cli.isPasting and cli.pastedContent
|
|
30
|
-
if (cli['isPasting']) {
|
|
31
|
-
cli['pastedContent'] += line + '\n';
|
|
32
|
-
}
|
|
33
|
-
else if (!cli.isReceivingResponse) { // isReceivingResponse is public
|
|
34
|
-
const input = (cli['pastedContent'] + line).trim();
|
|
35
|
-
cli['pastedContent'] = '';
|
|
36
|
-
// Directly call a method on cli that was originally handleUserInput
|
|
37
|
-
// For now, assuming handleUserInput is still on CLI and public/accessible.
|
|
38
|
-
// If handleUserInput is also refactored, this call will change.
|
|
39
|
-
await cli['handleUserInput'](input); // Private access for now
|
|
40
|
-
(0, readline_handler_1.appendToHistory)(input);
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
function handleKeyPressInput(cli, str, key) {
|
|
44
|
-
// ESC key is handled by signal-handler. This only handles other specific keypresses.
|
|
45
|
-
if (!cli['isPasting'] &&
|
|
46
|
-
str === ' ' &&
|
|
47
|
-
'_refreshLine' in cli.rl && // rl is public
|
|
48
|
-
'line' in cli.rl &&
|
|
49
|
-
'cursor' in cli.rl) {
|
|
50
|
-
const rlAny = cli.rl;
|
|
51
|
-
const { cursor, line } = rlAny;
|
|
52
|
-
const prevTwoChars = cursor > 1 ? line.slice(cursor - 2, cursor) : '';
|
|
53
|
-
if (prevTwoChars === ' ') {
|
|
54
|
-
rlAny.line = line.slice(0, cursor - 2) + '\n\n' + line.slice(cursor);
|
|
55
|
-
rlAny._refreshLine();
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
detectPasting(cli); // Also call detectPasting on keypress
|
|
59
|
-
}
|
|
60
|
-
// This function will be called from CLI to attach specific readline and keypress events
|
|
61
|
-
function attachInputEventHandlers(cli) {
|
|
62
|
-
cli.rl.on('line', (line) => handleLineInput(cli, line));
|
|
63
|
-
// process.stdin.on('keypress') is already set up by signal-handler for ESC.
|
|
64
|
-
// We need to ensure that this new keypress handler for other keys
|
|
65
|
-
// doesn't conflict or override it.
|
|
66
|
-
// A better approach might be a single keypress dispatcher in CLI
|
|
67
|
-
// that calls out to signal-handler for ESC and input-handler for others.
|
|
68
|
-
// For now, let's assume signal-handler's keypress is specific enough.
|
|
69
|
-
// Or, we can have this module handle all non-ESC keypresses.
|
|
70
|
-
// The current handleKeyPress in CLI will be replaced by this.
|
|
71
|
-
// The signal-handler's attachCliBehaviorEventHandlers already sets up a keypress listener for ESC.
|
|
72
|
-
// We need to make sure this doesn't add a second one or that they coordinate.
|
|
73
|
-
// Let's modify CLI's handleKeyPress to call this.
|
|
74
|
-
}
|
|
75
|
-
//# sourceMappingURL=input-handler.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"input-handler.js","sourceRoot":"","sources":["../../src/cli-modules/input-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import * as readline from 'readline';
|
|
2
|
-
import type { Client } from '../client';
|
|
3
|
-
export declare function loadHistory(): string[];
|
|
4
|
-
export declare function appendToHistory(line: string): void;
|
|
5
|
-
export declare function filePathCompleter(line: string): [string[], string];
|
|
6
|
-
export declare function setPrompt(rl: readline.Interface): void;
|
|
7
|
-
export declare function freshPrompt(rl: readline.Interface, client: Client, // Pass client instance
|
|
8
|
-
shouldReconnectWhenIdle: boolean, // Pass this state
|
|
9
|
-
onReconnect: () => void, // Callback for reconnection
|
|
10
|
-
userInput?: string): void;
|
|
11
|
-
export declare function initReadline(cliInstance: any): readline.Interface;
|