codebuff 1.0.256 → 1.0.257
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 +359 -0
- package/dist/background-process-manager.js.map +1 -0
- package/dist/browser-runner.d.ts +35 -0
- package/dist/browser-runner.js +680 -0
- package/dist/browser-runner.js.map +1 -0
- package/dist/chat-storage.d.ts +2 -0
- package/dist/chat-storage.js +93 -0
- package/dist/chat-storage.js.map +1 -0
- package/dist/checkpoints/checkpoint-manager.d.ts +94 -0
- package/dist/checkpoints/checkpoint-manager.js +280 -0
- package/dist/checkpoints/checkpoint-manager.js.map +1 -0
- package/dist/checkpoints/file-manager.d.ts +72 -0
- package/dist/checkpoints/file-manager.js +311 -0
- package/dist/checkpoints/file-manager.js.map +1 -0
- package/dist/cli-handlers/api-key.d.ts +25 -0
- package/dist/cli-handlers/api-key.js +66 -0
- package/dist/cli-handlers/api-key.js.map +1 -0
- package/dist/cli-handlers/checkpoint.d.ts +18 -0
- package/dist/cli-handlers/checkpoint.js +195 -0
- package/dist/cli-handlers/checkpoint.js.map +1 -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 +24 -0
- package/dist/cli-handlers/inititalization-flow.js.map +1 -0
- package/dist/cli.d.ts +44 -0
- package/dist/cli.js +478 -0
- package/dist/cli.js.map +1 -0
- package/dist/client.d.ts +157 -0
- package/dist/client.js +836 -0
- package/dist/client.js.map +1 -0
- package/dist/code-map/tsconfig.tsbuildinfo +1 -1
- package/dist/common/bigquery/client.js +6 -4
- package/dist/common/bigquery/client.js.map +1 -1
- package/dist/common/browser-actions.d.ts +6 -6
- package/dist/common/constants/analytics-events.d.ts +1 -7
- package/dist/common/constants/analytics-events.js +0 -7
- package/dist/common/constants/analytics-events.js.map +1 -1
- package/dist/common/env.mjs +0 -2
- package/dist/common/env.mjs.map +1 -1
- 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 +38 -0
- package/dist/credentials.js.map +1 -0
- package/dist/dev-process-manager.d.ts +10 -0
- package/dist/dev-process-manager.js +54 -0
- package/dist/dev-process-manager.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 +117 -0
- package/dist/index.js.map +1 -0
- package/dist/menu.d.ts +3 -0
- package/dist/menu.js +126 -0
- package/dist/menu.js.map +1 -0
- package/dist/project-files.d.ts +114 -0
- package/dist/project-files.js +513 -0
- package/dist/project-files.js.map +1 -0
- package/dist/startup-process-handler.d.ts +2 -0
- package/dist/startup-process-handler.js +21 -0
- package/dist/startup-process-handler.js.map +1 -0
- package/dist/tool-handlers.d.ts +28 -0
- package/dist/tool-handlers.js +240 -0
- package/dist/tool-handlers.js.map +1 -0
- 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 +160 -0
- package/dist/update-codebuff.js.map +1 -0
- package/dist/utils/__tests__/background-process-manager.test.d.ts +1 -0
- package/dist/utils/__tests__/background-process-manager.test.js +289 -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 +51 -0
- package/dist/utils/__tests__/tool-renderers.test.js.map +1 -0
- package/dist/utils/__tests__/xml-stream-parser.test.d.ts +1 -0
- package/dist/utils/__tests__/xml-stream-parser.test.js +229 -0
- package/dist/utils/__tests__/xml-stream-parser.test.js.map +1 -0
- package/dist/utils/analytics.d.ts +6 -0
- package/dist/utils/analytics.js +59 -0
- package/dist/utils/analytics.js.map +1 -0
- 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/logger.d.ts +21 -0
- package/dist/utils/logger.js +105 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/spinner.d.ts +11 -0
- package/dist/utils/spinner.js +87 -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 +41 -0
- package/dist/utils/terminal.js +467 -0
- package/dist/utils/terminal.js.map +1 -0
- package/dist/utils/tool-renderers.d.ts +16 -0
- package/dist/utils/tool-renderers.js +148 -0
- package/dist/utils/tool-renderers.js.map +1 -0
- package/dist/utils/xml-stream-parser.d.ts +9 -0
- package/dist/utils/xml-stream-parser.js +128 -0
- package/dist/utils/xml-stream-parser.js.map +1 -0
- package/dist/web-scraper.d.ts +3 -0
- package/dist/web-scraper.js +57 -0
- package/dist/web-scraper.js.map +1 -0
- 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 +17 -0
- package/dist/workers/project-context.js.map +1 -0
- package/package.json +1 -1
- package/dist/common/analytics.d.ts +0 -4
- package/dist/common/analytics.js +0 -40
- package/dist/common/analytics.js.map +0 -1
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.identified = void 0;
|
|
4
|
+
exports.initAnalytics = initAnalytics;
|
|
5
|
+
exports.flushAnalytics = flushAnalytics;
|
|
6
|
+
exports.trackEvent = trackEvent;
|
|
7
|
+
exports.identifyUser = identifyUser;
|
|
8
|
+
const posthog_node_1 = require("posthog-node");
|
|
9
|
+
// Store the identified user ID
|
|
10
|
+
let currentUserId;
|
|
11
|
+
let client;
|
|
12
|
+
exports.identified = false;
|
|
13
|
+
function initAnalytics() {
|
|
14
|
+
if (!process.env.NEXT_PUBLIC_POSTHOG_API_KEY ||
|
|
15
|
+
!process.env.NEXT_PUBLIC_APP_URL) {
|
|
16
|
+
throw new Error('NEXT_PUBLIC_POSTHOG_API_KEY or NEXT_PUBLIC_APP_URL is not set');
|
|
17
|
+
}
|
|
18
|
+
client = new posthog_node_1.PostHog(process.env.NEXT_PUBLIC_POSTHOG_API_KEY, {
|
|
19
|
+
host: `${process.env.NEXT_PUBLIC_APP_URL}/ingest`,
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
async function flushAnalytics() {
|
|
23
|
+
if (!client) {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
await client.flush();
|
|
27
|
+
}
|
|
28
|
+
function trackEvent(event, properties) {
|
|
29
|
+
const distinctId = currentUserId;
|
|
30
|
+
if (!distinctId) {
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
if (!client) {
|
|
34
|
+
throw new Error('Analytics client not initialized');
|
|
35
|
+
}
|
|
36
|
+
if (process.env.NEXT_PUBLIC_CB_ENVIRONMENT !== 'production') {
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
client.capture({
|
|
40
|
+
distinctId,
|
|
41
|
+
event,
|
|
42
|
+
properties,
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
function identifyUser(userId, properties) {
|
|
46
|
+
// Store the user ID for future events
|
|
47
|
+
currentUserId = userId;
|
|
48
|
+
if (!client) {
|
|
49
|
+
throw new Error('Analytics client not initialized');
|
|
50
|
+
}
|
|
51
|
+
if (process.env.NEXT_PUBLIC_CB_ENVIRONMENT !== 'production') {
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
client.identify({
|
|
55
|
+
distinctId: userId,
|
|
56
|
+
properties,
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=analytics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analytics.js","sourceRoot":"","sources":["../../src/utils/analytics.ts"],"names":[],"mappings":";;;AASA,sCAaC;AAED,wCAKC;AAED,gCAqBC;AAED,oCAgBC;AArED,+CAAsC;AAEtC,+BAA+B;AAC/B,IAAI,aAAiC,CAAA;AACrC,IAAI,MAA2B,CAAA;AAEpB,QAAA,UAAU,GAAY,KAAK,CAAA;AAEtC,SAAgB,aAAa;IAC3B,IACE,CAAC,OAAO,CAAC,GAAG,CAAC,2BAA2B;QACxC,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAChC,CAAC;QACD,MAAM,IAAI,KAAK,CACb,+DAA+D,CAChE,CAAA;IACH,CAAC;IAED,MAAM,GAAG,IAAI,sBAAO,CAAC,OAAO,CAAC,GAAG,CAAC,2BAA2B,EAAE;QAC5D,IAAI,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,SAAS;KAClD,CAAC,CAAA;AACJ,CAAC;AAEM,KAAK,UAAU,cAAc;IAClC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAM;IACR,CAAC;IACD,MAAM,MAAM,CAAC,KAAK,EAAE,CAAA;AACtB,CAAC;AAED,SAAgB,UAAU,CACxB,KAAqB,EACrB,UAAgC;IAEhC,MAAM,UAAU,GAAG,aAAa,CAAA;IAChC,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAM;IACR,CAAC;IACD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA;IACrD,CAAC;IAED,IAAI,OAAO,CAAC,GAAG,CAAC,0BAA0B,KAAK,YAAY,EAAE,CAAC;QAC5D,OAAM;IACR,CAAC;IAED,MAAM,CAAC,OAAO,CAAC;QACb,UAAU;QACV,KAAK;QACL,UAAU;KACX,CAAC,CAAA;AACJ,CAAC;AAED,SAAgB,YAAY,CAAC,MAAc,EAAE,UAAgC;IAC3E,sCAAsC;IACtC,aAAa,GAAG,MAAM,CAAA;IAEtB,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA;IACrD,CAAC;IAED,IAAI,OAAO,CAAC,GAAG,CAAC,0BAA0B,KAAK,YAAY,EAAE,CAAC;QAC5D,OAAM;IACR,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC;QACd,UAAU,EAAE,MAAM;QAClB,UAAU;KACX,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function detectShell(): 'bash' | 'zsh' | 'fish' | 'cmd.exe' | 'powershell' | 'unknown' | string;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.detectShell = detectShell;
|
|
4
|
+
const os_1 = require("os");
|
|
5
|
+
const child_process_1 = require("child_process");
|
|
6
|
+
function detectShell() {
|
|
7
|
+
// Get the parent process environment
|
|
8
|
+
const shell = process.env.SHELL || process.env.COMSPEC || process.env.PSModulePath;
|
|
9
|
+
try {
|
|
10
|
+
// Handle Windows detection
|
|
11
|
+
if ((0, os_1.platform)() === 'win32') {
|
|
12
|
+
try {
|
|
13
|
+
// Check if running in PowerShell
|
|
14
|
+
(0, child_process_1.execSync)('$PSVersionTable', { stdio: 'pipe' });
|
|
15
|
+
return 'powershell';
|
|
16
|
+
}
|
|
17
|
+
catch {
|
|
18
|
+
// Check explicit CMD environment
|
|
19
|
+
if (process.env.COMSPEC?.toLowerCase().includes('cmd.exe')) {
|
|
20
|
+
return 'cmd.exe';
|
|
21
|
+
}
|
|
22
|
+
// Check parent process as final Windows check
|
|
23
|
+
const parentProcess = (0, child_process_1.execSync)('wmic process get ParentProcessId,CommandLine', { stdio: 'pipe' })
|
|
24
|
+
.toString()
|
|
25
|
+
.toLowerCase();
|
|
26
|
+
if (parentProcess.includes('powershell'))
|
|
27
|
+
return 'powershell';
|
|
28
|
+
if (parentProcess.includes('cmd.exe'))
|
|
29
|
+
return 'cmd.exe';
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
// Handle Unix-like systems
|
|
33
|
+
if (shell) {
|
|
34
|
+
const shellLower = shell.toLowerCase();
|
|
35
|
+
if (shellLower.includes('bash'))
|
|
36
|
+
return 'bash';
|
|
37
|
+
if (shellLower.includes('zsh'))
|
|
38
|
+
return 'zsh';
|
|
39
|
+
if (shellLower.includes('fish'))
|
|
40
|
+
return 'fish';
|
|
41
|
+
}
|
|
42
|
+
// Try to get the parent process name on Unix systems
|
|
43
|
+
if ((0, os_1.platform)() !== 'win32') {
|
|
44
|
+
const ppid = process.ppid;
|
|
45
|
+
const parentProcess = (0, child_process_1.execSync)(`ps -p ${ppid} -o comm=`, {
|
|
46
|
+
stdio: 'pipe',
|
|
47
|
+
})
|
|
48
|
+
.toString()
|
|
49
|
+
.trim();
|
|
50
|
+
if (parentProcess)
|
|
51
|
+
return parentProcess;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
catch (error) {
|
|
55
|
+
// Log error if needed
|
|
56
|
+
// console.error('Error detecting shell:', error);
|
|
57
|
+
}
|
|
58
|
+
return 'unknown';
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=detect-shell.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detect-shell.js","sourceRoot":"","sources":["../../src/utils/detect-shell.ts"],"names":[],"mappings":";;AAGA,kCA6DC;AAhED,2BAA6B;AAC7B,iDAAwC;AAExC,SAAgB,WAAW;IAQzB,qCAAqC;IACrC,MAAM,KAAK,GACT,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,CAAA;IAEtE,IAAI,CAAC;QACH,2BAA2B;QAC3B,IAAI,IAAA,aAAQ,GAAE,KAAK,OAAO,EAAE,CAAC;YAC3B,IAAI,CAAC;gBACH,iCAAiC;gBACjC,IAAA,wBAAQ,EAAC,iBAAiB,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;gBAC9C,OAAO,YAAY,CAAA;YACrB,CAAC;YAAC,MAAM,CAAC;gBACP,iCAAiC;gBACjC,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;oBAC3D,OAAO,SAAS,CAAA;gBAClB,CAAC;gBAED,8CAA8C;gBAC9C,MAAM,aAAa,GAAG,IAAA,wBAAQ,EAC5B,8CAA8C,EAC9C,EAAE,KAAK,EAAE,MAAM,EAAE,CAClB;qBACE,QAAQ,EAAE;qBACV,WAAW,EAAE,CAAA;gBAChB,IAAI,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC;oBAAE,OAAO,YAAY,CAAA;gBAC7D,IAAI,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC;oBAAE,OAAO,SAAS,CAAA;YACzD,CAAC;QACH,CAAC;QAED,2BAA2B;QAC3B,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAA;YACtC,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAAE,OAAO,MAAM,CAAA;YAC9C,IAAI,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAA;YAC5C,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAAE,OAAO,MAAM,CAAA;QAChD,CAAC;QAED,qDAAqD;QACrD,IAAI,IAAA,aAAQ,GAAE,KAAK,OAAO,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;YACzB,MAAM,aAAa,GAAG,IAAA,wBAAQ,EAAC,SAAS,IAAI,WAAW,EAAE;gBACvD,KAAK,EAAE,MAAM;aACd,CAAC;iBACC,QAAQ,EAAE;iBACV,IAAI,EAAE,CAAA;YACT,IAAI,aAAa;gBAAE,OAAO,aAAa,CAAA;QACzC,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,sBAAsB;QACtB,kDAAkD;IACpD,CAAC;IAED,OAAO,SAAS,CAAA;AAClB,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import pino from 'pino';
|
|
2
|
+
export interface LoggerContext {
|
|
3
|
+
userId?: string;
|
|
4
|
+
userEmail?: string;
|
|
5
|
+
clientSessionId?: string;
|
|
6
|
+
fingerprintId?: string;
|
|
7
|
+
clientRequestId?: string;
|
|
8
|
+
[key: string]: any;
|
|
9
|
+
}
|
|
10
|
+
export declare const loggerContext: LoggerContext;
|
|
11
|
+
declare const loggingLevels: readonly ["info", "debug", "warn", "error", "fatal"];
|
|
12
|
+
type LogLevel = (typeof loggingLevels)[number];
|
|
13
|
+
/**
|
|
14
|
+
* Wrapper around Pino logger.
|
|
15
|
+
*
|
|
16
|
+
* To also send to Posthog, set data.eventId to type AnalyticsEvent
|
|
17
|
+
*
|
|
18
|
+
* e.g. logger.info({eventId: AnalyticsEvent.SOME_EVENT, field: value}, 'some message')
|
|
19
|
+
*/
|
|
20
|
+
export declare const logger: Record<LogLevel, pino.LogFn>;
|
|
21
|
+
export {};
|
|
@@ -0,0 +1,105 @@
|
|
|
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.logger = exports.loggerContext = void 0;
|
|
30
|
+
const fs_1 = require("fs");
|
|
31
|
+
const path_1 = __importStar(require("path"));
|
|
32
|
+
const util_1 = require("util");
|
|
33
|
+
const analytics_events_1 = require("../common/constants/analytics-events");
|
|
34
|
+
const pino_1 = __importDefault(require("pino"));
|
|
35
|
+
const project_files_1 = require("../project-files");
|
|
36
|
+
const analytics_1 = require("./analytics");
|
|
37
|
+
exports.loggerContext = {};
|
|
38
|
+
const analyticsBuffer = [];
|
|
39
|
+
let logPath = undefined;
|
|
40
|
+
let pinoLogger = undefined;
|
|
41
|
+
const loggingLevels = ['info', 'debug', 'warn', 'error', 'fatal'];
|
|
42
|
+
function setLogPath(p) {
|
|
43
|
+
if (logPath === p) {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
logPath = p;
|
|
47
|
+
(0, fs_1.mkdirSync)((0, path_1.dirname)(p), { recursive: true });
|
|
48
|
+
pinoLogger = (0, pino_1.default)({
|
|
49
|
+
level: 'debug',
|
|
50
|
+
formatters: {
|
|
51
|
+
level: (label) => {
|
|
52
|
+
return { level: label.toUpperCase() };
|
|
53
|
+
},
|
|
54
|
+
},
|
|
55
|
+
timestamp: () => `,"timestamp":"${new Date(Date.now()).toISOString()}"`,
|
|
56
|
+
}, pino_1.default.transport({
|
|
57
|
+
target: 'pino/file',
|
|
58
|
+
options: { destination: p },
|
|
59
|
+
level: 'debug',
|
|
60
|
+
}));
|
|
61
|
+
}
|
|
62
|
+
function sendAnalyticsAndLog(level, data, msg, ...args) {
|
|
63
|
+
if (process.env.CODEBUFF_GITHUB_ACTIONS !== 'true') {
|
|
64
|
+
setLogPath(process.env.NEXT_PUBLIC_CB_ENVIRONMENT === 'local'
|
|
65
|
+
? path_1.default.join(__dirname, '../../../debug', 'npm-app.log')
|
|
66
|
+
: path_1.default.join((0, project_files_1.getCurrentChatDir)(), 'log.jsonl'));
|
|
67
|
+
}
|
|
68
|
+
logOrStore: if (process.env.NEXT_PUBLIC_CB_ENVIRONMENT !== 'local' &&
|
|
69
|
+
Object.values(analytics_events_1.AnalyticsEvent).includes(data.eventId)) {
|
|
70
|
+
const analyticsEventId = data.eventId;
|
|
71
|
+
const toTrack = {
|
|
72
|
+
data,
|
|
73
|
+
level,
|
|
74
|
+
loggerContext: exports.loggerContext,
|
|
75
|
+
msg: (0, util_1.format)(msg, ...args),
|
|
76
|
+
};
|
|
77
|
+
// Not accurate for anonymous users
|
|
78
|
+
if (!exports.loggerContext.userId) {
|
|
79
|
+
analyticsBuffer.push({ analyticsEventId, toTrack });
|
|
80
|
+
break logOrStore;
|
|
81
|
+
}
|
|
82
|
+
for (const item of analyticsBuffer) {
|
|
83
|
+
(0, analytics_1.trackEvent)(item.analyticsEventId, item.toTrack);
|
|
84
|
+
}
|
|
85
|
+
analyticsBuffer.length = 0;
|
|
86
|
+
(0, analytics_1.trackEvent)(analyticsEventId, toTrack);
|
|
87
|
+
}
|
|
88
|
+
if (pinoLogger !== undefined) {
|
|
89
|
+
pinoLogger[level]({ ...exports.loggerContext, data }, msg, ...args);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Wrapper around Pino logger.
|
|
94
|
+
*
|
|
95
|
+
* To also send to Posthog, set data.eventId to type AnalyticsEvent
|
|
96
|
+
*
|
|
97
|
+
* e.g. logger.info({eventId: AnalyticsEvent.SOME_EVENT, field: value}, 'some message')
|
|
98
|
+
*/
|
|
99
|
+
exports.logger = Object.fromEntries(loggingLevels.map((level) => {
|
|
100
|
+
return [
|
|
101
|
+
level,
|
|
102
|
+
(data, msg, ...args) => sendAnalyticsAndLog(level, data, msg, ...args),
|
|
103
|
+
];
|
|
104
|
+
}));
|
|
105
|
+
//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2BAA8B;AAC9B,6CAAoC;AACpC,+BAA6C;AAE7C,wEAAkE;AAClE,gDAAuB;AAEvB,oDAAoD;AACpD,2CAAwC;AAW3B,QAAA,aAAa,GAAkB,EAAE,CAAA;AAE9C,MAAM,eAAe,GAAyD,EAAE,CAAA;AAEhF,IAAI,OAAO,GAAuB,SAAS,CAAA;AAC3C,IAAI,UAAU,GAAQ,SAAS,CAAA;AAE/B,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAU,CAAA;AAG1E,SAAS,UAAU,CAAC,CAAS;IAC3B,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;QAClB,OAAM;IACR,CAAC;IAED,OAAO,GAAG,CAAC,CAAA;IACX,IAAA,cAAS,EAAC,IAAA,cAAO,EAAC,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAC1C,UAAU,GAAG,IAAA,cAAI,EACf;QACE,KAAK,EAAE,OAAO;QACd,UAAU,EAAE;YACV,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;gBACf,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,WAAW,EAAE,EAAE,CAAA;YACvC,CAAC;SACF;QACD,SAAS,EAAE,GAAG,EAAE,CAAC,iBAAiB,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,WAAW,EAAE,GAAG;KACxE,EACD,cAAI,CAAC,SAAS,CAAC;QACb,MAAM,EAAE,WAAW;QACnB,OAAO,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE;QAC3B,KAAK,EAAE,OAAO;KACf,CAAC,CACH,CAAA;AACH,CAAC;AAED,SAAS,mBAAmB,CAC1B,KAAe,EACf,IAAS,EACT,GAAY,EACZ,GAAG,IAAW;IAEd,IAAI,OAAO,CAAC,GAAG,CAAC,uBAAuB,KAAK,MAAM,EAAE,CAAC;QACnD,UAAU,CACR,OAAO,CAAC,GAAG,CAAC,0BAA0B,KAAK,OAAO;YAChD,CAAC,CAAC,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,gBAAgB,EAAE,aAAa,CAAC;YACvD,CAAC,CAAC,cAAI,CAAC,IAAI,CAAC,IAAA,iCAAiB,GAAE,EAAE,WAAW,CAAC,CAChD,CAAA;IACH,CAAC;IAED,UAAU,EAAE,IACV,OAAO,CAAC,GAAG,CAAC,0BAA0B,KAAK,OAAO;QAClD,MAAM,CAAC,MAAM,CAAC,iCAAc,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EACpD,CAAC;QACD,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAyB,CAAA;QACvD,MAAM,OAAO,GAAG;YACd,IAAI;YACJ,KAAK;YACL,aAAa,EAAb,qBAAa;YACb,GAAG,EAAE,IAAA,aAAY,EAAC,GAAG,EAAE,GAAG,IAAI,CAAC;SAChC,CAAA;QAED,mCAAmC;QACnC,IAAI,CAAC,qBAAa,CAAC,MAAM,EAAE,CAAC;YAC1B,eAAe,CAAC,IAAI,CAAC,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC,CAAA;YACnD,MAAM,UAAU,CAAA;QAClB,CAAC;QAED,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE,CAAC;YACnC,IAAA,sBAAU,EAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;QACjD,CAAC;QACD,eAAe,CAAC,MAAM,GAAG,CAAC,CAAA;QAC1B,IAAA,sBAAU,EAAC,gBAAgB,EAAE,OAAO,CAAC,CAAA;IACvC,CAAC;IAED,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,qBAAa,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAA;IAC7D,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACU,QAAA,MAAM,GAAiC,MAAM,CAAC,WAAW,CACpE,aAAa,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;IAC1B,OAAO;QACL,KAAK;QACL,CAAC,IAAS,EAAE,GAAY,EAAE,GAAG,IAAW,EAAE,EAAE,CAC1C,mBAAmB,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;KACjD,CAAA;AACH,CAAC,CAAC,CAC6B,CAAA"}
|
|
@@ -0,0 +1,87 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.Spinner = void 0;
|
|
27
|
+
const picocolors_1 = require("picocolors");
|
|
28
|
+
const readline = __importStar(require("readline"));
|
|
29
|
+
const chars = ['⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏'];
|
|
30
|
+
class Spinner {
|
|
31
|
+
static instance = null;
|
|
32
|
+
loadingInterval = null;
|
|
33
|
+
constructor() { }
|
|
34
|
+
static get() {
|
|
35
|
+
if (!Spinner.instance) {
|
|
36
|
+
Spinner.instance = new Spinner();
|
|
37
|
+
}
|
|
38
|
+
return Spinner.instance;
|
|
39
|
+
}
|
|
40
|
+
start() {
|
|
41
|
+
if (this.loadingInterval) {
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
let i = 0;
|
|
45
|
+
// Hide cursor while spinner is active
|
|
46
|
+
process.stdout.write('\u001B[?25l');
|
|
47
|
+
this.loadingInterval = setInterval(() => {
|
|
48
|
+
this.rewriteLine((0, picocolors_1.green)(`${chars[i]} Thinking...`));
|
|
49
|
+
i = (i + 1) % chars.length;
|
|
50
|
+
}, 100);
|
|
51
|
+
}
|
|
52
|
+
stop() {
|
|
53
|
+
if (!this.loadingInterval) {
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
clearInterval(this.loadingInterval);
|
|
57
|
+
this.loadingInterval = null;
|
|
58
|
+
this.rewriteLine(''); // Clear the spinner line
|
|
59
|
+
this.restoreCursor(); // Show cursor after spinner stops
|
|
60
|
+
}
|
|
61
|
+
restoreCursor() {
|
|
62
|
+
process.stdout.write('\u001B[?25h');
|
|
63
|
+
}
|
|
64
|
+
log(message) {
|
|
65
|
+
// Temporarily clear the spinner line
|
|
66
|
+
this.rewriteLine('');
|
|
67
|
+
// Write the log message
|
|
68
|
+
console.log(message);
|
|
69
|
+
// If spinner is active, redraw it on the next line
|
|
70
|
+
if (this.loadingInterval) {
|
|
71
|
+
const i = Math.floor(Math.random() * chars.length);
|
|
72
|
+
this.rewriteLine((0, picocolors_1.green)(`${chars[i]} Thinking...`));
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
rewriteLine(line) {
|
|
76
|
+
if (process.stdout.isTTY) {
|
|
77
|
+
readline.clearLine(process.stdout, 0);
|
|
78
|
+
readline.cursorTo(process.stdout, 0);
|
|
79
|
+
process.stdout.write(line);
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
process.stdout.write(line + '\n');
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
exports.Spinner = Spinner;
|
|
87
|
+
//# sourceMappingURL=spinner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spinner.js","sourceRoot":"","sources":["../../src/utils/spinner.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAAkC;AAClC,mDAAoC;AAEpC,MAAM,KAAK,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;AAEhE,MAAa,OAAO;IACV,MAAM,CAAC,QAAQ,GAAmB,IAAI,CAAA;IACtC,eAAe,GAA0B,IAAI,CAAA;IAErD,gBAAuB,CAAC;IAEjB,MAAM,CAAC,GAAG;QACf,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YACtB,OAAO,CAAC,QAAQ,GAAG,IAAI,OAAO,EAAE,CAAA;QAClC,CAAC;QACD,OAAO,OAAO,CAAC,QAAQ,CAAA;IACzB,CAAC;IAED,KAAK;QACH,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,OAAM;QACR,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,CAAA;QACT,sCAAsC;QACtC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;QACnC,IAAI,CAAC,eAAe,GAAG,WAAW,CAAC,GAAG,EAAE;YACtC,IAAI,CAAC,WAAW,CAAC,IAAA,kBAAK,EAAC,GAAG,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAA;YAClD,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAA;QAC5B,CAAC,EAAE,GAAG,CAAC,CAAA;IACT,CAAC;IAED,IAAI;QACF,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1B,OAAM;QACR,CAAC;QAED,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;QACnC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAA;QAC3B,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA,CAAC,yBAAyB;QAC9C,IAAI,CAAC,aAAa,EAAE,CAAA,CAAC,kCAAkC;IACzD,CAAC;IAED,aAAa;QACX,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;IACrC,CAAC;IAED,GAAG,CAAC,OAAe;QACjB,qCAAqC;QACrC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;QACpB,wBAAwB;QACxB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QACpB,mDAAmD;QACnD,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAA;YAClD,IAAI,CAAC,WAAW,CAAC,IAAA,kBAAK,EAAC,GAAG,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAA;QACpD,CAAC;IACH,CAAC;IAEO,WAAW,CAAC,IAAY;QAC9B,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACzB,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;YACrC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;YACpC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAC5B,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,CAAA;QACnC,CAAC;IACH,CAAC;;AA9DH,0BA+DC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
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.getSystemInfo = void 0;
|
|
7
|
+
const process_1 = require("process");
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
const os_1 = __importDefault(require("os"));
|
|
10
|
+
const getSystemInfo = () => {
|
|
11
|
+
const shell = process.env.SHELL || process.env.COMSPEC || 'unknown';
|
|
12
|
+
return {
|
|
13
|
+
platform: process_1.platform,
|
|
14
|
+
shell: path_1.default.basename(shell),
|
|
15
|
+
nodeVersion: process.version,
|
|
16
|
+
arch: process.arch,
|
|
17
|
+
homedir: os_1.default.homedir(),
|
|
18
|
+
cpus: os_1.default.cpus().length,
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
exports.getSystemInfo = getSystemInfo;
|
|
22
|
+
//# sourceMappingURL=system-info.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"system-info.js","sourceRoot":"","sources":["../../src/utils/system-info.ts"],"names":[],"mappings":";;;;;;AAAA,qCAAkC;AAClC,gDAAuB;AACvB,4CAAmB;AAEZ,MAAM,aAAa,GAAG,GAAG,EAAE;IAChC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,SAAS,CAAA;IAEnE,OAAO;QACL,QAAQ,EAAR,kBAAQ;QACR,KAAK,EAAE,cAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAC3B,WAAW,EAAE,OAAO,CAAC,OAAO;QAC5B,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,OAAO,EAAE,YAAE,CAAC,OAAO,EAAE;QACrB,IAAI,EAAE,YAAE,CAAC,IAAI,EAAE,CAAC,MAAM;KACvB,CAAA;AACH,CAAC,CAAA;AAXY,QAAA,aAAa,iBAWzB"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { ChildProcessWithoutNullStreams } from 'child_process';
|
|
2
|
+
import type { IPty } from '@homebridge/node-pty-prebuilt-multiarch';
|
|
3
|
+
type PersistentProcess = {
|
|
4
|
+
type: 'pty';
|
|
5
|
+
shell: 'pty';
|
|
6
|
+
pty: IPty;
|
|
7
|
+
timerId: NodeJS.Timeout | null;
|
|
8
|
+
} | {
|
|
9
|
+
type: 'process';
|
|
10
|
+
shell: 'bash' | 'cmd.exe' | 'powershell.exe';
|
|
11
|
+
childProcess: ChildProcessWithoutNullStreams | null;
|
|
12
|
+
timerId: NodeJS.Timeout | null;
|
|
13
|
+
};
|
|
14
|
+
declare const createPersistantProcess: (dir: string) => PersistentProcess;
|
|
15
|
+
export declare let persistentProcess: ReturnType<typeof createPersistantProcess> | null;
|
|
16
|
+
export declare const isCommandRunning: () => boolean;
|
|
17
|
+
export declare const recreateShell: (projectPath: string) => void;
|
|
18
|
+
export declare const resetShell: (projectPath: string) => void;
|
|
19
|
+
export declare function runBackgroundCommand(options: {
|
|
20
|
+
toolCallId: string;
|
|
21
|
+
command: string;
|
|
22
|
+
mode: 'user' | 'assistant';
|
|
23
|
+
projectPath: string;
|
|
24
|
+
stdoutFile?: string;
|
|
25
|
+
stderrFile?: string;
|
|
26
|
+
}, resolveCommand: (value: {
|
|
27
|
+
result: string;
|
|
28
|
+
stdout: string;
|
|
29
|
+
}) => void): void;
|
|
30
|
+
export declare const runTerminalCommand: (toolCallId: string, command: string, mode: "user" | "assistant", projectPath: string, processType: "SYNC" | "BACKGROUND", stdoutFile?: string, stderrFile?: string) => Promise<{
|
|
31
|
+
result: string;
|
|
32
|
+
stdout: string;
|
|
33
|
+
}>;
|
|
34
|
+
export declare const runCommandPty: (persistentProcess: PersistentProcess & {
|
|
35
|
+
type: "pty";
|
|
36
|
+
}, command: string, mode: "user" | "assistant", resolve: (value: {
|
|
37
|
+
result: string;
|
|
38
|
+
stdout: string;
|
|
39
|
+
}) => void, projectPath: string) => void;
|
|
40
|
+
export declare function killAndResetPersistentProcess(): void;
|
|
41
|
+
export {};
|