bravecode-cli 0.1.45 → 0.1.46

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.
Files changed (103) hide show
  1. package/dist/cli-main.mjs +4 -3
  2. package/dist/cli-main.mjs.map +2 -2
  3. package/package.json +1 -1
  4. package/dist/autoModel.d.ts +0 -39
  5. package/dist/autoModel.d.ts.map +0 -1
  6. package/dist/autoModel.js +0 -127
  7. package/dist/autoModel.js.map +0 -1
  8. package/dist/bravecode +0 -22
  9. package/dist/cli.d.ts +0 -2
  10. package/dist/cli.d.ts.map +0 -1
  11. package/dist/cli.js +0 -468
  12. package/dist/cli.js.map +0 -1
  13. package/dist/core/agent/index.d.ts +0 -31
  14. package/dist/core/agent/index.d.ts.map +0 -1
  15. package/dist/core/agent/index.js +0 -339
  16. package/dist/core/agent/index.js.map +0 -1
  17. package/dist/core/config/index.d.ts +0 -54
  18. package/dist/core/config/index.d.ts.map +0 -1
  19. package/dist/core/config/index.js +0 -138
  20. package/dist/core/config/index.js.map +0 -1
  21. package/dist/core/context/index.d.ts +0 -20
  22. package/dist/core/context/index.d.ts.map +0 -1
  23. package/dist/core/context/index.js +0 -70
  24. package/dist/core/context/index.js.map +0 -1
  25. package/dist/core/mcp/index.d.ts +0 -32
  26. package/dist/core/mcp/index.d.ts.map +0 -1
  27. package/dist/core/mcp/index.js +0 -160
  28. package/dist/core/mcp/index.js.map +0 -1
  29. package/dist/core/permission/index.d.ts +0 -24
  30. package/dist/core/permission/index.d.ts.map +0 -1
  31. package/dist/core/permission/index.js +0 -96
  32. package/dist/core/permission/index.js.map +0 -1
  33. package/dist/core/plugin/index.d.ts +0 -44
  34. package/dist/core/plugin/index.d.ts.map +0 -1
  35. package/dist/core/plugin/index.js +0 -139
  36. package/dist/core/plugin/index.js.map +0 -1
  37. package/dist/core/session/index.d.ts +0 -23
  38. package/dist/core/session/index.d.ts.map +0 -1
  39. package/dist/core/session/index.js +0 -51
  40. package/dist/core/session/index.js.map +0 -1
  41. package/dist/core/share/index.d.ts +0 -28
  42. package/dist/core/share/index.d.ts.map +0 -1
  43. package/dist/core/share/index.js +0 -100
  44. package/dist/core/share/index.js.map +0 -1
  45. package/dist/core/snapshot/index.d.ts +0 -30
  46. package/dist/core/snapshot/index.d.ts.map +0 -1
  47. package/dist/core/snapshot/index.js +0 -141
  48. package/dist/core/snapshot/index.js.map +0 -1
  49. package/dist/core/tool/bash.d.ts +0 -8
  50. package/dist/core/tool/bash.d.ts.map +0 -1
  51. package/dist/core/tool/bash.js +0 -29
  52. package/dist/core/tool/bash.js.map +0 -1
  53. package/dist/core/tool/browser.d.ts +0 -5
  54. package/dist/core/tool/browser.d.ts.map +0 -1
  55. package/dist/core/tool/browser.js +0 -119
  56. package/dist/core/tool/browser.js.map +0 -1
  57. package/dist/core/tool/file.d.ts +0 -5
  58. package/dist/core/tool/file.d.ts.map +0 -1
  59. package/dist/core/tool/file.js +0 -79
  60. package/dist/core/tool/file.js.map +0 -1
  61. package/dist/core/tool/index.d.ts +0 -21
  62. package/dist/core/tool/index.d.ts.map +0 -1
  63. package/dist/core/tool/index.js +0 -90
  64. package/dist/core/tool/index.js.map +0 -1
  65. package/dist/core/tool/search.d.ts +0 -4
  66. package/dist/core/tool/search.d.ts.map +0 -1
  67. package/dist/core/tool/search.js +0 -107
  68. package/dist/core/tool/search.js.map +0 -1
  69. package/dist/core/tool/task.d.ts +0 -9
  70. package/dist/core/tool/task.d.ts.map +0 -1
  71. package/dist/core/tool/task.js +0 -54
  72. package/dist/core/tool/task.js.map +0 -1
  73. package/dist/core/tool/todowrite.d.ts +0 -3
  74. package/dist/core/tool/todowrite.d.ts.map +0 -1
  75. package/dist/core/tool/todowrite.js +0 -75
  76. package/dist/core/tool/todowrite.js.map +0 -1
  77. package/dist/core/tool/websearch.d.ts +0 -3
  78. package/dist/core/tool/websearch.d.ts.map +0 -1
  79. package/dist/core/tool/websearch.js +0 -46
  80. package/dist/core/tool/websearch.js.map +0 -1
  81. package/dist/core/tui/ChatTUI.d.ts +0 -16
  82. package/dist/core/tui/ChatTUI.d.ts.map +0 -1
  83. package/dist/core/tui/ChatTUI.js +0 -65
  84. package/dist/core/tui/ChatTUI.js.map +0 -1
  85. package/dist/core/tui/index.d.ts +0 -15
  86. package/dist/core/tui/index.d.ts.map +0 -1
  87. package/dist/core/tui/index.js +0 -45
  88. package/dist/core/tui/index.js.map +0 -1
  89. package/dist/core/update/index.d.ts +0 -23
  90. package/dist/core/update/index.d.ts.map +0 -1
  91. package/dist/core/update/index.js +0 -115
  92. package/dist/core/update/index.js.map +0 -1
  93. package/dist/index.d.ts +0 -18
  94. package/dist/index.d.ts.map +0 -1
  95. package/dist/index.js +0 -11
  96. package/dist/index.js.map +0 -1
  97. package/dist/models.json +0 -545
  98. package/dist/provider.d.ts +0 -43
  99. package/dist/provider.d.ts.map +0 -1
  100. package/dist/provider.js +0 -294
  101. package/dist/provider.js.map +0 -1
  102. package/dist/tui/ChatTUI.mjs +0 -89
  103. package/dist/tui-launcher.mjs +0 -64
@@ -1,23 +0,0 @@
1
- export interface UpdateInfo {
2
- currentVersion: string;
3
- latestVersion: string;
4
- updateAvailable: boolean;
5
- releaseUrl?: string;
6
- releaseNotes?: string;
7
- }
8
- export declare class UpdateChecker {
9
- private configDir;
10
- private lastCheckFile;
11
- constructor();
12
- private ensureConfigDir;
13
- private getLastCheckTime;
14
- private setLastCheckTime;
15
- checkForUpdates(force?: boolean): Promise<UpdateInfo>;
16
- private compareVersions;
17
- update(): Promise<{
18
- success: boolean;
19
- message: string;
20
- }>;
21
- getChangelog(): Promise<string>;
22
- }
23
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/update/index.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,UAAU;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,OAAO,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,aAAa,CAAS;;IAQ9B,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,gBAAgB;IAIlB,eAAe,CAAC,KAAK,GAAE,OAAe,GAAG,OAAO,CAAC,UAAU,CAAC;IAsClE,OAAO,CAAC,eAAe;IAejB,MAAM,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAoBxD,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;CActC"}
@@ -1,115 +0,0 @@
1
- import { execSync } from "child_process";
2
- import { readFileSync, writeFileSync, existsSync, mkdirSync } from "fs";
3
- import { join } from "path";
4
- import { homedir } from "os";
5
- const CURRENT_VERSION = "0.1.0";
6
- const UPDATE_CHECK_INTERVAL = 24 * 60 * 60 * 1000;
7
- export class UpdateChecker {
8
- configDir;
9
- lastCheckFile;
10
- constructor() {
11
- this.configDir = join(homedir(), ".bravecode");
12
- this.lastCheckFile = join(this.configDir, "last-update-check");
13
- this.ensureConfigDir();
14
- }
15
- ensureConfigDir() {
16
- if (!existsSync(this.configDir)) {
17
- mkdirSync(this.configDir, { recursive: true });
18
- }
19
- }
20
- getLastCheckTime() {
21
- if (!existsSync(this.lastCheckFile)) {
22
- return 0;
23
- }
24
- try {
25
- const data = readFileSync(this.lastCheckFile, "utf-8");
26
- return parseInt(data, 10) || 0;
27
- }
28
- catch {
29
- return 0;
30
- }
31
- }
32
- setLastCheckTime() {
33
- writeFileSync(this.lastCheckFile, Date.now().toString());
34
- }
35
- async checkForUpdates(force = false) {
36
- const lastCheck = this.getLastCheckTime();
37
- const now = Date.now();
38
- if (!force && now - lastCheck < UPDATE_CHECK_INTERVAL) {
39
- return {
40
- currentVersion: CURRENT_VERSION,
41
- latestVersion: CURRENT_VERSION,
42
- updateAvailable: false,
43
- };
44
- }
45
- this.setLastCheckTime();
46
- try {
47
- const result = execSync("npm view @bravecode/cli version 2>/dev/null", {
48
- encoding: "utf-8",
49
- timeout: 10000,
50
- }).trim();
51
- const latestVersion = result || CURRENT_VERSION;
52
- const updateAvailable = this.compareVersions(latestVersion, CURRENT_VERSION) > 0;
53
- return {
54
- currentVersion: CURRENT_VERSION,
55
- latestVersion,
56
- updateAvailable,
57
- releaseUrl: `https://www.npmjs.com/package/@bravecode/cli`,
58
- };
59
- }
60
- catch {
61
- return {
62
- currentVersion: CURRENT_VERSION,
63
- latestVersion: CURRENT_VERSION,
64
- updateAvailable: false,
65
- };
66
- }
67
- }
68
- compareVersions(a, b) {
69
- const partsA = a.split(".").map(Number);
70
- const partsB = b.split(".").map(Number);
71
- for (let i = 0; i < Math.max(partsA.length, partsB.length); i++) {
72
- const partA = partsA[i] || 0;
73
- const partB = partsB[i] || 0;
74
- if (partA > partB)
75
- return 1;
76
- if (partA < partB)
77
- return -1;
78
- }
79
- return 0;
80
- }
81
- async update() {
82
- try {
83
- console.log("Updating @bravecode/cli...");
84
- execSync("npm install -g @bravecode/cli@latest", {
85
- stdio: "inherit",
86
- timeout: 120000,
87
- });
88
- return {
89
- success: true,
90
- message: "Updated successfully. Please restart bravecode.",
91
- };
92
- }
93
- catch (error) {
94
- return {
95
- success: false,
96
- message: `Update failed: ${error.message}`,
97
- };
98
- }
99
- }
100
- async getChangelog() {
101
- try {
102
- const result = execSync("npm view @bravecode/cli --json 2>/dev/null", {
103
- encoding: "utf-8",
104
- timeout: 10000,
105
- });
106
- const info = JSON.parse(result);
107
- const description = info.description || "No changelog available.";
108
- return description;
109
- }
110
- catch {
111
- return "Unable to fetch changelog.";
112
- }
113
- }
114
- }
115
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/update/index.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts DELETED
@@ -1,18 +0,0 @@
1
- export { AutoModelSelector } from "./autoModel";
2
- export type { ModelConfig, TaskType, AutoModelConfig } from "./autoModel";
3
- export { LLMProviderManager } from "./provider";
4
- export type { Message, ChatParams, ChatResponse, StreamChunk } from "./provider";
5
- export { getConfig } from "./core/config";
6
- export type { BraveCodeConfig } from "./core/config";
7
- export { PermissionSystem, createDefaultPermissions } from "./core/permission";
8
- export { SnapshotManager } from "./core/snapshot";
9
- export { ContextCompactor } from "./core/context";
10
- export { MCPServer } from "./core/mcp";
11
- export type { MCPServerConfig, MCPTool } from "./core/mcp";
12
- export { PluginManager, Plugin } from "./core/plugin";
13
- export type { PluginConfig, PluginTool, PluginHooks } from "./core/plugin";
14
- export { ShareManager } from "./core/share";
15
- export type { SharedConversation, SharedMessage } from "./core/share";
16
- export { UpdateChecker } from "./core/update";
17
- export type { UpdateInfo } from "./core/update";
18
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACjF,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,YAAY,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACtD,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,YAAY,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,YAAY,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC"}
package/dist/index.js DELETED
@@ -1,11 +0,0 @@
1
- export { AutoModelSelector } from "./autoModel";
2
- export { LLMProviderManager } from "./provider";
3
- export { getConfig } from "./core/config";
4
- export { PermissionSystem, createDefaultPermissions } from "./core/permission";
5
- export { SnapshotManager } from "./core/snapshot";
6
- export { ContextCompactor } from "./core/context";
7
- export { MCPServer } from "./core/mcp";
8
- export { PluginManager, Plugin } from "./core/plugin";
9
- export { ShareManager } from "./core/share";
10
- export { UpdateChecker } from "./core/update";
11
- //# sourceMappingURL=index.js.map
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEhD,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C,OAAO,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEtD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC"}