mirror of
https://github.com/wavetermdev/waveterm.git
synced 2024-12-21 16:38:23 +01:00
Additional Demo Fixes (#191)
This commit is contained in:
parent
49a365e10b
commit
7cba3c46d4
@ -3,6 +3,7 @@
|
|||||||
|
|
||||||
import { useHeight } from "@/app/hook/useHeight";
|
import { useHeight } from "@/app/hook/useHeight";
|
||||||
import { useWidth } from "@/app/hook/useWidth";
|
import { useWidth } from "@/app/hook/useWidth";
|
||||||
|
import { WOS } from "@/store/global";
|
||||||
import { WshServer } from "@/store/wshserver";
|
import { WshServer } from "@/store/wshserver";
|
||||||
import * as Plot from "@observablehq/plot";
|
import * as Plot from "@observablehq/plot";
|
||||||
import dayjs from "dayjs";
|
import dayjs from "dayjs";
|
||||||
@ -28,9 +29,11 @@ class CpuPlotViewModel {
|
|||||||
dataAtom: jotai.PrimitiveAtom<Array<Point>>;
|
dataAtom: jotai.PrimitiveAtom<Array<Point>>;
|
||||||
addDataAtom: jotai.WritableAtom<unknown, [Point], void>;
|
addDataAtom: jotai.WritableAtom<unknown, [Point], void>;
|
||||||
width: number;
|
width: number;
|
||||||
|
incrementCount: jotai.WritableAtom<unknown, [], Promise<void>>;
|
||||||
|
|
||||||
constructor(blockId: string) {
|
constructor(blockId: string) {
|
||||||
this.blockId = blockId;
|
this.blockId = blockId;
|
||||||
|
this.blockAtom = WOS.getWaveObjectAtom<Block>(`block:${blockId}`);
|
||||||
this.width = 100;
|
this.width = 100;
|
||||||
this.dataAtom = jotai.atom(this.getDefaultData());
|
this.dataAtom = jotai.atom(this.getDefaultData());
|
||||||
this.addDataAtom = jotai.atom(null, (get, set, point) => {
|
this.addDataAtom = jotai.atom(null, (get, set, point) => {
|
||||||
@ -45,6 +48,11 @@ class CpuPlotViewModel {
|
|||||||
this.viewName = jotai.atom((get) => {
|
this.viewName = jotai.atom((get) => {
|
||||||
return "CPU %"; // should not be hardcoded
|
return "CPU %"; // should not be hardcoded
|
||||||
});
|
});
|
||||||
|
this.incrementCount = jotai.atom(null, async (get, set) => {
|
||||||
|
const meta = get(this.blockAtom).meta;
|
||||||
|
const count = meta.count ?? 0;
|
||||||
|
await WshServer.SetMetaCommand({ oref: WOS.makeORef("block", this.blockId), meta: { count: count + 1 } });
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
getDefaultData(): Array<Point> {
|
getDefaultData(): Array<Point> {
|
||||||
@ -69,6 +77,8 @@ function CpuPlotView({ model }: { model: CpuPlotViewModel }) {
|
|||||||
const addPlotData = jotai.useSetAtom(model.addDataAtom);
|
const addPlotData = jotai.useSetAtom(model.addDataAtom);
|
||||||
const parentHeight = useHeight(containerRef);
|
const parentHeight = useHeight(containerRef);
|
||||||
const parentWidth = useWidth(containerRef);
|
const parentWidth = useWidth(containerRef);
|
||||||
|
const block = jotai.useAtomValue(model.blockAtom);
|
||||||
|
const incrementCount = jotai.useSetAtom(model.incrementCount); // temporary
|
||||||
|
|
||||||
React.useEffect(() => {
|
React.useEffect(() => {
|
||||||
console.log("plotData:", plotData);
|
console.log("plotData:", plotData);
|
||||||
@ -76,8 +86,9 @@ function CpuPlotView({ model }: { model: CpuPlotViewModel }) {
|
|||||||
|
|
||||||
React.useEffect(() => {
|
React.useEffect(() => {
|
||||||
const temp = async () => {
|
const temp = async () => {
|
||||||
|
await incrementCount();
|
||||||
const dataGen = WshServer.StreamCpuDataCommand(
|
const dataGen = WshServer.StreamCpuDataCommand(
|
||||||
{ id: model.blockId },
|
{ id: model.blockId, count: (block.meta?.count ?? 0) + 1 },
|
||||||
{ timeout: 999999999, noresponse: false }
|
{ timeout: 999999999, noresponse: false }
|
||||||
);
|
);
|
||||||
try {
|
try {
|
||||||
|
@ -107,7 +107,7 @@ export class WaveAiModel implements ViewModel {
|
|||||||
const viewTextChildren: HeaderElem[] = [
|
const viewTextChildren: HeaderElem[] = [
|
||||||
{
|
{
|
||||||
elemtype: "text",
|
elemtype: "text",
|
||||||
text: get(atoms.settingsConfigAtom).ai?.model ?? "gpt-4o-mini",
|
text: get(atoms.settingsConfigAtom).ai?.model ?? "gpt-3.5-turbo",
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
return viewTextChildren;
|
return viewTextChildren;
|
||||||
|
2
frontend/types/gotypes.d.ts
vendored
2
frontend/types/gotypes.d.ts
vendored
@ -134,6 +134,7 @@ declare global {
|
|||||||
// wshrpc.CpuDataRequest
|
// wshrpc.CpuDataRequest
|
||||||
type CpuDataRequest = {
|
type CpuDataRequest = {
|
||||||
id: string;
|
id: string;
|
||||||
|
count: number;
|
||||||
};
|
};
|
||||||
|
|
||||||
// wshrpc.CpuDataType
|
// wshrpc.CpuDataType
|
||||||
@ -217,6 +218,7 @@ declare global {
|
|||||||
"term:fontfamily"?: string;
|
"term:fontfamily"?: string;
|
||||||
"term:mode"?: string;
|
"term:mode"?: string;
|
||||||
"term:theme"?: string;
|
"term:theme"?: string;
|
||||||
|
count?: number;
|
||||||
};
|
};
|
||||||
|
|
||||||
// tsgenmeta.MethodMeta
|
// tsgenmeta.MethodMeta
|
||||||
|
@ -81,7 +81,7 @@ func GetWSEndpoint() string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const DefaultMaxTokens = 1000
|
const DefaultMaxTokens = 1000
|
||||||
const DefaultModel = "gpt-4o-mini"
|
const DefaultModel = "gpt-3.5-turbo"
|
||||||
const DefaultStreamChanSize = 10
|
const DefaultStreamChanSize = 10
|
||||||
const PCloudWSEndpoint = "wss://wsapi.waveterm.dev/"
|
const PCloudWSEndpoint = "wss://wsapi.waveterm.dev/"
|
||||||
const PCloudWSEndpointVarName = "PCLOUD_WS_ENDPOINT"
|
const PCloudWSEndpointVarName = "PCLOUD_WS_ENDPOINT"
|
||||||
|
@ -259,7 +259,7 @@ func applyDefaultSettings(settings *SettingsConfigType) {
|
|||||||
if settings.Ai == nil {
|
if settings.Ai == nil {
|
||||||
settings.Ai = &AiConfigType{
|
settings.Ai = &AiConfigType{
|
||||||
Name: userName,
|
Name: userName,
|
||||||
Model: "gpt-4o-mini",
|
Model: "gpt-3.5-turbo",
|
||||||
MaxTokens: 1000,
|
MaxTokens: 1000,
|
||||||
TimeoutMs: 10 * 1000,
|
TimeoutMs: 10 * 1000,
|
||||||
}
|
}
|
||||||
|
@ -232,7 +232,8 @@ type OpenAIUsageType struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type CpuDataRequest struct {
|
type CpuDataRequest struct {
|
||||||
Id string `json:"id"`
|
Id string `json:"id"`
|
||||||
|
Count int `json:"count"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type CpuDataType struct {
|
type CpuDataType struct {
|
||||||
|
@ -97,6 +97,17 @@ func (ws *WshServer) StreamCpuDataCommand(ctx context.Context, request wshrpc.Cp
|
|||||||
rtn <- wshrpc.RespOrErrorUnion[wshrpc.CpuDataType]{Error: err}
|
rtn <- wshrpc.RespOrErrorUnion[wshrpc.CpuDataType]{Error: err}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
blockData, getBlockDataErr := wstore.DBMustGet[*wstore.Block](ctx, request.Id)
|
||||||
|
if getBlockDataErr != nil {
|
||||||
|
rtn <- wshrpc.RespOrErrorUnion[wshrpc.CpuDataType]{Error: getBlockDataErr}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
count := blockData.Meta.GetInt(wstore.MetaKey_Count, 0)
|
||||||
|
if count != request.Count {
|
||||||
|
rtn <- wshrpc.RespOrErrorUnion[wshrpc.CpuDataType]{Error: fmt.Errorf("new instance created. canceling old goroutine")}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
|
|
||||||
|
@ -54,6 +54,7 @@ const (
|
|||||||
MetaKey_TermFontFamily = "term:fontfamily"
|
MetaKey_TermFontFamily = "term:fontfamily"
|
||||||
MetaKey_TermMode = "term:mode"
|
MetaKey_TermMode = "term:mode"
|
||||||
MetaKey_TermTheme = "term:theme"
|
MetaKey_TermTheme = "term:theme"
|
||||||
|
MetaKey_Count = "count" // temp for cpu plot. will remove later
|
||||||
)
|
)
|
||||||
|
|
||||||
// for typescript typing
|
// for typescript typing
|
||||||
@ -96,6 +97,7 @@ type MetaTSType struct {
|
|||||||
TermFontFamily string `json:"term:fontfamily,omitempty"`
|
TermFontFamily string `json:"term:fontfamily,omitempty"`
|
||||||
TermMode string `json:"term:mode,omitempty"`
|
TermMode string `json:"term:mode,omitempty"`
|
||||||
TermTheme string `json:"term:theme,omitempty"`
|
TermTheme string `json:"term:theme,omitempty"`
|
||||||
|
Count int `json:"count,omitempty"` // temp for cpu plot. will remove later
|
||||||
}
|
}
|
||||||
|
|
||||||
type MetaDataDecl struct {
|
type MetaDataDecl struct {
|
||||||
|
Loading…
Reference in New Issue
Block a user