@paperclipai/adapter-claude-local 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/dist/cli/format-event.d.ts +2 -0
  2. package/dist/cli/format-event.d.ts.map +1 -0
  3. package/dist/cli/format-event.js +94 -0
  4. package/dist/cli/format-event.js.map +1 -0
  5. package/dist/cli/index.d.ts +2 -0
  6. package/dist/cli/index.d.ts.map +1 -0
  7. package/dist/cli/index.js +2 -0
  8. package/dist/cli/index.js.map +1 -0
  9. package/dist/index.d.ts +8 -0
  10. package/dist/index.d.ts.map +1 -0
  11. package/dist/index.js +29 -0
  12. package/dist/index.js.map +1 -0
  13. package/dist/server/execute.d.ts +18 -0
  14. package/dist/server/execute.d.ts.map +1 -0
  15. package/dist/server/execute.js +385 -0
  16. package/dist/server/execute.js.map +1 -0
  17. package/dist/server/index.d.ts +6 -0
  18. package/dist/server/index.d.ts.map +1 -0
  19. package/dist/server/index.js +55 -0
  20. package/dist/server/index.js.map +1 -0
  21. package/dist/server/parse.d.ts +22 -0
  22. package/dist/server/parse.d.ts.map +1 -0
  23. package/dist/server/parse.js +158 -0
  24. package/dist/server/parse.js.map +1 -0
  25. package/dist/server/test.d.ts +3 -0
  26. package/dist/server/test.d.ts.map +1 -0
  27. package/dist/server/test.js +201 -0
  28. package/dist/server/test.js.map +1 -0
  29. package/dist/ui/build-config.d.ts +3 -0
  30. package/dist/ui/build-config.d.ts.map +1 -0
  31. package/dist/ui/build-config.js +87 -0
  32. package/dist/ui/build-config.js.map +1 -0
  33. package/dist/ui/index.d.ts +3 -0
  34. package/dist/ui/index.d.ts.map +1 -0
  35. package/dist/ui/index.js +3 -0
  36. package/dist/ui/index.js.map +1 -0
  37. package/dist/ui/parse-stdout.d.ts +3 -0
  38. package/dist/ui/parse-stdout.d.ts.map +1 -0
  39. package/dist/ui/parse-stdout.js +144 -0
  40. package/dist/ui/parse-stdout.js.map +1 -0
  41. package/package.json +43 -0
@@ -0,0 +1,144 @@
1
+ function asRecord(value) {
2
+ if (typeof value !== "object" || value === null || Array.isArray(value))
3
+ return null;
4
+ return value;
5
+ }
6
+ function asNumber(value) {
7
+ return typeof value === "number" && Number.isFinite(value) ? value : 0;
8
+ }
9
+ function errorText(value) {
10
+ if (typeof value === "string")
11
+ return value;
12
+ const rec = asRecord(value);
13
+ if (!rec)
14
+ return "";
15
+ const msg = (typeof rec.message === "string" && rec.message) ||
16
+ (typeof rec.error === "string" && rec.error) ||
17
+ (typeof rec.code === "string" && rec.code) ||
18
+ "";
19
+ if (msg)
20
+ return msg;
21
+ try {
22
+ return JSON.stringify(rec);
23
+ }
24
+ catch {
25
+ return "";
26
+ }
27
+ }
28
+ function safeJsonParse(text) {
29
+ try {
30
+ return JSON.parse(text);
31
+ }
32
+ catch {
33
+ return null;
34
+ }
35
+ }
36
+ export function parseClaudeStdoutLine(line, ts) {
37
+ const parsed = asRecord(safeJsonParse(line));
38
+ if (!parsed) {
39
+ return [{ kind: "stdout", ts, text: line }];
40
+ }
41
+ const type = typeof parsed.type === "string" ? parsed.type : "";
42
+ if (type === "system" && parsed.subtype === "init") {
43
+ return [
44
+ {
45
+ kind: "init",
46
+ ts,
47
+ model: typeof parsed.model === "string" ? parsed.model : "unknown",
48
+ sessionId: typeof parsed.session_id === "string" ? parsed.session_id : "",
49
+ },
50
+ ];
51
+ }
52
+ if (type === "assistant") {
53
+ const message = asRecord(parsed.message) ?? {};
54
+ const content = Array.isArray(message.content) ? message.content : [];
55
+ const entries = [];
56
+ for (const blockRaw of content) {
57
+ const block = asRecord(blockRaw);
58
+ if (!block)
59
+ continue;
60
+ const blockType = typeof block.type === "string" ? block.type : "";
61
+ if (blockType === "text") {
62
+ const text = typeof block.text === "string" ? block.text : "";
63
+ if (text)
64
+ entries.push({ kind: "assistant", ts, text });
65
+ }
66
+ else if (blockType === "thinking") {
67
+ const text = typeof block.thinking === "string" ? block.thinking : "";
68
+ if (text)
69
+ entries.push({ kind: "thinking", ts, text });
70
+ }
71
+ else if (blockType === "tool_use") {
72
+ entries.push({
73
+ kind: "tool_call",
74
+ ts,
75
+ name: typeof block.name === "string" ? block.name : "unknown",
76
+ input: block.input ?? {},
77
+ });
78
+ }
79
+ }
80
+ return entries.length > 0 ? entries : [{ kind: "stdout", ts, text: line }];
81
+ }
82
+ if (type === "user") {
83
+ const message = asRecord(parsed.message) ?? {};
84
+ const content = Array.isArray(message.content) ? message.content : [];
85
+ const entries = [];
86
+ for (const blockRaw of content) {
87
+ const block = asRecord(blockRaw);
88
+ if (!block)
89
+ continue;
90
+ const blockType = typeof block.type === "string" ? block.type : "";
91
+ if (blockType === "text") {
92
+ const text = typeof block.text === "string" ? block.text : "";
93
+ if (text)
94
+ entries.push({ kind: "user", ts, text });
95
+ }
96
+ else if (blockType === "tool_result") {
97
+ const toolUseId = typeof block.tool_use_id === "string" ? block.tool_use_id : "";
98
+ const isError = block.is_error === true;
99
+ let text = "";
100
+ if (typeof block.content === "string") {
101
+ text = block.content;
102
+ }
103
+ else if (Array.isArray(block.content)) {
104
+ const parts = [];
105
+ for (const part of block.content) {
106
+ const p = asRecord(part);
107
+ if (p && typeof p.text === "string")
108
+ parts.push(p.text);
109
+ }
110
+ text = parts.join("\n");
111
+ }
112
+ entries.push({ kind: "tool_result", ts, toolUseId, content: text, isError });
113
+ }
114
+ }
115
+ if (entries.length > 0)
116
+ return entries;
117
+ // fall through to stdout for user messages without recognized blocks
118
+ }
119
+ if (type === "result") {
120
+ const usage = asRecord(parsed.usage) ?? {};
121
+ const inputTokens = asNumber(usage.input_tokens);
122
+ const outputTokens = asNumber(usage.output_tokens);
123
+ const cachedTokens = asNumber(usage.cache_read_input_tokens);
124
+ const costUsd = asNumber(parsed.total_cost_usd);
125
+ const subtype = typeof parsed.subtype === "string" ? parsed.subtype : "";
126
+ const isError = parsed.is_error === true;
127
+ const errors = Array.isArray(parsed.errors) ? parsed.errors.map(errorText).filter(Boolean) : [];
128
+ const text = typeof parsed.result === "string" ? parsed.result : "";
129
+ return [{
130
+ kind: "result",
131
+ ts,
132
+ text,
133
+ inputTokens,
134
+ outputTokens,
135
+ cachedTokens,
136
+ costUsd,
137
+ subtype,
138
+ isError,
139
+ errors,
140
+ }];
141
+ }
142
+ return [{ kind: "stdout", ts, text: line }];
143
+ }
144
+ //# sourceMappingURL=parse-stdout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-stdout.js","sourceRoot":"","sources":["../../src/ui/parse-stdout.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,43 @@
1
+ {
2
+ "name": "@paperclipai/adapter-claude-local",
3
+ "version": "0.2.2",
4
+ "type": "module",
5
+ "exports": {
6
+ ".": {
7
+ "types": "./dist/index.d.ts",
8
+ "import": "./dist/index.js"
9
+ },
10
+ "./server": {
11
+ "types": "./dist/server/index.d.ts",
12
+ "import": "./dist/server/index.js"
13
+ },
14
+ "./ui": {
15
+ "types": "./dist/ui/index.d.ts",
16
+ "import": "./dist/ui/index.js"
17
+ },
18
+ "./cli": {
19
+ "types": "./dist/cli/index.d.ts",
20
+ "import": "./dist/cli/index.js"
21
+ }
22
+ },
23
+ "publishConfig": {
24
+ "access": "public"
25
+ },
26
+ "files": [
27
+ "dist"
28
+ ],
29
+ "dependencies": {
30
+ "picocolors": "^1.1.1",
31
+ "@paperclipai/adapter-utils": "0.2.2"
32
+ },
33
+ "devDependencies": {
34
+ "typescript": "^5.7.3"
35
+ },
36
+ "scripts": {
37
+ "build": "tsc",
38
+ "clean": "rm -rf dist",
39
+ "typecheck": "tsc --noEmit"
40
+ },
41
+ "main": "./dist/index.js",
42
+ "types": "./dist/index.d.ts"
43
+ }