@decaf-ts/mcp-server 0.4.17 → 0.4.19
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/lib/assets/prompts/documentation/class.enc +0 -0
- package/lib/assets/prompts/documentation/constant.enc +0 -0
- package/lib/assets/prompts/documentation/decorator.enc +0 -0
- package/lib/assets/prompts/documentation/file.enc +0 -0
- package/lib/assets/prompts/documentation/function.enc +0 -0
- package/lib/assets/prompts/documentation/interface.enc +0 -0
- package/lib/assets/prompts/documentation/iterate.enc +1 -0
- package/lib/assets/prompts/documentation/module.enc +0 -0
- package/lib/assets/prompts/documentation/prefix.enc +2 -0
- package/lib/assets/prompts/documentation/repo.enc +0 -0
- package/lib/assets/prompts/documentation/suffix.enc +0 -0
- package/lib/assets/prompts/repository/readme.enc +0 -0
- package/lib/assets/prompts/repository/release_notes.enc +0 -0
- package/lib/assets/prompts/repository/setup.enc +0 -0
- package/lib/assets/prompts/tests/coverage.enc +0 -0
- package/lib/esm/utils/asset-path.d.ts +1 -0
- package/lib/esm/utils/asset-path.js +43 -0
- package/lib/esm/utils/asset-path.js.map +1 -0
- package/lib/esm/utils/assets.js +22 -5
- package/lib/esm/utils/assets.js.map +1 -1
- package/lib/esm/utils/environment.js +4 -4
- package/lib/esm/utils/environment.js.map +1 -1
- package/lib/esm/utils/obfuscation.d.ts +2 -0
- package/lib/esm/utils/obfuscation.js +59 -0
- package/lib/esm/utils/obfuscation.js.map +1 -0
- package/lib/esm/version.d.ts +1 -1
- package/lib/esm/version.js +1 -1
- package/lib/utils/asset-path.cjs +79 -0
- package/lib/utils/asset-path.d.ts +1 -0
- package/lib/utils/asset-path.js.map +1 -0
- package/lib/utils/assets.cjs +21 -4
- package/lib/utils/assets.js.map +1 -1
- package/lib/utils/environment.cjs +4 -7
- package/lib/utils/environment.js.map +1 -1
- package/lib/utils/obfuscation.cjs +66 -0
- package/lib/utils/obfuscation.d.ts +2 -0
- package/lib/utils/obfuscation.js.map +1 -0
- package/lib/version.cjs +1 -1
- package/lib/version.d.ts +1 -1
- package/package.json +4 -3
- package/dist/assets/code/patterns/builder.json +0 -10
- package/dist/assets/prompts/documentation/class.json +0 -10
- package/dist/assets/prompts/documentation/constant.json +0 -10
- package/dist/assets/prompts/documentation/decorator.json +0 -10
- package/dist/assets/prompts/documentation/file.json +0 -10
- package/dist/assets/prompts/documentation/function.json +0 -10
- package/dist/assets/prompts/documentation/interface.json +0 -10
- package/dist/assets/prompts/documentation/iterate.json +0 -10
- package/dist/assets/prompts/documentation/module.json +0 -10
- package/dist/assets/prompts/documentation/prefix.json +0 -10
- package/dist/assets/prompts/documentation/repo.json +0 -10
- package/dist/assets/prompts/documentation/suffix.json +0 -10
- package/dist/assets/prompts/repository/readme.json +0 -10
- package/dist/assets/prompts/repository/release_notes.json +0 -10
- package/dist/assets/prompts/repository/setup.json +0 -10
- package/dist/assets/prompts/tests/coverage.json +0 -10
- package/dist/mcp-server.cjs +0 -2
- package/dist/mcp-server.cjs.map +0 -1
- package/dist/mcp-server.js +0 -2
- package/dist/mcp-server.js.map +0 -1
- package/lib/assets/prompts/documentation/class.json +0 -10
- package/lib/assets/prompts/documentation/constant.json +0 -10
- package/lib/assets/prompts/documentation/decorator.json +0 -10
- package/lib/assets/prompts/documentation/file.json +0 -10
- package/lib/assets/prompts/documentation/function.json +0 -10
- package/lib/assets/prompts/documentation/interface.json +0 -10
- package/lib/assets/prompts/documentation/iterate.json +0 -10
- package/lib/assets/prompts/documentation/module.json +0 -10
- package/lib/assets/prompts/documentation/prefix.json +0 -10
- package/lib/assets/prompts/documentation/repo.json +0 -10
- package/lib/assets/prompts/documentation/suffix.json +0 -10
- package/lib/assets/prompts/repository/readme.json +0 -10
- package/lib/assets/prompts/repository/release_notes.json +0 -10
- package/lib/assets/prompts/repository/setup.json +0 -10
- package/lib/assets/prompts/tests/coverage.json +0 -10
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
DCAF1j�h!z�_Eコz�〭'5[��p��/go���q���{� pŊUC�"x�o�P*�5��Fkv���!��i~����:���I9���i�:K5�%Q�3yC��&g�FPx�E��\����=�Im��ꚏӪf�ح��]���&�F��7o���G��>�D�2
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function resolveAssetsDir(): string;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import * as fs from "fs";
|
|
2
|
+
import * as path from "path";
|
|
3
|
+
function findAssetsDir(startDir) {
|
|
4
|
+
let current = startDir;
|
|
5
|
+
while (true) {
|
|
6
|
+
const libAssets = path.join(current, "lib", "assets");
|
|
7
|
+
if (fs.existsSync(libAssets))
|
|
8
|
+
return libAssets;
|
|
9
|
+
const srcAssets = path.join(current, "src", "assets");
|
|
10
|
+
if (fs.existsSync(srcAssets))
|
|
11
|
+
return srcAssets;
|
|
12
|
+
const plainAssets = path.join(current, "assets");
|
|
13
|
+
if (fs.existsSync(plainAssets))
|
|
14
|
+
return plainAssets;
|
|
15
|
+
const parent = path.dirname(current);
|
|
16
|
+
if (parent === current)
|
|
17
|
+
break;
|
|
18
|
+
current = parent;
|
|
19
|
+
}
|
|
20
|
+
return undefined;
|
|
21
|
+
}
|
|
22
|
+
export function resolveAssetsDir() {
|
|
23
|
+
const explicit = process.env.DECAF_ASSET_DIR ||
|
|
24
|
+
process.env.MCP_ASSET_DIR ||
|
|
25
|
+
process.env.ASSET_DIR ||
|
|
26
|
+
"";
|
|
27
|
+
if (explicit && fs.existsSync(explicit))
|
|
28
|
+
return explicit;
|
|
29
|
+
const entry = process.argv?.[1];
|
|
30
|
+
if (entry) {
|
|
31
|
+
const fromEntry = findAssetsDir(path.dirname(entry));
|
|
32
|
+
if (fromEntry)
|
|
33
|
+
return fromEntry;
|
|
34
|
+
}
|
|
35
|
+
const roots = [process.cwd(), process.env.INIT_CWD].filter(Boolean);
|
|
36
|
+
for (const root of roots) {
|
|
37
|
+
const found = findAssetsDir(root);
|
|
38
|
+
if (found)
|
|
39
|
+
return found;
|
|
40
|
+
}
|
|
41
|
+
return path.join(process.cwd(), "assets");
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=asset-path.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"asset-path.js","sourceRoot":"","sources":["../../../src/utils/asset-path.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,SAAS,aAAa,CAAC,QAAgB;IACrC,IAAI,OAAO,GAAG,QAAQ,CAAC;IACvB,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QACtD,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAC;QAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QACtD,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAC;QAC/C,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACjD,IAAI,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC;YAAE,OAAO,WAAW,CAAC;QACnD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACrC,IAAI,MAAM,KAAK,OAAO;YAAE,MAAM;QAC9B,OAAO,GAAG,MAAM,CAAC;IACnB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,MAAM,QAAQ,GACZ,OAAO,CAAC,GAAG,CAAC,eAAe;QAC3B,OAAO,CAAC,GAAG,CAAC,aAAa;QACzB,OAAO,CAAC,GAAG,CAAC,SAAS;QACrB,EAAE,CAAC;IACL,IAAI,QAAQ,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC;IAEzD,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAChC,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QACrD,IAAI,SAAS;YAAE,OAAO,SAAS,CAAC;IAClC,CAAC;IAED,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAa,CAAC;IAChF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC;IAC1B,CAAC;IAED,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC;AAC5C,CAAC"}
|
package/lib/esm/utils/assets.js
CHANGED
|
@@ -12,12 +12,14 @@ import * as path from "path";
|
|
|
12
12
|
import { LoggedClass, toSnakeCase } from "@decaf-ts/logging";
|
|
13
13
|
import { SerializationError } from "@decaf-ts/db-decorators";
|
|
14
14
|
import { injectable } from "@decaf-ts/injectable-decorators";
|
|
15
|
-
import { AssetCategory
|
|
15
|
+
import { AssetCategory } from "./constants.js";
|
|
16
16
|
import { toLevel } from "./conversions.js";
|
|
17
|
+
import { decryptObfuscatedPayload } from "./obfuscation.js";
|
|
18
|
+
import { resolveAssetsDir } from "./asset-path.js";
|
|
17
19
|
let AssetReader = class AssetReader extends LoggedClass {
|
|
18
|
-
constructor(basePath
|
|
20
|
+
constructor(basePath) {
|
|
19
21
|
super();
|
|
20
|
-
this.basePath = basePath;
|
|
22
|
+
this.basePath = basePath || getDefaultBasePath();
|
|
21
23
|
}
|
|
22
24
|
listAssets(...folder) {
|
|
23
25
|
const assetDir = path.join(this.basePath, ...folder);
|
|
@@ -29,7 +31,19 @@ let AssetReader = class AssetReader extends LoggedClass {
|
|
|
29
31
|
getAsset(name, format = "md", ...categories) {
|
|
30
32
|
const assetDir = path.join(this.basePath, ...categories);
|
|
31
33
|
const filePath = path.join(assetDir, `${name}.${format}`);
|
|
32
|
-
|
|
34
|
+
if (fs.existsSync(filePath)) {
|
|
35
|
+
if (format === "enc") {
|
|
36
|
+
const payload = fs.readFileSync(filePath);
|
|
37
|
+
return decryptObfuscatedPayload(payload).toString("utf-8");
|
|
38
|
+
}
|
|
39
|
+
return fs.readFileSync(filePath, "utf-8");
|
|
40
|
+
}
|
|
41
|
+
const encFallback = path.join(assetDir, `${name}.enc`);
|
|
42
|
+
if (fs.existsSync(encFallback)) {
|
|
43
|
+
const payload = fs.readFileSync(encFallback);
|
|
44
|
+
return decryptObfuscatedPayload(payload).toString("utf-8");
|
|
45
|
+
}
|
|
46
|
+
throw new Error(`Asset not found: ${path.join(assetDir, `${name}.${format}`)}`);
|
|
33
47
|
}
|
|
34
48
|
getAllAssets(category, ...categories) {
|
|
35
49
|
return this.listAssets(category, ...categories).reduce((acc, fileName) => {
|
|
@@ -72,7 +86,10 @@ let AssetReader = class AssetReader extends LoggedClass {
|
|
|
72
86
|
};
|
|
73
87
|
AssetReader = __decorate([
|
|
74
88
|
injectable(),
|
|
75
|
-
__metadata("design:paramtypes", [
|
|
89
|
+
__metadata("design:paramtypes", [String])
|
|
76
90
|
], AssetReader);
|
|
77
91
|
export { AssetReader };
|
|
92
|
+
function getDefaultBasePath() {
|
|
93
|
+
return resolveAssetsDir();
|
|
94
|
+
}
|
|
78
95
|
//# sourceMappingURL=assets.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assets.js","sourceRoot":"","sources":["../../../src/utils/assets.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAE7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"assets.js","sourceRoot":"","sources":["../../../src/utils/assets.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { LoggedEnvironment } from "@decaf-ts/logging";
|
|
1
|
+
import { LoggedEnvironment, Logging, LogLevel, } from "@decaf-ts/logging";
|
|
2
2
|
import { VERSION } from "./../version.js";
|
|
3
|
-
import
|
|
3
|
+
import { resolveAssetsDir } from "./asset-path.js";
|
|
4
4
|
export const DefaultMcpEnvironment = {
|
|
5
5
|
mcpId: "decaf",
|
|
6
6
|
name: "decaf-ts mcp server",
|
|
@@ -11,7 +11,7 @@ export const DefaultMcpEnvironment = {
|
|
|
11
11
|
repositoryUrl: "https://github.com/decaf-ts/mcp-server",
|
|
12
12
|
license: "AGPL-3.0",
|
|
13
13
|
workingDir: process.cwd(),
|
|
14
|
-
assetDir:
|
|
14
|
+
assetDir: resolveAssetsDir(),
|
|
15
15
|
contacts: [
|
|
16
16
|
{
|
|
17
17
|
name: "Decaf-TS",
|
|
@@ -32,9 +32,9 @@ export const DefaultMcpEnvironment = {
|
|
|
32
32
|
email: "",
|
|
33
33
|
apiKey: "",
|
|
34
34
|
},
|
|
35
|
+
level: LogLevel.error,
|
|
35
36
|
};
|
|
36
37
|
export const Environment = LoggedEnvironment.accumulate(DefaultMcpEnvironment);
|
|
37
|
-
import { Logging } from "@decaf-ts/logging";
|
|
38
38
|
// Initialize logging as early as possible when the project's environment is
|
|
39
39
|
// imported. This ensures modules that perform logging at import-time (or
|
|
40
40
|
// tests that import those modules directly) won't hit an unconfigured
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"environment.js","sourceRoot":"","sources":["../../../src/utils/environment.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"environment.js","sourceRoot":"","sources":["../../../src/utils/environment.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,OAAO,EAEP,QAAQ,GACT,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,OAAO,EAAE,wBAAmB;AACrC,OAAO,EAAE,gBAAgB,EAAE,wBAAqB;AAgChD,MAAM,CAAC,MAAM,qBAAqB,GAAmB;IACnD,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,qBAAqB;IAC3B,KAAK,EAAE,qBAAqB;IAC5B,WAAW,EAAE,+DAA+D;IAC5E,OAAO,EAAE,OAAO;IAChB,UAAU,EAAE,4BAA4B;IACxC,aAAa,EAAE,wCAAwC;IACvD,OAAO,EAAE,UAAU;IACnB,UAAU,EAAE,OAAO,CAAC,GAAG,EAAE;IACzB,QAAQ,EAAE,gBAAgB,EAAE;IAC5B,QAAQ,EAAE;QACR;YACE,IAAI,EAAE,UAAU;YAChB,GAAG,EAAE,4BAA4B;SAClC;KACF;IACD,IAAI,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;IAClD,QAAQ,EAAE,EAAE;IACZ,KAAK,EAAE;QACL;YACE,GAAG,EAAE,6BAA6B;YAClC,QAAQ,EAAE,eAAe;YACzB,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;SACzB;KACF;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,wBAAwB;QAC9B,KAAK,EAAE,EAAE;QACT,MAAM,EAAE,EAAE;KACX;IACD,KAAK,EAAE,QAAQ,CAAC,KAAK;CACJ,CAAC;AAEpB,MAAM,CAAC,MAAM,WAAW,GAAG,iBAAiB,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC;AAE/E,4EAA4E;AAC5E,yEAAyE;AACzE,sEAAsE;AACtE,+DAA+D;AAC/D,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import crypto from "crypto";
|
|
2
|
+
import zlib from "zlib";
|
|
3
|
+
const MAGIC = Buffer.from("DCAF1", "ascii");
|
|
4
|
+
const SALT_BYTES = 16;
|
|
5
|
+
const IV_BYTES = 12;
|
|
6
|
+
const TAG_BYTES = 16;
|
|
7
|
+
function getKeyMaterial() {
|
|
8
|
+
return (process.env.DECAF_PROMPT_KEY ||
|
|
9
|
+
process.env.MCP_PROMPT_KEY ||
|
|
10
|
+
process.env.PROMPT_KEY ||
|
|
11
|
+
"");
|
|
12
|
+
}
|
|
13
|
+
function deriveKey(keyMaterial, salt) {
|
|
14
|
+
return crypto.scryptSync(keyMaterial, salt, 32);
|
|
15
|
+
}
|
|
16
|
+
export function encryptObfuscatedPayload(input) {
|
|
17
|
+
const keyMaterial = getKeyMaterial();
|
|
18
|
+
if (!keyMaterial) {
|
|
19
|
+
throw new Error("Missing prompt key. Set DECAF_PROMPT_KEY (or MCP_PROMPT_KEY/PROMPT_KEY) to encrypt prompts.");
|
|
20
|
+
}
|
|
21
|
+
const salt = crypto.randomBytes(SALT_BYTES);
|
|
22
|
+
const iv = crypto.randomBytes(IV_BYTES);
|
|
23
|
+
const key = deriveKey(keyMaterial, salt);
|
|
24
|
+
const gzipped = zlib.gzipSync(input, { level: 9 });
|
|
25
|
+
const cipher = crypto.createCipheriv("aes-256-gcm", key, iv);
|
|
26
|
+
const ciphertext = Buffer.concat([cipher.update(gzipped), cipher.final()]);
|
|
27
|
+
const tag = cipher.getAuthTag();
|
|
28
|
+
return Buffer.concat([MAGIC, salt, iv, tag, ciphertext]);
|
|
29
|
+
}
|
|
30
|
+
export function decryptObfuscatedPayload(input) {
|
|
31
|
+
if (input.length < MAGIC.length + SALT_BYTES + IV_BYTES + TAG_BYTES) {
|
|
32
|
+
throw new Error("Invalid prompt payload (too short)");
|
|
33
|
+
}
|
|
34
|
+
const magic = input.subarray(0, MAGIC.length);
|
|
35
|
+
if (!magic.equals(MAGIC)) {
|
|
36
|
+
throw new Error("Invalid prompt payload (bad magic)");
|
|
37
|
+
}
|
|
38
|
+
const keyMaterial = getKeyMaterial();
|
|
39
|
+
if (!keyMaterial) {
|
|
40
|
+
throw new Error("Missing prompt key. Set DECAF_PROMPT_KEY (or MCP_PROMPT_KEY/PROMPT_KEY) to load obfuscated prompts.");
|
|
41
|
+
}
|
|
42
|
+
let offset = MAGIC.length;
|
|
43
|
+
const salt = input.subarray(offset, offset + SALT_BYTES);
|
|
44
|
+
offset += SALT_BYTES;
|
|
45
|
+
const iv = input.subarray(offset, offset + IV_BYTES);
|
|
46
|
+
offset += IV_BYTES;
|
|
47
|
+
const tag = input.subarray(offset, offset + TAG_BYTES);
|
|
48
|
+
offset += TAG_BYTES;
|
|
49
|
+
const ciphertext = input.subarray(offset);
|
|
50
|
+
const key = deriveKey(keyMaterial, salt);
|
|
51
|
+
const decipher = crypto.createDecipheriv("aes-256-gcm", key, iv);
|
|
52
|
+
decipher.setAuthTag(tag);
|
|
53
|
+
const plaintext = Buffer.concat([
|
|
54
|
+
decipher.update(ciphertext),
|
|
55
|
+
decipher.final(),
|
|
56
|
+
]);
|
|
57
|
+
return zlib.gunzipSync(plaintext);
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=obfuscation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"obfuscation.js","sourceRoot":"","sources":["../../../src/utils/obfuscation.ts"],"names":[],"mappings":"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"}
|
package/lib/esm/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const VERSION = "0.4.
|
|
1
|
+
export declare const VERSION = "0.4.18";
|
|
2
2
|
export declare const PACKAGE_NAME = "@decaf-ts/mcp-server";
|
package/lib/esm/version.js
CHANGED
|
@@ -0,0 +1,79 @@
|
|
|
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 () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.resolveAssetsDir = resolveAssetsDir;
|
|
37
|
+
const fs = __importStar(require("fs"));
|
|
38
|
+
const path = __importStar(require("path"));
|
|
39
|
+
function findAssetsDir(startDir) {
|
|
40
|
+
let current = startDir;
|
|
41
|
+
while (true) {
|
|
42
|
+
const libAssets = path.join(current, "lib", "assets");
|
|
43
|
+
if (fs.existsSync(libAssets))
|
|
44
|
+
return libAssets;
|
|
45
|
+
const srcAssets = path.join(current, "src", "assets");
|
|
46
|
+
if (fs.existsSync(srcAssets))
|
|
47
|
+
return srcAssets;
|
|
48
|
+
const plainAssets = path.join(current, "assets");
|
|
49
|
+
if (fs.existsSync(plainAssets))
|
|
50
|
+
return plainAssets;
|
|
51
|
+
const parent = path.dirname(current);
|
|
52
|
+
if (parent === current)
|
|
53
|
+
break;
|
|
54
|
+
current = parent;
|
|
55
|
+
}
|
|
56
|
+
return undefined;
|
|
57
|
+
}
|
|
58
|
+
function resolveAssetsDir() {
|
|
59
|
+
const explicit = process.env.DECAF_ASSET_DIR ||
|
|
60
|
+
process.env.MCP_ASSET_DIR ||
|
|
61
|
+
process.env.ASSET_DIR ||
|
|
62
|
+
"";
|
|
63
|
+
if (explicit && fs.existsSync(explicit))
|
|
64
|
+
return explicit;
|
|
65
|
+
const entry = process.argv?.[1];
|
|
66
|
+
if (entry) {
|
|
67
|
+
const fromEntry = findAssetsDir(path.dirname(entry));
|
|
68
|
+
if (fromEntry)
|
|
69
|
+
return fromEntry;
|
|
70
|
+
}
|
|
71
|
+
const roots = [process.cwd(), process.env.INIT_CWD].filter(Boolean);
|
|
72
|
+
for (const root of roots) {
|
|
73
|
+
const found = findAssetsDir(root);
|
|
74
|
+
if (found)
|
|
75
|
+
return found;
|
|
76
|
+
}
|
|
77
|
+
return path.join(process.cwd(), "assets");
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=asset-path.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function resolveAssetsDir(): string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"asset-path.js","sourceRoot":"","sources":["../../src/utils/asset-path.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmBA,4CAqBC;AAxCD,uCAAyB;AACzB,2CAA6B;AAE7B,SAAS,aAAa,CAAC,QAAgB;IACrC,IAAI,OAAO,GAAG,QAAQ,CAAC;IACvB,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QACtD,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAC;QAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QACtD,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAC;QAC/C,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACjD,IAAI,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC;YAAE,OAAO,WAAW,CAAC;QACnD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACrC,IAAI,MAAM,KAAK,OAAO;YAAE,MAAM;QAC9B,OAAO,GAAG,MAAM,CAAC;IACnB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAgB,gBAAgB;IAC9B,MAAM,QAAQ,GACZ,OAAO,CAAC,GAAG,CAAC,eAAe;QAC3B,OAAO,CAAC,GAAG,CAAC,aAAa;QACzB,OAAO,CAAC,GAAG,CAAC,SAAS;QACrB,EAAE,CAAC;IACL,IAAI,QAAQ,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC;IAEzD,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAChC,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QACrD,IAAI,SAAS;YAAE,OAAO,SAAS,CAAC;IAClC,CAAC;IAED,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAa,CAAC;IAChF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC;IAC1B,CAAC;IAED,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC;AAC5C,CAAC"}
|
package/lib/utils/assets.cjs
CHANGED
|
@@ -50,10 +50,12 @@ const db_decorators_1 = require("@decaf-ts/db-decorators");
|
|
|
50
50
|
const injectable_decorators_1 = require("@decaf-ts/injectable-decorators");
|
|
51
51
|
const constants_1 = require("./constants.cjs");
|
|
52
52
|
const conversions_1 = require("./conversions.cjs");
|
|
53
|
+
const obfuscation_1 = require("./obfuscation.cjs");
|
|
54
|
+
const asset_path_1 = require("./asset-path.cjs");
|
|
53
55
|
let AssetReader = class AssetReader extends logging_1.LoggedClass {
|
|
54
|
-
constructor(basePath
|
|
56
|
+
constructor(basePath) {
|
|
55
57
|
super();
|
|
56
|
-
this.basePath = basePath;
|
|
58
|
+
this.basePath = basePath || getDefaultBasePath();
|
|
57
59
|
}
|
|
58
60
|
listAssets(...folder) {
|
|
59
61
|
const assetDir = path.join(this.basePath, ...folder);
|
|
@@ -65,7 +67,19 @@ let AssetReader = class AssetReader extends logging_1.LoggedClass {
|
|
|
65
67
|
getAsset(name, format = "md", ...categories) {
|
|
66
68
|
const assetDir = path.join(this.basePath, ...categories);
|
|
67
69
|
const filePath = path.join(assetDir, `${name}.${format}`);
|
|
68
|
-
|
|
70
|
+
if (fs.existsSync(filePath)) {
|
|
71
|
+
if (format === "enc") {
|
|
72
|
+
const payload = fs.readFileSync(filePath);
|
|
73
|
+
return (0, obfuscation_1.decryptObfuscatedPayload)(payload).toString("utf-8");
|
|
74
|
+
}
|
|
75
|
+
return fs.readFileSync(filePath, "utf-8");
|
|
76
|
+
}
|
|
77
|
+
const encFallback = path.join(assetDir, `${name}.enc`);
|
|
78
|
+
if (fs.existsSync(encFallback)) {
|
|
79
|
+
const payload = fs.readFileSync(encFallback);
|
|
80
|
+
return (0, obfuscation_1.decryptObfuscatedPayload)(payload).toString("utf-8");
|
|
81
|
+
}
|
|
82
|
+
throw new Error(`Asset not found: ${path.join(assetDir, `${name}.${format}`)}`);
|
|
69
83
|
}
|
|
70
84
|
getAllAssets(category, ...categories) {
|
|
71
85
|
return this.listAssets(category, ...categories).reduce((acc, fileName) => {
|
|
@@ -109,6 +123,9 @@ let AssetReader = class AssetReader extends logging_1.LoggedClass {
|
|
|
109
123
|
exports.AssetReader = AssetReader;
|
|
110
124
|
exports.AssetReader = AssetReader = __decorate([
|
|
111
125
|
(0, injectable_decorators_1.injectable)(),
|
|
112
|
-
__metadata("design:paramtypes", [
|
|
126
|
+
__metadata("design:paramtypes", [String])
|
|
113
127
|
], AssetReader);
|
|
128
|
+
function getDefaultBasePath() {
|
|
129
|
+
return (0, asset_path_1.resolveAssetsDir)();
|
|
130
|
+
}
|
|
114
131
|
//# sourceMappingURL=assets.js.map
|
package/lib/utils/assets.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assets.js","sourceRoot":"","sources":["../../src/utils/assets.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAyB;AACzB,2CAA6B;AAC7B,+CAA6D;AAE7D,2DAA6D;AAC7D,2EAA6D;AAC7D,+CAAmD;AACnD,mDAAwC;
|
|
1
|
+
{"version":3,"file":"assets.js","sourceRoot":"","sources":["../../src/utils/assets.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.Environment = exports.DefaultMcpEnvironment = void 0;
|
|
7
4
|
const logging_1 = require("@decaf-ts/logging");
|
|
8
5
|
const version_1 = require("./../version.cjs");
|
|
9
|
-
const
|
|
6
|
+
const asset_path_1 = require("./asset-path.cjs");
|
|
10
7
|
exports.DefaultMcpEnvironment = {
|
|
11
8
|
mcpId: "decaf",
|
|
12
9
|
name: "decaf-ts mcp server",
|
|
@@ -17,7 +14,7 @@ exports.DefaultMcpEnvironment = {
|
|
|
17
14
|
repositoryUrl: "https://github.com/decaf-ts/mcp-server",
|
|
18
15
|
license: "AGPL-3.0",
|
|
19
16
|
workingDir: process.cwd(),
|
|
20
|
-
assetDir:
|
|
17
|
+
assetDir: (0, asset_path_1.resolveAssetsDir)(),
|
|
21
18
|
contacts: [
|
|
22
19
|
{
|
|
23
20
|
name: "Decaf-TS",
|
|
@@ -38,12 +35,12 @@ exports.DefaultMcpEnvironment = {
|
|
|
38
35
|
email: "",
|
|
39
36
|
apiKey: "",
|
|
40
37
|
},
|
|
38
|
+
level: logging_1.LogLevel.error,
|
|
41
39
|
};
|
|
42
40
|
exports.Environment = logging_1.LoggedEnvironment.accumulate(exports.DefaultMcpEnvironment);
|
|
43
|
-
const logging_2 = require("@decaf-ts/logging");
|
|
44
41
|
// Initialize logging as early as possible when the project's environment is
|
|
45
42
|
// imported. This ensures modules that perform logging at import-time (or
|
|
46
43
|
// tests that import those modules directly) won't hit an unconfigured
|
|
47
44
|
// logging implementation and throw "Invalid log level" errors.
|
|
48
|
-
|
|
45
|
+
logging_1.Logging.setConfig(exports.Environment);
|
|
49
46
|
//# sourceMappingURL=environment.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"environment.js","sourceRoot":"","sources":["../../src/utils/environment.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"environment.js","sourceRoot":"","sources":["../../src/utils/environment.ts"],"names":[],"mappings":";;;AAAA,+CAK2B;AAC3B,8CAAqC;AACrC,iDAAgD;AAgCnC,QAAA,qBAAqB,GAAmB;IACnD,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,qBAAqB;IAC3B,KAAK,EAAE,qBAAqB;IAC5B,WAAW,EAAE,+DAA+D;IAC5E,OAAO,EAAE,iBAAO;IAChB,UAAU,EAAE,4BAA4B;IACxC,aAAa,EAAE,wCAAwC;IACvD,OAAO,EAAE,UAAU;IACnB,UAAU,EAAE,OAAO,CAAC,GAAG,EAAE;IACzB,QAAQ,EAAE,IAAA,6BAAgB,GAAE;IAC5B,QAAQ,EAAE;QACR;YACE,IAAI,EAAE,UAAU;YAChB,GAAG,EAAE,4BAA4B;SAClC;KACF;IACD,IAAI,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;IAClD,QAAQ,EAAE,EAAE;IACZ,KAAK,EAAE;QACL;YACE,GAAG,EAAE,6BAA6B;YAClC,QAAQ,EAAE,eAAe;YACzB,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;SACzB;KACF;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,wBAAwB;QAC9B,KAAK,EAAE,EAAE;QACT,MAAM,EAAE,EAAE;KACX;IACD,KAAK,EAAE,kBAAQ,CAAC,KAAK;CACJ,CAAC;AAEP,QAAA,WAAW,GAAG,2BAAiB,CAAC,UAAU,CAAC,6BAAqB,CAAC,CAAC;AAE/E,4EAA4E;AAC5E,yEAAyE;AACzE,sEAAsE;AACtE,+DAA+D;AAC/D,iBAAO,CAAC,SAAS,CAAC,mBAAW,CAAC,CAAC"}
|
|
@@ -0,0 +1,66 @@
|
|
|
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.encryptObfuscatedPayload = encryptObfuscatedPayload;
|
|
7
|
+
exports.decryptObfuscatedPayload = decryptObfuscatedPayload;
|
|
8
|
+
const crypto_1 = __importDefault(require("crypto"));
|
|
9
|
+
const zlib_1 = __importDefault(require("zlib"));
|
|
10
|
+
const MAGIC = Buffer.from("DCAF1", "ascii");
|
|
11
|
+
const SALT_BYTES = 16;
|
|
12
|
+
const IV_BYTES = 12;
|
|
13
|
+
const TAG_BYTES = 16;
|
|
14
|
+
function getKeyMaterial() {
|
|
15
|
+
return (process.env.DECAF_PROMPT_KEY ||
|
|
16
|
+
process.env.MCP_PROMPT_KEY ||
|
|
17
|
+
process.env.PROMPT_KEY ||
|
|
18
|
+
"");
|
|
19
|
+
}
|
|
20
|
+
function deriveKey(keyMaterial, salt) {
|
|
21
|
+
return crypto_1.default.scryptSync(keyMaterial, salt, 32);
|
|
22
|
+
}
|
|
23
|
+
function encryptObfuscatedPayload(input) {
|
|
24
|
+
const keyMaterial = getKeyMaterial();
|
|
25
|
+
if (!keyMaterial) {
|
|
26
|
+
throw new Error("Missing prompt key. Set DECAF_PROMPT_KEY (or MCP_PROMPT_KEY/PROMPT_KEY) to encrypt prompts.");
|
|
27
|
+
}
|
|
28
|
+
const salt = crypto_1.default.randomBytes(SALT_BYTES);
|
|
29
|
+
const iv = crypto_1.default.randomBytes(IV_BYTES);
|
|
30
|
+
const key = deriveKey(keyMaterial, salt);
|
|
31
|
+
const gzipped = zlib_1.default.gzipSync(input, { level: 9 });
|
|
32
|
+
const cipher = crypto_1.default.createCipheriv("aes-256-gcm", key, iv);
|
|
33
|
+
const ciphertext = Buffer.concat([cipher.update(gzipped), cipher.final()]);
|
|
34
|
+
const tag = cipher.getAuthTag();
|
|
35
|
+
return Buffer.concat([MAGIC, salt, iv, tag, ciphertext]);
|
|
36
|
+
}
|
|
37
|
+
function decryptObfuscatedPayload(input) {
|
|
38
|
+
if (input.length < MAGIC.length + SALT_BYTES + IV_BYTES + TAG_BYTES) {
|
|
39
|
+
throw new Error("Invalid prompt payload (too short)");
|
|
40
|
+
}
|
|
41
|
+
const magic = input.subarray(0, MAGIC.length);
|
|
42
|
+
if (!magic.equals(MAGIC)) {
|
|
43
|
+
throw new Error("Invalid prompt payload (bad magic)");
|
|
44
|
+
}
|
|
45
|
+
const keyMaterial = getKeyMaterial();
|
|
46
|
+
if (!keyMaterial) {
|
|
47
|
+
throw new Error("Missing prompt key. Set DECAF_PROMPT_KEY (or MCP_PROMPT_KEY/PROMPT_KEY) to load obfuscated prompts.");
|
|
48
|
+
}
|
|
49
|
+
let offset = MAGIC.length;
|
|
50
|
+
const salt = input.subarray(offset, offset + SALT_BYTES);
|
|
51
|
+
offset += SALT_BYTES;
|
|
52
|
+
const iv = input.subarray(offset, offset + IV_BYTES);
|
|
53
|
+
offset += IV_BYTES;
|
|
54
|
+
const tag = input.subarray(offset, offset + TAG_BYTES);
|
|
55
|
+
offset += TAG_BYTES;
|
|
56
|
+
const ciphertext = input.subarray(offset);
|
|
57
|
+
const key = deriveKey(keyMaterial, salt);
|
|
58
|
+
const decipher = crypto_1.default.createDecipheriv("aes-256-gcm", key, iv);
|
|
59
|
+
decipher.setAuthTag(tag);
|
|
60
|
+
const plaintext = Buffer.concat([
|
|
61
|
+
decipher.update(ciphertext),
|
|
62
|
+
decipher.final(),
|
|
63
|
+
]);
|
|
64
|
+
return zlib_1.default.gunzipSync(plaintext);
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=obfuscation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"obfuscation.js","sourceRoot":"","sources":["../../src/utils/obfuscation.ts"],"names":[],"mappings":"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"}
|
package/lib/version.cjs
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.PACKAGE_NAME = exports.VERSION = void 0;
|
|
4
4
|
const decoration_1 = require("@decaf-ts/decoration");
|
|
5
|
-
exports.VERSION = "0.4.
|
|
5
|
+
exports.VERSION = "0.4.18";
|
|
6
6
|
exports.PACKAGE_NAME = "@decaf-ts/mcp-server";
|
|
7
7
|
decoration_1.Metadata.registerLibrary(exports.PACKAGE_NAME, exports.VERSION);
|
|
8
8
|
//# sourceMappingURL=version.js.map
|
package/lib/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const VERSION = "0.4.
|
|
1
|
+
export declare const VERSION = "0.4.18";
|
|
2
2
|
export declare const PACKAGE_NAME = "@decaf-ts/mcp-server";
|
package/package.json
CHANGED
|
@@ -24,7 +24,9 @@
|
|
|
24
24
|
"reset": "rm -rf * && git checkout . && git pull && npm run do-install",
|
|
25
25
|
"build": "npx build-scripts --dev && npm run make-exec",
|
|
26
26
|
"build:prod": "npx build-scripts --prod && npm run make-exec",
|
|
27
|
+
"build:public": "npm run build:prod && npm run obfuscate-prompts -- --remove-json",
|
|
27
28
|
"make-exec": "chmod u+x ./lib/bin/cli.cjs && sed -i '1i #!/usr/bin/env node' ./lib/bin/cli.cjs",
|
|
29
|
+
"obfuscate-prompts": "DECAF_PROMPT_KEY=obfuscation node ./bin/obfuscate-prompts.cjs",
|
|
28
30
|
"test": "npm run test:all",
|
|
29
31
|
"test:unit": "jest --testPathPattern=\"/tests/unit\" --passWithNoTests --detectOpenHandles",
|
|
30
32
|
"test:integration": "jest --testPathPattern=\"/tests/(integration)\" --passWithNoTests --detectOpenHandles",
|
|
@@ -34,7 +36,7 @@
|
|
|
34
36
|
"lint": "eslint .",
|
|
35
37
|
"lint-fix": "eslint --fix .",
|
|
36
38
|
"prepare-pr": "npm run lint-fix && npm run build:prod && npm run coverage && npm run docs",
|
|
37
|
-
"prepare-release": "npm run build:
|
|
39
|
+
"prepare-release": "npm run build:public",
|
|
38
40
|
"release": "./bin/tag-release.sh --public",
|
|
39
41
|
"clean-publish": "npx clean-publish",
|
|
40
42
|
"drawings": "for FILE in workdocs/drawings/*.drawio; do echo \"converting $FILE to image...\" && docker run --rm -v $(pwd):/data rlespinasse/drawio-export --format png $FILE; done && cp -rf workdocs/drawings/export/* workdocs/resources/",
|
|
@@ -65,7 +67,6 @@
|
|
|
65
67
|
},
|
|
66
68
|
"files": [
|
|
67
69
|
"lib",
|
|
68
|
-
"dist",
|
|
69
70
|
"workdocs/assets/slogans.json"
|
|
70
71
|
],
|
|
71
72
|
"keywords": [
|
|
@@ -98,5 +99,5 @@
|
|
|
98
99
|
"uuid": "^13.0.0"
|
|
99
100
|
},
|
|
100
101
|
"license": "AGPL-3.0",
|
|
101
|
-
"version": "0.4.
|
|
102
|
+
"version": "0.4.19"
|
|
102
103
|
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "builder",
|
|
3
|
-
"description": "Documents a Typescript class, the decaf way",
|
|
4
|
-
"title": "Class Documentation",
|
|
5
|
-
"effort": "low",
|
|
6
|
-
"reasoning": "medium",
|
|
7
|
-
"cost": "free",
|
|
8
|
-
"placeholders": [],
|
|
9
|
-
"prompt": "document the entire class and each of its functions including always including the @description tag with a short description of the target, and a@summary tag with a more detailed one.\nInclude @class tags when applicable.\ninclude @param tags in the class documentation and its type definitions\nInclude detailed @description for all properties.\nInclude @template tags when necessary.\nDo NOT document the constructor, but include the constructor arguments as @param in the class documentation\nFor methods and functions:\n- include @description and @summary tags as defined for the target. also document every argument, including its type definition, and return type, referencing @template tags when necessary.\n- create a usage example under the @example tag on the class documentation\n- create mermaid sequence diagrams under the @mermaid tag;\n\nThe order of tags (when applicable) should be as follows:\n1 - @description;\n2 - @summary;\n3 - @template;\n4 - @param;\n5 - @return;\n6 - @class\n7 - @example\n8 - @mermaid;\n\nignore @mermaid for methods with less that 15 lines and constructors.\nRespond only with the full JSDoc comment block for the class and its methods.\nNEVER user @memberOf in the class or any of it's methods"
|
|
10
|
-
}
|