mirror of
https://github.com/anomalyco/opencode.git
synced 2026-08-09 02:49:57 -04:00
Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 94f1a8b128 | |||
| 66b3f5965e | |||
| 2a3242771a |
@@ -513,6 +513,7 @@
|
|||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@cloudflare/workers-types": "catalog:",
|
"@cloudflare/workers-types": "catalog:",
|
||||||
|
"@opencode-ai/schema": "workspace:*",
|
||||||
"@tailwindcss/vite": "catalog:",
|
"@tailwindcss/vite": "catalog:",
|
||||||
"@types/bun": "catalog:",
|
"@types/bun": "catalog:",
|
||||||
"@types/luxon": "catalog:",
|
"@types/luxon": "catalog:",
|
||||||
|
|||||||
@@ -1,49 +0,0 @@
|
|||||||
import { create } from "@opencode-ai/schema/identifier"
|
|
||||||
|
|
||||||
const prefixes = {
|
|
||||||
job: "job",
|
|
||||||
event: "evt",
|
|
||||||
session: "ses",
|
|
||||||
message: "msg",
|
|
||||||
permission: "per",
|
|
||||||
question: "que",
|
|
||||||
part: "prt",
|
|
||||||
pty: "pty",
|
|
||||||
tool: "tool",
|
|
||||||
workspace: "wrk",
|
|
||||||
} as const
|
|
||||||
|
|
||||||
export function ascending(prefix: keyof typeof prefixes, given?: string) {
|
|
||||||
return generateID(prefix, "ascending", given)
|
|
||||||
}
|
|
||||||
|
|
||||||
export function descending(prefix: keyof typeof prefixes, given?: string) {
|
|
||||||
return generateID(prefix, "descending", given)
|
|
||||||
}
|
|
||||||
|
|
||||||
function generateID(prefix: keyof typeof prefixes, direction: "descending" | "ascending", given?: string): string {
|
|
||||||
if (!given) {
|
|
||||||
return createID(prefixes[prefix], direction)
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!given.startsWith(prefixes[prefix])) {
|
|
||||||
throw new Error(`ID ${given} does not start with ${prefixes[prefix]}`)
|
|
||||||
}
|
|
||||||
return given
|
|
||||||
}
|
|
||||||
|
|
||||||
function createID(prefix: string, direction: "descending" | "ascending", timestamp?: number): string {
|
|
||||||
return prefix + "_" + create(direction === "descending", timestamp)
|
|
||||||
}
|
|
||||||
|
|
||||||
export { createID as create }
|
|
||||||
|
|
||||||
/** Extract timestamp from an ascending ID. Does not work with descending IDs. */
|
|
||||||
export function timestamp(id: string): number {
|
|
||||||
const prefix = id.split("_")[0]
|
|
||||||
const hex = id.slice(prefix.length + 1, prefix.length + 13)
|
|
||||||
const encoded = BigInt("0x" + hex)
|
|
||||||
return Number(encoded / BigInt(0x1000))
|
|
||||||
}
|
|
||||||
|
|
||||||
export * as Identifier from "./id"
|
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
export * as Job from "./job"
|
export * as Job from "./job"
|
||||||
|
|
||||||
import { Cause, Clock, Context, Deferred, Effect, Exit, Layer, Scope, SynchronizedRef } from "effect"
|
import { Cause, Clock, Context, Deferred, Effect, Exit, Layer, Scope, SynchronizedRef } from "effect"
|
||||||
|
import { JobID } from "@opencode-ai/schema/job-id"
|
||||||
import { makeGlobalNode } from "@opencode-ai/util/effect/app-node"
|
import { makeGlobalNode } from "@opencode-ai/util/effect/app-node"
|
||||||
import { Identifier } from "./id/id"
|
|
||||||
import { SessionSchema } from "./session/schema"
|
import { SessionSchema } from "./session/schema"
|
||||||
|
|
||||||
export type Status = "running" | "completed" | "error" | "cancelled"
|
export type Status = "running" | "completed" | "error" | "cancelled"
|
||||||
@@ -202,7 +202,7 @@ export const make = Effect.gen(function* () {
|
|||||||
const start: Interface["start"] = Effect.fn("Job.start")(function* (input) {
|
const start: Interface["start"] = Effect.fn("Job.start")(function* (input) {
|
||||||
return yield* Effect.uninterruptibleMask((restore) =>
|
return yield* Effect.uninterruptibleMask((restore) =>
|
||||||
Effect.gen(function* () {
|
Effect.gen(function* () {
|
||||||
const id = input.id ?? Identifier.ascending("job")
|
const id = input.id ?? JobID.create()
|
||||||
const started_at = yield* Clock.currentTimeMillis
|
const started_at = yield* Clock.currentTimeMillis
|
||||||
const done = yield* Deferred.make<Info>()
|
const done = yield* Deferred.make<Info>()
|
||||||
const backgrounded = yield* Deferred.make<Info>()
|
const backgrounded = yield* Deferred.make<Info>()
|
||||||
|
|||||||
@@ -92,7 +92,7 @@ export interface Interface {
|
|||||||
|
|
||||||
export class Service extends Context.Service<Service, Interface>()("@opencode/RepositoryCache") {}
|
export class Service extends Context.Service<Service, Interface>()("@opencode/RepositoryCache") {}
|
||||||
|
|
||||||
export function isError(error: unknown): error is Error {
|
function isError(error: unknown): error is Error {
|
||||||
return (
|
return (
|
||||||
error instanceof InvalidBranchError ||
|
error instanceof InvalidBranchError ||
|
||||||
error instanceof CloneFailedError ||
|
error instanceof CloneFailedError ||
|
||||||
@@ -104,7 +104,7 @@ export function isError(error: unknown): error is Error {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
export const validateBranch = Effect.fn("RepositoryCache.validateBranch")(function* (branch: string) {
|
const validateBranch = Effect.fn("RepositoryCache.validateBranch")(function* (branch: string) {
|
||||||
return yield* Effect.try({
|
return yield* Effect.try({
|
||||||
try: () => Repository.validateBranch(branch),
|
try: () => Repository.validateBranch(branch),
|
||||||
catch: (error) => new InvalidBranchError({ branch, message: errorMessage(error) }),
|
catch: (error) => new InvalidBranchError({ branch, message: errorMessage(error) }),
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
export * as Identifier from "@opencode-ai/schema/identifier"
|
|
||||||
@@ -21,11 +21,3 @@ export function getFilenameTruncated(path: string | undefined, maxLength: number
|
|||||||
if (available <= 0) return filename.slice(0, maxLength - 1) + "…"
|
if (available <= 0) return filename.slice(0, maxLength - 1) + "…"
|
||||||
return filename.slice(0, available) + "…" + ext
|
return filename.slice(0, available) + "…" + ext
|
||||||
}
|
}
|
||||||
|
|
||||||
export function truncateMiddle(text: string, maxLength: number = 20) {
|
|
||||||
if (text.length <= maxLength) return text
|
|
||||||
const available = maxLength - 1 // -1 for ellipsis
|
|
||||||
const start = Math.ceil(available / 2)
|
|
||||||
const end = Math.floor(available / 2)
|
|
||||||
return text.slice(0, start) + "…" + text.slice(-end)
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ import path from "path"
|
|||||||
import { pathToFileURL } from "url"
|
import { pathToFileURL } from "url"
|
||||||
import { Effect, Layer } from "effect"
|
import { Effect, Layer } from "effect"
|
||||||
import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder"
|
import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder"
|
||||||
import { LayerNode } from "@opencode-ai/util/effect/layer-node"
|
|
||||||
import { Global } from "@opencode-ai/util/global"
|
import { Global } from "@opencode-ai/util/global"
|
||||||
import { Repository } from "@opencode-ai/core/repository"
|
import { Repository } from "@opencode-ai/core/repository"
|
||||||
import { RepositoryCache } from "@opencode-ai/core/repository-cache"
|
import { RepositoryCache } from "@opencode-ai/core/repository-cache"
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ import { Permission } from "@opencode-ai/schema/permission"
|
|||||||
import { Pty } from "@opencode-ai/schema/pty"
|
import { Pty } from "@opencode-ai/schema/pty"
|
||||||
import { Reference } from "@opencode-ai/schema/reference"
|
import { Reference } from "@opencode-ai/schema/reference"
|
||||||
import { Skill } from "@opencode-ai/schema/skill"
|
import { Skill } from "@opencode-ai/schema/skill"
|
||||||
import { AbsolutePath, DateTimeUtcFromMillis, optional, statics } from "@opencode-ai/schema/schema"
|
import { AbsolutePath, optional, statics } from "@opencode-ai/schema/schema"
|
||||||
|
|
||||||
test("Core reuses the canonical shared schemas", async () => {
|
test("Core reuses the canonical shared schemas", async () => {
|
||||||
const schemaAgent = await import("@opencode-ai/schema/agent")
|
const schemaAgent = await import("@opencode-ai/schema/agent")
|
||||||
|
|||||||
@@ -1,12 +0,0 @@
|
|||||||
import { $ } from "bun"
|
|
||||||
import * as path from "node:path"
|
|
||||||
|
|
||||||
import { RUST_TARGET } from "./utils"
|
|
||||||
|
|
||||||
if (!RUST_TARGET) throw new Error("RUST_TARGET not defined")
|
|
||||||
|
|
||||||
const BUNDLE_DIR = "dist"
|
|
||||||
const BUNDLES_OUT_DIR = path.join(process.cwd(), "dist/bundles")
|
|
||||||
|
|
||||||
await $`mkdir -p ${BUNDLES_OUT_DIR}`
|
|
||||||
await $`cp -r ${BUNDLE_DIR}/* ${BUNDLES_OUT_DIR}`
|
|
||||||
@@ -33,6 +33,7 @@
|
|||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@cloudflare/workers-types": "catalog:",
|
"@cloudflare/workers-types": "catalog:",
|
||||||
|
"@opencode-ai/schema": "workspace:*",
|
||||||
"@tailwindcss/vite": "catalog:",
|
"@tailwindcss/vite": "catalog:",
|
||||||
"@typescript/native-preview": "catalog:",
|
"@typescript/native-preview": "catalog:",
|
||||||
"@types/bun": "catalog:",
|
"@types/bun": "catalog:",
|
||||||
|
|||||||
@@ -1,11 +1,12 @@
|
|||||||
import { describe, expect, test } from "bun:test"
|
import { describe, expect, test } from "bun:test"
|
||||||
|
import { descending } from "@opencode-ai/schema/identifier"
|
||||||
|
import { SessionID } from "@opencode-ai/schema/session-id"
|
||||||
import { Share } from "../../src/core/share"
|
import { Share } from "../../src/core/share"
|
||||||
import { Storage } from "../../src/core/storage"
|
import { Storage } from "../../src/core/storage"
|
||||||
import { Identifier } from "@opencode-ai/core/util/identifier"
|
|
||||||
|
|
||||||
describe.concurrent("core.share", () => {
|
describe.concurrent("core.share", () => {
|
||||||
test("should create a share", async () => {
|
test("should create a share", async () => {
|
||||||
const sessionID = Identifier.descending()
|
const sessionID = SessionID.create()
|
||||||
const share = await Share.create({ sessionID })
|
const share = await Share.create({ sessionID })
|
||||||
|
|
||||||
expect(share.sessionID).toBe(sessionID)
|
expect(share.sessionID).toBe(sessionID)
|
||||||
@@ -15,7 +16,7 @@ describe.concurrent("core.share", () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
test("should remove a share as admin", async () => {
|
test("should remove a share as admin", async () => {
|
||||||
const share = await Share.create({ sessionID: Identifier.descending() })
|
const share = await Share.create({ sessionID: SessionID.create() })
|
||||||
|
|
||||||
await Share.removeAdmin({ id: share.id })
|
await Share.removeAdmin({ id: share.id })
|
||||||
|
|
||||||
@@ -23,7 +24,7 @@ describe.concurrent("core.share", () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
test("should sync data to a share", async () => {
|
test("should sync data to a share", async () => {
|
||||||
const sessionID = Identifier.descending()
|
const sessionID = SessionID.create()
|
||||||
const share = await Share.create({ sessionID })
|
const share = await Share.create({ sessionID })
|
||||||
|
|
||||||
const data: Share.Data[] = [
|
const data: Share.Data[] = [
|
||||||
@@ -45,7 +46,7 @@ describe.concurrent("core.share", () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
test("should sync multiple batches of data", async () => {
|
test("should sync multiple batches of data", async () => {
|
||||||
const sessionID = Identifier.descending()
|
const sessionID = SessionID.create()
|
||||||
const share = await Share.create({ sessionID })
|
const share = await Share.create({ sessionID })
|
||||||
|
|
||||||
const data1: Share.Data[] = [
|
const data1: Share.Data[] = [
|
||||||
@@ -79,7 +80,7 @@ describe.concurrent("core.share", () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
test("should retrieve synced data", async () => {
|
test("should retrieve synced data", async () => {
|
||||||
const sessionID = Identifier.descending()
|
const sessionID = SessionID.create()
|
||||||
const share = await Share.create({ sessionID })
|
const share = await Share.create({ sessionID })
|
||||||
|
|
||||||
const data: Share.Data[] = [
|
const data: Share.Data[] = [
|
||||||
@@ -108,7 +109,7 @@ describe.concurrent("core.share", () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
test("should retrieve data from multiple syncs", async () => {
|
test("should retrieve data from multiple syncs", async () => {
|
||||||
const sessionID = Identifier.descending()
|
const sessionID = SessionID.create()
|
||||||
const share = await Share.create({ sessionID })
|
const share = await Share.create({ sessionID })
|
||||||
|
|
||||||
const data1: Share.Data[] = [
|
const data1: Share.Data[] = [
|
||||||
@@ -154,7 +155,7 @@ describe.concurrent("core.share", () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
test("should return latest data when syncing duplicate parts", async () => {
|
test("should return latest data when syncing duplicate parts", async () => {
|
||||||
const sessionID = Identifier.descending()
|
const sessionID = SessionID.create()
|
||||||
const share = await Share.create({ sessionID })
|
const share = await Share.create({ sessionID })
|
||||||
|
|
||||||
const data1: Share.Data[] = [
|
const data1: Share.Data[] = [
|
||||||
@@ -192,7 +193,7 @@ describe.concurrent("core.share", () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
test("should return empty array for share with no data", async () => {
|
test("should return empty array for share with no data", async () => {
|
||||||
const sessionID = Identifier.descending()
|
const sessionID = SessionID.create()
|
||||||
const share = await Share.create({ sessionID })
|
const share = await Share.create({ sessionID })
|
||||||
|
|
||||||
const result = await Share.data(share.id)
|
const result = await Share.data(share.id)
|
||||||
@@ -203,7 +204,7 @@ describe.concurrent("core.share", () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
test("should migrate legacy event data into the snapshot", async () => {
|
test("should migrate legacy event data into the snapshot", async () => {
|
||||||
const sessionID = Identifier.descending()
|
const sessionID = SessionID.create()
|
||||||
const share = await Share.create({ sessionID })
|
const share = await Share.create({ sessionID })
|
||||||
const data: Share.Data[] = [
|
const data: Share.Data[] = [
|
||||||
{
|
{
|
||||||
@@ -213,7 +214,7 @@ describe.concurrent("core.share", () => {
|
|||||||
]
|
]
|
||||||
|
|
||||||
await Storage.remove(["share_snapshot", share.id])
|
await Storage.remove(["share_snapshot", share.id])
|
||||||
await Storage.write(["share_event", share.id, Identifier.descending()], data)
|
await Storage.write(["share_event", share.id, descending()], data)
|
||||||
|
|
||||||
const result = await Share.data(share.id)
|
const result = await Share.data(share.id)
|
||||||
const snapshot = await Storage.read<{ data: Share.Data[] }>(["share_snapshot", share.id])
|
const snapshot = await Storage.read<{ data: Share.Data[] }>(["share_snapshot", share.id])
|
||||||
@@ -225,7 +226,7 @@ describe.concurrent("core.share", () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
test("should throw error for invalid secret", async () => {
|
test("should throw error for invalid secret", async () => {
|
||||||
const sessionID = Identifier.descending()
|
const sessionID = SessionID.create()
|
||||||
const share = await Share.create({ sessionID })
|
const share = await Share.create({ sessionID })
|
||||||
|
|
||||||
const data: Share.Data[] = [
|
const data: Share.Data[] = [
|
||||||
@@ -246,7 +247,7 @@ describe.concurrent("core.share", () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
test("should throw error for non-existent share", async () => {
|
test("should throw error for non-existent share", async () => {
|
||||||
const sessionID = Identifier.descending()
|
const sessionID = SessionID.create()
|
||||||
const data: Share.Data[] = [
|
const data: Share.Data[] = [
|
||||||
{
|
{
|
||||||
type: "part",
|
type: "part",
|
||||||
@@ -263,7 +264,7 @@ describe.concurrent("core.share", () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
test("should handle different data types", async () => {
|
test("should handle different data types", async () => {
|
||||||
const sessionID = Identifier.descending()
|
const sessionID = SessionID.create()
|
||||||
const share = await Share.create({ sessionID })
|
const share = await Share.create({ sessionID })
|
||||||
|
|
||||||
const data: Share.Data[] = [
|
const data: Share.Data[] = [
|
||||||
|
|||||||
@@ -115,7 +115,7 @@ const SessionsQueryCursor = SessionsCursor.annotate({
|
|||||||
description: "Opaque pagination cursor returned as cursor.previous or cursor.next in the previous response.",
|
description: "Opaque pagination cursor returned as cursor.previous or cursor.next in the previous response.",
|
||||||
})
|
})
|
||||||
|
|
||||||
export const SessionsQuery = Schema.Struct({
|
const SessionsQuery = Schema.Struct({
|
||||||
...SessionsQueryFields,
|
...SessionsQueryFields,
|
||||||
directory: AbsolutePath.pipe(Schema.optional),
|
directory: AbsolutePath.pipe(Schema.optional),
|
||||||
project: Project.ID.pipe(Schema.optional),
|
project: Project.ID.pipe(Schema.optional),
|
||||||
|
|||||||
@@ -0,0 +1,9 @@
|
|||||||
|
import { Schema } from "effect"
|
||||||
|
import { ascending } from "./identifier.js"
|
||||||
|
import { statics } from "./schema.js"
|
||||||
|
|
||||||
|
export const JobID = Schema.String.check(Schema.isStartsWith("job_")).pipe(
|
||||||
|
Schema.brand("JobID"),
|
||||||
|
statics((schema) => ({ create: () => schema.make("job_" + ascending()) })),
|
||||||
|
)
|
||||||
|
export type JobID = typeof JobID.Type
|
||||||
@@ -3,6 +3,7 @@ import { DateTime, Schema } from "effect"
|
|||||||
import { Agent } from "../src/agent.js"
|
import { Agent } from "../src/agent.js"
|
||||||
import { FileSystem } from "../src/filesystem.js"
|
import { FileSystem } from "../src/filesystem.js"
|
||||||
import { Form } from "../src/form.js"
|
import { Form } from "../src/form.js"
|
||||||
|
import { JobID } from "../src/job-id.js"
|
||||||
import { Mcp } from "../src/mcp.js"
|
import { Mcp } from "../src/mcp.js"
|
||||||
import { Model } from "../src/model.js"
|
import { Model } from "../src/model.js"
|
||||||
import { Project } from "../src/project.js"
|
import { Project } from "../src/project.js"
|
||||||
@@ -131,6 +132,7 @@ describe("contract hygiene", () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
test("current ID constructors expose create", () => {
|
test("current ID constructors expose create", () => {
|
||||||
|
expect(JobID.create()).toStartWith("job_")
|
||||||
expect(Question.ID.create()).toStartWith("que_")
|
expect(Question.ID.create()).toStartWith("que_")
|
||||||
expect(Pty.ID.create()).toStartWith("pty_")
|
expect(Pty.ID.create()).toStartWith("pty_")
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ import { Effect } from "effect"
|
|||||||
import { HttpApiMiddleware } from "effect/unstable/httpapi"
|
import { HttpApiMiddleware } from "effect/unstable/httpapi"
|
||||||
import { InvalidRequestError } from "@opencode-ai/protocol/errors"
|
import { InvalidRequestError } from "@opencode-ai/protocol/errors"
|
||||||
import { SchemaErrorMiddleware } from "@opencode-ai/protocol/middleware/schema-error"
|
import { SchemaErrorMiddleware } from "@opencode-ai/protocol/middleware/schema-error"
|
||||||
export { SchemaErrorMiddleware } from "@opencode-ai/protocol/middleware/schema-error"
|
|
||||||
|
|
||||||
const REASON_LIMIT = 1024
|
const REASON_LIMIT = 1024
|
||||||
|
|
||||||
|
|||||||
@@ -1,307 +0,0 @@
|
|||||||
[14:25:48.462] [INFO] storybook v10.2.10
|
|
||||||
[14:25:48.749] [DEBUG] Getting package.json info for /Users/davidhill/Documents/Local/opencode/packages/storybook/package.json...
|
|
||||||
[14:25:48.997] [INFO] Starting...
|
|
||||||
[14:25:49.095] [DEBUG] Starting preview..
|
|
||||||
[14:25:49.098] [WARN] 🚨 Unable to index files:
|
|
||||||
- ./../ui/src/components/accordion.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/accordion.stories.tsx (line 6, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/app-icon.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/app-icon.stories.tsx (line 6, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/avatar.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/avatar.stories.tsx (line 6, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/basic-tool.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/basic-tool.stories.tsx (line 6, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/checkbox.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/checkbox.stories.tsx (line 6, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/code.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/code.stories.tsx (line 6, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/collapsible.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/collapsible.stories.tsx (line 6, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/context-menu.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/context-menu.stories.tsx (line 6, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/dialog.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/dialog.stories.tsx (line 10, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/diff-changes.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/diff-changes.stories.tsx (line 6, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/diff-ssr.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/diff-ssr.stories.tsx (line 6, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/diff.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/diff.stories.tsx (line 6, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/dock-prompt.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/dock-prompt.stories.tsx (line 15, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/dropdown-menu.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/dropdown-menu.stories.tsx (line 6, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/favicon.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/favicon.stories.tsx (line 6, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/file-icon.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/file-icon.stories.tsx (line 13, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/font.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/font.stories.tsx (line 6, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/hover-card.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/hover-card.stories.tsx (line 13, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/icon-button.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/icon-button.stories.tsx (line 6, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/icon.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/icon.stories.tsx (line 6, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/image-preview.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/image-preview.stories.tsx (line 13, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/inline-input.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/inline-input.stories.tsx (line 6, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/keybind.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/keybind.stories.tsx (line 6, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/line-comment.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/line-comment.stories.tsx (line 6, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/list.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/list.stories.tsx (line 15, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/logo.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/logo.stories.tsx (line 6, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/markdown.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/markdown.stories.tsx (line 12, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/message-nav.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/message-nav.stories.tsx (line 6, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/message-part.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/message-part.stories.tsx (line 6, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/popover.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/popover.stories.tsx (line 16, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/progress-circle.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/progress-circle.stories.tsx (line 6, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/progress.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/progress.stories.tsx (line 15, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/provider-icon.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/provider-icon.stories.tsx (line 6, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/radio-group.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/radio-group.stories.tsx (line 13, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/resize-handle.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/resize-handle.stories.tsx (line 17, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/select.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/select.stories.tsx (line 16, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/session-review.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/session-review.stories.tsx (line 6, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/session-turn.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/session-turn.stories.tsx (line 6, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/spinner.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/spinner.stories.tsx (line 6, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/sticky-accordion-header.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/sticky-accordion-header.stories.tsx (line 6, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/switch.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/switch.stories.tsx (line 6, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/tabs.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/tabs.stories.tsx (line 6, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/tag.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/tag.stories.tsx (line 6, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/text-field.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/text-field.stories.tsx (line 14, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/text-shimmer.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/text-shimmer.stories.tsx (line 6, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/toast.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/toast.stories.tsx (line 6, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/tooltip.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/tooltip.stories.tsx (line 6, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/typewriter.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/typewriter.stories.tsx (line 6, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
[14:25:49.109] [ERROR] Failed to build the preview
|
|
||||||
[14:25:49.110] [ERROR] Error: [38;2;241;97;97mUnable to index files:
|
|
||||||
- ./../ui/src/components/accordion.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/accordion.stories.tsx (line 6, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/app-icon.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/app-icon.stories.tsx (line 6, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/avatar.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/avatar.stories.tsx (line 6, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/basic-tool.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/basic-tool.stories.tsx (line 6, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/checkbox.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/checkbox.stories.tsx (line 6, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/code.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/code.stories.tsx (line 6, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/collapsible.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/collapsible.stories.tsx (line 6, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/context-menu.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/context-menu.stories.tsx (line 6, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/dialog.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/dialog.stories.tsx (line 10, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/diff-changes.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/diff-changes.stories.tsx (line 6, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/diff-ssr.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/diff-ssr.stories.tsx (line 6, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/diff.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/diff.stories.tsx (line 6, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/dock-prompt.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/dock-prompt.stories.tsx (line 15, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/dropdown-menu.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/dropdown-menu.stories.tsx (line 6, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/favicon.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/favicon.stories.tsx (line 6, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/file-icon.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/file-icon.stories.tsx (line 13, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/font.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/font.stories.tsx (line 6, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/hover-card.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/hover-card.stories.tsx (line 13, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/icon-button.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/icon-button.stories.tsx (line 6, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/icon.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/icon.stories.tsx (line 6, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/image-preview.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/image-preview.stories.tsx (line 13, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/inline-input.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/inline-input.stories.tsx (line 6, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/keybind.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/keybind.stories.tsx (line 6, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/line-comment.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/line-comment.stories.tsx (line 6, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/list.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/list.stories.tsx (line 15, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/logo.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/logo.stories.tsx (line 6, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/markdown.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/markdown.stories.tsx (line 12, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/message-nav.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/message-nav.stories.tsx (line 6, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/message-part.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/message-part.stories.tsx (line 6, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/popover.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/popover.stories.tsx (line 16, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/progress-circle.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/progress-circle.stories.tsx (line 6, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/progress.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/progress.stories.tsx (line 15, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/provider-icon.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/provider-icon.stories.tsx (line 6, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/radio-group.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/radio-group.stories.tsx (line 13, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/resize-handle.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/resize-handle.stories.tsx (line 17, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/select.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/select.stories.tsx (line 16, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/session-review.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/session-review.stories.tsx (line 6, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/session-turn.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/session-turn.stories.tsx (line 6, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/spinner.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/spinner.stories.tsx (line 6, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/sticky-accordion-header.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/sticky-accordion-header.stories.tsx (line 6, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/switch.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/switch.stories.tsx (line 6, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/tabs.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/tabs.stories.tsx (line 6, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/tag.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/tag.stories.tsx (line 6, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/text-field.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/text-field.stories.tsx (line 14, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/text-shimmer.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/text-shimmer.stories.tsx (line 6, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/toast.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/toast.stories.tsx (line 6, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/tooltip.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/tooltip.stories.tsx (line 6, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export
|
|
||||||
- ./../ui/src/components/typewriter.stories.tsx: CSF: default export must be an object /Users/davidhill/Documents/Local/opencode/packages/ui/src/components/typewriter.stories.tsx (line 6, col 0)
|
|
||||||
|
|
||||||
More info: https://storybook.js.org/docs/writing-stories?ref=error#default-export[39m
|
|
||||||
at _StoryIndexGenerator.getIndexAndStats (file:///Users/davidhill/Documents/Local/opencode/node_modules/.bun/storybook@10.2.10+4edd68b244e756bb/node_modules/storybook/dist/core-server/index.js:6085:15)
|
|
||||||
at async _StoryIndexGenerator.getIndex (file:///Users/davidhill/Documents/Local/opencode/node_modules/.bun/storybook@10.2.10+4edd68b244e756bb/node_modules/storybook/dist/core-server/index.js:6074:13)
|
|
||||||
at async getOptimizeDeps (file:///Users/davidhill/Documents/Local/opencode/node_modules/.bun/@storybook+builder-vite@10.2.10+a2a25316dbcddd7f/node_modules/@storybook/builder-vite/dist/index.js:1862:15)
|
|
||||||
at async createViteServer (file:///Users/davidhill/Documents/Local/opencode/node_modules/.bun/@storybook+builder-vite@10.2.10+a2a25316dbcddd7f/node_modules/@storybook/builder-vite/dist/index.js:1888:19)
|
|
||||||
at async Module.start (file:///Users/davidhill/Documents/Local/opencode/node_modules/.bun/@storybook+builder-vite@10.2.10+a2a25316dbcddd7f/node_modules/@storybook/builder-vite/dist/index.js:1923:17)
|
|
||||||
at async storybookDevServer (file:///Users/davidhill/Documents/Local/opencode/node_modules/.bun/storybook@10.2.10+4edd68b244e756bb/node_modules/storybook/dist/core-server/index.js:7241:83)
|
|
||||||
at async buildOrThrow (file:///Users/davidhill/Documents/Local/opencode/node_modules/.bun/storybook@10.2.10+4edd68b244e756bb/node_modules/storybook/dist/core-server/index.js:4504:12)
|
|
||||||
at async buildDevStandalone (file:///Users/davidhill/Documents/Local/opencode/node_modules/.bun/storybook@10.2.10+4edd68b244e756bb/node_modules/storybook/dist/core-server/index.js:7611:66)
|
|
||||||
at async withTelemetry (file:///Users/davidhill/Documents/Local/opencode/node_modules/.bun/storybook@10.2.10+4edd68b244e756bb/node_modules/storybook/dist/_node-chunks/chunk-S3MWHNYJ.js:218:12)
|
|
||||||
at async dev (file:///Users/davidhill/Documents/Local/opencode/node_modules/.bun/storybook@10.2.10+4edd68b244e756bb/node_modules/storybook/dist/bin/core.js:2734:3)
|
|
||||||
[14:25:49.118] [WARN] Broken build, fix the error above.
|
|
||||||
You may need to refresh the browser.
|
|
||||||
Reference in New Issue
Block a user