summaryrefslogtreecommitdiffhomepage
path: root/packages/storybook/.storybook/mocks/app/context/local.ts
blob: d1f02e5bb321e9d535ea8e24b4ddc5c133b429ff (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import { createSignal } from "solid-js"

const model = {
  id: "claude-3-7-sonnet",
  name: "Claude 3.7 Sonnet",
  provider: { id: "anthropic" },
  variants: { fast: {}, thinking: {} },
}

const agents = [{ name: "build" }, { name: "review" }, { name: "plan" }]

const [agent, setAgent] = createSignal(agents[0].name)
const [variant, setVariant] = createSignal<string | undefined>(undefined)

export function useLocal() {
  return {
    slug: () => "c3Rvcnk=",
    agent: {
      list: () => agents,
      current: () => agents.find((item) => item.name === agent()) ?? agents[0],
      set(value?: string) {
        if (!value) {
          setAgent(agents[0].name)
          return
        }
        const hit = agents.find((item) => item.name === value)
        setAgent(hit?.name ?? agents[0].name)
      },
    },
    model: {
      current: () => model,
      variant: {
        list: () => Object.keys(model.variants),
        current: () => variant(),
        set(next?: string) {
          setVariant(next)
        },
      },
    },
  }
}