clinkx 0.1.3 → 0.1.4
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/conf/adapters/claude.json +2 -2
- package/conf/adapters/hapi/claude.json +2 -2
- package/dist/config.d.ts +3 -3
- package/dist/config.js +1 -1
- package/dist/config.js.map +1 -1
- package/dist/parsers/claude-stream-json.d.ts +14 -0
- package/dist/parsers/claude-stream-json.js +89 -0
- package/dist/parsers/claude-stream-json.js.map +1 -0
- package/dist/parsers/extract.js +3 -1
- package/dist/parsers/extract.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "claude",
|
|
3
3
|
"command": "claude",
|
|
4
|
-
"args": ["-p", "--output-format", "json"],
|
|
4
|
+
"args": ["-p", "--output-format", "stream-json", "--verbose"],
|
|
5
5
|
"unsafe_args": ["--permission-mode", "acceptEdits"],
|
|
6
|
-
"parser": "
|
|
6
|
+
"parser": "claude_stream_json",
|
|
7
7
|
"prompt_mode": "stdin",
|
|
8
8
|
"timeout_seconds": 3600,
|
|
9
9
|
"idle_timeout_startup_seconds": 180,
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "claude",
|
|
3
3
|
"command": "hapi",
|
|
4
|
-
"args": ["-p", "--output-format", "json"],
|
|
4
|
+
"args": ["-p", "--output-format", "stream-json", "--verbose"],
|
|
5
5
|
"unsafe_args": ["--yolo"],
|
|
6
6
|
"env": {
|
|
7
7
|
"HAPI_API_URL": "https://your.domain.com"
|
|
8
8
|
},
|
|
9
|
-
"parser": "
|
|
9
|
+
"parser": "claude_stream_json",
|
|
10
10
|
"prompt_mode": "stdin",
|
|
11
11
|
"timeout_seconds": 3600,
|
|
12
12
|
"idle_timeout_startup_seconds": 180,
|
package/dist/config.d.ts
CHANGED
|
@@ -28,7 +28,7 @@ export declare const CliAdapterConfigSchema: z.ZodObject<{
|
|
|
28
28
|
timeout_seconds: z.ZodDefault<z.ZodNumber>;
|
|
29
29
|
idle_timeout_seconds: z.ZodOptional<z.ZodNumber>;
|
|
30
30
|
idle_timeout_startup_seconds: z.ZodOptional<z.ZodNumber>;
|
|
31
|
-
parser: z.ZodDefault<z.ZodEnum<["text", "json_extract", "gemini_json", "codex_jsonl", "claude_json"]>>;
|
|
31
|
+
parser: z.ZodDefault<z.ZodEnum<["text", "json_extract", "gemini_json", "codex_jsonl", "claude_json", "claude_stream_json"]>>;
|
|
32
32
|
tolerate_nonzero_exit_for_parse: z.ZodDefault<z.ZodBoolean>;
|
|
33
33
|
capabilities_hint: z.ZodOptional<z.ZodString>;
|
|
34
34
|
roles: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
@@ -62,7 +62,7 @@ export declare const CliAdapterConfigSchema: z.ZodObject<{
|
|
|
62
62
|
env: Record<string, string>;
|
|
63
63
|
env_allowlist: string[];
|
|
64
64
|
timeout_seconds: number;
|
|
65
|
-
parser: "text" | "json_extract" | "gemini_json" | "codex_jsonl" | "claude_json";
|
|
65
|
+
parser: "text" | "json_extract" | "gemini_json" | "codex_jsonl" | "claude_json" | "claude_stream_json";
|
|
66
66
|
tolerate_nonzero_exit_for_parse: boolean;
|
|
67
67
|
roles: Record<string, {
|
|
68
68
|
inline_prompt?: string | undefined;
|
|
@@ -90,7 +90,7 @@ export declare const CliAdapterConfigSchema: z.ZodObject<{
|
|
|
90
90
|
timeout_seconds?: number | undefined;
|
|
91
91
|
idle_timeout_seconds?: number | undefined;
|
|
92
92
|
idle_timeout_startup_seconds?: number | undefined;
|
|
93
|
-
parser?: "text" | "json_extract" | "gemini_json" | "codex_jsonl" | "claude_json" | undefined;
|
|
93
|
+
parser?: "text" | "json_extract" | "gemini_json" | "codex_jsonl" | "claude_json" | "claude_stream_json" | undefined;
|
|
94
94
|
tolerate_nonzero_exit_for_parse?: boolean | undefined;
|
|
95
95
|
capabilities_hint?: string | undefined;
|
|
96
96
|
roles?: Record<string, {
|
package/dist/config.js
CHANGED
|
@@ -26,7 +26,7 @@ export const CliAdapterConfigSchema = z.object({
|
|
|
26
26
|
idle_timeout_seconds: z.number().nonnegative().optional(),
|
|
27
27
|
idle_timeout_startup_seconds: z.number().nonnegative().optional(),
|
|
28
28
|
parser: z
|
|
29
|
-
.enum(["text", "json_extract", "gemini_json", "codex_jsonl", "claude_json"])
|
|
29
|
+
.enum(["text", "json_extract", "gemini_json", "codex_jsonl", "claude_json", "claude_stream_json"])
|
|
30
30
|
.default("text"),
|
|
31
31
|
tolerate_nonzero_exit_for_parse: z.boolean().default(false),
|
|
32
32
|
capabilities_hint: z.string().optional(),
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACpC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACnC,CAAC,CAAC;AAIH,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACnC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC;CACpE,CAAC,CAAC;AAEH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACrC,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC5C,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACrC,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC9C,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC;IACnD,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;IACzD,4BAA4B,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;IACjE,MAAM,EAAE,CAAC;SACN,IAAI,CAAC,CAAC,MAAM,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACpC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACnC,CAAC,CAAC;AAIH,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACnC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC;CACpE,CAAC,CAAC;AAEH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACrC,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC5C,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACrC,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC9C,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC;IACnD,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;IACzD,4BAA4B,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;IACjE,MAAM,EAAE,CAAC;SACN,IAAI,CAAC,CAAC,MAAM,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,oBAAoB,CAAC,CAAC;SACjG,OAAO,CAAC,MAAM,CAAC;IAClB,+BAA+B,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAC3D,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACxC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC7C,eAAe,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAC3C,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACxC,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC;QAC5C,OAAO,EAAE,KAAK;QACd,QAAQ,EAAE,WAAW;KACtB,CAAC;IACF,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;CAC/D,CAAC,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { Parser } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Parse Claude CLI `--output-format stream-json` JSONL output.
|
|
4
|
+
*
|
|
5
|
+
* Event types:
|
|
6
|
+
* - type:"system", subtype:"init" — session metadata (ignored)
|
|
7
|
+
* - type:"assistant" — message with content blocks
|
|
8
|
+
* - type:"result", subtype:"success" — final result string (canonical)
|
|
9
|
+
*
|
|
10
|
+
* Extraction strategy:
|
|
11
|
+
* 1. Find last `type=result` event → use its `result` field
|
|
12
|
+
* 2. Fallback: find last `type=assistant` event → extract message.content[].text
|
|
13
|
+
*/
|
|
14
|
+
export declare const claudeStreamJsonParser: Parser;
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { preferredText } from "./utils.js";
|
|
2
|
+
/**
|
|
3
|
+
* Extract the final text from `type=assistant` message content blocks.
|
|
4
|
+
* Claude stream-json emits: message.content = [{type:"text", text:"..."}]
|
|
5
|
+
*/
|
|
6
|
+
function extractAssistantText(value) {
|
|
7
|
+
if (value == null || typeof value !== "object")
|
|
8
|
+
return null;
|
|
9
|
+
const rec = value;
|
|
10
|
+
if (rec["type"] !== "assistant")
|
|
11
|
+
return null;
|
|
12
|
+
const message = rec["message"];
|
|
13
|
+
if (message == null || typeof message !== "object")
|
|
14
|
+
return null;
|
|
15
|
+
const msg = message;
|
|
16
|
+
const content = msg["content"];
|
|
17
|
+
if (!Array.isArray(content))
|
|
18
|
+
return null;
|
|
19
|
+
const texts = content
|
|
20
|
+
.map((block) => {
|
|
21
|
+
if (typeof block === "string")
|
|
22
|
+
return block;
|
|
23
|
+
if (block && typeof block === "object") {
|
|
24
|
+
const b = block;
|
|
25
|
+
if (typeof b["text"] === "string")
|
|
26
|
+
return b["text"];
|
|
27
|
+
}
|
|
28
|
+
return "";
|
|
29
|
+
})
|
|
30
|
+
.filter((t) => t.length > 0);
|
|
31
|
+
return texts.length > 0 ? texts.join("") : null;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Parse Claude CLI `--output-format stream-json` JSONL output.
|
|
35
|
+
*
|
|
36
|
+
* Event types:
|
|
37
|
+
* - type:"system", subtype:"init" — session metadata (ignored)
|
|
38
|
+
* - type:"assistant" — message with content blocks
|
|
39
|
+
* - type:"result", subtype:"success" — final result string (canonical)
|
|
40
|
+
*
|
|
41
|
+
* Extraction strategy:
|
|
42
|
+
* 1. Find last `type=result` event → use its `result` field
|
|
43
|
+
* 2. Fallback: find last `type=assistant` event → extract message.content[].text
|
|
44
|
+
*/
|
|
45
|
+
export const claudeStreamJsonParser = {
|
|
46
|
+
name: "claude_stream_json",
|
|
47
|
+
preferredBuffers: ["stdoutTail", "stdoutHead"],
|
|
48
|
+
parse(input) {
|
|
49
|
+
const text = preferredText(input, ["stdoutTail", "stdoutHead"]);
|
|
50
|
+
if (text.trim().length === 0)
|
|
51
|
+
return null;
|
|
52
|
+
const lines = text
|
|
53
|
+
.split("\n")
|
|
54
|
+
.map((l) => l.trim())
|
|
55
|
+
.filter((l) => l.length > 0);
|
|
56
|
+
let resultText = null;
|
|
57
|
+
let lastAssistantText = null;
|
|
58
|
+
for (const line of lines) {
|
|
59
|
+
let parsed;
|
|
60
|
+
try {
|
|
61
|
+
parsed = JSON.parse(line);
|
|
62
|
+
}
|
|
63
|
+
catch {
|
|
64
|
+
continue;
|
|
65
|
+
}
|
|
66
|
+
if (parsed == null || typeof parsed !== "object")
|
|
67
|
+
continue;
|
|
68
|
+
const rec = parsed;
|
|
69
|
+
// Primary: type=result event with result field
|
|
70
|
+
if (rec["type"] === "result" && typeof rec["result"] === "string") {
|
|
71
|
+
resultText = rec["result"];
|
|
72
|
+
}
|
|
73
|
+
// Fallback: type=assistant event
|
|
74
|
+
const assistantText = extractAssistantText(parsed);
|
|
75
|
+
if (assistantText != null) {
|
|
76
|
+
lastAssistantText = assistantText;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
const content = resultText ?? lastAssistantText;
|
|
80
|
+
if (content == null || content.trim().length === 0)
|
|
81
|
+
return null;
|
|
82
|
+
return {
|
|
83
|
+
content,
|
|
84
|
+
source: "parser",
|
|
85
|
+
metadata: { parser: "claude_stream_json" },
|
|
86
|
+
};
|
|
87
|
+
},
|
|
88
|
+
};
|
|
89
|
+
//# sourceMappingURL=claude-stream-json.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude-stream-json.js","sourceRoot":"","sources":["../../src/parsers/claude-stream-json.ts"],"names":[],"mappings":"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"}
|
package/dist/parsers/extract.js
CHANGED
|
@@ -4,6 +4,7 @@ import { jsonExtractParser } from "./json-extract.js";
|
|
|
4
4
|
import { geminiJsonParser } from "./gemini-json.js";
|
|
5
5
|
import { codexJsonlParser } from "./codex-jsonl.js";
|
|
6
6
|
import { claudeJsonParser } from "./claude-json.js";
|
|
7
|
+
import { claudeStreamJsonParser } from "./claude-stream-json.js";
|
|
7
8
|
import { extractSummary } from "./summary.js";
|
|
8
9
|
import { readResultFile } from "../result-contract.js";
|
|
9
10
|
const PARSERS = [
|
|
@@ -12,6 +13,7 @@ const PARSERS = [
|
|
|
12
13
|
geminiJsonParser,
|
|
13
14
|
codexJsonlParser,
|
|
14
15
|
claudeJsonParser,
|
|
16
|
+
claudeStreamJsonParser,
|
|
15
17
|
];
|
|
16
18
|
function parserByName(name) {
|
|
17
19
|
return PARSERS.find((p) => p.name === name) ?? null;
|
|
@@ -25,7 +27,7 @@ async function tryReadResultContract(workdir, contract) {
|
|
|
25
27
|
}
|
|
26
28
|
function rawStdoutFallback(input) {
|
|
27
29
|
// JSONL adapters emit final events late; prefer tail.
|
|
28
|
-
const preferTailFirst = input.adapter.parser === "codex_jsonl" || input.adapter.parser === "jsonl";
|
|
30
|
+
const preferTailFirst = input.adapter.parser === "codex_jsonl" || input.adapter.parser === "jsonl" || input.adapter.parser === "claude_stream_json";
|
|
29
31
|
const content = preferTailFirst
|
|
30
32
|
? input.stdoutTail.length > 0
|
|
31
33
|
? input.stdoutTail
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extract.js","sourceRoot":"","sources":["../../src/parsers/extract.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAkBvD,MAAM,OAAO,GAAa;IACxB,UAAU;IACV,iBAAiB;IACjB,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;
|
|
1
|
+
{"version":3,"file":"extract.js","sourceRoot":"","sources":["../../src/parsers/extract.ts"],"names":[],"mappings":"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"}
|