clinkx 0.1.0 → 0.1.1
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/README.md +19 -1
- package/conf/adapters/hapi/claude.json +1 -1
- package/conf/adapters/hapi/glm.json +1 -1
- package/dist/parsers/claude-json.js +19 -35
- package/dist/parsers/claude-json.js.map +1 -1
- package/dist/parsers/json-extract.js +51 -8
- package/dist/parsers/json-extract.js.map +1 -1
- package/dist/parsers/utils.d.ts +4 -0
- package/dist/parsers/utils.js +39 -2
- package/dist/parsers/utils.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -45,7 +45,9 @@ Then start the server with `node dist/index.js`.
|
|
|
45
45
|
|
|
46
46
|
## MCP client config
|
|
47
47
|
|
|
48
|
-
The exact shape depends on the client.
|
|
48
|
+
The exact shape depends on the client.
|
|
49
|
+
|
|
50
|
+
Via npx (recommended):
|
|
49
51
|
|
|
50
52
|
```json
|
|
51
53
|
{
|
|
@@ -61,6 +63,22 @@ The exact shape depends on the client. For a local STDIO server:
|
|
|
61
63
|
}
|
|
62
64
|
```
|
|
63
65
|
|
|
66
|
+
From a local clone:
|
|
67
|
+
|
|
68
|
+
```json
|
|
69
|
+
{
|
|
70
|
+
"mcpServers": {
|
|
71
|
+
"clinkx": {
|
|
72
|
+
"command": "node",
|
|
73
|
+
"args": ["/path/to/clink-mcp/dist/index.js"],
|
|
74
|
+
"env": {
|
|
75
|
+
"CLINKX_ALLOWED_ROOTS": "/path/to/your/workspace"
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
```
|
|
81
|
+
|
|
64
82
|
## Safety
|
|
65
83
|
|
|
66
84
|
ClinkX validates what goes into the request: paths, environment variables, and argument policy. It does not sandbox the spawned process.
|
|
@@ -1,51 +1,35 @@
|
|
|
1
|
-
import {
|
|
2
|
-
function
|
|
1
|
+
import { findAllJsonBlocks, extractTextField, joinBuffers } from "./utils.js";
|
|
2
|
+
function extractClaudeFromText(text) {
|
|
3
3
|
const trimmed = text.trim();
|
|
4
4
|
if (trimmed.length === 0)
|
|
5
5
|
return null;
|
|
6
|
+
// Fast path: single valid JSON object
|
|
6
7
|
try {
|
|
7
|
-
|
|
8
|
+
const single = JSON.parse(trimmed);
|
|
9
|
+
const extracted = extractTextField(single, "result");
|
|
10
|
+
if (extracted != null)
|
|
11
|
+
return extracted;
|
|
8
12
|
}
|
|
9
13
|
catch {
|
|
10
|
-
|
|
11
|
-
return block?.value ?? null;
|
|
14
|
+
// Multi-object or non-JSON: scan all blocks
|
|
12
15
|
}
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
const result = root["result"];
|
|
19
|
-
if (typeof result === "string")
|
|
20
|
-
return result;
|
|
21
|
-
if (Array.isArray(result)) {
|
|
22
|
-
const texts = result
|
|
23
|
-
.map((item) => {
|
|
24
|
-
if (typeof item === "string")
|
|
25
|
-
return item;
|
|
26
|
-
if (item && typeof item === "object") {
|
|
27
|
-
const r = item;
|
|
28
|
-
if (typeof r["text"] === "string")
|
|
29
|
-
return r["text"];
|
|
30
|
-
if (typeof r["content"] === "string")
|
|
31
|
-
return r["content"];
|
|
32
|
-
}
|
|
33
|
-
return "";
|
|
34
|
-
})
|
|
35
|
-
.filter((t) => t.length > 0);
|
|
36
|
-
return texts.length > 0 ? texts.join("") : null;
|
|
16
|
+
const blocks = findAllJsonBlocks(text);
|
|
17
|
+
for (let i = blocks.length - 1; i >= 0; i--) {
|
|
18
|
+
const extracted = extractTextField(blocks[i].value, "result");
|
|
19
|
+
if (extracted != null)
|
|
20
|
+
return extracted;
|
|
37
21
|
}
|
|
38
22
|
return null;
|
|
39
23
|
}
|
|
40
24
|
export const claudeJsonParser = {
|
|
41
25
|
name: "claude_json",
|
|
42
|
-
preferredBuffers: ["
|
|
26
|
+
preferredBuffers: ["stdoutTail", "stdoutHead"],
|
|
43
27
|
parse(input) {
|
|
44
|
-
const
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
28
|
+
const extracted = extractClaudeFromText(input.stdoutTail) ??
|
|
29
|
+
extractClaudeFromText(input.stdoutHead) ??
|
|
30
|
+
(input.stdoutHead.length > 0 && input.stdoutTail.length > 0
|
|
31
|
+
? extractClaudeFromText(joinBuffers([input.stdoutHead, input.stdoutTail]))
|
|
32
|
+
: null);
|
|
49
33
|
if (extracted == null)
|
|
50
34
|
return null;
|
|
51
35
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-json.js","sourceRoot":"","sources":["../../src/parsers/claude-json.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"claude-json.js","sourceRoot":"","sources":["../../src/parsers/claude-json.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9E,SAAS,qBAAqB,CAAC,IAAY;IACzC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEtC,sCAAsC;IACtC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAY,CAAC;QAC9C,MAAM,SAAS,GAAG,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACrD,IAAI,SAAS,IAAI,IAAI;YAAE,OAAO,SAAS,CAAC;IAC1C,CAAC;IAAC,MAAM,CAAC;QACP,4CAA4C;IAC9C,CAAC;IAED,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACvC,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5C,MAAM,SAAS,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC/D,IAAI,SAAS,IAAI,IAAI;YAAE,OAAO,SAAS,CAAC;IAC1C,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAW;IACtC,IAAI,EAAE,aAAa;IACnB,gBAAgB,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC;IAC9C,KAAK,CAAC,KAAK;QACT,MAAM,SAAS,GACb,qBAAqB,CAAC,KAAK,CAAC,UAAU,CAAC;YACvC,qBAAqB,CAAC,KAAK,CAAC,UAAU,CAAC;YACvC,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;gBACzD,CAAC,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;gBAC1E,CAAC,CAAC,IAAI,CAAC,CAAC;QAEZ,IAAI,SAAS,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC;QAEnC,OAAO;YACL,OAAO,EAAE,SAAS;YAClB,MAAM,EAAE,QAAQ;YAChB,QAAQ,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE;SACpC,CAAC;IACJ,CAAC;CACF,CAAC"}
|
|
@@ -1,16 +1,59 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { findAllJsonBlocks, extractTextFromContentField, extractTextField, joinBuffers, } from "./utils.js";
|
|
2
2
|
export const jsonExtractParser = {
|
|
3
3
|
name: "json_extract",
|
|
4
|
-
preferredBuffers: ["
|
|
4
|
+
preferredBuffers: ["stdoutTail", "stdoutHead"],
|
|
5
5
|
parse(input) {
|
|
6
|
-
const
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
const candidates = [
|
|
7
|
+
input.stdoutTail,
|
|
8
|
+
input.stdoutHead,
|
|
9
|
+
input.stdoutHead.length > 0 && input.stdoutTail.length > 0
|
|
10
|
+
? joinBuffers([input.stdoutHead, input.stdoutTail])
|
|
11
|
+
: "",
|
|
12
|
+
].filter((t) => t.length > 0);
|
|
13
|
+
let stringifyFallback = null;
|
|
14
|
+
// sawMultipleBlocks is intentionally global across all buffer candidates.
|
|
15
|
+
// When we see multiple JSON objects anywhere in stdout, we refuse to blindly
|
|
16
|
+
// JSON.stringify a single block from another buffer, because the multi-object
|
|
17
|
+
// output indicates structured CLI output (e.g., metadata + result) where
|
|
18
|
+
// arbitrary stringify would return the wrong content. This conservative
|
|
19
|
+
// approach forces fallback to summary or raw extraction instead.
|
|
20
|
+
let sawMultipleBlocks = false;
|
|
21
|
+
for (const text of candidates) {
|
|
22
|
+
const blocks = findAllJsonBlocks(text);
|
|
23
|
+
if (blocks.length === 0)
|
|
24
|
+
continue;
|
|
25
|
+
if (blocks.length > 1)
|
|
26
|
+
sawMultipleBlocks = true;
|
|
27
|
+
for (let i = blocks.length - 1; i >= 0; i--) {
|
|
28
|
+
const value = blocks[i].value;
|
|
29
|
+
const fromContent = extractTextFromContentField(value);
|
|
30
|
+
if (fromContent != null) {
|
|
31
|
+
return {
|
|
32
|
+
content: fromContent,
|
|
33
|
+
source: "json_extract",
|
|
34
|
+
metadata: { parser: "json_extract" },
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
const fromResult = extractTextField(value, "result");
|
|
38
|
+
if (fromResult != null) {
|
|
39
|
+
return {
|
|
40
|
+
content: fromResult,
|
|
41
|
+
source: "json_extract",
|
|
42
|
+
metadata: { parser: "json_extract" },
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
// Harden: avoid returning "some JSON" when multiple objects exist.
|
|
47
|
+
if (stringifyFallback == null && blocks.length === 1) {
|
|
48
|
+
stringifyFallback = JSON.stringify(blocks[0].value);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
if (stringifyFallback == null)
|
|
52
|
+
return null;
|
|
53
|
+
if (sawMultipleBlocks)
|
|
9
54
|
return null;
|
|
10
|
-
const fromContent = extractTextFromContentField(block.value);
|
|
11
|
-
const content = fromContent ?? JSON.stringify(block.value);
|
|
12
55
|
return {
|
|
13
|
-
content,
|
|
56
|
+
content: stringifyFallback,
|
|
14
57
|
source: "json_extract",
|
|
15
58
|
metadata: { parser: "json_extract" },
|
|
16
59
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json-extract.js","sourceRoot":"","sources":["../../src/parsers/json-extract.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"json-extract.js","sourceRoot":"","sources":["../../src/parsers/json-extract.ts"],"names":[],"mappings":"AACA,OAAO,EACL,iBAAiB,EACjB,2BAA2B,EAC3B,gBAAgB,EAChB,WAAW,GACZ,MAAM,YAAY,CAAC;AAEpB,MAAM,CAAC,MAAM,iBAAiB,GAAW;IACvC,IAAI,EAAE,cAAc;IACpB,gBAAgB,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC;IAC9C,KAAK,CAAC,KAAK;QACT,MAAM,UAAU,GAAa;YAC3B,KAAK,CAAC,UAAU;YAChB,KAAK,CAAC,UAAU;YAChB,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;gBACxD,CAAC,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;gBACnD,CAAC,CAAC,EAAE;SACP,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAE9B,IAAI,iBAAiB,GAAkB,IAAI,CAAC;QAC5C,0EAA0E;QAC1E,6EAA6E;QAC7E,8EAA8E;QAC9E,yEAAyE;QACzE,wEAAwE;QACxE,iEAAiE;QACjE,IAAI,iBAAiB,GAAG,KAAK,CAAC;QAE9B,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACvC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;YAClC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;gBAAE,iBAAiB,GAAG,IAAI,CAAC;YAEhD,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC5C,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAE,CAAC,KAAK,CAAC;gBAC/B,MAAM,WAAW,GAAG,2BAA2B,CAAC,KAAK,CAAC,CAAC;gBACvD,IAAI,WAAW,IAAI,IAAI,EAAE,CAAC;oBACxB,OAAO;wBACL,OAAO,EAAE,WAAW;wBACpB,MAAM,EAAE,cAAc;wBACtB,QAAQ,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE;qBACrC,CAAC;gBACJ,CAAC;gBAED,MAAM,UAAU,GAAG,gBAAgB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;gBACrD,IAAI,UAAU,IAAI,IAAI,EAAE,CAAC;oBACvB,OAAO;wBACL,OAAO,EAAE,UAAU;wBACnB,MAAM,EAAE,cAAc;wBACtB,QAAQ,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE;qBACrC,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,mEAAmE;YACnE,IAAI,iBAAiB,IAAI,IAAI,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACrD,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,KAAK,CAAC,CAAC;YACvD,CAAC;QACH,CAAC;QAED,IAAI,iBAAiB,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC;QAC3C,IAAI,iBAAiB;YAAE,OAAO,IAAI,CAAC;QAEnC,OAAO;YACL,OAAO,EAAE,iBAAiB;YAC1B,MAAM,EAAE,cAAc;YACtB,QAAQ,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE;SACrC,CAAC;IACJ,CAAC;CACF,CAAC"}
|
package/dist/parsers/utils.d.ts
CHANGED
|
@@ -5,7 +5,11 @@ type JsonBlock = {
|
|
|
5
5
|
raw: string;
|
|
6
6
|
value: unknown;
|
|
7
7
|
};
|
|
8
|
+
export declare function findAllJsonBlocks(text: string, options?: {
|
|
9
|
+
maxBlocks?: number;
|
|
10
|
+
}): JsonBlock[];
|
|
8
11
|
export declare function findFirstJsonBlock(text: string): JsonBlock | null;
|
|
12
|
+
export declare function extractTextField(value: unknown, fieldName: string, joinWith?: string): string | null;
|
|
9
13
|
export declare function extractTextFromContentField(value: unknown): string | null;
|
|
10
14
|
export declare function normalizeNewlines(text: string): string;
|
|
11
15
|
export {};
|
package/dist/parsers/utils.js
CHANGED
|
@@ -64,8 +64,12 @@ function scanJsonBlock(text, startIndex) {
|
|
|
64
64
|
}
|
|
65
65
|
return null;
|
|
66
66
|
}
|
|
67
|
-
export function
|
|
67
|
+
export function findAllJsonBlocks(text, options = {}) {
|
|
68
|
+
const maxBlocks = options.maxBlocks ?? 50;
|
|
69
|
+
const blocks = [];
|
|
68
70
|
for (let i = 0; i < text.length; i++) {
|
|
71
|
+
if (blocks.length >= maxBlocks)
|
|
72
|
+
break;
|
|
69
73
|
const ch = text[i];
|
|
70
74
|
if (ch !== "{" && ch !== "[")
|
|
71
75
|
continue;
|
|
@@ -74,12 +78,45 @@ export function findFirstJsonBlock(text) {
|
|
|
74
78
|
continue;
|
|
75
79
|
try {
|
|
76
80
|
const value = JSON.parse(raw);
|
|
77
|
-
|
|
81
|
+
blocks.push({ raw, value });
|
|
82
|
+
i += raw.length - 1;
|
|
78
83
|
}
|
|
79
84
|
catch {
|
|
80
85
|
// Keep scanning.
|
|
81
86
|
}
|
|
82
87
|
}
|
|
88
|
+
return blocks;
|
|
89
|
+
}
|
|
90
|
+
export function findFirstJsonBlock(text) {
|
|
91
|
+
const blocks = findAllJsonBlocks(text, { maxBlocks: 1 });
|
|
92
|
+
return blocks[0] ?? null;
|
|
93
|
+
}
|
|
94
|
+
export function extractTextField(value, fieldName, joinWith = "") {
|
|
95
|
+
if (value == null || typeof value !== "object")
|
|
96
|
+
return null;
|
|
97
|
+
const record = value;
|
|
98
|
+
if (!(fieldName in record))
|
|
99
|
+
return null;
|
|
100
|
+
const field = record[fieldName];
|
|
101
|
+
if (typeof field === "string")
|
|
102
|
+
return field;
|
|
103
|
+
if (Array.isArray(field)) {
|
|
104
|
+
const texts = field
|
|
105
|
+
.map((part) => {
|
|
106
|
+
if (typeof part === "string")
|
|
107
|
+
return part;
|
|
108
|
+
if (part && typeof part === "object") {
|
|
109
|
+
const r = part;
|
|
110
|
+
if (typeof r["text"] === "string")
|
|
111
|
+
return r["text"];
|
|
112
|
+
if (typeof r["content"] === "string")
|
|
113
|
+
return r["content"];
|
|
114
|
+
}
|
|
115
|
+
return "";
|
|
116
|
+
})
|
|
117
|
+
.filter((t) => t.length > 0);
|
|
118
|
+
return texts.length > 0 ? texts.join(joinWith) : null;
|
|
119
|
+
}
|
|
83
120
|
return null;
|
|
84
121
|
}
|
|
85
122
|
export function extractTextFromContentField(value) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/parsers/utils.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/parsers/utils.ts"],"names":[],"mappings":"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"}
|