@di-code/coding-agent 0.1.2 → 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.
Files changed (81) hide show
  1. package/README.md +499 -143
  2. package/dist/cli.d.ts +1 -0
  3. package/dist/cli.d.ts.map +1 -1
  4. package/dist/cli.js +15 -0
  5. package/dist/cli.js.map +1 -1
  6. package/dist/core/clipboard-image.d.ts +13 -0
  7. package/dist/core/clipboard-image.d.ts.map +1 -0
  8. package/dist/core/clipboard-image.js +99 -0
  9. package/dist/core/clipboard-image.js.map +1 -0
  10. package/dist/core/context-builder.d.ts.map +1 -1
  11. package/dist/core/context-builder.js +6 -2
  12. package/dist/core/context-builder.js.map +1 -1
  13. package/dist/core/image-input.d.ts +13 -0
  14. package/dist/core/image-input.d.ts.map +1 -0
  15. package/dist/core/image-input.js +147 -0
  16. package/dist/core/image-input.js.map +1 -0
  17. package/dist/core/session/session-storage.d.ts.map +1 -1
  18. package/dist/core/session/session-storage.js +1 -0
  19. package/dist/core/session/session-storage.js.map +1 -1
  20. package/dist/core/session.d.ts +19 -2
  21. package/dist/core/session.d.ts.map +1 -1
  22. package/dist/core/session.js +101 -4
  23. package/dist/core/session.js.map +1 -1
  24. package/dist/core/tools/bash.d.ts +2 -2
  25. package/dist/core/tools/bash.d.ts.map +1 -1
  26. package/dist/core/tools/bash.js.map +1 -1
  27. package/dist/core/tools/edit-diff.d.ts +25 -0
  28. package/dist/core/tools/edit-diff.d.ts.map +1 -0
  29. package/dist/core/tools/edit-diff.js +136 -0
  30. package/dist/core/tools/edit-diff.js.map +1 -0
  31. package/dist/core/tools/edit.d.ts +13 -4
  32. package/dist/core/tools/edit.d.ts.map +1 -1
  33. package/dist/core/tools/edit.js +64 -30
  34. package/dist/core/tools/edit.js.map +1 -1
  35. package/dist/core/tools/read.d.ts +2 -2
  36. package/dist/core/tools/read.d.ts.map +1 -1
  37. package/dist/core/tools/read.js.map +1 -1
  38. package/dist/core/tools/write.d.ts +2 -2
  39. package/dist/core/tools/write.d.ts.map +1 -1
  40. package/dist/core/tools/write.js.map +1 -1
  41. package/dist/entry.js +9 -2
  42. package/dist/entry.js.map +1 -1
  43. package/dist/main.d.ts +3 -1
  44. package/dist/main.d.ts.map +1 -1
  45. package/dist/main.js +42 -8
  46. package/dist/main.js.map +1 -1
  47. package/dist/modes/interactive-components.d.ts +3 -0
  48. package/dist/modes/interactive-components.d.ts.map +1 -1
  49. package/dist/modes/interactive-components.js +76 -25
  50. package/dist/modes/interactive-components.js.map +1 -1
  51. package/dist/modes/interactive-diff.d.ts +8 -0
  52. package/dist/modes/interactive-diff.d.ts.map +1 -0
  53. package/dist/modes/interactive-diff.js +78 -0
  54. package/dist/modes/interactive-diff.js.map +1 -0
  55. package/dist/modes/interactive-layout.d.ts +6 -1
  56. package/dist/modes/interactive-layout.d.ts.map +1 -1
  57. package/dist/modes/interactive-layout.js +21 -1
  58. package/dist/modes/interactive-layout.js.map +1 -1
  59. package/dist/modes/interactive-state.d.ts +17 -2
  60. package/dist/modes/interactive-state.d.ts.map +1 -1
  61. package/dist/modes/interactive-state.js +103 -3
  62. package/dist/modes/interactive-state.js.map +1 -1
  63. package/dist/modes/interactive.d.ts +18 -0
  64. package/dist/modes/interactive.d.ts.map +1 -1
  65. package/dist/modes/interactive.js +289 -24
  66. package/dist/modes/interactive.js.map +1 -1
  67. package/dist/provider-onboarding.d.ts +8 -1
  68. package/dist/provider-onboarding.d.ts.map +1 -1
  69. package/dist/provider-onboarding.js +53 -23
  70. package/dist/provider-onboarding.js.map +1 -1
  71. package/dist/rpc-entry.js +1 -1
  72. package/dist/rpc-entry.js.map +1 -1
  73. package/dist/startup.d.ts +11 -3
  74. package/dist/startup.d.ts.map +1 -1
  75. package/dist/startup.js +240 -84
  76. package/dist/startup.js.map +1 -1
  77. package/dist/utils/syntax-highlight.d.ts +2 -0
  78. package/dist/utils/syntax-highlight.d.ts.map +1 -0
  79. package/dist/utils/syntax-highlight.js +55 -0
  80. package/dist/utils/syntax-highlight.js.map +1 -0
  81. package/package.json +9 -4
@@ -0,0 +1,55 @@
1
+ import hljs from "highlight.js";
2
+ const ENTITY_MAP = {
3
+ "&": "&",
4
+ "&lt;": "<",
5
+ "&gt;": ">",
6
+ "&quot;": '"',
7
+ "&#x27;": "'",
8
+ };
9
+ function decodeHtml(value) {
10
+ return value.replace(/&(?:amp|lt|gt|quot|#x27);/g, (entity) => ENTITY_MAP[entity] ?? entity);
11
+ }
12
+ function colorFor(scope) {
13
+ if (scope.startsWith("keyword") || scope.startsWith("built_in"))
14
+ return "36";
15
+ if (scope.startsWith("string") || scope.startsWith("number") || scope.startsWith("literal"))
16
+ return "33";
17
+ if (scope.startsWith("title") || scope.startsWith("function") || scope.startsWith("type"))
18
+ return "35";
19
+ if (scope.startsWith("comment"))
20
+ return "90";
21
+ if (scope.startsWith("attr") || scope.startsWith("variable"))
22
+ return "32";
23
+ return undefined;
24
+ }
25
+ function renderHtml(html) {
26
+ const parts = html.split(/(<span class="hljs-[^"]+">|<\/span>)/g);
27
+ const colors = [];
28
+ return parts
29
+ .map((part) => {
30
+ if (part === "</span>") {
31
+ colors.pop();
32
+ return "\x1b[0m";
33
+ }
34
+ const match = /^<span class="hljs-([^"]+)">$/.exec(part);
35
+ if (match) {
36
+ const color = colorFor(match[1] ?? "");
37
+ if (color)
38
+ colors.push(color);
39
+ return color ? `\x1b[${color}m` : "";
40
+ }
41
+ return decodeHtml(part);
42
+ })
43
+ .join("");
44
+ }
45
+ export function highlightCode(code, language) {
46
+ if (!hljs.getLanguage(language))
47
+ return undefined;
48
+ try {
49
+ return renderHtml(hljs.highlight(code, { language, ignoreIllegals: true }).value).split("\n");
50
+ }
51
+ catch {
52
+ return undefined;
53
+ }
54
+ }
55
+ //# sourceMappingURL=syntax-highlight.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"syntax-highlight.js","sourceRoot":"","sources":["../../src/utils/syntax-highlight.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,cAAc,CAAC;AAIhC,MAAM,UAAU,GAA2B;IAC1C,OAAO,EAAE,GAAG;IACZ,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,GAAG;CACb,CAAC;AAEF,SAAS,UAAU,CAAC,KAAa;IAChC,OAAO,KAAK,CAAC,OAAO,CAAC,4BAA4B,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,CAAC;AAC9F,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa;IAC9B,IAAI,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7E,IAAI,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,IAAI,CAAC;IACzG,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IACvG,IAAI,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7C,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1E,OAAO,SAAS,CAAC;AAClB,CAAC;AAED,SAAS,UAAU,CAAC,IAAY;IAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAClE,MAAM,MAAM,GAAY,EAAE,CAAC;IAC3B,OAAO,KAAK;SACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACb,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,CAAC,GAAG,EAAE,CAAC;YACb,OAAO,SAAS,CAAC;QAClB,CAAC;QACD,MAAM,KAAK,GAAG,+BAA+B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzD,IAAI,KAAK,EAAE,CAAC;YACX,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YACvC,IAAI,KAAK;gBAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC9B,OAAO,KAAK,CAAC,CAAC,CAAC,QAAQ,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACtC,CAAC;QACD,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC,CAAC;SACD,IAAI,CAAC,EAAE,CAAC,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAY,EAAE,QAAgB;IAC3D,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;QAAE,OAAO,SAAS,CAAC;IAClD,IAAI,CAAC;QACJ,OAAO,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/F,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,SAAS,CAAC;IAClB,CAAC;AACF,CAAC","sourcesContent":["import hljs from \"highlight.js\";\n\ntype Color = \"36\" | \"33\" | \"35\" | \"32\" | \"90\";\n\nconst ENTITY_MAP: Record<string, string> = {\n\t\"&amp;\": \"&\",\n\t\"&lt;\": \"<\",\n\t\"&gt;\": \">\",\n\t\"&quot;\": '\"',\n\t\"&#x27;\": \"'\",\n};\n\nfunction decodeHtml(value: string): string {\n\treturn value.replace(/&(?:amp|lt|gt|quot|#x27);/g, (entity) => ENTITY_MAP[entity] ?? entity);\n}\n\nfunction colorFor(scope: string): Color | undefined {\n\tif (scope.startsWith(\"keyword\") || scope.startsWith(\"built_in\")) return \"36\";\n\tif (scope.startsWith(\"string\") || scope.startsWith(\"number\") || scope.startsWith(\"literal\")) return \"33\";\n\tif (scope.startsWith(\"title\") || scope.startsWith(\"function\") || scope.startsWith(\"type\")) return \"35\";\n\tif (scope.startsWith(\"comment\")) return \"90\";\n\tif (scope.startsWith(\"attr\") || scope.startsWith(\"variable\")) return \"32\";\n\treturn undefined;\n}\n\nfunction renderHtml(html: string): string {\n\tconst parts = html.split(/(<span class=\"hljs-[^\"]+\">|<\\/span>)/g);\n\tconst colors: Color[] = [];\n\treturn parts\n\t\t.map((part) => {\n\t\t\tif (part === \"</span>\") {\n\t\t\t\tcolors.pop();\n\t\t\t\treturn \"\\x1b[0m\";\n\t\t\t}\n\t\t\tconst match = /^<span class=\"hljs-([^\"]+)\">$/.exec(part);\n\t\t\tif (match) {\n\t\t\t\tconst color = colorFor(match[1] ?? \"\");\n\t\t\t\tif (color) colors.push(color);\n\t\t\t\treturn color ? `\\x1b[${color}m` : \"\";\n\t\t\t}\n\t\t\treturn decodeHtml(part);\n\t\t})\n\t\t.join(\"\");\n}\n\nexport function highlightCode(code: string, language: string): string[] | undefined {\n\tif (!hljs.getLanguage(language)) return undefined;\n\ttry {\n\t\treturn renderHtml(hljs.highlight(code, { language, ignoreIllegals: true }).value).split(\"\\n\");\n\t} catch {\n\t\treturn undefined;\n\t}\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@di-code/coding-agent",
3
- "version": "0.1.2",
3
+ "version": "0.1.4",
4
4
  "description": "Coding agent product layer for di-code",
5
5
  "keywords": [
6
6
  "ai-coding-agent",
@@ -52,11 +52,16 @@
52
52
  "test": "vitest run --passWithNoTests"
53
53
  },
54
54
  "dependencies": {
55
- "@di-code/agent": "0.1.2",
56
- "@di-code/ai": "0.1.2",
57
- "@di-code/tui": "0.1.2",
55
+ "@di-code/agent": "0.1.4",
56
+ "@di-code/ai": "0.1.4",
57
+ "@di-code/tui": "0.1.4",
58
+ "diff": "8.0.4",
59
+ "highlight.js": "^10.7.3",
58
60
  "jiti": "^2.5.1"
59
61
  },
62
+ "optionalDependencies": {
63
+ "@mariozechner/clipboard": "0.3.9"
64
+ },
60
65
  "engines": {
61
66
  "node": ">=22.19.0"
62
67
  }