codebuff 1.0.334 → 1.0.335
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/index.js +334 -0
- package/package.json +23 -72
- package/dist/__tests__/display.test.d.ts +0 -1
- package/dist/__tests__/display.test.js +0 -174
- package/dist/__tests__/display.test.js.map +0 -1
- package/dist/__tests__/rage-detectors.test.d.ts +0 -1
- package/dist/__tests__/rage-detectors.test.js +0 -127
- package/dist/__tests__/rage-detectors.test.js.map +0 -1
- package/dist/background-process-manager.d.ts +0 -50
- package/dist/background-process-manager.js +0 -364
- package/dist/background-process-manager.js.map +0 -1
- package/dist/browser-runner.d.ts +0 -35
- package/dist/browser-runner.js +0 -689
- package/dist/browser-runner.js.map +0 -1
- package/dist/chat-storage.d.ts +0 -2
- package/dist/chat-storage.js +0 -98
- package/dist/chat-storage.js.map +0 -1
- package/dist/checkpoints/checkpoint-manager.d.ts +0 -94
- package/dist/checkpoints/checkpoint-manager.js +0 -291
- package/dist/checkpoints/checkpoint-manager.js.map +0 -1
- package/dist/checkpoints/file-manager.d.ts +0 -72
- package/dist/checkpoints/file-manager.js +0 -498
- package/dist/checkpoints/file-manager.js.map +0 -1
- package/dist/cli-definitions.d.ts +0 -9
- package/dist/cli-definitions.js +0 -60
- package/dist/cli-definitions.js.map +0 -1
- package/dist/cli-handlers/api-key.d.ts +0 -25
- package/dist/cli-handlers/api-key.js +0 -66
- package/dist/cli-handlers/api-key.js.map +0 -1
- package/dist/cli-handlers/checkpoint.d.ts +0 -19
- package/dist/cli-handlers/checkpoint.js +0 -221
- package/dist/cli-handlers/checkpoint.js.map +0 -1
- package/dist/cli-handlers/diff.d.ts +0 -2
- package/dist/cli-handlers/diff.js +0 -31
- package/dist/cli-handlers/diff.js.map +0 -1
- package/dist/cli-handlers/easter-egg.d.ts +0 -1
- package/dist/cli-handlers/easter-egg.js +0 -126
- package/dist/cli-handlers/easter-egg.js.map +0 -1
- package/dist/cli-handlers/inititalization-flow.d.ts +0 -1
- package/dist/cli-handlers/inititalization-flow.js +0 -25
- package/dist/cli-handlers/inititalization-flow.js.map +0 -1
- package/dist/cli.d.ts +0 -67
- package/dist/cli.js +0 -812
- package/dist/cli.js.map +0 -1
- package/dist/client.d.ts +0 -91
- package/dist/client.js +0 -1112
- package/dist/client.js.map +0 -1
- package/dist/code-map/languages.d.ts +0 -12
- package/dist/code-map/languages.d.ts.map +0 -1
- package/dist/code-map/languages.js +0 -130
- package/dist/code-map/languages.js.map +0 -1
- package/dist/code-map/parse.d.ts +0 -22
- package/dist/code-map/parse.d.ts.map +0 -1
- package/dist/code-map/parse.js +0 -180
- package/dist/code-map/parse.js.map +0 -1
- package/dist/code-map/tree-sitter-queries/readme.md +0 -23
- package/dist/code-map/tree-sitter-queries/tree-sitter-c-tags.scm +0 -16
- package/dist/code-map/tree-sitter-queries/tree-sitter-c_sharp-tags.scm +0 -23
- package/dist/code-map/tree-sitter-queries/tree-sitter-cpp-tags.scm +0 -29
- package/dist/code-map/tree-sitter-queries/tree-sitter-go-tags.scm +0 -26
- package/dist/code-map/tree-sitter-queries/tree-sitter-java-tags.scm +0 -19
- package/dist/code-map/tree-sitter-queries/tree-sitter-javascript-tags.scm +0 -16
- package/dist/code-map/tree-sitter-queries/tree-sitter-php-tags.scm +0 -23
- package/dist/code-map/tree-sitter-queries/tree-sitter-python-tags.scm +0 -12
- package/dist/code-map/tree-sitter-queries/tree-sitter-ruby-tags.scm +0 -58
- package/dist/code-map/tree-sitter-queries/tree-sitter-rust-tags.scm +0 -26
- package/dist/code-map/tree-sitter-queries/tree-sitter-typescript-tags.scm +0 -22
- package/dist/code-map/tsconfig.tsbuildinfo +0 -1
- package/dist/common/actions.d.ts +0 -1809
- package/dist/common/actions.d.ts.map +0 -1
- package/dist/common/actions.js +0 -140
- package/dist/common/actions.js.map +0 -1
- package/dist/common/analytics.d.ts +0 -6
- package/dist/common/analytics.d.ts.map +0 -1
- package/dist/common/analytics.js +0 -60
- package/dist/common/analytics.js.map +0 -1
- package/dist/common/api-keys/constants.d.ts +0 -9
- package/dist/common/api-keys/constants.d.ts.map +0 -1
- package/dist/common/api-keys/constants.js +0 -26
- package/dist/common/api-keys/constants.js.map +0 -1
- package/dist/common/api-keys/crypto.d.ts +0 -25
- package/dist/common/api-keys/crypto.d.ts.map +0 -1
- package/dist/common/api-keys/crypto.js +0 -186
- package/dist/common/api-keys/crypto.js.map +0 -1
- package/dist/common/browser-actions.d.ts +0 -4416
- package/dist/common/browser-actions.d.ts.map +0 -1
- package/dist/common/browser-actions.js +0 -343
- package/dist/common/browser-actions.js.map +0 -1
- package/dist/common/constants/analytics-events.d.ts +0 -31
- package/dist/common/constants/analytics-events.d.ts.map +0 -1
- package/dist/common/constants/analytics-events.js +0 -39
- package/dist/common/constants/analytics-events.js.map +0 -1
- package/dist/common/constants/grant-priorities.d.ts +0 -3
- package/dist/common/constants/grant-priorities.d.ts.map +0 -1
- package/dist/common/constants/grant-priorities.js +0 -11
- package/dist/common/constants/grant-priorities.js.map +0 -1
- package/dist/common/constants/tools.d.ts +0 -19
- package/dist/common/constants/tools.d.ts.map +0 -1
- package/dist/common/constants/tools.js +0 -45
- package/dist/common/constants/tools.js.map +0 -1
- package/dist/common/constants.d.ts +0 -149
- package/dist/common/constants.d.ts.map +0 -1
- package/dist/common/constants.js +0 -234
- package/dist/common/constants.js.map +0 -1
- package/dist/common/db/drizzle.config.d.ts +0 -3
- package/dist/common/db/drizzle.config.d.ts.map +0 -1
- package/dist/common/db/drizzle.config.js +0 -17
- package/dist/common/db/drizzle.config.js.map +0 -1
- package/dist/common/db/index.d.ts +0 -7
- package/dist/common/db/index.d.ts.map +0 -1
- package/dist/common/db/index.js +0 -35
- package/dist/common/db/index.js.map +0 -1
- package/dist/common/db/schema.d.ts +0 -2449
- package/dist/common/db/schema.d.ts.map +0 -1
- package/dist/common/db/schema.js +0 -310
- package/dist/common/db/schema.js.map +0 -1
- package/dist/common/db/transaction.d.ts +0 -13
- package/dist/common/db/transaction.d.ts.map +0 -1
- package/dist/common/db/transaction.js +0 -36
- package/dist/common/db/transaction.js.map +0 -1
- package/dist/common/json-config/__tests__/__snapshots__/stringify-schema.test.js.snap +0 -144
- package/dist/common/json-config/__tests__/constants.test.d.ts +0 -2
- package/dist/common/json-config/__tests__/constants.test.d.ts.map +0 -1
- package/dist/common/json-config/__tests__/constants.test.js +0 -273
- package/dist/common/json-config/__tests__/constants.test.js.map +0 -1
- package/dist/common/json-config/__tests__/stringify-schema.test.d.ts +0 -2
- package/dist/common/json-config/__tests__/stringify-schema.test.d.ts.map +0 -1
- package/dist/common/json-config/__tests__/stringify-schema.test.js +0 -66
- package/dist/common/json-config/__tests__/stringify-schema.test.js.map +0 -1
- package/dist/common/json-config/constants.d.ts +0 -138
- package/dist/common/json-config/constants.d.ts.map +0 -1
- package/dist/common/json-config/constants.js +0 -78
- package/dist/common/json-config/constants.js.map +0 -1
- package/dist/common/json-config/default.d.ts +0 -3
- package/dist/common/json-config/default.d.ts.map +0 -1
- package/dist/common/json-config/default.js +0 -12
- package/dist/common/json-config/default.js.map +0 -1
- package/dist/common/json-config/stringify-schema.d.ts +0 -10
- package/dist/common/json-config/stringify-schema.d.ts.map +0 -1
- package/dist/common/json-config/stringify-schema.js +0 -131
- package/dist/common/json-config/stringify-schema.js.map +0 -1
- package/dist/common/project-file-tree.d.ts +0 -12
- package/dist/common/project-file-tree.d.ts.map +0 -1
- package/dist/common/project-file-tree.js +0 -212
- package/dist/common/project-file-tree.js.map +0 -1
- package/dist/common/types/agent-state.d.ts +0 -265
- package/dist/common/types/agent-state.d.ts.map +0 -1
- package/dist/common/types/agent-state.js +0 -48
- package/dist/common/types/agent-state.js.map +0 -1
- package/dist/common/types/grant.d.ts +0 -3
- package/dist/common/types/grant.d.ts.map +0 -1
- package/dist/common/types/grant.js +0 -11
- package/dist/common/types/grant.js.map +0 -1
- package/dist/common/types/message.d.ts +0 -320
- package/dist/common/types/message.d.ts.map +0 -1
- package/dist/common/types/message.js +0 -60
- package/dist/common/types/message.js.map +0 -1
- package/dist/common/types/organization.d.ts +0 -106
- package/dist/common/types/organization.d.ts.map +0 -1
- package/dist/common/types/organization.js +0 -3
- package/dist/common/types/organization.js.map +0 -1
- package/dist/common/types/referral.d.ts +0 -3
- package/dist/common/types/referral.d.ts.map +0 -1
- package/dist/common/types/referral.js +0 -5
- package/dist/common/types/referral.js.map +0 -1
- package/dist/common/types/tools.d.ts +0 -6
- package/dist/common/types/tools.d.ts.map +0 -1
- package/dist/common/types/tools.js +0 -3
- package/dist/common/types/tools.js.map +0 -1
- package/dist/common/types/usage.d.ts +0 -41
- package/dist/common/types/usage.d.ts.map +0 -1
- package/dist/common/types/usage.js +0 -16
- package/dist/common/types/usage.js.map +0 -1
- package/dist/common/util/__tests__/messages.test.d.ts +0 -2
- package/dist/common/util/__tests__/messages.test.d.ts.map +0 -1
- package/dist/common/util/__tests__/messages.test.js +0 -70
- package/dist/common/util/__tests__/messages.test.js.map +0 -1
- package/dist/common/util/__tests__/saxy.test.d.ts +0 -2
- package/dist/common/util/__tests__/saxy.test.d.ts.map +0 -1
- package/dist/common/util/__tests__/saxy.test.js +0 -906
- package/dist/common/util/__tests__/saxy.test.js.map +0 -1
- package/dist/common/util/__tests__/string.test.d.ts +0 -2
- package/dist/common/util/__tests__/string.test.d.ts.map +0 -1
- package/dist/common/util/__tests__/string.test.js +0 -82
- package/dist/common/util/__tests__/string.test.js.map +0 -1
- package/dist/common/util/array.d.ts +0 -7
- package/dist/common/util/array.d.ts.map +0 -1
- package/dist/common/util/array.js +0 -32
- package/dist/common/util/array.js.map +0 -1
- package/dist/common/util/changes.d.ts +0 -9
- package/dist/common/util/changes.d.ts.map +0 -1
- package/dist/common/util/changes.js +0 -87
- package/dist/common/util/changes.js.map +0 -1
- package/dist/common/util/credentials.d.ts +0 -26
- package/dist/common/util/credentials.d.ts.map +0 -1
- package/dist/common/util/credentials.js +0 -24
- package/dist/common/util/credentials.js.map +0 -1
- package/dist/common/util/currency.d.ts +0 -15
- package/dist/common/util/currency.d.ts.map +0 -1
- package/dist/common/util/currency.js +0 -23
- package/dist/common/util/currency.js.map +0 -1
- package/dist/common/util/dates.d.ts +0 -11
- package/dist/common/util/dates.d.ts.map +0 -1
- package/dist/common/util/dates.js +0 -22
- package/dist/common/util/dates.js.map +0 -1
- package/dist/common/util/file.d.ts +0 -171
- package/dist/common/util/file.d.ts.map +0 -1
- package/dist/common/util/file.js +0 -216
- package/dist/common/util/file.js.map +0 -1
- package/dist/common/util/git.d.ts +0 -7
- package/dist/common/util/git.d.ts.map +0 -1
- package/dist/common/util/git.js +0 -81
- package/dist/common/util/git.js.map +0 -1
- package/dist/common/util/logger.d.ts +0 -9
- package/dist/common/util/logger.d.ts.map +0 -1
- package/dist/common/util/logger.js +0 -52
- package/dist/common/util/logger.js.map +0 -1
- package/dist/common/util/lru-cache.d.ts +0 -31
- package/dist/common/util/lru-cache.d.ts.map +0 -1
- package/dist/common/util/lru-cache.js +0 -68
- package/dist/common/util/lru-cache.js.map +0 -1
- package/dist/common/util/messages.d.ts +0 -12
- package/dist/common/util/messages.d.ts.map +0 -1
- package/dist/common/util/messages.js +0 -81
- package/dist/common/util/messages.js.map +0 -1
- package/dist/common/util/min-heap.d.ts +0 -16
- package/dist/common/util/min-heap.d.ts.map +0 -1
- package/dist/common/util/min-heap.js +0 -73
- package/dist/common/util/min-heap.js.map +0 -1
- package/dist/common/util/object.d.ts +0 -19
- package/dist/common/util/object.d.ts.map +0 -1
- package/dist/common/util/object.js +0 -91
- package/dist/common/util/object.js.map +0 -1
- package/dist/common/util/patch.d.ts +0 -2
- package/dist/common/util/patch.d.ts.map +0 -1
- package/dist/common/util/patch.js +0 -215
- package/dist/common/util/patch.js.map +0 -1
- package/dist/common/util/promise.d.ts +0 -17
- package/dist/common/util/promise.d.ts.map +0 -1
- package/dist/common/util/promise.js +0 -51
- package/dist/common/util/promise.js.map +0 -1
- package/dist/common/util/random.d.ts +0 -2
- package/dist/common/util/random.d.ts.map +0 -1
- package/dist/common/util/random.js +0 -17
- package/dist/common/util/random.js.map +0 -1
- package/dist/common/util/referral.d.ts +0 -2
- package/dist/common/util/referral.d.ts.map +0 -1
- package/dist/common/util/referral.js +0 -6
- package/dist/common/util/referral.js.map +0 -1
- package/dist/common/util/saxy.d.ts +0 -179
- package/dist/common/util/saxy.d.ts.map +0 -1
- package/dist/common/util/saxy.js +0 -548
- package/dist/common/util/saxy.js.map +0 -1
- package/dist/common/util/string.d.ts +0 -80
- package/dist/common/util/string.d.ts.map +0 -1
- package/dist/common/util/string.js +0 -275
- package/dist/common/util/string.js.map +0 -1
- package/dist/common/util/stripe.d.ts +0 -4
- package/dist/common/util/stripe.d.ts.map +0 -1
- package/dist/common/util/stripe.js +0 -22
- package/dist/common/util/stripe.js.map +0 -1
- package/dist/common/util/sync-failure.d.ts +0 -2
- package/dist/common/util/sync-failure.d.ts.map +0 -1
- package/dist/common/util/sync-failure.js +0 -57
- package/dist/common/util/sync-failure.js.map +0 -1
- package/dist/common/websockets/websocket-client.d.ts +0 -43
- package/dist/common/websockets/websocket-client.d.ts.map +0 -1
- package/dist/common/websockets/websocket-client.js +0 -216
- package/dist/common/websockets/websocket-client.js.map +0 -1
- package/dist/common/websockets/websocket-schema.d.ts +0 -3679
- package/dist/common/websockets/websocket-schema.d.ts.map +0 -1
- package/dist/common/websockets/websocket-schema.js +0 -55
- package/dist/common/websockets/websocket-schema.js.map +0 -1
- package/dist/config.d.ts +0 -4
- package/dist/config.js +0 -12
- package/dist/config.js.map +0 -1
- package/dist/create-template-project.d.ts +0 -1
- package/dist/create-template-project.js +0 -131
- package/dist/create-template-project.js.map +0 -1
- package/dist/credentials.d.ts +0 -4
- package/dist/credentials.js +0 -44
- package/dist/credentials.js.map +0 -1
- package/dist/dev-process-manager.d.ts +0 -10
- package/dist/dev-process-manager.js +0 -56
- package/dist/dev-process-manager.js.map +0 -1
- package/dist/display.d.ts +0 -9
- package/dist/display.js +0 -137
- package/dist/display.js.map +0 -1
- package/dist/fingerprint.d.ts +0 -1
- package/dist/fingerprint.js +0 -48
- package/dist/fingerprint.js.map +0 -1
- package/dist/index.d.ts +0 -2
- package/dist/index.js +0 -128
- package/dist/index.js.map +0 -1
- package/dist/json-config/hooks.d.ts +0 -9
- package/dist/json-config/hooks.js +0 -60
- package/dist/json-config/hooks.js.map +0 -1
- package/dist/json-config/parser.d.ts +0 -7
- package/dist/json-config/parser.js +0 -54
- package/dist/json-config/parser.js.map +0 -1
- package/dist/menu.d.ts +0 -14
- package/dist/menu.js +0 -344
- package/dist/menu.js.map +0 -1
- package/dist/project-files.d.ts +0 -104
- package/dist/project-files.js +0 -621
- package/dist/project-files.js.map +0 -1
- package/dist/rage-detectors.d.ts +0 -15
- package/dist/rage-detectors.js +0 -55
- package/dist/rage-detectors.js.map +0 -1
- package/dist/startup-process-handler.d.ts +0 -1
- package/dist/startup-process-handler.js +0 -25
- package/dist/startup-process-handler.js.map +0 -1
- package/dist/terminal/background.d.ts +0 -12
- package/dist/terminal/background.js +0 -148
- package/dist/terminal/background.js.map +0 -1
- package/dist/terminal/base.d.ts +0 -41
- package/dist/terminal/base.js +0 -553
- package/dist/terminal/base.js.map +0 -1
- package/dist/tool-handlers.d.ts +0 -31
- package/dist/tool-handlers.js +0 -275
- package/dist/tool-handlers.js.map +0 -1
- package/dist/types.d.ts +0 -15
- package/dist/types.js +0 -3
- package/dist/types.js.map +0 -1
- package/dist/update-codebuff.d.ts +0 -1
- package/dist/update-codebuff.js +0 -169
- package/dist/update-codebuff.js.map +0 -1
- package/dist/utils/__tests__/background-process-manager.test.d.ts +0 -1
- package/dist/utils/__tests__/background-process-manager.test.js +0 -326
- package/dist/utils/__tests__/background-process-manager.test.js.map +0 -1
- package/dist/utils/__tests__/rage-detector.test.d.ts +0 -1
- package/dist/utils/__tests__/rage-detector.test.js +0 -450
- package/dist/utils/__tests__/rage-detector.test.js.map +0 -1
- package/dist/utils/__tests__/response-example-4-files.txt +0 -621
- package/dist/utils/__tests__/tool-renderers.test.d.ts +0 -1
- package/dist/utils/__tests__/tool-renderers.test.js +0 -83
- package/dist/utils/__tests__/tool-renderers.test.js.map +0 -1
- package/dist/utils/__tests__/xml-stream-parser.test.d.ts +0 -1
- package/dist/utils/__tests__/xml-stream-parser.test.js +0 -255
- package/dist/utils/__tests__/xml-stream-parser.test.js.map +0 -1
- package/dist/utils/analytics.d.ts +0 -7
- package/dist/utils/analytics.js +0 -132
- package/dist/utils/analytics.js.map +0 -1
- package/dist/utils/detect-shell.d.ts +0 -1
- package/dist/utils/detect-shell.js +0 -65
- package/dist/utils/detect-shell.js.map +0 -1
- package/dist/utils/git.d.ts +0 -13
- package/dist/utils/git.js +0 -143
- package/dist/utils/git.js.map +0 -1
- package/dist/utils/logger.d.ts +0 -21
- package/dist/utils/logger.js +0 -109
- package/dist/utils/logger.js.map +0 -1
- package/dist/utils/rage-detector.d.ts +0 -32
- package/dist/utils/rage-detector.js +0 -143
- package/dist/utils/rage-detector.js.map +0 -1
- package/dist/utils/spinner.d.ts +0 -13
- package/dist/utils/spinner.js +0 -94
- package/dist/utils/spinner.js.map +0 -1
- package/dist/utils/system-info.d.ts +0 -8
- package/dist/utils/system-info.js +0 -22
- package/dist/utils/system-info.js.map +0 -1
- package/dist/utils/tool-renderers.d.ts +0 -16
- package/dist/utils/tool-renderers.js +0 -216
- package/dist/utils/tool-renderers.js.map +0 -1
- package/dist/utils/with-hang-detection.d.ts +0 -1
- package/dist/utils/with-hang-detection.js +0 -18
- package/dist/utils/with-hang-detection.js.map +0 -1
- package/dist/utils/xml-stream-parser.d.ts +0 -9
- package/dist/utils/xml-stream-parser.js +0 -143
- package/dist/utils/xml-stream-parser.js.map +0 -1
- package/dist/web-scraper.d.ts +0 -3
- package/dist/web-scraper.js +0 -59
- package/dist/web-scraper.js.map +0 -1
- package/dist/workers/checkpoint-worker.d.ts +0 -1
- package/dist/workers/checkpoint-worker.js +0 -51
- package/dist/workers/checkpoint-worker.js.map +0 -1
- package/dist/workers/project-context.d.ts +0 -1
- package/dist/workers/project-context.js +0 -27
- package/dist/workers/project-context.js.map +0 -1
package/index.js
ADDED
|
@@ -0,0 +1,334 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
const fs = require('fs')
|
|
4
|
+
const path = require('path')
|
|
5
|
+
const os = require('os')
|
|
6
|
+
const { spawn, execSync } = require('child_process')
|
|
7
|
+
const https = require('https')
|
|
8
|
+
const zlib = require('zlib')
|
|
9
|
+
const tar = require('tar')
|
|
10
|
+
|
|
11
|
+
const CONFIG = {
|
|
12
|
+
homeDir: os.homedir(),
|
|
13
|
+
configDir: path.join(os.homedir(), '.config', 'manicode'),
|
|
14
|
+
binaryName: process.platform === 'win32' ? 'codebuff.exe' : 'codebuff',
|
|
15
|
+
githubRepo: 'CodebuffAI/codebuff-community',
|
|
16
|
+
userAgent: 'codebuff-cli',
|
|
17
|
+
requestTimeout: 10000,
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
CONFIG.binaryPath = path.join(CONFIG.configDir, CONFIG.binaryName)
|
|
21
|
+
|
|
22
|
+
// Platform target mapping
|
|
23
|
+
const PLATFORM_TARGETS = {
|
|
24
|
+
'linux-x64': 'codebuff-linux-x64.tar.gz',
|
|
25
|
+
'linux-arm64': 'codebuff-linux-arm64.tar.gz',
|
|
26
|
+
'darwin-x64': 'codebuff-darwin-x64.tar.gz',
|
|
27
|
+
'darwin-arm64': 'codebuff-darwin-arm64.tar.gz',
|
|
28
|
+
'win32-x64': 'codebuff-win32-x64.tar.gz',
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
// Terminal utilities
|
|
32
|
+
const term = {
|
|
33
|
+
clearLine: () => {
|
|
34
|
+
if (process.stderr.isTTY) {
|
|
35
|
+
process.stderr.write('\r\x1b[K')
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
write: (text) => {
|
|
39
|
+
term.clearLine()
|
|
40
|
+
process.stderr.write(text)
|
|
41
|
+
},
|
|
42
|
+
writeLine: (text) => {
|
|
43
|
+
term.clearLine()
|
|
44
|
+
process.stderr.write(text + '\n')
|
|
45
|
+
},
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
// Utility functions
|
|
49
|
+
function httpGet(url, options = {}) {
|
|
50
|
+
return new Promise((resolve, reject) => {
|
|
51
|
+
const parsedUrl = new URL(url)
|
|
52
|
+
const reqOptions = {
|
|
53
|
+
hostname: parsedUrl.hostname,
|
|
54
|
+
path: parsedUrl.pathname + parsedUrl.search,
|
|
55
|
+
headers: {
|
|
56
|
+
'User-Agent': CONFIG.userAgent,
|
|
57
|
+
...options.headers,
|
|
58
|
+
},
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
// Add GitHub token if available
|
|
62
|
+
const token = process.env.GITHUB_TOKEN
|
|
63
|
+
if (token) {
|
|
64
|
+
console.log('Using your GITHUB_TOKEN to download the latest version.')
|
|
65
|
+
reqOptions.headers.Authorization = `Bearer ${token}`
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
const req = https.get(reqOptions, (res) => {
|
|
69
|
+
if (res.statusCode === 302 || res.statusCode === 301) {
|
|
70
|
+
return httpGet(new URL(res.headers.location, url).href, options)
|
|
71
|
+
.then(resolve)
|
|
72
|
+
.catch(reject)
|
|
73
|
+
}
|
|
74
|
+
resolve(res)
|
|
75
|
+
})
|
|
76
|
+
|
|
77
|
+
req.on('error', reject)
|
|
78
|
+
|
|
79
|
+
const timeout = options.timeout || CONFIG.requestTimeout
|
|
80
|
+
req.setTimeout(timeout, () => {
|
|
81
|
+
req.destroy()
|
|
82
|
+
reject(new Error('Request timeout'))
|
|
83
|
+
})
|
|
84
|
+
})
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
async function getLatestVersion() {
|
|
88
|
+
const res = await httpGet(
|
|
89
|
+
`https://api.github.com/repos/${CONFIG.githubRepo}/releases/latest`
|
|
90
|
+
)
|
|
91
|
+
|
|
92
|
+
/* ── simple rate-limit fallback ─────────────────────────── */
|
|
93
|
+
if (res.statusCode === 403 && res.headers['x-ratelimit-remaining'] === '0') {
|
|
94
|
+
term.writeLine(
|
|
95
|
+
'GitHub API rate-limit reached. Skipping version check – either wait an hour or set GITHUB_TOKEN and try again.'
|
|
96
|
+
)
|
|
97
|
+
return null
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
if (res.statusCode !== 200) return null // other errors
|
|
101
|
+
|
|
102
|
+
const body = await streamToString(res)
|
|
103
|
+
return JSON.parse(body).tag_name?.replace(/^v/, '') || null
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
function streamToString(stream) {
|
|
107
|
+
return new Promise((resolve, reject) => {
|
|
108
|
+
let data = ''
|
|
109
|
+
stream.on('data', (chunk) => (data += chunk))
|
|
110
|
+
stream.on('end', () => resolve(data))
|
|
111
|
+
stream.on('error', reject)
|
|
112
|
+
})
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
function getCurrentVersion() {
|
|
116
|
+
if (!fs.existsSync(CONFIG.binaryPath)) return null
|
|
117
|
+
|
|
118
|
+
try {
|
|
119
|
+
const result = execSync(`"${CONFIG.binaryPath}" --version`, {
|
|
120
|
+
cwd: os.homedir(),
|
|
121
|
+
encoding: 'utf-8',
|
|
122
|
+
stdio: 'pipe',
|
|
123
|
+
timeout: 1000,
|
|
124
|
+
})
|
|
125
|
+
return result.trim()
|
|
126
|
+
} catch (error) {
|
|
127
|
+
return null
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
function compareVersions(v1, v2) {
|
|
132
|
+
if (!v1 || !v2) return 0
|
|
133
|
+
|
|
134
|
+
const parts1 = v1.split('.').map(Number)
|
|
135
|
+
const parts2 = v2.split('.').map(Number)
|
|
136
|
+
|
|
137
|
+
for (let i = 0; i < Math.max(parts1.length, parts2.length); i++) {
|
|
138
|
+
const p1 = parts1[i] || 0
|
|
139
|
+
const p2 = parts2[i] || 0
|
|
140
|
+
|
|
141
|
+
if (p1 < p2) return -1
|
|
142
|
+
if (p1 > p2) return 1
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
return 0
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
function formatBytes(bytes) {
|
|
149
|
+
if (bytes === 0) return '0 B'
|
|
150
|
+
const k = 1024
|
|
151
|
+
const sizes = ['B', 'KB', 'MB', 'GB']
|
|
152
|
+
const i = Math.floor(Math.log(bytes) / Math.log(k))
|
|
153
|
+
return parseFloat((bytes / Math.pow(k, i)).toFixed(1)) + ' ' + sizes[i]
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
function createProgressBar(percentage, width = 30) {
|
|
157
|
+
const filled = Math.round((width * percentage) / 100)
|
|
158
|
+
const empty = width - filled
|
|
159
|
+
return '[' + '█'.repeat(filled) + '░'.repeat(empty) + ']'
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
async function downloadBinary(version) {
|
|
163
|
+
const platformKey = `${process.platform}-${process.arch}`
|
|
164
|
+
const fileName = PLATFORM_TARGETS[platformKey]
|
|
165
|
+
|
|
166
|
+
if (!fileName) {
|
|
167
|
+
throw new Error(`Unsupported platform: ${process.platform} ${process.arch}`)
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
const downloadUrl = `https://github.com/${CONFIG.githubRepo}/releases/download/v${version}/${fileName}`
|
|
171
|
+
|
|
172
|
+
// Ensure config directory exists
|
|
173
|
+
fs.mkdirSync(CONFIG.configDir, { recursive: true })
|
|
174
|
+
|
|
175
|
+
term.write('Downloading...')
|
|
176
|
+
|
|
177
|
+
const res = await httpGet(downloadUrl)
|
|
178
|
+
|
|
179
|
+
if (res.statusCode !== 200) {
|
|
180
|
+
throw new Error(`Download failed: HTTP ${res.statusCode}`)
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
const totalSize = parseInt(res.headers['content-length'] || '0', 10)
|
|
184
|
+
let downloadedSize = 0
|
|
185
|
+
let lastProgressTime = Date.now()
|
|
186
|
+
|
|
187
|
+
res.on('data', (chunk) => {
|
|
188
|
+
downloadedSize += chunk.length
|
|
189
|
+
const now = Date.now()
|
|
190
|
+
if (now - lastProgressTime >= 100 || downloadedSize === totalSize) {
|
|
191
|
+
lastProgressTime = now
|
|
192
|
+
if (totalSize > 0) {
|
|
193
|
+
const pct = Math.round((downloadedSize / totalSize) * 100)
|
|
194
|
+
term.write(
|
|
195
|
+
`Downloading... ${createProgressBar(pct)} ${pct}% of ${formatBytes(
|
|
196
|
+
totalSize
|
|
197
|
+
)}`
|
|
198
|
+
)
|
|
199
|
+
} else {
|
|
200
|
+
term.write(`Downloading... ${formatBytes(downloadedSize)}`)
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
})
|
|
204
|
+
|
|
205
|
+
await new Promise((resolve, reject) => {
|
|
206
|
+
res
|
|
207
|
+
.pipe(zlib.createGunzip())
|
|
208
|
+
.pipe(tar.x({ cwd: CONFIG.configDir }))
|
|
209
|
+
.on('finish', resolve)
|
|
210
|
+
.on('error', reject)
|
|
211
|
+
})
|
|
212
|
+
|
|
213
|
+
try {
|
|
214
|
+
// Find the extracted binary - it should be named "codebuff" or "codebuff.exe"
|
|
215
|
+
const files = fs.readdirSync(CONFIG.configDir)
|
|
216
|
+
const extractedPath = path.join(CONFIG.configDir, CONFIG.binaryName)
|
|
217
|
+
|
|
218
|
+
if (fs.existsSync(extractedPath)) {
|
|
219
|
+
if (process.platform !== 'win32') {
|
|
220
|
+
fs.chmodSync(extractedPath, 0o755)
|
|
221
|
+
}
|
|
222
|
+
} else {
|
|
223
|
+
throw new Error(
|
|
224
|
+
`Binary not found after extraction. Expected: ${extractedPath}, Available files: ${files.join(', ')}`
|
|
225
|
+
)
|
|
226
|
+
}
|
|
227
|
+
} catch (error) {
|
|
228
|
+
term.clearLine()
|
|
229
|
+
console.error(`Extraction failed: ${error.message}`)
|
|
230
|
+
process.exit(1)
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
term.clearLine()
|
|
234
|
+
console.log('Download complete! Starting Codebuff...')
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
async function ensureBinaryExists() {
|
|
238
|
+
if (!fs.existsSync(CONFIG.binaryPath)) {
|
|
239
|
+
const version = await getLatestVersion()
|
|
240
|
+
if (!version) {
|
|
241
|
+
console.error('❌ Failed to determine latest version')
|
|
242
|
+
console.error('Please check your internet connection and try again')
|
|
243
|
+
process.exit(1)
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
try {
|
|
247
|
+
await downloadBinary(version)
|
|
248
|
+
} catch (error) {
|
|
249
|
+
term.clearLine()
|
|
250
|
+
console.error('❌ Failed to download codebuff:', error.message)
|
|
251
|
+
console.error('Please try again later.')
|
|
252
|
+
process.exit(1)
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
async function checkForUpdates(runningProcess, exitListener) {
|
|
258
|
+
try {
|
|
259
|
+
const currentVersion = getCurrentVersion()
|
|
260
|
+
if (!currentVersion) return
|
|
261
|
+
|
|
262
|
+
const latestVersion = await getLatestVersion()
|
|
263
|
+
if (!latestVersion) return
|
|
264
|
+
|
|
265
|
+
if (compareVersions(currentVersion, latestVersion) < 0) {
|
|
266
|
+
term.clearLine()
|
|
267
|
+
|
|
268
|
+
// Remove the specific exit listener to prevent it from interfering with the update
|
|
269
|
+
runningProcess.removeListener('exit', exitListener)
|
|
270
|
+
|
|
271
|
+
// Kill the running process
|
|
272
|
+
runningProcess.kill('SIGTERM')
|
|
273
|
+
|
|
274
|
+
// Wait for the process to actually exit
|
|
275
|
+
await new Promise((resolve) => {
|
|
276
|
+
runningProcess.on('exit', resolve)
|
|
277
|
+
// Fallback timeout in case the process doesn't exit gracefully
|
|
278
|
+
setTimeout(() => {
|
|
279
|
+
if (!runningProcess.killed) {
|
|
280
|
+
runningProcess.kill('SIGKILL')
|
|
281
|
+
}
|
|
282
|
+
resolve()
|
|
283
|
+
}, 5000)
|
|
284
|
+
})
|
|
285
|
+
|
|
286
|
+
console.log(`Update available: ${currentVersion} → ${latestVersion}`)
|
|
287
|
+
|
|
288
|
+
await downloadBinary(latestVersion)
|
|
289
|
+
|
|
290
|
+
// Restart with new binary - this replaces the current process
|
|
291
|
+
const newChild = spawn(CONFIG.binaryPath, process.argv.slice(2), {
|
|
292
|
+
stdio: 'inherit',
|
|
293
|
+
detached: false,
|
|
294
|
+
})
|
|
295
|
+
|
|
296
|
+
// Set up exit handler for the new process
|
|
297
|
+
newChild.on('exit', (code) => {
|
|
298
|
+
process.exit(code || 0)
|
|
299
|
+
})
|
|
300
|
+
|
|
301
|
+
// Don't return - keep this function running to maintain the wrapper
|
|
302
|
+
return new Promise(() => {}) // Never resolves, keeps wrapper alive
|
|
303
|
+
}
|
|
304
|
+
} catch (error) {
|
|
305
|
+
// Silently ignore update check errors
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
async function main() {
|
|
310
|
+
await ensureBinaryExists()
|
|
311
|
+
|
|
312
|
+
// Start codebuff
|
|
313
|
+
const child = spawn(CONFIG.binaryPath, process.argv.slice(2), {
|
|
314
|
+
stdio: 'inherit',
|
|
315
|
+
})
|
|
316
|
+
|
|
317
|
+
// Store reference to the exit listener so we can remove it during updates
|
|
318
|
+
const exitListener = (code) => {
|
|
319
|
+
process.exit(code || 0)
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
child.on('exit', exitListener)
|
|
323
|
+
|
|
324
|
+
// Check for updates in background
|
|
325
|
+
setTimeout(() => {
|
|
326
|
+
checkForUpdates(child, exitListener)
|
|
327
|
+
}, 100)
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
// Run the main function
|
|
331
|
+
main().catch((error) => {
|
|
332
|
+
console.error('❌ Unexpected error:', error.message)
|
|
333
|
+
process.exit(1)
|
|
334
|
+
})
|
package/package.json
CHANGED
|
@@ -1,85 +1,36 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "codebuff",
|
|
3
|
-
"version": "1.0.
|
|
4
|
-
"description": "AI
|
|
3
|
+
"version": "1.0.335",
|
|
4
|
+
"description": "AI coding agent",
|
|
5
5
|
"license": "MIT",
|
|
6
|
-
"main": "dist/index.js",
|
|
7
|
-
"types": "dist/index.d.ts",
|
|
8
6
|
"bin": {
|
|
9
|
-
"codebuff": "
|
|
10
|
-
},
|
|
11
|
-
"scripts": {
|
|
12
|
-
"prepublishOnly": "nx clean npm-app && nx build npm-app && nx run npm-app:prepublish",
|
|
13
|
-
"postpublish": "echo \"const fs=require('fs');fs.copyFileSync('temp.package.json','package.json');fs.unlinkSync('temp.package.json');\" | bun run -",
|
|
14
|
-
"format": "prettier --write \"**/*.{ts,tsx,json,md}\"",
|
|
15
|
-
"test": "jest",
|
|
16
|
-
"start": "nx run npm-app:start",
|
|
17
|
-
"start-js": "nx clean npm-app && nx build npm-app && nx run npm-app:start-js",
|
|
18
|
-
"start-max": "nx run npm-app:start-max",
|
|
19
|
-
"start-lite": "nx run npm-app:start-lite",
|
|
20
|
-
"start-ask": "nx run npm-app:start-ask",
|
|
21
|
-
"start-dir": "nx run npm-app:start-dir",
|
|
22
|
-
"start-experimental": "nx run npm-app:start-experimental",
|
|
23
|
-
"start-manifold": "nx run npm-app:start-manifold",
|
|
24
|
-
"start-litestar": "nx run npm-app:start-litestar",
|
|
25
|
-
"start-jpcsp": "nx run npm-app:start-jpcsp",
|
|
26
|
-
"start-vscode": "nx run npm-app:start-vscode",
|
|
27
|
-
"start-nushell": "nx run npm-app:start-nushell",
|
|
28
|
-
"start-prod": "nx run npm-app:start-prod",
|
|
29
|
-
"typecheck-this-package": "tsc --noEmit && tsc-alias",
|
|
30
|
-
"typecheck": "npm run build",
|
|
31
|
-
"build": "nx build npm-app"
|
|
7
|
+
"codebuff": "index.js"
|
|
32
8
|
},
|
|
33
9
|
"files": [
|
|
34
|
-
"
|
|
10
|
+
"index.js",
|
|
35
11
|
"README.md"
|
|
36
12
|
],
|
|
13
|
+
"os": [
|
|
14
|
+
"darwin",
|
|
15
|
+
"linux",
|
|
16
|
+
"win32"
|
|
17
|
+
],
|
|
18
|
+
"cpu": [
|
|
19
|
+
"x64",
|
|
20
|
+
"arm64"
|
|
21
|
+
],
|
|
37
22
|
"engines": {
|
|
38
|
-
"node": ">=
|
|
23
|
+
"node": ">=16"
|
|
39
24
|
},
|
|
40
25
|
"dependencies": {
|
|
41
|
-
"
|
|
42
|
-
"@types/micromatch": "^4.0.9",
|
|
43
|
-
"@vscode/ripgrep": "1.15.9",
|
|
44
|
-
"ai": "4.3.16",
|
|
45
|
-
"axios": "1.7.4",
|
|
46
|
-
"code-map": "1.0.0",
|
|
47
|
-
"commander": "^13.1.0",
|
|
48
|
-
"diff": "5.2.0",
|
|
49
|
-
"git-url-parse": "^16.1.0",
|
|
50
|
-
"ignore": "7.0.3",
|
|
51
|
-
"isomorphic-git": "^1.29.0",
|
|
52
|
-
"jsonc-parser": "^3.3.1",
|
|
53
|
-
"lodash": "*",
|
|
54
|
-
"micromatch": "^4.0.8",
|
|
55
|
-
"nanoid": "5.0.7",
|
|
56
|
-
"onetime": "5.1.2",
|
|
57
|
-
"picocolors": "1.1.0",
|
|
58
|
-
"pino": "9.4.0",
|
|
59
|
-
"posthog-node": "4.17.2",
|
|
60
|
-
"puppeteer-core": "^24.2.0",
|
|
61
|
-
"systeminformation": "5.23.4",
|
|
62
|
-
"tree-sitter": "0.21.1",
|
|
63
|
-
"tree-sitter-c": "0.23.0",
|
|
64
|
-
"tree-sitter-c-sharp": "0.23.0",
|
|
65
|
-
"tree-sitter-cpp": "0.23.0",
|
|
66
|
-
"tree-sitter-go": "0.23.1",
|
|
67
|
-
"tree-sitter-java": "0.23.2",
|
|
68
|
-
"tree-sitter-javascript": "0.23.0",
|
|
69
|
-
"tree-sitter-php": "0.23.2",
|
|
70
|
-
"tree-sitter-python": "0.23.2",
|
|
71
|
-
"tree-sitter-ruby": "0.23.0",
|
|
72
|
-
"tree-sitter-rust": "0.23.0",
|
|
73
|
-
"tree-sitter-typescript": "0.23.0",
|
|
74
|
-
"ts-pattern": "5.3.1",
|
|
75
|
-
"ws": "8.18.0",
|
|
76
|
-
"zod": "3.23.8"
|
|
26
|
+
"tar": "^6.2.0"
|
|
77
27
|
},
|
|
78
|
-
"
|
|
79
|
-
"
|
|
28
|
+
"repository": {
|
|
29
|
+
"type": "git",
|
|
30
|
+
"url": "https://github.com/CodebuffAI/codebuff-community.git"
|
|
80
31
|
},
|
|
81
|
-
"
|
|
82
|
-
|
|
83
|
-
"
|
|
84
|
-
|
|
85
|
-
}
|
|
32
|
+
"homepage": "https://codebuff.com",
|
|
33
|
+
"publishConfig": {
|
|
34
|
+
"access": "public"
|
|
35
|
+
}
|
|
36
|
+
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,174 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
// @ts-ignore
|
|
4
|
-
const bun_test_1 = require("bun:test");
|
|
5
|
-
const picocolors_1 = require("picocolors");
|
|
6
|
-
const display_1 = require("../display");
|
|
7
|
-
const PREFIX = '.\r\n';
|
|
8
|
-
// Helper function to simulate getLastTwoLines behavior
|
|
9
|
-
function getLastTwoLines(str) {
|
|
10
|
-
return PREFIX + str.split('\r\n').slice(-2).join('\r\n');
|
|
11
|
-
}
|
|
12
|
-
(0, bun_test_1.describe)('squashNewlines', () => {
|
|
13
|
-
(0, bun_test_1.describe)('when called with getLastTwoLines(previous) + chunk', () => {
|
|
14
|
-
(0, bun_test_1.it)('should handle simple strings', () => {
|
|
15
|
-
const previous = 'line1\r\nline2\r\nline3';
|
|
16
|
-
const chunk = '\r\nline4\r\nline5';
|
|
17
|
-
const lastTwoLines = getLastTwoLines(previous);
|
|
18
|
-
const combined = lastTwoLines + chunk;
|
|
19
|
-
const squashed = (0, display_1.squashNewlines)(combined);
|
|
20
|
-
(0, bun_test_1.expect)(squashed).toEqual(lastTwoLines + chunk);
|
|
21
|
-
});
|
|
22
|
-
(0, bun_test_1.it)('should handle when chunk has empty lines', () => {
|
|
23
|
-
const previous = 'content\r\nmore content';
|
|
24
|
-
const chunk = '\r\n\r\n\r\nfinal line';
|
|
25
|
-
const lastTwoLines = getLastTwoLines(previous);
|
|
26
|
-
const combined = lastTwoLines + chunk;
|
|
27
|
-
const squashed = (0, display_1.squashNewlines)(combined);
|
|
28
|
-
(0, bun_test_1.expect)(squashed).toEqual(lastTwoLines + '\r\n\r\nfinal line');
|
|
29
|
-
});
|
|
30
|
-
(0, bun_test_1.it)('should handle when chunk has whitespace lines', () => {
|
|
31
|
-
const previous = 'first\r\nsecond\r\nthird';
|
|
32
|
-
const chunk = '\r\n \r\n\t\r\nfourth';
|
|
33
|
-
const lastTwoLines = getLastTwoLines(previous);
|
|
34
|
-
const combined = lastTwoLines + chunk;
|
|
35
|
-
const squashed = (0, display_1.squashNewlines)(combined);
|
|
36
|
-
(0, bun_test_1.expect)(squashed).toEqual(lastTwoLines + '\r\n \r\n\tfourth');
|
|
37
|
-
});
|
|
38
|
-
(0, bun_test_1.it)('should handle when previous is empty', () => {
|
|
39
|
-
const previous = '';
|
|
40
|
-
const chunk = 'some\r\ncontent';
|
|
41
|
-
const lastTwoLines = getLastTwoLines(previous);
|
|
42
|
-
const combined = lastTwoLines + chunk;
|
|
43
|
-
const squashed = (0, display_1.squashNewlines)(combined);
|
|
44
|
-
(0, bun_test_1.expect)(squashed).toEqual(lastTwoLines + chunk);
|
|
45
|
-
});
|
|
46
|
-
(0, bun_test_1.it)('should handle when chunk is empty', () => {
|
|
47
|
-
const previous = 'some\r\ncontent\r\nhere';
|
|
48
|
-
const chunk = '';
|
|
49
|
-
const lastTwoLines = getLastTwoLines(previous);
|
|
50
|
-
const combined = lastTwoLines + chunk;
|
|
51
|
-
const squashed = (0, display_1.squashNewlines)(combined);
|
|
52
|
-
(0, bun_test_1.expect)(squashed).toEqual(lastTwoLines + chunk);
|
|
53
|
-
});
|
|
54
|
-
(0, bun_test_1.it)('should handle when both strings are empty', () => {
|
|
55
|
-
const previous = '';
|
|
56
|
-
const chunk = '';
|
|
57
|
-
const lastTwoLines = getLastTwoLines(previous);
|
|
58
|
-
const combined = lastTwoLines + chunk;
|
|
59
|
-
const squashed = (0, display_1.squashNewlines)(combined);
|
|
60
|
-
(0, bun_test_1.expect)(squashed).toEqual(lastTwoLines + chunk);
|
|
61
|
-
});
|
|
62
|
-
(0, bun_test_1.it)('should handle complex mixed content', () => {
|
|
63
|
-
const previous = 'alpha\r\nbeta\r\ngamma\r\ndelta';
|
|
64
|
-
const chunk = '\r\n\r\n \r\n\t\r\n\r\nepsilon\r\nzeta';
|
|
65
|
-
const lastTwoLines = getLastTwoLines(previous);
|
|
66
|
-
const combined = lastTwoLines + chunk;
|
|
67
|
-
const squashed = (0, display_1.squashNewlines)(combined);
|
|
68
|
-
(0, bun_test_1.expect)(squashed).toEqual(lastTwoLines + '\r\n\r\n \tepsilon\r\nzeta');
|
|
69
|
-
});
|
|
70
|
-
(0, bun_test_1.it)('should handle when previous has only newlines', () => {
|
|
71
|
-
const previous = '\r\n\r\n\r\n';
|
|
72
|
-
const chunk = 'content';
|
|
73
|
-
const lastTwoLines = getLastTwoLines(previous);
|
|
74
|
-
const combined = lastTwoLines + chunk;
|
|
75
|
-
const squashed = (0, display_1.squashNewlines)(combined);
|
|
76
|
-
(0, bun_test_1.expect)(squashed).toEqual(lastTwoLines + chunk);
|
|
77
|
-
});
|
|
78
|
-
(0, bun_test_1.it)('should handle when chunk has only newlines', () => {
|
|
79
|
-
const previous = 'content\r\nmore';
|
|
80
|
-
const chunk = '\r\n\r\n\r\n';
|
|
81
|
-
const lastTwoLines = getLastTwoLines(previous);
|
|
82
|
-
const combined = lastTwoLines + chunk;
|
|
83
|
-
const squashed = (0, display_1.squashNewlines)(combined);
|
|
84
|
-
(0, bun_test_1.expect)(squashed).toEqual(lastTwoLines + '\r\n\r\n');
|
|
85
|
-
});
|
|
86
|
-
(0, bun_test_1.it)('should handle single line inputs', () => {
|
|
87
|
-
const previous = 'single line';
|
|
88
|
-
const chunk = 'another line';
|
|
89
|
-
const lastTwoLines = getLastTwoLines(previous);
|
|
90
|
-
const combined = lastTwoLines + chunk;
|
|
91
|
-
const squashed = (0, display_1.squashNewlines)(combined);
|
|
92
|
-
(0, bun_test_1.expect)(squashed).toEqual(lastTwoLines + chunk);
|
|
93
|
-
});
|
|
94
|
-
(0, bun_test_1.it)('should handle previous ends with whitespace lines', () => {
|
|
95
|
-
const previous = 'content\r\n \r\n\t';
|
|
96
|
-
const chunk = '\r\nmore content';
|
|
97
|
-
const lastTwoLines = getLastTwoLines(previous);
|
|
98
|
-
const combined = lastTwoLines + chunk;
|
|
99
|
-
const squashed = (0, display_1.squashNewlines)(combined);
|
|
100
|
-
(0, bun_test_1.expect)(squashed).toEqual(lastTwoLines + 'more content');
|
|
101
|
-
});
|
|
102
|
-
});
|
|
103
|
-
(0, bun_test_1.describe)('squashNewlines behavior verification', () => {
|
|
104
|
-
(0, bun_test_1.it)('should squash consecutive empty lines correctly', () => {
|
|
105
|
-
const input = PREFIX + 'line1\r\n\r\n\r\n\r\nline5';
|
|
106
|
-
const result = (0, display_1.squashNewlines)(input);
|
|
107
|
-
// Should reduce multiple consecutive empty lines to at most 2
|
|
108
|
-
(0, bun_test_1.expect)(result).toBe(PREFIX + 'line1\r\n\r\nline5');
|
|
109
|
-
});
|
|
110
|
-
(0, bun_test_1.it)('should preserve single empty lines', () => {
|
|
111
|
-
const input = PREFIX + 'line1\r\n\r\nline3';
|
|
112
|
-
const result = (0, display_1.squashNewlines)(input);
|
|
113
|
-
(0, bun_test_1.expect)(result).toBe(input); // Should remain unchanged
|
|
114
|
-
});
|
|
115
|
-
});
|
|
116
|
-
(0, bun_test_1.describe)('error handling', () => {
|
|
117
|
-
(0, bun_test_1.it)('should throw error when input does not start with PREFIX', () => {
|
|
118
|
-
const invalidInput = 'invalid input without prefix';
|
|
119
|
-
(0, bun_test_1.expect)(() => (0, display_1.squashNewlines)(invalidInput)).toThrow(`Expected string to start with ${JSON.stringify(PREFIX)}`);
|
|
120
|
-
});
|
|
121
|
-
});
|
|
122
|
-
});
|
|
123
|
-
(0, bun_test_1.describe)('onlyWhitespace', () => {
|
|
124
|
-
(0, bun_test_1.it)('should return true for empty string', () => {
|
|
125
|
-
(0, bun_test_1.expect)((0, display_1.onlyWhitespace)('')).toBe(true);
|
|
126
|
-
});
|
|
127
|
-
(0, bun_test_1.it)('should return true for single space', () => {
|
|
128
|
-
(0, bun_test_1.expect)((0, display_1.onlyWhitespace)(' ')).toBe(true);
|
|
129
|
-
});
|
|
130
|
-
(0, bun_test_1.it)('should return true for multiple spaces', () => {
|
|
131
|
-
(0, bun_test_1.expect)((0, display_1.onlyWhitespace)(' ')).toBe(true);
|
|
132
|
-
});
|
|
133
|
-
(0, bun_test_1.it)('should return true for tab', () => {
|
|
134
|
-
(0, bun_test_1.expect)((0, display_1.onlyWhitespace)('\t')).toBe(true);
|
|
135
|
-
});
|
|
136
|
-
(0, bun_test_1.it)('should return true for newline', () => {
|
|
137
|
-
(0, bun_test_1.expect)((0, display_1.onlyWhitespace)('\n')).toBe(true);
|
|
138
|
-
});
|
|
139
|
-
(0, bun_test_1.it)('should return true for carriage return', () => {
|
|
140
|
-
(0, bun_test_1.expect)((0, display_1.onlyWhitespace)('\r')).toBe(true);
|
|
141
|
-
});
|
|
142
|
-
(0, bun_test_1.it)('should return true for ANSI escape sequences', () => {
|
|
143
|
-
(0, bun_test_1.expect)((0, display_1.onlyWhitespace)('\u001b[31m')).toBe(true); // Red color
|
|
144
|
-
(0, bun_test_1.expect)((0, display_1.onlyWhitespace)('\u001b[0m')).toBe(true); // Reset
|
|
145
|
-
});
|
|
146
|
-
(0, bun_test_1.it)('should return true for OSC sequences', () => {
|
|
147
|
-
const oscSequence = '\u001b]697;OSCUnlock=683fe5e7c2d2476bb61d4e0588c15eec\u0007\u001b]697;Dir=/Users/jahooma/codebuff\u0007';
|
|
148
|
-
(0, bun_test_1.expect)((0, display_1.onlyWhitespace)(oscSequence)).toBe(true);
|
|
149
|
-
});
|
|
150
|
-
(0, bun_test_1.it)('should return false for control characters', () => {
|
|
151
|
-
(0, bun_test_1.expect)((0, display_1.onlyWhitespace)('\u0000\u0001\u0002')).toBe(true); // Null, SOH, STX
|
|
152
|
-
(0, bun_test_1.expect)((0, display_1.onlyWhitespace)('\u007F')).toBe(true); // DEL
|
|
153
|
-
});
|
|
154
|
-
(0, bun_test_1.it)('should return true for zero-width characters', () => {
|
|
155
|
-
(0, bun_test_1.expect)((0, display_1.onlyWhitespace)('\u200B')).toBe(true);
|
|
156
|
-
(0, bun_test_1.expect)((0, display_1.onlyWhitespace)('\u200C')).toBe(true);
|
|
157
|
-
(0, bun_test_1.expect)((0, display_1.onlyWhitespace)('\u200D')).toBe(true);
|
|
158
|
-
});
|
|
159
|
-
(0, bun_test_1.it)('should return true for colored empty strings', () => {
|
|
160
|
-
(0, bun_test_1.expect)((0, display_1.onlyWhitespace)((0, picocolors_1.gray)(' '))).toBe(true);
|
|
161
|
-
});
|
|
162
|
-
(0, bun_test_1.it)('should return false for visible text', () => {
|
|
163
|
-
(0, bun_test_1.expect)((0, display_1.onlyWhitespace)('hello')).toBe(false);
|
|
164
|
-
(0, bun_test_1.expect)((0, display_1.onlyWhitespace)('a')).toBe(false);
|
|
165
|
-
(0, bun_test_1.expect)((0, display_1.onlyWhitespace)('123')).toBe(false);
|
|
166
|
-
});
|
|
167
|
-
(0, bun_test_1.describe)('real world examples', () => {
|
|
168
|
-
(0, bun_test_1.it)('should return false for end of terminal command', () => {
|
|
169
|
-
(0, bun_test_1.expect)((0, display_1.onlyWhitespace)('\u001b]697;OSCUnlock=683fe5e7c2d2476bb61d4e0588c15eec\u0007\u001b]697;Dir=/Users/jahooma/codebuff\u0007\u001b]697;Shell=bash\u0007\u001b]697;ShellPath=/bin/bash\u0007\u001b]697;PID=71631\u0007\u001b]697;ExitCode=0\u0007\u001b]697;TTY=/dev/ttys036\u0007\u001b]697;Log=\u0007\u001b]697;User=jahooma\u0007\u001b]697;OSCLock=683fe5e7c2d2476bb61d4e0588c15eec\u0007\u001b]697;PreExec\u0007\u001b]697;StartPrompt\u0007')).toBe(true);
|
|
170
|
-
(0, bun_test_1.expect)((0, display_1.onlyWhitespace)('\u001b]0;charles@charles-framework-13:~/github/codebuff\u001b\\\u001b]7;file://charles-framework-13/home/charles/github/codebuff\u001b\\\u001b[?2004h')).toBe(true);
|
|
171
|
-
});
|
|
172
|
-
});
|
|
173
|
-
});
|
|
174
|
-
//# sourceMappingURL=display.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"display.test.js","sourceRoot":"","sources":["../../src/__tests__/display.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|