codebuff 1.0.296 → 1.0.297
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli-handlers/initialization-flow.d.ts +1 -0
- package/dist/cli-handlers/initialization-flow.js +24 -0
- package/dist/cli-handlers/initialization-flow.js.map +1 -0
- package/dist/cli-modules/command-processor.d.ts +2 -0
- package/dist/cli-modules/command-processor.js +112 -0
- package/dist/cli-modules/command-processor.js.map +1 -0
- package/dist/cli-modules/input-handler.d.ts +4 -0
- package/dist/cli-modules/input-handler.js +75 -0
- package/dist/cli-modules/input-handler.js.map +1 -0
- package/dist/cli-modules/readline-handler.d.ts +11 -0
- package/dist/cli-modules/readline-handler.js +158 -0
- package/dist/cli-modules/readline-handler.js.map +1 -0
- package/dist/cli-modules/signal-handler.d.ts +7 -0
- package/dist/cli-modules/signal-handler.js +128 -0
- package/dist/cli-modules/signal-handler.js.map +1 -0
- package/dist/cli-modules/types.d.ts +51 -0
- package/dist/{common/types/organization.js → cli-modules/types.js} +1 -1
- package/dist/cli-modules/types.js.map +1 -0
- package/dist/cli-modules/websocket-handler.d.ts +16 -0
- package/dist/cli-modules/websocket-handler.js +53 -0
- package/dist/cli-modules/websocket-handler.js.map +1 -0
- package/dist/cli.d.ts +1 -0
- package/dist/cli.js +54 -1
- package/dist/cli.js.map +1 -1
- package/dist/code-map/__mocks__/tree-sitter-typescript.d.ts +12 -0
- package/dist/code-map/__mocks__/tree-sitter-typescript.d.ts.map +1 -0
- package/dist/code-map/__mocks__/tree-sitter-typescript.js +14 -0
- package/dist/code-map/__mocks__/tree-sitter-typescript.js.map +1 -0
- package/dist/code-map/__mocks__/wasm-mock.d.ts +2 -0
- package/dist/code-map/__mocks__/wasm-mock.d.ts.map +1 -0
- package/dist/code-map/__mocks__/wasm-mock.js +3 -0
- package/dist/code-map/__mocks__/wasm-mock.js.map +1 -0
- package/dist/code-map/__tests__/parse.test.d.ts +2 -0
- package/dist/code-map/__tests__/parse.test.d.ts.map +1 -0
- package/dist/code-map/__tests__/parse.test.js +231 -0
- package/dist/code-map/__tests__/parse.test.js.map +1 -0
- package/dist/code-map/__tests__/test-langs/consumer.d.ts +2 -0
- package/dist/code-map/__tests__/test-langs/consumer.d.ts.map +1 -0
- package/dist/code-map/__tests__/test-langs/consumer.js +6 -0
- package/dist/code-map/__tests__/test-langs/consumer.js.map +1 -0
- package/dist/code-map/__tests__/test-langs/empty.d.ts +1 -0
- package/dist/code-map/__tests__/test-langs/empty.d.ts.map +1 -0
- package/dist/code-map/__tests__/test-langs/empty.js +2 -0
- package/dist/code-map/__tests__/test-langs/empty.js.map +1 -0
- package/dist/code-map/__tests__/test-langs/test.d.ts +12 -0
- package/dist/code-map/__tests__/test-langs/test.d.ts.map +1 -0
- package/dist/code-map/__tests__/test-langs/test.js +23 -0
- package/dist/code-map/__tests__/test-langs/test.js.map +1 -0
- package/dist/code-map/__tests__/test-langs/unused.d.ts +2 -0
- package/dist/code-map/__tests__/test-langs/unused.d.ts.map +1 -0
- package/dist/code-map/__tests__/test-langs/unused.js +7 -0
- package/dist/code-map/__tests__/test-langs/unused.js.map +1 -0
- package/dist/code-map/__tests__/test-langs/utils1.d.ts +2 -0
- package/dist/code-map/__tests__/test-langs/utils1.d.ts.map +1 -0
- package/dist/code-map/__tests__/test-langs/utils1.js +7 -0
- package/dist/code-map/__tests__/test-langs/utils1.js.map +1 -0
- package/dist/code-map/__tests__/test-langs/utils2.d.ts +2 -0
- package/dist/code-map/__tests__/test-langs/utils2.d.ts.map +1 -0
- package/dist/code-map/__tests__/test-langs/utils2.js +8 -0
- package/dist/code-map/__tests__/test-langs/utils2.js.map +1 -0
- package/dist/code-map/__tests__/tree-sitter-minimal.test.d.ts +2 -0
- package/dist/code-map/__tests__/tree-sitter-minimal.test.d.ts.map +1 -0
- package/dist/code-map/__tests__/tree-sitter-minimal.test.js +79 -0
- package/dist/code-map/__tests__/tree-sitter-minimal.test.js.map +1 -0
- package/dist/code-map/jest.config.d.ts +4 -0
- package/dist/code-map/jest.config.d.ts.map +1 -0
- package/dist/code-map/jest.config.js +18 -0
- package/dist/code-map/jest.config.js.map +1 -0
- package/dist/code-map/parse.test.d.ts +2 -0
- package/dist/code-map/parse.test.d.ts.map +1 -0
- package/dist/code-map/parse.test.js +218 -0
- package/dist/code-map/parse.test.js.map +1 -0
- package/dist/code-map/scripts/tree-sitter-test.cjs +27 -0
- package/dist/code-map/scripts/tree-sitter-test.cjs.map +1 -0
- package/dist/code-map/scripts/tree-sitter-test.d.cts +2 -0
- package/dist/code-map/scripts/tree-sitter-test.d.cts.map +1 -0
- package/dist/code-map/scripts/tree-sitter-test.d.ts +2 -0
- package/dist/code-map/scripts/tree-sitter-test.d.ts.map +1 -0
- package/dist/code-map/scripts/tree-sitter-test.js +54 -0
- package/dist/code-map/scripts/tree-sitter-test.js.map +1 -0
- package/dist/code-map/test-parser.d.ts +2 -0
- package/dist/code-map/test-parser.d.ts.map +1 -0
- package/dist/code-map/test-parser.js +42 -0
- package/dist/code-map/test-parser.js.map +1 -0
- package/dist/code-map/tsconfig.tsbuildinfo +1 -1
- package/dist/common/bigquery/client.d.ts +15 -0
- package/dist/common/bigquery/client.js +265 -0
- package/dist/common/bigquery/client.js.map +1 -0
- package/dist/common/bigquery/schema.d.ts +55 -0
- package/dist/common/bigquery/schema.js +24 -0
- package/dist/common/bigquery/schema.js.map +1 -0
- package/dist/common/browser-actions.d.ts +234 -234
- package/dist/common/util/file-metadata.d.ts +9 -0
- package/dist/common/util/file-metadata.js +24 -0
- package/dist/common/util/file-metadata.js.map +1 -0
- package/dist/index.js +7 -1
- package/package.json +1 -1
- package/dist/common/credit-delegation.d.ts +0 -19
- package/dist/common/credit-delegation.js +0 -97
- package/dist/common/credit-delegation.js.map +0 -1
- package/dist/common/types/organization.d.ts +0 -102
- package/dist/common/types/organization.js.map +0 -1
- package/dist/organization-context.d.ts +0 -47
- package/dist/organization-context.js +0 -170
- package/dist/organization-context.js.map +0 -1
- package/dist/slash-commands.d.ts +0 -7
- package/dist/slash-commands.js +0 -21
- package/dist/slash-commands.js.map +0 -1
- package/dist/utils/image.d.ts +0 -4
- package/dist/utils/image.js +0 -67
- package/dist/utils/image.js.map +0 -1
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { TokenCallerMap } from '../../code-map/parse';
|
|
2
|
+
/**
|
|
3
|
+
* Appends caller metadata to file content showing which files reference tokens defined in this file
|
|
4
|
+
* @param content The original file content
|
|
5
|
+
* @param filePath The path of the file
|
|
6
|
+
* @param tokenCallers Map of files to their token callers
|
|
7
|
+
* @returns The content with caller metadata appended
|
|
8
|
+
*/
|
|
9
|
+
export declare function appendCallerMetadata(content: string, filePath: string, tokenCallers: TokenCallerMap | undefined): string;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.appendCallerMetadata = appendCallerMetadata;
|
|
4
|
+
/**
|
|
5
|
+
* Appends caller metadata to file content showing which files reference tokens defined in this file
|
|
6
|
+
* @param content The original file content
|
|
7
|
+
* @param filePath The path of the file
|
|
8
|
+
* @param tokenCallers Map of files to their token callers
|
|
9
|
+
* @returns The content with caller metadata appended
|
|
10
|
+
*/
|
|
11
|
+
function appendCallerMetadata(content, filePath, tokenCallers) {
|
|
12
|
+
if (!tokenCallers?.[filePath])
|
|
13
|
+
return content;
|
|
14
|
+
const callersByToken = tokenCallers[filePath];
|
|
15
|
+
const callerInfo = Object.entries(callersByToken)
|
|
16
|
+
.filter(([_, callers]) => callers.length > 0)
|
|
17
|
+
.map(([token, callers]) => `${token}: ${callers.join(', ')}`)
|
|
18
|
+
.join('\n');
|
|
19
|
+
if (!callerInfo)
|
|
20
|
+
return content;
|
|
21
|
+
console.log('got callerInfo', callerInfo);
|
|
22
|
+
return `${content}\n\n<referenced_by>\n${callerInfo}\n</referenced_by>`;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=file-metadata.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-metadata.js","sourceRoot":"","sources":["../../src/util/file-metadata.ts"],"names":[],"mappings":";;AASA,oDAkBC;AAzBD;;;;;;GAMG;AACH,SAAgB,oBAAoB,CAClC,OAAe,EACf,QAAgB,EAChB,YAAwC;IAExC,IAAI,CAAC,YAAY,EAAE,CAAC,QAAQ,CAAC;QAAE,OAAO,OAAO,CAAA;IAE7C,MAAM,cAAc,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAA;IAC7C,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC;SAC9C,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;SAC5C,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;SAC5D,IAAI,CAAC,IAAI,CAAC,CAAA;IAEb,IAAI,CAAC,UAAU;QAAE,OAAO,OAAO,CAAA;IAE/B,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAA;IAEzC,OAAO,GAAG,OAAO,wBAAwB,UAAU,oBAAoB,CAAA;AACzE,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -4,7 +4,13 @@ process.env.NEXT_PUBLIC_BACKEND_URL = 'manicode-backend.onrender.com';
|
|
|
4
4
|
process.env.NEXT_PUBLIC_APP_URL = 'https://codebuff.com';
|
|
5
5
|
process.env.NEXT_PUBLIC_SUPPORT_EMAIL = 'support@codebuff.com';
|
|
6
6
|
process.env.NEXT_PUBLIC_POSTHOG_API_KEY = 'phc_tug7g8yc10qNestK14QV8WyKwjfEl6vwzIbJkBdqeHS';
|
|
7
|
-
process.env.NEXT_PUBLIC_POSTHOG_HOST_URL = 'https://us.i.posthog.com';
|
|
7
|
+
process.env.NEXT_PUBLIC_POSTHOG_HOST_URL = 'https://us.i.posthog.com/';
|
|
8
|
+
process.env.NEXT_PUBLIC_CB_ENVIRONMENT = 'production';
|
|
9
|
+
process.env.NEXT_PUBLIC_BACKEND_URL = 'manicode-backend.onrender.com';
|
|
10
|
+
process.env.NEXT_PUBLIC_APP_URL = 'https://codebuff.com';
|
|
11
|
+
process.env.NEXT_PUBLIC_SUPPORT_EMAIL = 'support@codebuff.com';
|
|
12
|
+
process.env.NEXT_PUBLIC_POSTHOG_API_KEY = 'phc_tug7g8yc10qNestK14QV8WyKwjfEl6vwzIbJkBdqeHS';
|
|
13
|
+
process.env.NEXT_PUBLIC_POSTHOG_HOST_URL = 'https://us.i.posthog.com/';
|
|
8
14
|
"use strict";
|
|
9
15
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
10
16
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
package/package.json
CHANGED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
export interface OrganizationLookupResult {
|
|
2
|
-
found: boolean;
|
|
3
|
-
organizationId?: string;
|
|
4
|
-
organizationName?: string;
|
|
5
|
-
}
|
|
6
|
-
export interface CreditDelegationResult {
|
|
7
|
-
useOrganization: boolean;
|
|
8
|
-
organizationId?: string;
|
|
9
|
-
organizationName?: string;
|
|
10
|
-
fallbackToPersonal: boolean;
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* Finds the organization associated with a repository for a given user
|
|
14
|
-
*/
|
|
15
|
-
export declare function findOrganizationForRepository(userId: string, repositoryUrl: string): Promise<OrganizationLookupResult>;
|
|
16
|
-
/**
|
|
17
|
-
* Determines credit delegation for a user and repository
|
|
18
|
-
*/
|
|
19
|
-
export declare function consumeCreditsWithDelegation(userId: string, repositoryUrl: string, creditsToConsume: number): Promise<CreditDelegationResult>;
|
|
@@ -1,97 +0,0 @@
|
|
|
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.findOrganizationForRepository = findOrganizationForRepository;
|
|
30
|
-
exports.consumeCreditsWithDelegation = consumeCreditsWithDelegation;
|
|
31
|
-
const db_1 = __importDefault(require("./db"));
|
|
32
|
-
const schema = __importStar(require("./db/schema"));
|
|
33
|
-
const drizzle_orm_1 = require("drizzle-orm");
|
|
34
|
-
/**
|
|
35
|
-
* Finds the organization associated with a repository for a given user
|
|
36
|
-
*/
|
|
37
|
-
async function findOrganizationForRepository(userId, repositoryUrl) {
|
|
38
|
-
try {
|
|
39
|
-
// Normalize repository URL (remove trailing slash, convert to lowercase)
|
|
40
|
-
const normalizedUrl = repositoryUrl.toLowerCase().replace(/\/$/, '');
|
|
41
|
-
// Find the repository in org_repo table
|
|
42
|
-
const orgRepo = await db_1.default.query.orgRepo.findFirst({
|
|
43
|
-
where: (0, drizzle_orm_1.and)((0, drizzle_orm_1.eq)(schema.orgRepo.repo_url, normalizedUrl), (0, drizzle_orm_1.eq)(schema.orgRepo.is_active, true)),
|
|
44
|
-
with: {
|
|
45
|
-
org: {
|
|
46
|
-
columns: {
|
|
47
|
-
id: true,
|
|
48
|
-
name: true,
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
});
|
|
53
|
-
if (!orgRepo) {
|
|
54
|
-
return { found: false };
|
|
55
|
-
}
|
|
56
|
-
// Explicitly check if org relation was loaded
|
|
57
|
-
if (!orgRepo.org) {
|
|
58
|
-
console.error(`Organization details not loaded for org_id: ${orgRepo.org_id}`);
|
|
59
|
-
return { found: false };
|
|
60
|
-
}
|
|
61
|
-
// Check if the user is a member of this organization
|
|
62
|
-
const membership = await db_1.default.query.orgMember.findFirst({
|
|
63
|
-
where: (0, drizzle_orm_1.and)((0, drizzle_orm_1.eq)(schema.orgMember.org_id, orgRepo.org_id), (0, drizzle_orm_1.eq)(schema.orgMember.user_id, userId))
|
|
64
|
-
});
|
|
65
|
-
if (!membership) {
|
|
66
|
-
return { found: false };
|
|
67
|
-
}
|
|
68
|
-
return {
|
|
69
|
-
found: true,
|
|
70
|
-
organizationId: orgRepo.org_id,
|
|
71
|
-
organizationName: orgRepo.org.name
|
|
72
|
-
};
|
|
73
|
-
}
|
|
74
|
-
catch (error) {
|
|
75
|
-
console.error('Error finding organization for repository:', error);
|
|
76
|
-
return { found: false };
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* Determines credit delegation for a user and repository
|
|
81
|
-
*/
|
|
82
|
-
async function consumeCreditsWithDelegation(userId, repositoryUrl, creditsToConsume) {
|
|
83
|
-
const orgLookup = await findOrganizationForRepository(userId, repositoryUrl);
|
|
84
|
-
if (orgLookup.found) {
|
|
85
|
-
return {
|
|
86
|
-
useOrganization: true,
|
|
87
|
-
organizationId: orgLookup.organizationId,
|
|
88
|
-
organizationName: orgLookup.organizationName,
|
|
89
|
-
fallbackToPersonal: false
|
|
90
|
-
};
|
|
91
|
-
}
|
|
92
|
-
return {
|
|
93
|
-
useOrganization: false,
|
|
94
|
-
fallbackToPersonal: true
|
|
95
|
-
};
|
|
96
|
-
}
|
|
97
|
-
//# sourceMappingURL=credit-delegation.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"credit-delegation.js","sourceRoot":"","sources":["../src/credit-delegation.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BA,sEAuDC;AAKD,oEAoBC;AA5GD,8CAAqB;AACrB,oDAAqC;AACrC,6CAAqC;AAuBrC;;GAEG;AACI,KAAK,UAAU,6BAA6B,CACjD,MAAc,EACd,aAAqB;IAErB,IAAI,CAAC;QACH,yEAAyE;QACzE,MAAM,aAAa,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;QAEpE,wCAAwC;QACxC,MAAM,OAAO,GAAG,MAAM,YAAE,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;YAC/C,KAAK,EAAE,IAAA,iBAAG,EACR,IAAA,gBAAE,EAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,aAAa,CAAC,EAC1C,IAAA,gBAAE,EAAC,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CACnC;YACD,IAAI,EAAE;gBACJ,GAAG,EAAE;oBACH,OAAO,EAAE;wBACP,EAAE,EAAE,IAAI;wBACR,IAAI,EAAE,IAAI;qBACX;iBACF;aACF;SACF,CAA+B,CAAA;QAEhC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;QACzB,CAAC;QAED,8CAA8C;QAC9C,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;YACjB,OAAO,CAAC,KAAK,CAAC,+CAA+C,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;YAC9E,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;QACzB,CAAC;QAED,qDAAqD;QACrD,MAAM,UAAU,GAAG,MAAM,YAAE,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC;YACpD,KAAK,EAAE,IAAA,iBAAG,EACR,IAAA,gBAAE,EAAC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,EAC3C,IAAA,gBAAE,EAAC,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,CACrC;SACF,CAAC,CAAA;QAEF,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;QACzB,CAAC;QAED,OAAO;YACL,KAAK,EAAE,IAAI;YACX,cAAc,EAAE,OAAO,CAAC,MAAM;YAC9B,gBAAgB,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI;SACnC,CAAA;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,4CAA4C,EAAE,KAAK,CAAC,CAAA;QAClE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;IACzB,CAAC;AACH,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,4BAA4B,CAChD,MAAc,EACd,aAAqB,EACrB,gBAAwB;IAExB,MAAM,SAAS,GAAG,MAAM,6BAA6B,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;IAE5E,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;QACpB,OAAO;YACL,eAAe,EAAE,IAAI;YACrB,cAAc,EAAE,SAAS,CAAC,cAAc;YACxC,gBAAgB,EAAE,SAAS,CAAC,gBAAgB;YAC5C,kBAAkB,EAAE,KAAK;SAC1B,CAAA;IACH,CAAC;IAED,OAAO;QACL,eAAe,EAAE,KAAK;QACtB,kBAAkB,EAAE,IAAI;KACzB,CAAA;AACH,CAAC"}
|
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
export type OrganizationRole = 'owner' | 'admin' | 'member';
|
|
2
|
-
export interface OrganizationMember {
|
|
3
|
-
organization_id: string;
|
|
4
|
-
user_id: string;
|
|
5
|
-
role: OrganizationRole;
|
|
6
|
-
joined_at: Date;
|
|
7
|
-
}
|
|
8
|
-
export interface Organization {
|
|
9
|
-
id: string;
|
|
10
|
-
name: string;
|
|
11
|
-
slug: string;
|
|
12
|
-
description?: string;
|
|
13
|
-
owner_id: string;
|
|
14
|
-
stripe_customer_id?: string;
|
|
15
|
-
created_at: Date;
|
|
16
|
-
updated_at: Date;
|
|
17
|
-
}
|
|
18
|
-
export interface OrganizationRepository {
|
|
19
|
-
id: string;
|
|
20
|
-
organization_id: string;
|
|
21
|
-
repository_url: string;
|
|
22
|
-
repository_name: string;
|
|
23
|
-
approved_by: string;
|
|
24
|
-
approved_at: Date;
|
|
25
|
-
is_active: boolean;
|
|
26
|
-
}
|
|
27
|
-
export interface OrganizationUsage {
|
|
28
|
-
id: string;
|
|
29
|
-
organization_id: string;
|
|
30
|
-
user_id: string;
|
|
31
|
-
repository_url: string;
|
|
32
|
-
credits_used: number;
|
|
33
|
-
message_id?: string;
|
|
34
|
-
created_at: Date;
|
|
35
|
-
}
|
|
36
|
-
export interface CreateOrganizationRequest {
|
|
37
|
-
name: string;
|
|
38
|
-
slug?: string;
|
|
39
|
-
description?: string;
|
|
40
|
-
}
|
|
41
|
-
export interface ListOrganizationsResponse {
|
|
42
|
-
organizations: Array<{
|
|
43
|
-
id: string;
|
|
44
|
-
name: string;
|
|
45
|
-
slug: string;
|
|
46
|
-
role: OrganizationRole;
|
|
47
|
-
memberCount: number;
|
|
48
|
-
repositoryCount: number;
|
|
49
|
-
}>;
|
|
50
|
-
}
|
|
51
|
-
export interface OrganizationDetailsResponse {
|
|
52
|
-
id: string;
|
|
53
|
-
name: string;
|
|
54
|
-
slug: string;
|
|
55
|
-
description?: string;
|
|
56
|
-
owner_id: string;
|
|
57
|
-
created_at: string;
|
|
58
|
-
userRole: OrganizationRole;
|
|
59
|
-
memberCount: number;
|
|
60
|
-
repositoryCount: number;
|
|
61
|
-
creditBalance?: number;
|
|
62
|
-
}
|
|
63
|
-
export interface InviteMemberRequest {
|
|
64
|
-
email: string;
|
|
65
|
-
role: 'admin' | 'member';
|
|
66
|
-
}
|
|
67
|
-
export interface UpdateMemberRoleRequest {
|
|
68
|
-
role: 'admin' | 'member';
|
|
69
|
-
}
|
|
70
|
-
export interface AddRepositoryRequest {
|
|
71
|
-
repository_url: string;
|
|
72
|
-
repository_name: string;
|
|
73
|
-
}
|
|
74
|
-
export interface OrganizationUsageResponse {
|
|
75
|
-
currentBalance: number;
|
|
76
|
-
usageThisCycle: number;
|
|
77
|
-
topUsers: Array<{
|
|
78
|
-
user_id: string;
|
|
79
|
-
user_name: string;
|
|
80
|
-
credits_used: number;
|
|
81
|
-
}>;
|
|
82
|
-
recentUsage: Array<{
|
|
83
|
-
date: string;
|
|
84
|
-
credits_used: number;
|
|
85
|
-
repository_url: string;
|
|
86
|
-
user_name: string;
|
|
87
|
-
}>;
|
|
88
|
-
}
|
|
89
|
-
export interface CreditDelegationResult {
|
|
90
|
-
useOrganization: boolean;
|
|
91
|
-
organizationId?: string;
|
|
92
|
-
requiresOverride: boolean;
|
|
93
|
-
organizationBalance?: number;
|
|
94
|
-
userBalance?: number;
|
|
95
|
-
}
|
|
96
|
-
export interface CreditConsumptionWithDelegationResult {
|
|
97
|
-
success: boolean;
|
|
98
|
-
consumed: number;
|
|
99
|
-
fromOrganization: boolean;
|
|
100
|
-
organizationId?: string;
|
|
101
|
-
error?: string;
|
|
102
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"organization.js","sourceRoot":"","sources":["../../src/types/organization.ts"],"names":[],"mappings":""}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { Client } from './client';
|
|
2
|
-
export interface OrganizationContext {
|
|
3
|
-
currentOrganization?: {
|
|
4
|
-
id: string;
|
|
5
|
-
name: string;
|
|
6
|
-
creditBalance: number;
|
|
7
|
-
};
|
|
8
|
-
repositoryOrganization?: {
|
|
9
|
-
id: string;
|
|
10
|
-
name: string;
|
|
11
|
-
};
|
|
12
|
-
fallbackToPersonal: boolean;
|
|
13
|
-
repositoryUrl?: string;
|
|
14
|
-
usingOrganizationCredits: boolean;
|
|
15
|
-
organizationBalance?: number;
|
|
16
|
-
userBalance?: number;
|
|
17
|
-
}
|
|
18
|
-
export declare class OrganizationContextManager {
|
|
19
|
-
private context;
|
|
20
|
-
updateContextForRepository(repositoryUrl: string): Promise<void>;
|
|
21
|
-
getDisplayMessage(): string;
|
|
22
|
-
getContext(): OrganizationContext;
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Determines organization context for the current project
|
|
26
|
-
*/
|
|
27
|
-
export declare function getOrganizationContext(client: Client): Promise<OrganizationContext>;
|
|
28
|
-
/**
|
|
29
|
-
* Displays organization context information to the user
|
|
30
|
-
*/
|
|
31
|
-
export declare function displayOrganizationContext(context: OrganizationContext): string;
|
|
32
|
-
/**
|
|
33
|
-
* Formats credit usage information with organization context
|
|
34
|
-
*/
|
|
35
|
-
export declare function formatCreditUsage(creditsUsed: number, context: OrganizationContext): string;
|
|
36
|
-
/**
|
|
37
|
-
* Checks if user can override organization credit usage
|
|
38
|
-
*/
|
|
39
|
-
export declare function canOverrideOrganizationCredits(context: OrganizationContext): boolean;
|
|
40
|
-
/**
|
|
41
|
-
* Gets organization-specific CLI commands
|
|
42
|
-
*/
|
|
43
|
-
export declare function getOrganizationCommands(): Array<{
|
|
44
|
-
command: string;
|
|
45
|
-
description: string;
|
|
46
|
-
handler: () => Promise<void>;
|
|
47
|
-
}>;
|
|
@@ -1,170 +0,0 @@
|
|
|
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 project_files_1 = require("./project-files");
|
|
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 repositoryUrl = await (0, project_files_1.getCurrentRepositoryUrl)();
|
|
71
|
-
if (!repositoryUrl) {
|
|
72
|
-
return {
|
|
73
|
-
usingOrganizationCredits: false,
|
|
74
|
-
fallbackToPersonal: true,
|
|
75
|
-
};
|
|
76
|
-
}
|
|
77
|
-
// Check if this repository is associated with an organization
|
|
78
|
-
// This would typically be done via an API call to the backend
|
|
79
|
-
// For now, we'll implement a placeholder
|
|
80
|
-
const context = {
|
|
81
|
-
repositoryUrl,
|
|
82
|
-
usingOrganizationCredits: false,
|
|
83
|
-
fallbackToPersonal: true,
|
|
84
|
-
};
|
|
85
|
-
// TODO: Implement API call to check organization association
|
|
86
|
-
// const orgInfo = await client.checkOrganizationForRepository(repositoryUrl)
|
|
87
|
-
// if (orgInfo) {
|
|
88
|
-
// context.organizationId = orgInfo.id
|
|
89
|
-
// context.organizationName = orgInfo.name
|
|
90
|
-
// context.usingOrganizationCredits = true
|
|
91
|
-
// context.organizationBalance = orgInfo.balance
|
|
92
|
-
// }
|
|
93
|
-
return context;
|
|
94
|
-
}
|
|
95
|
-
catch (error) {
|
|
96
|
-
logger_1.logger.error({ error }, 'Error getting organization context');
|
|
97
|
-
return {
|
|
98
|
-
usingOrganizationCredits: false,
|
|
99
|
-
fallbackToPersonal: true,
|
|
100
|
-
};
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
/**
|
|
104
|
-
* Displays organization context information to the user
|
|
105
|
-
*/
|
|
106
|
-
function displayOrganizationContext(context) {
|
|
107
|
-
if (!context.usingOrganizationCredits) {
|
|
108
|
-
return 'Using personal credits';
|
|
109
|
-
}
|
|
110
|
-
const parts = [];
|
|
111
|
-
if (context.repositoryOrganization?.name) {
|
|
112
|
-
parts.push(`Organization: ${context.repositoryOrganization.name}`);
|
|
113
|
-
}
|
|
114
|
-
if (context.organizationBalance !== undefined) {
|
|
115
|
-
parts.push(`Org Credits: ${context.organizationBalance.toLocaleString()}`);
|
|
116
|
-
}
|
|
117
|
-
if (context.userBalance !== undefined) {
|
|
118
|
-
parts.push(`Personal Credits: ${context.userBalance.toLocaleString()}`);
|
|
119
|
-
}
|
|
120
|
-
return parts.join(' | ');
|
|
121
|
-
}
|
|
122
|
-
/**
|
|
123
|
-
* Formats credit usage information with organization context
|
|
124
|
-
*/
|
|
125
|
-
function formatCreditUsage(creditsUsed, context) {
|
|
126
|
-
const baseMessage = `Used ${creditsUsed.toLocaleString()} credits`;
|
|
127
|
-
if (context.usingOrganizationCredits && context.repositoryOrganization?.name) {
|
|
128
|
-
return `${baseMessage} (from ${context.repositoryOrganization.name})`;
|
|
129
|
-
}
|
|
130
|
-
return `${baseMessage} (personal)`;
|
|
131
|
-
}
|
|
132
|
-
/**
|
|
133
|
-
* Checks if user can override organization credit usage
|
|
134
|
-
*/
|
|
135
|
-
function canOverrideOrganizationCredits(context) {
|
|
136
|
-
// Users can always fall back to personal credits if they have them
|
|
137
|
-
return context.userBalance !== undefined && context.userBalance > 0;
|
|
138
|
-
}
|
|
139
|
-
/**
|
|
140
|
-
* Gets organization-specific CLI commands
|
|
141
|
-
*/
|
|
142
|
-
function getOrganizationCommands() {
|
|
143
|
-
return [
|
|
144
|
-
{
|
|
145
|
-
command: '/org-status',
|
|
146
|
-
description: 'Show organization credit status',
|
|
147
|
-
handler: async () => {
|
|
148
|
-
// TODO: Implement organization status display
|
|
149
|
-
console.log('Organization status not yet implemented');
|
|
150
|
-
},
|
|
151
|
-
},
|
|
152
|
-
{
|
|
153
|
-
command: '/org-switch',
|
|
154
|
-
description: 'Switch between personal and organization credits',
|
|
155
|
-
handler: async () => {
|
|
156
|
-
// TODO: Implement organization switching
|
|
157
|
-
console.log('Organization switching not yet implemented');
|
|
158
|
-
},
|
|
159
|
-
},
|
|
160
|
-
{
|
|
161
|
-
command: '/org-usage',
|
|
162
|
-
description: 'Show organization usage breakdown',
|
|
163
|
-
handler: async () => {
|
|
164
|
-
// TODO: Implement organization usage display
|
|
165
|
-
console.log('Organization usage display not yet implemented');
|
|
166
|
-
},
|
|
167
|
-
},
|
|
168
|
-
];
|
|
169
|
-
}
|
|
170
|
-
//# sourceMappingURL=organization-context.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"organization-context.js","sourceRoot":"","sources":["../src/organization-context.ts"],"names":[],"mappings":"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"}
|
package/dist/slash-commands.d.ts
DELETED
package/dist/slash-commands.js
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
package/dist/utils/image.d.ts
DELETED
package/dist/utils/image.js
DELETED
|
@@ -1,67 +0,0 @@
|
|
|
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
|
package/dist/utils/image.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
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"}
|