assistant-ui 0.0.119 → 0.0.121

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 (92) hide show
  1. package/README.md +60 -1
  2. package/dist/commands/cloud.d.ts +25 -0
  3. package/dist/commands/cloud.d.ts.map +1 -0
  4. package/dist/commands/cloud.js +194 -0
  5. package/dist/commands/cloud.js.map +1 -0
  6. package/dist/commands/create.d.ts.map +1 -1
  7. package/dist/commands/create.js +8 -0
  8. package/dist/commands/create.js.map +1 -1
  9. package/dist/commands/info.js +1 -1
  10. package/dist/lib/agent-skill.d.ts +2 -2
  11. package/dist/lib/agent-skill.js +1 -1
  12. package/dist/lib/agent-skill.js.map +1 -1
  13. package/dist/lib/cloud-abort.d.ts +2 -0
  14. package/dist/lib/cloud-abort.d.ts.map +1 -0
  15. package/dist/lib/cloud-abort.js +13 -0
  16. package/dist/lib/cloud-abort.js.map +1 -0
  17. package/dist/lib/cloud-auth.d.ts +28 -0
  18. package/dist/lib/cloud-auth.d.ts.map +1 -0
  19. package/dist/lib/cloud-auth.js +169 -0
  20. package/dist/lib/cloud-auth.js.map +1 -0
  21. package/dist/lib/cloud-config.d.ts +21 -0
  22. package/dist/lib/cloud-config.d.ts.map +1 -0
  23. package/dist/lib/cloud-config.js +76 -0
  24. package/dist/lib/cloud-config.js.map +1 -0
  25. package/dist/lib/cloud-provision.d.ts +20 -0
  26. package/dist/lib/cloud-provision.d.ts.map +1 -0
  27. package/dist/lib/cloud-provision.js +55 -0
  28. package/dist/lib/cloud-provision.js.map +1 -0
  29. package/dist/lib/cloud-setup-login.d.ts +9 -0
  30. package/dist/lib/cloud-setup-login.d.ts.map +1 -0
  31. package/dist/lib/cloud-setup-login.js +137 -0
  32. package/dist/lib/cloud-setup-login.js.map +1 -0
  33. package/dist/lib/cloud-url.d.ts +2 -0
  34. package/dist/lib/cloud-url.d.ts.map +1 -0
  35. package/dist/lib/cloud-url.js +14 -0
  36. package/dist/lib/cloud-url.js.map +1 -0
  37. package/dist/lib/transform.js +1 -1
  38. package/dist/program.d.ts.map +1 -1
  39. package/dist/program.js +2 -1
  40. package/dist/program.js.map +1 -1
  41. package/package.json +17 -13
  42. package/src/commands/cloud.test.ts +238 -0
  43. package/src/commands/cloud.ts +455 -0
  44. package/src/commands/create.ts +8 -0
  45. package/src/lib/agent-skill.ts +1 -1
  46. package/src/lib/cloud-abort.ts +12 -0
  47. package/src/lib/cloud-auth.test.ts +500 -0
  48. package/src/lib/cloud-auth.ts +273 -0
  49. package/src/lib/cloud-config.test.ts +82 -0
  50. package/src/lib/cloud-config.ts +138 -0
  51. package/src/lib/cloud-provision.test.ts +132 -0
  52. package/src/lib/cloud-provision.ts +93 -0
  53. package/src/lib/cloud-setup-login.test.ts +361 -0
  54. package/src/lib/cloud-setup-login.ts +240 -0
  55. package/src/lib/cloud-url.ts +19 -0
  56. package/src/program.ts +2 -0
  57. package/templates/cloud-harness/.assistant-ui/template.json +3 -0
  58. package/templates/cloud-harness/.env.example +1 -0
  59. package/templates/cloud-harness/.gitignore +42 -0
  60. package/templates/cloud-harness/README.md +28 -0
  61. package/templates/cloud-harness/app/api/chat/route.ts +13 -0
  62. package/templates/cloud-harness/app/api/credential/route.ts +14 -0
  63. package/templates/cloud-harness/app/assistant.tsx +83 -0
  64. package/templates/cloud-harness/app/favicon.ico +0 -0
  65. package/templates/cloud-harness/app/globals.css +139 -0
  66. package/templates/cloud-harness/app/layout.tsx +37 -0
  67. package/templates/cloud-harness/app/page.tsx +5 -0
  68. package/templates/cloud-harness/components/assistant-ui/elements/attachment.aui.tsx +279 -0
  69. package/templates/cloud-harness/components/assistant-ui/elements/markdown-text.tsx +238 -0
  70. package/templates/cloud-harness/components/assistant-ui/elements/thread.aui.tsx +521 -0
  71. package/templates/cloud-harness/components/assistant-ui/elements/tool-fallback.aui.tsx +1153 -0
  72. package/templates/cloud-harness/components/assistant-ui/elements/tooltip-icon-button.tsx +49 -0
  73. package/templates/cloud-harness/components/ui/avatar.tsx +109 -0
  74. package/templates/cloud-harness/components/ui/button.tsx +58 -0
  75. package/templates/cloud-harness/components/ui/collapsible.tsx +21 -0
  76. package/templates/cloud-harness/components/ui/dialog.tsx +159 -0
  77. package/templates/cloud-harness/components/ui/textarea.tsx +18 -0
  78. package/templates/cloud-harness/components/ui/tooltip.tsx +69 -0
  79. package/templates/cloud-harness/components.json +24 -0
  80. package/templates/cloud-harness/hooks/use-attachment-src.ts +46 -0
  81. package/templates/cloud-harness/hooks/use-copy-to-clipboard.ts +54 -0
  82. package/templates/cloud-harness/lib/utils.ts +1 -0
  83. package/templates/cloud-harness/next.config.ts +6 -0
  84. package/templates/cloud-harness/package.json +51 -0
  85. package/templates/cloud-harness/postcss.config.mjs +5 -0
  86. package/templates/cloud-harness/tsconfig.json +33 -0
  87. package/templates/cloud-harness/vendor/README.md +13 -0
  88. package/templates/cloud-harness/vendor/assistant-ui-react-harness-sdk-0.0.2.tgz +0 -0
  89. package/templates/cloud-harness/vendor/harness-sdk-0.3.1.tgz +0 -0
  90. package/templates/cloud-harness/vendor/provenance.json +38 -0
  91. package/templates/cloud-harness/vendor/statewire-0.19.3.tgz +0 -0
  92. /package/{LICENSE → templates/cloud-harness/vendor/LICENSE} +0 -0
@@ -0,0 +1,238 @@
1
+ "use client";
2
+
3
+ import "@assistant-ui/react-markdown/styles/dot.css";
4
+
5
+ import {
6
+ type CodeHeaderProps,
7
+ MarkdownTextPrimitive,
8
+ unstable_memoizeMarkdownComponents as memoizeMarkdownComponents,
9
+ useIsMarkdownCodeBlock,
10
+ } from "@assistant-ui/react-markdown";
11
+ import remarkGfm from "remark-gfm";
12
+ import { type FC, memo } from "react";
13
+ import { CheckIcon, CopyIcon } from "lucide-react";
14
+
15
+ import { TooltipIconButton } from "@/components/assistant-ui/elements/tooltip-icon-button";
16
+ import { useCopyToClipboard } from "@/hooks/use-copy-to-clipboard";
17
+ import { cn } from "@/lib/utils";
18
+
19
+ const MarkdownTextImpl = () => {
20
+ return (
21
+ <MarkdownTextPrimitive
22
+ remarkPlugins={[remarkGfm]}
23
+ className="aui-md"
24
+ components={defaultComponents}
25
+ defer
26
+ />
27
+ );
28
+ };
29
+
30
+ export const MarkdownText = memo(MarkdownTextImpl);
31
+
32
+ const CodeHeader: FC<CodeHeaderProps> = ({ language, code }) => {
33
+ const { isCopied, copyToClipboard } = useCopyToClipboard();
34
+ const onCopy = () => {
35
+ if (!code || isCopied) return;
36
+ copyToClipboard(code);
37
+ };
38
+
39
+ return (
40
+ <div className="aui-code-header-root border-border/50 bg-muted/50 mt-3 flex items-center justify-between rounded-t-xl border border-b-0 px-3.5 py-1.5 text-xs">
41
+ <span className="aui-code-header-language text-muted-foreground font-medium lowercase">
42
+ {language}
43
+ </span>
44
+ <TooltipIconButton tooltip="Copy" onClick={onCopy}>
45
+ {!isCopied && (
46
+ <CopyIcon className="animate-in zoom-in-75 fade-in duration-150" />
47
+ )}
48
+ {isCopied && (
49
+ <CheckIcon className="animate-in zoom-in-50 fade-in duration-200 ease-out" />
50
+ )}
51
+ </TooltipIconButton>
52
+ </div>
53
+ );
54
+ };
55
+
56
+ const defaultComponents = memoizeMarkdownComponents({
57
+ h1: ({ className, ...props }) => (
58
+ <h1
59
+ className={cn(
60
+ "aui-md-h1 mt-5 mb-2 scroll-m-20 text-xl font-semibold first:mt-0 last:mb-0",
61
+ className,
62
+ )}
63
+ {...props}
64
+ />
65
+ ),
66
+ h2: ({ className, ...props }) => (
67
+ <h2
68
+ className={cn(
69
+ "aui-md-h2 mt-5 mb-2 scroll-m-20 text-lg font-semibold first:mt-0 last:mb-0",
70
+ className,
71
+ )}
72
+ {...props}
73
+ />
74
+ ),
75
+ h3: ({ className, ...props }) => (
76
+ <h3
77
+ className={cn(
78
+ "aui-md-h3 mt-4 mb-1.5 scroll-m-20 text-base font-semibold first:mt-0 last:mb-0",
79
+ className,
80
+ )}
81
+ {...props}
82
+ />
83
+ ),
84
+ h4: ({ className, ...props }) => (
85
+ <h4
86
+ className={cn(
87
+ "aui-md-h4 mt-3.5 mb-1 scroll-m-20 text-base font-medium first:mt-0 last:mb-0",
88
+ className,
89
+ )}
90
+ {...props}
91
+ />
92
+ ),
93
+ h5: ({ className, ...props }) => (
94
+ <h5
95
+ className={cn(
96
+ "aui-md-h5 mt-3 mb-1 text-sm font-semibold first:mt-0 last:mb-0",
97
+ className,
98
+ )}
99
+ {...props}
100
+ />
101
+ ),
102
+ h6: ({ className, ...props }) => (
103
+ <h6
104
+ className={cn(
105
+ "aui-md-h6 mt-3 mb-1 text-sm font-medium first:mt-0 last:mb-0",
106
+ className,
107
+ )}
108
+ {...props}
109
+ />
110
+ ),
111
+ p: ({ className, ...props }) => (
112
+ <p
113
+ className={cn(
114
+ "aui-md-p my-3 leading-relaxed first:mt-0 last:mb-0",
115
+ className,
116
+ )}
117
+ {...props}
118
+ />
119
+ ),
120
+ a: ({ className, ...props }) => (
121
+ <a
122
+ className={cn(
123
+ "aui-md-a text-primary hover:text-primary/80 underline underline-offset-2",
124
+ className,
125
+ )}
126
+ {...props}
127
+ />
128
+ ),
129
+ blockquote: ({ className, ...props }) => (
130
+ <blockquote
131
+ className={cn(
132
+ "aui-md-blockquote border-muted-foreground/30 text-muted-foreground my-3 border-s-2 ps-4",
133
+ className,
134
+ )}
135
+ {...props}
136
+ />
137
+ ),
138
+ ul: ({ className, ...props }) => (
139
+ <ul
140
+ className={cn(
141
+ "aui-md-ul marker:text-muted-foreground my-3 ms-5 list-disc [&>li]:mt-1",
142
+ className,
143
+ )}
144
+ {...props}
145
+ />
146
+ ),
147
+ ol: ({ className, ...props }) => (
148
+ <ol
149
+ className={cn(
150
+ "aui-md-ol marker:text-muted-foreground my-3 ms-5 list-decimal [&>li]:mt-1",
151
+ className,
152
+ )}
153
+ {...props}
154
+ />
155
+ ),
156
+ hr: ({ className, ...props }) => (
157
+ <hr
158
+ className={cn("aui-md-hr border-muted-foreground/20 my-3", className)}
159
+ {...props}
160
+ />
161
+ ),
162
+ table: ({ className, ...props }) => (
163
+ <div className="aui-md-table-wrapper my-3 overflow-x-auto">
164
+ <table
165
+ className={cn(
166
+ "aui-md-table w-full border-separate border-spacing-0",
167
+ className,
168
+ )}
169
+ {...props}
170
+ />
171
+ </div>
172
+ ),
173
+ th: ({ className, ...props }) => (
174
+ <th
175
+ className={cn(
176
+ "aui-md-th bg-muted px-3 py-1.5 text-start font-medium first:rounded-ss-lg last:rounded-se-lg [[align=center]]:text-center [[align=right]]:text-right",
177
+ className,
178
+ )}
179
+ {...props}
180
+ />
181
+ ),
182
+ td: ({ className, ...props }) => (
183
+ <td
184
+ className={cn(
185
+ "aui-md-td border-muted-foreground/20 border-s border-b px-3 py-1.5 text-start last:border-e [[align=center]]:text-center [[align=right]]:text-right",
186
+ className,
187
+ )}
188
+ {...props}
189
+ />
190
+ ),
191
+ tr: ({ className, ...props }) => (
192
+ <tr
193
+ className={cn(
194
+ "aui-md-tr m-0 border-b p-0 first:border-t [&:last-child>td:first-child]:rounded-es-lg [&:last-child>td:last-child]:rounded-ee-lg",
195
+ className,
196
+ )}
197
+ {...props}
198
+ />
199
+ ),
200
+ li: ({ className, ...props }) => (
201
+ <li className={cn("aui-md-li leading-relaxed", className)} {...props} />
202
+ ),
203
+ strong: ({ className, ...props }) => (
204
+ <strong
205
+ className={cn("aui-md-strong font-semibold", className)}
206
+ {...props}
207
+ />
208
+ ),
209
+ sup: ({ className, ...props }) => (
210
+ <sup
211
+ className={cn("aui-md-sup [&>a]:text-xs [&>a]:no-underline", className)}
212
+ {...props}
213
+ />
214
+ ),
215
+ pre: ({ className, ...props }) => (
216
+ <pre
217
+ className={cn(
218
+ "aui-md-pre border-border/50 bg-muted/30 overflow-x-auto rounded-t-none rounded-b-xl border border-t-0 p-3.5 text-[13px] leading-relaxed",
219
+ className,
220
+ )}
221
+ {...props}
222
+ />
223
+ ),
224
+ code: function Code({ className, ...props }) {
225
+ const isCodeBlock = useIsMarkdownCodeBlock();
226
+ return (
227
+ <code
228
+ className={cn(
229
+ !isCodeBlock &&
230
+ "aui-md-inline-code bg-muted rounded-md px-1.5 py-0.5 font-mono text-[0.85em]",
231
+ className,
232
+ )}
233
+ {...props}
234
+ />
235
+ );
236
+ },
237
+ CodeHeader,
238
+ });