@windowkit/agent-chat 0.1.0 → 0.4.0

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 (118) hide show
  1. package/dist/core/driver.d.ts +13 -0
  2. package/dist/core/driver.d.ts.map +1 -1
  3. package/dist/core/driver.js.map +1 -1
  4. package/dist/core/markdown.js +29 -0
  5. package/dist/core/markdown.js.map +1 -1
  6. package/dist/core/reducer.d.ts.map +1 -1
  7. package/dist/core/reducer.js +16 -0
  8. package/dist/core/reducer.js.map +1 -1
  9. package/dist/core/session.d.ts +3 -0
  10. package/dist/core/session.d.ts.map +1 -1
  11. package/dist/core/session.js +17 -1
  12. package/dist/core/session.js.map +1 -1
  13. package/dist/core/types.d.ts +43 -1
  14. package/dist/core/types.d.ts.map +1 -1
  15. package/dist/core/types.js.map +1 -1
  16. package/dist/drivers/claude/index.d.ts.map +1 -1
  17. package/dist/drivers/claude/index.js +56 -8
  18. package/dist/drivers/claude/index.js.map +1 -1
  19. package/dist/drivers/claude/results.d.ts +40 -0
  20. package/dist/drivers/claude/results.d.ts.map +1 -0
  21. package/dist/drivers/claude/results.js +235 -0
  22. package/dist/drivers/claude/results.js.map +1 -0
  23. package/dist/drivers/claude/tools.d.ts +3 -1
  24. package/dist/drivers/claude/tools.d.ts.map +1 -1
  25. package/dist/drivers/claude/tools.js +7 -1
  26. package/dist/drivers/claude/tools.js.map +1 -1
  27. package/dist/view/AgentChat.d.ts.map +1 -1
  28. package/dist/view/AgentChat.js +14 -3
  29. package/dist/view/AgentChat.js.map +1 -1
  30. package/dist/view/ArtifactCard.d.ts +6 -0
  31. package/dist/view/ArtifactCard.d.ts.map +1 -0
  32. package/dist/view/ArtifactCard.js +6 -0
  33. package/dist/view/ArtifactCard.js.map +1 -0
  34. package/dist/view/AttachmentCard.d.ts +8 -0
  35. package/dist/view/AttachmentCard.d.ts.map +1 -0
  36. package/dist/view/AttachmentCard.js +55 -0
  37. package/dist/view/AttachmentCard.js.map +1 -0
  38. package/dist/view/CodeBlock.d.ts.map +1 -1
  39. package/dist/view/CodeBlock.js +18 -11
  40. package/dist/view/CodeBlock.js.map +1 -1
  41. package/dist/view/Composer.d.ts.map +1 -1
  42. package/dist/view/Composer.js +9 -1
  43. package/dist/view/Composer.js.map +1 -1
  44. package/dist/view/DataPartView.d.ts +6 -0
  45. package/dist/view/DataPartView.d.ts.map +1 -0
  46. package/dist/view/DataPartView.js +23 -0
  47. package/dist/view/DataPartView.js.map +1 -0
  48. package/dist/view/ImageView.d.ts +18 -0
  49. package/dist/view/ImageView.d.ts.map +1 -0
  50. package/dist/view/ImageView.js +35 -0
  51. package/dist/view/ImageView.js.map +1 -0
  52. package/dist/view/LinkCard.d.ts +14 -0
  53. package/dist/view/LinkCard.d.ts.map +1 -0
  54. package/dist/view/LinkCard.js +40 -0
  55. package/dist/view/LinkCard.js.map +1 -0
  56. package/dist/view/MessageList.d.ts.map +1 -1
  57. package/dist/view/MessageList.js +10 -10
  58. package/dist/view/MessageList.js.map +1 -1
  59. package/dist/view/PlanChecklist.d.ts +6 -0
  60. package/dist/view/PlanChecklist.d.ts.map +1 -0
  61. package/dist/view/PlanChecklist.js +16 -0
  62. package/dist/view/PlanChecklist.js.map +1 -0
  63. package/dist/view/PullRequestCard.d.ts +6 -0
  64. package/dist/view/PullRequestCard.d.ts.map +1 -0
  65. package/dist/view/PullRequestCard.js +12 -0
  66. package/dist/view/PullRequestCard.js.map +1 -0
  67. package/dist/view/SessionCard.d.ts +6 -0
  68. package/dist/view/SessionCard.d.ts.map +1 -0
  69. package/dist/view/SessionCard.js +6 -0
  70. package/dist/view/SessionCard.js.map +1 -0
  71. package/dist/view/SuggestedReplies.d.ts +5 -0
  72. package/dist/view/SuggestedReplies.d.ts.map +1 -0
  73. package/dist/view/SuggestedReplies.js +10 -0
  74. package/dist/view/SuggestedReplies.js.map +1 -0
  75. package/dist/view/TextBlock.d.ts.map +1 -1
  76. package/dist/view/TextBlock.js +4 -1
  77. package/dist/view/TextBlock.js.map +1 -1
  78. package/dist/view/ToolCard.d.ts.map +1 -1
  79. package/dist/view/ToolCard.js +4 -1
  80. package/dist/view/ToolCard.js.map +1 -1
  81. package/dist/view/Transcript.d.ts.map +1 -1
  82. package/dist/view/Transcript.js +18 -2
  83. package/dist/view/Transcript.js.map +1 -1
  84. package/dist/view/context.d.ts +9 -0
  85. package/dist/view/context.d.ts.map +1 -1
  86. package/dist/view/context.js +9 -0
  87. package/dist/view/context.js.map +1 -1
  88. package/dist/view/look.d.ts +21 -0
  89. package/dist/view/look.d.ts.map +1 -1
  90. package/dist/view/look.js +17 -0
  91. package/dist/view/look.js.map +1 -1
  92. package/package.json +3 -3
  93. package/src/core/driver.ts +4 -0
  94. package/src/core/markdown.ts +34 -0
  95. package/src/core/reducer.ts +25 -0
  96. package/src/core/session.ts +17 -1
  97. package/src/core/types.ts +51 -1
  98. package/src/drivers/claude/index.ts +62 -7
  99. package/src/drivers/claude/results.ts +252 -0
  100. package/src/drivers/claude/tools.ts +7 -1
  101. package/src/view/AgentChat.tsx +20 -2
  102. package/src/view/ArtifactCard.tsx +18 -0
  103. package/src/view/AttachmentCard.tsx +103 -0
  104. package/src/view/CodeBlock.tsx +18 -11
  105. package/src/view/Composer.tsx +10 -1
  106. package/src/view/DataPartView.tsx +40 -0
  107. package/src/view/ImageView.tsx +64 -0
  108. package/src/view/LinkCard.tsx +99 -0
  109. package/src/view/MessageList.tsx +21 -39
  110. package/src/view/PlanChecklist.tsx +49 -0
  111. package/src/view/PullRequestCard.tsx +28 -0
  112. package/src/view/SessionCard.tsx +22 -0
  113. package/src/view/SuggestedReplies.tsx +34 -0
  114. package/src/view/TextBlock.tsx +4 -1
  115. package/src/view/ToolCard.tsx +10 -1
  116. package/src/view/Transcript.tsx +20 -1
  117. package/src/view/context.ts +19 -0
  118. package/src/view/look.ts +38 -0
package/src/view/look.ts CHANGED
@@ -4,6 +4,10 @@
4
4
  import { useMemo } from 'react';
5
5
  import { useTheme } from 'react-x11';
6
6
  import { tint } from 'react-x11/style';
7
+ import {
8
+ codeBlockLook,
9
+ type CodeBlockLook,
10
+ } from '@react-x11/components/codeblock';
7
11
 
8
12
  export interface ChatLook {
9
13
  text: string;
@@ -18,6 +22,20 @@ export interface ChatLook {
18
22
  mono: string;
19
23
  /** The user's bubble: the text colour, faintly, so it shows on any ground. */
20
24
  bubble: string;
25
+ /** Labels, states and captions. */
26
+ smallSize: number;
27
+ /** A secondary line: a thought, a notice, a card's detail. */
28
+ captionSize: number;
29
+ /** A card's corners. */
30
+ radius: number;
31
+ /** Inside a card, from its edge. */
32
+ inset: number;
33
+ /** Between a card's pieces. */
34
+ gap: number;
35
+ /** The tallest an image in a reply or a tool's output is drawn. */
36
+ imageHeight: number;
37
+ /** The tallest an image in the user's own message is drawn. */
38
+ thumbHeight: number;
21
39
  }
22
40
 
23
41
  export function useLook(): ChatLook {
@@ -36,10 +54,30 @@ export function useLook(): ChatLook {
36
54
  warning: String(theme.warning ?? '#e67e22'),
37
55
  mono: String(theme.monoFamily ?? 'monospace'),
38
56
  bubble: tint(text, 0.07),
57
+ smallSize: 11,
58
+ captionSize: 12,
59
+ radius: 6,
60
+ inset: 8,
61
+ gap: 6,
62
+ imageHeight: 320,
63
+ thumbHeight: 160,
39
64
  };
40
65
  }, [theme]);
41
66
  }
42
67
 
68
+ /**
69
+ * What a block of code looks like here: what `<Markdown>` draws a fence
70
+ * with, at the chat's text size, so a fence the chat draws itself (to carry
71
+ * its actions) has the fill, radius, inset and spacing of one it does not.
72
+ */
73
+ export function useCodeLook(fontSize: number | undefined): CodeBlockLook {
74
+ const theme = useTheme() as unknown as Record<string, unknown>;
75
+ return useMemo(
76
+ () => codeBlockLook(theme, fontSize ? { baseSize: fontSize } : {}),
77
+ [theme, fontSize],
78
+ );
79
+ }
80
+
43
81
  /** At most `max` lines: the first and last halves, and how many were cut. */
44
82
  export function clipLines(text: string, max = 200): string {
45
83
  const lines = text.split('\n');