codebuff 1.0.294 → 1.0.296
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/background-process-manager.d.ts +50 -0
- package/dist/background-process-manager.js +3 -3
- package/dist/browser-runner.d.ts +35 -0
- package/dist/browser-runner.js +4 -4
- package/dist/chat-storage.d.ts +2 -0
- package/dist/chat-storage.js +2 -2
- package/dist/chat-storage.js.map +1 -1
- package/dist/checkpoints/checkpoint-manager.d.ts +94 -0
- package/dist/checkpoints/checkpoint-manager.js +1 -1
- package/dist/checkpoints/file-manager.d.ts +72 -0
- package/dist/checkpoints/file-manager.js +294 -0
- package/dist/checkpoints/file-manager.js.map +1 -0
- package/dist/cli-definitions.d.ts +9 -0
- package/dist/cli-definitions.js +54 -0
- package/dist/cli-definitions.js.map +1 -0
- package/dist/cli-handlers/api-key.d.ts +25 -0
- package/dist/cli-handlers/api-key.js +1 -1
- package/dist/cli-handlers/checkpoint.d.ts +18 -0
- package/dist/cli-handlers/diff.d.ts +2 -0
- package/dist/cli-handlers/diff.js +31 -0
- package/dist/cli-handlers/diff.js.map +1 -0
- package/dist/cli-handlers/easter-egg.d.ts +1 -0
- package/dist/cli-handlers/easter-egg.js +126 -0
- package/dist/cli-handlers/easter-egg.js.map +1 -0
- package/dist/cli-handlers/inititalization-flow.d.ts +1 -0
- package/dist/cli-handlers/inititalization-flow.js +1 -1
- package/dist/cli.d.ts +66 -0
- package/dist/cli.js +87 -30
- package/dist/cli.js.map +1 -1
- package/dist/client.d.ts +10 -7
- package/dist/client.js +71 -12
- package/dist/client.js.map +1 -1
- package/dist/code-map/tsconfig.tsbuildinfo +1 -1
- package/dist/common/actions.d.ts +3 -0
- package/dist/common/actions.js +1 -0
- package/dist/common/actions.js.map +1 -1
- package/dist/common/analytics.d.ts +1 -0
- package/dist/common/analytics.js +7 -0
- package/dist/common/analytics.js.map +1 -1
- package/dist/common/browser-actions.d.ts +234 -234
- package/dist/common/credit-delegation.d.ts +19 -0
- package/dist/common/credit-delegation.js +97 -0
- package/dist/common/credit-delegation.js.map +1 -0
- package/dist/common/types/organization.d.ts +102 -0
- package/dist/common/types/organization.js +3 -0
- package/dist/common/types/organization.js.map +1 -0
- package/dist/common/util/changes.d.ts +1 -0
- package/dist/common/util/changes.js +13 -4
- package/dist/common/util/changes.js.map +1 -1
- package/dist/common/websockets/websocket-schema.d.ts +10 -0
- package/dist/config.d.ts +4 -0
- package/dist/config.js +12 -0
- package/dist/config.js.map +1 -0
- package/dist/create-template-project.d.ts +1 -0
- package/dist/create-template-project.js +107 -0
- package/dist/create-template-project.js.map +1 -0
- package/dist/credentials.d.ts +4 -0
- package/dist/credentials.js +2 -2
- package/dist/dev-process-manager.d.ts +10 -0
- package/dist/dev-process-manager.js +1 -1
- package/dist/display.d.ts +11 -0
- package/dist/display.js +85 -0
- package/dist/display.js.map +1 -0
- package/dist/fingerprint.d.ts +1 -0
- package/dist/fingerprint.js +48 -0
- package/dist/fingerprint.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +2 -2
- package/dist/menu.d.ts +14 -0
- package/dist/menu.js +319 -0
- package/dist/menu.js.map +1 -0
- package/dist/organization-context.d.ts +47 -0
- package/dist/organization-context.js +170 -0
- package/dist/organization-context.js.map +1 -0
- package/dist/project-files.d.ts +4 -3
- package/dist/project-files.js +17 -8
- package/dist/project-files.js.map +1 -1
- package/dist/slash-commands.d.ts +7 -0
- package/dist/slash-commands.js +21 -0
- package/dist/slash-commands.js.map +1 -0
- package/dist/startup-process-handler.d.ts +2 -0
- package/dist/tool-handlers.d.ts +2 -2
- package/dist/tool-handlers.js +9 -6
- package/dist/tool-handlers.js.map +1 -1
- package/dist/types.d.ts +15 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/dist/update-codebuff.d.ts +1 -0
- package/dist/update-codebuff.js +7 -4
- package/dist/update-codebuff.js.map +1 -1
- package/dist/utils/__tests__/background-process-manager.test.d.ts +1 -0
- package/dist/utils/__tests__/background-process-manager.test.js +327 -0
- package/dist/utils/__tests__/background-process-manager.test.js.map +1 -0
- package/dist/utils/__tests__/tool-renderers.test.d.ts +1 -0
- package/dist/utils/__tests__/tool-renderers.test.js +2 -2
- package/dist/utils/__tests__/xml-stream-parser.test.d.ts +1 -0
- package/dist/utils/__tests__/xml-stream-parser.test.js +1 -1
- package/dist/utils/analytics.d.ts +7 -0
- package/dist/utils/analytics.js +8 -0
- package/dist/utils/analytics.js.map +1 -1
- package/dist/utils/detect-shell.d.ts +1 -0
- package/dist/utils/detect-shell.js +60 -0
- package/dist/utils/detect-shell.js.map +1 -0
- package/dist/utils/git.d.ts +10 -0
- package/dist/utils/git.js +112 -0
- package/dist/utils/git.js.map +1 -0
- package/dist/utils/image.d.ts +4 -0
- package/dist/utils/image.js +67 -0
- package/dist/utils/image.js.map +1 -0
- package/dist/utils/logger.d.ts +21 -0
- package/dist/utils/logger.js +14 -7
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/spinner.d.ts +12 -0
- package/dist/utils/spinner.js +94 -0
- package/dist/utils/spinner.js.map +1 -0
- package/dist/utils/system-info.d.ts +8 -0
- package/dist/utils/system-info.js +22 -0
- package/dist/utils/system-info.js.map +1 -0
- package/dist/utils/terminal.d.ts +44 -0
- package/dist/utils/terminal.js +11 -7
- package/dist/utils/terminal.js.map +1 -1
- package/dist/utils/tool-renderers.d.ts +16 -0
- package/dist/utils/tool-renderers.js +2 -2
- package/dist/utils/xml-stream-parser.d.ts +1 -1
- package/dist/utils/xml-stream-parser.js +2 -2
- package/dist/web-scraper.d.ts +3 -0
- package/dist/web-scraper.js +1 -1
- package/dist/workers/checkpoint-worker.d.ts +1 -0
- package/dist/workers/checkpoint-worker.js +48 -0
- package/dist/workers/checkpoint-worker.js.map +1 -0
- package/dist/workers/project-context.d.ts +1 -0
- package/dist/workers/project-context.js +1 -1
- package/package.json +5 -4
package/dist/display.js
ADDED
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Overwrites writing multiple (more than 2) newlines for all functions.
|
|
4
|
+
*
|
|
5
|
+
* Only replaces raw '\n\n\n' strings. i.e. '\n\n' + green('\n\n'), still
|
|
6
|
+
* renders as four newline characters. Because there is an ANSI escape
|
|
7
|
+
* character between the first two and the last two newline characters.
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.getPrevious = getPrevious;
|
|
11
|
+
exports.setPrevious = setPrevious;
|
|
12
|
+
exports.enableSquashNewlines = enableSquashNewlines;
|
|
13
|
+
exports.disableSquashNewlines = disableSquashNewlines;
|
|
14
|
+
let squashingEnabled = false;
|
|
15
|
+
let previous = ' ';
|
|
16
|
+
function getPrevious() {
|
|
17
|
+
return previous;
|
|
18
|
+
}
|
|
19
|
+
function setPrevious(str) {
|
|
20
|
+
previous = str;
|
|
21
|
+
}
|
|
22
|
+
function enableSquashNewlines() {
|
|
23
|
+
squashingEnabled = true;
|
|
24
|
+
}
|
|
25
|
+
function disableSquashNewlines() {
|
|
26
|
+
squashingEnabled = false;
|
|
27
|
+
}
|
|
28
|
+
function addCarriageReturn(str) {
|
|
29
|
+
// Do not copy over \n from previous
|
|
30
|
+
const base = (previous[previous.length - 1] === '\r' ? '\r' : ' ') + str;
|
|
31
|
+
// Replace twice, because of no overlap '\n\n'
|
|
32
|
+
const withCarriageReturns = base.replace(/(?<!\r)\n/g, '\r\n');
|
|
33
|
+
return withCarriageReturns.slice(1);
|
|
34
|
+
}
|
|
35
|
+
const originalWrite = process.stdout.write.bind(process.stdout);
|
|
36
|
+
process.stdout.write = function (chunk, encodingOrCallback, callbackMaybe) {
|
|
37
|
+
let chunkString = typeof chunk === 'string' ? chunk : chunk.toString();
|
|
38
|
+
chunkString = addCarriageReturn(chunkString);
|
|
39
|
+
if (!squashingEnabled) {
|
|
40
|
+
previous += chunkString;
|
|
41
|
+
previous = previous.slice(previous.length - 4);
|
|
42
|
+
if (typeof encodingOrCallback === 'function') {
|
|
43
|
+
// Called like write(chunk, callback)
|
|
44
|
+
return originalWrite(chunkString, encodingOrCallback);
|
|
45
|
+
}
|
|
46
|
+
// Called like write(chunk, encoding, callback)
|
|
47
|
+
return originalWrite(chunkString, encodingOrCallback, callbackMaybe);
|
|
48
|
+
}
|
|
49
|
+
const combinedContent = previous + chunkString;
|
|
50
|
+
const processedContent = combinedContent.replace(/(\r\n){3,}/g, '\r\n\r\n');
|
|
51
|
+
const processedChunk = processedContent.slice(previous.length);
|
|
52
|
+
previous = processedContent.slice(processedContent.length - 4);
|
|
53
|
+
if (typeof encodingOrCallback === 'function') {
|
|
54
|
+
// Called like write(chunk, callback)
|
|
55
|
+
return originalWrite(processedChunk, encodingOrCallback);
|
|
56
|
+
}
|
|
57
|
+
// Called like write(chunk, encoding, callback)
|
|
58
|
+
return originalWrite(processedChunk, encodingOrCallback, callbackMaybe);
|
|
59
|
+
};
|
|
60
|
+
const originalError = process.stderr.write.bind(process.stderr);
|
|
61
|
+
process.stderr.write = function (chunk, encodingOrCallback, callbackMaybe) {
|
|
62
|
+
let chunkString = typeof chunk === 'string' ? chunk : chunk.toString();
|
|
63
|
+
chunkString = addCarriageReturn(chunkString);
|
|
64
|
+
if (!squashingEnabled) {
|
|
65
|
+
previous += chunkString;
|
|
66
|
+
previous = previous.slice(previous.length - 4);
|
|
67
|
+
if (typeof encodingOrCallback === 'function') {
|
|
68
|
+
// Called like write(chunk, callback)
|
|
69
|
+
return originalError(chunkString, encodingOrCallback);
|
|
70
|
+
}
|
|
71
|
+
// Called like write(chunk, encoding, callback)
|
|
72
|
+
return originalError(chunkString, encodingOrCallback, callbackMaybe);
|
|
73
|
+
}
|
|
74
|
+
const combinedContent = previous + chunkString;
|
|
75
|
+
const processedContent = combinedContent.replace(/\r\n{3,}/g, '\r\n\r\n');
|
|
76
|
+
const processedChunk = processedContent.slice(previous.length);
|
|
77
|
+
previous = processedContent.slice(processedContent.length - 4);
|
|
78
|
+
if (typeof encodingOrCallback === 'function') {
|
|
79
|
+
// Called like write(chunk, callback)
|
|
80
|
+
return originalError(processedChunk, encodingOrCallback);
|
|
81
|
+
}
|
|
82
|
+
// Called like write(chunk, encoding, callback)
|
|
83
|
+
return originalError(processedChunk, encodingOrCallback, callbackMaybe);
|
|
84
|
+
};
|
|
85
|
+
//# sourceMappingURL=display.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"display.js","sourceRoot":"","sources":["../src/display.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function calculateFingerprint(): Promise<string>;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Modified from: https://github.com/andsmedeiros/hw-fingerprint
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.calculateFingerprint = calculateFingerprint;
|
|
5
|
+
const node_crypto_1 = require("node:crypto");
|
|
6
|
+
const node_os_1 = require("node:os");
|
|
7
|
+
const systeminformation_1 = require("systeminformation");
|
|
8
|
+
const getFingerprintInfo = async () => {
|
|
9
|
+
const { manufacturer, model, serial, uuid } = await (0, systeminformation_1.system)();
|
|
10
|
+
const { vendor, version: biosVersion, releaseDate } = await (0, systeminformation_1.bios)();
|
|
11
|
+
const { manufacturer: boardManufacturer, model: boardModel, serial: boardSerial, } = await (0, systeminformation_1.baseboard)();
|
|
12
|
+
const { manufacturer: cpuManufacturer, brand, speedMax, cores, physicalCores, socket, } = await (0, systeminformation_1.cpu)();
|
|
13
|
+
const { platform, arch } = await (0, systeminformation_1.osInfo)();
|
|
14
|
+
return {
|
|
15
|
+
EOL: node_os_1.EOL,
|
|
16
|
+
endianness: (0, node_os_1.endianness)(),
|
|
17
|
+
manufacturer,
|
|
18
|
+
model,
|
|
19
|
+
serial,
|
|
20
|
+
uuid,
|
|
21
|
+
vendor,
|
|
22
|
+
biosVersion,
|
|
23
|
+
releaseDate,
|
|
24
|
+
boardManufacturer,
|
|
25
|
+
boardModel,
|
|
26
|
+
boardSerial,
|
|
27
|
+
cpuManufacturer,
|
|
28
|
+
brand,
|
|
29
|
+
speedMax: speedMax.toFixed(2),
|
|
30
|
+
cores,
|
|
31
|
+
physicalCores,
|
|
32
|
+
socket,
|
|
33
|
+
platform,
|
|
34
|
+
arch,
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
async function calculateFingerprint() {
|
|
38
|
+
const fingerprintInfo = await getFingerprintInfo();
|
|
39
|
+
const fingerprintString = JSON.stringify(fingerprintInfo);
|
|
40
|
+
const fingerprintHash = (0, node_crypto_1.createHash)('sha256')
|
|
41
|
+
.update(fingerprintString)
|
|
42
|
+
.digest()
|
|
43
|
+
.toString('base64url');
|
|
44
|
+
// Add 8 random characters to make the fingerprint unique even on identical hardware
|
|
45
|
+
const randomSuffix = (0, node_crypto_1.randomBytes)(6).toString('base64url').substring(0, 8);
|
|
46
|
+
return `${fingerprintHash}-${randomSuffix}`;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=fingerprint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fingerprint.js","sourceRoot":"","sources":["../src/fingerprint.ts"],"names":[],"mappings":";AAAA,gEAAgE;;AAsDhE,oDAYC;AAhED,6CAAqD;AACrD,qCAAyC;AACzC,yDAO0B;AAE1B,MAAM,kBAAkB,GAAG,KAAK,IAAI,EAAE;IACpC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAA,0BAAM,GAAE,CAAA;IAC5D,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,MAAM,IAAA,wBAAI,GAAE,CAAA;IAClE,MAAM,EACJ,YAAY,EAAE,iBAAiB,EAC/B,KAAK,EAAE,UAAU,EACjB,MAAM,EAAE,WAAW,GACpB,GAAG,MAAM,IAAA,6BAAS,GAAE,CAAA;IACrB,MAAM,EACJ,YAAY,EAAE,eAAe,EAC7B,KAAK,EACL,QAAQ,EACR,KAAK,EACL,aAAa,EACb,MAAM,GACP,GAAG,MAAM,IAAA,uBAAG,GAAE,CAAA;IACf,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,MAAM,IAAA,0BAAM,GAAE,CAAA;IAEzC,OAAO;QACL,GAAG,EAAH,aAAG;QACH,UAAU,EAAE,IAAA,oBAAU,GAAE;QACxB,YAAY;QACZ,KAAK;QACL,MAAM;QACN,IAAI;QACJ,MAAM;QACN,WAAW;QACX,WAAW;QACX,iBAAiB;QACjB,UAAU;QACV,WAAW;QACX,eAAe;QACf,KAAK;QACL,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;QAC7B,KAAK;QACL,aAAa;QACb,MAAM;QACN,QAAQ;QACR,IAAI;KACkB,CAAA;AAC1B,CAAC,CAAA;AACM,KAAK,UAAU,oBAAoB;IACxC,MAAM,eAAe,GAAG,MAAM,kBAAkB,EAAE,CAAA;IAClD,MAAM,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAA;IACzD,MAAM,eAAe,GAAG,IAAA,wBAAU,EAAC,QAAQ,CAAC;SACzC,MAAM,CAAC,iBAAiB,CAAC;SACzB,MAAM,EAAE;SACR,QAAQ,CAAC,WAAW,CAAC,CAAA;IAExB,oFAAoF;IACpF,MAAM,YAAY,GAAG,IAAA,yBAAW,EAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IAEzE,OAAO,GAAG,eAAe,IAAI,YAAY,EAAE,CAAA;AAC7C,CAAC"}
|
package/dist/index.d.ts
ADDED
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
process.env.NEXT_PUBLIC_CB_ENVIRONMENT = 'production';
|
|
3
3
|
process.env.NEXT_PUBLIC_BACKEND_URL = 'manicode-backend.onrender.com';
|
|
4
|
-
process.env.NEXT_PUBLIC_APP_URL = 'https://
|
|
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
7
|
process.env.NEXT_PUBLIC_POSTHOG_HOST_URL = 'https://us.i.posthog.com';
|
|
@@ -11,7 +11,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
11
11
|
};
|
|
12
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
13
|
const commander_1 = require("commander");
|
|
14
|
-
const parser_1 = require("common/json-config/parser");
|
|
14
|
+
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");
|
package/dist/menu.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { CostMode } from './common/constants';
|
|
2
|
+
export interface CommandInfo {
|
|
3
|
+
commandText: string;
|
|
4
|
+
description: string;
|
|
5
|
+
baseCommand?: string;
|
|
6
|
+
params?: string;
|
|
7
|
+
isSlashCommand?: boolean;
|
|
8
|
+
aliases?: string[];
|
|
9
|
+
}
|
|
10
|
+
export declare const interactiveCommandDetails: CommandInfo[];
|
|
11
|
+
export declare function getSlashCommands(): CommandInfo[];
|
|
12
|
+
export declare function displaySlashCommandHelperMenu(): void;
|
|
13
|
+
export declare function displayGreeting(costMode: CostMode, username: string | null): void;
|
|
14
|
+
export declare function displayMenu(): void;
|
package/dist/menu.js
ADDED
|
@@ -0,0 +1,319 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
exports.interactiveCommandDetails = void 0;
|
|
30
|
+
exports.getSlashCommands = getSlashCommands;
|
|
31
|
+
exports.displaySlashCommandHelperMenu = displaySlashCommandHelperMenu;
|
|
32
|
+
exports.displayGreeting = displayGreeting;
|
|
33
|
+
exports.displayMenu = displayMenu;
|
|
34
|
+
const fs = __importStar(require("fs"));
|
|
35
|
+
const os_1 = __importDefault(require("os"));
|
|
36
|
+
const path_1 = __importDefault(require("path"));
|
|
37
|
+
const picocolors_1 = require("picocolors");
|
|
38
|
+
const project_files_1 = require("./project-files");
|
|
39
|
+
exports.interactiveCommandDetails = [
|
|
40
|
+
{
|
|
41
|
+
baseCommand: 'help',
|
|
42
|
+
description: 'Display help information',
|
|
43
|
+
isSlashCommand: true,
|
|
44
|
+
commandText: '', // Empty commandText ensures it's not shown in the main interactive list
|
|
45
|
+
aliases: ['h'], // Optional: if you want /h to also work for tab completion
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
commandText: '"login"',
|
|
49
|
+
baseCommand: 'login',
|
|
50
|
+
description: 'Authenticate your session',
|
|
51
|
+
isSlashCommand: false,
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
commandText: '"init"',
|
|
55
|
+
baseCommand: 'init',
|
|
56
|
+
description: 'Configure project for better results',
|
|
57
|
+
isSlashCommand: true,
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
commandText: '"diff" or "d"',
|
|
61
|
+
baseCommand: 'diff',
|
|
62
|
+
aliases: ['d'],
|
|
63
|
+
description: 'Show last assistant change diff',
|
|
64
|
+
isSlashCommand: true,
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
commandText: '"undo" / "redo"',
|
|
68
|
+
description: 'Revert or re-apply last change',
|
|
69
|
+
// This entry will be expanded into two slash commands: /undo and /redo
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
commandText: '"checkpoint <id>"',
|
|
73
|
+
baseCommand: 'checkpoint',
|
|
74
|
+
params: '<id>',
|
|
75
|
+
description: 'Restore to a specific checkpoint',
|
|
76
|
+
isSlashCommand: true,
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
commandText: '"!<cmd>"',
|
|
80
|
+
baseCommand: '!', // Or handle this specially, e.g. baseCommand 'shell'
|
|
81
|
+
params: '<cmd>',
|
|
82
|
+
description: 'Run shell command directly',
|
|
83
|
+
isSlashCommand: false, // e.g. /! <cmd> or /shell <cmd>
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
commandText: '"usage" or "credits"',
|
|
87
|
+
description: 'View remaining / bonus AI credits',
|
|
88
|
+
// This entry will be expanded into two slash commands: /usage and /credits
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
commandText: '"reset"',
|
|
92
|
+
baseCommand: 'reset',
|
|
93
|
+
description: 'Reset the conversation context, as if you just started a new Codebuff session',
|
|
94
|
+
isSlashCommand: true,
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
commandText: 'ESC key or Ctrl-C',
|
|
98
|
+
description: 'Cancel generation',
|
|
99
|
+
isSlashCommand: false,
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
baseCommand: 'undo',
|
|
103
|
+
description: 'Undo last change',
|
|
104
|
+
isSlashCommand: true,
|
|
105
|
+
commandText: '',
|
|
106
|
+
}, // commandText empty as it's covered by "undo / redo" for main menu
|
|
107
|
+
{
|
|
108
|
+
baseCommand: 'redo',
|
|
109
|
+
description: 'Redo last undone change',
|
|
110
|
+
isSlashCommand: true,
|
|
111
|
+
commandText: '',
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
baseCommand: 'usage',
|
|
115
|
+
description: 'View AI credits usage',
|
|
116
|
+
isSlashCommand: true,
|
|
117
|
+
commandText: '',
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
baseCommand: 'credits',
|
|
121
|
+
description: 'View AI credits balance',
|
|
122
|
+
isSlashCommand: false,
|
|
123
|
+
commandText: '',
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
baseCommand: 'lite',
|
|
127
|
+
description: 'Switch to lite mode (faster, cheaper)',
|
|
128
|
+
isSlashCommand: true,
|
|
129
|
+
commandText: '',
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
baseCommand: 'normal',
|
|
133
|
+
description: 'Switch to normal mode (balanced)',
|
|
134
|
+
isSlashCommand: true,
|
|
135
|
+
commandText: '',
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
baseCommand: 'max',
|
|
139
|
+
description: 'Switch to max mode (slower, more thorough)',
|
|
140
|
+
isSlashCommand: true,
|
|
141
|
+
commandText: '',
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
commandText: '"exit" or Ctrl-C x2',
|
|
145
|
+
baseCommand: 'exit',
|
|
146
|
+
description: 'Quit Codebuff',
|
|
147
|
+
isSlashCommand: true,
|
|
148
|
+
},
|
|
149
|
+
];
|
|
150
|
+
function getSlashCommands() {
|
|
151
|
+
return exports.interactiveCommandDetails
|
|
152
|
+
.filter((cmd) => cmd.isSlashCommand && cmd.baseCommand)
|
|
153
|
+
.sort((a, b) => a.baseCommand.localeCompare(b.baseCommand));
|
|
154
|
+
}
|
|
155
|
+
function displaySlashCommandHelperMenu() {
|
|
156
|
+
const commands = getSlashCommands();
|
|
157
|
+
if (commands.length === 0) {
|
|
158
|
+
return;
|
|
159
|
+
}
|
|
160
|
+
// Calculate the maximum length of command strings for alignment
|
|
161
|
+
const maxCommandLength = Math.max(...commands.map((cmd) => {
|
|
162
|
+
const commandString = `/${cmd.baseCommand}${cmd.params ? ` ${cmd.params}` : ''}`;
|
|
163
|
+
return commandString.length;
|
|
164
|
+
}));
|
|
165
|
+
// Format each command with its description
|
|
166
|
+
const commandLines = commands.map((cmd) => {
|
|
167
|
+
const commandString = `/${cmd.baseCommand}${cmd.params ? ` ${cmd.params}` : ''}`;
|
|
168
|
+
// Pad with dots to align descriptions
|
|
169
|
+
const padding = '.'.repeat(maxCommandLength - commandString.length + 3);
|
|
170
|
+
return `${(0, picocolors_1.cyan)(commandString)} ${padding} ${cmd.description}`;
|
|
171
|
+
});
|
|
172
|
+
// Add the shell command tip at the end
|
|
173
|
+
const shellTip = (0, picocolors_1.gray)('(Tip: Type "!" followed by a command to run it in your shell, e.g., !ls)');
|
|
174
|
+
// Print with consistent spacing
|
|
175
|
+
console.log(`\n\n${commandLines.join('\n')}\n${shellTip}\n`);
|
|
176
|
+
}
|
|
177
|
+
function displayGreeting(costMode, username) {
|
|
178
|
+
// Show extra info only for logged in users
|
|
179
|
+
const costModeDescription = {
|
|
180
|
+
lite: (0, picocolors_1.bold)((0, picocolors_1.yellow)('Lite mode ✨ enabled (switch modes by typing in "/")')),
|
|
181
|
+
normal: '',
|
|
182
|
+
max: (0, picocolors_1.bold)((0, picocolors_1.blueBright)('Max mode️ ⚡ enabled (switch modes by typing in "/")')),
|
|
183
|
+
experimental: (0, picocolors_1.bold)((0, picocolors_1.magenta)('Experimental mode 🧪 enabled')),
|
|
184
|
+
};
|
|
185
|
+
if (costModeDescription[costMode]) {
|
|
186
|
+
console.log(`${costModeDescription[costMode]}`);
|
|
187
|
+
}
|
|
188
|
+
if ((0, project_files_1.isSubdir)((0, project_files_1.getProjectRoot)(), os_1.default.homedir())) {
|
|
189
|
+
console.info(`Welcome! Codebuff is your AI pair programmer that edits your codebase through natural conversation.
|
|
190
|
+
|
|
191
|
+
You are currently in "${(0, picocolors_1.green)((0, project_files_1.getProjectRoot)())}".
|
|
192
|
+
|
|
193
|
+
To get started:
|
|
194
|
+
1. Navigate to your project (cd your/project/root)
|
|
195
|
+
2. Run "codebuff" there instead
|
|
196
|
+
`.trim());
|
|
197
|
+
process.exit(0);
|
|
198
|
+
}
|
|
199
|
+
console.log(`Codebuff will read and write files in "${(0, project_files_1.getProjectRoot)()}". Type "help" for a list of commands.`);
|
|
200
|
+
const gitDir = path_1.default.join((0, project_files_1.getProjectRoot)(), '.git');
|
|
201
|
+
if (!fs.existsSync(gitDir)) {
|
|
202
|
+
console.info((0, picocolors_1.magenta)("Just fyi, this project doesn't contain a .git directory (are you at the top level of your project?). Codebuff works best with a git repo!"));
|
|
203
|
+
}
|
|
204
|
+
console.log(`\nWelcome${username ? ` back ${username}` : ''}! What would you like to do?`);
|
|
205
|
+
}
|
|
206
|
+
const getRandomColors = () => {
|
|
207
|
+
const allColors = [picocolors_1.red, picocolors_1.green, picocolors_1.yellow, picocolors_1.blue, picocolors_1.blueBright, picocolors_1.magenta, picocolors_1.cyan];
|
|
208
|
+
const colors = [];
|
|
209
|
+
while (colors.length < 3) {
|
|
210
|
+
const color = allColors[Math.floor(Math.random() * allColors.length)];
|
|
211
|
+
if (!colors.includes(color)) {
|
|
212
|
+
colors.push(color);
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
return colors;
|
|
216
|
+
};
|
|
217
|
+
function displayMenu() {
|
|
218
|
+
const terminalWidth = process.stdout.columns || 80;
|
|
219
|
+
const dividerLine = '─'.repeat(terminalWidth);
|
|
220
|
+
const selectedColors = getRandomColors();
|
|
221
|
+
const colorizeRandom = (text) => {
|
|
222
|
+
return text
|
|
223
|
+
.split('')
|
|
224
|
+
.map((char) => {
|
|
225
|
+
const colorFn = selectedColors[Math.floor(Math.random() * selectedColors.length)];
|
|
226
|
+
return colorFn(char);
|
|
227
|
+
})
|
|
228
|
+
.join('');
|
|
229
|
+
};
|
|
230
|
+
console.log(`
|
|
231
|
+
${colorizeRandom(' ')}
|
|
232
|
+
${colorizeRandom('██████╗')}${colorizeRandom(' ██████╗ ')}${colorizeRandom('██████╗ ')}${colorizeRandom('███████╗')}${colorizeRandom('██████╗ ')}${colorizeRandom('██╗ ██╗')}${colorizeRandom('███████╗')}${colorizeRandom('███████╗')}
|
|
233
|
+
${colorizeRandom('██╔════╝')}${colorizeRandom('██╔═══██╗')}${colorizeRandom('██╔══██╗')}${colorizeRandom('██╔════╝')}${colorizeRandom('██╔══██╗')}${colorizeRandom('██║ ██║')}${colorizeRandom('██╔════╝')}${colorizeRandom('██╔════╝')}
|
|
234
|
+
${colorizeRandom('██║ ')}${colorizeRandom('██║ ██║')}${colorizeRandom('██║ ██║')}${colorizeRandom('█████╗ ')}${colorizeRandom('██████╔╝')}${colorizeRandom('██║ ██║')}${colorizeRandom('█████╗ ')}${colorizeRandom('█████╗ ')}
|
|
235
|
+
${colorizeRandom('██║ ')}${colorizeRandom('██║ ██║')}${colorizeRandom('██║ ██║')}${colorizeRandom('██╔══╝ ')}${colorizeRandom('██╔══██╗')}${colorizeRandom('██║ ██║')}${colorizeRandom('██╔══╝ ')}${colorizeRandom('██╔══╝ ')}
|
|
236
|
+
${colorizeRandom('╚██████╗')}${colorizeRandom('╚██████╔╝')}${colorizeRandom('██████╔╝')}${colorizeRandom('███████╗')}${colorizeRandom('██████╔╝')}${colorizeRandom('╚██████╔╝')}${colorizeRandom('██║ ')}${colorizeRandom('██║ ')}
|
|
237
|
+
${colorizeRandom(' ╚═════╝')}${colorizeRandom(' ╚═════╝ ')}${colorizeRandom('╚═════╝ ')}${colorizeRandom('╚══════╝')}${colorizeRandom('╚═════╝ ')}${colorizeRandom(' ╚═════╝ ')}${colorizeRandom('╚═╝ ')}${colorizeRandom('╚═╝ ')}
|
|
238
|
+
`);
|
|
239
|
+
console.log(`\n${(0, picocolors_1.bold)('Your AI pair programmer that understands, edits, and improves your codebase through natural conversation.')}`);
|
|
240
|
+
console.log(`\n${(0, picocolors_1.bold)((0, picocolors_1.underline)('PROJECT SETUP'))}`);
|
|
241
|
+
console.log((() => {
|
|
242
|
+
const currentDirectoryLine = `${(0, picocolors_1.green)('✅ Current directory:')} ${(0, picocolors_1.bold)((0, picocolors_1.blueBright)((0, project_files_1.getProjectRoot)()))}`;
|
|
243
|
+
const hasGitRepo = fs.existsSync(path_1.default.join((0, project_files_1.getProjectRoot)(), '.git'));
|
|
244
|
+
const hasGitIgnore = fs.existsSync(path_1.default.join((0, project_files_1.getProjectRoot)(), '.gitignore'));
|
|
245
|
+
const hasKnowledgeMd = fs.existsSync(path_1.default.join((0, project_files_1.getProjectRoot)(), 'knowledge.md'));
|
|
246
|
+
const hasCodebuffJson = fs.existsSync(path_1.default.join((0, project_files_1.getProjectRoot)(), 'codebuff.json'));
|
|
247
|
+
const gitignoreNote = ' (Codebuff never reads files in your .gitignore/.codebuffignore)';
|
|
248
|
+
// Condition 1: Git repo found, all files present
|
|
249
|
+
if (hasGitRepo && hasGitIgnore && hasKnowledgeMd && hasCodebuffJson) {
|
|
250
|
+
return `${currentDirectoryLine}\n${(0, picocolors_1.green)('✅ Git repo: detected')}
|
|
251
|
+
${(0, picocolors_1.green)('✅ .gitignore: detected')}${gitignoreNote}
|
|
252
|
+
${(0, picocolors_1.green)('✅ knowledge.md: detected')}
|
|
253
|
+
${(0, picocolors_1.green)('✅ codebuff.json: detected')}`;
|
|
254
|
+
}
|
|
255
|
+
// Condition 2: Git repo not found
|
|
256
|
+
if (!hasGitRepo) {
|
|
257
|
+
return `${currentDirectoryLine}\n${(0, picocolors_1.yellow)('❌ Git repo: not found')}${' - navigate to a working directory!'}
|
|
258
|
+
${hasGitIgnore ? (0, picocolors_1.green)('✅ .gitignore: detected') : (0, picocolors_1.yellow)('❌ .gitignore: missing')}${gitignoreNote}
|
|
259
|
+
${hasKnowledgeMd ? (0, picocolors_1.green)('✅ knowledge.md: detected') : (0, picocolors_1.yellow)('❌ knowledge.md: missing')}${' — run "init" to fix'}
|
|
260
|
+
${hasCodebuffJson ? (0, picocolors_1.green)('✅ codebuff.json: detected') : (0, picocolors_1.yellow)('❌ codebuff.json: missing')}${' — run "init" to fix'}`;
|
|
261
|
+
}
|
|
262
|
+
// Condition 3: Missing .gitignore
|
|
263
|
+
if (!hasGitIgnore) {
|
|
264
|
+
return `${currentDirectoryLine}\n${(0, picocolors_1.green)('✅ Git repo: detected')}
|
|
265
|
+
${(0, picocolors_1.yellow)('❌ .gitignore: missing - type "generate a reasonable .gitignore"')}${gitignoreNote}
|
|
266
|
+
${hasKnowledgeMd ? (0, picocolors_1.green)('✅ knowledge.md: detected') : (0, picocolors_1.yellow)('❌ knowledge.md: missing')}
|
|
267
|
+
${hasCodebuffJson ? (0, picocolors_1.green)('✅ codebuff.json: detected') : (0, picocolors_1.yellow)('❌ codebuff.json: missing')}`;
|
|
268
|
+
}
|
|
269
|
+
// Condition 4: Missing knowledge files
|
|
270
|
+
return `${currentDirectoryLine}\n${(0, picocolors_1.green)('✅ Git repo: detected')}
|
|
271
|
+
${(0, picocolors_1.green)('✅ .gitignore: detected')}${gitignoreNote}
|
|
272
|
+
${!hasKnowledgeMd && !hasCodebuffJson
|
|
273
|
+
? (0, picocolors_1.yellow)('❌ knowledge.md & codebuff.json: missing - type "init"')
|
|
274
|
+
: !hasKnowledgeMd
|
|
275
|
+
? (0, picocolors_1.yellow)('❌ knowledge.md: missing - type "init"')
|
|
276
|
+
: !hasCodebuffJson
|
|
277
|
+
? (0, picocolors_1.yellow)('❌ codebuff.json: missing - type "init"')
|
|
278
|
+
: (0, picocolors_1.green)('✅ knowledge.md & codebuff.json: detected')}
|
|
279
|
+
${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.')}` : ''}
|
|
280
|
+
${!hasKnowledgeMd && hasCodebuffJson ? `\n${(0, picocolors_1.yellow)('knowledge.md helps Codebuff understand your project structure and codebase better for better results.')}` : ''}
|
|
281
|
+
${!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.')}` : ''}`;
|
|
282
|
+
})());
|
|
283
|
+
// COMMUNITY & FEEDBACK SECTION
|
|
284
|
+
console.log(`\n${(0, picocolors_1.bold)((0, picocolors_1.underline)('COMMUNITY & FEEDBACK'))}`);
|
|
285
|
+
console.log(`Thanks for using Codebuff! DM @brandonkachen or @jahooma on Discord, or email ${(0, picocolors_1.blueBright)('founders@codebuff.com')}`);
|
|
286
|
+
console.log(`Join our Discord: ${(0, picocolors_1.blueBright)('https://codebuff.com/discord')} ${(0, picocolors_1.gray)(`(${os_1.default.platform() === 'darwin' ? 'Command' : 'Ctrl'} + Click to open)`)}`);
|
|
287
|
+
console.log(`\n${(0, picocolors_1.bold)((0, picocolors_1.underline)('EXAMPLE PROMPTS'))}
|
|
288
|
+
${'Code Quality:'}
|
|
289
|
+
${(0, picocolors_1.cyan)(' • "Add error handling to this function"')}
|
|
290
|
+
${(0, picocolors_1.cyan)(' • "Add JSDoc comments to this file"')}
|
|
291
|
+
${(0, picocolors_1.cyan)(' • "Fix the type errors in this component"')}
|
|
292
|
+
|
|
293
|
+
${'Testing & Validation:'}
|
|
294
|
+
${(0, picocolors_1.cyan)(' • "Create a unit test for the auth module"')}
|
|
295
|
+
${(0, picocolors_1.cyan)(' • "Add input validation to this endpoint"')}
|
|
296
|
+
|
|
297
|
+
${'Performance & Architecture:'}
|
|
298
|
+
${(0, picocolors_1.cyan)(' • "Optimize this database query"')}
|
|
299
|
+
${(0, picocolors_1.cyan)(' • "Refactor this to use async/await"')}
|
|
300
|
+
${(0, picocolors_1.cyan)(' • "Add caching to this service"')}
|
|
301
|
+
|
|
302
|
+
${'Features & Infrastructure:'}
|
|
303
|
+
${(0, picocolors_1.cyan)(' • "Create a new API endpoint for users"')}
|
|
304
|
+
${(0, picocolors_1.cyan)(' • "Add logging to these functions"')}
|
|
305
|
+
${(0, picocolors_1.cyan)(' • "Set up CI/CD pipeline config"')}
|
|
306
|
+
`);
|
|
307
|
+
// INTERACTIVE COMMANDS SECTION
|
|
308
|
+
const fixedCommandWidth = 30; // Fixed width for command column
|
|
309
|
+
const formatMenuLine = (commandText, description) => {
|
|
310
|
+
const paddedCommand = commandText.padEnd(fixedCommandWidth);
|
|
311
|
+
return `${paddedCommand}${description}`;
|
|
312
|
+
};
|
|
313
|
+
const menuLines = exports.interactiveCommandDetails
|
|
314
|
+
.filter((cmd) => cmd.commandText) // Filter out slash-only commands like the discrete undo/redo
|
|
315
|
+
.map((cmd) => formatMenuLine(cmd.commandText, cmd.description));
|
|
316
|
+
console.log(`\n${(0, picocolors_1.bold)((0, picocolors_1.underline)('COMMANDS (type these below)'))}${' '.repeat(fixedCommandWidth - 27)}${(0, picocolors_1.bold)((0, picocolors_1.underline)('DESCRIPTION'))}\n\n${menuLines.join(`\n${dividerLine}`)}\n`);
|
|
317
|
+
console.log(`\n↓ Enter your prompt or command below ↓`);
|
|
318
|
+
}
|
|
319
|
+
//# sourceMappingURL=menu.js.map
|
package/dist/menu.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"menu.js","sourceRoot":"","sources":["../src/menu.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { Client } from './client';
|
|
2
|
+
export interface OrganizationContext {
|
|
3
|
+
currentOrganization?: {
|
|
4
|
+
id: string;
|
|
5
|
+
name: string;
|
|
6
|
+
creditBalance: number;
|
|
7
|
+
};
|
|
8
|
+
repositoryOrganization?: {
|
|
9
|
+
id: string;
|
|
10
|
+
name: string;
|
|
11
|
+
};
|
|
12
|
+
fallbackToPersonal: boolean;
|
|
13
|
+
repositoryUrl?: string;
|
|
14
|
+
usingOrganizationCredits: boolean;
|
|
15
|
+
organizationBalance?: number;
|
|
16
|
+
userBalance?: number;
|
|
17
|
+
}
|
|
18
|
+
export declare class OrganizationContextManager {
|
|
19
|
+
private context;
|
|
20
|
+
updateContextForRepository(repositoryUrl: string): Promise<void>;
|
|
21
|
+
getDisplayMessage(): string;
|
|
22
|
+
getContext(): OrganizationContext;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Determines organization context for the current project
|
|
26
|
+
*/
|
|
27
|
+
export declare function getOrganizationContext(client: Client): Promise<OrganizationContext>;
|
|
28
|
+
/**
|
|
29
|
+
* Displays organization context information to the user
|
|
30
|
+
*/
|
|
31
|
+
export declare function displayOrganizationContext(context: OrganizationContext): string;
|
|
32
|
+
/**
|
|
33
|
+
* Formats credit usage information with organization context
|
|
34
|
+
*/
|
|
35
|
+
export declare function formatCreditUsage(creditsUsed: number, context: OrganizationContext): string;
|
|
36
|
+
/**
|
|
37
|
+
* Checks if user can override organization credit usage
|
|
38
|
+
*/
|
|
39
|
+
export declare function canOverrideOrganizationCredits(context: OrganizationContext): boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Gets organization-specific CLI commands
|
|
42
|
+
*/
|
|
43
|
+
export declare function getOrganizationCommands(): Array<{
|
|
44
|
+
command: string;
|
|
45
|
+
description: string;
|
|
46
|
+
handler: () => Promise<void>;
|
|
47
|
+
}>;
|