@di-code/coding-agent 0.1.1 → 0.1.3

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 (100) hide show
  1. package/README.md +489 -143
  2. package/dist/cli.d.ts +12 -0
  3. package/dist/cli.d.ts.map +1 -1
  4. package/dist/cli.js +74 -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/image-input.d.ts +13 -0
  11. package/dist/core/image-input.d.ts.map +1 -0
  12. package/dist/core/image-input.js +102 -0
  13. package/dist/core/image-input.js.map +1 -0
  14. package/dist/core/resources/index.d.ts +3 -0
  15. package/dist/core/resources/index.d.ts.map +1 -0
  16. package/dist/core/resources/index.js +2 -0
  17. package/dist/core/resources/index.js.map +1 -0
  18. package/dist/core/resources/loader.d.ts +8 -0
  19. package/dist/core/resources/loader.d.ts.map +1 -0
  20. package/dist/core/resources/loader.js +174 -0
  21. package/dist/core/resources/loader.js.map +1 -0
  22. package/dist/core/resources/skills.d.ts +10 -0
  23. package/dist/core/resources/skills.d.ts.map +1 -0
  24. package/dist/core/resources/skills.js +167 -0
  25. package/dist/core/resources/skills.js.map +1 -0
  26. package/dist/core/resources/types.d.ts +41 -0
  27. package/dist/core/resources/types.d.ts.map +1 -0
  28. package/dist/core/resources/types.js +2 -0
  29. package/dist/core/resources/types.js.map +1 -0
  30. package/dist/core/session.d.ts +10 -1
  31. package/dist/core/session.d.ts.map +1 -1
  32. package/dist/core/session.js +33 -5
  33. package/dist/core/session.js.map +1 -1
  34. package/dist/core/skill-command.d.ts +3 -0
  35. package/dist/core/skill-command.d.ts.map +1 -0
  36. package/dist/core/skill-command.js +34 -0
  37. package/dist/core/skill-command.js.map +1 -0
  38. package/dist/core/system-prompt.d.ts +6 -0
  39. package/dist/core/system-prompt.d.ts.map +1 -0
  40. package/dist/core/system-prompt.js +57 -0
  41. package/dist/core/system-prompt.js.map +1 -0
  42. package/dist/extensions/runtime.d.ts +7 -4
  43. package/dist/extensions/runtime.d.ts.map +1 -1
  44. package/dist/extensions/runtime.js +45 -10
  45. package/dist/extensions/runtime.js.map +1 -1
  46. package/dist/index.d.ts +3 -0
  47. package/dist/index.d.ts.map +1 -1
  48. package/dist/index.js +3 -0
  49. package/dist/index.js.map +1 -1
  50. package/dist/main.d.ts +1 -0
  51. package/dist/main.d.ts.map +1 -1
  52. package/dist/main.js +91 -2
  53. package/dist/main.js.map +1 -1
  54. package/dist/modes/interactive-components.d.ts +1 -0
  55. package/dist/modes/interactive-components.d.ts.map +1 -1
  56. package/dist/modes/interactive-components.js +48 -20
  57. package/dist/modes/interactive-components.js.map +1 -1
  58. package/dist/modes/interactive-layout.d.ts +2 -1
  59. package/dist/modes/interactive-layout.d.ts.map +1 -1
  60. package/dist/modes/interactive-layout.js +17 -1
  61. package/dist/modes/interactive-layout.js.map +1 -1
  62. package/dist/modes/interactive-state.d.ts +12 -2
  63. package/dist/modes/interactive-state.d.ts.map +1 -1
  64. package/dist/modes/interactive-state.js +50 -3
  65. package/dist/modes/interactive-state.js.map +1 -1
  66. package/dist/modes/interactive.d.ts +12 -0
  67. package/dist/modes/interactive.d.ts.map +1 -1
  68. package/dist/modes/interactive.js +125 -9
  69. package/dist/modes/interactive.js.map +1 -1
  70. package/dist/plugins/index.d.ts +5 -0
  71. package/dist/plugins/index.d.ts.map +1 -0
  72. package/dist/plugins/index.js +5 -0
  73. package/dist/plugins/index.js.map +1 -0
  74. package/dist/plugins/loader.d.ts +18 -0
  75. package/dist/plugins/loader.d.ts.map +1 -0
  76. package/dist/plugins/loader.js +92 -0
  77. package/dist/plugins/loader.js.map +1 -0
  78. package/dist/plugins/manager.d.ts +23 -0
  79. package/dist/plugins/manager.d.ts.map +1 -0
  80. package/dist/plugins/manager.js +152 -0
  81. package/dist/plugins/manager.js.map +1 -0
  82. package/dist/plugins/manifest.d.ts +7 -0
  83. package/dist/plugins/manifest.d.ts.map +1 -0
  84. package/dist/plugins/manifest.js +116 -0
  85. package/dist/plugins/manifest.js.map +1 -0
  86. package/dist/plugins/types.d.ts +41 -0
  87. package/dist/plugins/types.d.ts.map +1 -0
  88. package/dist/plugins/types.js +2 -0
  89. package/dist/plugins/types.js.map +1 -0
  90. package/dist/provider-onboarding.d.ts.map +1 -1
  91. package/dist/provider-onboarding.js +20 -1
  92. package/dist/provider-onboarding.js.map +1 -1
  93. package/dist/startup.d.ts.map +1 -1
  94. package/dist/startup.js +65 -16
  95. package/dist/startup.js.map +1 -1
  96. package/dist/utils/syntax-highlight.d.ts +2 -0
  97. package/dist/utils/syntax-highlight.d.ts.map +1 -0
  98. package/dist/utils/syntax-highlight.js +55 -0
  99. package/dist/utils/syntax-highlight.js.map +1 -0
  100. package/package.json +19 -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,7 +1,17 @@
1
1
  {
2
2
  "name": "@di-code/coding-agent",
3
- "version": "0.1.1",
3
+ "version": "0.1.3",
4
4
  "description": "Coding agent product layer for di-code",
5
+ "keywords": [
6
+ "ai-coding-agent",
7
+ "coding-agent",
8
+ "cli",
9
+ "developer-tools",
10
+ "openai",
11
+ "deepseek",
12
+ "jsonl",
13
+ "rpc"
14
+ ],
5
15
  "private": false,
6
16
  "type": "module",
7
17
  "main": "./dist/index.js",
@@ -42,9 +52,14 @@
42
52
  "test": "vitest run --passWithNoTests"
43
53
  },
44
54
  "dependencies": {
45
- "@di-code/agent": "0.1.1",
46
- "@di-code/ai": "0.1.1",
47
- "@di-code/tui": "0.1.1"
55
+ "@di-code/agent": "0.1.3",
56
+ "@di-code/ai": "0.1.3",
57
+ "@di-code/tui": "0.1.3",
58
+ "highlight.js": "^10.7.3",
59
+ "jiti": "^2.5.1"
60
+ },
61
+ "optionalDependencies": {
62
+ "@mariozechner/clipboard": "0.3.9"
48
63
  },
49
64
  "engines": {
50
65
  "node": ">=22.19.0"