{language}
+ {showSaveCommand && (
+
+ )}
{onClickExecute && (
void;
+ onClickSaveCommand?: (cmd: string) => void;
codeBlockMaxWidthAtom?: Atom;
}
@@ -210,6 +263,7 @@ export const WaveStreamdown = ({
parseIncompleteMarkdown,
className,
onClickExecute,
+ onClickSaveCommand,
codeBlockMaxWidthAtom,
}: WaveStreamdownProps) => {
const components = useMemo(
@@ -219,6 +273,7 @@ export const WaveStreamdown = ({
),
diff --git a/frontend/types/gotypes.d.ts b/frontend/types/gotypes.d.ts
index ddcb4a63e7..4b2ada32bf 100644
--- a/frontend/types/gotypes.d.ts
+++ b/frontend/types/gotypes.d.ts
@@ -1206,6 +1206,7 @@ declare global {
"waveai:chatid"?: string;
"waveai:mode"?: string;
"waveai:maxoutputtokens"?: number;
+ "waveai:savedcommands"?: WaveAISavedCommand[];
};
// wshrpc.PathCommandData
@@ -1959,6 +1960,14 @@ declare global {
name?: string;
};
+ // waveobj.WaveAISavedCommand
+ type WaveAISavedCommand = {
+ id: string;
+ text: string;
+ createdts?: number;
+ updatedts?: number;
+ };
+
// wshrpc.WaveAIStreamRequest
type WaveAIStreamRequest = {
clientid?: string;
diff --git a/pkg/waveobj/objrtinfo.go b/pkg/waveobj/objrtinfo.go
index a7b35bbd86..ef5fb7bde1 100644
--- a/pkg/waveobj/objrtinfo.go
+++ b/pkg/waveobj/objrtinfo.go
@@ -3,6 +3,13 @@
package waveobj
+type WaveAISavedCommand struct {
+ Id string `json:"id"`
+ Text string `json:"text"`
+ CreatedTs int64 `json:"createdts,omitempty"`
+ UpdatedTs int64 `json:"updatedts,omitempty"`
+}
+
type ObjRTInfo struct {
TsunamiAppMeta any `json:"tsunami:appmeta,omitempty" tstype:"AppMeta"`
TsunamiSchemas any `json:"tsunami:schemas,omitempty"`
@@ -23,7 +30,8 @@ type ObjRTInfo struct {
BuilderAppId string `json:"builder:appid,omitempty"`
BuilderEnv map[string]string `json:"builder:env,omitempty"`
- WaveAIChatId string `json:"waveai:chatid,omitempty"`
- WaveAIMode string `json:"waveai:mode,omitempty"`
- WaveAIMaxOutputTokens int `json:"waveai:maxoutputtokens,omitempty"`
+ WaveAIChatId string `json:"waveai:chatid,omitempty"`
+ WaveAIMode string `json:"waveai:mode,omitempty"`
+ WaveAIMaxOutputTokens int `json:"waveai:maxoutputtokens,omitempty"`
+ WaveAISavedCommands []WaveAISavedCommand `json:"waveai:savedcommands,omitempty"`
}