codebuff 1.0.297 → 1.0.298

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 (125) hide show
  1. package/dist/cli.js +4 -1
  2. package/dist/cli.js.map +1 -1
  3. package/dist/code-map/tsconfig.tsbuildinfo +1 -1
  4. package/dist/common/analytics.js +16 -6
  5. package/dist/common/analytics.js.map +1 -1
  6. package/dist/common/constants.d.ts +1 -1
  7. package/dist/common/constants.js +1 -1
  8. package/dist/common/constants.js.map +1 -1
  9. package/dist/common/credit-delegation.d.ts +19 -0
  10. package/dist/common/credit-delegation.js +97 -0
  11. package/dist/common/credit-delegation.js.map +1 -0
  12. package/dist/common/types/organization.d.ts +102 -0
  13. package/dist/{cli-modules/types.js → common/types/organization.js} +1 -1
  14. package/dist/common/types/organization.js.map +1 -0
  15. package/dist/common/util/__tests__/saxy.test.js +73 -0
  16. package/dist/common/util/__tests__/saxy.test.js.map +1 -1
  17. package/dist/common/util/promise.d.ts +0 -1
  18. package/dist/common/util/promise.js +1 -30
  19. package/dist/common/util/promise.js.map +1 -1
  20. package/dist/common/util/saxy.js +3 -16
  21. package/dist/common/util/saxy.js.map +1 -1
  22. package/dist/index.js +2 -2
  23. package/dist/menu.js +6 -0
  24. package/dist/menu.js.map +1 -1
  25. package/dist/organization-context.d.ts +47 -0
  26. package/dist/organization-context.js +171 -0
  27. package/dist/organization-context.js.map +1 -0
  28. package/dist/slash-commands.d.ts +7 -0
  29. package/dist/slash-commands.js +21 -0
  30. package/dist/slash-commands.js.map +1 -0
  31. package/dist/utils/analytics.js +7 -4
  32. package/dist/utils/analytics.js.map +1 -1
  33. package/dist/utils/image.d.ts +4 -0
  34. package/dist/utils/image.js +67 -0
  35. package/dist/utils/image.js.map +1 -0
  36. package/package.json +1 -1
  37. package/dist/cli-handlers/initialization-flow.d.ts +0 -1
  38. package/dist/cli-handlers/initialization-flow.js +0 -24
  39. package/dist/cli-handlers/initialization-flow.js.map +0 -1
  40. package/dist/cli-modules/command-processor.d.ts +0 -2
  41. package/dist/cli-modules/command-processor.js +0 -112
  42. package/dist/cli-modules/command-processor.js.map +0 -1
  43. package/dist/cli-modules/input-handler.d.ts +0 -4
  44. package/dist/cli-modules/input-handler.js +0 -75
  45. package/dist/cli-modules/input-handler.js.map +0 -1
  46. package/dist/cli-modules/readline-handler.d.ts +0 -11
  47. package/dist/cli-modules/readline-handler.js +0 -158
  48. package/dist/cli-modules/readline-handler.js.map +0 -1
  49. package/dist/cli-modules/signal-handler.d.ts +0 -7
  50. package/dist/cli-modules/signal-handler.js +0 -128
  51. package/dist/cli-modules/signal-handler.js.map +0 -1
  52. package/dist/cli-modules/types.d.ts +0 -51
  53. package/dist/cli-modules/types.js.map +0 -1
  54. package/dist/cli-modules/websocket-handler.d.ts +0 -16
  55. package/dist/cli-modules/websocket-handler.js +0 -53
  56. package/dist/cli-modules/websocket-handler.js.map +0 -1
  57. package/dist/code-map/__mocks__/tree-sitter-typescript.d.ts +0 -12
  58. package/dist/code-map/__mocks__/tree-sitter-typescript.d.ts.map +0 -1
  59. package/dist/code-map/__mocks__/tree-sitter-typescript.js +0 -14
  60. package/dist/code-map/__mocks__/tree-sitter-typescript.js.map +0 -1
  61. package/dist/code-map/__mocks__/wasm-mock.d.ts +0 -2
  62. package/dist/code-map/__mocks__/wasm-mock.d.ts.map +0 -1
  63. package/dist/code-map/__mocks__/wasm-mock.js +0 -3
  64. package/dist/code-map/__mocks__/wasm-mock.js.map +0 -1
  65. package/dist/code-map/__tests__/parse.test.d.ts +0 -2
  66. package/dist/code-map/__tests__/parse.test.d.ts.map +0 -1
  67. package/dist/code-map/__tests__/parse.test.js +0 -231
  68. package/dist/code-map/__tests__/parse.test.js.map +0 -1
  69. package/dist/code-map/__tests__/test-langs/consumer.d.ts +0 -2
  70. package/dist/code-map/__tests__/test-langs/consumer.d.ts.map +0 -1
  71. package/dist/code-map/__tests__/test-langs/consumer.js +0 -6
  72. package/dist/code-map/__tests__/test-langs/consumer.js.map +0 -1
  73. package/dist/code-map/__tests__/test-langs/empty.d.ts +0 -1
  74. package/dist/code-map/__tests__/test-langs/empty.d.ts.map +0 -1
  75. package/dist/code-map/__tests__/test-langs/empty.js +0 -2
  76. package/dist/code-map/__tests__/test-langs/empty.js.map +0 -1
  77. package/dist/code-map/__tests__/test-langs/test.d.ts +0 -12
  78. package/dist/code-map/__tests__/test-langs/test.d.ts.map +0 -1
  79. package/dist/code-map/__tests__/test-langs/test.js +0 -23
  80. package/dist/code-map/__tests__/test-langs/test.js.map +0 -1
  81. package/dist/code-map/__tests__/test-langs/unused.d.ts +0 -2
  82. package/dist/code-map/__tests__/test-langs/unused.d.ts.map +0 -1
  83. package/dist/code-map/__tests__/test-langs/unused.js +0 -7
  84. package/dist/code-map/__tests__/test-langs/unused.js.map +0 -1
  85. package/dist/code-map/__tests__/test-langs/utils1.d.ts +0 -2
  86. package/dist/code-map/__tests__/test-langs/utils1.d.ts.map +0 -1
  87. package/dist/code-map/__tests__/test-langs/utils1.js +0 -7
  88. package/dist/code-map/__tests__/test-langs/utils1.js.map +0 -1
  89. package/dist/code-map/__tests__/test-langs/utils2.d.ts +0 -2
  90. package/dist/code-map/__tests__/test-langs/utils2.d.ts.map +0 -1
  91. package/dist/code-map/__tests__/test-langs/utils2.js +0 -8
  92. package/dist/code-map/__tests__/test-langs/utils2.js.map +0 -1
  93. package/dist/code-map/__tests__/tree-sitter-minimal.test.d.ts +0 -2
  94. package/dist/code-map/__tests__/tree-sitter-minimal.test.d.ts.map +0 -1
  95. package/dist/code-map/__tests__/tree-sitter-minimal.test.js +0 -79
  96. package/dist/code-map/__tests__/tree-sitter-minimal.test.js.map +0 -1
  97. package/dist/code-map/jest.config.d.ts +0 -4
  98. package/dist/code-map/jest.config.d.ts.map +0 -1
  99. package/dist/code-map/jest.config.js +0 -18
  100. package/dist/code-map/jest.config.js.map +0 -1
  101. package/dist/code-map/parse.test.d.ts +0 -2
  102. package/dist/code-map/parse.test.d.ts.map +0 -1
  103. package/dist/code-map/parse.test.js +0 -218
  104. package/dist/code-map/parse.test.js.map +0 -1
  105. package/dist/code-map/scripts/tree-sitter-test.cjs +0 -27
  106. package/dist/code-map/scripts/tree-sitter-test.cjs.map +0 -1
  107. package/dist/code-map/scripts/tree-sitter-test.d.cts +0 -2
  108. package/dist/code-map/scripts/tree-sitter-test.d.cts.map +0 -1
  109. package/dist/code-map/scripts/tree-sitter-test.d.ts +0 -2
  110. package/dist/code-map/scripts/tree-sitter-test.d.ts.map +0 -1
  111. package/dist/code-map/scripts/tree-sitter-test.js +0 -54
  112. package/dist/code-map/scripts/tree-sitter-test.js.map +0 -1
  113. package/dist/code-map/test-parser.d.ts +0 -2
  114. package/dist/code-map/test-parser.d.ts.map +0 -1
  115. package/dist/code-map/test-parser.js +0 -42
  116. package/dist/code-map/test-parser.js.map +0 -1
  117. package/dist/common/bigquery/client.d.ts +0 -15
  118. package/dist/common/bigquery/client.js +0 -265
  119. package/dist/common/bigquery/client.js.map +0 -1
  120. package/dist/common/bigquery/schema.d.ts +0 -55
  121. package/dist/common/bigquery/schema.js +0 -24
  122. package/dist/common/bigquery/schema.js.map +0 -1
  123. package/dist/common/util/file-metadata.d.ts +0 -9
  124. package/dist/common/util/file-metadata.js +0 -24
  125. package/dist/common/util/file-metadata.js.map +0 -1
@@ -0,0 +1,171 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OrganizationContextManager = void 0;
4
+ exports.getOrganizationContext = getOrganizationContext;
5
+ exports.displayOrganizationContext = displayOrganizationContext;
6
+ exports.formatCreditUsage = formatCreditUsage;
7
+ exports.canOverrideOrganizationCredits = canOverrideOrganizationCredits;
8
+ exports.getOrganizationCommands = getOrganizationCommands;
9
+ const logger_1 = require("./utils/logger");
10
+ const git_1 = require("./utils/git");
11
+ class OrganizationContextManager {
12
+ context = {
13
+ fallbackToPersonal: true,
14
+ usingOrganizationCredits: false
15
+ };
16
+ async updateContextForRepository(repositoryUrl) {
17
+ try {
18
+ this.context.repositoryUrl = repositoryUrl;
19
+ // Call backend to determine organization for this repo
20
+ const response = await fetch('/api/user/repository-organization', {
21
+ method: 'POST',
22
+ headers: {
23
+ 'Content-Type': 'application/json',
24
+ },
25
+ body: JSON.stringify({ repositoryUrl })
26
+ });
27
+ if (response.ok) {
28
+ const { organization } = await response.json();
29
+ if (organization) {
30
+ this.context.repositoryOrganization = organization;
31
+ this.context.usingOrganizationCredits = true;
32
+ this.context.fallbackToPersonal = false;
33
+ }
34
+ else {
35
+ this.context.repositoryOrganization = undefined;
36
+ this.context.usingOrganizationCredits = false;
37
+ this.context.fallbackToPersonal = true;
38
+ }
39
+ }
40
+ else {
41
+ // API call failed, fall back to personal
42
+ this.context.repositoryOrganization = undefined;
43
+ this.context.usingOrganizationCredits = false;
44
+ this.context.fallbackToPersonal = true;
45
+ }
46
+ }
47
+ catch (error) {
48
+ logger_1.logger.error({ error }, 'Error updating organization context');
49
+ this.context.repositoryOrganization = undefined;
50
+ this.context.usingOrganizationCredits = false;
51
+ this.context.fallbackToPersonal = true;
52
+ }
53
+ }
54
+ getDisplayMessage() {
55
+ if (this.context.repositoryOrganization) {
56
+ return `Credits will be charged to ${this.context.repositoryOrganization.name}`;
57
+ }
58
+ return 'Credits will be charged to your personal account';
59
+ }
60
+ getContext() {
61
+ return { ...this.context };
62
+ }
63
+ }
64
+ exports.OrganizationContextManager = OrganizationContextManager;
65
+ /**
66
+ * Determines organization context for the current project
67
+ */
68
+ async function getOrganizationContext(client) {
69
+ try {
70
+ const repoMetrics = await (0, git_1.getRepoMetrics)();
71
+ const repositoryUrl = repoMetrics.remoteUrl;
72
+ if (!repositoryUrl) {
73
+ return {
74
+ usingOrganizationCredits: false,
75
+ fallbackToPersonal: true,
76
+ };
77
+ }
78
+ // Check if this repository is associated with an organization
79
+ // This would typically be done via an API call to the backend
80
+ // For now, we'll implement a placeholder
81
+ const context = {
82
+ repositoryUrl,
83
+ usingOrganizationCredits: false,
84
+ fallbackToPersonal: true,
85
+ };
86
+ // TODO: Implement API call to check organization association
87
+ // const orgInfo = await client.checkOrganizationForRepository(repositoryUrl)
88
+ // if (orgInfo) {
89
+ // context.organizationId = orgInfo.id
90
+ // context.organizationName = orgInfo.name
91
+ // context.usingOrganizationCredits = true
92
+ // context.organizationBalance = orgInfo.balance
93
+ // }
94
+ return context;
95
+ }
96
+ catch (error) {
97
+ logger_1.logger.error({ error }, 'Error getting organization context');
98
+ return {
99
+ usingOrganizationCredits: false,
100
+ fallbackToPersonal: true,
101
+ };
102
+ }
103
+ }
104
+ /**
105
+ * Displays organization context information to the user
106
+ */
107
+ function displayOrganizationContext(context) {
108
+ if (!context.usingOrganizationCredits) {
109
+ return 'Using personal credits';
110
+ }
111
+ const parts = [];
112
+ if (context.repositoryOrganization?.name) {
113
+ parts.push(`Organization: ${context.repositoryOrganization.name}`);
114
+ }
115
+ if (context.organizationBalance !== undefined) {
116
+ parts.push(`Org Credits: ${context.organizationBalance.toLocaleString()}`);
117
+ }
118
+ if (context.userBalance !== undefined) {
119
+ parts.push(`Personal Credits: ${context.userBalance.toLocaleString()}`);
120
+ }
121
+ return parts.join(' | ');
122
+ }
123
+ /**
124
+ * Formats credit usage information with organization context
125
+ */
126
+ function formatCreditUsage(creditsUsed, context) {
127
+ const baseMessage = `Used ${creditsUsed.toLocaleString()} credits`;
128
+ if (context.usingOrganizationCredits && context.repositoryOrganization?.name) {
129
+ return `${baseMessage} (from ${context.repositoryOrganization.name})`;
130
+ }
131
+ return `${baseMessage} (personal)`;
132
+ }
133
+ /**
134
+ * Checks if user can override organization credit usage
135
+ */
136
+ function canOverrideOrganizationCredits(context) {
137
+ // Users can always fall back to personal credits if they have them
138
+ return context.userBalance !== undefined && context.userBalance > 0;
139
+ }
140
+ /**
141
+ * Gets organization-specific CLI commands
142
+ */
143
+ function getOrganizationCommands() {
144
+ return [
145
+ {
146
+ command: '/org-status',
147
+ description: 'Show organization credit status',
148
+ handler: async () => {
149
+ // TODO: Implement organization status display
150
+ console.log('Organization status not yet implemented');
151
+ },
152
+ },
153
+ {
154
+ command: '/org-switch',
155
+ description: 'Switch between personal and organization credits',
156
+ handler: async () => {
157
+ // TODO: Implement organization switching
158
+ console.log('Organization switching not yet implemented');
159
+ },
160
+ },
161
+ {
162
+ command: '/org-usage',
163
+ description: 'Show organization usage breakdown',
164
+ handler: async () => {
165
+ // TODO: Implement organization usage display
166
+ console.log('Organization usage display not yet implemented');
167
+ },
168
+ },
169
+ ];
170
+ }
171
+ //# sourceMappingURL=organization-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"organization-context.js","sourceRoot":"","sources":["../src/organization-context.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export interface SlashCommand {
2
+ command: string;
3
+ description: string;
4
+ aliases?: string[];
5
+ fullCommand?: string;
6
+ }
7
+ export declare const slashCommands: SlashCommand[];
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.slashCommands = void 0;
4
+ exports.slashCommands = [
5
+ { command: '/help', fullCommand: 'help', description: 'Show help menu', aliases: ['/h'] },
6
+ { command: '/login', fullCommand: 'login', description: 'Authenticate your session' },
7
+ { command: '/logout', fullCommand: 'logout', description: 'Sign out of your session' },
8
+ { command: '/init', fullCommand: 'init', description: 'Configure project for better results' },
9
+ { command: '/diff', fullCommand: 'diff', description: 'Show last assistant change diff', aliases: ['/d'] },
10
+ { command: '/undo', fullCommand: 'undo', description: 'Revert to previous checkpoint', aliases: ['/u'] },
11
+ { command: '/redo', fullCommand: 'redo', description: 'Re-apply previously undone checkpoint', aliases: ['/r'] },
12
+ { command: '/checkpoint save', fullCommand: 'checkpoint save', description: 'Save current state as a new checkpoint' },
13
+ { command: '/checkpoint list', fullCommand: 'checkpoint list', description: 'List all saved checkpoints' },
14
+ { command: '/checkpoint clear', fullCommand: 'checkpoint clear', description: 'Clear all checkpoints' },
15
+ // For commands like "checkpoint <id>", direct slash command is tricky.
16
+ // User would type "/checkpoint restore" then space and the id.
17
+ { command: '/checkpoint restore', fullCommand: 'checkpoint restore', description: 'Restore to checkpoint <id> (type ID after)' },
18
+ { command: '/usage', fullCommand: 'usage', description: 'View remaining/bonus AI credits', aliases: ['/credits'] },
19
+ { command: '/exit', fullCommand: 'exit', description: 'Quit Codebuff', aliases: ['/quit', '/q'] },
20
+ ];
21
+ //# sourceMappingURL=slash-commands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slash-commands.js","sourceRoot":"","sources":["../src/slash-commands.ts"],"names":[],"mappings":";;;AAOa,QAAA,aAAa,GAAmB;IAC3C,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE;IACzF,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,2BAA2B,EAAE;IACrF,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,0BAA0B,EAAE;IACtF,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,sCAAsC,EAAE;IAC9F,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,iCAAiC,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE;IAC1G,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,+BAA+B,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE;IACxG,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,uCAAuC,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE;IAChH,EAAE,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,iBAAiB,EAAE,WAAW,EAAE,wCAAwC,EAAE;IACtH,EAAE,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,iBAAiB,EAAE,WAAW,EAAE,4BAA4B,EAAE;IAC1G,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,kBAAkB,EAAE,WAAW,EAAE,uBAAuB,EAAE;IACvG,uEAAuE;IACvE,+DAA+D;IAC/D,EAAE,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,oBAAoB,EAAE,WAAW,EAAE,4CAA4C,EAAE;IAChI,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,iCAAiC,EAAE,OAAO,EAAE,CAAC,UAAU,CAAC,EAAE;IAClH,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE;CAClG,CAAC"}
@@ -17,11 +17,11 @@ let client;
17
17
  exports.identified = false;
18
18
  function initAnalytics() {
19
19
  if (!process.env.NEXT_PUBLIC_POSTHOG_API_KEY ||
20
- !process.env.NEXT_PUBLIC_APP_URL) {
21
- throw new Error('NEXT_PUBLIC_POSTHOG_API_KEY or NEXT_PUBLIC_APP_URL is not set');
20
+ !process.env.NEXT_PUBLIC_POSTHOG_HOST_URL) {
21
+ throw new Error('NEXT_PUBLIC_POSTHOG_API_KEY or NEXT_PUBLIC_POSTHOG_HOST_URL is not set');
22
22
  }
23
23
  client = new posthog_node_1.PostHog(process.env.NEXT_PUBLIC_POSTHOG_API_KEY, {
24
- host: `${process.env.NEXT_PUBLIC_APP_URL}/ingest`,
24
+ host: process.env.NEXT_PUBLIC_POSTHOG_HOST_URL,
25
25
  enableExceptionAutocapture: true,
26
26
  });
27
27
  }
@@ -45,7 +45,10 @@ function trackEvent(event, properties) {
45
45
  return;
46
46
  }
47
47
  if (!client) {
48
- throw new Error('Analytics client not initialized');
48
+ if (process.env.NEXT_PUBLIC_CB_ENVIRONMENT === 'production') {
49
+ throw new Error('Analytics client not initialized');
50
+ }
51
+ return;
49
52
  }
50
53
  if (process.env.NEXT_PUBLIC_CB_ENVIRONMENT !== 'production') {
51
54
  if (DEBUG_DEV_EVENTS) {
@@ -1 +1 @@
1
- {"version":3,"file":"analytics.js","sourceRoot":"","sources":["../../src/utils/analytics.ts"],"names":[],"mappings":";;;AAcA,sCAcC;AAED,wCAYC;AAED,gCA2BC;AAED,oCAsBC;AAED,4BAcC;AA9GD,+CAAsC;AAEtC,+BAA+B;AAC/B,uDAAuD;AACvD,iDAAiD;AACjD,IAAI,gBAAgB,GAAG,KAAK,CAAA;AAE5B,+BAA+B;AAC/B,IAAI,aAAiC,CAAA;AACrC,IAAI,MAA2B,CAAA;AAEpB,QAAA,UAAU,GAAY,KAAK,CAAA;AAEtC,SAAgB,aAAa;IAC3B,IACE,CAAC,OAAO,CAAC,GAAG,CAAC,2BAA2B;QACxC,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAChC,CAAC;QACD,MAAM,IAAI,KAAK,CACb,+DAA+D,CAChE,CAAA;IACH,CAAC;IAED,MAAM,GAAG,IAAI,sBAAO,CAAC,OAAO,CAAC,GAAG,CAAC,2BAA2B,EAAE;QAC5D,IAAI,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,SAAS;QACjD,0BAA0B,EAAE,IAAI;KACjC,CAAC,CAAA;AACJ,CAAC;AAEM,KAAK,UAAU,cAAc;IAClC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAM;IACR,CAAC;IACD,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,KAAK,EAAE,CAAA;IACtB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,yCAAyC;QACzC,IAAI,gBAAgB,EAAE,CAAC;YACrB,OAAO,CAAC,KAAK,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAA;QACxC,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAgB,UAAU,CACxB,KAAqB,EACrB,UAAgC;IAEhC,MAAM,UAAU,GAAG,aAAa,CAAA;IAChC,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAM;IACR,CAAC;IACD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA;IACrD,CAAC;IAED,IAAI,OAAO,CAAC,GAAG,CAAC,0BAA0B,KAAK,YAAY,EAAE,CAAC;QAC5D,IAAI,gBAAgB,EAAE,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE;gBAClC,KAAK;gBACL,UAAU;aACX,CAAC,CAAA;QACJ,CAAC;QACD,OAAM;IACR,CAAC;IAED,MAAM,CAAC,OAAO,CAAC;QACb,UAAU;QACV,KAAK;QACL,UAAU;KACX,CAAC,CAAA;AACJ,CAAC;AAED,SAAgB,YAAY,CAAC,MAAc,EAAE,UAAgC;IAC3E,sCAAsC;IACtC,aAAa,GAAG,MAAM,CAAA;IAEtB,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA;IACrD,CAAC;IAED,IAAI,OAAO,CAAC,GAAG,CAAC,0BAA0B,KAAK,YAAY,EAAE,CAAC;QAC5D,IAAI,gBAAgB,EAAE,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE;gBACjC,MAAM;gBACN,UAAU;aACX,CAAC,CAAA;QACJ,CAAC;QACD,OAAM;IACR,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC;QACd,UAAU,EAAE,MAAM;QAClB,UAAU;KACX,CAAC,CAAA;AACJ,CAAC;AAED,SAAgB,QAAQ,CACtB,KAAU,EACV,MAAe,EACf,UAAgC;IAEhC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA;IACrD,CAAC;IAED,MAAM,CAAC,gBAAgB,CACrB,KAAK,EACL,MAAM,IAAI,aAAa,IAAI,SAAS,EACpC,UAAU,CACX,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"analytics.js","sourceRoot":"","sources":["../../src/utils/analytics.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare function extractImagesFromInput(input: string): Promise<{
2
+ text: string;
3
+ images: string[];
4
+ }>;
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.extractImagesFromInput = extractImagesFromInput;
30
+ const fs_1 = require("fs");
31
+ const path_1 = __importDefault(require("path"));
32
+ const os_1 = require("os");
33
+ const IMAGE_EXTENSIONS = ['.png', '.jpg', '.jpeg', '.gif'];
34
+ function resolvePath(p) {
35
+ if (p.startsWith('~'))
36
+ return path_1.default.join((0, os_1.homedir)(), p.slice(1));
37
+ return path_1.default.isAbsolute(p) ? p : path_1.default.resolve(process.cwd(), p);
38
+ }
39
+ async function extractImagesFromInput(input) {
40
+ const tokens = input.split(/\s+/);
41
+ const imagePaths = [];
42
+ const textTokens = [];
43
+ for (const token of tokens) {
44
+ const resolved = resolvePath(token.replace(/^['\"]|['\"]$/g, ''));
45
+ if (IMAGE_EXTENSIONS.some((ext) => resolved.toLowerCase().endsWith(ext)) && (0, fs_1.existsSync)(resolved)) {
46
+ imagePaths.push(resolved);
47
+ }
48
+ else {
49
+ textTokens.push(token);
50
+ }
51
+ }
52
+ const images = [];
53
+ for (const imgPath of imagePaths) {
54
+ try {
55
+ // @ts-ignore - optional dependency
56
+ const sharp = await Promise.resolve().then(() => __importStar(require('sharp')));
57
+ const buffer = await sharp.default(imgPath).png().toBuffer();
58
+ images.push(buffer.toString('base64'));
59
+ }
60
+ catch {
61
+ const data = (0, fs_1.readFileSync)(imgPath);
62
+ images.push(data.toString('base64'));
63
+ }
64
+ }
65
+ return { text: textTokens.join(' ').trim(), images };
66
+ }
67
+ //# sourceMappingURL=image.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image.js","sourceRoot":"","sources":["../../src/utils/image.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWA,wDA4BC;AAvCD,2BAA6C;AAC7C,gDAAuB;AACvB,2BAA4B;AAE5B,MAAM,gBAAgB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;AAE1D,SAAS,WAAW,CAAC,CAAS;IAC5B,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,cAAI,CAAC,IAAI,CAAC,IAAA,YAAO,GAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IAC9D,OAAO,cAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAA;AAChE,CAAC;AAEM,KAAK,UAAU,sBAAsB,CAAC,KAAa;IACxD,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IACjC,MAAM,UAAU,GAAa,EAAE,CAAA;IAC/B,MAAM,UAAU,GAAa,EAAE,CAAA;IAE/B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,CAAA;QACjE,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,IAAA,eAAU,EAAC,QAAQ,CAAC,EAAE,CAAC;YACjG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC3B,CAAC;aAAM,CAAC;YACN,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACxB,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAa,EAAE,CAAA;IAC3B,KAAK,MAAM,OAAO,IAAI,UAAU,EAAE,CAAC;QACjC,IAAI,CAAC;YACH,mCAAmC;YACnC,MAAM,KAAK,GAAG,wDAAa,OAAO,GAAC,CAAA;YACnC,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAA;YAC5D,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAA;QACxC,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,GAAG,IAAA,iBAAY,EAAC,OAAO,CAAC,CAAA;YAClC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAA;QACtC,CAAC;IACH,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,CAAA;AACtD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codebuff",
3
- "version": "1.0.297",
3
+ "version": "1.0.298",
4
4
  "description": "AI dev assistant",
5
5
  "license": "MIT",
6
6
  "main": "dist/index.js",
@@ -1 +0,0 @@
1
- export declare function handleInitializationFlowLocally(): void;
@@ -1,24 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.handleInitializationFlowLocally = handleInitializationFlowLocally;
7
- const fs_1 = require("fs");
8
- const path_1 = __importDefault(require("path"));
9
- const constants_1 = require("../common/json-config/constants");
10
- const project_files_1 = require("../project-files");
11
- function handleInitializationFlowLocally() {
12
- const projectRoot = (0, project_files_1.getProjectRoot)();
13
- // Knowledge file will be created in the backend
14
- const configPath = path_1.default.join(projectRoot, constants_1.codebuffConfigFile);
15
- if (!(0, fs_1.existsSync)(configPath)) {
16
- // Create the config file
17
- const configContent = {
18
- description: 'Template configuration for this project. See https://www.codebuff.com/config for all options.',
19
- startupProcesses: [],
20
- };
21
- (0, fs_1.writeFileSync)(configPath, JSON.stringify(configContent, null, 2));
22
- }
23
- }
24
- //# sourceMappingURL=initialization-flow.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"initialization-flow.js","sourceRoot":"","sources":["../../src/cli-handlers/initialization-flow.ts"],"names":[],"mappings":";;;;;AAOA,0EAeC;AAtBD,2BAA8C;AAC9C,gDAAuB;AAEvB,4DAAiE;AAEjE,oDAAiD;AAEjD,SAAgB,+BAA+B;IAC7C,MAAM,WAAW,GAAG,IAAA,8BAAc,GAAE,CAAA;IAEpC,gDAAgD;IAEhD,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,8BAAkB,CAAC,CAAA;IAC7D,IAAI,CAAC,IAAA,eAAU,EAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,yBAAyB;QACzB,MAAM,aAAa,GAAG;YACpB,WAAW,EACT,+FAA+F;YACjG,gBAAgB,EAAE,EAAE;SACrB,CAAA;QACD,IAAA,kBAAa,EAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;IACnE,CAAC;AACH,CAAC"}
@@ -1,2 +0,0 @@
1
- import type { CLI } from '../cli';
2
- export declare function processCommand(cli: CLI, userInput: string): Promise<boolean>;
@@ -1,112 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.processCommand = processCommand;
4
- const analytics_events_1 = require("../common/constants/analytics-events");
5
- const analytics_1 = require("../utils/analytics");
6
- const menu_1 = require("../menu");
7
- const checkpoint_manager_1 = require("../checkpoints/checkpoint-manager");
8
- const api_key_1 = require("../cli-handlers/api-key");
9
- const checkpoint_1 = require("../cli-handlers/checkpoint");
10
- const diff_1 = require("../cli-handlers/diff");
11
- const easter_egg_1 = require("../cli-handlers/easter-egg");
12
- const inititalization_flow_1 = require("../cli-handlers/inititalization-flow");
13
- async function processCommand(cli, userInput) {
14
- const { client, readyPromise, rl } = cli;
15
- // freshPrompt is now an arrow function on CLI, so direct reference is fine.
16
- const freshPromptFn = cli.freshPrompt;
17
- if (userInput === 'help' || userInput === 'h' || userInput === '/help') {
18
- (0, menu_1.displayMenu)();
19
- freshPromptFn();
20
- return true;
21
- }
22
- if (userInput === 'login' || userInput === 'signin') {
23
- await client.login();
24
- checkpoint_manager_1.checkpointManager.clearCheckpoints();
25
- return true;
26
- }
27
- if (userInput === 'logout' || userInput === 'signout') {
28
- await client.logout();
29
- freshPromptFn();
30
- return true;
31
- }
32
- if (userInput.startsWith('ref-')) {
33
- await client.handleReferralCode(userInput.trim());
34
- return true;
35
- }
36
- const detectionResult = (0, api_key_1.detectApiKey)(userInput);
37
- if (detectionResult.status !== 'not_found') {
38
- await (0, api_key_1.handleApiKeyInput)(client, detectionResult, readyPromise, freshPromptFn // Pass the function directly
39
- );
40
- return true;
41
- }
42
- if (userInput === 'usage' || userInput === 'credits') {
43
- await client.getUsage();
44
- return true;
45
- }
46
- if (userInput === 'quit' || userInput === 'exit' || userInput === 'q') {
47
- rl.close();
48
- return true;
49
- }
50
- if (['diff', 'doff', 'dif', 'iff', 'd'].includes(userInput)) {
51
- (0, diff_1.handleDiff)(client.lastChanges);
52
- freshPromptFn();
53
- return true;
54
- }
55
- if (userInput === 'uuddlrlrba' ||
56
- userInput === 'konami' ||
57
- userInput === 'codebuffy') {
58
- (0, easter_egg_1.showEasterEgg)(freshPromptFn); // Pass the function directly
59
- return true;
60
- }
61
- if ((0, checkpoint_1.isCheckpointCommand)(userInput)) {
62
- (0, analytics_1.trackEvent)(analytics_events_1.AnalyticsEvent.CHECKPOINT_COMMAND_USED, {
63
- command: userInput,
64
- });
65
- if ((0, checkpoint_1.isCheckpointCommand)(userInput, 'undo')) {
66
- await (0, checkpoint_1.saveCheckpoint)(userInput, client, readyPromise);
67
- const toRestore = await (0, checkpoint_1.handleUndo)(client, rl);
68
- freshPromptFn(toRestore);
69
- return true;
70
- }
71
- if ((0, checkpoint_1.isCheckpointCommand)(userInput, 'redo')) {
72
- await (0, checkpoint_1.saveCheckpoint)(userInput, client, readyPromise);
73
- const toRestore = await (0, checkpoint_1.handleRedo)(client, rl);
74
- freshPromptFn(toRestore);
75
- return true;
76
- }
77
- if ((0, checkpoint_1.isCheckpointCommand)(userInput, 'list')) {
78
- await (0, checkpoint_1.saveCheckpoint)(userInput, client, readyPromise);
79
- await (0, checkpoint_1.listCheckpoints)();
80
- freshPromptFn();
81
- return true;
82
- }
83
- const restoreMatch = (0, checkpoint_1.isCheckpointCommand)(userInput, 'restore');
84
- if (restoreMatch) {
85
- const id = parseInt(restoreMatch[1], 10);
86
- await (0, checkpoint_1.saveCheckpoint)(userInput, client, readyPromise);
87
- const toRestore = await (0, checkpoint_1.handleRestoreCheckpoint)(id, client, rl);
88
- freshPromptFn(toRestore);
89
- return true;
90
- }
91
- if ((0, checkpoint_1.isCheckpointCommand)(userInput, 'clear')) {
92
- (0, checkpoint_1.handleClearCheckpoints)();
93
- freshPromptFn();
94
- return true;
95
- }
96
- if ((0, checkpoint_1.isCheckpointCommand)(userInput, 'save')) {
97
- await (0, checkpoint_1.saveCheckpoint)(userInput, client, readyPromise, true);
98
- (0, checkpoint_1.displayCheckpointMenu)();
99
- freshPromptFn();
100
- return true;
101
- }
102
- (0, checkpoint_1.displayCheckpointMenu)();
103
- freshPromptFn();
104
- return true;
105
- }
106
- if (userInput === 'init') {
107
- (0, inititalization_flow_1.handleInitializationFlowLocally)();
108
- return false;
109
- }
110
- return false;
111
- }
112
- //# sourceMappingURL=command-processor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"command-processor.js","sourceRoot":"","sources":["../../src/cli-modules/command-processor.ts"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- import type { CLI } from '../cli';
2
- export declare function handleLineInput(cli: CLI, line: string): Promise<void>;
3
- export declare function handleKeyPressInput(cli: CLI, str: string, key: any): void;
4
- export declare function attachInputEventHandlers(cli: CLI): void;
@@ -1,75 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.handleLineInput = handleLineInput;
4
- exports.handleKeyPressInput = handleKeyPressInput;
5
- exports.attachInputEventHandlers = attachInputEventHandlers;
6
- const readline_handler_1 = require("./readline-handler"); // For handleLine
7
- // State variables that were previously in CLI, now managed here or passed via CLI instance
8
- // For simplicity, we'll access them via the CLI instance passed to functions.
9
- function detectPasting(cli) {
10
- const currentTime = Date.now();
11
- // Accessing and modifying CLI instance properties directly.
12
- // Consider if these should be passed and returned if more functional style is preferred.
13
- const timeDiff = currentTime - cli['lastInputTime']; // Private access via string key
14
- if (timeDiff < 10) {
15
- cli['consecutiveFastInputs']++;
16
- if (cli['consecutiveFastInputs'] >= 2) {
17
- cli['isPasting'] = true;
18
- }
19
- }
20
- else {
21
- cli['consecutiveFastInputs'] = 0;
22
- if (cli['isPasting']) {
23
- cli['isPasting'] = false;
24
- }
25
- }
26
- cli['lastInputTime'] = currentTime;
27
- }
28
- async function handleLineInput(cli, line) {
29
- detectPasting(cli); // detectPasting will modify cli.isPasting and cli.pastedContent
30
- if (cli['isPasting']) {
31
- cli['pastedContent'] += line + '\n';
32
- }
33
- else if (!cli.isReceivingResponse) { // isReceivingResponse is public
34
- const input = (cli['pastedContent'] + line).trim();
35
- cli['pastedContent'] = '';
36
- // Directly call a method on cli that was originally handleUserInput
37
- // For now, assuming handleUserInput is still on CLI and public/accessible.
38
- // If handleUserInput is also refactored, this call will change.
39
- await cli['handleUserInput'](input); // Private access for now
40
- (0, readline_handler_1.appendToHistory)(input);
41
- }
42
- }
43
- function handleKeyPressInput(cli, str, key) {
44
- // ESC key is handled by signal-handler. This only handles other specific keypresses.
45
- if (!cli['isPasting'] &&
46
- str === ' ' &&
47
- '_refreshLine' in cli.rl && // rl is public
48
- 'line' in cli.rl &&
49
- 'cursor' in cli.rl) {
50
- const rlAny = cli.rl;
51
- const { cursor, line } = rlAny;
52
- const prevTwoChars = cursor > 1 ? line.slice(cursor - 2, cursor) : '';
53
- if (prevTwoChars === ' ') {
54
- rlAny.line = line.slice(0, cursor - 2) + '\n\n' + line.slice(cursor);
55
- rlAny._refreshLine();
56
- }
57
- }
58
- detectPasting(cli); // Also call detectPasting on keypress
59
- }
60
- // This function will be called from CLI to attach specific readline and keypress events
61
- function attachInputEventHandlers(cli) {
62
- cli.rl.on('line', (line) => handleLineInput(cli, line));
63
- // process.stdin.on('keypress') is already set up by signal-handler for ESC.
64
- // We need to ensure that this new keypress handler for other keys
65
- // doesn't conflict or override it.
66
- // A better approach might be a single keypress dispatcher in CLI
67
- // that calls out to signal-handler for ESC and input-handler for others.
68
- // For now, let's assume signal-handler's keypress is specific enough.
69
- // Or, we can have this module handle all non-ESC keypresses.
70
- // The current handleKeyPress in CLI will be replaced by this.
71
- // The signal-handler's attachCliBehaviorEventHandlers already sets up a keypress listener for ESC.
72
- // We need to make sure this doesn't add a second one or that they coordinate.
73
- // Let's modify CLI's handleKeyPress to call this.
74
- }
75
- //# sourceMappingURL=input-handler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"input-handler.js","sourceRoot":"","sources":["../../src/cli-modules/input-handler.ts"],"names":[],"mappings":"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"}
@@ -1,11 +0,0 @@
1
- import * as readline from 'readline';
2
- import type { Client } from '../client';
3
- export declare function loadHistory(): string[];
4
- export declare function appendToHistory(line: string): void;
5
- export declare function filePathCompleter(line: string): [string[], string];
6
- export declare function setPrompt(rl: readline.Interface): void;
7
- export declare function freshPrompt(rl: readline.Interface, client: Client, // Pass client instance
8
- shouldReconnectWhenIdle: boolean, // Pass this state
9
- onReconnect: () => void, // Callback for reconnection
10
- userInput?: string): void;
11
- export declare function initReadline(cliInstance: any): readline.Interface;