codebuff 1.0.219 → 1.0.221
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/checkpoints/checkpoint-manager.d.ts +1 -1
- package/dist/checkpoints/checkpoint-manager.js +8 -6
- package/dist/checkpoints/checkpoint-manager.js.map +1 -1
- 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.d.ts +0 -18
- package/dist/cli.js +70 -397
- package/dist/cli.js.map +1 -1
- package/dist/client.d.ts +11 -11
- package/dist/client.js +123 -45
- package/dist/client.js.map +1 -1
- package/dist/code-map/tsconfig.tsbuildinfo +1 -1
- package/dist/common/actions.d.ts +288 -264
- package/dist/common/actions.js +10 -4
- package/dist/common/actions.js.map +1 -1
- package/dist/common/advanced-analyzer.d.ts +19 -0
- package/dist/common/advanced-analyzer.js +140 -0
- package/dist/common/advanced-analyzer.js.map +1 -0
- package/dist/common/billing/auto-topup.d.ts +8 -0
- package/dist/common/billing/auto-topup.js +192 -0
- package/dist/common/billing/auto-topup.js.map +1 -0
- package/dist/common/billing/balance-calculator.d.ts +55 -0
- package/dist/common/billing/balance-calculator.js +207 -0
- package/dist/common/billing/balance-calculator.js.map +1 -0
- package/dist/common/billing/check-auto-topup.d.ts +12 -0
- package/dist/common/billing/check-auto-topup.js +50 -0
- package/dist/common/billing/check-auto-topup.js.map +1 -0
- package/dist/common/billing/conversion.d.ts +9 -0
- package/dist/common/billing/conversion.js +20 -0
- package/dist/common/billing/conversion.js.map +1 -0
- package/dist/common/billing/credit-check.d.ts +8 -0
- package/dist/common/billing/credit-check.js +45 -0
- package/dist/common/billing/credit-check.js.map +1 -0
- package/dist/common/billing/credit-conversion.d.ts +24 -0
- package/dist/common/billing/credit-conversion.js +48 -0
- package/dist/common/billing/credit-conversion.js.map +1 -0
- package/dist/common/billing/grant-credits.d.ts +28 -0
- package/dist/common/billing/grant-credits.js +201 -0
- package/dist/common/billing/grant-credits.js.map +1 -0
- package/dist/common/billing/plans.d.ts +13 -0
- package/dist/common/billing/plans.js +44 -0
- package/dist/common/billing/plans.js.map +1 -0
- package/dist/common/billing/rollover-logic.d.ts +13 -0
- package/dist/common/billing/rollover-logic.js +174 -0
- package/dist/common/billing/rollover-logic.js.map +1 -0
- package/dist/common/billing/stripe-api.d.ts +31 -0
- package/dist/common/billing/stripe-api.js +104 -0
- package/dist/common/billing/stripe-api.js.map +1 -0
- package/dist/common/browser-actions.d.ts +62 -62
- package/dist/common/constants/grant-priorities.d.ts +2 -0
- package/dist/common/constants/grant-priorities.js +10 -0
- package/dist/common/constants/grant-priorities.js.map +1 -0
- package/dist/common/constants.d.ts +28 -1
- package/dist/common/constants.js +36 -7
- package/dist/common/constants.js.map +1 -1
- package/dist/common/db/schema.d.ts +323 -86
- package/dist/common/db/schema.js +55 -13
- package/dist/common/db/schema.js.map +1 -1
- package/dist/common/env.mjs +4 -1
- package/dist/common/env.mjs.map +1 -1
- package/dist/common/message-image-handling.d.ts +41 -0
- package/dist/common/message-image-handling.js +57 -0
- package/dist/common/message-image-handling.js.map +1 -0
- package/dist/common/types/agent-state.d.ts +8 -8
- package/dist/common/types/grant.d.ts +2 -0
- package/dist/common/types/grant.js +10 -0
- package/dist/common/types/grant.js.map +1 -0
- package/dist/common/types/usage.d.ts +37 -18
- package/dist/common/types/usage.js +9 -6
- package/dist/common/types/usage.js.map +1 -1
- package/dist/common/util/__tests__/saxy.test.d.ts +1 -0
- package/dist/common/util/__tests__/saxy.test.js +262 -0
- package/dist/common/util/__tests__/saxy.test.js.map +1 -0
- package/dist/common/util/credentials.d.ts +2 -2
- package/dist/common/util/dates.d.ts +10 -1
- package/dist/common/util/dates.js +11 -2
- package/dist/common/util/dates.js.map +1 -1
- package/dist/common/util/logger.js +32 -14
- package/dist/common/util/logger.js.map +1 -1
- package/dist/common/util/process-stream.d.ts +8 -0
- package/dist/common/util/process-stream.js +102 -0
- package/dist/common/util/process-stream.js.map +1 -0
- package/dist/common/util/promise.d.ts +1 -1
- package/dist/common/util/promise.js +2 -2
- package/dist/common/util/promise.js.map +1 -1
- package/dist/common/util/referral-credits.d.ts +1 -0
- package/dist/common/util/referral-credits.js +48 -0
- package/dist/common/util/referral-credits.js.map +1 -0
- package/dist/common/util/saxy.d.ts +8 -0
- package/dist/common/util/saxy.js +35 -12
- package/dist/common/util/saxy.js.map +1 -1
- package/dist/common/util/sync-failure.d.ts +1 -0
- package/dist/common/util/sync-failure.js +57 -0
- package/dist/common/util/sync-failure.js.map +1 -0
- package/dist/common/websockets/websocket-schema.d.ts +530 -480
- package/dist/index.js +1 -1
- package/dist/utils/__tests__/xml-stream-parser.test.js +6 -10
- package/dist/utils/__tests__/xml-stream-parser.test.js.map +1 -1
- package/package.json +1 -1
- package/dist/common/logger.d.ts +0 -1
- package/dist/common/logger.js +0 -7
- package/dist/common/logger.js.map +0 -1
- package/dist/common/util/constants.d.ts +0 -1
- package/dist/common/util/constants.js +0 -7
- package/dist/common/util/constants.js.map +0 -1
- package/dist/common/util/helpers.d.ts +0 -1
- package/dist/common/util/helpers.js +0 -6
- package/dist/common/util/helpers.js.map +0 -1
- package/dist/common/util/token-counter.d.ts +0 -3
- package/dist/common/util/token-counter.js +0 -27
- package/dist/common/util/token-counter.js.map +0 -1
|
@@ -57,7 +57,7 @@ export declare class CheckpointManager {
|
|
|
57
57
|
* @returns The latest checkpoint and whether that checkpoint was created (or already existed)
|
|
58
58
|
* @throws {Error} If the checkpoint cannot be added
|
|
59
59
|
*/
|
|
60
|
-
addCheckpoint(agentState: AgentState, lastToolResults: ToolResult[], userInput: string): Promise<{
|
|
60
|
+
addCheckpoint(agentState: AgentState, lastToolResults: ToolResult[], userInput: string, saveWithNoChanges?: boolean): Promise<{
|
|
61
61
|
checkpoint: Checkpoint;
|
|
62
62
|
created: boolean;
|
|
63
63
|
}>;
|
|
@@ -97,7 +97,7 @@ class CheckpointManager {
|
|
|
97
97
|
* @returns The latest checkpoint and whether that checkpoint was created (or already existed)
|
|
98
98
|
* @throws {Error} If the checkpoint cannot be added
|
|
99
99
|
*/
|
|
100
|
-
async addCheckpoint(agentState, lastToolResults, userInput) {
|
|
100
|
+
async addCheckpoint(agentState, lastToolResults, userInput, saveWithNoChanges = false) {
|
|
101
101
|
if (this.disabledReason !== null) {
|
|
102
102
|
throw new CheckpointsDisabledError(this.disabledReason);
|
|
103
103
|
}
|
|
@@ -113,11 +113,13 @@ class CheckpointManager {
|
|
|
113
113
|
this.disabledReason = 'Project too large';
|
|
114
114
|
throw new CheckpointsDisabledError(this.disabledReason);
|
|
115
115
|
}
|
|
116
|
-
const needToStage =
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
116
|
+
const needToStage = saveWithNoChanges ||
|
|
117
|
+
(await (0, file_manager_1.hasUnsavedChanges)({
|
|
118
|
+
projectDir,
|
|
119
|
+
bareRepoPath,
|
|
120
|
+
relativeFilepaths,
|
|
121
|
+
})) ||
|
|
122
|
+
saveWithNoChanges;
|
|
121
123
|
if (!needToStage && this.checkpoints.length > 0) {
|
|
122
124
|
return {
|
|
123
125
|
checkpoint: this.checkpoints[this.checkpoints.length - 1],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkpoint-manager.js","sourceRoot":"","sources":["../../src/checkpoints/checkpoint-manager.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA2B;AAC3B,4CAAmB;AACnB,+BAA2B;AAC3B,mDAAuC;AAEvC,gEAA6E;AAE7E,2CAA2E;AAE3E,oDAAiD;AACjD,iDAIuB;AAEvB,MAAa,wBAAyB,SAAQ,KAAK;IACjD,YAAY,OAAgB,EAAE,OAAsB;QAClD,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QACvB,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAA;IACxC,CAAC;CACF;AALD,4DAKC;AAmDD;;;;GAIG;AACH,MAAa,iBAAiB;IAC5B,WAAW,GAAsB,EAAE,CAAA;IACnC,mBAAmB,GAAW,CAAC,CAAA;IAC/B,cAAc,GAAkB,IAAI,CAAA;IAE5B,YAAY,GAAkB,IAAI,CAAA;IAC1C,iEAAiE;IACzD,OAAO,GAAkB,EAAE,CAAA;IACnC,uCAAuC;IAC/B,MAAM,GAAkB,IAAI,CAAA;IAEpC;;;OAGG;IACK,UAAU;QAChB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,iEAAiE;YACjE,6DAA6D;YAC7D,MAAM,UAAU,GAAG,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAC3C,CAAC,CAAC,IAAA,WAAI,EAAC,SAAS,EAAE,YAAY,EAAE,8BAA8B,CAAC;gBAC/D,CAAC,CAAC,IAAA,WAAI,EAAC,SAAS,EAAE,iCAAiC,CAAC,CAAA;YACtD,IAAI,CAAC,MAAM,GAAG,IAAI,uBAAM,CAAC,UAAU,CAAC,CAAA;QACtC,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAA;IACpB,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,kBAAkB,CAAI,OAAsB;QACxD,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAA;QAEhC,OAAO,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACxC,MAAM,SAAS,GAAG,KAAK,CAAA,CAAC,qBAAqB;YAE7C,MAAM,OAAO,GAAG,CAAC,QAAwB,EAAE,EAAE;gBAC3C,IAAI,QAAQ,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,EAAE,CAAC;oBAC/B,OAAM;gBACR,CAAC;gBACD,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;oBACrB,OAAO,CAAC,QAAQ,CAAC,MAAW,CAAC,CAAA;gBAC/B,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAA;gBACnC,CAAC;gBACD,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;YAChC,CAAC,CAAA;YAED,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;YAC7B,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;YAE3B,cAAc;YACd,UAAU,CAAC,GAAG,EAAE;gBACd,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;gBAC9B,MAAM,CAAC,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC,CAAA;YACjD,CAAC,EAAE,SAAS,CAAC,CAAA;QACf,CAAC,CAAC,CAAA;IACJ,CAAC;IAED;;;OAGG;IACK,eAAe;QACrB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,IAAI,CAAC,YAAY,GAAG,IAAA,8BAAe,EAAC,IAAA,8BAAc,GAAE,CAAC,CAAA;QACvD,CAAC;QACD,OAAO,IAAI,CAAC,YAAY,CAAA;IAC1B,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,aAAa,CACjB,UAAsB,EACtB,eAA6B,EAC7B,SAAiB;
|
|
1
|
+
{"version":3,"file":"checkpoint-manager.js","sourceRoot":"","sources":["../../src/checkpoints/checkpoint-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Client } from '../client';
|
|
2
|
+
import { ApiKeyType } from '../common/api-keys/constants';
|
|
3
|
+
export type ApiKeyDetectionResult = {
|
|
4
|
+
status: 'found';
|
|
5
|
+
type: ApiKeyType;
|
|
6
|
+
key: string;
|
|
7
|
+
} | {
|
|
8
|
+
status: 'prefix_only';
|
|
9
|
+
type: ApiKeyType;
|
|
10
|
+
prefix: string;
|
|
11
|
+
length: number;
|
|
12
|
+
} | {
|
|
13
|
+
status: 'not_found';
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Detects if the user input contains a known API key pattern.
|
|
17
|
+
* Returns information about the detected key or prefix.
|
|
18
|
+
*/
|
|
19
|
+
export declare function detectApiKey(userInput: string): ApiKeyDetectionResult;
|
|
20
|
+
/**
|
|
21
|
+
* Handles the result of API key detection.
|
|
22
|
+
*/
|
|
23
|
+
export declare function handleApiKeyInput(client: Client, detectionResult: Exclude<ApiKeyDetectionResult, {
|
|
24
|
+
status: 'not_found';
|
|
25
|
+
}>, readyPromise: Promise<any>, returnControlToUser: () => void): Promise<void>;
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.detectApiKey = detectApiKey;
|
|
4
|
+
exports.handleApiKeyInput = handleApiKeyInput;
|
|
5
|
+
const picocolors_1 = require("picocolors");
|
|
6
|
+
const constants_1 = require("../common/api-keys/constants");
|
|
7
|
+
/**
|
|
8
|
+
* Detects if the user input contains a known API key pattern.
|
|
9
|
+
* Returns information about the detected key or prefix.
|
|
10
|
+
*/
|
|
11
|
+
function detectApiKey(userInput) {
|
|
12
|
+
// Build regex patterns for each key type
|
|
13
|
+
const keyPatterns = constants_1.API_KEY_TYPES.map((keyType) => {
|
|
14
|
+
const prefix = constants_1.KEY_PREFIXES[keyType];
|
|
15
|
+
const length = constants_1.KEY_LENGTHS[keyType];
|
|
16
|
+
const escapedPrefix = prefix.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
|
|
17
|
+
return {
|
|
18
|
+
type: keyType,
|
|
19
|
+
prefix: prefix,
|
|
20
|
+
length: length,
|
|
21
|
+
// Regex to find the key potentially surrounded by whitespace or at start/end
|
|
22
|
+
regex: new RegExp(`(?:^|\\s)(${escapedPrefix}[^\\s]{${length - prefix.length}})(?:\\s|$)`),
|
|
23
|
+
};
|
|
24
|
+
});
|
|
25
|
+
// Test input against each pattern for a full match
|
|
26
|
+
for (const patternInfo of keyPatterns) {
|
|
27
|
+
const match = userInput.match(patternInfo.regex);
|
|
28
|
+
if (match && match[1]) {
|
|
29
|
+
// Found a full, valid key pattern
|
|
30
|
+
return { status: 'found', type: patternInfo.type, key: match[1] };
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
// If no full key matched, check if the input *starts* with any known prefix
|
|
34
|
+
for (const patternInfo of keyPatterns) {
|
|
35
|
+
if (userInput.includes(patternInfo.prefix)) {
|
|
36
|
+
// Found a prefix, but it didn't match the full pattern (wrong length/format)
|
|
37
|
+
return {
|
|
38
|
+
status: 'prefix_only',
|
|
39
|
+
type: patternInfo.type,
|
|
40
|
+
prefix: patternInfo.prefix,
|
|
41
|
+
length: patternInfo.length,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
// No valid key or known prefix detected
|
|
46
|
+
return { status: 'not_found' };
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Handles the result of API key detection.
|
|
50
|
+
*/
|
|
51
|
+
async function handleApiKeyInput(client, detectionResult, readyPromise, returnControlToUser) {
|
|
52
|
+
switch (detectionResult.status) {
|
|
53
|
+
case 'found':
|
|
54
|
+
await readyPromise;
|
|
55
|
+
// Call the client method to add the valid key
|
|
56
|
+
await client.handleAddApiKey(detectionResult.type, detectionResult.key);
|
|
57
|
+
// Note: client.handleAddApiKey calls returnControlToUser internally
|
|
58
|
+
break;
|
|
59
|
+
case 'prefix_only':
|
|
60
|
+
// Print the warning for incorrect format/length
|
|
61
|
+
console.log((0, picocolors_1.yellow)(`Input looks like a ${detectionResult.type} API key but has the wrong length or format. Expected ${detectionResult.length} characters starting with "${detectionResult.prefix}".`));
|
|
62
|
+
returnControlToUser(); // Give the user a fresh prompt after the warning
|
|
63
|
+
break;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=api-key.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-key.js","sourceRoot":"","sources":["../../src/cli-handlers/api-key.ts"],"names":[],"mappings":";;AAaA,oCAyCC;AAKD,8CA0BC;AArFD,2CAAmC;AAEnC,yDAAgG;AAOhG;;;GAGG;AACH,SAAgB,YAAY,CAAC,SAAiB;IAC5C,yCAAyC;IACzC,MAAM,WAAW,GAAG,yBAAa,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QAChD,MAAM,MAAM,GAAG,wBAAY,CAAC,OAAO,CAAC,CAAA;QACpC,MAAM,MAAM,GAAG,uBAAW,CAAC,OAAO,CAAC,CAAA;QACnC,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,wBAAwB,EAAE,MAAM,CAAC,CAAA;QACtE,OAAO;YACL,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,MAAM;YACd,6EAA6E;YAC7E,KAAK,EAAE,IAAI,MAAM,CACf,aAAa,aAAa,UAAU,MAAM,GAAG,MAAM,CAAC,MAAM,aAAa,CACxE;SACF,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,mDAAmD;IACnD,KAAK,MAAM,WAAW,IAAI,WAAW,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;QAChD,IAAI,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YACtB,kCAAkC;YAClC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;QACnE,CAAC;IACH,CAAC;IAED,4EAA4E;IAC5E,KAAK,MAAM,WAAW,IAAI,WAAW,EAAE,CAAC;QACtC,IAAI,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3C,6EAA6E;YAC7E,OAAO;gBACL,MAAM,EAAE,aAAa;gBACrB,IAAI,EAAE,WAAW,CAAC,IAAI;gBACtB,MAAM,EAAE,WAAW,CAAC,MAAM;gBAC1B,MAAM,EAAE,WAAW,CAAC,MAAM;aAC3B,CAAA;QACH,CAAC;IACH,CAAC;IAED,wCAAwC;IACxC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,CAAA;AAChC,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,iBAAiB,CACrC,MAAc,EACd,eAAwE,EACxE,YAA0B,EAC1B,mBAA+B;IAE/B,QAAQ,eAAe,CAAC,MAAM,EAAE,CAAC;QAC/B,KAAK,OAAO;YACV,MAAM,YAAY,CAAA;YAClB,8CAA8C;YAC9C,MAAM,MAAM,CAAC,eAAe,CAC1B,eAAe,CAAC,IAAI,EACpB,eAAe,CAAC,GAAG,CACpB,CAAA;YACD,oEAAoE;YACpE,MAAK;QACP,KAAK,aAAa;YAChB,gDAAgD;YAChD,OAAO,CAAC,GAAG,CACT,IAAA,mBAAM,EACJ,sBAAsB,eAAe,CAAC,IAAI,yDAAyD,eAAe,CAAC,MAAM,8BAA8B,eAAe,CAAC,MAAM,IAAI,CAClL,CACF,CAAA;YACD,mBAAmB,EAAE,CAAA,CAAC,iDAAiD;YACvE,MAAK;IACT,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Interface as ReadlineInterface } from 'readline';
|
|
2
|
+
import type { Client } from '../client';
|
|
3
|
+
export declare const checkpointCommands: {
|
|
4
|
+
readonly save: readonly [readonly ["checkpoint"], "Save current state as a new checkpoint"];
|
|
5
|
+
readonly list: readonly [readonly ["checkpoint list", "checkpoints"], "List all saved checkpoints"];
|
|
6
|
+
readonly clear: readonly [readonly ["checkpoint clear"], "Clear all checkpoints"];
|
|
7
|
+
readonly undo: readonly [readonly ["undo", "u"], "Undo to previous checkpoint"];
|
|
8
|
+
readonly redo: readonly [readonly ["redo", "r"], "Redo previously undone checkpoint"];
|
|
9
|
+
readonly restore: readonly [readonly [RegExp], "Restore to checkpoint number <n>"];
|
|
10
|
+
};
|
|
11
|
+
export declare function displayCheckpointMenu(): void;
|
|
12
|
+
export declare function isCheckpointCommand(userInput: string, type?: keyof typeof checkpointCommands | null): boolean | RegExpMatchArray;
|
|
13
|
+
export declare function listCheckpoints(): Promise<void>;
|
|
14
|
+
export declare function handleUndo(client: Client, rl: ReadlineInterface): Promise<string>;
|
|
15
|
+
export declare function handleRedo(client: Client, rl: ReadlineInterface): Promise<string>;
|
|
16
|
+
export declare function handleRestoreCheckpoint(id: number, client: Client, rl: ReadlineInterface): Promise<string>;
|
|
17
|
+
export declare function handleClearCheckpoints(): void;
|
|
18
|
+
export declare function saveCheckpoint(userInput: string, client: Client, readyPromise: Promise<any>, saveWithNoChanges?: boolean): Promise<void>;
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.checkpointCommands = void 0;
|
|
4
|
+
exports.displayCheckpointMenu = displayCheckpointMenu;
|
|
5
|
+
exports.isCheckpointCommand = isCheckpointCommand;
|
|
6
|
+
exports.listCheckpoints = listCheckpoints;
|
|
7
|
+
exports.handleUndo = handleUndo;
|
|
8
|
+
exports.handleRedo = handleRedo;
|
|
9
|
+
exports.handleRestoreCheckpoint = handleRestoreCheckpoint;
|
|
10
|
+
exports.handleClearCheckpoints = handleClearCheckpoints;
|
|
11
|
+
exports.saveCheckpoint = saveCheckpoint;
|
|
12
|
+
const picocolors_1 = require("picocolors");
|
|
13
|
+
const checkpoint_manager_1 = require("../checkpoints/checkpoint-manager");
|
|
14
|
+
const spinner_1 = require("../utils/spinner");
|
|
15
|
+
exports.checkpointCommands = {
|
|
16
|
+
save: [['checkpoint'], 'Save current state as a new checkpoint'],
|
|
17
|
+
list: [['checkpoint list', 'checkpoints'], 'List all saved checkpoints'],
|
|
18
|
+
clear: [['checkpoint clear'], 'Clear all checkpoints'],
|
|
19
|
+
undo: [['undo', 'u'], 'Undo to previous checkpoint'],
|
|
20
|
+
redo: [['redo', 'r'], 'Redo previously undone checkpoint'],
|
|
21
|
+
restore: [[/^checkpoint\s+(\d+)$/], 'Restore to checkpoint number <n>'],
|
|
22
|
+
};
|
|
23
|
+
const allCheckpointCommands = Object.entries(exports.checkpointCommands)
|
|
24
|
+
.map((entry) => entry[1][0])
|
|
25
|
+
.flat();
|
|
26
|
+
function displayCheckpointMenu() {
|
|
27
|
+
console.log('\n' + (0, picocolors_1.bold)((0, picocolors_1.underline)('Checkpoint Commands:')));
|
|
28
|
+
Object.entries(exports.checkpointCommands).forEach(([, [aliases, description]]) => {
|
|
29
|
+
const formattedAliases = aliases
|
|
30
|
+
.map((a) => (typeof a === 'string' ? (0, picocolors_1.cyan)(a) : (0, picocolors_1.cyan)('checkpoint <n>')))
|
|
31
|
+
.join(', ');
|
|
32
|
+
console.log(`${formattedAliases} - ${description}`);
|
|
33
|
+
});
|
|
34
|
+
console.log();
|
|
35
|
+
}
|
|
36
|
+
function isCheckpointCommand(userInput, type = null) {
|
|
37
|
+
if (type === null) {
|
|
38
|
+
if (userInput.startsWith('checkpoint')) {
|
|
39
|
+
return true;
|
|
40
|
+
}
|
|
41
|
+
for (const pattern of allCheckpointCommands) {
|
|
42
|
+
if (pattern instanceof RegExp) {
|
|
43
|
+
const m = userInput.match(pattern);
|
|
44
|
+
if (m) {
|
|
45
|
+
return m;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
if (userInput === pattern) {
|
|
49
|
+
return true;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return false;
|
|
53
|
+
}
|
|
54
|
+
for (const pattern of exports.checkpointCommands[type][0]) {
|
|
55
|
+
if (pattern instanceof RegExp) {
|
|
56
|
+
const m = userInput.match(pattern);
|
|
57
|
+
if (m) {
|
|
58
|
+
return m;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
if (userInput === pattern) {
|
|
62
|
+
return true;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
return false;
|
|
66
|
+
}
|
|
67
|
+
async function listCheckpoints() {
|
|
68
|
+
console.log(checkpoint_manager_1.checkpointManager.getCheckpointsAsString());
|
|
69
|
+
}
|
|
70
|
+
async function handleUndo(client, rl) {
|
|
71
|
+
let failed = false;
|
|
72
|
+
try {
|
|
73
|
+
await checkpoint_manager_1.checkpointManager.restoreUndoCheckpoint();
|
|
74
|
+
}
|
|
75
|
+
catch (error) {
|
|
76
|
+
failed = true;
|
|
77
|
+
if (error instanceof checkpoint_manager_1.CheckpointsDisabledError) {
|
|
78
|
+
console.log((0, picocolors_1.red)(`Checkpoints not enabled: ${error.message}`));
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
console.log((0, picocolors_1.red)(`Unable to undo: ${error.message}`));
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
let userInput = '';
|
|
85
|
+
if (!failed) {
|
|
86
|
+
const currentCheckpoint = checkpoint_manager_1.checkpointManager.checkpoints[checkpoint_manager_1.checkpointManager.currentCheckpointId - 1];
|
|
87
|
+
// Restore the agentState
|
|
88
|
+
client.agentState = JSON.parse(currentCheckpoint.agentStateString);
|
|
89
|
+
client.lastToolResults = JSON.parse(currentCheckpoint.lastToolResultsString);
|
|
90
|
+
console.log((0, picocolors_1.green)(`Checkpoint #${checkpoint_manager_1.checkpointManager.currentCheckpointId} restored.`));
|
|
91
|
+
userInput =
|
|
92
|
+
checkpoint_manager_1.checkpointManager.checkpoints[checkpoint_manager_1.checkpointManager.currentCheckpointId - 1]
|
|
93
|
+
?.userInput ?? '';
|
|
94
|
+
}
|
|
95
|
+
return isCheckpointCommand(userInput) ? '' : userInput;
|
|
96
|
+
}
|
|
97
|
+
async function handleRedo(client, rl) {
|
|
98
|
+
let failed = false;
|
|
99
|
+
try {
|
|
100
|
+
await checkpoint_manager_1.checkpointManager.restoreRedoCheckpoint();
|
|
101
|
+
}
|
|
102
|
+
catch (error) {
|
|
103
|
+
failed = true;
|
|
104
|
+
if (error instanceof checkpoint_manager_1.CheckpointsDisabledError) {
|
|
105
|
+
console.log((0, picocolors_1.red)(`Checkpoints not enabled: ${error.message}`));
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
console.log((0, picocolors_1.red)(`Unable to redo: ${error.message}`));
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
let userInput = '';
|
|
112
|
+
if (!failed) {
|
|
113
|
+
const currentCheckpoint = checkpoint_manager_1.checkpointManager.checkpoints[checkpoint_manager_1.checkpointManager.currentCheckpointId - 1];
|
|
114
|
+
// Restore the agentState
|
|
115
|
+
client.agentState = JSON.parse(currentCheckpoint.agentStateString);
|
|
116
|
+
client.lastToolResults = JSON.parse(currentCheckpoint.lastToolResultsString);
|
|
117
|
+
console.log((0, picocolors_1.green)(`Checkpoint #${checkpoint_manager_1.checkpointManager.currentCheckpointId} restored.`));
|
|
118
|
+
userInput =
|
|
119
|
+
checkpoint_manager_1.checkpointManager.checkpoints[checkpoint_manager_1.checkpointManager.currentCheckpointId - 1]
|
|
120
|
+
?.userInput ?? '';
|
|
121
|
+
}
|
|
122
|
+
return isCheckpointCommand(userInput) ? '' : userInput;
|
|
123
|
+
}
|
|
124
|
+
async function handleRestoreCheckpoint(id, client, rl) {
|
|
125
|
+
spinner_1.Spinner.get().start();
|
|
126
|
+
if (checkpoint_manager_1.checkpointManager.disabledReason !== null) {
|
|
127
|
+
console.log((0, picocolors_1.red)(`Checkpoints not enabled: ${checkpoint_manager_1.checkpointManager.disabledReason}`));
|
|
128
|
+
return '';
|
|
129
|
+
}
|
|
130
|
+
const checkpoint = checkpoint_manager_1.checkpointManager.checkpoints[id - 1];
|
|
131
|
+
if (!checkpoint) {
|
|
132
|
+
console.log((0, picocolors_1.red)(`Checkpoint #${id} not found.`));
|
|
133
|
+
return '';
|
|
134
|
+
}
|
|
135
|
+
try {
|
|
136
|
+
// Wait for save before trying to restore checkpoint
|
|
137
|
+
const latestCheckpoint = checkpoint_manager_1.checkpointManager.getLatestCheckpoint();
|
|
138
|
+
await latestCheckpoint?.fileStateIdPromise;
|
|
139
|
+
}
|
|
140
|
+
catch (error) {
|
|
141
|
+
// Should never happen
|
|
142
|
+
}
|
|
143
|
+
// Restore the agentState
|
|
144
|
+
client.agentState = JSON.parse(checkpoint.agentStateString);
|
|
145
|
+
client.lastToolResults = JSON.parse(checkpoint.lastToolResultsString);
|
|
146
|
+
let failed = false;
|
|
147
|
+
try {
|
|
148
|
+
// Restore file state
|
|
149
|
+
await checkpoint_manager_1.checkpointManager.restoreCheckointFileState({
|
|
150
|
+
id: checkpoint.id,
|
|
151
|
+
resetUndoIds: true,
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
catch (error) {
|
|
155
|
+
failed = true;
|
|
156
|
+
spinner_1.Spinner.get().stop();
|
|
157
|
+
console.log((0, picocolors_1.red)(`Unable to restore checkpoint: ${error.message}`));
|
|
158
|
+
}
|
|
159
|
+
if (!failed) {
|
|
160
|
+
spinner_1.Spinner.get().stop();
|
|
161
|
+
console.log((0, picocolors_1.green)(`Restored to checkpoint #${id}.`));
|
|
162
|
+
}
|
|
163
|
+
// Insert the original user input that created this checkpoint
|
|
164
|
+
return isCheckpointCommand(checkpoint.userInput) ? '' : checkpoint.userInput;
|
|
165
|
+
}
|
|
166
|
+
function handleClearCheckpoints() {
|
|
167
|
+
checkpoint_manager_1.checkpointManager.clearCheckpoints();
|
|
168
|
+
console.log('Cleared all checkpoints.');
|
|
169
|
+
}
|
|
170
|
+
async function saveCheckpoint(userInput, client, readyPromise, saveWithNoChanges = false) {
|
|
171
|
+
if (checkpoint_manager_1.checkpointManager.disabledReason !== null) {
|
|
172
|
+
return;
|
|
173
|
+
}
|
|
174
|
+
spinner_1.Spinner.get().start();
|
|
175
|
+
await readyPromise;
|
|
176
|
+
spinner_1.Spinner.get().stop();
|
|
177
|
+
try {
|
|
178
|
+
// Make sure the previous checkpoint is done
|
|
179
|
+
await checkpoint_manager_1.checkpointManager.getLatestCheckpoint().fileStateIdPromise;
|
|
180
|
+
}
|
|
181
|
+
catch (error) {
|
|
182
|
+
// No latest checkpoint available, no need to wait
|
|
183
|
+
}
|
|
184
|
+
// Save the current agent state
|
|
185
|
+
try {
|
|
186
|
+
const { checkpoint, created } = await checkpoint_manager_1.checkpointManager.addCheckpoint(client.agentState, client.lastToolResults, userInput, saveWithNoChanges);
|
|
187
|
+
if (created) {
|
|
188
|
+
console.log(`[checkpoint #${checkpoint.id} saved]`);
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
catch (error) {
|
|
192
|
+
// Unable to add checkpoint, do not display anything to user
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
//# sourceMappingURL=checkpoint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkpoint.js","sourceRoot":"","sources":["../../src/cli-handlers/checkpoint.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.handleDiff = handleDiff;
|
|
4
|
+
const picocolors_1 = require("picocolors");
|
|
5
|
+
function handleDiff(lastChanges) {
|
|
6
|
+
if (lastChanges.length === 0) {
|
|
7
|
+
console.log((0, picocolors_1.yellow)('No changes found in the last assistant response.'));
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
lastChanges.forEach((change) => {
|
|
11
|
+
console.log((0, picocolors_1.bold)(`___${change.path}___`));
|
|
12
|
+
const lines = change.content
|
|
13
|
+
.split('\n')
|
|
14
|
+
.map((line) => (change.type === 'file' ? '+' + line : line));
|
|
15
|
+
lines.forEach((line) => {
|
|
16
|
+
if (line.startsWith('+')) {
|
|
17
|
+
console.log((0, picocolors_1.green)(line));
|
|
18
|
+
}
|
|
19
|
+
else if (line.startsWith('-')) {
|
|
20
|
+
console.log((0, picocolors_1.red)(line));
|
|
21
|
+
}
|
|
22
|
+
else if (line.startsWith('@@')) {
|
|
23
|
+
console.log((0, picocolors_1.cyan)(line));
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
console.log(line);
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=diff.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diff.js","sourceRoot":"","sources":["../../src/cli-handlers/diff.ts"],"names":[],"mappings":";;AAGA,gCAwBC;AA1BD,2CAA2D;AAE3D,SAAgB,UAAU,CAAC,WAAyB;IAClD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,IAAA,mBAAM,EAAC,kDAAkD,CAAC,CAAC,CAAA;QACvE,OAAM;IACR,CAAC;IAED,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;QAC7B,OAAO,CAAC,GAAG,CAAC,IAAA,iBAAI,EAAC,MAAM,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,CAAA;QACzC,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO;aACzB,KAAK,CAAC,IAAI,CAAC;aACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;QAE9D,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACrB,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACzB,OAAO,CAAC,GAAG,CAAC,IAAA,kBAAK,EAAC,IAAI,CAAC,CAAC,CAAA;YAC1B,CAAC;iBAAM,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBAChC,OAAO,CAAC,GAAG,CAAC,IAAA,gBAAG,EAAC,IAAI,CAAC,CAAC,CAAA;YACxB,CAAC;iBAAM,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjC,OAAO,CAAC,GAAG,CAAC,IAAA,iBAAI,EAAC,IAAI,CAAC,CAAC,CAAA;YACzB,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YACnB,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function showEasterEgg(complete: () => void): Promise<void>;
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.showEasterEgg = showEasterEgg;
|
|
4
|
+
const picocolors_1 = require("picocolors");
|
|
5
|
+
// Utility: clear the terminal screen
|
|
6
|
+
function clearScreen() {
|
|
7
|
+
process.stdout.write('\u001b[2J\u001b[0;0H');
|
|
8
|
+
}
|
|
9
|
+
// Utility: Generate a set of points tracing a "C" shape using an arc.
|
|
10
|
+
function generateCPath(cx, cy, r, steps) {
|
|
11
|
+
const points = [];
|
|
12
|
+
// A typical "C" opens to the right: from 45° to 315° (in radians)
|
|
13
|
+
const startAngle = Math.PI / 4;
|
|
14
|
+
const endAngle = (7 * Math.PI) / 4;
|
|
15
|
+
const angleStep = (endAngle - startAngle) / steps;
|
|
16
|
+
for (let i = 0; i <= steps; i++) {
|
|
17
|
+
const angle = startAngle + i * angleStep;
|
|
18
|
+
const x = Math.floor(cx + r * Math.cos(angle));
|
|
19
|
+
const y = Math.floor(cy + r * Math.sin(angle));
|
|
20
|
+
points.push({ x, y });
|
|
21
|
+
}
|
|
22
|
+
return points;
|
|
23
|
+
}
|
|
24
|
+
// Utility: Generate points along a quadratic Bézier curve.
|
|
25
|
+
function quadraticBezier(P0, P1, P2, steps) {
|
|
26
|
+
const points = [];
|
|
27
|
+
for (let i = 0; i <= steps; i++) {
|
|
28
|
+
const t = i / steps;
|
|
29
|
+
const x = Math.round((1 - t) ** 2 * P0.x + 2 * (1 - t) * t * P1.x + t ** 2 * P2.x);
|
|
30
|
+
const y = Math.round((1 - t) ** 2 * P0.y + 2 * (1 - t) * t * P1.y + t ** 2 * P2.y);
|
|
31
|
+
points.push({ x, y });
|
|
32
|
+
}
|
|
33
|
+
return points;
|
|
34
|
+
}
|
|
35
|
+
// Generate a vertical line from startY to endY at a given x.
|
|
36
|
+
function generateVerticalLine(x, startY, endY) {
|
|
37
|
+
const points = [];
|
|
38
|
+
const step = startY < endY ? 1 : -1;
|
|
39
|
+
for (let y = startY; y !== endY; y += step) {
|
|
40
|
+
points.push({ x, y });
|
|
41
|
+
}
|
|
42
|
+
points.push({ x, y: endY });
|
|
43
|
+
return points;
|
|
44
|
+
}
|
|
45
|
+
// Generate a path approximating a B shape using two quadratic Bézier curves
|
|
46
|
+
// for the rounded bubbles, and then closing the shape with a vertical spine.
|
|
47
|
+
function generateBPath(bX, bYTop, bYBottom, bWidth, bGap, stepsPerCurve) {
|
|
48
|
+
let points = [];
|
|
49
|
+
const middle = Math.floor((bYTop + bYBottom) / 2);
|
|
50
|
+
// Upper bubble: from top-left (spine) out then back to the spine at the middle.
|
|
51
|
+
const upperStart = { x: bX, y: bYTop };
|
|
52
|
+
const upperControl = {
|
|
53
|
+
x: bX + bWidth + bGap - 10,
|
|
54
|
+
y: Math.floor((bYTop + middle) / 2),
|
|
55
|
+
};
|
|
56
|
+
const upperEnd = { x: bX, y: middle };
|
|
57
|
+
const upperCurve = quadraticBezier(upperStart, upperControl, upperEnd, stepsPerCurve);
|
|
58
|
+
// Lower bubble: from the middle to the bottom.
|
|
59
|
+
const lowerStart = { x: bX, y: middle };
|
|
60
|
+
const lowerControl = {
|
|
61
|
+
x: bX + bWidth + bGap,
|
|
62
|
+
y: Math.floor((middle + bYBottom) / 2),
|
|
63
|
+
};
|
|
64
|
+
const lowerEnd = { x: bX, y: bYBottom };
|
|
65
|
+
const lowerCurve = quadraticBezier(lowerStart, lowerControl, lowerEnd, stepsPerCurve);
|
|
66
|
+
// Combine the curves.
|
|
67
|
+
points = points.concat(upperCurve, lowerCurve);
|
|
68
|
+
// Add a vertical line from the bottom of the B back up to the top.
|
|
69
|
+
const closingLine = generateVerticalLine(bX, bYBottom, bYTop);
|
|
70
|
+
points = points.concat(closingLine);
|
|
71
|
+
return points;
|
|
72
|
+
}
|
|
73
|
+
// Array of picocolors functions for random colors.
|
|
74
|
+
const colors = [picocolors_1.red, picocolors_1.green, picocolors_1.yellow, picocolors_1.blue, picocolors_1.magenta, picocolors_1.cyan];
|
|
75
|
+
function getRandomColor() {
|
|
76
|
+
return colors[Math.floor(Math.random() * colors.length)];
|
|
77
|
+
}
|
|
78
|
+
async function showEasterEgg(complete) {
|
|
79
|
+
const text = 'codebuffy';
|
|
80
|
+
const termWidth = process.stdout.columns;
|
|
81
|
+
const termHeight = process.stdout.rows;
|
|
82
|
+
const baselineWidth = 80;
|
|
83
|
+
const baselineHeight = 24;
|
|
84
|
+
const scaleFactor = Math.min(termWidth / baselineWidth, termHeight / baselineHeight);
|
|
85
|
+
// Dynamically scale parameters for the shapes.
|
|
86
|
+
// Use Math.max to ensure values don't get too small.
|
|
87
|
+
const cCenterX = Math.floor(termWidth * 0.3);
|
|
88
|
+
const cCenterY = Math.floor(termHeight / 2);
|
|
89
|
+
const cRadius = Math.max(2, Math.floor(8 * scaleFactor));
|
|
90
|
+
const cSteps = Math.max(10, Math.floor(30 * scaleFactor));
|
|
91
|
+
const bX = Math.floor(termWidth * 0.55);
|
|
92
|
+
const bYTop = Math.floor(termHeight / 2 - 7 * scaleFactor);
|
|
93
|
+
const bYBottom = Math.floor(termHeight / 2 + 7 * scaleFactor);
|
|
94
|
+
const bWidth = Math.max(2, Math.floor(8 * scaleFactor));
|
|
95
|
+
const bGap = Math.max(1, Math.floor(35 * scaleFactor));
|
|
96
|
+
const bStepsPerCurve = Math.max(10, Math.floor(20 * scaleFactor));
|
|
97
|
+
// Generate the paths.
|
|
98
|
+
const fullPath = [
|
|
99
|
+
...generateCPath(cCenterX, cCenterY, cRadius, cSteps),
|
|
100
|
+
...generateBPath(bX, bYTop, bYBottom, bWidth, bGap, bStepsPerCurve),
|
|
101
|
+
];
|
|
102
|
+
// Animation state: index into the fullPath.
|
|
103
|
+
let index = 0;
|
|
104
|
+
let completedCycle = false;
|
|
105
|
+
// Main animation function
|
|
106
|
+
function animate() {
|
|
107
|
+
if (index >= fullPath.length) {
|
|
108
|
+
completedCycle = true;
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
const { x, y } = fullPath[index];
|
|
112
|
+
const cursorPosition = `\u001b[${y + 1};${x + 1}H`;
|
|
113
|
+
process.stdout.write(cursorPosition + getRandomColor()(text));
|
|
114
|
+
index++;
|
|
115
|
+
}
|
|
116
|
+
clearScreen();
|
|
117
|
+
const interval = setInterval(() => {
|
|
118
|
+
animate();
|
|
119
|
+
if (completedCycle) {
|
|
120
|
+
clearInterval(interval);
|
|
121
|
+
clearScreen();
|
|
122
|
+
complete();
|
|
123
|
+
}
|
|
124
|
+
}, 100);
|
|
125
|
+
}
|
|
126
|
+
//# sourceMappingURL=easter-egg.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"easter-egg.js","sourceRoot":"","sources":["../../src/cli-handlers/easter-egg.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.d.ts
CHANGED
|
@@ -26,33 +26,15 @@ export declare class CLI {
|
|
|
26
26
|
printDiff(): Promise<void>;
|
|
27
27
|
private handleLine;
|
|
28
28
|
private handleUserInput;
|
|
29
|
-
private saveCheckpoint;
|
|
30
29
|
private processCommand;
|
|
31
|
-
/**
|
|
32
|
-
* Detects if the user input contains a known API key pattern.
|
|
33
|
-
* Returns information about the detected key or prefix.
|
|
34
|
-
*/
|
|
35
|
-
private detectApiKey;
|
|
36
|
-
/**
|
|
37
|
-
* Handles the result of API key detection.
|
|
38
|
-
*/
|
|
39
|
-
private handleApiKeyInput;
|
|
40
30
|
private forwardUserInput;
|
|
41
31
|
private returnControlToUser;
|
|
42
32
|
private onWebSocketError;
|
|
43
33
|
private onWebSocketReconnect;
|
|
44
|
-
private handleUndo;
|
|
45
|
-
private handleRedo;
|
|
46
34
|
private handleKeyPress;
|
|
47
35
|
private handleSigint;
|
|
48
36
|
private handleEscKey;
|
|
49
37
|
private handleStopResponse;
|
|
50
|
-
private showEasterEgg;
|
|
51
38
|
private handleExit;
|
|
52
39
|
private detectPasting;
|
|
53
|
-
private handleDiff;
|
|
54
|
-
private handleCheckpoints;
|
|
55
|
-
private handleRestoreCheckpoint;
|
|
56
|
-
private restoreUserInput;
|
|
57
|
-
private handleClearCheckpoints;
|
|
58
40
|
}
|