diff --git a/packages/core/src/account/sql.ts b/packages/core/src/account/sql.ts index 8783af31181..a2d05996624 100644 --- a/packages/core/src/account/sql.ts +++ b/packages/core/src/account/sql.ts @@ -1,6 +1,6 @@ import { sqliteTable, text, integer, primaryKey } from "drizzle-orm/sqlite-core" -import { Timestamps } from "../database/schema.sql" +import { Timestamps } from "../database/schema.sql.js" export const AccountTable = sqliteTable("account", { id: text().primaryKey(), diff --git a/packages/core/src/agent.ts b/packages/core/src/agent.ts index 2fdc2e9a37d..e66ce95ea78 100644 --- a/packages/core/src/agent.ts +++ b/packages/core/src/agent.ts @@ -1,12 +1,12 @@ -export * as Agent from "./agent" +export * as Agent from "./agent.js" import path from "path" import { makeLocationNode } from "@opencode-ai/util/effect/app-node" import { Array, Context, Effect, Layer, Types } from "effect" import { Agent } from "@opencode-ai/schema/agent" import { Global } from "@opencode-ai/util/global" -import { Bus } from "./bus" -import { State } from "./state" +import { Bus } from "./bus.js" +import { State } from "./state.js" const SHELL_OUTPUT_GLOB = (data: string) => path.join(data, "shell", "*", "*") const TOOL_OUTPUT_GLOB = (data: string) => path.join(data, "tool-output", "*") diff --git a/packages/core/src/aisdk-native.ts b/packages/core/src/aisdk-native.ts index 4a8baa2b455..926c52c5335 100644 --- a/packages/core/src/aisdk-native.ts +++ b/packages/core/src/aisdk-native.ts @@ -1,7 +1,7 @@ -export * as AISDKNative from "./aisdk-native" +export * as AISDKNative from "./aisdk-native.js" import { isRecord } from "@opencode-ai/ai/utils/record" -import { Provider } from "./provider" +import { Provider } from "./provider.js" export interface Mapping { readonly package: string diff --git a/packages/core/src/aisdk.ts b/packages/core/src/aisdk.ts index 51765799248..1234e1053b3 100644 --- a/packages/core/src/aisdk.ts +++ b/packages/core/src/aisdk.ts @@ -1,4 +1,4 @@ -export * as AISDK from "./aisdk" +export * as AISDK from "./aisdk.js" import { makeLocationNode } from "@opencode-ai/util/effect/app-node" import { APICallError } from "@ai-sdk/provider" @@ -34,9 +34,9 @@ import { import { Auth, Endpoint, RequestExecutor, type AnyRoute } from "@opencode-ai/ai/route" import { ProviderShared } from "@opencode-ai/ai/protocols/shared" import { Cause, Context, Effect, Layer, Option, Schema, Scope, Stream } from "effect" -import type { ID, Info } from "./model" -import { Provider } from "./provider" -import { State } from "./state" +import type { ID, Info } from "./model.js" +import { Provider } from "./provider.js" +import { State } from "./state.js" type SDK = any type UserContent = Extract["content"] diff --git a/packages/core/src/app.ts b/packages/core/src/app.ts index 32760389754..be6a98e943c 100644 --- a/packages/core/src/app.ts +++ b/packages/core/src/app.ts @@ -1,4 +1,4 @@ -export * as App from "./app" +export * as App from "./app.js" import { Context, Layer } from "effect" import { makeGlobalNode } from "@opencode-ai/util/effect/app-node" diff --git a/packages/core/src/bus.ts b/packages/core/src/bus.ts index 01182f1c82d..9fc7cdb6319 100644 --- a/packages/core/src/bus.ts +++ b/packages/core/src/bus.ts @@ -1,12 +1,12 @@ -export * as Bus from "./bus" +export * as Bus from "./bus.js" import { Cause, Context, DateTime, Effect, Layer, Option, PubSub, Schema, Stream } from "effect" import { Event } from "@opencode-ai/schema/event" import type { EventLog } from "@opencode-ai/schema/event-log" import { and, asc, eq, gt, lte, sql } from "drizzle-orm" -import { Database } from "./database/database" -import { EventSequenceTable, EventTable } from "./event/sql" -import { Location } from "./location" +import { Database } from "./database/database.js" +import { EventSequenceTable, EventTable } from "./event/sql.js" +import { Location } from "./location.js" import { makeGlobalNode } from "@opencode-ai/util/effect/app-node" import { isDeepStrictEqual } from "node:util" import { Durable } from "@opencode-ai/schema/durable-event-manifest" diff --git a/packages/core/src/catalog.ts b/packages/core/src/catalog.ts index c1dfd5765e8..b2e6f167154 100644 --- a/packages/core/src/catalog.ts +++ b/packages/core/src/catalog.ts @@ -1,13 +1,13 @@ -export * as Catalog from "./catalog" +export * as Catalog from "./catalog.js" import { makeLocationNode } from "@opencode-ai/util/effect/app-node" import { Array, Context, Effect, Layer, Order, pipe } from "effect" import { Catalog } from "@opencode-ai/schema/catalog" -import { Model } from "./model" -import { Provider } from "./provider" -import { Bus } from "./bus" -import { State } from "./state" -import { Integration } from "./integration" +import { Model } from "./model.js" +import { Provider } from "./provider.js" +import { Bus } from "./bus.js" +import { State } from "./state.js" +import { Integration } from "./integration.js" export type ProviderRecord = { provider: Provider.MutableInfo diff --git a/packages/core/src/codemode/catalog.ts b/packages/core/src/codemode/catalog.ts index 6442749abd6..a7ae19175a2 100644 --- a/packages/core/src/codemode/catalog.ts +++ b/packages/core/src/codemode/catalog.ts @@ -1,4 +1,4 @@ -export * as CodeModeCatalog from "./catalog" +export * as CodeModeCatalog from "./catalog.js" import { Schema } from "effect" diff --git a/packages/core/src/codemode/instructions.ts b/packages/core/src/codemode/instructions.ts index 2c364e8226e..15884fa237c 100644 --- a/packages/core/src/codemode/instructions.ts +++ b/packages/core/src/codemode/instructions.ts @@ -1,9 +1,9 @@ -export * as CodeModeInstructions from "./instructions" +export * as CodeModeInstructions from "./instructions.js" import { searchSignature, toolExpression } from "@opencode-ai/codemode" import { Effect, Schema } from "effect" -import { Instructions } from "../instructions/index" -import { CodeModeCatalog } from "./catalog" +import { Instructions } from "../instructions/index.js" +import { CodeModeCatalog } from "./catalog.js" // prettier-ignore const prompt = (hasMoreTools: boolean) => `The Code Mode tool catalog below is ${hasMoreTools ? "partial" : "complete"}. diff --git a/packages/core/src/codemode/tool.ts b/packages/core/src/codemode/tool.ts index db4c067345c..aa7f4af73b1 100644 --- a/packages/core/src/codemode/tool.ts +++ b/packages/core/src/codemode/tool.ts @@ -1,9 +1,9 @@ -export * as CodeModeTool from "./tool" +export * as CodeModeTool from "./tool.js" import { CodeMode, Tool, toolError } from "@opencode-ai/codemode" import type { Content, Context, Error, Info, Metadata, Result } from "@opencode-ai/schema/tool" import { Effect, Ref, Schema, Semaphore } from "effect" -import { definition } from "../tool/runtime" +import { definition } from "../tool/runtime.js" const ExecuteFile = Schema.Struct({ data: Schema.String, diff --git a/packages/core/src/command.ts b/packages/core/src/command.ts index ae6498c4542..5197e51a15a 100644 --- a/packages/core/src/command.ts +++ b/packages/core/src/command.ts @@ -1,16 +1,16 @@ -export * as Command from "./command" +export * as Command from "./command.js" import { makeLocationNode } from "@opencode-ai/util/effect/app-node" import { Context, Effect, Layer, Schema, Types } from "effect" import { Command } from "@opencode-ai/schema/command" -import { State } from "./state" -import { MCP } from "./mcp/index" -import { Bus } from "./bus" +import { State } from "./state.js" +import { MCP } from "./mcp/index.js" +import { Bus } from "./bus.js" import { AppProcess } from "@opencode-ai/util/process" import { ChildProcess } from "effect/unstable/process" -import { Config } from "./config" -import { Location } from "./location" -import { ShellSelect } from "./shell/select" +import { Config } from "./config.js" +import { Location } from "./location.js" +import { ShellSelect } from "./shell/select.js" import { Global } from "@opencode-ai/util/global" export const Info = Command.Info diff --git a/packages/core/src/config.ts b/packages/core/src/config.ts index f8541a76da4..23a3d940a7e 100644 --- a/packages/core/src/config.ts +++ b/packages/core/src/config.ts @@ -1,4 +1,4 @@ -export * as Config from "./config" +export * as Config from "./config.js" import { makeLocationNode } from "@opencode-ai/util/effect/app-node" import path from "path" @@ -16,16 +16,16 @@ import { Event, } from "@opencode-ai/schema/config" import { Integration } from "@opencode-ai/schema/integration" -import { Credential } from "./credential" -import { Bus } from "./bus" -import { Watcher } from "./filesystem/watcher" +import { Credential } from "./credential.js" +import { Bus } from "./bus.js" +import { Watcher } from "./filesystem/watcher.js" import { FSUtil } from "@opencode-ai/util/fs-util" import { Global } from "@opencode-ai/util/global" -import { Location } from "./location" -import { AbsolutePath } from "./schema" -import { ConfigVariable } from "./config/variable" -import { ConfigNormalize } from "./config/normalize" -import { WellKnown } from "./wellknown" +import { Location } from "./location.js" +import { AbsolutePath } from "./schema.js" +import { ConfigVariable } from "./config/variable.js" +import { ConfigNormalize } from "./config/normalize.js" +import { WellKnown } from "./wellknown.js" export function latest(entries: readonly Entry[], key: K): Info[K] | undefined { return entries diff --git a/packages/core/src/config/markdown.ts b/packages/core/src/config/markdown.ts index e1d74e649eb..4887a502db7 100644 --- a/packages/core/src/config/markdown.ts +++ b/packages/core/src/config/markdown.ts @@ -1,4 +1,4 @@ -export * as ConfigMarkdown from "./markdown" +export * as ConfigMarkdown from "./markdown.js" import matter from "gray-matter" export function parse(content: string) { diff --git a/packages/core/src/config/normalize.ts b/packages/core/src/config/normalize.ts index fa489a596f0..8318d4d54a8 100644 --- a/packages/core/src/config/normalize.ts +++ b/packages/core/src/config/normalize.ts @@ -1,4 +1,4 @@ -export * as ConfigNormalize from "./normalize" +export * as ConfigNormalize from "./normalize.js" import { isDeepStrictEqual } from "node:util" import { Option, Schema } from "effect" @@ -16,15 +16,15 @@ import { ConfigProvider } from "@opencode-ai/schema/config/provider" import { ConfigReference } from "@opencode-ai/schema/config/reference" import { ConfigExperimental } from "@opencode-ai/schema/config/experimental" import { Permission } from "@opencode-ai/schema/permission" -import { ConfigAgentV1 } from "../v1/config/agent" -import { ConfigAttachmentV1 } from "../v1/config/attachment" -import { ConfigCommandV1 } from "../v1/config/command" -import { ConfigMCPV1 } from "../v1/config/mcp" -import { ConfigPermissionV1 } from "../v1/config/permission" -import { ConfigPluginV1 } from "../v1/config/plugin" -import { ConfigProviderV1 } from "../v1/config/provider" -import { ConfigMigrateV1 } from "../v1/config/migrate" -import { PositiveInt } from "../schema" +import { ConfigAgentV1 } from "../v1/config/agent.js" +import { ConfigAttachmentV1 } from "../v1/config/attachment.js" +import { ConfigCommandV1 } from "../v1/config/command.js" +import { ConfigMCPV1 } from "../v1/config/mcp.js" +import { ConfigPermissionV1 } from "../v1/config/permission.js" +import { ConfigPluginV1 } from "../v1/config/plugin.js" +import { ConfigProviderV1 } from "../v1/config/provider.js" +import { ConfigMigrateV1 } from "../v1/config/migrate.js" +import { PositiveInt } from "../schema.js" export interface Diagnostic { readonly kind: "conflict" | "invalid" | "unsupported" diff --git a/packages/core/src/config/plugin/agent.ts b/packages/core/src/config/plugin/agent.ts index d0a16e1fdf2..1c7be8bdb75 100644 --- a/packages/core/src/config/plugin/agent.ts +++ b/packages/core/src/config/plugin/agent.ts @@ -1,21 +1,21 @@ -export * as ConfigAgentPlugin from "./agent" +export * as ConfigAgentPlugin from "./agent.js" import { define } from "@opencode-ai/plugin/effect/plugin" import { Document, Info, type Entry } from "@opencode-ai/schema/config" import { ConfigAgent } from "@opencode-ai/schema/config/agent" import path from "path" import { Effect, Option, Schema, Stream } from "effect" -import { Agent } from "../../agent" -import { Config } from "../../config" -import { ConfigMarkdown } from "../markdown" +import { Agent } from "../../agent.js" +import { Config } from "../../config.js" +import { ConfigMarkdown } from "../markdown.js" import { FSUtil } from "@opencode-ai/util/fs-util" -import { ConfigAgentV1 } from "../../v1/config/agent" -import { ConfigMigrateV1 } from "../../v1/config/migrate" +import { ConfigAgentV1 } from "../../v1/config/agent.js" +import { ConfigMigrateV1 } from "../../v1/config/migrate.js" import { Global } from "@opencode-ai/util/global" -import { Permission } from "../../permission" -import type { LocationMutation } from "../../location-mutation" -import type { ReadTool } from "../../tool/plugin/read" -import type { EditTool } from "../../tool/plugin/edit" +import { Permission } from "../../permission.js" +import type { LocationMutation } from "../../location-mutation.js" +import type { ReadTool } from "../../tool/plugin/read.js" +import type { EditTool } from "../../tool/plugin/edit.js" const legacySources = [ { pattern: "{agent,agents}/**/*.md", primary: false }, diff --git a/packages/core/src/config/plugin/command.ts b/packages/core/src/config/plugin/command.ts index 360f5c477ac..458d08d5f23 100644 --- a/packages/core/src/config/plugin/command.ts +++ b/packages/core/src/config/plugin/command.ts @@ -1,14 +1,14 @@ -export * as ConfigCommandPlugin from "./command" +export * as ConfigCommandPlugin from "./command.js" import { define } from "@opencode-ai/plugin/effect/plugin" import { Info, type Entry } from "@opencode-ai/schema/config" import { ConfigCommand } from "@opencode-ai/schema/config/command" import path from "path" import { Effect, Option, Schema, Stream } from "effect" -import { Command } from "../../command" -import { Config } from "../../config" +import { Command } from "../../command.js" +import { Config } from "../../config.js" import { FSUtil } from "@opencode-ai/util/fs-util" -import { ConfigMarkdown } from "../markdown" +import { ConfigMarkdown } from "../markdown.js" const decodeCommand = Schema.decodeUnknownOption(ConfigCommand.Info) diff --git a/packages/core/src/config/plugin/instruction.ts b/packages/core/src/config/plugin/instruction.ts index 3f22919afbf..676c6ac2de0 100644 --- a/packages/core/src/config/plugin/instruction.ts +++ b/packages/core/src/config/plugin/instruction.ts @@ -1,15 +1,15 @@ -export * as ConfigInstructionPlugin from "./instruction" +export * as ConfigInstructionPlugin from "./instruction.js" import { define } from "@opencode-ai/plugin/effect/plugin" import { FSUtil } from "@opencode-ai/util/fs-util" import { Global } from "@opencode-ai/util/global" import { dirname, join } from "path" import { Effect, PubSub, Semaphore, Stream } from "effect" -import { Watcher } from "../../filesystem/watcher" -import { InstructionDiscovery } from "../../instruction-discovery" -import { Instructions } from "../../instructions/index" -import { Location } from "../../location" -import { AbsolutePath } from "../../schema" +import { Watcher } from "../../filesystem/watcher.js" +import { InstructionDiscovery } from "../../instruction-discovery.js" +import { Instructions } from "../../instructions/index.js" +import { Location } from "../../location.js" +import { AbsolutePath } from "../../schema.js" type Loaded = | { readonly type: "available"; readonly files: InstructionDiscovery.File[] } diff --git a/packages/core/src/config/plugin/policy.ts b/packages/core/src/config/plugin/policy.ts index dac5a69d73f..7509e2b9b92 100644 --- a/packages/core/src/config/plugin/policy.ts +++ b/packages/core/src/config/plugin/policy.ts @@ -1,10 +1,10 @@ -export * as ConfigPolicyPlugin from "./policy" +export * as ConfigPolicyPlugin from "./policy.js" import { define } from "@opencode-ai/plugin/effect/plugin" import { Document } from "@opencode-ai/schema/config" import { Effect, Stream } from "effect" -import { Config } from "../../config" -import { Wildcard } from "../../util/wildcard" +import { Config } from "../../config.js" +import { Wildcard } from "../../util/wildcard.js" export const Plugin = define({ id: "opencode.config.policy", diff --git a/packages/core/src/config/plugin/provider.ts b/packages/core/src/config/plugin/provider.ts index 7da542c655b..194e3f51001 100644 --- a/packages/core/src/config/plugin/provider.ts +++ b/packages/core/src/config/plugin/provider.ts @@ -1,11 +1,11 @@ -export * as ConfigProviderPlugin from "./provider" +export * as ConfigProviderPlugin from "./provider.js" import { define } from "@opencode-ai/plugin/effect/plugin" import { Document, type Entry } from "@opencode-ai/schema/config" import { Money } from "@opencode-ai/schema/money" import { Effect, Stream } from "effect" -import { Config } from "../../config" -import { Provider } from "../../provider" +import { Config } from "../../config.js" +import { Provider } from "../../provider.js" export const Plugin = define({ id: "opencode.config.provider", diff --git a/packages/core/src/config/plugin/reference.ts b/packages/core/src/config/plugin/reference.ts index 145897d4a41..9b8b444962b 100644 --- a/packages/core/src/config/plugin/reference.ts +++ b/packages/core/src/config/plugin/reference.ts @@ -1,15 +1,15 @@ -export * as ConfigReferencePlugin from "./reference" +export * as ConfigReferencePlugin from "./reference.js" import { define } from "@opencode-ai/plugin/effect/plugin" import { Document } from "@opencode-ai/schema/config" import { ConfigReference } from "@opencode-ai/schema/config/reference" import path from "path" import { Effect, Stream } from "effect" -import { Config } from "../../config" -import { Reference } from "../../reference" -import { AbsolutePath } from "../../schema" +import { Config } from "../../config.js" +import { Reference } from "../../reference.js" +import { AbsolutePath } from "../../schema.js" import { Global } from "@opencode-ai/util/global" -import { Location } from "../../location" +import { Location } from "../../location.js" export const Plugin = define({ id: "opencode.config.reference", diff --git a/packages/core/src/config/plugin/skill-file.ts b/packages/core/src/config/plugin/skill-file.ts index e5fa1ac20b7..b5245d7633d 100644 --- a/packages/core/src/config/plugin/skill-file.ts +++ b/packages/core/src/config/plugin/skill-file.ts @@ -1,10 +1,10 @@ -export * as SkillFile from "./skill-file" +export * as SkillFile from "./skill-file.js" import path from "path" import { Result, Schema, type SchemaIssue, SchemaParser } from "effect" -import { ConfigMarkdown } from "../markdown" -import { AbsolutePath } from "../../schema" -import { Skill } from "../../skill" +import { ConfigMarkdown } from "../markdown.js" +import { AbsolutePath } from "../../schema.js" +import { Skill } from "../../skill.js" const Frontmatter = Schema.Struct({ name: Schema.String.pipe(Schema.optional), diff --git a/packages/core/src/config/plugin/skill.ts b/packages/core/src/config/plugin/skill.ts index a7b49af00bf..d263fbc420b 100644 --- a/packages/core/src/config/plugin/skill.ts +++ b/packages/core/src/config/plugin/skill.ts @@ -1,4 +1,4 @@ -export * as ConfigSkillPlugin from "./skill" +export * as ConfigSkillPlugin from "./skill.js" import { define } from "@opencode-ai/plugin/effect/plugin" import type { Entry } from "@opencode-ai/schema/config" @@ -6,13 +6,13 @@ import { FSUtil } from "@opencode-ai/util/fs-util" import { Global } from "@opencode-ai/util/global" import path from "path" import { Effect, FiberMap, PubSub, Semaphore, Stream } from "effect" -import { Config } from "../../config" -import { Watcher } from "../../filesystem/watcher" -import { Location } from "../../location" -import { AbsolutePath } from "../../schema" -import { Skill } from "../../skill" -import { SkillDiscovery } from "../../skill/discovery" -import { SkillFile } from "./skill-file" +import { Config } from "../../config.js" +import { Watcher } from "../../filesystem/watcher.js" +import { Location } from "../../location.js" +import { AbsolutePath } from "../../schema.js" +import { Skill } from "../../skill.js" +import { SkillDiscovery } from "../../skill/discovery.js" +import { SkillFile } from "./skill-file.js" type Source = Skill.DirectorySource | Skill.UrlSource diff --git a/packages/core/src/config/plugin/source.ts b/packages/core/src/config/plugin/source.ts index c44b8ee2a21..d91b2d259aa 100644 --- a/packages/core/src/config/plugin/source.ts +++ b/packages/core/src/config/plugin/source.ts @@ -1,4 +1,4 @@ -export * as ConfigPluginSource from "./source" +export * as ConfigPluginSource from "./source.js" import { Directory, Document, type Entry } from "@opencode-ai/schema/config" import { ConfigPlugin } from "@opencode-ai/schema/config/plugin" @@ -7,9 +7,9 @@ import { makeLocationNode } from "@opencode-ai/util/effect/app-node" import { Context, Effect, Layer, Option, Predicate, PubSub, Schema, Scope, Stream } from "effect" import path from "path" import { fileURLToPath } from "url" -import { Config } from "../../config" -import { Watcher } from "../../filesystem/watcher" -import { Location } from "../../location" +import { Config } from "../../config.js" +import { Watcher } from "../../filesystem/watcher.js" +import { Location } from "../../location.js" export type Operation = | { diff --git a/packages/core/src/config/plugin/websearch.ts b/packages/core/src/config/plugin/websearch.ts index 343d1dfd610..d5161173370 100644 --- a/packages/core/src/config/plugin/websearch.ts +++ b/packages/core/src/config/plugin/websearch.ts @@ -1,8 +1,8 @@ -export * as ConfigWebSearchPlugin from "./websearch" +export * as ConfigWebSearchPlugin from "./websearch.js" import { define } from "@opencode-ai/plugin/effect/plugin" import { Effect, Stream } from "effect" -import { Config } from "../../config" +import { Config } from "../../config.js" export const Plugin = define({ id: "opencode.config.websearch", diff --git a/packages/core/src/config/variable.ts b/packages/core/src/config/variable.ts index 539d88413b9..2825f5b1f91 100644 --- a/packages/core/src/config/variable.ts +++ b/packages/core/src/config/variable.ts @@ -1,10 +1,10 @@ -export * as ConfigVariable from "./variable" +export * as ConfigVariable from "./variable.js" import os from "os" import path from "path" import { Effect } from "effect" import { FSUtil } from "@opencode-ai/util/fs-util" -import { InvalidError } from "../v1/config/error" +import { InvalidError } from "../v1/config/error.js" type ParseSource = | { diff --git a/packages/core/src/credential.ts b/packages/core/src/credential.ts index 47f35c809b1..b16346a1dc6 100644 --- a/packages/core/src/credential.ts +++ b/packages/core/src/credential.ts @@ -1,12 +1,12 @@ -export * as Credential from "./credential" +export * as Credential from "./credential.js" import { asc, eq } from "drizzle-orm" import { Context, Effect, Layer, Schema } from "effect" import { Credential } from "@opencode-ai/schema/credential" import { Integration } from "@opencode-ai/schema/integration" -import { Database } from "./database/database" +import { Database } from "./database/database.js" import { makeGlobalNode } from "@opencode-ai/util/effect/app-node" -import { CredentialTable } from "./credential/sql" +import { CredentialTable } from "./credential/sql.js" export const ID = Credential.ID export type ID = Credential.ID diff --git a/packages/core/src/credential/sql.ts b/packages/core/src/credential/sql.ts index f6b59197a3b..f479a113aca 100644 --- a/packages/core/src/credential/sql.ts +++ b/packages/core/src/credential/sql.ts @@ -1,6 +1,6 @@ import { integer, sqliteTable, text } from "drizzle-orm/sqlite-core" -import { Timestamps } from "../database/schema.sql" -import type { Credential } from "../credential" +import { Timestamps } from "../database/schema.sql.js" +import type { Credential } from "../credential.js" export const CredentialTable = sqliteTable("credential", { id: text().$type().primaryKey(), diff --git a/packages/core/src/database/database.ts b/packages/core/src/database/database.ts index 1354cb8c96e..e71ae1ab671 100644 --- a/packages/core/src/database/database.ts +++ b/packages/core/src/database/database.ts @@ -1,4 +1,4 @@ -export * as Database from "./database" +export * as Database from "./database.js" import { EffectDrizzleSqlite } from "@opencode-ai/effect-drizzle-sqlite" import { sqliteLayer, supportsForeignKeyToggle, supportsTuningPragmas } from "#sqlite" @@ -6,7 +6,7 @@ import { Context, Effect, Layer, Schema } from "effect" import type { SqlClient } from "effect/unstable/sql" import { Global } from "@opencode-ai/util/global" import { isAbsolute, join } from "path" -import { DatabaseMigration } from "./migration" +import { DatabaseMigration } from "./migration.js" import { makeGlobalNode } from "@opencode-ai/util/effect/app-node" const makeDatabase = EffectDrizzleSqlite.makeWithDefaults() diff --git a/packages/core/src/database/migration.gen.ts b/packages/core/src/database/migration.gen.ts index ad32ddafdbf..8d1bcad1eb0 100644 --- a/packages/core/src/database/migration.gen.ts +++ b/packages/core/src/database/migration.gen.ts @@ -1,46 +1,46 @@ -import type { DatabaseMigration } from "./migration" -import m00 from "./migration/20260127222353_familiar_lady_ursula" -import m01 from "./migration/20260211171708_add_project_commands" -import m02 from "./migration/20260213144116_wakeful_the_professor" -import m03 from "./migration/20260225215848_workspace" -import m04 from "./migration/20260227213759_add_session_workspace_id" -import m05 from "./migration/20260228203230_blue_harpoon" -import m06 from "./migration/20260303231226_add_workspace_fields" -import m07 from "./migration/20260309230000_move_org_to_state" -import m08 from "./migration/20260312043431_session_message_cursor" -import m09 from "./migration/20260323234822_events" -import m10 from "./migration/20260410174513_workspace-name" -import m11 from "./migration/20260413175956_chief_energizer" -import m12 from "./migration/20260423070820_add_icon_url_override" -import m13 from "./migration/20260427172553_slow_nightmare" -import m14 from "./migration/20260428004200_add_session_path" -import m15 from "./migration/20260501142318_next_venus" -import m16 from "./migration/20260504145000_add_sync_owner" -import m17 from "./migration/20260507164347_add_workspace_time" -import m18 from "./migration/20260510033149_session_usage" -import m19 from "./migration/20260511000411_data_migration_state" -import m20 from "./migration/20260511173437_session-metadata" -import m21 from "./migration/20260601010001_normalize_storage_paths" -import m22 from "./migration/20260601202201_amazing_prowler" -import m23 from "./migration/20260602002951_lowly_union_jack" -import m24 from "./migration/20260602182828_add_project_directories" -import m25 from "./migration/20260603001617_session_message_projection_indexes" -import m26 from "./migration/20260603040000_session_message_projection_order" -import m27 from "./migration/20260603141458_session_input_inbox" -import m28 from "./migration/20260603160727_jittery_ezekiel_stane" -import m29 from "./migration/20260604172448_event_sourced_session_input" -import m30 from "./migration/20260605003541_add_session_context_snapshot" -import m31 from "./migration/20260605042240_add_context_epoch_agent" -import m32 from "./migration/20260611035744_credential" -import m33 from "./migration/20260611192811_lush_chimera" -import m34 from "./migration/20260612174303_project_dir_strategy" -import m35 from "./migration/20260622142730_simplify_session_context_epoch" -import m36 from "./migration/20260622170816_reset_v2_session_state" -import m37 from "./migration/20260622202450_simplify_session_input" -import m38 from "./migration/20260804233008_loose_psylocke" -import m39 from "./migration/20260805200742_import_legacy_credentials" -import m40 from "./migration/20260808023530_workspace_domain" -import m41 from "./migration/20260811161259_execution_claim_attempts" +import type { DatabaseMigration } from "./migration.js" +import m00 from "./migration/20260127222353_familiar_lady_ursula.js" +import m01 from "./migration/20260211171708_add_project_commands.js" +import m02 from "./migration/20260213144116_wakeful_the_professor.js" +import m03 from "./migration/20260225215848_workspace.js" +import m04 from "./migration/20260227213759_add_session_workspace_id.js" +import m05 from "./migration/20260228203230_blue_harpoon.js" +import m06 from "./migration/20260303231226_add_workspace_fields.js" +import m07 from "./migration/20260309230000_move_org_to_state.js" +import m08 from "./migration/20260312043431_session_message_cursor.js" +import m09 from "./migration/20260323234822_events.js" +import m10 from "./migration/20260410174513_workspace-name.js" +import m11 from "./migration/20260413175956_chief_energizer.js" +import m12 from "./migration/20260423070820_add_icon_url_override.js" +import m13 from "./migration/20260427172553_slow_nightmare.js" +import m14 from "./migration/20260428004200_add_session_path.js" +import m15 from "./migration/20260501142318_next_venus.js" +import m16 from "./migration/20260504145000_add_sync_owner.js" +import m17 from "./migration/20260507164347_add_workspace_time.js" +import m18 from "./migration/20260510033149_session_usage.js" +import m19 from "./migration/20260511000411_data_migration_state.js" +import m20 from "./migration/20260511173437_session-metadata.js" +import m21 from "./migration/20260601010001_normalize_storage_paths.js" +import m22 from "./migration/20260601202201_amazing_prowler.js" +import m23 from "./migration/20260602002951_lowly_union_jack.js" +import m24 from "./migration/20260602182828_add_project_directories.js" +import m25 from "./migration/20260603001617_session_message_projection_indexes.js" +import m26 from "./migration/20260603040000_session_message_projection_order.js" +import m27 from "./migration/20260603141458_session_input_inbox.js" +import m28 from "./migration/20260603160727_jittery_ezekiel_stane.js" +import m29 from "./migration/20260604172448_event_sourced_session_input.js" +import m30 from "./migration/20260605003541_add_session_context_snapshot.js" +import m31 from "./migration/20260605042240_add_context_epoch_agent.js" +import m32 from "./migration/20260611035744_credential.js" +import m33 from "./migration/20260611192811_lush_chimera.js" +import m34 from "./migration/20260612174303_project_dir_strategy.js" +import m35 from "./migration/20260622142730_simplify_session_context_epoch.js" +import m36 from "./migration/20260622170816_reset_v2_session_state.js" +import m37 from "./migration/20260622202450_simplify_session_input.js" +import m38 from "./migration/20260804233008_loose_psylocke.js" +import m39 from "./migration/20260805200742_import_legacy_credentials.js" +import m40 from "./migration/20260808023530_workspace_domain.js" +import m41 from "./migration/20260811161259_execution_claim_attempts.js" export const migrations = [ m00, diff --git a/packages/core/src/database/migration.ts b/packages/core/src/database/migration.ts index a572f2b0031..03e820829de 100644 --- a/packages/core/src/database/migration.ts +++ b/packages/core/src/database/migration.ts @@ -1,11 +1,11 @@ -export * as DatabaseMigration from "./migration" +export * as DatabaseMigration from "./migration.js" import { sql } from "drizzle-orm" import { Effect, Semaphore } from "effect" import { supportsForeignKeyToggle } from "#sqlite" import type { EffectDrizzleSqlite } from "@opencode-ai/effect-drizzle-sqlite" -import { migrations } from "./migration.gen" -import schema from "./schema.gen" +import { migrations } from "./migration.gen.js" +import schema from "./schema.gen.js" import { Global } from "@opencode-ai/util/global" type Database = EffectDrizzleSqlite.EffectSQLiteDatabase diff --git a/packages/core/src/database/migration/20260127222353_familiar_lady_ursula.ts b/packages/core/src/database/migration/20260127222353_familiar_lady_ursula.ts index d1ca7aa3fa8..33f99f0d679 100644 --- a/packages/core/src/database/migration/20260127222353_familiar_lady_ursula.ts +++ b/packages/core/src/database/migration/20260127222353_familiar_lady_ursula.ts @@ -1,5 +1,5 @@ import { Effect } from "effect" -import type { DatabaseMigration } from "../migration" +import type { DatabaseMigration } from "../migration.js" const migration: DatabaseMigration.Migration = { id: "20260127222353_familiar_lady_ursula", diff --git a/packages/core/src/database/migration/20260211171708_add_project_commands.ts b/packages/core/src/database/migration/20260211171708_add_project_commands.ts index 35a3514964f..2f20fdcf5fd 100644 --- a/packages/core/src/database/migration/20260211171708_add_project_commands.ts +++ b/packages/core/src/database/migration/20260211171708_add_project_commands.ts @@ -1,5 +1,5 @@ import { Effect } from "effect" -import type { DatabaseMigration } from "../migration" +import type { DatabaseMigration } from "../migration.js" const migration: DatabaseMigration.Migration = { id: "20260211171708_add_project_commands", diff --git a/packages/core/src/database/migration/20260213144116_wakeful_the_professor.ts b/packages/core/src/database/migration/20260213144116_wakeful_the_professor.ts index b2bcbd32222..4b6f79bf984 100644 --- a/packages/core/src/database/migration/20260213144116_wakeful_the_professor.ts +++ b/packages/core/src/database/migration/20260213144116_wakeful_the_professor.ts @@ -1,5 +1,5 @@ import { Effect } from "effect" -import type { DatabaseMigration } from "../migration" +import type { DatabaseMigration } from "../migration.js" const migration: DatabaseMigration.Migration = { id: "20260213144116_wakeful_the_professor", diff --git a/packages/core/src/database/migration/20260225215848_workspace.ts b/packages/core/src/database/migration/20260225215848_workspace.ts index 6533cf8310a..82763d06d93 100644 --- a/packages/core/src/database/migration/20260225215848_workspace.ts +++ b/packages/core/src/database/migration/20260225215848_workspace.ts @@ -1,5 +1,5 @@ import { Effect } from "effect" -import type { DatabaseMigration } from "../migration" +import type { DatabaseMigration } from "../migration.js" const migration: DatabaseMigration.Migration = { id: "20260225215848_workspace", diff --git a/packages/core/src/database/migration/20260227213759_add_session_workspace_id.ts b/packages/core/src/database/migration/20260227213759_add_session_workspace_id.ts index 8a3daee333d..bfc26357b25 100644 --- a/packages/core/src/database/migration/20260227213759_add_session_workspace_id.ts +++ b/packages/core/src/database/migration/20260227213759_add_session_workspace_id.ts @@ -1,5 +1,5 @@ import { Effect } from "effect" -import type { DatabaseMigration } from "../migration" +import type { DatabaseMigration } from "../migration.js" const migration: DatabaseMigration.Migration = { id: "20260227213759_add_session_workspace_id", diff --git a/packages/core/src/database/migration/20260228203230_blue_harpoon.ts b/packages/core/src/database/migration/20260228203230_blue_harpoon.ts index ec41680b2b7..57fdcbfa66f 100644 --- a/packages/core/src/database/migration/20260228203230_blue_harpoon.ts +++ b/packages/core/src/database/migration/20260228203230_blue_harpoon.ts @@ -1,5 +1,5 @@ import { Effect } from "effect" -import type { DatabaseMigration } from "../migration" +import type { DatabaseMigration } from "../migration.js" const migration: DatabaseMigration.Migration = { id: "20260228203230_blue_harpoon", diff --git a/packages/core/src/database/migration/20260303231226_add_workspace_fields.ts b/packages/core/src/database/migration/20260303231226_add_workspace_fields.ts index bf4e0d3ec9c..14d1ad40f3f 100644 --- a/packages/core/src/database/migration/20260303231226_add_workspace_fields.ts +++ b/packages/core/src/database/migration/20260303231226_add_workspace_fields.ts @@ -1,5 +1,5 @@ import { Effect } from "effect" -import type { DatabaseMigration } from "../migration" +import type { DatabaseMigration } from "../migration.js" const migration: DatabaseMigration.Migration = { id: "20260303231226_add_workspace_fields", diff --git a/packages/core/src/database/migration/20260309230000_move_org_to_state.ts b/packages/core/src/database/migration/20260309230000_move_org_to_state.ts index 71328fbfded..c833440de76 100644 --- a/packages/core/src/database/migration/20260309230000_move_org_to_state.ts +++ b/packages/core/src/database/migration/20260309230000_move_org_to_state.ts @@ -1,5 +1,5 @@ import { Effect } from "effect" -import type { DatabaseMigration } from "../migration" +import type { DatabaseMigration } from "../migration.js" const migration: DatabaseMigration.Migration = { id: "20260309230000_move_org_to_state", diff --git a/packages/core/src/database/migration/20260312043431_session_message_cursor.ts b/packages/core/src/database/migration/20260312043431_session_message_cursor.ts index d6ef6797d48..26ae76e5909 100644 --- a/packages/core/src/database/migration/20260312043431_session_message_cursor.ts +++ b/packages/core/src/database/migration/20260312043431_session_message_cursor.ts @@ -1,5 +1,5 @@ import { Effect } from "effect" -import type { DatabaseMigration } from "../migration" +import type { DatabaseMigration } from "../migration.js" const migration: DatabaseMigration.Migration = { id: "20260312043431_session_message_cursor", diff --git a/packages/core/src/database/migration/20260323234822_events.ts b/packages/core/src/database/migration/20260323234822_events.ts index 747ac79c0bb..a14a02e2794 100644 --- a/packages/core/src/database/migration/20260323234822_events.ts +++ b/packages/core/src/database/migration/20260323234822_events.ts @@ -1,5 +1,5 @@ import { Effect } from "effect" -import type { DatabaseMigration } from "../migration" +import type { DatabaseMigration } from "../migration.js" const migration: DatabaseMigration.Migration = { id: "20260323234822_events", diff --git a/packages/core/src/database/migration/20260410174513_workspace-name.ts b/packages/core/src/database/migration/20260410174513_workspace-name.ts index 371027a92bc..c39a3612e31 100644 --- a/packages/core/src/database/migration/20260410174513_workspace-name.ts +++ b/packages/core/src/database/migration/20260410174513_workspace-name.ts @@ -1,5 +1,5 @@ import { Effect } from "effect" -import type { DatabaseMigration } from "../migration" +import type { DatabaseMigration } from "../migration.js" const migration: DatabaseMigration.Migration = { id: "20260410174513_workspace-name", diff --git a/packages/core/src/database/migration/20260413175956_chief_energizer.ts b/packages/core/src/database/migration/20260413175956_chief_energizer.ts index 8c04cfc3f2b..c8861ebb0e9 100644 --- a/packages/core/src/database/migration/20260413175956_chief_energizer.ts +++ b/packages/core/src/database/migration/20260413175956_chief_energizer.ts @@ -1,5 +1,5 @@ import { Effect } from "effect" -import type { DatabaseMigration } from "../migration" +import type { DatabaseMigration } from "../migration.js" const migration: DatabaseMigration.Migration = { id: "20260413175956_chief_energizer", diff --git a/packages/core/src/database/migration/20260423070820_add_icon_url_override.ts b/packages/core/src/database/migration/20260423070820_add_icon_url_override.ts index 08795ec9349..6d29e2ccc77 100644 --- a/packages/core/src/database/migration/20260423070820_add_icon_url_override.ts +++ b/packages/core/src/database/migration/20260423070820_add_icon_url_override.ts @@ -1,5 +1,5 @@ import { Effect } from "effect" -import type { DatabaseMigration } from "../migration" +import type { DatabaseMigration } from "../migration.js" const migration: DatabaseMigration.Migration = { id: "20260423070820_add_icon_url_override", diff --git a/packages/core/src/database/migration/20260427172553_slow_nightmare.ts b/packages/core/src/database/migration/20260427172553_slow_nightmare.ts index 4e0246c0fbf..6ceb8386e44 100644 --- a/packages/core/src/database/migration/20260427172553_slow_nightmare.ts +++ b/packages/core/src/database/migration/20260427172553_slow_nightmare.ts @@ -1,5 +1,5 @@ import { Effect } from "effect" -import type { DatabaseMigration } from "../migration" +import type { DatabaseMigration } from "../migration.js" const migration: DatabaseMigration.Migration = { id: "20260427172553_slow_nightmare", diff --git a/packages/core/src/database/migration/20260428004200_add_session_path.ts b/packages/core/src/database/migration/20260428004200_add_session_path.ts index 0b7648eba60..4f76c375d72 100644 --- a/packages/core/src/database/migration/20260428004200_add_session_path.ts +++ b/packages/core/src/database/migration/20260428004200_add_session_path.ts @@ -1,5 +1,5 @@ import { Effect } from "effect" -import type { DatabaseMigration } from "../migration" +import type { DatabaseMigration } from "../migration.js" const migration: DatabaseMigration.Migration = { id: "20260428004200_add_session_path", diff --git a/packages/core/src/database/migration/20260501142318_next_venus.ts b/packages/core/src/database/migration/20260501142318_next_venus.ts index 84dd1f396e8..6e789e58943 100644 --- a/packages/core/src/database/migration/20260501142318_next_venus.ts +++ b/packages/core/src/database/migration/20260501142318_next_venus.ts @@ -1,5 +1,5 @@ import { Effect } from "effect" -import type { DatabaseMigration } from "../migration" +import type { DatabaseMigration } from "../migration.js" const migration: DatabaseMigration.Migration = { id: "20260501142318_next_venus", diff --git a/packages/core/src/database/migration/20260504145000_add_sync_owner.ts b/packages/core/src/database/migration/20260504145000_add_sync_owner.ts index d0ce08cd519..2c34207a5d6 100644 --- a/packages/core/src/database/migration/20260504145000_add_sync_owner.ts +++ b/packages/core/src/database/migration/20260504145000_add_sync_owner.ts @@ -1,5 +1,5 @@ import { Effect } from "effect" -import type { DatabaseMigration } from "../migration" +import type { DatabaseMigration } from "../migration.js" const migration: DatabaseMigration.Migration = { id: "20260504145000_add_sync_owner", diff --git a/packages/core/src/database/migration/20260507164347_add_workspace_time.ts b/packages/core/src/database/migration/20260507164347_add_workspace_time.ts index dbd5102ce73..2af248e288a 100644 --- a/packages/core/src/database/migration/20260507164347_add_workspace_time.ts +++ b/packages/core/src/database/migration/20260507164347_add_workspace_time.ts @@ -1,5 +1,5 @@ import { Effect } from "effect" -import type { DatabaseMigration } from "../migration" +import type { DatabaseMigration } from "../migration.js" const migration: DatabaseMigration.Migration = { id: "20260507164347_add_workspace_time", diff --git a/packages/core/src/database/migration/20260510033149_session_usage.ts b/packages/core/src/database/migration/20260510033149_session_usage.ts index 85c30e83bef..0e7c8e43159 100644 --- a/packages/core/src/database/migration/20260510033149_session_usage.ts +++ b/packages/core/src/database/migration/20260510033149_session_usage.ts @@ -1,5 +1,5 @@ import { Effect } from "effect" -import type { DatabaseMigration } from "../migration" +import type { DatabaseMigration } from "../migration.js" const migration: DatabaseMigration.Migration = { id: "20260510033149_session_usage", diff --git a/packages/core/src/database/migration/20260511000411_data_migration_state.ts b/packages/core/src/database/migration/20260511000411_data_migration_state.ts index 8f2aafa1ffc..ee4e26cd1e7 100644 --- a/packages/core/src/database/migration/20260511000411_data_migration_state.ts +++ b/packages/core/src/database/migration/20260511000411_data_migration_state.ts @@ -1,5 +1,5 @@ import { Effect } from "effect" -import type { DatabaseMigration } from "../migration" +import type { DatabaseMigration } from "../migration.js" const migration: DatabaseMigration.Migration = { id: "20260511000411_data_migration_state", diff --git a/packages/core/src/database/migration/20260511173437_session-metadata.ts b/packages/core/src/database/migration/20260511173437_session-metadata.ts index aac8e14a29e..9903f6399cc 100644 --- a/packages/core/src/database/migration/20260511173437_session-metadata.ts +++ b/packages/core/src/database/migration/20260511173437_session-metadata.ts @@ -1,5 +1,5 @@ import { Effect } from "effect" -import type { DatabaseMigration } from "../migration" +import type { DatabaseMigration } from "../migration.js" const migration: DatabaseMigration.Migration = { id: "20260511173437_session-metadata", diff --git a/packages/core/src/database/migration/20260601010001_normalize_storage_paths.ts b/packages/core/src/database/migration/20260601010001_normalize_storage_paths.ts index b2e39c12686..1c704da2efe 100644 --- a/packages/core/src/database/migration/20260601010001_normalize_storage_paths.ts +++ b/packages/core/src/database/migration/20260601010001_normalize_storage_paths.ts @@ -1,5 +1,5 @@ import { Effect } from "effect" -import type { DatabaseMigration } from "../migration" +import type { DatabaseMigration } from "../migration.js" const migration: DatabaseMigration.Migration = { id: "20260601010001_normalize_storage_paths", diff --git a/packages/core/src/database/migration/20260601202201_amazing_prowler.ts b/packages/core/src/database/migration/20260601202201_amazing_prowler.ts index 917decc756d..70c0f2793dc 100644 --- a/packages/core/src/database/migration/20260601202201_amazing_prowler.ts +++ b/packages/core/src/database/migration/20260601202201_amazing_prowler.ts @@ -1,5 +1,5 @@ import { Effect } from "effect" -import type { DatabaseMigration } from "../migration" +import type { DatabaseMigration } from "../migration.js" const migration: DatabaseMigration.Migration = { id: "20260601202201_amazing_prowler", diff --git a/packages/core/src/database/migration/20260602002951_lowly_union_jack.ts b/packages/core/src/database/migration/20260602002951_lowly_union_jack.ts index 4069ef57cfb..c2a97fd7634 100644 --- a/packages/core/src/database/migration/20260602002951_lowly_union_jack.ts +++ b/packages/core/src/database/migration/20260602002951_lowly_union_jack.ts @@ -1,5 +1,5 @@ import { Effect } from "effect" -import type { DatabaseMigration } from "../migration" +import type { DatabaseMigration } from "../migration.js" const migration: DatabaseMigration.Migration = { id: "20260602002951_lowly_union_jack", diff --git a/packages/core/src/database/migration/20260602182828_add_project_directories.ts b/packages/core/src/database/migration/20260602182828_add_project_directories.ts index a37ff305d24..7c6c858d869 100644 --- a/packages/core/src/database/migration/20260602182828_add_project_directories.ts +++ b/packages/core/src/database/migration/20260602182828_add_project_directories.ts @@ -1,5 +1,5 @@ import { Effect } from "effect" -import type { DatabaseMigration } from "../migration" +import type { DatabaseMigration } from "../migration.js" const migration: DatabaseMigration.Migration = { id: "20260602182828_add_project_directories", diff --git a/packages/core/src/database/migration/20260603001617_session_message_projection_indexes.ts b/packages/core/src/database/migration/20260603001617_session_message_projection_indexes.ts index 41969cbd97a..88141b7add6 100644 --- a/packages/core/src/database/migration/20260603001617_session_message_projection_indexes.ts +++ b/packages/core/src/database/migration/20260603001617_session_message_projection_indexes.ts @@ -1,5 +1,5 @@ import { Effect } from "effect" -import type { DatabaseMigration } from "../migration" +import type { DatabaseMigration } from "../migration.js" const migration: DatabaseMigration.Migration = { id: "20260603001617_session_message_projection_indexes", diff --git a/packages/core/src/database/migration/20260603040000_session_message_projection_order.ts b/packages/core/src/database/migration/20260603040000_session_message_projection_order.ts index a8c6d276cd2..fbe7bef415c 100644 --- a/packages/core/src/database/migration/20260603040000_session_message_projection_order.ts +++ b/packages/core/src/database/migration/20260603040000_session_message_projection_order.ts @@ -1,5 +1,5 @@ import { Effect } from "effect" -import type { DatabaseMigration } from "../migration" +import type { DatabaseMigration } from "../migration.js" const migration: DatabaseMigration.Migration = { id: "20260603040000_session_message_projection_order", diff --git a/packages/core/src/database/migration/20260603141458_session_input_inbox.ts b/packages/core/src/database/migration/20260603141458_session_input_inbox.ts index 927d336f002..aaecfb2b846 100644 --- a/packages/core/src/database/migration/20260603141458_session_input_inbox.ts +++ b/packages/core/src/database/migration/20260603141458_session_input_inbox.ts @@ -1,5 +1,5 @@ import { Effect } from "effect" -import type { DatabaseMigration } from "../migration" +import type { DatabaseMigration } from "../migration.js" const migration: DatabaseMigration.Migration = { id: "20260603141458_session_input_inbox", diff --git a/packages/core/src/database/migration/20260603160727_jittery_ezekiel_stane.ts b/packages/core/src/database/migration/20260603160727_jittery_ezekiel_stane.ts index 6fe158b50bf..0c9c0fd53a1 100644 --- a/packages/core/src/database/migration/20260603160727_jittery_ezekiel_stane.ts +++ b/packages/core/src/database/migration/20260603160727_jittery_ezekiel_stane.ts @@ -1,5 +1,5 @@ import { Effect } from "effect" -import type { DatabaseMigration } from "../migration" +import type { DatabaseMigration } from "../migration.js" const migration: DatabaseMigration.Migration = { id: "20260603160727_jittery_ezekiel_stane", diff --git a/packages/core/src/database/migration/20260604172448_event_sourced_session_input.ts b/packages/core/src/database/migration/20260604172448_event_sourced_session_input.ts index 6b374d328ea..4055d7793ac 100644 --- a/packages/core/src/database/migration/20260604172448_event_sourced_session_input.ts +++ b/packages/core/src/database/migration/20260604172448_event_sourced_session_input.ts @@ -1,5 +1,5 @@ import { Effect } from "effect" -import type { DatabaseMigration } from "../migration" +import type { DatabaseMigration } from "../migration.js" const migration: DatabaseMigration.Migration = { id: "20260604172448_event_sourced_session_input", diff --git a/packages/core/src/database/migration/20260605003541_add_session_context_snapshot.ts b/packages/core/src/database/migration/20260605003541_add_session_context_snapshot.ts index 255090dc31c..e8a1afc49d0 100644 --- a/packages/core/src/database/migration/20260605003541_add_session_context_snapshot.ts +++ b/packages/core/src/database/migration/20260605003541_add_session_context_snapshot.ts @@ -1,5 +1,5 @@ import { Effect } from "effect" -import type { DatabaseMigration } from "../migration" +import type { DatabaseMigration } from "../migration.js" const migration: DatabaseMigration.Migration = { id: "20260605003541_add_session_context_snapshot", diff --git a/packages/core/src/database/migration/20260605042240_add_context_epoch_agent.ts b/packages/core/src/database/migration/20260605042240_add_context_epoch_agent.ts index 5d3e1e38515..8851b80de13 100644 --- a/packages/core/src/database/migration/20260605042240_add_context_epoch_agent.ts +++ b/packages/core/src/database/migration/20260605042240_add_context_epoch_agent.ts @@ -1,5 +1,5 @@ import { Effect } from "effect" -import type { DatabaseMigration } from "../migration" +import type { DatabaseMigration } from "../migration.js" const migration: DatabaseMigration.Migration = { id: "20260605042240_add_context_epoch_agent", diff --git a/packages/core/src/database/migration/20260611035744_credential.ts b/packages/core/src/database/migration/20260611035744_credential.ts index 28a1b6e9e80..8b4601b1f8d 100644 --- a/packages/core/src/database/migration/20260611035744_credential.ts +++ b/packages/core/src/database/migration/20260611035744_credential.ts @@ -1,5 +1,5 @@ import { Effect } from "effect" -import type { DatabaseMigration } from "../migration" +import type { DatabaseMigration } from "../migration.js" const migration: DatabaseMigration.Migration = { id: "20260611035744_credential", diff --git a/packages/core/src/database/migration/20260611192811_lush_chimera.ts b/packages/core/src/database/migration/20260611192811_lush_chimera.ts index c5b8cb70aec..3835800a422 100644 --- a/packages/core/src/database/migration/20260611192811_lush_chimera.ts +++ b/packages/core/src/database/migration/20260611192811_lush_chimera.ts @@ -1,5 +1,5 @@ import { Effect } from "effect" -import type { DatabaseMigration } from "../migration" +import type { DatabaseMigration } from "../migration.js" const migration: DatabaseMigration.Migration = { id: "20260611192811_lush_chimera", diff --git a/packages/core/src/database/migration/20260612174303_project_dir_strategy.ts b/packages/core/src/database/migration/20260612174303_project_dir_strategy.ts index 46b1eb03693..38e03f345d9 100644 --- a/packages/core/src/database/migration/20260612174303_project_dir_strategy.ts +++ b/packages/core/src/database/migration/20260612174303_project_dir_strategy.ts @@ -1,5 +1,5 @@ import { Effect } from "effect" -import type { DatabaseMigration } from "../migration" +import type { DatabaseMigration } from "../migration.js" const migration: DatabaseMigration.Migration = { id: "20260612174303_project_dir_strategy", diff --git a/packages/core/src/database/migration/20260622142730_simplify_session_context_epoch.ts b/packages/core/src/database/migration/20260622142730_simplify_session_context_epoch.ts index 5b44695c732..412090722ce 100644 --- a/packages/core/src/database/migration/20260622142730_simplify_session_context_epoch.ts +++ b/packages/core/src/database/migration/20260622142730_simplify_session_context_epoch.ts @@ -1,5 +1,5 @@ import { Effect } from "effect" -import type { DatabaseMigration } from "../migration" +import type { DatabaseMigration } from "../migration.js" const migration: DatabaseMigration.Migration = { id: "20260622142730_simplify_session_context_epoch", diff --git a/packages/core/src/database/migration/20260622170816_reset_v2_session_state.ts b/packages/core/src/database/migration/20260622170816_reset_v2_session_state.ts index a91556112fb..e83f2c2373e 100644 --- a/packages/core/src/database/migration/20260622170816_reset_v2_session_state.ts +++ b/packages/core/src/database/migration/20260622170816_reset_v2_session_state.ts @@ -1,5 +1,5 @@ import { Effect } from "effect" -import type { DatabaseMigration } from "../migration" +import type { DatabaseMigration } from "../migration.js" const migration: DatabaseMigration.Migration = { id: "20260622170816_reset_v2_session_state", diff --git a/packages/core/src/database/migration/20260622202450_simplify_session_input.ts b/packages/core/src/database/migration/20260622202450_simplify_session_input.ts index 70f82ab8797..ebdab299d76 100644 --- a/packages/core/src/database/migration/20260622202450_simplify_session_input.ts +++ b/packages/core/src/database/migration/20260622202450_simplify_session_input.ts @@ -1,5 +1,5 @@ import { Effect } from "effect" -import type { DatabaseMigration } from "../migration" +import type { DatabaseMigration } from "../migration.js" const migration: DatabaseMigration.Migration = { id: "20260622202450_simplify_session_input", diff --git a/packages/core/src/database/migration/20260804233008_loose_psylocke.ts b/packages/core/src/database/migration/20260804233008_loose_psylocke.ts index e1c423fb458..08c0ebf461b 100644 --- a/packages/core/src/database/migration/20260804233008_loose_psylocke.ts +++ b/packages/core/src/database/migration/20260804233008_loose_psylocke.ts @@ -1,5 +1,5 @@ import { Effect } from "effect" -import type { DatabaseMigration } from "../migration" +import type { DatabaseMigration } from "../migration.js" const migration: DatabaseMigration.Migration = { id: "20260804233008_loose_psylocke", diff --git a/packages/core/src/database/migration/20260805200742_import_legacy_credentials.ts b/packages/core/src/database/migration/20260805200742_import_legacy_credentials.ts index a393146a50d..f109c2ab2e3 100644 --- a/packages/core/src/database/migration/20260805200742_import_legacy_credentials.ts +++ b/packages/core/src/database/migration/20260805200742_import_legacy_credentials.ts @@ -6,7 +6,7 @@ import { Credential } from "@opencode-ai/schema/credential" import { Integration } from "@opencode-ai/schema/integration" import { NonNegativeInt } from "@opencode-ai/schema/schema" import { Global } from "@opencode-ai/util/global" -import type { DatabaseMigration } from "../migration" +import type { DatabaseMigration } from "../migration.js" const LegacyOAuth = Schema.Struct({ type: Schema.Literal("oauth"), diff --git a/packages/core/src/database/migration/20260808023530_workspace_domain.ts b/packages/core/src/database/migration/20260808023530_workspace_domain.ts index 7b5c0317014..e22e19a4358 100644 --- a/packages/core/src/database/migration/20260808023530_workspace_domain.ts +++ b/packages/core/src/database/migration/20260808023530_workspace_domain.ts @@ -1,5 +1,5 @@ import { Effect } from "effect" -import type { DatabaseMigration } from "../migration" +import type { DatabaseMigration } from "../migration.js" const migration: DatabaseMigration.Migration = { id: "20260808023530_workspace_domain", diff --git a/packages/core/src/database/migration/20260811161259_execution_claim_attempts.ts b/packages/core/src/database/migration/20260811161259_execution_claim_attempts.ts index 2b025ee3fd0..a66593d76e7 100644 --- a/packages/core/src/database/migration/20260811161259_execution_claim_attempts.ts +++ b/packages/core/src/database/migration/20260811161259_execution_claim_attempts.ts @@ -1,5 +1,5 @@ import { Effect } from "effect" -import type { DatabaseMigration } from "../migration" +import type { DatabaseMigration } from "../migration.js" const migration: DatabaseMigration.Migration = { id: "20260811161259_execution_claim_attempts", diff --git a/packages/core/src/database/path.ts b/packages/core/src/database/path.ts index 6bb552b0c5a..66a130b46d0 100644 --- a/packages/core/src/database/path.ts +++ b/packages/core/src/database/path.ts @@ -1,7 +1,7 @@ import nodePath from "path" import { customType } from "drizzle-orm/sqlite-core" import { Schema } from "effect" -import { AbsolutePath } from "../schema" +import { AbsolutePath } from "../schema.js" function storagePath(input: string) { if (process.platform !== "win32") return input diff --git a/packages/core/src/database/schema.gen.ts b/packages/core/src/database/schema.gen.ts index 7a1376fe9ad..c0e17437ae0 100644 --- a/packages/core/src/database/schema.gen.ts +++ b/packages/core/src/database/schema.gen.ts @@ -1,5 +1,5 @@ import { Effect } from "effect" -import type { DatabaseMigration } from "./migration" +import type { DatabaseMigration } from "./migration.js" const schema: Omit = { up(tx) { diff --git a/packages/core/src/database/sqlite.bun.ts b/packages/core/src/database/sqlite.bun.ts index 4a49a9a3e8b..ac8f023878f 100644 --- a/packages/core/src/database/sqlite.bun.ts +++ b/packages/core/src/database/sqlite.bun.ts @@ -4,7 +4,7 @@ import { Context, Effect, Layer } from "effect" import { Reactivity } from "effect/unstable/reactivity" import { SqlClient } from "effect/unstable/sql" import { classifySqliteError, SqlError } from "effect/unstable/sql/SqlError" -import { Sqlite } from "./sqlite" +import { Sqlite } from "./sqlite.js" const TypeId = "~@opencode-ai/core/database/SqliteBun" as const diff --git a/packages/core/src/database/sqlite.node.ts b/packages/core/src/database/sqlite.node.ts index 54e3b40efd5..49e12de3b43 100644 --- a/packages/core/src/database/sqlite.node.ts +++ b/packages/core/src/database/sqlite.node.ts @@ -4,7 +4,7 @@ import { Context, Effect, Layer } from "effect" import { Reactivity } from "effect/unstable/reactivity" import { SqlClient } from "effect/unstable/sql" import { classifySqliteError, SqlError } from "effect/unstable/sql/SqlError" -import { Sqlite } from "./sqlite" +import { Sqlite } from "./sqlite.js" const TypeId = "~@opencode-ai/core/database/SqliteNode" as const diff --git a/packages/core/src/database/sqlite.ts b/packages/core/src/database/sqlite.ts index d4a36bacaae..1add137b10f 100644 --- a/packages/core/src/database/sqlite.ts +++ b/packages/core/src/database/sqlite.ts @@ -1,4 +1,4 @@ -export * as Sqlite from "./sqlite" +export * as Sqlite from "./sqlite.js" import { Context, Effect, Fiber, Scope, Semaphore, Stream } from "effect" import { identity } from "effect/Function" diff --git a/packages/core/src/database/sqlite.workerd.ts b/packages/core/src/database/sqlite.workerd.ts index 94a5a5eb763..da7a860e06e 100644 --- a/packages/core/src/database/sqlite.workerd.ts +++ b/packages/core/src/database/sqlite.workerd.ts @@ -5,7 +5,7 @@ import { Reactivity } from "effect/unstable/reactivity" import { SqlClient, Statement } from "effect/unstable/sql" import type { Connection } from "effect/unstable/sql/SqlConnection" import { classifySqliteError, SqlError, UnknownError } from "effect/unstable/sql/SqlError" -import { Sqlite } from "./sqlite" +import { Sqlite } from "./sqlite.js" const ATTR_DB_SYSTEM_NAME = "db.system.name" diff --git a/packages/core/src/database/v1-migration.ts b/packages/core/src/database/v1-migration.ts index 0df2f6ab9d2..5c3150c77c1 100644 --- a/packages/core/src/database/v1-migration.ts +++ b/packages/core/src/database/v1-migration.ts @@ -1,13 +1,13 @@ -export * as V1Migration from "./v1-migration" +export * as V1Migration from "./v1-migration.js" import { Cause, Effect, Layer, Option, Schema, Semaphore } from "effect" -import { Database } from "./database" -import { SessionMessageTable, SessionTable } from "../session/sql" +import { Database } from "./database.js" +import { SessionMessageTable, SessionTable } from "../session/sql.js" import { SessionV1 } from "@opencode-ai/schema/session-v1" -import { SessionMessage } from "../session/message" -import { SessionSchema } from "../session/schema" -import { KVTable } from "../kv/sql" -import { EventSequenceTable } from "../event/sql" +import { SessionMessage } from "../session/message.js" +import { SessionSchema } from "../session/schema.js" +import { KVTable } from "../kv/sql.js" +import { EventSequenceTable } from "../event/sql.js" import { eq, sql } from "drizzle-orm" import { Global } from "@opencode-ai/util/global" import { existsSync } from "node:fs" diff --git a/packages/core/src/effect/app-node-builder.ts b/packages/core/src/effect/app-node-builder.ts index e6cc934ca1d..8acb0ea127a 100644 --- a/packages/core/src/effect/app-node-builder.ts +++ b/packages/core/src/effect/app-node-builder.ts @@ -1,5 +1,5 @@ -import { buildLocationServiceMap } from "../location-services" -import { LocationServiceMap } from "../location-service-map" +import { buildLocationServiceMap } from "../location-services.js" +import { LocationServiceMap } from "../location-service-map.js" import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { makeGlobalNode } from "@opencode-ai/util/effect/app-node" @@ -20,4 +20,4 @@ function hasReplacement(replacements: LayerNode.Replacements, node: LayerNode.No return replacements.some(([source]) => source.name === node.name) } -export * as AppNodeBuilder from "./app-node-builder" +export * as AppNodeBuilder from "./app-node-builder.js" diff --git a/packages/core/src/effect/app-node-platform.ts b/packages/core/src/effect/app-node-platform.ts index 4ad725fcbb0..fb0e70b3305 100644 --- a/packages/core/src/effect/app-node-platform.ts +++ b/packages/core/src/effect/app-node-platform.ts @@ -10,4 +10,4 @@ export const requestExecutor = makeGlobalNode({ export const llmClient = makeGlobalNode({ service: LLMClient.Service, layer: LLMClient.layer, deps: [requestExecutor] }) -export * as LayerNodePlatform from "./app-node-platform" +export * as LayerNodePlatform from "./app-node-platform.js" diff --git a/packages/core/src/effect/keyed-mutex.ts b/packages/core/src/effect/keyed-mutex.ts index e7c69b7db91..782fb619ac8 100644 --- a/packages/core/src/effect/keyed-mutex.ts +++ b/packages/core/src/effect/keyed-mutex.ts @@ -1,4 +1,4 @@ -export * as KeyedMutex from "./keyed-mutex" +export * as KeyedMutex from "./keyed-mutex.js" import { Effect, Semaphore } from "effect" diff --git a/packages/core/src/environment/driver.ts b/packages/core/src/environment/driver.ts index 3c0a98cdbea..39c0d2c7455 100644 --- a/packages/core/src/environment/driver.ts +++ b/packages/core/src/environment/driver.ts @@ -1,9 +1,9 @@ import type { ChildProcessSpawner } from "effect/unstable/process/ChildProcessSpawner" -import type { FilesImpl } from "./files" +import type { FilesImpl } from "./files.js" export interface Driver { readonly spawner: ChildProcessSpawner["Service"] readonly overrides?: Partial } -export * as EnvironmentDriver from "./driver" +export * as EnvironmentDriver from "./driver.js" diff --git a/packages/core/src/environment/environment.ts b/packages/core/src/environment/environment.ts index b85ef43a7d1..dc242e08eaf 100644 --- a/packages/core/src/environment/environment.ts +++ b/packages/core/src/environment/environment.ts @@ -2,11 +2,11 @@ import { CrossSpawnSpawner } from "@opencode-ai/util/cross-spawn-spawner" import { makeLocationNode } from "@opencode-ai/util/effect/app-node" import { Context, Effect, Layer } from "effect" import { ChildProcessSpawner } from "effect/unstable/process/ChildProcessSpawner" -import type { Files } from "./files" -import { makeFiles } from "./index" -import { makeLocalDriver } from "./local" -import { Location } from "../location" -import { Workspace } from "../workspace" +import type { Files } from "./files.js" +import { makeFiles } from "./index.js" +import { makeLocalDriver } from "./local.js" +import { Location } from "../location.js" +import { Workspace } from "../workspace.js" export interface Interface { readonly files: Files @@ -40,4 +40,4 @@ export const node = makeLocationNode({ deps: [CrossSpawnSpawner.node, Location.node, Workspace.node], }) -export * as EnvironmentService from "./environment" +export * as EnvironmentService from "./environment.js" diff --git a/packages/core/src/environment/exec-defaults.ts b/packages/core/src/environment/exec-defaults.ts index 2ed84ca8203..2c5d2415019 100644 --- a/packages/core/src/environment/exec-defaults.ts +++ b/packages/core/src/environment/exec-defaults.ts @@ -2,7 +2,7 @@ import { Effect, Stream } from "effect" import { ChildProcess } from "effect/unstable/process" import type { ChildProcessSpawner } from "effect/unstable/process/ChildProcessSpawner" import { collectStream } from "@opencode-ai/util/process" -import { Failed, NotFound, WrongKind, type FileInfo, type FileType, type FilesImpl } from "./files" +import { Failed, NotFound, WrongKind, type FileInfo, type FileType, type FilesImpl } from "./files.js" /** * Files derived from spawning processes: one process per intent, "$1" is @@ -189,4 +189,4 @@ const parseList = (bytes: Uint8Array) => { })) } -export * as EnvironmentExecDefaults from "./exec-defaults" +export * as EnvironmentExecDefaults from "./exec-defaults.js" diff --git a/packages/core/src/environment/files.ts b/packages/core/src/environment/files.ts index afb1dc42c35..0029fb2849b 100644 --- a/packages/core/src/environment/files.ts +++ b/packages/core/src/environment/files.ts @@ -67,4 +67,4 @@ export const typeFollowing = (files: Files, path: string) => ), ) -export * as EnvironmentFiles from "./files" +export * as EnvironmentFiles from "./files.js" diff --git a/packages/core/src/environment/index.ts b/packages/core/src/environment/index.ts index 79ecd9bcbe0..0f6564a33da 100644 --- a/packages/core/src/environment/index.ts +++ b/packages/core/src/environment/index.ts @@ -1,6 +1,6 @@ -export * as Environment from "./index" +export * as Environment from "./index.js" -export { type Driver } from "./driver" +export { type Driver } from "./driver.js" export { type DirEntry, Failed, @@ -11,15 +11,15 @@ export { NotFound, typeFollowing, WrongKind, -} from "./files" -export { execDefaults } from "./exec-defaults" -export { makeLocalDriver } from "./local" -export { makeMemoryDriver, type MemoryDriver } from "./memory" -export { type Interface, node, Service } from "./environment" +} from "./files.js" +export { execDefaults } from "./exec-defaults.js" +export { makeLocalDriver } from "./local.js" +export { makeMemoryDriver, type MemoryDriver } from "./memory.js" +export { type Interface, node, Service } from "./environment.js" -import type { Driver } from "./driver" -import { execDefaults } from "./exec-defaults" -import type { Files } from "./files" +import type { Driver } from "./driver.js" +import { execDefaults } from "./exec-defaults.js" +import type { Files } from "./files.js" export const makeFiles = (driver: Driver): Files => ({ ...execDefaults(driver.spawner), diff --git a/packages/core/src/environment/local.ts b/packages/core/src/environment/local.ts index 30758e2e0da..a2a044523a0 100644 --- a/packages/core/src/environment/local.ts +++ b/packages/core/src/environment/local.ts @@ -2,8 +2,8 @@ import fs from "node:fs/promises" import path from "node:path" import { Effect } from "effect" import type { ChildProcessSpawner } from "effect/unstable/process/ChildProcessSpawner" -import type { Driver } from "./driver" -import { Failed, NotFound, WrongKind, type FileInfo, type FilesImpl, type FileType } from "./files" +import type { Driver } from "./driver.js" +import { Failed, NotFound, WrongKind, type FileInfo, type FilesImpl, type FileType } from "./files.js" /** * The host filesystem binding. Deliberately raw node:fs rather than effect's @@ -100,4 +100,4 @@ const isMissing = (cause: unknown) => "code" in cause && (cause.code === "ENOENT" || cause.code === "ENOTDIR") -export * as EnvironmentLocal from "./local" +export * as EnvironmentLocal from "./local.js" diff --git a/packages/core/src/environment/memory.ts b/packages/core/src/environment/memory.ts index 6c71c435c4f..a145c2fd199 100644 --- a/packages/core/src/environment/memory.ts +++ b/packages/core/src/environment/memory.ts @@ -1,8 +1,8 @@ import path from "node:path" import { Effect, PlatformError } from "effect" import { make } from "effect/unstable/process/ChildProcessSpawner" -import type { Driver } from "./driver" -import { Failed, NotFound, WrongKind, type FileInfo, type FilesImpl, type FileType } from "./files" +import type { Driver } from "./driver.js" +import { Failed, NotFound, WrongKind, type FileInfo, type FilesImpl, type FileType } from "./files.js" type Node = | { readonly type: "file"; readonly bytes: Uint8Array; readonly mtimeMs: number } @@ -165,4 +165,4 @@ export const makeMemoryDriver = (): MemoryDriver => { } } -export * as EnvironmentMemory from "./memory" +export * as EnvironmentMemory from "./memory.js" diff --git a/packages/core/src/event-logger.ts b/packages/core/src/event-logger.ts index b48bb62befb..4bba351557e 100644 --- a/packages/core/src/event-logger.ts +++ b/packages/core/src/event-logger.ts @@ -1,8 +1,8 @@ -export * as EventLogger from "./event-logger" +export * as EventLogger from "./event-logger.js" import { Effect, Layer } from "effect" import { makeGlobalNode } from "@opencode-ai/util/effect/app-node" -import { Bus } from "./bus" +import { Bus } from "./bus.js" const Types = new Set(["agent.updated", "catalog.updated", "command.updated", "config.updated"]) diff --git a/packages/core/src/file-mutation.ts b/packages/core/src/file-mutation.ts index bd220cb68e9..8444ca84ac1 100644 --- a/packages/core/src/file-mutation.ts +++ b/packages/core/src/file-mutation.ts @@ -1,12 +1,12 @@ -export * as FileMutation from "./file-mutation" +export * as FileMutation from "./file-mutation.js" import { makeLocationNode } from "@opencode-ai/util/effect/app-node" import { Context, Effect, Layer } from "effect" -import { KeyedMutex } from "./effect/keyed-mutex" +import { KeyedMutex } from "./effect/keyed-mutex.js" import { FSUtil } from "@opencode-ai/util/fs-util" import { Bom } from "@opencode-ai/util/bom" -import { Environment } from "./environment" -import type { Files } from "./environment" +import { Environment } from "./environment/index.js" +import type { Files } from "./environment/index.js" export interface Target { readonly absolute: string diff --git a/packages/core/src/file.ts b/packages/core/src/file.ts index 0f48d9a04c0..72717ad9ce2 100644 --- a/packages/core/src/file.ts +++ b/packages/core/src/file.ts @@ -1,4 +1,4 @@ -export * as File from "./file" +export * as File from "./file.js" import { FileDiff } from "@opencode-ai/schema/file-diff" diff --git a/packages/core/src/filesystem.ts b/packages/core/src/filesystem.ts index c6a358440b2..a823c72e5a7 100644 --- a/packages/core/src/filesystem.ts +++ b/packages/core/src/filesystem.ts @@ -1,12 +1,12 @@ -export * as FileSystem from "./filesystem" +export * as FileSystem from "./filesystem.js" import { makeLocationNode } from "@opencode-ai/util/effect/app-node" import path from "path" import { Context, Effect, Layer, Schema } from "effect" import { FSUtil } from "@opencode-ai/util/fs-util" -import { Location } from "./location" -import { PositiveInt, RelativePath } from "./schema" -import { FileSystemSearch } from "./filesystem/search" +import { Location } from "./location.js" +import { PositiveInt, RelativePath } from "./schema.js" +import { FileSystemSearch } from "./filesystem/search.js" import { Entry, FileSystem, FindInput } from "@opencode-ai/schema/filesystem" export { Entry, Match, Submatch } from "@opencode-ai/schema/filesystem" diff --git a/packages/core/src/filesystem/fff.bun.ts b/packages/core/src/filesystem/fff.bun.ts index 48a6246f154..6c824a754a4 100644 --- a/packages/core/src/filesystem/fff.bun.ts +++ b/packages/core/src/filesystem/fff.bun.ts @@ -1,7 +1,7 @@ import { FileFinder } from "@ff-labs/fff-bun" -import { bind } from "./fff" +import { bind } from "./fff.js" -export type { Directory, DirSearch, File, Init, Mixed, MixedSearch, Picker, Result, Search } from "./fff" +export type { Directory, DirSearch, File, Init, Mixed, MixedSearch, Picker, Result, Search } from "./fff.js" declare global { const FFF_LIBC: "gnu" | "musl" @@ -12,4 +12,4 @@ const adapter = bind(FileFinder) export const available = adapter.available export const create = adapter.create -export * as Fff from "./fff.bun" +export * as Fff from "./fff.bun.js" diff --git a/packages/core/src/filesystem/fff.node.ts b/packages/core/src/filesystem/fff.node.ts index 07bb00743a6..534c76154b0 100644 --- a/packages/core/src/filesystem/fff.node.ts +++ b/packages/core/src/filesystem/fff.node.ts @@ -1,6 +1,6 @@ -import { bind } from "./fff" +import { bind } from "./fff.js" -export type { Directory, DirSearch, File, Init, Mixed, MixedSearch, Picker, Result, Search } from "./fff" +export type { Directory, DirSearch, File, Init, Mixed, MixedSearch, Picker, Result, Search } from "./fff.js" const { FileFinder } = await import("@ff-labs/fff-node").catch(() => ({ FileFinder: undefined })) @@ -9,4 +9,4 @@ const adapter = bind(FileFinder, "fff unavailable on node runtime") export const available = adapter.available export const create = adapter.create -export * as Fff from "./fff.node" +export * as Fff from "./fff.node.js" diff --git a/packages/core/src/filesystem/ignore.ts b/packages/core/src/filesystem/ignore.ts index 6649753e6dd..8597afbbfb6 100644 --- a/packages/core/src/filesystem/ignore.ts +++ b/packages/core/src/filesystem/ignore.ts @@ -45,4 +45,4 @@ const FILES = [ export const PATTERNS = [...FILES, ...FOLDERS, `**/{${Array.from(FOLDERS).join(",")}}/**`] -export * as Ignore from "./ignore" +export * as Ignore from "./ignore.js" diff --git a/packages/core/src/filesystem/location-watcher.ts b/packages/core/src/filesystem/location-watcher.ts index 6848933fee8..9ac916f4a38 100644 --- a/packages/core/src/filesystem/location-watcher.ts +++ b/packages/core/src/filesystem/location-watcher.ts @@ -1,16 +1,16 @@ -export * as LocationWatcher from "./location-watcher" +export * as LocationWatcher from "./location-watcher.js" import { makeLocationNode } from "@opencode-ai/util/effect/app-node" import { Context, Effect, Layer, Stream } from "effect" import { FileSystem } from "@opencode-ai/schema/filesystem" import { Document } from "@opencode-ai/schema/config" import path from "path" -import { Config } from "../config" -import { Bus } from "../bus" +import { Config } from "../config.js" +import { Bus } from "../bus.js" import { FSUtil } from "@opencode-ai/util/fs-util" -import { Git } from "../git" -import { Location } from "../location" -import { Watcher } from "./watcher" +import { Git } from "../git.js" +import { Location } from "../location.js" +import { Watcher } from "./watcher.js" export interface Interface {} diff --git a/packages/core/src/filesystem/protected.ts b/packages/core/src/filesystem/protected.ts index c771ae20ded..aaf14509fd2 100644 --- a/packages/core/src/filesystem/protected.ts +++ b/packages/core/src/filesystem/protected.ts @@ -54,4 +54,4 @@ export function paths(): string[] { return [] } -export * as Protected from "./protected" +export * as Protected from "./protected.js" diff --git a/packages/core/src/filesystem/search.ts b/packages/core/src/filesystem/search.ts index 4778bedd889..21a34576a09 100644 --- a/packages/core/src/filesystem/search.ts +++ b/packages/core/src/filesystem/search.ts @@ -1,15 +1,15 @@ -export * as FileSystemSearch from "./search" +export * as FileSystemSearch from "./search.js" import { makeLocationNode } from "@opencode-ai/util/effect/app-node" import path from "path" import { Context, Effect, Layer, Schema, Scope } from "effect" import { Fff } from "#fff" import fuzzysort from "fuzzysort" -import { FileSystem } from "../filesystem" -import { Location } from "../location" -import { Ripgrep } from "../ripgrep" -import { RelativePath } from "../schema" -import { Protected } from "./protected" +import { FileSystem } from "../filesystem.js" +import { Location } from "../location.js" +import { Ripgrep } from "../ripgrep.js" +import { RelativePath } from "../schema.js" +import { Protected } from "./protected.js" export interface Interface { readonly find: (input: FileSystem.FindInput) => Effect.Effect diff --git a/packages/core/src/filesystem/watcher.ts b/packages/core/src/filesystem/watcher.ts index 54c1443e866..7a905680556 100644 --- a/packages/core/src/filesystem/watcher.ts +++ b/packages/core/src/filesystem/watcher.ts @@ -1,4 +1,4 @@ -export * as Watcher from "./watcher" +export * as Watcher from "./watcher.js" // @ts-ignore import { createWrapper } from "@parcel/watcher/wrapper" @@ -6,10 +6,10 @@ import type ParcelWatcher from "@parcel/watcher" import { FileSystem } from "@opencode-ai/schema/filesystem" import { makeGlobalNode } from "@opencode-ai/util/effect/app-node" import { Cause, Context, Effect, Layer, PubSub, RcMap, Schema, Stream } from "effect" -import { lazy } from "../util/lazy" +import { lazy } from "../util/lazy.js" import { watch as watchFileSystem } from "node:fs" import path from "path" -import loadBinding from "./watcher-binding" +import loadBinding from "./watcher-binding.js" const SUBSCRIBE_TIMEOUT_MS = 10_000 export const Event = { Updated: FileSystem.Event.Changed } diff --git a/packages/core/src/form.ts b/packages/core/src/form.ts index 8200f1d243c..855ec3efa21 100644 --- a/packages/core/src/form.ts +++ b/packages/core/src/form.ts @@ -1,9 +1,9 @@ -export * as Form from "./form" +export * as Form from "./form.js" import { Form } from "@opencode-ai/schema/form" import { Cache, Context, Deferred, Duration, Effect, Exit, Layer, Option, Schema } from "effect" import { makeLocationNode } from "@opencode-ai/util/effect/app-node" -import { Bus } from "./bus" +import { Bus } from "./bus.js" const RETENTION = Duration.minutes(10) diff --git a/packages/core/src/formatter.ts b/packages/core/src/formatter.ts index 26f4ddd2612..371bf11e231 100644 --- a/packages/core/src/formatter.ts +++ b/packages/core/src/formatter.ts @@ -1,4 +1,4 @@ -export * as Formatter from "./formatter" +export * as Formatter from "./formatter.js" import { Context, Effect, Layer } from "effect" import { ChildProcess } from "effect/unstable/process" @@ -8,9 +8,9 @@ import { FSUtil } from "@opencode-ai/util/fs-util" import { Npm } from "@opencode-ai/util/npm" import { AppProcess } from "@opencode-ai/util/process" import { Global } from "@opencode-ai/util/global" -import { Config } from "./config" -import { Location } from "./location" -import { make, type Info } from "./formatter/builtins" +import { Config } from "./config.js" +import { Location } from "./location.js" +import { make, type Info } from "./formatter/builtins.js" export interface Interface { readonly file: (filepath: string) => Effect.Effect diff --git a/packages/core/src/formatter/builtins.ts b/packages/core/src/formatter/builtins.ts index 12c531e9617..5dca6bcc5a6 100644 --- a/packages/core/src/formatter/builtins.ts +++ b/packages/core/src/formatter/builtins.ts @@ -3,7 +3,7 @@ import { ChildProcess } from "effect/unstable/process" import { FSUtil } from "@opencode-ai/util/fs-util" import { Npm } from "@opencode-ai/util/npm" import { AppProcess } from "@opencode-ai/util/process" -import { which } from "../util/which" +import { which } from "../util/which.js" export interface Info { readonly name: string diff --git a/packages/core/src/generate.ts b/packages/core/src/generate.ts index e16f38cbde7..d14c2eb9529 100644 --- a/packages/core/src/generate.ts +++ b/packages/core/src/generate.ts @@ -1,11 +1,11 @@ -export * as Generate from "./generate" +export * as Generate from "./generate.js" import { LLM, LLMClient, AIError } from "@opencode-ai/ai" import { Context, Effect, Layer, Schema } from "effect" import { makeLocationNode } from "@opencode-ai/util/effect/app-node" -import { llmClient } from "./effect/app-node-platform" -import { ModelResolver } from "./model-resolver" -import { Model } from "./model" +import { llmClient } from "./effect/app-node-platform.js" +import { ModelResolver } from "./model-resolver.js" +import { Model } from "./model.js" export interface TextInput { readonly prompt: string diff --git a/packages/core/src/git.ts b/packages/core/src/git.ts index 696398d68f4..07fb81b6caf 100644 --- a/packages/core/src/git.ts +++ b/packages/core/src/git.ts @@ -1,14 +1,14 @@ -export * as Git from "./git" +export * as Git from "./git.js" import path from "path" import { Context, Effect, Layer, Schema } from "effect" import { ChildProcess } from "effect/unstable/process" -import { AbsolutePath, RelativePath } from "./schema" +import { AbsolutePath, RelativePath } from "./schema.js" import { FSUtil } from "@opencode-ai/util/fs-util" import { AppProcess } from "@opencode-ai/util/process" import { makeGlobalNode } from "@opencode-ai/util/effect/app-node" -import { File } from "./file" -import { KeyedMutex } from "./effect/keyed-mutex" +import { File } from "./file.js" +import { KeyedMutex } from "./effect/keyed-mutex.js" export class Repository extends Schema.Class("Git.Repository")({ worktree: AbsolutePath, diff --git a/packages/core/src/github-copilot/chat/convert-to-openai-compatible-chat-messages.ts b/packages/core/src/github-copilot/chat/convert-to-openai-compatible-chat-messages.ts index c4e15e0b4fb..d4b9c9bec3a 100644 --- a/packages/core/src/github-copilot/chat/convert-to-openai-compatible-chat-messages.ts +++ b/packages/core/src/github-copilot/chat/convert-to-openai-compatible-chat-messages.ts @@ -3,7 +3,7 @@ import { type SharedV3ProviderOptions, UnsupportedFunctionalityError, } from "@ai-sdk/provider" -import type { OpenAICompatibleChatPrompt } from "./openai-compatible-api-types" +import type { OpenAICompatibleChatPrompt } from "./openai-compatible-api-types.js" import { convertToBase64 } from "@ai-sdk/provider-utils" function getOpenAIMetadata(message: { providerOptions?: SharedV3ProviderOptions }) { diff --git a/packages/core/src/github-copilot/chat/openai-compatible-chat-language-model.ts b/packages/core/src/github-copilot/chat/openai-compatible-chat-language-model.ts index 280970c41b4..7e92197ad86 100644 --- a/packages/core/src/github-copilot/chat/openai-compatible-chat-language-model.ts +++ b/packages/core/src/github-copilot/chat/openai-compatible-chat-language-model.ts @@ -22,13 +22,13 @@ import { type ResponseHandler, } from "@ai-sdk/provider-utils" import { z } from "zod/v4" -import { convertToOpenAICompatibleChatMessages } from "./convert-to-openai-compatible-chat-messages" -import { getResponseMetadata } from "./get-response-metadata" -import { mapOpenAICompatibleFinishReason } from "./map-openai-compatible-finish-reason" -import { type OpenAICompatibleChatModelId, openaiCompatibleProviderOptions } from "./openai-compatible-chat-options" -import { defaultOpenAICompatibleErrorStructure, type ProviderErrorStructure } from "../openai-compatible-error" -import type { MetadataExtractor } from "./openai-compatible-metadata-extractor" -import { prepareTools } from "./openai-compatible-prepare-tools" +import { convertToOpenAICompatibleChatMessages } from "./convert-to-openai-compatible-chat-messages.js" +import { getResponseMetadata } from "./get-response-metadata.js" +import { mapOpenAICompatibleFinishReason } from "./map-openai-compatible-finish-reason.js" +import { type OpenAICompatibleChatModelId, openaiCompatibleProviderOptions } from "./openai-compatible-chat-options.js" +import { defaultOpenAICompatibleErrorStructure, type ProviderErrorStructure } from "../openai-compatible-error.js" +import type { MetadataExtractor } from "./openai-compatible-metadata-extractor.js" +import { prepareTools } from "./openai-compatible-prepare-tools.js" export type OpenAICompatibleChatConfig = { provider: string diff --git a/packages/core/src/github-copilot/copilot-provider.ts b/packages/core/src/github-copilot/copilot-provider.ts index b9cbb6c7ccb..1a88901d5b6 100644 --- a/packages/core/src/github-copilot/copilot-provider.ts +++ b/packages/core/src/github-copilot/copilot-provider.ts @@ -1,7 +1,7 @@ import type { LanguageModelV3 } from "@ai-sdk/provider" import { type FetchFunction, withoutTrailingSlash, withUserAgentSuffix } from "@ai-sdk/provider-utils" -import { OpenAICompatibleChatLanguageModel } from "./chat/openai-compatible-chat-language-model" -import { OpenAIResponsesLanguageModel } from "./responses/openai-responses-language-model" +import { OpenAICompatibleChatLanguageModel } from "./chat/openai-compatible-chat-language-model.js" +import { OpenAIResponsesLanguageModel } from "./responses/openai-responses-language-model.js" // Import the version or define it const VERSION = "0.1.0" diff --git a/packages/core/src/github-copilot/models.ts b/packages/core/src/github-copilot/models.ts index e401f20f4ef..5f811dc3619 100644 --- a/packages/core/src/github-copilot/models.ts +++ b/packages/core/src/github-copilot/models.ts @@ -1,9 +1,9 @@ -export * as CopilotModels from "./models" +export * as CopilotModels from "./models.js" import { Money } from "@opencode-ai/schema/money" import { Option, Schema } from "effect" -import { Model } from "../model" -import { Provider } from "../provider" +import { Model } from "../model.js" +import { Provider } from "../provider.js" const RemoteModel = Schema.Struct({ model_picker_enabled: Schema.Boolean, diff --git a/packages/core/src/github-copilot/responses/convert-to-openai-responses-input.ts b/packages/core/src/github-copilot/responses/convert-to-openai-responses-input.ts index e68c86e7653..bc8e3c65176 100644 --- a/packages/core/src/github-copilot/responses/convert-to-openai-responses-input.ts +++ b/packages/core/src/github-copilot/responses/convert-to-openai-responses-input.ts @@ -6,8 +6,8 @@ import { } from "@ai-sdk/provider" import { convertToBase64, parseProviderOptions } from "@ai-sdk/provider-utils" import { z } from "zod/v4" -import type { OpenAIResponsesInput, OpenAIResponsesReasoning } from "./openai-responses-api-types" -import { localShellInputSchema, localShellOutputSchema } from "./tool/local-shell" +import type { OpenAIResponsesInput, OpenAIResponsesReasoning } from "./openai-responses-api-types.js" +import { localShellInputSchema, localShellOutputSchema } from "./tool/local-shell.js" /** * Check if a string is a file ID based on the given prefixes diff --git a/packages/core/src/github-copilot/responses/openai-responses-language-model.ts b/packages/core/src/github-copilot/responses/openai-responses-language-model.ts index 2f1378ce8c8..11d05820bc0 100644 --- a/packages/core/src/github-copilot/responses/openai-responses-language-model.ts +++ b/packages/core/src/github-copilot/responses/openai-responses-language-model.ts @@ -19,17 +19,17 @@ import { postJsonToApi, } from "@ai-sdk/provider-utils" import { z } from "zod/v4" -import type { OpenAIConfig } from "./openai-config" -import { openaiFailedResponseHandler } from "./openai-error" -import { codeInterpreterInputSchema, codeInterpreterOutputSchema } from "./tool/code-interpreter" -import { fileSearchOutputSchema } from "./tool/file-search" -import { imageGenerationOutputSchema } from "./tool/image-generation" -import { convertToOpenAIResponsesInput } from "./convert-to-openai-responses-input" -import { mapOpenAIResponseFinishReason } from "./map-openai-responses-finish-reason" -import type { OpenAIResponsesIncludeOptions, OpenAIResponsesIncludeValue } from "./openai-responses-api-types" -import { prepareResponsesTools } from "./openai-responses-prepare-tools" -import type { OpenAIResponsesModelId } from "./openai-responses-settings" -import { localShellInputSchema } from "./tool/local-shell" +import type { OpenAIConfig } from "./openai-config.js" +import { openaiFailedResponseHandler } from "./openai-error.js" +import { codeInterpreterInputSchema, codeInterpreterOutputSchema } from "./tool/code-interpreter.js" +import { fileSearchOutputSchema } from "./tool/file-search.js" +import { imageGenerationOutputSchema } from "./tool/image-generation.js" +import { convertToOpenAIResponsesInput } from "./convert-to-openai-responses-input.js" +import { mapOpenAIResponseFinishReason } from "./map-openai-responses-finish-reason.js" +import type { OpenAIResponsesIncludeOptions, OpenAIResponsesIncludeValue } from "./openai-responses-api-types.js" +import { prepareResponsesTools } from "./openai-responses-prepare-tools.js" +import type { OpenAIResponsesModelId } from "./openai-responses-settings.js" +import { localShellInputSchema } from "./tool/local-shell.js" const webSearchCallItem = z.object({ type: z.literal("web_search_call"), diff --git a/packages/core/src/github-copilot/responses/openai-responses-prepare-tools.ts b/packages/core/src/github-copilot/responses/openai-responses-prepare-tools.ts index 8b2eb01673a..0ed1ea6b32d 100644 --- a/packages/core/src/github-copilot/responses/openai-responses-prepare-tools.ts +++ b/packages/core/src/github-copilot/responses/openai-responses-prepare-tools.ts @@ -1,10 +1,10 @@ import { type LanguageModelV3CallOptions, type SharedV3Warning, UnsupportedFunctionalityError } from "@ai-sdk/provider" -import { codeInterpreterArgsSchema } from "./tool/code-interpreter" -import { fileSearchArgsSchema } from "./tool/file-search" -import { webSearchArgsSchema } from "./tool/web-search" -import { webSearchPreviewArgsSchema } from "./tool/web-search-preview" -import { imageGenerationArgsSchema } from "./tool/image-generation" -import type { OpenAIResponsesTool } from "./openai-responses-api-types" +import { codeInterpreterArgsSchema } from "./tool/code-interpreter.js" +import { fileSearchArgsSchema } from "./tool/file-search.js" +import { webSearchArgsSchema } from "./tool/web-search.js" +import { webSearchPreviewArgsSchema } from "./tool/web-search-preview.js" +import { imageGenerationArgsSchema } from "./tool/image-generation.js" +import type { OpenAIResponsesTool } from "./openai-responses-api-types.js" export function prepareResponsesTools({ tools, diff --git a/packages/core/src/github-copilot/responses/tool/file-search.ts b/packages/core/src/github-copilot/responses/tool/file-search.ts index 12a490e19dd..b274bf1a63c 100644 --- a/packages/core/src/github-copilot/responses/tool/file-search.ts +++ b/packages/core/src/github-copilot/responses/tool/file-search.ts @@ -2,7 +2,7 @@ import { createProviderToolFactoryWithOutputSchema } from "@ai-sdk/provider-util import type { OpenAIResponsesFileSearchToolComparisonFilter, OpenAIResponsesFileSearchToolCompoundFilter, -} from "../openai-responses-api-types" +} from "../openai-responses-api-types.js" import { z } from "zod/v4" const comparisonFilterSchema = z.object({ diff --git a/packages/core/src/id/id.ts b/packages/core/src/id/id.ts index b4d6e496ea6..3b2695394ee 100644 --- a/packages/core/src/id/id.ts +++ b/packages/core/src/id/id.ts @@ -46,4 +46,4 @@ export function timestamp(id: string): number { return Number(encoded / BigInt(0x1000)) } -export * as Identifier from "./id" +export * as Identifier from "./id.js" diff --git a/packages/core/src/image.ts b/packages/core/src/image.ts index 961358810a3..afcbe00cdb6 100644 --- a/packages/core/src/image.ts +++ b/packages/core/src/image.ts @@ -1,9 +1,9 @@ -export * as Image from "./image" +export * as Image from "./image.js" import { makeLocationNode } from "@opencode-ai/util/effect/app-node" import { Context, Effect, Layer, Schema } from "effect" -import { Config } from "./config" -import { FileSystem } from "./filesystem" +import { Config } from "./config.js" +import { FileSystem } from "./filesystem.js" export class ResizerUnavailableError extends Schema.TaggedErrorClass()( "Image.ResizerUnavailableError", @@ -50,7 +50,7 @@ const layer = Layer.effect( const config = yield* Config.Service const loadAdapter = yield* Effect.cached( Effect.tryPromise({ - try: () => import("./image/photon"), + try: () => import("./image/photon.js"), catch: () => new ResizerUnavailableError(), }).pipe(Effect.flatMap((adapter) => adapter.make)), ) diff --git a/packages/core/src/image/photon.ts b/packages/core/src/image/photon.ts index 15902c7845c..877c3af6c18 100644 --- a/packages/core/src/image/photon.ts +++ b/packages/core/src/image/photon.ts @@ -2,8 +2,8 @@ import photonWasm from "#photon-wasm" import { Effect } from "effect" import path from "node:path" import { fileURLToPath } from "node:url" -import { FileSystem } from "../filesystem" -import { DecodeError, ResizerUnavailableError, SizeError } from "../image" +import { FileSystem } from "../filesystem.js" +import { DecodeError, ResizerUnavailableError, SizeError } from "../image.js" const JPEG_QUALITIES = [80, 85, 70, 55, 40] diff --git a/packages/core/src/instruction-discovery.ts b/packages/core/src/instruction-discovery.ts index b84de1e5547..357cb580f59 100644 --- a/packages/core/src/instruction-discovery.ts +++ b/packages/core/src/instruction-discovery.ts @@ -1,11 +1,11 @@ -export * as InstructionDiscovery from "./instruction-discovery" +export * as InstructionDiscovery from "./instruction-discovery.js" import { Context, Effect, Layer, Schema, Types } from "effect" import { makeLocationNode } from "@opencode-ai/util/effect/app-node" -import { Bus } from "./bus" -import { Instructions } from "./instructions/index" -import { AbsolutePath } from "./schema" -import { State } from "./state" +import { Bus } from "./bus.js" +import { Instructions } from "./instructions/index.js" +import { AbsolutePath } from "./schema.js" +import { State } from "./state.js" export class File extends Schema.Class("InstructionDiscovery.File")({ path: AbsolutePath, diff --git a/packages/core/src/instructions/builtins.ts b/packages/core/src/instructions/builtins.ts index fd42bcee160..f425e206911 100644 --- a/packages/core/src/instructions/builtins.ts +++ b/packages/core/src/instructions/builtins.ts @@ -1,11 +1,11 @@ -export * as InstructionBuiltIns from "./builtins" +export * as InstructionBuiltIns from "./builtins.js" import { makeLocationNode } from "@opencode-ai/util/effect/app-node" import { Context, DateTime, Effect, Layer, Schema } from "effect" import { Global } from "@opencode-ai/util/global" -import { Location } from "../location" -import { SessionSchema } from "../session/schema" -import { Instructions } from "./index" +import { Location } from "../location.js" +import { SessionSchema } from "../session/schema.js" +import { Instructions } from "./index.js" export interface Interface { readonly load: (sessionID: SessionSchema.ID) => Effect.Effect diff --git a/packages/core/src/instructions/index.ts b/packages/core/src/instructions/index.ts index 85bd2111123..e6fcb934399 100644 --- a/packages/core/src/instructions/index.ts +++ b/packages/core/src/instructions/index.ts @@ -1,4 +1,4 @@ -export * as Instructions from "./index" +export * as Instructions from "./index.js" import { createHash } from "crypto" import { Instruction } from "@opencode-ai/schema/instruction" diff --git a/packages/core/src/integration.ts b/packages/core/src/integration.ts index 8339e1f38fc..ef740a71c65 100644 --- a/packages/core/src/integration.ts +++ b/packages/core/src/integration.ts @@ -1,4 +1,4 @@ -export * as Integration from "./integration" +export * as Integration from "./integration.js" import { makeLocationNode } from "@opencode-ai/util/effect/app-node" import { @@ -18,13 +18,13 @@ import { Types, } from "effect" import { Integration } from "@opencode-ai/schema/integration" -import { Credential } from "./credential" -import { State } from "./state" -import { Bus } from "./bus" -import { IntegrationConnection } from "./integration/connection" +import { Credential } from "./credential.js" +import { State } from "./state.js" +import { Bus } from "./bus.js" +import { IntegrationConnection } from "./integration/connection.js" import { AppProcess } from "@opencode-ai/util/process" import { ChildProcess } from "effect/unstable/process" -import { Form } from "./form" +import { Form } from "./form.js" export const ID = Integration.ID export type ID = Integration.ID diff --git a/packages/core/src/integration/connection.ts b/packages/core/src/integration/connection.ts index 91ab7e9e404..cb7693a5492 100644 --- a/packages/core/src/integration/connection.ts +++ b/packages/core/src/integration/connection.ts @@ -1,4 +1,4 @@ -export * as IntegrationConnection from "./connection" +export * as IntegrationConnection from "./connection.js" import { Connection } from "@opencode-ai/schema/connection" diff --git a/packages/core/src/job.ts b/packages/core/src/job.ts index eb2efb2fd19..355937ba362 100644 --- a/packages/core/src/job.ts +++ b/packages/core/src/job.ts @@ -1,9 +1,9 @@ -export * as Job from "./job" +export * as Job from "./job.js" import { Cause, Clock, Context, Deferred, Effect, Exit, Layer, Scope, SynchronizedRef } from "effect" import { makeGlobalNode } from "@opencode-ai/util/effect/app-node" -import { Identifier } from "./id/id" -import { SessionSchema } from "./session/schema" +import { Identifier } from "./id/id.js" +import { SessionSchema } from "./session/schema.js" export type Status = "running" | "completed" | "error" | "cancelled" diff --git a/packages/core/src/kv.ts b/packages/core/src/kv.ts index 505beff7ec0..a07bbac1e22 100644 --- a/packages/core/src/kv.ts +++ b/packages/core/src/kv.ts @@ -1,10 +1,10 @@ -export * as KV from "./kv" +export * as KV from "./kv.js" import { eq } from "drizzle-orm" import { Context, Effect, Layer, Schema } from "effect" -import { Database } from "./database/database" +import { Database } from "./database/database.js" import { makeGlobalNode } from "@opencode-ai/util/effect/app-node" -import { KVTable } from "./kv/sql" +import { KVTable } from "./kv/sql.js" export type Value = Schema.Json diff --git a/packages/core/src/kv/sql.ts b/packages/core/src/kv/sql.ts index 2344c30c283..6e7efac9128 100644 --- a/packages/core/src/kv/sql.ts +++ b/packages/core/src/kv/sql.ts @@ -1,6 +1,6 @@ import { sqliteTable, text } from "drizzle-orm/sqlite-core" -import { Timestamps } from "../database/schema.sql" -import type { KV } from "../kv" +import { Timestamps } from "../database/schema.sql.js" +import type { KV } from "../kv.js" export const KVTable = sqliteTable("kv", { key: text().primaryKey(), diff --git a/packages/core/src/location-mutation.ts b/packages/core/src/location-mutation.ts index 6239dae2164..546e405700e 100644 --- a/packages/core/src/location-mutation.ts +++ b/packages/core/src/location-mutation.ts @@ -1,12 +1,12 @@ -export * as LocationMutation from "./location-mutation" +export * as LocationMutation from "./location-mutation.js" import { makeLocationNode } from "@opencode-ai/util/effect/app-node" import path from "path" import { Context, Effect, Layer, Schema } from "effect" import { FSUtil } from "@opencode-ai/util/fs-util" -import { Location } from "./location" -import { Project } from "./project" -import { AbsolutePath } from "./schema" +import { Location } from "./location.js" +import { Project } from "./project.js" +import { AbsolutePath } from "./schema.js" export const Kind = Schema.Literals(["file", "directory"]) export type Kind = typeof Kind.Type diff --git a/packages/core/src/location-service-map.ts b/packages/core/src/location-service-map.ts index c79837b04e2..21a33bdfb55 100644 --- a/packages/core/src/location-service-map.ts +++ b/packages/core/src/location-service-map.ts @@ -1,8 +1,8 @@ import { Context, Effect, Layer, LayerMap } from "effect" import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { Node } from "@opencode-ai/util/effect/app-node" -import { Location } from "./location" -import type { LocationError, LocationServices } from "./location-services" +import { Location } from "./location.js" +import type { LocationError, LocationServices } from "./location-services.js" export class Service extends Context.Service< Service, @@ -15,4 +15,4 @@ export class Service extends Context.Service< export const node = LayerNode.unbound(Service, Node.tags.values.global) -export * as LocationServiceMap from "./location-service-map" +export * as LocationServiceMap from "./location-service-map.js" diff --git a/packages/core/src/location-services.ts b/packages/core/src/location-services.ts index 53bdaf36338..e03c235301b 100644 --- a/packages/core/src/location-services.ts +++ b/packages/core/src/location-services.ts @@ -1,56 +1,56 @@ import { Effect, Layer, LayerMap } from "effect" -import { Agent } from "./agent" -import { AISDK } from "./aisdk" -import { Catalog } from "./catalog" -import { Command } from "./command" -import { Config } from "./config" +import { Agent } from "./agent.js" +import { AISDK } from "./aisdk.js" +import { Catalog } from "./catalog.js" +import { Command } from "./command.js" +import { Config } from "./config.js" import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { Node } from "@opencode-ai/util/effect/app-node" -import { Bus } from "./bus" -import { FileMutation } from "./file-mutation" -import { Environment } from "./environment" -import { Formatter } from "./formatter" -import { FileSystem } from "./filesystem" -import { FileSystemSearch } from "./filesystem/search" -import { Generate } from "./generate" -import { Form } from "./form" -import { Image } from "./image" -import { LocationWatcher } from "./filesystem/location-watcher" -import { Integration } from "./integration" -import { Location } from "./location" -import { LocationMutation } from "./location-mutation" -import { LocationServiceMap } from "./location-service-map" -import { ModelResolver } from "./model-resolver" -import { MCP } from "./mcp/index" -import { Permission } from "./permission" -import { Plugin } from "./plugin" -import { PluginSupervisor } from "./plugin/supervisor" -import { ProjectCopy } from "./project/copy" -import { Pty } from "./pty" -import { Question } from "./question" -import { Shell } from "./shell" -import { Reference } from "./reference" -import { WebSearch } from "./websearch" -import { ReferenceInstructions } from "./reference/instructions" -import { SessionRunnerLLM } from "./session/runner/llm" -import { SessionRunnerModel } from "./session/runner/model" -import { SessionCompaction } from "./session/compaction" -import { SessionTitle } from "./session/title" -import { Skill } from "./skill" -import { SkillInstructions } from "./skill/instructions" -import { Snapshot } from "./snapshot" -import { InstructionDiscovery } from "./instruction-discovery" -import { InstructionBuiltIns } from "./instructions/builtins" -import { InstructionEntry } from "./session/instruction-entry" -import { SessionInstructions } from "./session/instructions" -import { SessionGenerateNode } from "./session/generate-node" -import { McpTool } from "./tool/mcp" -import { ReadToolFileSystem } from "./tool/read-filesystem" -import { Tool } from "./tool" -import { ToolOutput } from "./tool-output" -import { Vcs } from "./vcs" +import { Bus } from "./bus.js" +import { FileMutation } from "./file-mutation.js" +import { Environment } from "./environment/index.js" +import { Formatter } from "./formatter.js" +import { FileSystem } from "./filesystem.js" +import { FileSystemSearch } from "./filesystem/search.js" +import { Generate } from "./generate.js" +import { Form } from "./form.js" +import { Image } from "./image.js" +import { LocationWatcher } from "./filesystem/location-watcher.js" +import { Integration } from "./integration.js" +import { Location } from "./location.js" +import { LocationMutation } from "./location-mutation.js" +import { LocationServiceMap } from "./location-service-map.js" +import { ModelResolver } from "./model-resolver.js" +import { MCP } from "./mcp/index.js" +import { Permission } from "./permission.js" +import { Plugin } from "./plugin.js" +import { PluginSupervisor } from "./plugin/supervisor.js" +import { ProjectCopy } from "./project/copy.js" +import { Pty } from "./pty.js" +import { Question } from "./question.js" +import { Shell } from "./shell.js" +import { Reference } from "./reference.js" +import { WebSearch } from "./websearch.js" +import { ReferenceInstructions } from "./reference/instructions.js" +import { SessionRunnerLLM } from "./session/runner/llm.js" +import { SessionRunnerModel } from "./session/runner/model.js" +import { SessionCompaction } from "./session/compaction.js" +import { SessionTitle } from "./session/title.js" +import { Skill } from "./skill.js" +import { SkillInstructions } from "./skill/instructions.js" +import { Snapshot } from "./snapshot.js" +import { InstructionDiscovery } from "./instruction-discovery.js" +import { InstructionBuiltIns } from "./instructions/builtins.js" +import { InstructionEntry } from "./session/instruction-entry.js" +import { SessionInstructions } from "./session/instructions.js" +import { SessionGenerateNode } from "./session/generate-node.js" +import { McpTool } from "./tool/mcp.js" +import { ReadToolFileSystem } from "./tool/read-filesystem.js" +import { Tool } from "./tool.js" +import { ToolOutput } from "./tool-output.js" +import { Vcs } from "./vcs.js" -export { LocationServiceMap } from "./location-service-map" +export { LocationServiceMap } from "./location-service-map.js" const locationServiceNodes = [ Location.node, diff --git a/packages/core/src/location.ts b/packages/core/src/location.ts index ac27cb6ca9e..459435c70c3 100644 --- a/packages/core/src/location.ts +++ b/packages/core/src/location.ts @@ -1,10 +1,10 @@ import { Context, Effect, Layer } from "effect" import { Info, Ref, response } from "@opencode-ai/schema/location" -import { Project } from "./project" +import { Project } from "./project.js" import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { makeLocationNode, tags } from "@opencode-ai/util/effect/app-node" -export * as Location from "./location" +export * as Location from "./location.js" export { Info, Ref, response } diff --git a/packages/core/src/mcp/client.ts b/packages/core/src/mcp/client.ts index 9c79b4abfc0..49a9e0fc210 100644 --- a/packages/core/src/mcp/client.ts +++ b/packages/core/src/mcp/client.ts @@ -1,4 +1,4 @@ -export * as MCPClient from "./client" +export * as MCPClient from "./client.js" import path from "node:path" import { execFile } from "node:child_process" diff --git a/packages/core/src/mcp/index.ts b/packages/core/src/mcp/index.ts index cbcd312b8c9..c1020cbff41 100644 --- a/packages/core/src/mcp/index.ts +++ b/packages/core/src/mcp/index.ts @@ -1,4 +1,4 @@ -export * as MCP from "./index" +export * as MCP from "./index.js" import { Mcp } from "@opencode-ai/schema/mcp" import { McpEvent } from "@opencode-ai/schema/mcp-event" @@ -9,17 +9,17 @@ import { createHash } from "node:crypto" import { isDeepStrictEqual } from "node:util" import { Cause, Context, Deferred, Effect, Exit, FiberSet, Layer, Schema, Scope, Semaphore, Stream } from "effect" import { makeLocationNode } from "@opencode-ai/util/effect/app-node" -import { Config } from "../config" -import { Credential } from "../credential" -import { Bus } from "../bus" -import { Form } from "../form" -import { Integration } from "../integration" -import { KeyedMutex } from "../effect/keyed-mutex" -import { Location } from "../location" +import { Config } from "../config.js" +import { Credential } from "../credential.js" +import { Bus } from "../bus.js" +import { Form } from "../form.js" +import { Integration } from "../integration.js" +import { KeyedMutex } from "../effect/keyed-mutex.js" +import { Location } from "../location.js" import { waitForAbort } from "@opencode-ai/util/process" -import { State } from "../state" -import { MCPClient } from "./client" -import { MCPOAuth } from "./oauth" +import { State } from "../state.js" +import { MCPClient } from "./client.js" +import { MCPOAuth } from "./oauth.js" export const ServerName = Schema.String.pipe(Schema.brand("MCP.ServerName")) export type ServerName = typeof ServerName.Type diff --git a/packages/core/src/mcp/instructions.ts b/packages/core/src/mcp/instructions.ts index 474a99dc5ed..66b9fffe184 100644 --- a/packages/core/src/mcp/instructions.ts +++ b/packages/core/src/mcp/instructions.ts @@ -1,12 +1,12 @@ -export * as McpInstructions from "./instructions" +export * as McpInstructions from "./instructions.js" import { makeLocationNode } from "@opencode-ai/util/effect/app-node" import { Context, Effect, Layer, Schema } from "effect" -import { Agent } from "../agent" -import { Permission } from "../permission" -import { McpTool } from "../tool/mcp" -import { MCP } from "./index" -import { Instructions } from "../instructions/index" +import { Agent } from "../agent.js" +import { Permission } from "../permission.js" +import { McpTool } from "../tool/mcp.js" +import { MCP } from "./index.js" +import { Instructions } from "../instructions/index.js" const Summary = Schema.Struct({ server: Schema.String, diff --git a/packages/core/src/mcp/oauth.ts b/packages/core/src/mcp/oauth.ts index a7164026dbd..1fda70dbd61 100644 --- a/packages/core/src/mcp/oauth.ts +++ b/packages/core/src/mcp/oauth.ts @@ -1,4 +1,4 @@ -export * as MCPOAuth from "./oauth" +export * as MCPOAuth from "./oauth.js" import { auth, type OAuthClientProvider } from "@modelcontextprotocol/sdk/client/auth.js" import type { OAuthClientInformationMixed, OAuthTokens } from "@modelcontextprotocol/sdk/shared/auth.js" @@ -6,8 +6,8 @@ import { createServer } from "node:http" import { Deferred, Effect } from "effect" import { Credential } from "@opencode-ai/schema/credential" import { ConfigMCP } from "@opencode-ai/schema/config/mcp" -import { OauthCallbackPage } from "../oauth/page" -import type { Integration } from "../integration" +import { OauthCallbackPage } from "../oauth/page.js" +import type { Integration } from "../integration.js" /** Persists the OAuth artifacts for one MCP server session: DCR client info, PKCE verifier, and tokens. */ export interface Store { diff --git a/packages/core/src/model-resolver.ts b/packages/core/src/model-resolver.ts index 87c0b851736..4c2e93ac490 100644 --- a/packages/core/src/model-resolver.ts +++ b/packages/core/src/model-resolver.ts @@ -1,4 +1,4 @@ -export * as ModelResolver from "./model-resolver" +export * as ModelResolver from "./model-resolver.js" import { makeLocationNode } from "@opencode-ai/util/effect/app-node" import { LanguageModel } from "@opencode-ai/ai" @@ -11,14 +11,14 @@ import * as OpenAIResponses from "@opencode-ai/ai/protocols/openai-responses" import { Auth, type AnyRoute } from "@opencode-ai/ai/route" import { Context, Effect, Layer, Schema } from "effect" import { produce } from "immer" -import { AISDK } from "./aisdk" -import { AISDKNative } from "./aisdk-native" -import { Catalog } from "./catalog" -import { Credential } from "./credential" -import { Integration } from "./integration" -import { Capabilities, ID, Info, Ref, VariantID } from "./model" +import { AISDK } from "./aisdk.js" +import { AISDKNative } from "./aisdk-native.js" +import { Catalog } from "./catalog.js" +import { Credential } from "./credential.js" +import { Integration } from "./integration.js" +import { Capabilities, ID, Info, Ref, VariantID } from "./model.js" import { Npm } from "@opencode-ai/util/npm" -import { Provider } from "./provider" +import { Provider } from "./provider.js" export class VariantUnavailableError extends Schema.TaggedErrorClass()( "SessionRunnerModel.VariantUnavailableError", diff --git a/packages/core/src/model.ts b/packages/core/src/model.ts index 36c0be16019..21bf996a1be 100644 --- a/packages/core/src/model.ts +++ b/packages/core/src/model.ts @@ -1,6 +1,6 @@ import { Model } from "@opencode-ai/schema/model" -import { Provider } from "./provider" -import type { DeepMutable } from "./schema" +import { Provider } from "./provider.js" +import type { DeepMutable } from "./schema.js" export const ID = Model.ID export type ID = typeof ID.Type @@ -45,4 +45,4 @@ export function parse(input: string): { providerID: Provider.ID; modelID: ID } { } } -export * as Model from "./model" +export * as Model from "./model.js" diff --git a/packages/core/src/models-dev.ts b/packages/core/src/models-dev.ts index 3e197b90e10..b03b4ff7bc2 100644 --- a/packages/core/src/models-dev.ts +++ b/packages/core/src/models-dev.ts @@ -2,15 +2,15 @@ import { Cause, Context, Duration, Effect, Layer, Option, Schedule, Schema, Sema import { HttpClient, HttpClientRequest } from "effect/unstable/http" import { ModelsDev } from "@opencode-ai/schema/models-dev" import { Money } from "@opencode-ai/schema/money" -import { App } from "./app" +import { App } from "./app.js" import { Hash } from "@opencode-ai/util/hash" import { FSUtil } from "@opencode-ai/util/fs-util" -import { Bus } from "./bus" +import { Bus } from "./bus.js" import { makeGlobalNode } from "@opencode-ai/util/effect/app-node" import { httpClient } from "@opencode-ai/util/effect/app-node-platform" -import { Model } from "./model" -import { Provider } from "./provider" -import { KV } from "./kv" +import { Model } from "./model.js" +import { Provider } from "./provider.js" +import { KV } from "./kv.js" export const CatalogModelStatus = Schema.Literals(["alpha", "beta", "deprecated"]) export type CatalogModelStatus = typeof CatalogModelStatus.Type @@ -682,4 +682,4 @@ export function configured(options?: Options) { export const node = configured() -export * as ModelsDev from "./models-dev" +export * as ModelsDev from "./models-dev.js" diff --git a/packages/core/src/oauth/page.ts b/packages/core/src/oauth/page.ts index 5d3e29f67bd..accead62166 100644 --- a/packages/core/src/oauth/page.ts +++ b/packages/core/src/oauth/page.ts @@ -73,7 +73,7 @@ export function bootstrap(options: BootstrapOptions) { }) } -export * as OauthCallbackPage from "./page" +export * as OauthCallbackPage from "./page.js" type Status = "pending" | "success" | "error" diff --git a/packages/core/src/permission.ts b/packages/core/src/permission.ts index 457c7ef7d61..22e8d6e395a 100644 --- a/packages/core/src/permission.ts +++ b/packages/core/src/permission.ts @@ -1,16 +1,16 @@ -export * as Permission from "./permission" +export * as Permission from "./permission.js" import { makeLocationNode } from "@opencode-ai/util/effect/app-node" import { Context, Deferred, Effect, Layer, Schema } from "effect" import { Permission } from "@opencode-ai/schema/permission" -import { Bus } from "./bus" -import { Location } from "./location" -import { Agent } from "./agent" -import { SessionErrors } from "./session/error" -import { SessionSchema } from "./session/schema" -import { SessionStore } from "./session/store" -import { Wildcard } from "./util/wildcard" -import { PermissionSaved } from "./permission/saved" +import { Bus } from "./bus.js" +import { Location } from "./location.js" +import { Agent } from "./agent.js" +import { SessionErrors } from "./session/error.js" +import { SessionSchema } from "./session/schema.js" +import { SessionStore } from "./session/store.js" +import { Wildcard } from "./util/wildcard.js" +import { PermissionSaved } from "./permission/saved.js" const PermissionEffect = Permission.Effect export { PermissionEffect as Effect } diff --git a/packages/core/src/permission/saved.ts b/packages/core/src/permission/saved.ts index 06c4aa304f0..c4be6a3de14 100644 --- a/packages/core/src/permission/saved.ts +++ b/packages/core/src/permission/saved.ts @@ -1,11 +1,11 @@ -export * as PermissionSaved from "./saved" +export * as PermissionSaved from "./saved.js" import { eq } from "drizzle-orm" import { Context, Effect, Layer, Schema } from "effect" -import { Database } from "../database/database" +import { Database } from "../database/database.js" import { makeGlobalNode } from "@opencode-ai/util/effect/app-node" -import { Project } from "../project" -import { PermissionTable } from "./sql" +import { Project } from "../project.js" +import { PermissionTable } from "./sql.js" import { PermissionSaved } from "@opencode-ai/schema/permission-saved" export const ID = PermissionSaved.ID diff --git a/packages/core/src/permission/sql.ts b/packages/core/src/permission/sql.ts index d5deea9d5b0..e6fa993426f 100644 --- a/packages/core/src/permission/sql.ts +++ b/packages/core/src/permission/sql.ts @@ -1,8 +1,8 @@ import { sqliteTable, text, uniqueIndex } from "drizzle-orm/sqlite-core" -import { Timestamps } from "../database/schema.sql" -import { Project } from "../project" -import { ProjectTable } from "../project/sql" -import type { PermissionSaved } from "./saved" +import { Timestamps } from "../database/schema.sql.js" +import { Project } from "../project.js" +import { ProjectTable } from "../project/sql.js" +import type { PermissionSaved } from "./saved.js" export const PermissionTable = sqliteTable( "permission", diff --git a/packages/core/src/plugin.ts b/packages/core/src/plugin.ts index 68f64e52ee1..031fe112a8e 100644 --- a/packages/core/src/plugin.ts +++ b/packages/core/src/plugin.ts @@ -1,25 +1,25 @@ -export * as Plugin from "./plugin" +export * as Plugin from "./plugin.js" export { Event, ID, Info } from "@opencode-ai/schema/plugin" import { Plugin } from "@opencode-ai/schema/plugin" import { makeLocationNode } from "@opencode-ai/util/effect/app-node" -import { App } from "./app" +import { App } from "./app.js" import { Context, Effect, Exit, Layer, Logger, References, Scope, Semaphore } from "effect" -import { Agent } from "./agent" -import { AISDK } from "./aisdk" -import { Catalog } from "./catalog" -import { Command } from "./command" -import { Bus } from "./bus" -import { Integration } from "./integration" -import { Location } from "./location" -import { PluginHost } from "./plugin/host" -import { PluginRuntime } from "./plugin/runtime" -import { WebSearch } from "./websearch" -import { Reference } from "./reference" -import { Skill } from "./skill" -import { State } from "./state" -import { Tool } from "./tool" -import { PluginHooks } from "./plugin/hooks" +import { Agent } from "./agent.js" +import { AISDK } from "./aisdk.js" +import { Catalog } from "./catalog.js" +import { Command } from "./command.js" +import { Bus } from "./bus.js" +import { Integration } from "./integration.js" +import { Location } from "./location.js" +import { PluginHost } from "./plugin/host.js" +import { PluginRuntime } from "./plugin/runtime.js" +import { WebSearch } from "./websearch.js" +import { Reference } from "./reference.js" +import { Skill } from "./skill.js" +import { State } from "./state.js" +import { Tool } from "./tool.js" +import { PluginHooks } from "./plugin/hooks.js" export interface Interface { readonly activate: (plugins: readonly Versioned[]) => Effect.Effect diff --git a/packages/core/src/plugin/agent.ts b/packages/core/src/plugin/agent.ts index 0e7964b51c9..5d0246742d7 100644 --- a/packages/core/src/plugin/agent.ts +++ b/packages/core/src/plugin/agent.ts @@ -1,9 +1,9 @@ -export * as AgentPlugin from "./agent" +export * as AgentPlugin from "./agent.js" import { define } from "@opencode-ai/plugin/effect/plugin" import { Effect } from "effect" -import { Agent } from "../agent" -import { Permission } from "../permission" +import { Agent } from "../agent.js" +import { Permission } from "../permission.js" const PROMPT_EXPLORE = `You are a file search specialist. You excel at thoroughly navigating and exploring codebases. diff --git a/packages/core/src/plugin/command.ts b/packages/core/src/plugin/command.ts index 676d88c0c44..87d4ec8e2eb 100644 --- a/packages/core/src/plugin/command.ts +++ b/packages/core/src/plugin/command.ts @@ -1,8 +1,8 @@ -export * as CommandPlugin from "./command" +export * as CommandPlugin from "./command.js" import { define } from "@opencode-ai/plugin/effect/plugin" import { Effect } from "effect" -import { Location } from "../location" +import { Location } from "../location.js" import PROMPT_INITIALIZE from "./command/initialize.txt" import PROMPT_REVIEW from "./command/review.txt" diff --git a/packages/core/src/plugin/hooks.ts b/packages/core/src/plugin/hooks.ts index 166b1414113..5c1f6091a34 100644 --- a/packages/core/src/plugin/hooks.ts +++ b/packages/core/src/plugin/hooks.ts @@ -1,4 +1,4 @@ -export * as PluginHooks from "./hooks" +export * as PluginHooks from "./hooks.js" import type { AISDKHooks } from "@opencode-ai/plugin/effect/aisdk" import type { SessionHooks } from "@opencode-ai/plugin/effect/session" @@ -6,7 +6,7 @@ import type { ShellHooks } from "@opencode-ai/plugin/effect/shell" import type { ToolFailures, ToolHooks } from "@opencode-ai/plugin/effect/tool" import { Context, Effect, Layer, Scope } from "effect" import { makeLocationNode } from "@opencode-ai/util/effect/app-node" -import { State } from "../state" +import { State } from "../state.js" export interface Domains { readonly aisdk: AISDKHooks diff --git a/packages/core/src/plugin/host.ts b/packages/core/src/plugin/host.ts index faee955c662..28062b5b669 100644 --- a/packages/core/src/plugin/host.ts +++ b/packages/core/src/plugin/host.ts @@ -1,32 +1,32 @@ -export * as PluginHost from "./host" +export * as PluginHost from "./host.js" import { Plugin } from "@opencode-ai/plugin/effect" import type { IntegrationMethodRegistration } from "@opencode-ai/plugin/effect/integration" import type { CredentialOAuth } from "@opencode-ai/sdk/v2/types" import { EventManifest } from "@opencode-ai/schema/event-manifest" -import { App } from "../app" +import { App } from "../app.js" import { Effect, Schema, Stream } from "effect" -import { Agent } from "../agent" -import { AISDK } from "../aisdk" -import { Catalog } from "../catalog" -import { Command } from "../command" -import { Credential } from "../credential" -import { Bus } from "../bus" -import { Integration } from "../integration" -import { Location } from "../location" -import { Model } from "../model" -import { PluginRuntime } from "./runtime" -import { Provider } from "../provider" -import { Reference } from "../reference" -import { AbsolutePath, type DeepMutable } from "../schema" -import { Skill } from "../skill" -import { Tool } from "../tool" -import { Workspace } from "../workspace" -import { WebSearch } from "../websearch" -import { PluginHooks } from "./hooks" +import { Agent } from "../agent.js" +import { AISDK } from "../aisdk.js" +import { Catalog } from "../catalog.js" +import { Command } from "../command.js" +import { Credential } from "../credential.js" +import { Bus } from "../bus.js" +import { Integration } from "../integration.js" +import { Location } from "../location.js" +import { Model } from "../model.js" +import { PluginRuntime } from "./runtime.js" +import { Provider } from "../provider.js" +import { Reference } from "../reference.js" +import { AbsolutePath, type DeepMutable } from "../schema.js" +import { Skill } from "../skill.js" +import { Tool } from "../tool.js" +import { Workspace } from "../workspace.js" +import { WebSearch } from "../websearch.js" +import { PluginHooks } from "./hooks.js" const mutable = (value: T) => value as DeepMutable -export const make = Effect.fn("PluginHost.make")(function* (plugin: import("../plugin").Interface) { +export const make = Effect.fn("PluginHost.make")(function* (plugin: import("../plugin.js").Interface) { const app = yield* App.Metadata const agents = yield* Agent.Service const aisdk = yield* AISDK.Service diff --git a/packages/core/src/plugin/internal.ts b/packages/core/src/plugin/internal.ts index d65321b0bd8..be038529b86 100644 --- a/packages/core/src/plugin/internal.ts +++ b/packages/core/src/plugin/internal.ts @@ -1,76 +1,76 @@ -export * as PluginInternal from "./internal" +export * as PluginInternal from "./internal.js" import type { Plugin } from "@opencode-ai/plugin/effect/plugin" import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { httpClient } from "@opencode-ai/util/effect/app-node-platform" import { Context, Effect, Scope } from "effect" import { HttpClient } from "effect/unstable/http" -import { Agent } from "../agent" -import { Catalog } from "../catalog" -import { Command } from "../command" -import { Config } from "../config" -import { Credential } from "../credential" -import { ConfigAgentPlugin } from "../config/plugin/agent" -import { ConfigCommandPlugin } from "../config/plugin/command" -import { ConfigInstructionPlugin } from "../config/plugin/instruction" -import { ConfigProviderPlugin } from "../config/plugin/provider" -import { ConfigPolicyPlugin } from "../config/plugin/policy" -import { ConfigReferencePlugin } from "../config/plugin/reference" -import { ConfigSkillPlugin } from "../config/plugin/skill" -import { ConfigPluginSource } from "../config/plugin/source" -import { ConfigWebSearchPlugin } from "../config/plugin/websearch" -import { Bus } from "../bus" -import { Environment } from "../environment" -import { FileMutation } from "../file-mutation" -import { Formatter } from "../formatter" -import { Form } from "../form" -import { FileSystem } from "../filesystem" +import { Agent } from "../agent.js" +import { Catalog } from "../catalog.js" +import { Command } from "../command.js" +import { Config } from "../config.js" +import { Credential } from "../credential.js" +import { ConfigAgentPlugin } from "../config/plugin/agent.js" +import { ConfigCommandPlugin } from "../config/plugin/command.js" +import { ConfigInstructionPlugin } from "../config/plugin/instruction.js" +import { ConfigProviderPlugin } from "../config/plugin/provider.js" +import { ConfigPolicyPlugin } from "../config/plugin/policy.js" +import { ConfigReferencePlugin } from "../config/plugin/reference.js" +import { ConfigSkillPlugin } from "../config/plugin/skill.js" +import { ConfigPluginSource } from "../config/plugin/source.js" +import { ConfigWebSearchPlugin } from "../config/plugin/websearch.js" +import { Bus } from "../bus.js" +import { Environment } from "../environment/index.js" +import { FileMutation } from "../file-mutation.js" +import { Formatter } from "../formatter.js" +import { Form } from "../form.js" +import { FileSystem } from "../filesystem.js" import { FSUtil } from "@opencode-ai/util/fs-util" import { Global } from "@opencode-ai/util/global" -import { Image } from "../image" -import { InstructionDiscovery } from "../instruction-discovery" -import { Integration } from "../integration" -import { KV } from "../kv" -import { Location } from "../location" -import { LocationMutation } from "../location-mutation" -import { ModelsDev } from "../models-dev" +import { Image } from "../image.js" +import { InstructionDiscovery } from "../instruction-discovery.js" +import { Integration } from "../integration.js" +import { KV } from "../kv.js" +import { Location } from "../location.js" +import { LocationMutation } from "../location-mutation.js" +import { ModelsDev } from "../models-dev.js" import { Npm } from "@opencode-ai/util/npm" -import { Permission } from "../permission" -import { Reference } from "../reference" -import { WebSearch } from "../websearch" -import { Ripgrep } from "../ripgrep" -import { SessionInstructions } from "../session/instructions" -import { Shell } from "../shell" -import { Skill } from "../skill" -import { SkillDiscovery } from "../skill/discovery" -import { Watcher } from "../filesystem/watcher" -import { PatchTool } from "../tool/plugin/patch" -import { EditTool } from "../tool/plugin/edit" -import { GlobTool } from "../tool/plugin/glob" -import { GrepTool } from "../tool/plugin/grep" -import { QuestionTool } from "../tool/plugin/question" -import { ReadToolFileSystem } from "../tool/read-filesystem" -import { ReadTool } from "../tool/plugin/read" -import { ShellTool } from "../tool/plugin/shell" -import { SkillTool } from "../tool/plugin/skill" -import { SubagentTool } from "../tool/plugin/subagent" -import { Tool } from "../tool" -import { WebFetchTool } from "../tool/plugin/webfetch" -import { WebSearchTool } from "../tool/plugin/websearch" -import { WellKnown } from "../wellknown" -import { WriteTool } from "../tool/plugin/write" -import { AgentPlugin } from "./agent" -import { CommandPlugin } from "./command" -import { PlanPlugin } from "./plan" -import { ModelsDevPlugin } from "./models-dev" -import { ProviderPlugins } from "./provider" -import { WebSearchPlugins } from "./websearch" -import { PluginRuntime } from "./runtime" -import { SkillPlugin } from "./skill" -import { SystemPromptPlugin } from "./system-prompt" -import { VariantPlugin } from "./variant" -import { WarmingPlugin } from "./warming" -import { WellKnownPlugin } from "../wellknown/plugin" +import { Permission } from "../permission.js" +import { Reference } from "../reference.js" +import { WebSearch } from "../websearch.js" +import { Ripgrep } from "../ripgrep.js" +import { SessionInstructions } from "../session/instructions.js" +import { Shell } from "../shell.js" +import { Skill } from "../skill.js" +import { SkillDiscovery } from "../skill/discovery.js" +import { Watcher } from "../filesystem/watcher.js" +import { PatchTool } from "../tool/plugin/patch.js" +import { EditTool } from "../tool/plugin/edit.js" +import { GlobTool } from "../tool/plugin/glob.js" +import { GrepTool } from "../tool/plugin/grep.js" +import { QuestionTool } from "../tool/plugin/question.js" +import { ReadToolFileSystem } from "../tool/read-filesystem.js" +import { ReadTool } from "../tool/plugin/read.js" +import { ShellTool } from "../tool/plugin/shell.js" +import { SkillTool } from "../tool/plugin/skill.js" +import { SubagentTool } from "../tool/plugin/subagent.js" +import { Tool } from "../tool.js" +import { WebFetchTool } from "../tool/plugin/webfetch.js" +import { WebSearchTool } from "../tool/plugin/websearch.js" +import { WellKnown } from "../wellknown.js" +import { WriteTool } from "../tool/plugin/write.js" +import { AgentPlugin } from "./agent.js" +import { CommandPlugin } from "./command.js" +import { PlanPlugin } from "./plan.js" +import { ModelsDevPlugin } from "./models-dev.js" +import { ProviderPlugins } from "./provider.js" +import { WebSearchPlugins } from "./websearch/index.js" +import { PluginRuntime } from "./runtime.js" +import { SkillPlugin } from "./skill.js" +import { SystemPromptPlugin } from "./system-prompt.js" +import { VariantPlugin } from "./variant.js" +import { WarmingPlugin } from "./warming.js" +import { WellKnownPlugin } from "../wellknown/plugin.js" const services = Effect.fn("PluginInternal.services")(function* () { const agent = yield* Agent.Service diff --git a/packages/core/src/plugin/models-dev.ts b/packages/core/src/plugin/models-dev.ts index d557c0a4893..da141bfa60c 100644 --- a/packages/core/src/plugin/models-dev.ts +++ b/packages/core/src/plugin/models-dev.ts @@ -1,9 +1,9 @@ import { define } from "@opencode-ai/plugin/effect/plugin" import { Integration } from "@opencode-ai/schema/integration" import { Effect, Stream } from "effect" -import { Bus } from "../bus" -import { ModelsDev } from "../models-dev" -import { Provider } from "../provider" +import { Bus } from "../bus.js" +import { ModelsDev } from "../models-dev.js" +import { Provider } from "../provider.js" export const ModelsDevPlugin = define({ id: "opencode.models-dev", diff --git a/packages/core/src/plugin/plan.ts b/packages/core/src/plugin/plan.ts index e1df92c37fe..1c5efeaedfd 100644 --- a/packages/core/src/plugin/plan.ts +++ b/packages/core/src/plugin/plan.ts @@ -1,10 +1,10 @@ -export * as PlanPlugin from "./plan" +export * as PlanPlugin from "./plan.js" import { ToolFailure } from "@opencode-ai/ai" import { define } from "@opencode-ai/plugin/effect/plugin" import { Effect, Stream } from "effect" -import { Agent } from "../agent" -import { SessionEvent } from "../session/event" +import { Agent } from "../agent.js" +import { SessionEvent } from "../session/event.js" const plan = Agent.ID.make("plan") diff --git a/packages/core/src/plugin/promise.ts b/packages/core/src/plugin/promise.ts index d256fb89645..805d620f6d4 100644 --- a/packages/core/src/plugin/promise.ts +++ b/packages/core/src/plugin/promise.ts @@ -1,4 +1,4 @@ -export * as PluginPromise from "./promise" +export * as PluginPromise from "./promise.js" import { define } from "@opencode-ai/plugin/effect/plugin" import type { Context, Plugin } from "@opencode-ai/plugin/promise/plugin" @@ -15,7 +15,7 @@ import { Skill } from "@opencode-ai/schema/skill" import { Workspace } from "@opencode-ai/schema/workspace" import { WebSearch } from "@opencode-ai/schema/websearch" import { DateTime, Effect, Scope, Stream } from "effect" -import { Tool } from "../tool" +import { Tool } from "../tool.js" type HostRegistration = { readonly dispose: Effect.Effect } type Registration = { readonly dispose: () => Promise } diff --git a/packages/core/src/plugin/provider.ts b/packages/core/src/plugin/provider.ts index 3fd0f0de25b..6025e70ac8a 100644 --- a/packages/core/src/plugin/provider.ts +++ b/packages/core/src/plugin/provider.ts @@ -1,35 +1,35 @@ -import { AlibabaPlugin } from "./provider/alibaba" -import { AmazonBedrockPlugin } from "./provider/amazon-bedrock" -import { AnthropicPlugin } from "./provider/anthropic" -import { AzurePlugin } from "./provider/azure" -import { CerebrasPlugin } from "./provider/cerebras" -import { CloudflareAIGatewayPlugin } from "./provider/cloudflare-ai-gateway" -import { CloudflareWorkersAIPlugin } from "./provider/cloudflare-workers-ai" -import { CoherePlugin } from "./provider/cohere" -import { DeepInfraPlugin } from "./provider/deepinfra" -import { DynamicProviderPlugin } from "./provider/dynamic" -import { GatewayPlugin } from "./provider/gateway" -import { GithubCopilotPlugin } from "./provider/github-copilot" -import { GitLabPlugin } from "./provider/gitlab" -import { GoogleVertexPlugin } from "./provider/google-vertex" -import { GroqPlugin } from "./provider/groq" -import { KiloPlugin } from "./provider/kilo" -import { LLMGatewayPlugin } from "./provider/llmgateway" -import { MistralPlugin } from "./provider/mistral" -import { NvidiaPlugin } from "./provider/nvidia" -import { OpenAIPlugin } from "./provider/openai" -import { SnowflakeCortexPlugin } from "./provider/snowflake-cortex" -import { OpenAICompatiblePlugin } from "./provider/openai-compatible" -import { OpencodePlugin } from "./provider/opencode" -import { OpenRouterPlugin } from "./provider/openrouter" -import { PerplexityPlugin } from "./provider/perplexity" -import { SapAICorePlugin } from "./provider/sap-ai-core" -import { TogetherAIPlugin } from "./provider/togetherai" -import { VercelPlugin } from "./provider/vercel" -import { VenicePlugin } from "./provider/venice" -import { XAIPlugin } from "./provider/xai" -import { ZenmuxPlugin } from "./provider/zenmux" -import type { PluginInternal } from "./internal" +import { AlibabaPlugin } from "./provider/alibaba.js" +import { AmazonBedrockPlugin } from "./provider/amazon-bedrock.js" +import { AnthropicPlugin } from "./provider/anthropic.js" +import { AzurePlugin } from "./provider/azure.js" +import { CerebrasPlugin } from "./provider/cerebras.js" +import { CloudflareAIGatewayPlugin } from "./provider/cloudflare-ai-gateway.js" +import { CloudflareWorkersAIPlugin } from "./provider/cloudflare-workers-ai.js" +import { CoherePlugin } from "./provider/cohere.js" +import { DeepInfraPlugin } from "./provider/deepinfra.js" +import { DynamicProviderPlugin } from "./provider/dynamic.js" +import { GatewayPlugin } from "./provider/gateway.js" +import { GithubCopilotPlugin } from "./provider/github-copilot.js" +import { GitLabPlugin } from "./provider/gitlab.js" +import { GoogleVertexPlugin } from "./provider/google-vertex.js" +import { GroqPlugin } from "./provider/groq.js" +import { KiloPlugin } from "./provider/kilo.js" +import { LLMGatewayPlugin } from "./provider/llmgateway.js" +import { MistralPlugin } from "./provider/mistral.js" +import { NvidiaPlugin } from "./provider/nvidia.js" +import { OpenAIPlugin } from "./provider/openai.js" +import { SnowflakeCortexPlugin } from "./provider/snowflake-cortex.js" +import { OpenAICompatiblePlugin } from "./provider/openai-compatible.js" +import { OpencodePlugin } from "./provider/opencode.js" +import { OpenRouterPlugin } from "./provider/openrouter.js" +import { PerplexityPlugin } from "./provider/perplexity.js" +import { SapAICorePlugin } from "./provider/sap-ai-core.js" +import { TogetherAIPlugin } from "./provider/togetherai.js" +import { VercelPlugin } from "./provider/vercel.js" +import { VenicePlugin } from "./provider/venice.js" +import { XAIPlugin } from "./provider/xai.js" +import { ZenmuxPlugin } from "./provider/zenmux.js" +import type { PluginInternal } from "./internal.js" export const ProviderPlugins: PluginInternal.InternalPlugin[] = [ AlibabaPlugin, diff --git a/packages/core/src/plugin/provider/alibaba.ts b/packages/core/src/plugin/provider/alibaba.ts index e38fc55cb46..fed3f14fcfe 100644 --- a/packages/core/src/plugin/provider/alibaba.ts +++ b/packages/core/src/plugin/provider/alibaba.ts @@ -1,4 +1,4 @@ -import { createProviderPlugin } from "./factory" +import { createProviderPlugin } from "./factory.js" export const AlibabaPlugin = createProviderPlugin({ id: "opencode.provider.alibaba", diff --git a/packages/core/src/plugin/provider/amazon-bedrock.ts b/packages/core/src/plugin/provider/amazon-bedrock.ts index 322f5ba45c2..e8ff4142ae8 100644 --- a/packages/core/src/plugin/provider/amazon-bedrock.ts +++ b/packages/core/src/plugin/provider/amazon-bedrock.ts @@ -1,7 +1,7 @@ import { Effect } from "effect" import type { LanguageModelV3 } from "@ai-sdk/provider" import { define } from "@opencode-ai/plugin/effect/plugin" -import { Provider } from "../../provider" +import { Provider } from "../../provider.js" type MantleSDK = { languageModel: (modelID: string) => LanguageModelV3 diff --git a/packages/core/src/plugin/provider/anthropic.ts b/packages/core/src/plugin/provider/anthropic.ts index 06ba5042014..0a2708a3e71 100644 --- a/packages/core/src/plugin/provider/anthropic.ts +++ b/packages/core/src/plugin/provider/anthropic.ts @@ -1,6 +1,6 @@ import { Effect } from "effect" import { define } from "@opencode-ai/plugin/effect/plugin" -import { Provider } from "../../provider" +import { Provider } from "../../provider.js" export const AnthropicPlugin = define({ id: "opencode.provider.anthropic", diff --git a/packages/core/src/plugin/provider/azure.ts b/packages/core/src/plugin/provider/azure.ts index 2dc6ce670db..c2a9299ab33 100644 --- a/packages/core/src/plugin/provider/azure.ts +++ b/packages/core/src/plugin/provider/azure.ts @@ -1,9 +1,9 @@ import { Effect } from "effect" import { define } from "@opencode-ai/plugin/effect/plugin" import { Form } from "@opencode-ai/schema/form" -import { Provider } from "../../provider" -import { iife } from "../../util/iife" -import { configuredSettings } from "./configured" +import { Provider } from "../../provider.js" +import { iife } from "../../util/iife.js" +import { configuredSettings } from "./configured.js" function selectLanguage(sdk: any, modelID: string, useChat: boolean) { if (useChat && sdk.chat) return sdk.chat(modelID) diff --git a/packages/core/src/plugin/provider/cerebras.ts b/packages/core/src/plugin/provider/cerebras.ts index cb071e71fb4..92a4d4df2f5 100644 --- a/packages/core/src/plugin/provider/cerebras.ts +++ b/packages/core/src/plugin/provider/cerebras.ts @@ -1,6 +1,6 @@ import { Effect } from "effect" import { define } from "@opencode-ai/plugin/effect/plugin" -import { Provider } from "../../provider" +import { Provider } from "../../provider.js" export const CerebrasPlugin = define({ id: "opencode.provider.cerebras", diff --git a/packages/core/src/plugin/provider/cloudflare-ai-gateway.ts b/packages/core/src/plugin/provider/cloudflare-ai-gateway.ts index a959a2cf7db..e23249d843b 100644 --- a/packages/core/src/plugin/provider/cloudflare-ai-gateway.ts +++ b/packages/core/src/plugin/provider/cloudflare-ai-gateway.ts @@ -1,11 +1,11 @@ import os from "os" -import { App } from "../../app" +import { App } from "../../app.js" import { Effect, Option, Schema } from "effect" import { define } from "@opencode-ai/plugin/effect/plugin" import { Form } from "@opencode-ai/schema/form" -import { Provider } from "../../provider" -import { iife } from "../../util/iife" -import { configuredSettings } from "./configured" +import { Provider } from "../../provider.js" +import { iife } from "../../util/iife.js" +import { configuredSettings } from "./configured.js" const providerID = Provider.ID.make("cloudflare-ai-gateway") diff --git a/packages/core/src/plugin/provider/cloudflare-workers-ai.ts b/packages/core/src/plugin/provider/cloudflare-workers-ai.ts index 0746a880c88..e383c522353 100644 --- a/packages/core/src/plugin/provider/cloudflare-workers-ai.ts +++ b/packages/core/src/plugin/provider/cloudflare-workers-ai.ts @@ -1,11 +1,11 @@ import os from "os" -import { App } from "../../app" +import { App } from "../../app.js" import { Effect } from "effect" import { define } from "@opencode-ai/plugin/effect/plugin" import { Form } from "@opencode-ai/schema/form" -import { Provider } from "../../provider" -import { iife } from "../../util/iife" -import { configuredSettings } from "./configured" +import { Provider } from "../../provider.js" +import { iife } from "../../util/iife.js" +import { configuredSettings } from "./configured.js" const providerID = Provider.ID.make("cloudflare-workers-ai") diff --git a/packages/core/src/plugin/provider/cohere.ts b/packages/core/src/plugin/provider/cohere.ts index ba264323890..1115d03b449 100644 --- a/packages/core/src/plugin/provider/cohere.ts +++ b/packages/core/src/plugin/provider/cohere.ts @@ -1,4 +1,4 @@ -import { createProviderPlugin } from "./factory" +import { createProviderPlugin } from "./factory.js" export const CoherePlugin = createProviderPlugin({ id: "opencode.provider.cohere", diff --git a/packages/core/src/plugin/provider/configured.ts b/packages/core/src/plugin/provider/configured.ts index fb21a9818b1..92b48adc330 100644 --- a/packages/core/src/plugin/provider/configured.ts +++ b/packages/core/src/plugin/provider/configured.ts @@ -1,8 +1,8 @@ import { Effect, Option } from "effect" import type { Document } from "@opencode-ai/schema/config" -import { Catalog } from "../../catalog" -import { Config } from "../../config" -import { Provider } from "../../provider" +import { Catalog } from "../../catalog.js" +import { Config } from "../../config.js" +import { Provider } from "../../provider.js" export const configuredSettings = Effect.fn("ProviderPlugin.configuredSettings")(function* (id: Provider.ID) { const catalog = yield* Catalog.Service diff --git a/packages/core/src/plugin/provider/deepinfra.ts b/packages/core/src/plugin/provider/deepinfra.ts index ce0afcdec0a..30f84abfe82 100644 --- a/packages/core/src/plugin/provider/deepinfra.ts +++ b/packages/core/src/plugin/provider/deepinfra.ts @@ -1,4 +1,4 @@ -import { createProviderPlugin } from "./factory" +import { createProviderPlugin } from "./factory.js" export const DeepInfraPlugin = createProviderPlugin({ id: "opencode.provider.deepinfra", diff --git a/packages/core/src/plugin/provider/gateway.ts b/packages/core/src/plugin/provider/gateway.ts index 205336f55a5..abde097ab7f 100644 --- a/packages/core/src/plugin/provider/gateway.ts +++ b/packages/core/src/plugin/provider/gateway.ts @@ -1,4 +1,4 @@ -import { createProviderPlugin } from "./factory" +import { createProviderPlugin } from "./factory.js" export const GatewayPlugin = createProviderPlugin({ id: "opencode.provider.gateway", diff --git a/packages/core/src/plugin/provider/github-copilot.ts b/packages/core/src/plugin/provider/github-copilot.ts index a7cfab17209..c5a2e2808b8 100644 --- a/packages/core/src/plugin/provider/github-copilot.ts +++ b/packages/core/src/plugin/provider/github-copilot.ts @@ -1,16 +1,16 @@ import type { IntegrationOAuthMethodRegistration } from "@opencode-ai/plugin/effect/integration" import { Effect, Option, Schema, Semaphore, Stream } from "effect" -import { Catalog } from "../../catalog" -import { Credential } from "../../credential" -import { Bus } from "../../bus" -import { CopilotModels } from "../../github-copilot/models" -import { App } from "../../app" -import { Agent } from "../../agent" -import { Integration } from "../../integration" -import { Model } from "../../model" +import { Catalog } from "../../catalog.js" +import { Credential } from "../../credential.js" +import { Bus } from "../../bus.js" +import { CopilotModels } from "../../github-copilot/models.js" +import { App } from "../../app.js" +import { Agent } from "../../agent.js" +import { Integration } from "../../integration.js" +import { Model } from "../../model.js" import { define } from "@opencode-ai/plugin/effect/plugin" -import { Provider } from "../../provider" -import type { PluginInternal } from "../internal" +import { Provider } from "../../provider.js" +import type { PluginInternal } from "../internal.js" const clientID = "Ov23li8tweQw6odWQebz" const apiVersion = "2026-06-01" @@ -236,7 +236,7 @@ export const GithubCopilotPlugin = define({ evt.options.fetch, ctx.app, ) - const mod = yield* Effect.promise(() => import("../../github-copilot/copilot-provider")) + const mod = yield* Effect.promise(() => import("../../github-copilot/copilot-provider.js")) evt.sdk = mod.createOpenaiCompatible(evt.options) }), ) diff --git a/packages/core/src/plugin/provider/gitlab.ts b/packages/core/src/plugin/provider/gitlab.ts index 27354117906..c3cd205cf56 100644 --- a/packages/core/src/plugin/provider/gitlab.ts +++ b/packages/core/src/plugin/provider/gitlab.ts @@ -1,8 +1,8 @@ import os from "os" -import { App } from "../../app" +import { App } from "../../app.js" import { Effect } from "effect" import { define } from "@opencode-ai/plugin/effect/plugin" -import { Provider } from "../../provider" +import { Provider } from "../../provider.js" export const GitLabPlugin = define({ id: "opencode.provider.gitlab", diff --git a/packages/core/src/plugin/provider/google-vertex.ts b/packages/core/src/plugin/provider/google-vertex.ts index 859a6e41779..d1317ae13de 100644 --- a/packages/core/src/plugin/provider/google-vertex.ts +++ b/packages/core/src/plugin/provider/google-vertex.ts @@ -1,6 +1,6 @@ import { Effect } from "effect" import { define } from "@opencode-ai/plugin/effect/plugin" -import { Provider } from "../../provider" +import { Provider } from "../../provider.js" function resolveProject(options: Record) { // models.dev advertises GOOGLE_VERTEX_PROJECT for Vertex, while Google SDKs diff --git a/packages/core/src/plugin/provider/groq.ts b/packages/core/src/plugin/provider/groq.ts index 77a1c81172b..50e39675d57 100644 --- a/packages/core/src/plugin/provider/groq.ts +++ b/packages/core/src/plugin/provider/groq.ts @@ -1,4 +1,4 @@ -import { createProviderPlugin } from "./factory" +import { createProviderPlugin } from "./factory.js" export const GroqPlugin = createProviderPlugin({ id: "opencode.provider.groq", diff --git a/packages/core/src/plugin/provider/kilo.ts b/packages/core/src/plugin/provider/kilo.ts index 0d69c92d5c5..6efaf39f5d8 100644 --- a/packages/core/src/plugin/provider/kilo.ts +++ b/packages/core/src/plugin/provider/kilo.ts @@ -1,6 +1,6 @@ import { Effect } from "effect" import { define } from "@opencode-ai/plugin/effect/plugin" -import { Provider } from "../../provider" +import { Provider } from "../../provider.js" export const KiloPlugin = define({ id: "opencode.provider.kilo", diff --git a/packages/core/src/plugin/provider/llmgateway.ts b/packages/core/src/plugin/provider/llmgateway.ts index 2f545478c9d..1e75244c50a 100644 --- a/packages/core/src/plugin/provider/llmgateway.ts +++ b/packages/core/src/plugin/provider/llmgateway.ts @@ -1,7 +1,7 @@ import { Effect } from "effect" import { define } from "@opencode-ai/plugin/effect/plugin" -import { Integration } from "../../integration" -import { Provider } from "../../provider" +import { Integration } from "../../integration.js" +import { Provider } from "../../provider.js" export const LLMGatewayPlugin = define({ id: "opencode.provider.llmgateway", diff --git a/packages/core/src/plugin/provider/mistral.ts b/packages/core/src/plugin/provider/mistral.ts index a72e6c768d4..6fbd981e6c7 100644 --- a/packages/core/src/plugin/provider/mistral.ts +++ b/packages/core/src/plugin/provider/mistral.ts @@ -1,4 +1,4 @@ -import { createProviderPlugin } from "./factory" +import { createProviderPlugin } from "./factory.js" export const MistralPlugin = createProviderPlugin({ id: "opencode.provider.mistral", diff --git a/packages/core/src/plugin/provider/nvidia.ts b/packages/core/src/plugin/provider/nvidia.ts index 41581366d8a..c15a7eb6ffc 100644 --- a/packages/core/src/plugin/provider/nvidia.ts +++ b/packages/core/src/plugin/provider/nvidia.ts @@ -1,6 +1,6 @@ import { Effect } from "effect" import { define } from "@opencode-ai/plugin/effect/plugin" -import { Provider } from "../../provider" +import { Provider } from "../../provider.js" export const NvidiaPlugin = define({ id: "opencode.provider.nvidia", diff --git a/packages/core/src/plugin/provider/openai.ts b/packages/core/src/plugin/provider/openai.ts index 6fdd3127087..15437e7c89d 100644 --- a/packages/core/src/plugin/provider/openai.ts +++ b/packages/core/src/plugin/provider/openai.ts @@ -2,14 +2,14 @@ import { createServer } from "node:http" import type { IntegrationOAuthMethodRegistration } from "@opencode-ai/plugin/effect/integration" import { define } from "@opencode-ai/plugin/effect/plugin" import { Deferred, Effect, Option, Schema, Semaphore, Stream } from "effect" -import { App } from "../../app" -import { Credential } from "../../credential" -import { Bus } from "../../bus" -import { Integration } from "../../integration" -import { Model } from "../../model" -import { OauthCallbackPage } from "../../oauth/page" -import { Provider } from "../../provider" -import type { PluginInternal } from "../internal" +import { App } from "../../app.js" +import { Credential } from "../../credential.js" +import { Bus } from "../../bus.js" +import { Integration } from "../../integration.js" +import { Model } from "../../model.js" +import { OauthCallbackPage } from "../../oauth/page.js" +import { Provider } from "../../provider.js" +import type { PluginInternal } from "../internal.js" const clientID = "app_EMoamEEZ73f0CkXaXp7hrann" const issuer = "https://auth.openai.com" diff --git a/packages/core/src/plugin/provider/opencode.ts b/packages/core/src/plugin/provider/opencode.ts index 2ca9e42a923..82631e0054a 100644 --- a/packages/core/src/plugin/provider/opencode.ts +++ b/packages/core/src/plugin/provider/opencode.ts @@ -4,15 +4,15 @@ import type { IntegrationOAuthMethodRegistration } from "@opencode-ai/plugin/eff import { define } from "@opencode-ai/plugin/effect/plugin" import type { CredentialValue } from "@opencode-ai/sdk/v2/types" import { HttpClient, HttpClientRequest, HttpClientResponse } from "effect/unstable/http" -import { Bus } from "../../bus" -import { Credential } from "../../credential" -import { Integration } from "../../integration" -import { Model } from "../../model" -import { Provider } from "../../provider" -import { ConfigProviderV1 } from "../../v1/config/provider" +import { Bus } from "../../bus.js" +import { Credential } from "../../credential.js" +import { Integration } from "../../integration.js" +import { Model } from "../../model.js" +import { Provider } from "../../provider.js" +import { ConfigProviderV1 } from "../../v1/config/provider.js" import { Money } from "@opencode-ai/schema/money" -import { ConfigProviderOptionsV1 } from "../../v1/config/provider-options" -import { ConfigV1 } from "../../v1/config/config" +import { ConfigProviderOptionsV1 } from "../../v1/config/provider-options.js" +import { ConfigV1 } from "../../v1/config/config.js" const defaultServer = "https://console.opencode.ai" const clientID = "opencode-cli" diff --git a/packages/core/src/plugin/provider/openrouter.ts b/packages/core/src/plugin/provider/openrouter.ts index 3ec143db5cb..9fd357eeccc 100644 --- a/packages/core/src/plugin/provider/openrouter.ts +++ b/packages/core/src/plugin/provider/openrouter.ts @@ -1,6 +1,6 @@ import { Effect } from "effect" -import { Model } from "../../model" -import { Provider } from "../../provider" +import { Model } from "../../model.js" +import { Provider } from "../../provider.js" import { define } from "@opencode-ai/plugin/effect/plugin" export const OpenRouterPlugin = define({ diff --git a/packages/core/src/plugin/provider/perplexity.ts b/packages/core/src/plugin/provider/perplexity.ts index d429b921de0..ce854bec342 100644 --- a/packages/core/src/plugin/provider/perplexity.ts +++ b/packages/core/src/plugin/provider/perplexity.ts @@ -1,4 +1,4 @@ -import { createProviderPlugin } from "./factory" +import { createProviderPlugin } from "./factory.js" export const PerplexityPlugin = createProviderPlugin({ id: "opencode.provider.perplexity", diff --git a/packages/core/src/plugin/provider/sap-ai-core.ts b/packages/core/src/plugin/provider/sap-ai-core.ts index 9a8a28c5bcb..1bee2acb7a6 100644 --- a/packages/core/src/plugin/provider/sap-ai-core.ts +++ b/packages/core/src/plugin/provider/sap-ai-core.ts @@ -2,7 +2,7 @@ import { Effect } from "effect" import { pathToFileURL } from "url" import { define } from "@opencode-ai/plugin/effect/plugin" import { Npm } from "@opencode-ai/util/npm" -import { Provider } from "../../provider" +import { Provider } from "../../provider.js" import { importModule } from "@opencode-ai/util/runtime-import" export const SapAICorePlugin = define({ diff --git a/packages/core/src/plugin/provider/snowflake-cortex.ts b/packages/core/src/plugin/provider/snowflake-cortex.ts index 8e4a6f39f73..871c50fafe9 100644 --- a/packages/core/src/plugin/provider/snowflake-cortex.ts +++ b/packages/core/src/plugin/provider/snowflake-cortex.ts @@ -1,6 +1,6 @@ import { Effect } from "effect" import { define } from "@opencode-ai/plugin/effect/plugin" -import { Provider } from "../../provider" +import { Provider } from "../../provider.js" type FetchLike = (url: string | URL | Request, init?: RequestInit) => Promise diff --git a/packages/core/src/plugin/provider/togetherai.ts b/packages/core/src/plugin/provider/togetherai.ts index ab0a603157f..38174d4856d 100644 --- a/packages/core/src/plugin/provider/togetherai.ts +++ b/packages/core/src/plugin/provider/togetherai.ts @@ -1,4 +1,4 @@ -import { createProviderPlugin } from "./factory" +import { createProviderPlugin } from "./factory.js" export const TogetherAIPlugin = createProviderPlugin({ id: "opencode.provider.togetherai", diff --git a/packages/core/src/plugin/provider/venice.ts b/packages/core/src/plugin/provider/venice.ts index b0186a021a2..2f43a6d2a9b 100644 --- a/packages/core/src/plugin/provider/venice.ts +++ b/packages/core/src/plugin/provider/venice.ts @@ -1,4 +1,4 @@ -import { createProviderPlugin } from "./factory" +import { createProviderPlugin } from "./factory.js" export const VenicePlugin = createProviderPlugin({ id: "opencode.provider.venice", diff --git a/packages/core/src/plugin/provider/vercel.ts b/packages/core/src/plugin/provider/vercel.ts index 5ac2bb29666..653742ac6f3 100644 --- a/packages/core/src/plugin/provider/vercel.ts +++ b/packages/core/src/plugin/provider/vercel.ts @@ -1,6 +1,6 @@ import { Effect } from "effect" import { define } from "@opencode-ai/plugin/effect/plugin" -import { Provider } from "../../provider" +import { Provider } from "../../provider.js" export const VercelPlugin = define({ id: "opencode.provider.vercel", diff --git a/packages/core/src/plugin/provider/xai.ts b/packages/core/src/plugin/provider/xai.ts index a9b5393da2a..abf3bcfb3cd 100644 --- a/packages/core/src/plugin/provider/xai.ts +++ b/packages/core/src/plugin/provider/xai.ts @@ -1,9 +1,9 @@ import type { IntegrationOAuthMethodRegistration } from "@opencode-ai/plugin/effect/integration" import { define } from "@opencode-ai/plugin/effect/plugin" import { Clock, Effect, Option, Schema } from "effect" -import { App } from "../../app" -import { Credential } from "../../credential" -import { Integration } from "../../integration" +import { App } from "../../app.js" +import { Credential } from "../../credential.js" +import { Integration } from "../../integration.js" const clientID = "b1a00492-073a-47ea-816f-4c329264a828" const issuer = "https://auth.x.ai/oauth2" diff --git a/packages/core/src/plugin/provider/zenmux.ts b/packages/core/src/plugin/provider/zenmux.ts index 13684f5bac5..738630508b4 100644 --- a/packages/core/src/plugin/provider/zenmux.ts +++ b/packages/core/src/plugin/provider/zenmux.ts @@ -1,6 +1,6 @@ import { Effect } from "effect" import { define } from "@opencode-ai/plugin/effect/plugin" -import { Provider } from "../../provider" +import { Provider } from "../../provider.js" export const ZenmuxPlugin = define({ id: "opencode.provider.zenmux", diff --git a/packages/core/src/plugin/runtime.ts b/packages/core/src/plugin/runtime.ts index a7815ac8104..373cf3d095c 100644 --- a/packages/core/src/plugin/runtime.ts +++ b/packages/core/src/plugin/runtime.ts @@ -1,12 +1,12 @@ -export * as PluginRuntime from "./runtime" +export * as PluginRuntime from "./runtime.js" import { Context, Effect, Layer } from "effect" -import { Agent } from "../agent" +import { Agent } from "../agent.js" import { makeGlobalNode } from "@opencode-ai/util/effect/app-node" -import { Job } from "../job" -import { Location } from "../location" -import { LocationServiceMap } from "../location-service-map" -import { Session } from "../session" +import { Job } from "../job.js" +import { Location } from "../location.js" +import { LocationServiceMap } from "../location-service-map.js" +import { Session } from "../session.js" export interface Interface { readonly session: Pick< diff --git a/packages/core/src/plugin/sdk.ts b/packages/core/src/plugin/sdk.ts index 4a432c06c81..c4c153a70fe 100644 --- a/packages/core/src/plugin/sdk.ts +++ b/packages/core/src/plugin/sdk.ts @@ -1,10 +1,10 @@ -export * as SdkPlugins from "./sdk" +export * as SdkPlugins from "./sdk.js" import type { Plugin } from "@opencode-ai/plugin/effect/plugin" import { Context, Effect, Layer } from "effect" import { makeGlobalNode } from "@opencode-ai/util/effect/app-node" -import { Bus } from "../bus" -import type { Versioned } from "../plugin" +import { Bus } from "../bus.js" +import type { Versioned } from "../plugin.js" export const Updated = Bus.ephemeral({ type: "sdk.plugin.updated", schema: {} }) diff --git a/packages/core/src/plugin/skill.ts b/packages/core/src/plugin/skill.ts index 6e90f6a6265..ae627f9fb50 100644 --- a/packages/core/src/plugin/skill.ts +++ b/packages/core/src/plugin/skill.ts @@ -1,12 +1,12 @@ /// -export * as SkillPlugin from "./skill" +export * as SkillPlugin from "./skill.js" import { define, type Context } from "@opencode-ai/plugin/effect/plugin" import { Effect } from "effect" -import { AbsolutePath } from "../schema" -import { Skill } from "../skill" -import { ConfigPluginSource } from "../config/plugin/source" +import { AbsolutePath } from "../schema.js" +import { Skill } from "../skill.js" +import { ConfigPluginSource } from "../config/plugin/source.js" import os from "os" import opencodeContent from "./skill/opencode.md" with { type: "text" } import reportContent from "./skill/report.md" with { type: "text" } diff --git a/packages/core/src/plugin/supervisor.ts b/packages/core/src/plugin/supervisor.ts index 4e60e4a434b..b45df0f9681 100644 --- a/packages/core/src/plugin/supervisor.ts +++ b/packages/core/src/plugin/supervisor.ts @@ -1,18 +1,18 @@ -export * as PluginSupervisor from "./supervisor" +export * as PluginSupervisor from "./supervisor.js" import type { Plugin as PluginDefinition } from "@opencode-ai/plugin/effect/plugin" import { Event } from "@opencode-ai/schema/config" import { Context, Deferred, Effect, Layer, Schema, Stream } from "effect" import path from "path" import { pathToFileURL } from "url" -import { ConfigPluginSource } from "../config/plugin/source" +import { ConfigPluginSource } from "../config/plugin/source.js" import { makeLocationNode } from "@opencode-ai/util/effect/app-node" -import { Bus } from "../bus" +import { Bus } from "../bus.js" import { Npm } from "@opencode-ai/util/npm" -import { Plugin } from "../plugin" -import { PluginPromise } from "../plugin/promise" -import { PluginInternal } from "./internal" -import { SdkPlugins } from "./sdk" +import { Plugin } from "../plugin.js" +import { PluginPromise } from "../plugin/promise.js" +import { PluginInternal } from "./internal.js" +import { SdkPlugins } from "./sdk.js" import { importModule } from "@opencode-ai/util/runtime-import" const PluginModule = Schema.Struct({ diff --git a/packages/core/src/plugin/system-prompt.ts b/packages/core/src/plugin/system-prompt.ts index 6bb78c864b3..4756d67ef87 100644 --- a/packages/core/src/plugin/system-prompt.ts +++ b/packages/core/src/plugin/system-prompt.ts @@ -1,4 +1,4 @@ -export * as SystemPromptPlugin from "./system-prompt" +export * as SystemPromptPlugin from "./system-prompt.js" import { define } from "@opencode-ai/plugin/effect/plugin" import { Effect } from "effect" diff --git a/packages/core/src/plugin/variant.ts b/packages/core/src/plugin/variant.ts index b7e9e567d2b..7d2fe674014 100644 --- a/packages/core/src/plugin/variant.ts +++ b/packages/core/src/plugin/variant.ts @@ -1,9 +1,9 @@ -export * as VariantPlugin from "./variant" +export * as VariantPlugin from "./variant.js" import { Effect } from "effect" import { define } from "@opencode-ai/plugin/effect/plugin" -import { Model } from "../model" -import { Provider } from "../provider" +import { Model } from "../model.js" +import { Provider } from "../provider.js" export const Plugin = define({ id: "opencode.variant", diff --git a/packages/core/src/plugin/warming.ts b/packages/core/src/plugin/warming.ts index 828773de733..e7d7645f151 100644 --- a/packages/core/src/plugin/warming.ts +++ b/packages/core/src/plugin/warming.ts @@ -1,9 +1,9 @@ -export * as WarmingPlugin from "./warming" +export * as WarmingPlugin from "./warming.js" import { define } from "@opencode-ai/plugin/effect/plugin" import { Clock, Duration, Effect, Scope } from "effect" -import { Config } from "../config" -import { SessionSchema } from "../session/schema" +import { Config } from "../config.js" +import { SessionSchema } from "../session/schema.js" const defaults = { prompt: "This is a keep-alive request. Do not perform any work or use tools. Reply with exactly: OK", diff --git a/packages/core/src/plugin/websearch/exa.ts b/packages/core/src/plugin/websearch/exa.ts index 7aff04f7251..14090fe7008 100644 --- a/packages/core/src/plugin/websearch/exa.ts +++ b/packages/core/src/plugin/websearch/exa.ts @@ -1,9 +1,9 @@ -export * as WebSearchExa from "./exa" +export * as WebSearchExa from "./exa.js" import { define } from "@opencode-ai/plugin/effect/plugin" import { Effect, Schema, Scope } from "effect" import { HttpClient } from "effect/unstable/http" -import { WebSearchMcp } from "./mcp" +import { WebSearchMcp } from "./mcp.js" export const endpoint = "https://mcp.exa.ai/mcp" diff --git a/packages/core/src/plugin/websearch/firecrawl.ts b/packages/core/src/plugin/websearch/firecrawl.ts index d4285b035c4..0634ba5bad0 100644 --- a/packages/core/src/plugin/websearch/firecrawl.ts +++ b/packages/core/src/plugin/websearch/firecrawl.ts @@ -1,10 +1,10 @@ -export * as WebSearchFirecrawl from "./firecrawl" +export * as WebSearchFirecrawl from "./firecrawl.js" import { define } from "@opencode-ai/plugin/effect/plugin" import { Effect, Option, Schema, Scope } from "effect" import { HttpClient } from "effect/unstable/http" -import { App } from "../../app" -import { WebSearchMcp } from "./mcp" +import { App } from "../../app.js" +import { WebSearchMcp } from "./mcp.js" export const endpoint = "https://mcp.firecrawl.dev/v2/mcp" diff --git a/packages/core/src/plugin/websearch/index.ts b/packages/core/src/plugin/websearch/index.ts index c92529fc273..c85694221d3 100644 --- a/packages/core/src/plugin/websearch/index.ts +++ b/packages/core/src/plugin/websearch/index.ts @@ -1,5 +1,5 @@ -import { WebSearchExa } from "./exa" -import { WebSearchFirecrawl } from "./firecrawl" -import { WebSearchParallel } from "./parallel" +import { WebSearchExa } from "./exa.js" +import { WebSearchFirecrawl } from "./firecrawl.js" +import { WebSearchParallel } from "./parallel.js" export const WebSearchPlugins = [WebSearchExa.Plugin, WebSearchFirecrawl.Plugin, WebSearchParallel.Plugin] as const diff --git a/packages/core/src/plugin/websearch/mcp.ts b/packages/core/src/plugin/websearch/mcp.ts index b479acdcaee..05aaa68b9e6 100644 --- a/packages/core/src/plugin/websearch/mcp.ts +++ b/packages/core/src/plugin/websearch/mcp.ts @@ -1,8 +1,8 @@ -export * as WebSearchMcp from "./mcp" +export * as WebSearchMcp from "./mcp.js" import { Duration, Effect, Schema } from "effect" import { HttpClient, HttpClientRequest } from "effect/unstable/http" -import { collectBoundedResponseBody } from "../../tool/http-body" +import { collectBoundedResponseBody } from "../../tool/http-body.js" export const MAX_RESPONSE_BYTES = 256 * 1024 diff --git a/packages/core/src/plugin/websearch/parallel.ts b/packages/core/src/plugin/websearch/parallel.ts index 9ed747c47d4..2f485b98bff 100644 --- a/packages/core/src/plugin/websearch/parallel.ts +++ b/packages/core/src/plugin/websearch/parallel.ts @@ -1,10 +1,10 @@ -export * as WebSearchParallel from "./parallel" +export * as WebSearchParallel from "./parallel.js" import { define } from "@opencode-ai/plugin/effect/plugin" import { Effect, Schema, Scope } from "effect" import { HttpClient } from "effect/unstable/http" -import { App } from "../../app" -import { WebSearchMcp } from "./mcp" +import { App } from "../../app.js" +import { WebSearchMcp } from "./mcp.js" export const endpoint = "https://search.parallel.ai/mcp" diff --git a/packages/core/src/project.ts b/packages/core/src/project.ts index 38df9266005..4f1e57897d8 100644 --- a/packages/core/src/project.ts +++ b/packages/core/src/project.ts @@ -1,19 +1,19 @@ -export * as Project from "./project" +export * as Project from "./project.js" import { Context, Effect, Layer, Schema } from "effect" import { ChildProcess } from "effect/unstable/process" import { asc, desc } from "drizzle-orm" import path from "path" -import { AbsolutePath } from "./schema" -import { Database } from "./database/database" +import { AbsolutePath } from "./schema.js" +import { Database } from "./database/database.js" import { FSUtil } from "@opencode-ai/util/fs-util" -import { Git } from "./git" +import { Git } from "./git.js" import { AppProcess } from "@opencode-ai/util/process" import { makeGlobalNode } from "@opencode-ai/util/effect/app-node" import { Hash } from "@opencode-ai/util/hash" -import { ProjectDirectories } from "./project/directories" -import { ProjectSchema } from "./project/schema" -import { ProjectTable, upsertProject } from "./project/sql" +import { ProjectDirectories } from "./project/directories.js" +import { ProjectSchema } from "./project/schema.js" +import { ProjectTable, upsertProject } from "./project/sql.js" export const ID = ProjectSchema.ID export type ID = ProjectSchema.ID diff --git a/packages/core/src/project/copy-strategies.ts b/packages/core/src/project/copy-strategies.ts index 59466b9901a..f205196c548 100644 --- a/packages/core/src/project/copy-strategies.ts +++ b/packages/core/src/project/copy-strategies.ts @@ -1,7 +1,7 @@ import { Effect } from "effect" -import { AbsolutePath } from "../schema" -import { Git } from "../git" -import { DirectoryUnavailableError, StrategyID, type ListEntry, type Strategy } from "./copy" +import { AbsolutePath } from "../schema.js" +import { Git } from "../git.js" +import { DirectoryUnavailableError, StrategyID, type ListEntry, type Strategy } from "./copy.js" export function makeGitWorktreeStrategy(input: { git: Git.Interface diff --git a/packages/core/src/project/copy.ts b/packages/core/src/project/copy.ts index 069126d444a..de488f3a43e 100644 --- a/packages/core/src/project/copy.ts +++ b/packages/core/src/project/copy.ts @@ -1,18 +1,18 @@ -export * as ProjectCopy from "./copy" +export * as ProjectCopy from "./copy.js" import { Context, Effect, Layer, Schema } from "effect" import path from "path" -import { AbsolutePath } from "../schema" +import { AbsolutePath } from "../schema.js" import { FSUtil } from "@opencode-ai/util/fs-util" -import { Git } from "../git" +import { Git } from "../git.js" import { makeLocationNode } from "@opencode-ai/util/effect/app-node" -import { Project } from "../project" -import { ProjectDirectories } from "./directories" -import { makeGitWorktreeStrategy } from "./copy-strategies" -import { Slug } from "../util/slug" -import { Bus } from "../bus" -import { Database } from "../database/database" -import { Location } from "../location" +import { Project } from "../project.js" +import { ProjectDirectories } from "./directories.js" +import { makeGitWorktreeStrategy } from "./copy-strategies.js" +import { Slug } from "../util/slug.js" +import { Bus } from "../bus.js" +import { Database } from "../database/database.js" +import { Location } from "../location.js" import { Event } from "@opencode-ai/schema/project-directories" import { ProjectCopy } from "@opencode-ai/schema/project-copy" diff --git a/packages/core/src/project/directories.ts b/packages/core/src/project/directories.ts index 0ee2b85f8aa..9abec61e72a 100644 --- a/packages/core/src/project/directories.ts +++ b/packages/core/src/project/directories.ts @@ -1,14 +1,14 @@ -export * as ProjectDirectories from "./directories" +export * as ProjectDirectories from "./directories.js" import { and, asc, desc, eq, isNotNull, isNull, ne, or } from "drizzle-orm" import { Context, Effect, Layer, Schema } from "effect" -import { Database } from "../database/database" +import { Database } from "../database/database.js" import { makeGlobalNode } from "@opencode-ai/util/effect/app-node" -import { AbsolutePath } from "../schema" -import { ProjectSchema } from "./schema" -import { ProjectDirectoryTable } from "./sql" +import { AbsolutePath } from "../schema.js" +import { ProjectSchema } from "./schema.js" +import { ProjectDirectoryTable } from "./sql.js" import type { EffectDrizzleSqlite } from "@opencode-ai/effect-drizzle-sqlite" -import type { Project } from "../project" +import type { Project } from "../project.js" export type Directory = Project.Directory diff --git a/packages/core/src/project/schema.ts b/packages/core/src/project/schema.ts index 089b3097d27..2eef1ed1f07 100644 --- a/packages/core/src/project/schema.ts +++ b/packages/core/src/project/schema.ts @@ -1,8 +1,8 @@ -export * as ProjectSchema from "./schema" +export * as ProjectSchema from "./schema.js" import { Schema } from "effect" import { Project } from "@opencode-ai/schema/project" -import { AbsolutePath } from "../schema" +import { AbsolutePath } from "../schema.js" export const ID = Project.ID export type ID = typeof ID.Type diff --git a/packages/core/src/project/sql.ts b/packages/core/src/project/sql.ts index 9e87ee5a78c..c56e0eaa091 100644 --- a/packages/core/src/project/sql.ts +++ b/packages/core/src/project/sql.ts @@ -1,10 +1,10 @@ import type { EffectDrizzleSqlite } from "@opencode-ai/effect-drizzle-sqlite" import { isNotNull, isNull, ne, or } from "drizzle-orm" import { sqliteTable, text, integer, primaryKey } from "drizzle-orm/sqlite-core" -import { absoluteArrayColumn, absoluteColumn } from "../database/path" -import { Timestamps } from "../database/schema.sql" -import type { AbsolutePath } from "../schema" -import { ProjectSchema } from "./schema" +import { absoluteArrayColumn, absoluteColumn } from "../database/path.js" +import { Timestamps } from "../database/schema.sql.js" +import type { AbsolutePath } from "../schema.js" +import { ProjectSchema } from "./schema.js" type DatabaseClient = EffectDrizzleSqlite.EffectSQLiteDatabase type Transaction = Parameters[0]>[0] diff --git a/packages/core/src/provider.ts b/packages/core/src/provider.ts index 869e0c9ee71..0eaa31f1557 100644 --- a/packages/core/src/provider.ts +++ b/packages/core/src/provider.ts @@ -1,10 +1,10 @@ -export * as Provider from "./provider" +export * as Provider from "./provider.js" import { Effect, Schema } from "effect" import { Provider } from "@opencode-ai/schema/provider" import type { ProviderPackageDefinition } from "@opencode-ai/ai" import { Npm } from "@opencode-ai/util/npm" -import type { DeepMutable } from "./schema" +import type { DeepMutable } from "./schema.js" import { importModule, resolveModule } from "@opencode-ai/util/runtime-import" export const ID = Provider.ID diff --git a/packages/core/src/pty.ts b/packages/core/src/pty.ts index 69190c96336..83315bcbfc1 100644 --- a/packages/core/src/pty.ts +++ b/packages/core/src/pty.ts @@ -1,16 +1,16 @@ -export * as Pty from "./pty" +export * as Pty from "./pty.js" import { makeLocationNode } from "@opencode-ai/util/effect/app-node" import type { Disp, Proc } from "#pty" import { Context, Effect, Layer, Schema, Types } from "effect" import { Pty } from "@opencode-ai/schema/pty" -import { Config } from "./config" -import { Bus } from "./bus" -import { Location } from "./location" -import { PtyID } from "./pty/schema" -import { ShellSelect } from "./shell/select" +import { Config } from "./config.js" +import { Bus } from "./bus.js" +import { Location } from "./location.js" +import { PtyID } from "./pty/schema.js" +import { ShellSelect } from "./shell/select.js" import { Global } from "@opencode-ai/util/global" -import { lazy } from "./util/lazy" +import { lazy } from "./util/lazy.js" const BUFFER_LIMIT = 1024 * 1024 * 2 // Exited sessions stay observable (status, exit code, retained output) until removed explicitly. diff --git a/packages/core/src/pty/protocol.ts b/packages/core/src/pty/protocol.ts index 21c6a89f734..e9b1741e38c 100644 --- a/packages/core/src/pty/protocol.ts +++ b/packages/core/src/pty/protocol.ts @@ -1,4 +1,4 @@ -export * as PtyProtocol from "./protocol" +export * as PtyProtocol from "./protocol.js" // Wire protocol for PTY websocket transports. The PTY domain service is transport-free; server // routes adapt Pty.attach to websockets with these helpers so every surface speaks one protocol. diff --git a/packages/core/src/pty/pty.bun.ts b/packages/core/src/pty/pty.bun.ts index b92ba4409b4..f2a7b489fd2 100644 --- a/packages/core/src/pty/pty.bun.ts +++ b/packages/core/src/pty/pty.bun.ts @@ -1,7 +1,7 @@ import { spawn } from "bun-pty" -import type { Opts, Proc } from "./pty" +import type { Opts, Proc } from "./pty.js" -export type { Disp, Exit, Opts, Proc } from "./pty" +export type { Disp, Exit, Opts, Proc } from "./pty.js" function spawnPty(file: string, args: string[], opts: Opts): Proc { const pty = spawn(file, args, opts) diff --git a/packages/core/src/pty/pty.node.ts b/packages/core/src/pty/pty.node.ts index 9823b32999d..596fe2364b6 100644 --- a/packages/core/src/pty/pty.node.ts +++ b/packages/core/src/pty/pty.node.ts @@ -1,8 +1,8 @@ import { createRequire } from "node:module" import { isSea } from "node:sea" -import type { Opts, Proc } from "./pty" +import type { Opts, Proc } from "./pty.js" -export type { Disp, Exit, Opts, Proc } from "./pty" +export type { Disp, Exit, Opts, Proc } from "./pty.js" const pty = createRequire(import.meta.url)( process.env.OPENCODE_NODE_PTY_PATH ?? "@lydell/node-pty", diff --git a/packages/core/src/pty/ticket.ts b/packages/core/src/pty/ticket.ts index 033460818f4..946db2be365 100644 --- a/packages/core/src/pty/ticket.ts +++ b/packages/core/src/pty/ticket.ts @@ -1,8 +1,8 @@ -export * as PtyTicket from "./ticket" +export * as PtyTicket from "./ticket.js" -import { Workspace } from "../workspace" +import { Workspace } from "../workspace.js" import { PtyTicket } from "@opencode-ai/schema/pty-ticket" -import { PtyID } from "./schema" +import { PtyID } from "./schema.js" import { Cache, Context, Duration, Effect, Layer } from "effect" import { makeGlobalNode } from "@opencode-ai/util/effect/app-node" diff --git a/packages/core/src/question.ts b/packages/core/src/question.ts index 7164d1e4bf0..ef56fc22881 100644 --- a/packages/core/src/question.ts +++ b/packages/core/src/question.ts @@ -1,10 +1,10 @@ -export * as Question from "./question" +export * as Question from "./question.js" import { makeLocationNode } from "@opencode-ai/util/effect/app-node" import { Context, Deferred, Effect, Layer, Schema } from "effect" import { Question } from "@opencode-ai/schema/question" -import { Bus } from "./bus" -import { SessionSchema } from "./session/schema" +import { Bus } from "./bus.js" +import { SessionSchema } from "./session/schema.js" export const ID = Question.ID export type ID = typeof ID.Type diff --git a/packages/core/src/reference.ts b/packages/core/src/reference.ts index d9675e68867..a49adb3eb97 100644 --- a/packages/core/src/reference.ts +++ b/packages/core/src/reference.ts @@ -1,14 +1,14 @@ -export * as Reference from "./reference" +export * as Reference from "./reference.js" import { makeLocationNode } from "@opencode-ai/util/effect/app-node" import { Context, Effect, Layer, Scope, Types } from "effect" import { Reference } from "@opencode-ai/schema/reference" import { Global } from "@opencode-ai/util/global" -import { Bus } from "./bus" -import { Repository } from "./repository" -import { RepositoryCache } from "./repository-cache" -import { AbsolutePath } from "./schema" -import { State } from "./state" +import { Bus } from "./bus.js" +import { Repository } from "./repository.js" +import { RepositoryCache } from "./repository-cache.js" +import { AbsolutePath } from "./schema.js" +import { State } from "./state.js" export const LocalSource = Reference.LocalSource export type LocalSource = Reference.LocalSource diff --git a/packages/core/src/reference/instructions.ts b/packages/core/src/reference/instructions.ts index 463314e97ac..2aa84e1a6bb 100644 --- a/packages/core/src/reference/instructions.ts +++ b/packages/core/src/reference/instructions.ts @@ -1,9 +1,9 @@ -export * as ReferenceInstructions from "./instructions" +export * as ReferenceInstructions from "./instructions.js" import { makeLocationNode } from "@opencode-ai/util/effect/app-node" import { Context, Effect, Layer, Schema } from "effect" -import { Reference } from "../reference" -import { Instructions } from "../instructions/index" +import { Reference } from "../reference.js" +import { Instructions } from "../instructions/index.js" const Summary = Schema.Struct({ name: Schema.String, diff --git a/packages/core/src/repository-cache.ts b/packages/core/src/repository-cache.ts index 8b78d9914f5..867ccd74eac 100644 --- a/packages/core/src/repository-cache.ts +++ b/packages/core/src/repository-cache.ts @@ -8,10 +8,10 @@ import path from "path" import { Context, Effect, Layer, Schema } from "effect" import { FSUtil } from "@opencode-ai/util/fs-util" -import { Git } from "./git" +import { Git } from "./git.js" import { Global } from "@opencode-ai/util/global" -import { Repository } from "./repository" -import { AbsolutePath } from "./schema" +import { Repository } from "./repository.js" +import { AbsolutePath } from "./schema.js" import { makeGlobalNode } from "@opencode-ai/util/effect/app-node" import { EffectFlock } from "@opencode-ai/util/effect-flock" @@ -239,4 +239,4 @@ function cacheOperation(effect: Effect.Effect, operation: stri ) } -export * as RepositoryCache from "./repository-cache" +export * as RepositoryCache from "./repository-cache.js" diff --git a/packages/core/src/repository.ts b/packages/core/src/repository.ts index 1e84bf828d6..6de2737a280 100644 --- a/packages/core/src/repository.ts +++ b/packages/core/src/repository.ts @@ -201,4 +201,4 @@ function buildFile(input: { url: URL; remote: string }) { } satisfies FileReference } -export * as Repository from "./repository" +export * as Repository from "./repository.js" diff --git a/packages/core/src/ripgrep.ts b/packages/core/src/ripgrep.ts index f7649c7f3cd..44f8a67fe32 100644 --- a/packages/core/src/ripgrep.ts +++ b/packages/core/src/ripgrep.ts @@ -1,13 +1,13 @@ -export * as Ripgrep from "./ripgrep" +export * as Ripgrep from "./ripgrep.js" import { Context, Effect, Fiber, Layer, Schema, Stream } from "effect" import { ChildProcess } from "effect/unstable/process" import { Entry, Match } from "@opencode-ai/schema/filesystem" import { makeLocationNode } from "@opencode-ai/util/effect/app-node" import { collectStream, waitForAbort } from "@opencode-ai/util/process" -import { Environment } from "./environment" -import { NonNegativeInt, PositiveInt, RelativePath } from "./schema" -import { RipgrepBinary } from "./ripgrep/binary" +import { Environment } from "./environment/index.js" +import { NonNegativeInt, PositiveInt, RelativePath } from "./schema.js" +import { RipgrepBinary } from "./ripgrep/binary.js" /** * Small core-owned ripgrep execution adapter. It deliberately exposes raw diff --git a/packages/core/src/ripgrep/binary.ts b/packages/core/src/ripgrep/binary.ts index 9225d2a861c..be10344e562 100644 --- a/packages/core/src/ripgrep/binary.ts +++ b/packages/core/src/ripgrep/binary.ts @@ -8,7 +8,7 @@ import { makeGlobalNode } from "@opencode-ai/util/effect/app-node" import { httpClient } from "@opencode-ai/util/effect/app-node-platform" import { FSUtil } from "@opencode-ai/util/fs-util" import { Global } from "@opencode-ai/util/global" -import { which } from "../util/which" +import { which } from "../util/which.js" export namespace RipgrepBinary { const VERSION = "15.1.0" diff --git a/packages/core/src/session.ts b/packages/core/src/session.ts index 3c8f8161b9b..9a44369d81c 100644 --- a/packages/core/src/session.ts +++ b/packages/core/src/session.ts @@ -1,54 +1,54 @@ -export * as Session from "./session" -export * from "./session/schema" +export * as Session from "./session.js" +export * from "./session/schema.js" import { Effect, Layer, Schema, Context, Stream, Scope } from "effect" import { ListAnchor } from "@opencode-ai/schema/session" import { and, asc, desc, eq, gt, isNull, like, lt, or, type SQL } from "drizzle-orm" -import { Project } from "./project" -import { Workspace } from "./workspace" -import { Model } from "./model" -import { Location } from "./location" -import { SessionMessage } from "./session/message" +import { Project } from "./project.js" +import { Workspace } from "./workspace.js" +import { Model } from "./model.js" +import { Location } from "./location.js" +import { SessionMessage } from "./session/message.js" import { Base64, FileAttachment, Prompt } from "@opencode-ai/schema/prompt" import { PromptInput } from "@opencode-ai/schema/prompt-input" -import { Bus } from "./bus" -import { Database } from "./database/database" -import { SessionProjector } from "./session/projector" -import { SessionMessageTable, SessionTable } from "./session/sql" -import { SessionSchema } from "./session/schema" -import { AbsolutePath, PositiveInt, RelativePath } from "./schema" -import { Agent } from "./agent" +import { Bus } from "./bus.js" +import { Database } from "./database/database.js" +import { SessionProjector } from "./session/projector.js" +import { SessionMessageTable, SessionTable } from "./session/sql.js" +import { SessionSchema } from "./session/schema.js" +import { AbsolutePath, PositiveInt, RelativePath } from "./schema.js" +import { Agent } from "./agent.js" import { Money } from "@opencode-ai/schema/money" -import { App } from "./app" -import { Slug } from "./util/slug" -import { upsertProject } from "./project/sql" +import { App } from "./app.js" +import { Slug } from "./util/slug.js" +import { upsertProject } from "./project/sql.js" import path from "path" -import { fromRow } from "./session/info" -import { SessionRunner } from "./session/runner/index" -import { SessionStore } from "./session/store" -import { SessionExecution } from "./session/execution" -import { ForkEmptyError, MessageDecodeError, NotFoundError } from "./session/error" +import { fromRow } from "./session/info.js" +import { SessionRunner } from "./session/runner/index.js" +import { SessionStore } from "./session/store.js" +import { SessionExecution } from "./session/execution.js" +import { ForkEmptyError, MessageDecodeError, NotFoundError } from "./session/error.js" import { makeGlobalNode } from "@opencode-ai/util/effect/app-node" -import { LocationServiceMap } from "./location-service-map" -import { SessionEvent } from "./session/event" -import { SessionPending } from "./session/pending" -import { InstructionState } from "./session/instruction-state" -import { SessionGenerate } from "./session/generate" -import { Snapshot } from "./snapshot" -import { SessionRevert } from "./session/revert" +import { LocationServiceMap } from "./location-service-map.js" +import { SessionEvent } from "./session/event.js" +import { SessionPending } from "./session/pending.js" +import { InstructionState } from "./session/instruction-state.js" +import { SessionGenerate } from "./session/generate.js" +import { Snapshot } from "./snapshot.js" +import { SessionRevert } from "./session/revert.js" import { Session } from "@opencode-ai/schema/session" import { FSUtil } from "@opencode-ai/util/fs-util" -import { Image } from "./image" -import { Mime } from "./mime" +import { Image } from "./image.js" +import { Mime } from "./mime.js" import type { EventLog } from "@opencode-ai/schema/event-log" import { Event } from "@opencode-ai/schema/event" -import { Skill } from "./skill" -import { Job } from "./job" -import { Command } from "./command" -import { Shell } from "./shell" +import { Skill } from "./skill.js" +import { Job } from "./job.js" +import { Command } from "./command.js" +import { Shell } from "./shell.js" import { Global } from "@opencode-ai/util/global" import { Shell as ShellSchema } from "@opencode-ai/schema/shell" -import { KeyedMutex } from "./effect/keyed-mutex" +import { KeyedMutex } from "./effect/keyed-mutex.js" import { fileURLToPath } from "url" // get project -> project.locations diff --git a/packages/core/src/session/compaction.ts b/packages/core/src/session/compaction.ts index 1805bcef49b..26cbf325229 100644 --- a/packages/core/src/session/compaction.ts +++ b/packages/core/src/session/compaction.ts @@ -1,28 +1,28 @@ -export * as SessionCompaction from "./compaction" +export * as SessionCompaction from "./compaction.js" import { LLM, LLMClient, AIError, LLMEvent, Message, type LLMRequest, type LanguageModel } from "@opencode-ai/ai" import type { StreamOptions } from "@opencode-ai/ai/route" import { SessionError } from "@opencode-ai/schema/session-error" import { Document, type Entry } from "@opencode-ai/schema/config" import { Context, Effect, Layer, Stream } from "effect" -import { Config } from "../config" -import { Bus } from "../bus" +import { Config } from "../config.js" +import { Bus } from "../bus.js" import { makeLocationNode } from "@opencode-ai/util/effect/app-node" -import { llmClient } from "../effect/app-node-platform" -import { SessionEvent } from "./event" -import type { SessionMessage } from "./message" -import { SessionModelHeaders } from "./model-headers" -import { SessionModelHttp } from "./model-http" -import { SessionPromptCacheKey } from "./prompt-cache-key" -import { App } from "../app" -import { SessionRunnerModel } from "./runner/model" -import { SessionSchema } from "./schema" -import { toSessionError } from "./to-session-error" -import { Token } from "../util/token" -import type { Info, Ref } from "../model" -import { SessionUsage } from "./usage" -import { PluginHooks } from "../plugin/hooks" -import { Agent } from "../agent" +import { llmClient } from "../effect/app-node-platform.js" +import { SessionEvent } from "./event.js" +import type { SessionMessage } from "./message.js" +import { SessionModelHeaders } from "./model-headers.js" +import { SessionModelHttp } from "./model-http.js" +import { SessionPromptCacheKey } from "./prompt-cache-key.js" +import { App } from "../app.js" +import { SessionRunnerModel } from "./runner/model.js" +import { SessionSchema } from "./schema.js" +import { toSessionError } from "./to-session-error.js" +import { Token } from "../util/token.js" +import type { Info, Ref } from "../model.js" +import { SessionUsage } from "./usage.js" +import { PluginHooks } from "../plugin/hooks.js" +import { Agent } from "../agent.js" const DEFAULT_BUFFER = 20_000 const DEFAULT_KEEP_TOKENS = 15_000 diff --git a/packages/core/src/session/context.ts b/packages/core/src/session/context.ts index 225ca0cf2b5..212e0493a91 100644 --- a/packages/core/src/session/context.ts +++ b/packages/core/src/session/context.ts @@ -1,26 +1,26 @@ -export * as SessionContext from "./context" +export * as SessionContext from "./context.js" import { Context, Effect, Layer } from "effect" -import { Agent } from "../agent" -import { CodeModeInstructions } from "../codemode/instructions" -import { Database } from "../database/database" +import { Agent } from "../agent.js" +import { CodeModeInstructions } from "../codemode/instructions.js" +import { Database } from "../database/database.js" import { makeLocationNode } from "@opencode-ai/util/effect/app-node" -import { InstructionDiscovery } from "../instruction-discovery" -import { Instructions } from "../instructions/index" -import { InstructionBuiltIns } from "../instructions/builtins" -import { Location } from "../location" -import { McpInstructions } from "../mcp/instructions" -import { PluginSupervisor } from "../plugin/supervisor" -import { ReferenceInstructions } from "../reference/instructions" -import { SkillInstructions } from "../skill/instructions" -import { Tool } from "../tool" -import { AgentNotFoundError } from "./error" -import { SessionHistory } from "./history" -import { InstructionEntry } from "./instruction-entry" -import { SessionMessage } from "./message" -import { SessionRunnerModel } from "./runner/model" -import { SessionSchema } from "./schema" -import { SessionStore } from "./store" +import { InstructionDiscovery } from "../instruction-discovery.js" +import { Instructions } from "../instructions/index.js" +import { InstructionBuiltIns } from "../instructions/builtins.js" +import { Location } from "../location.js" +import { McpInstructions } from "../mcp/instructions.js" +import { PluginSupervisor } from "../plugin/supervisor.js" +import { ReferenceInstructions } from "../reference/instructions.js" +import { SkillInstructions } from "../skill/instructions.js" +import { Tool } from "../tool.js" +import { AgentNotFoundError } from "./error.js" +import { SessionHistory } from "./history.js" +import { InstructionEntry } from "./instruction-entry.js" +import { SessionMessage } from "./message.js" +import { SessionRunnerModel } from "./runner/model.js" +import { SessionSchema } from "./schema.js" +import { SessionStore } from "./store.js" export interface Selection { readonly session: SessionSchema.Info diff --git a/packages/core/src/session/error.ts b/packages/core/src/session/error.ts index 940f74cca57..7db21c56971 100644 --- a/packages/core/src/session/error.ts +++ b/packages/core/src/session/error.ts @@ -1,9 +1,9 @@ -export * as SessionErrors from "./error" +export * as SessionErrors from "./error.js" import { Schema } from "effect" import { Agent } from "@opencode-ai/schema/agent" -import { SessionMessage } from "./message" -import { SessionSchema } from "./schema" +import { SessionMessage } from "./message.js" +import { SessionSchema } from "./schema.js" import { SessionError } from "@opencode-ai/schema/session-error" export class NotFoundError extends Schema.TaggedErrorClass()("Session.NotFoundError", { diff --git a/packages/core/src/session/execution.ts b/packages/core/src/session/execution.ts index acbbb5925aa..8c60a894b85 100644 --- a/packages/core/src/session/execution.ts +++ b/packages/core/src/session/execution.ts @@ -1,16 +1,16 @@ -export * as SessionExecution from "./execution" +export * as SessionExecution from "./execution.js" import { Cause, Context, Effect, Exit, Layer } from "effect" -import { Bus } from "../bus" -import { LocationServiceMap } from "../location-service-map" +import { Bus } from "../bus.js" +import { LocationServiceMap } from "../location-service-map.js" import { makeGlobalNode } from "@opencode-ai/util/effect/app-node" -import { SessionEvent } from "./event" -import { SessionRunCoordinator } from "./run-coordinator" -import { SessionRunner } from "./runner/index" -import { SessionSchema } from "./schema" -import { SessionStore } from "./store" -import { toSessionError } from "./to-session-error" -import { UserInterruptedError } from "./error" +import { SessionEvent } from "./event.js" +import { SessionRunCoordinator } from "./run-coordinator.js" +import { SessionRunner } from "./runner/index.js" +import { SessionSchema } from "./schema.js" +import { SessionStore } from "./store.js" +import { toSessionError } from "./to-session-error.js" +import { UserInterruptedError } from "./error.js" export interface Interface { /** Snapshots active execution owned by this process. */ diff --git a/packages/core/src/session/execution/restart.ts b/packages/core/src/session/execution/restart.ts index 22a8912514d..7413d690385 100644 --- a/packages/core/src/session/execution/restart.ts +++ b/packages/core/src/session/execution/restart.ts @@ -1,12 +1,12 @@ -export * as SessionRestart from "./restart" +export * as SessionRestart from "./restart.js" import { Context, Effect, Layer } from "effect" import { makeGlobalNode } from "@opencode-ai/util/effect/app-node" -import { Bus } from "../../bus" -import { SessionEvent } from "../event" -import { SessionExecution } from "../execution" -import { SessionSchema } from "../schema" -import { SessionStore } from "../store" +import { Bus } from "../../bus.js" +import { SessionEvent } from "../event.js" +import { SessionExecution } from "../execution.js" +import { SessionSchema } from "../schema.js" +import { SessionStore } from "../store.js" const CONTINUE_AFTER_SERVER_RESTART = "The server restarted while you were working. Continue from where you left off without repeating completed work." diff --git a/packages/core/src/session/generate-node.ts b/packages/core/src/session/generate-node.ts index a36582ce386..2ecf94d44b3 100644 --- a/packages/core/src/session/generate-node.ts +++ b/packages/core/src/session/generate-node.ts @@ -1,20 +1,20 @@ -export * as SessionGenerateNode from "./generate-node" +export * as SessionGenerateNode from "./generate-node.js" import { LLM, LLMClient, Message, SystemPart } from "@opencode-ai/ai" import { Effect, Layer } from "effect" -import { Database } from "../database/database" +import { Database } from "../database/database.js" import { makeLocationNode } from "@opencode-ai/util/effect/app-node" -import { App } from "../app" -import { llmClient } from "../effect/app-node-platform" -import { PluginHooks } from "../plugin/hooks" -import { SessionContext } from "./context" -import { SessionGenerate } from "./generate" -import { SessionHistory } from "./history" -import { SessionModelHeaders } from "./model-headers" -import { SessionPromptCacheKey } from "./prompt-cache-key" -import { SessionRunnerModel } from "./runner/model" +import { App } from "../app.js" +import { llmClient } from "../effect/app-node-platform.js" +import { PluginHooks } from "../plugin/hooks.js" +import { SessionContext } from "./context.js" +import { SessionGenerate } from "./generate.js" +import { SessionHistory } from "./history.js" +import { SessionModelHeaders } from "./model-headers.js" +import { SessionPromptCacheKey } from "./prompt-cache-key.js" +import { SessionRunnerModel } from "./runner/model.js" import PROMPT_DEFAULT from "./runner/prompt/base.txt" -import { toLLMMessages } from "./runner/to-llm-message" +import { toLLMMessages } from "./runner/to-llm-message.js" export const layer = Layer.effect( SessionGenerate.Service, diff --git a/packages/core/src/session/generate.ts b/packages/core/src/session/generate.ts index 64124f1fb23..23e89f2d4ed 100644 --- a/packages/core/src/session/generate.ts +++ b/packages/core/src/session/generate.ts @@ -1,11 +1,11 @@ -export * as SessionGenerate from "./generate" +export * as SessionGenerate from "./generate.js" import type { AIError } from "@opencode-ai/ai" import { Context, type Effect } from "effect" -import type { Instructions } from "../instructions" -import type { AgentNotFoundError } from "./error" -import type { SessionRunnerModel } from "./runner/model" -import type { SessionSchema } from "./schema" +import type { Instructions } from "../instructions/index.js" +import type { AgentNotFoundError } from "./error.js" +import type { SessionRunnerModel } from "./runner/model.js" +import type { SessionSchema } from "./schema.js" export type Error = AgentNotFoundError | Instructions.InitializationBlocked | SessionRunnerModel.Error | AIError diff --git a/packages/core/src/session/history.ts b/packages/core/src/session/history.ts index d2b024c276e..637ca0ebaed 100644 --- a/packages/core/src/session/history.ts +++ b/packages/core/src/session/history.ts @@ -1,12 +1,12 @@ import { and, asc, desc, eq, gte, sql } from "drizzle-orm" import { Effect, Schema } from "effect" -import { Database } from "../database/database" -import { MessageDecodeError } from "./error" -import { SessionMessage } from "./message" -import { SessionSchema } from "./schema" -import { Instructions } from "../instructions/index" -import { InstructionState } from "./instruction-state" -import { SessionMessageTable } from "./sql" +import { Database } from "../database/database.js" +import { MessageDecodeError } from "./error.js" +import { SessionMessage } from "./message.js" +import { SessionSchema } from "./schema.js" +import { Instructions } from "../instructions/index.js" +import { InstructionState } from "./instruction-state.js" +import { SessionMessageTable } from "./sql.js" type DatabaseService = Database.Interface["db"] @@ -132,4 +132,4 @@ export const firstUserMessage = Effect.fn("SessionHistory.firstUserMessage")(fun return message?.type === "user" ? message : undefined }) -export * as SessionHistory from "./history" +export * as SessionHistory from "./history.js" diff --git a/packages/core/src/session/info.ts b/packages/core/src/session/info.ts index a5b05b213f6..84bdbc61d15 100644 --- a/packages/core/src/session/info.ts +++ b/packages/core/src/session/info.ts @@ -1,13 +1,13 @@ import { DateTime, Schema } from "effect" -import { Agent } from "../agent" -import { Location } from "../location" -import { Model } from "../model" -import { Project } from "../project" -import { Provider } from "../provider" -import { AbsolutePath, RelativePath } from "../schema" -import { Workspace } from "../workspace" -import { SessionSchema } from "./schema" -import { SessionTable } from "./sql" +import { Agent } from "../agent.js" +import { Location } from "../location.js" +import { Model } from "../model.js" +import { Project } from "../project.js" +import { Provider } from "../provider.js" +import { AbsolutePath, RelativePath } from "../schema.js" +import { Workspace } from "../workspace.js" +import { SessionSchema } from "./schema.js" +import { SessionTable } from "./sql.js" import { PersistedRevert } from "@opencode-ai/schema/session-revert" import { Money } from "@opencode-ai/schema/money" diff --git a/packages/core/src/session/instruction-entry.ts b/packages/core/src/session/instruction-entry.ts index f7151215ab2..990c3bcdb22 100644 --- a/packages/core/src/session/instruction-entry.ts +++ b/packages/core/src/session/instruction-entry.ts @@ -1,13 +1,13 @@ -export * as InstructionEntry from "./instruction-entry" +export * as InstructionEntry from "./instruction-entry.js" import { and, asc, eq, isNotNull, isNull, ne, or } from "drizzle-orm" import { Context, Effect, Layer, Schema } from "effect" import { InstructionEntry } from "@opencode-ai/schema/instruction-entry" -import { Database } from "../database/database" +import { Database } from "../database/database.js" import { makeLocationNode } from "@opencode-ai/util/effect/app-node" -import { Instructions } from "../instructions/index" -import { SessionSchema } from "./schema" -import { InstructionEntryTable } from "./sql" +import { Instructions } from "../instructions/index.js" +import { SessionSchema } from "./schema.js" +import { InstructionEntryTable } from "./sql.js" export const Key = InstructionEntry.Key export type Key = typeof Key.Type diff --git a/packages/core/src/session/instruction-state.ts b/packages/core/src/session/instruction-state.ts index 0db2ed4d683..e1c122a1e30 100644 --- a/packages/core/src/session/instruction-state.ts +++ b/packages/core/src/session/instruction-state.ts @@ -1,13 +1,13 @@ -export * as InstructionState from "./instruction-state" +export * as InstructionState from "./instruction-state.js" import { eq, inArray, sql } from "drizzle-orm" import { Effect, Option, Schema } from "effect" -import type { Database } from "../database/database" -import type { Bus } from "../bus" -import { Instructions } from "../instructions/index" -import { SessionEvent } from "./event" -import { SessionSchema } from "./schema" -import { InstructionBlobTable, InstructionStateTable } from "./sql" +import type { Database } from "../database/database.js" +import type { Bus } from "../bus.js" +import { Instructions } from "../instructions/index.js" +import { SessionEvent } from "./event.js" +import { SessionSchema } from "./schema.js" +import { InstructionBlobTable, InstructionStateTable } from "./sql.js" type DatabaseService = Database.Interface["db"] diff --git a/packages/core/src/session/instructions.ts b/packages/core/src/session/instructions.ts index 4688c79bb3f..15ba72d7a58 100644 --- a/packages/core/src/session/instructions.ts +++ b/packages/core/src/session/instructions.ts @@ -1,16 +1,16 @@ -export * as SessionInstructions from "./instructions" +export * as SessionInstructions from "./instructions.js" import { relative } from "path" import { Context, DateTime, Effect, Layer, Option, Ref, Schema } from "effect" import { makeLocationNode } from "@opencode-ai/util/effect/app-node" -import { Bus } from "../bus" +import { Bus } from "../bus.js" import { FSUtil } from "@opencode-ai/util/fs-util" -import { Location } from "../location" -import { SessionEvent } from "./event" -import { MessageDecodeError } from "./error" -import { SessionMessage } from "./message" -import { SessionSchema } from "./schema" -import { SessionStore } from "./store" +import { Location } from "../location.js" +import { SessionEvent } from "./event.js" +import { MessageDecodeError } from "./error.js" +import { SessionMessage } from "./message.js" +import { SessionSchema } from "./schema.js" +import { SessionStore } from "./store.js" const InjectedMetadata = Schema.Struct({ instruction: Schema.Struct({ paths: Schema.Array(Schema.String) }), diff --git a/packages/core/src/session/message-updater.ts b/packages/core/src/session/message-updater.ts index 31baa23270e..bbcf6c575a9 100644 --- a/packages/core/src/session/message-updater.ts +++ b/packages/core/src/session/message-updater.ts @@ -1,7 +1,7 @@ import { castDraft, produce, type WritableDraft } from "immer" import { DateTime, Effect, Match, pipe } from "effect" -import { SessionEvent } from "./event" -import { SessionMessage } from "./message" +import { SessionEvent } from "./event.js" +import { SessionMessage } from "./message.js" export interface Adapter { readonly getAgent: () => Effect.Effect @@ -427,4 +427,4 @@ export function update(adapter: Adapter, event: SessionEvent.DurableEvent) { return project(event) } -export * as SessionMessageUpdater from "./message-updater" +export * as SessionMessageUpdater from "./message-updater.js" diff --git a/packages/core/src/session/message.ts b/packages/core/src/session/message.ts index 47f1baac052..ef3d7f4e560 100644 --- a/packages/core/src/session/message.ts +++ b/packages/core/src/session/message.ts @@ -1,2 +1,2 @@ -export * as SessionMessage from "./message" +export * as SessionMessage from "./message.js" export * from "@opencode-ai/schema/session-message" diff --git a/packages/core/src/session/model-headers.ts b/packages/core/src/session/model-headers.ts index 1491038a2a4..ab404b32ae0 100644 --- a/packages/core/src/session/model-headers.ts +++ b/packages/core/src/session/model-headers.ts @@ -1,7 +1,7 @@ -export * as SessionModelHeaders from "./model-headers" +export * as SessionModelHeaders from "./model-headers.js" -import { App } from "../app" -import { SessionSchema } from "./schema" +import { App } from "../app.js" +import { SessionSchema } from "./schema.js" export const make = (session: Pick, app: App.Info) => ({ "x-session-affinity": session.id, diff --git a/packages/core/src/session/model-http.ts b/packages/core/src/session/model-http.ts index 97b22e9af75..a1053576d6d 100644 --- a/packages/core/src/session/model-http.ts +++ b/packages/core/src/session/model-http.ts @@ -1,4 +1,4 @@ -export * as SessionModelHttp from "./model-http" +export * as SessionModelHttp from "./model-http.js" import type { StreamOptions } from "@opencode-ai/ai/route" import type { Agent } from "@opencode-ai/schema/agent" @@ -6,7 +6,7 @@ import type { Model } from "@opencode-ai/schema/model" import type { Session } from "@opencode-ai/schema/session" import { Effect, Stream } from "effect" import { HttpClientRequest, HttpClientResponse } from "effect/unstable/http" -import { PluginHooks } from "../plugin/hooks" +import { PluginHooks } from "../plugin/hooks.js" export const middleware = ( diff --git a/packages/core/src/session/model-request.ts b/packages/core/src/session/model-request.ts index 0f3c5b13a62..86eee2a6507 100644 --- a/packages/core/src/session/model-request.ts +++ b/packages/core/src/session/model-request.ts @@ -1,4 +1,4 @@ -export * as SessionModelRequest from "./model-request" +export * as SessionModelRequest from "./model-request.js" import { LLM, Message, SystemPart, type LLMRequest } from "@opencode-ai/ai" import type { StreamOptions } from "@opencode-ai/ai/route" @@ -6,20 +6,20 @@ import type { Content } from "@opencode-ai/schema/tool" import { SessionError } from "@opencode-ai/schema/session-error" import { Cause, Config, Context, Effect, Layer, Result } from "effect" import { makeLocationNode } from "@opencode-ai/util/effect/app-node" -import { App } from "../app" -import { Model } from "../model" -import { Permission } from "../permission" -import { PluginHooks } from "../plugin/hooks" -import { QuestionTool } from "../tool/plugin/question" -import { Tool } from "../tool" -import { SessionContext } from "./context" -import { SessionModelHeaders } from "./model-headers" -import { SessionModelHttp } from "./model-http" -import { SessionPromptCacheKey } from "./prompt-cache-key" -import { PromptCacheDiagnostics } from "./prompt-cache-diagnostics" -import { MAX_STEPS_PROMPT } from "./runner/max-steps" +import { App } from "../app.js" +import { Model } from "../model.js" +import { Permission } from "../permission.js" +import { PluginHooks } from "../plugin/hooks.js" +import { QuestionTool } from "../tool/plugin/question.js" +import { Tool } from "../tool.js" +import { SessionContext } from "./context.js" +import { SessionModelHeaders } from "./model-headers.js" +import { SessionModelHttp } from "./model-http.js" +import { SessionPromptCacheKey } from "./prompt-cache-key.js" +import { PromptCacheDiagnostics } from "./prompt-cache-diagnostics.js" +import { MAX_STEPS_PROMPT } from "./runner/max-steps.js" import PROMPT_DEFAULT from "./runner/prompt/base.txt" -import { toLLMMessages } from "./runner/to-llm-message" +import { toLLMMessages } from "./runner/to-llm-message.js" const IMAGE_BYTES_TRIGGER = 25 * 1024 * 1024 // 25 MiB const IMAGE_BYTES_TARGET = 15 * 1024 * 1024 // 15 MiB diff --git a/packages/core/src/session/pending.ts b/packages/core/src/session/pending.ts index 9e6dad94d14..d491e13c2ad 100644 --- a/packages/core/src/session/pending.ts +++ b/packages/core/src/session/pending.ts @@ -1,4 +1,4 @@ -export * as SessionPending from "./pending" +export * as SessionPending from "./pending.js" import { and, asc, eq, or } from "drizzle-orm" import { DateTime, Effect, Schema } from "effect" @@ -12,13 +12,13 @@ import { User, UserData, } from "@opencode-ai/schema/session-pending" -import type { Database } from "../database/database" -import { Bus } from "../bus" -import { KeyedMutex } from "../effect/keyed-mutex" -import { SessionEvent } from "./event" -import { SessionMessage } from "./message" -import { SessionSchema } from "./schema" -import { SessionMessageTable, SessionPendingTable } from "./sql" +import type { Database } from "../database/database.js" +import { Bus } from "../bus.js" +import { KeyedMutex } from "../effect/keyed-mutex.js" +import { SessionEvent } from "./event.js" +import { SessionMessage } from "./message.js" +import { SessionSchema } from "./schema.js" +import { SessionMessageTable, SessionPendingTable } from "./sql.js" type DatabaseService = Database.Interface["db"] diff --git a/packages/core/src/session/projector.ts b/packages/core/src/session/projector.ts index 3588dde6ef3..21c18441a21 100644 --- a/packages/core/src/session/projector.ts +++ b/packages/core/src/session/projector.ts @@ -1,22 +1,22 @@ -export * as SessionProjector from "./projector" +export * as SessionProjector from "./projector.js" import { and, asc, desc, eq, gt, gte, lt, lte, sql } from "drizzle-orm" import { DateTime, Effect, Layer, Schema, Stream } from "effect" -import { Database } from "../database/database" -import { Bus } from "../bus" +import { Database } from "../database/database.js" +import { Bus } from "../bus.js" import { makeGlobalNode } from "@opencode-ai/util/effect/app-node" -import { Agent } from "../agent" -import { Model } from "../model" -import { SessionEvent } from "./event" -import { SessionMessage } from "./message" -import { SessionMessageUpdater } from "./message-updater" -import { SessionPending } from "./pending" -import { Workspace } from "../workspace" -import { InstructionState } from "./instruction-state" -import { SessionPendingTable, SessionMessageTable, SessionTable } from "./sql" -import { Slug } from "../util/slug" +import { Agent } from "../agent.js" +import { Model } from "../model.js" +import { SessionEvent } from "./event.js" +import { SessionMessage } from "./message.js" +import { SessionMessageUpdater } from "./message-updater.js" +import { SessionPending } from "./pending.js" +import { Workspace } from "../workspace.js" +import { InstructionState } from "./instruction-state.js" +import { SessionPendingTable, SessionMessageTable, SessionTable } from "./sql.js" +import { Slug } from "../util/slug.js" import { Money } from "@opencode-ai/schema/money" -import type { SessionSchema } from "./schema" +import type { SessionSchema } from "./schema.js" type DatabaseService = Database.Interface["db"] type CurrentDurableEvent = Extract diff --git a/packages/core/src/session/prompt-cache-diagnostics.ts b/packages/core/src/session/prompt-cache-diagnostics.ts index 99ab54576a1..1b38b1da739 100644 --- a/packages/core/src/session/prompt-cache-diagnostics.ts +++ b/packages/core/src/session/prompt-cache-diagnostics.ts @@ -1,4 +1,4 @@ -export * as PromptCacheDiagnostics from "./prompt-cache-diagnostics" +export * as PromptCacheDiagnostics from "./prompt-cache-diagnostics.js" import type { LLMRequest } from "@opencode-ai/ai" import { Hash } from "@opencode-ai/util/hash" diff --git a/packages/core/src/session/prompt-cache-key.ts b/packages/core/src/session/prompt-cache-key.ts index 6c8ec873b20..1408de877c2 100644 --- a/packages/core/src/session/prompt-cache-key.ts +++ b/packages/core/src/session/prompt-cache-key.ts @@ -1,6 +1,6 @@ -export * as SessionPromptCacheKey from "./prompt-cache-key" +export * as SessionPromptCacheKey from "./prompt-cache-key.js" -import { SessionSchema } from "./schema" +import { SessionSchema } from "./schema.js" export const make = (sessionID: SessionSchema.ID) => /^ses_[0-9a-f]{64}$/.test(sessionID) ? sessionID.slice(4) : sessionID diff --git a/packages/core/src/session/revert.ts b/packages/core/src/session/revert.ts index 429170e9870..d0f080fc758 100644 --- a/packages/core/src/session/revert.ts +++ b/packages/core/src/session/revert.ts @@ -1,15 +1,15 @@ -export * as SessionRevert from "./revert" +export * as SessionRevert from "./revert.js" import { and, asc, eq, gt } from "drizzle-orm" import { Effect, Schema } from "effect" -import { Database } from "../database/database" -import { Bus } from "../bus" -import { RelativePath } from "../schema" -import { Snapshot } from "../snapshot" -import { SessionEvent } from "./event" -import { SessionMessage } from "./message" -import { SessionSchema } from "./schema" -import { SessionMessageTable } from "./sql" +import { Database } from "../database/database.js" +import { Bus } from "../bus.js" +import { RelativePath } from "../schema.js" +import { Snapshot } from "../snapshot.js" +import { SessionEvent } from "./event.js" +import { SessionMessage } from "./message.js" +import { SessionSchema } from "./schema.js" +import { SessionMessageTable } from "./sql.js" export class MessageNotFoundError extends Schema.TaggedErrorClass()( "Session.MessageNotFoundError", diff --git a/packages/core/src/session/run-coordinator.ts b/packages/core/src/session/run-coordinator.ts index c0876c7203a..d29ba0d9dd7 100644 --- a/packages/core/src/session/run-coordinator.ts +++ b/packages/core/src/session/run-coordinator.ts @@ -1,4 +1,4 @@ -export * as SessionRunCoordinator from "./run-coordinator" +export * as SessionRunCoordinator from "./run-coordinator.js" import { Deferred, Effect, Exit, Fiber, FiberSet, Scope } from "effect" diff --git a/packages/core/src/session/runner/index.ts b/packages/core/src/session/runner/index.ts index 3771c41008c..6922c287786 100644 --- a/packages/core/src/session/runner/index.ts +++ b/packages/core/src/session/runner/index.ts @@ -1,11 +1,11 @@ -export * as SessionRunner from "./index" +export * as SessionRunner from "./index.js" import type { AIError } from "@opencode-ai/ai" import { Context, Effect } from "effect" -import { SessionSchema } from "../schema" -import type { AgentNotFoundError, MessageDecodeError, StepFailedError, UserInterruptedError } from "../error" -import { SessionRunnerModel } from "./model" -import type { Instructions } from "../../instructions/index" +import { SessionSchema } from "../schema.js" +import type { AgentNotFoundError, MessageDecodeError, StepFailedError, UserInterruptedError } from "../error.js" +import { SessionRunnerModel } from "./model.js" +import type { Instructions } from "../../instructions/index.js" export type RunError = | AIError diff --git a/packages/core/src/session/runner/llm.ts b/packages/core/src/session/runner/llm.ts index 66a7223bb1f..6b5bfebead0 100644 --- a/packages/core/src/session/runner/llm.ts +++ b/packages/core/src/session/runner/llm.ts @@ -1,4 +1,4 @@ -export * as SessionRunnerLLM from "./llm" +export * as SessionRunnerLLM from "./llm.js" import { LLMClient, @@ -9,30 +9,30 @@ import { type ToolCall, } from "@opencode-ai/ai" import { Cause, Data, Effect, Exit, Fiber, FiberSet, Layer, Option, Pull, Schedule, Stream } from "effect" -import { Database } from "../../database/database" -import { Bus } from "../../bus" -import { Permission } from "../../permission" -import { QuestionTool } from "../../tool/plugin/question" -import { InstructionState } from "../instruction-state" -import { SessionCompaction } from "../compaction" -import { SessionContext } from "../context" -import { SessionEvent } from "../event" -import { SessionPending } from "../pending" -import { SessionModelRequest } from "../model-request" -import { SessionMessage } from "../message" -import { SessionSchema } from "../schema" -import { SessionStore } from "../store" -import { SessionTitle } from "../title" -import { Service } from "./index" -import { createLLMEventPublisher, type StepRecord } from "./publish-llm-event" -import { Snapshot } from "../../snapshot" +import { Database } from "../../database/database.js" +import { Bus } from "../../bus.js" +import { Permission } from "../../permission.js" +import { QuestionTool } from "../../tool/plugin/question.js" +import { InstructionState } from "../instruction-state.js" +import { SessionCompaction } from "../compaction.js" +import { SessionContext } from "../context.js" +import { SessionEvent } from "../event.js" +import { SessionPending } from "../pending.js" +import { SessionModelRequest } from "../model-request.js" +import { SessionMessage } from "../message.js" +import { SessionSchema } from "../schema.js" +import { SessionStore } from "../store.js" +import { SessionTitle } from "../title.js" +import { Service } from "./index.js" +import { createLLMEventPublisher, type StepRecord } from "./publish-llm-event.js" +import { Snapshot } from "../../snapshot.js" import { makeLocationNode } from "@opencode-ai/util/effect/app-node" -import { llmClient } from "../../effect/app-node-platform" -import { StepFailedError } from "../error" -import { toSessionError } from "../to-session-error" -import { SessionRunnerRetry } from "./retry" -import { SessionUsage } from "../usage" -import { ToolOutput } from "../../tool-output" +import { llmClient } from "../../effect/app-node-platform.js" +import { StepFailedError } from "../error.js" +import { toSessionError } from "../to-session-error.js" +import { SessionRunnerRetry } from "./retry.js" +import { SessionUsage } from "../usage.js" +import { ToolOutput } from "../../tool-output.js" /** How one model call ended: settled, awaiting a scheduled retry, or restarted by compaction. */ type CallOutcome = Data.TaggedEnum<{ diff --git a/packages/core/src/session/runner/model.ts b/packages/core/src/session/runner/model.ts index 90dd5f52f73..98e1983fcdc 100644 --- a/packages/core/src/session/runner/model.ts +++ b/packages/core/src/session/runner/model.ts @@ -1,13 +1,13 @@ -export * as SessionRunnerModel from "./model" +export * as SessionRunnerModel from "./model.js" import { makeLocationNode } from "@opencode-ai/util/effect/app-node" import { LanguageModel } from "@opencode-ai/ai" import { Context, Effect, Layer, Schema } from "effect" -import { Catalog } from "../../catalog" -import { ModelResolver } from "../../model-resolver" -import { Capabilities, ID, Info, Ref, VariantID } from "../../model" -import { Provider } from "../../provider" -import { SessionSchema } from "../schema" +import { Catalog } from "../../catalog.js" +import { ModelResolver } from "../../model-resolver.js" +import { Capabilities, ID, Info, Ref, VariantID } from "../../model.js" +import { Provider } from "../../provider.js" +import { SessionSchema } from "../schema.js" export class ModelNotSelectedError extends Schema.TaggedErrorClass()( "SessionRunnerModel.ModelNotSelectedError", diff --git a/packages/core/src/session/runner/publish-llm-event.ts b/packages/core/src/session/runner/publish-llm-event.ts index c1e95cafffb..b4c84db9228 100644 --- a/packages/core/src/session/runner/publish-llm-event.ts +++ b/packages/core/src/session/runner/publish-llm-event.ts @@ -1,16 +1,16 @@ import { type LLMEvent, type ProviderMetadata, type ToolResultValue } from "@opencode-ai/ai" import { Effect } from "effect" -import { Bus } from "../../bus" -import { Model } from "../../model" -import { SessionEvent } from "../event" -import { SessionMessage } from "../message" -import { SessionSchema } from "../schema" +import { Bus } from "../../bus.js" +import { Model } from "../../model.js" +import { SessionEvent } from "../event.js" +import { SessionMessage } from "../message.js" +import { SessionSchema } from "../schema.js" import { SessionError } from "@opencode-ai/schema/session-error" import { Money } from "@opencode-ai/schema/money" -import { Agent } from "../../agent" -import { Snapshot } from "../../snapshot" -import { RelativePath } from "../../schema" -import { SessionUsage } from "../usage" +import { Agent } from "../../agent.js" +import { Snapshot } from "../../snapshot.js" +import { RelativePath } from "../../schema.js" +import { SessionUsage } from "../usage.js" import { Tool } from "@opencode-ai/schema/tool" type Input = { diff --git a/packages/core/src/session/runner/retry.ts b/packages/core/src/session/runner/retry.ts index 21dcf9bc62d..35f0b06eadc 100644 --- a/packages/core/src/session/runner/retry.ts +++ b/packages/core/src/session/runner/retry.ts @@ -1,12 +1,12 @@ -export * as SessionRunnerRetry from "./retry" +export * as SessionRunnerRetry from "./retry.js" import { AIError } from "@opencode-ai/ai" import { SessionError } from "@opencode-ai/schema/session-error" import { Data, Duration, Effect, Schedule } from "effect" -import { Bus } from "../../bus" -import { SessionEvent } from "../event" -import { SessionMessage } from "../message" -import { SessionSchema } from "../schema" +import { Bus } from "../../bus.js" +import { SessionEvent } from "../event.js" +import { SessionMessage } from "../message.js" +import { SessionSchema } from "../schema.js" export class RetryableFailure extends Data.TaggedError("SessionRunner.RetryableFailure")<{ readonly cause: AIError diff --git a/packages/core/src/session/runner/to-llm-message.ts b/packages/core/src/session/runner/to-llm-message.ts index cedd6aac5bd..4d748f7b01e 100644 --- a/packages/core/src/session/runner/to-llm-message.ts +++ b/packages/core/src/session/runner/to-llm-message.ts @@ -1,7 +1,7 @@ import { Message, ToolCallPart, ToolResultPart, type ContentPart, type ProviderMetadata } from "@opencode-ai/ai" import { Option, Schema } from "effect" -import type { Model } from "../../model" -import { SessionMessage } from "../message" +import type { Model } from "../../model.js" +import { SessionMessage } from "../message.js" import type { FileAttachment } from "@opencode-ai/schema/prompt" const imageMimes = new Set(["image/png", "image/jpeg", "image/gif", "image/webp"]) diff --git a/packages/core/src/session/schema.ts b/packages/core/src/session/schema.ts index 05808a27992..ba66b0ded05 100644 --- a/packages/core/src/session/schema.ts +++ b/packages/core/src/session/schema.ts @@ -1,4 +1,4 @@ -export * as SessionSchema from "./schema" +export * as SessionSchema from "./schema.js" import { Session } from "@opencode-ai/schema/session" diff --git a/packages/core/src/session/sql.ts b/packages/core/src/session/sql.ts index 11a1a3fa7ce..8db29460e64 100644 --- a/packages/core/src/session/sql.ts +++ b/packages/core/src/session/sql.ts @@ -1,15 +1,15 @@ import { sqliteTable, text, integer, index, primaryKey, real, uniqueIndex } from "drizzle-orm/sqlite-core" import { sql } from "drizzle-orm" -import { directoryColumn, pathColumn } from "../database/path" -import { ProjectTable } from "../project/sql" -import type { SessionMessage } from "./message" -import type { SessionPending } from "./pending" +import { directoryColumn, pathColumn } from "../database/path.js" +import { ProjectTable } from "../project/sql.js" +import type { SessionMessage } from "./message.js" +import type { SessionPending } from "./pending.js" import type { FileDiff } from "@opencode-ai/schema/file-diff" -import { PermissionV1 } from "../v1/permission" -import { Project } from "../project" -import type { SessionSchema } from "./schema" -import { Workspace } from "../workspace" -import { Timestamps } from "../database/schema.sql" +import { PermissionV1 } from "../v1/permission.js" +import { Project } from "../project.js" +import type { SessionSchema } from "./schema.js" +import { Workspace } from "../workspace.js" +import { Timestamps } from "../database/schema.sql.js" import type { Instruction } from "@opencode-ai/schema/instruction" import type { Session } from "@opencode-ai/schema/session" import type { SyntheticData, UserData } from "@opencode-ai/schema/session-pending" diff --git a/packages/core/src/session/store.ts b/packages/core/src/session/store.ts index 1101b950ada..2fdebf14441 100644 --- a/packages/core/src/session/store.ts +++ b/packages/core/src/session/store.ts @@ -1,15 +1,15 @@ -export * as SessionStore from "./store" +export * as SessionStore from "./store.js" import { and, eq, isNotNull, isNull, sql } from "drizzle-orm" import { Context, Effect, Layer, Schema } from "effect" -import { Database } from "../database/database" +import { Database } from "../database/database.js" import { makeGlobalNode } from "@opencode-ai/util/effect/app-node" -import { SessionHistory } from "./history" -import { MessageDecodeError } from "./error" -import { SessionMessage } from "./message" +import { SessionHistory } from "./history.js" +import { MessageDecodeError } from "./error.js" +import { SessionMessage } from "./message.js" import { Session } from "@opencode-ai/schema/session" -import { SessionMessageTable, SessionTable } from "./sql" -import { fromRow } from "./info" +import { SessionMessageTable, SessionTable } from "./sql.js" +import { fromRow } from "./info.js" export interface Interface { readonly get: (sessionID: Session.ID) => Effect.Effect diff --git a/packages/core/src/session/title.ts b/packages/core/src/session/title.ts index 4372403b144..ea31303550e 100644 --- a/packages/core/src/session/title.ts +++ b/packages/core/src/session/title.ts @@ -1,24 +1,24 @@ -export * as SessionTitle from "./title" +export * as SessionTitle from "./title.js" import { LLM, LLMClient, AIError, LLMEvent, Message, type LLMRequest } from "@opencode-ai/ai" import type { StreamOptions } from "@opencode-ai/ai/route" import { Context, DateTime, Effect, Layer, Stream } from "effect" -import { Agent } from "../agent" -import { Database } from "../database/database" -import { Bus } from "../bus" +import { Agent } from "../agent.js" +import { Database } from "../database/database.js" +import { Bus } from "../bus.js" import { makeLocationNode } from "@opencode-ai/util/effect/app-node" import { isExactRootFallback } from "@opencode-ai/util/session-title-fallback" -import { App } from "../app" -import { llmClient } from "../effect/app-node-platform" -import { PluginHooks } from "../plugin/hooks" -import { SessionEvent } from "./event" -import { SessionHistory } from "./history" -import { SessionModelHeaders } from "./model-headers" -import { SessionModelHttp } from "./model-http" -import { SessionRunnerModel } from "./runner/model" -import { SessionSchema } from "./schema" -import { SessionUsage } from "./usage" -import { SessionStore } from "./store" +import { App } from "../app.js" +import { llmClient } from "../effect/app-node-platform.js" +import { PluginHooks } from "../plugin/hooks.js" +import { SessionEvent } from "./event.js" +import { SessionHistory } from "./history.js" +import { SessionModelHeaders } from "./model-headers.js" +import { SessionModelHttp } from "./model-http.js" +import { SessionRunnerModel } from "./runner/model.js" +import { SessionSchema } from "./schema.js" +import { SessionUsage } from "./usage.js" +import { SessionStore } from "./store.js" const MAX_LENGTH = 100 const titleChanged = Symbol("Session title changed") diff --git a/packages/core/src/session/to-session-error.ts b/packages/core/src/session/to-session-error.ts index a13e013e8a3..c5ee9e68579 100644 --- a/packages/core/src/session/to-session-error.ts +++ b/packages/core/src/session/to-session-error.ts @@ -1,11 +1,11 @@ import { AIError, ToolFailure } from "@opencode-ai/ai" import { Tool } from "@opencode-ai/schema/tool" import { SessionError } from "@opencode-ai/schema/session-error" -import { Permission } from "../permission" -import { Question } from "../question" -import { Integration } from "../integration" -import { AgentNotFoundError, StepFailedError, UserInterruptedError } from "./error" -import { SessionRunnerModel } from "./runner/model" +import { Permission } from "../permission.js" +import { Question } from "../question.js" +import { Integration } from "../integration.js" +import { AgentNotFoundError, StepFailedError, UserInterruptedError } from "./error.js" +import { SessionRunnerModel } from "./runner/model.js" export function toSessionError(cause: unknown): SessionError.Error { if (cause instanceof AIError) { diff --git a/packages/core/src/session/transfer.ts b/packages/core/src/session/transfer.ts index e9919deadb9..92a3f12182c 100644 --- a/packages/core/src/session/transfer.ts +++ b/packages/core/src/session/transfer.ts @@ -1,4 +1,4 @@ -export * as SessionTransfer from "./transfer" +export * as SessionTransfer from "./transfer.js" import { SessionTransfer } from "@opencode-ai/schema/session-transfer" import { Tool } from "@opencode-ai/schema/tool" @@ -7,19 +7,19 @@ import { eq } from "drizzle-orm" import { Context, DateTime, Effect, Layer, Schema } from "effect" import path from "path" import { makeGlobalNode } from "@opencode-ai/util/effect/app-node" -import { App } from "../app" -import { Bus } from "../bus" -import { Database } from "../database/database" -import { Location } from "../location" -import { Project } from "../project" -import { upsertProject } from "../project/sql" -import { AbsolutePath, RelativePath } from "../schema" -import { Session } from "../session" -import { Slug } from "../util/slug" -import { SessionEvent } from "./event" -import { SessionMessage } from "./message" -import { SessionProjector } from "./projector" -import { SessionMessageTable, SessionTable } from "./sql" +import { App } from "../app.js" +import { Bus } from "../bus.js" +import { Database } from "../database/database.js" +import { Location } from "../location.js" +import { Project } from "../project.js" +import { upsertProject } from "../project/sql.js" +import { AbsolutePath, RelativePath } from "../schema.js" +import { Session } from "../session.js" +import { Slug } from "../util/slug.js" +import { SessionEvent } from "./event.js" +import { SessionMessage } from "./message.js" +import { SessionProjector } from "./projector.js" +import { SessionMessageTable, SessionTable } from "./sql.js" export const Data = SessionTransfer.Data export type Data = SessionTransfer.Data diff --git a/packages/core/src/session/usage.ts b/packages/core/src/session/usage.ts index dd38e948aae..e55f4802f1b 100644 --- a/packages/core/src/session/usage.ts +++ b/packages/core/src/session/usage.ts @@ -1,9 +1,9 @@ -export * as SessionUsage from "./usage" +export * as SessionUsage from "./usage.js" import type { Usage } from "@opencode-ai/ai" import { Money } from "@opencode-ai/schema/money" import type { TokenUsage } from "@opencode-ai/schema/token-usage" -import type { Model } from "../model" +import type { Model } from "../model.js" const safe = (value: number | undefined) => Math.max(0, Number.isFinite(value) ? (value ?? 0) : 0) diff --git a/packages/core/src/shell.ts b/packages/core/src/shell.ts index b60049c6550..38e8c1cc0db 100644 --- a/packages/core/src/shell.ts +++ b/packages/core/src/shell.ts @@ -1,4 +1,4 @@ -export * as Shell from "./shell" +export * as Shell from "./shell.js" import path from "path" import { Context, Deferred, Duration, Effect, Fiber, Layer, Schema, Stream } from "effect" @@ -6,14 +6,14 @@ import { ChildProcess } from "effect/unstable/process" import { produce } from "immer" import { Shell } from "@opencode-ai/schema/shell" import { makeLocationNode } from "@opencode-ai/util/effect/app-node" -import { Config } from "./config" -import { Bus } from "./bus" -import { Environment } from "./environment" -import { Location } from "./location" +import { Config } from "./config.js" +import { Bus } from "./bus.js" +import { Environment } from "./environment/index.js" +import { Location } from "./location.js" import { Global } from "@opencode-ai/util/global" -import { ShellSelect } from "./shell/select" +import { ShellSelect } from "./shell/select.js" import type { ShellCreateBefore } from "@opencode-ai/plugin/effect/shell" -import { PluginHooks } from "./plugin/hooks" +import { PluginHooks } from "./plugin/hooks.js" export class NotFoundError extends Schema.TaggedErrorClass()("Shell.NotFoundError", { id: Shell.ID, diff --git a/packages/core/src/shell/parse.ts b/packages/core/src/shell/parse.ts index ec09e7e7182..02c035858f2 100644 --- a/packages/core/src/shell/parse.ts +++ b/packages/core/src/shell/parse.ts @@ -1,4 +1,4 @@ -export * as ShellParse from "./parse" +export * as ShellParse from "./parse.js" import { Effect } from "effect" import { fileURLToPath } from "url" @@ -6,7 +6,7 @@ import os from "os" import path from "path" import type { Node } from "web-tree-sitter" import { shellParserWasm } from "#shell-parser-wasm" -import { ShellSelect } from "./select" +import { ShellSelect } from "./select.js" type Part = { type: string; text: string } const CWD = new Set(["cd", "chdir", "popd", "pushd", "push-location", "set-location"]) diff --git a/packages/core/src/shell/select.ts b/packages/core/src/shell/select.ts index 2ef5ed66740..f0f6e959ac9 100644 --- a/packages/core/src/shell/select.ts +++ b/packages/core/src/shell/select.ts @@ -1,11 +1,11 @@ -export * as ShellSelect from "./select" +export * as ShellSelect from "./select.js" import path from "path" import { readFile } from "fs/promises" import { statSync } from "fs" import { Schema } from "effect" import { FSUtil } from "@opencode-ai/util/fs-util" -import { which } from "../util/which" +import { which } from "../util/which.js" const META: Record = { bash: { login: true }, diff --git a/packages/core/src/skill.ts b/packages/core/src/skill.ts index 182cd1bc881..2d017d2e67b 100644 --- a/packages/core/src/skill.ts +++ b/packages/core/src/skill.ts @@ -1,13 +1,13 @@ -export * as Skill from "./skill" +export * as Skill from "./skill.js" import { makeLocationNode } from "@opencode-ai/util/effect/app-node" import path from "path" import { Context, Effect, Layer, Types } from "effect" import { Skill } from "@opencode-ai/schema/skill" -import { Agent } from "./agent" -import { Bus } from "./bus" -import { Permission } from "./permission" -import { State } from "./state" +import { Agent } from "./agent.js" +import { Bus } from "./bus.js" +import { Permission } from "./permission.js" +import { State } from "./state.js" export const DirectorySource = Skill.DirectorySource export type DirectorySource = Skill.DirectorySource diff --git a/packages/core/src/skill/discovery.ts b/packages/core/src/skill/discovery.ts index 2a21a4c8639..978c02fbe2e 100644 --- a/packages/core/src/skill/discovery.ts +++ b/packages/core/src/skill/discovery.ts @@ -1,4 +1,4 @@ -export * as SkillDiscovery from "./discovery" +export * as SkillDiscovery from "./discovery.js" import path from "path" import { Context, Effect, Layer, Schedule, Schema } from "effect" @@ -7,7 +7,7 @@ import { FSUtil } from "@opencode-ai/util/fs-util" import { Global } from "@opencode-ai/util/global" import { makeGlobalNode } from "@opencode-ai/util/effect/app-node" import { httpClient } from "@opencode-ai/util/effect/app-node-platform" -import { AbsolutePath } from "../schema" +import { AbsolutePath } from "../schema.js" import { Hash } from "@opencode-ai/util/hash" const skillConcurrency = 4 diff --git a/packages/core/src/skill/instructions.ts b/packages/core/src/skill/instructions.ts index 468227aaeea..168356fd58a 100644 --- a/packages/core/src/skill/instructions.ts +++ b/packages/core/src/skill/instructions.ts @@ -1,10 +1,10 @@ -export * as SkillInstructions from "./instructions" +export * as SkillInstructions from "./instructions.js" import { makeLocationNode } from "@opencode-ai/util/effect/app-node" import { Context, Effect, Layer, Schema } from "effect" -import { Agent } from "../agent" -import { Skill } from "../skill" -import { Instructions } from "../instructions/index" +import { Agent } from "../agent.js" +import { Skill } from "../skill.js" +import { Instructions } from "../instructions/index.js" const Summary = Schema.Struct({ id: Skill.ID, diff --git a/packages/core/src/snapshot.ts b/packages/core/src/snapshot.ts index ee617073563..15e21c831da 100644 --- a/packages/core/src/snapshot.ts +++ b/packages/core/src/snapshot.ts @@ -1,15 +1,15 @@ -export * as Snapshot from "./snapshot" +export * as Snapshot from "./snapshot.js" import { makeLocationNode } from "@opencode-ai/util/effect/app-node" import path from "path" import { Context, Effect, Fiber, Layer, Schema, Scope } from "effect" -import { Config } from "./config" -import { File } from "./file" +import { Config } from "./config.js" +import { File } from "./file.js" import { FSUtil } from "@opencode-ai/util/fs-util" -import { Git } from "./git" +import { Git } from "./git.js" import { Global } from "@opencode-ai/util/global" -import { Location } from "./location" -import { AbsolutePath, RelativePath } from "./schema" +import { Location } from "./location.js" +import { AbsolutePath, RelativePath } from "./schema.js" import { ID } from "@opencode-ai/schema/snapshot" import { Hash } from "@opencode-ai/util/hash" diff --git a/packages/core/src/state.ts b/packages/core/src/state.ts index 58230da627a..e2ae02250d6 100644 --- a/packages/core/src/state.ts +++ b/packages/core/src/state.ts @@ -1,4 +1,4 @@ -export * as State from "./state" +export * as State from "./state.js" import { Clock, Context, Deferred, Effect, Scope, Semaphore } from "effect" diff --git a/packages/core/src/tool-output.ts b/packages/core/src/tool-output.ts index 2090a1d73ba..3fba417534f 100644 --- a/packages/core/src/tool-output.ts +++ b/packages/core/src/tool-output.ts @@ -1,4 +1,4 @@ -export * as ToolOutput from "./tool-output" +export * as ToolOutput from "./tool-output.js" import path from "path" import type { Tool } from "@opencode-ai/schema/tool" @@ -6,8 +6,8 @@ import { Context, Duration, Effect, Layer, Schedule } from "effect" import { makeGlobalNode, makeLocationNode } from "@opencode-ai/util/effect/app-node" import { FSUtil } from "@opencode-ai/util/fs-util" import { Global } from "@opencode-ai/util/global" -import { Config } from "./config" -import { Identifier } from "./id/id" +import { Config } from "./config.js" +import { Identifier } from "./id/id.js" export const MAX_LINES = 2_000 export const MAX_BYTES = 50 * 1024 // 50 KiB diff --git a/packages/core/src/tool.ts b/packages/core/src/tool.ts index 6719ddf9807..2d38ea7cecf 100644 --- a/packages/core/src/tool.ts +++ b/packages/core/src/tool.ts @@ -6,16 +6,16 @@ import type { ToolCall, ToolDefinition } from "@opencode-ai/ai" import { Tool } from "@opencode-ai/schema/tool" import { Context, Effect, Layer, Schema, Scope, Semaphore } from "effect" import { makeLocationNode } from "@opencode-ai/util/effect/app-node" -import type { Agent } from "./agent" -import { CodeModeCatalog } from "./codemode/catalog" -import { CodeModeTool } from "./codemode/tool" -import { Image } from "./image" -import { Permission } from "./permission" -import { PluginHooks } from "./plugin/hooks" -import { SessionMessage } from "./session/message" -import { SessionSchema } from "./session/schema" -import { definition, execute, normalizeContent } from "./tool/runtime" -import { Wildcard } from "./util/wildcard" +import type { Agent } from "./agent.js" +import { CodeModeCatalog } from "./codemode/catalog.js" +import { CodeModeTool } from "./codemode/tool.js" +import { Image } from "./image.js" +import { Permission } from "./permission.js" +import { PluginHooks } from "./plugin/hooks.js" +import { SessionMessage } from "./session/message.js" +import { SessionSchema } from "./session/schema.js" +import { definition, execute, normalizeContent } from "./tool/runtime.js" +import { Wildcard } from "./util/wildcard.js" export class RegistrationError extends Schema.TaggedErrorClass()("Tool.RegistrationError", { name: Schema.String, diff --git a/packages/core/src/tool/mcp.ts b/packages/core/src/tool/mcp.ts index 51fb8c1e3c8..c927285bb9b 100644 --- a/packages/core/src/tool/mcp.ts +++ b/packages/core/src/tool/mcp.ts @@ -1,14 +1,14 @@ -export * as McpTool from "./mcp" +export * as McpTool from "./mcp.js" import { ToolFailure } from "@opencode-ai/ai" import { McpEvent } from "@opencode-ai/schema/mcp-event" import { Effect, Exit, type JsonSchema, Layer, Scope, Semaphore, Stream } from "effect" import { makeLocationNode } from "@opencode-ai/util/effect/app-node" -import { Bus } from "../bus" +import { Bus } from "../bus.js" -import { MCP } from "../mcp" -import { Permission } from "../permission" -import { Tool } from "../tool" +import { MCP } from "../mcp/index.js" +import { Permission } from "../permission.js" +import { Tool } from "../tool.js" /** * Registry namespace and permission action names for MCP tools. diff --git a/packages/core/src/tool/plugin/edit.ts b/packages/core/src/tool/plugin/edit.ts index c7162367aae..77c2ba298d8 100644 --- a/packages/core/src/tool/plugin/edit.ts +++ b/packages/core/src/tool/plugin/edit.ts @@ -4,7 +4,7 @@ * absolute external paths retain mutation capability through a separate * external_directory approval before edit approval. */ -export * as EditTool from "./edit" +export * as EditTool from "./edit.js" import type { Context as PluginContext } from "@opencode-ai/plugin/effect/plugin" import { ToolFailure } from "@opencode-ai/ai" @@ -12,13 +12,13 @@ import { FileDiff } from "@opencode-ai/schema/file-diff" import { Bom } from "@opencode-ai/util/bom" import { Effect, Schema } from "effect" import path from "path" -import { Environment } from "../../environment" -import { FileMutation } from "../../file-mutation" -import { Formatter } from "../../formatter" -import { Location } from "../../location" -import { LocationMutation } from "../../location-mutation" -import { Permission } from "../../permission" -import { fileDiff } from "./file-diff" +import { Environment } from "../../environment/index.js" +import { FileMutation } from "../../file-mutation.js" +import { Formatter } from "../../formatter.js" +import { Location } from "../../location.js" +import { LocationMutation } from "../../location-mutation.js" +import { Permission } from "../../permission.js" +import { fileDiff } from "./file-diff.js" export const name = "edit" diff --git a/packages/core/src/tool/plugin/glob.ts b/packages/core/src/tool/plugin/glob.ts index 327db53f2f9..06bbb9ec7fe 100644 --- a/packages/core/src/tool/plugin/glob.ts +++ b/packages/core/src/tool/plugin/glob.ts @@ -1,16 +1,16 @@ -export * as GlobTool from "./glob" +export * as GlobTool from "./glob.js" import { ToolFailure } from "@opencode-ai/ai" import type { Context as PluginContext } from "@opencode-ai/plugin/effect/plugin" import { Effect, Schema } from "effect" import path from "path" -import { Environment } from "../../environment" -import { FileSystem } from "../../filesystem" -import { Location } from "../../location" -import { LocationMutation } from "../../location-mutation" -import { Ripgrep } from "../../ripgrep" -import { RelativePath } from "../../schema" -import { Permission } from "../../permission" +import { Environment } from "../../environment/index.js" +import { FileSystem } from "../../filesystem.js" +import { Location } from "../../location.js" +import { LocationMutation } from "../../location-mutation.js" +import { Ripgrep } from "../../ripgrep.js" +import { RelativePath } from "../../schema.js" +import { Permission } from "../../permission.js" export const name = "glob" diff --git a/packages/core/src/tool/plugin/grep.ts b/packages/core/src/tool/plugin/grep.ts index 0cbc47cd165..054f61711e0 100644 --- a/packages/core/src/tool/plugin/grep.ts +++ b/packages/core/src/tool/plugin/grep.ts @@ -1,16 +1,16 @@ -export * as GrepTool from "./grep" +export * as GrepTool from "./grep.js" import type { Context as PluginContext } from "@opencode-ai/plugin/effect/plugin" import { ToolFailure } from "@opencode-ai/ai" import { Effect, Schema } from "effect" import path from "path" -import { Environment } from "../../environment" -import { FileSystem } from "../../filesystem" -import { Location } from "../../location" -import { LocationMutation } from "../../location-mutation" -import { Permission } from "../../permission" -import { Ripgrep } from "../../ripgrep" -import { RelativePath } from "../../schema" +import { Environment } from "../../environment/index.js" +import { FileSystem } from "../../filesystem.js" +import { Location } from "../../location.js" +import { LocationMutation } from "../../location-mutation.js" +import { Permission } from "../../permission.js" +import { Ripgrep } from "../../ripgrep.js" +import { RelativePath } from "../../schema.js" export const name = "grep" diff --git a/packages/core/src/tool/plugin/patch.ts b/packages/core/src/tool/plugin/patch.ts index 0c22b6bcbf9..3dca1f003ac 100644 --- a/packages/core/src/tool/plugin/patch.ts +++ b/packages/core/src/tool/plugin/patch.ts @@ -1,4 +1,4 @@ -export * as PatchTool from "./patch" +export * as PatchTool from "./patch.js" import type { Context as PluginContext } from "@opencode-ai/plugin/effect/plugin" import { ToolFailure } from "@opencode-ai/ai" @@ -7,14 +7,14 @@ import { Effect, Result, Schema } from "effect" import path from "path" import { Bom } from "@opencode-ai/util/bom" import { FSUtil } from "@opencode-ai/util/fs-util" -import { Environment } from "../../environment" -import { Formatter } from "../../formatter" -import { FileMutation } from "../../file-mutation" -import { Location } from "../../location" +import { Environment } from "../../environment/index.js" +import { Formatter } from "../../formatter.js" +import { FileMutation } from "../../file-mutation.js" +import { Location } from "../../location.js" import { Patch } from "@opencode-ai/util/patch" -import { Permission } from "../../permission" +import { Permission } from "../../permission.js" import DESCRIPTION from "../patch.txt" -import { fileDiff } from "./file-diff" +import { fileDiff } from "./file-diff.js" export const name = "patch" diff --git a/packages/core/src/tool/plugin/question.ts b/packages/core/src/tool/plugin/question.ts index adc0c832ba5..7e16745c1b1 100644 --- a/packages/core/src/tool/plugin/question.ts +++ b/packages/core/src/tool/plugin/question.ts @@ -1,11 +1,11 @@ -export * as QuestionTool from "./question" +export * as QuestionTool from "./question.js" import type { Context as PluginContext } from "@opencode-ai/plugin/effect/plugin" import { ToolFailure } from "@opencode-ai/ai" import { Effect, Schema } from "effect" -import { Form } from "../../form" -import { Permission } from "../../permission" -import { Question } from "../../question" +import { Form } from "../../form.js" +import { Permission } from "../../permission.js" +import { Question } from "../../question.js" export const name = "question" diff --git a/packages/core/src/tool/plugin/read.ts b/packages/core/src/tool/plugin/read.ts index 4e52c1f37c0..829a6776289 100644 --- a/packages/core/src/tool/plugin/read.ts +++ b/packages/core/src/tool/plugin/read.ts @@ -1,17 +1,17 @@ -export * as ReadTool from "./read" +export * as ReadTool from "./read.js" import type { Context as PluginContext } from "@opencode-ai/plugin/effect/plugin" import { basename, dirname, join } from "path" import { ToolFailure } from "@opencode-ai/ai" import { Effect, Schema } from "effect" import { FSUtil } from "@opencode-ai/util/fs-util" -import { Location } from "../../location" -import { LocationMutation } from "../../location-mutation" -import { Permission } from "../../permission" -import { SessionInstructions } from "../../session/instructions" -import { AbsolutePath } from "../../schema" -import { ReadToolFileSystem } from "../read-filesystem" -import { Environment } from "../../environment" +import { Location } from "../../location.js" +import { LocationMutation } from "../../location-mutation.js" +import { Permission } from "../../permission.js" +import { SessionInstructions } from "../../session/instructions.js" +import { AbsolutePath } from "../../schema.js" +import { ReadToolFileSystem } from "../read-filesystem.js" +import { Environment } from "../../environment/index.js" export const name = "read" const FILENAME = "AGENTS.md" diff --git a/packages/core/src/tool/plugin/shell.ts b/packages/core/src/tool/plugin/shell.ts index 5baea70eec0..367e9eee51e 100644 --- a/packages/core/src/tool/plugin/shell.ts +++ b/packages/core/src/tool/plugin/shell.ts @@ -1,20 +1,20 @@ -export * as ShellTool from "./shell" +export * as ShellTool from "./shell.js" import path from "path" import { ToolFailure } from "@opencode-ai/ai" import type { Content } from "@opencode-ai/schema/tool" import type { Context as PluginContext } from "@opencode-ai/plugin/effect/plugin" import { Deferred, Effect, Schema, Scope } from "effect" -import { Config } from "../../config" -import { Environment } from "../../environment" -import { LocationMutation } from "../../location-mutation" -import { Permission } from "../../permission" -import { PluginRuntime } from "../../plugin/runtime" -import { NonNegativeInt } from "../../schema" -import { SessionSchema } from "../../session/schema" -import { Shell } from "../../shell" -import { ShellParse } from "../../shell/parse" -import { ToolOutput } from "../../tool-output" +import { Config } from "../../config.js" +import { Environment } from "../../environment/index.js" +import { LocationMutation } from "../../location-mutation.js" +import { Permission } from "../../permission.js" +import { PluginRuntime } from "../../plugin/runtime.js" +import { NonNegativeInt } from "../../schema.js" +import { SessionSchema } from "../../session/schema.js" +import { Shell } from "../../shell.js" +import { ShellParse } from "../../shell/parse.js" +import { ToolOutput } from "../../tool-output.js" export const name = "shell" export const DEFAULT_TIMEOUT_MS = 2 * 60 * 1_000 diff --git a/packages/core/src/tool/plugin/skill.ts b/packages/core/src/tool/plugin/skill.ts index c82e0846cad..8269bdd0766 100644 --- a/packages/core/src/tool/plugin/skill.ts +++ b/packages/core/src/tool/plugin/skill.ts @@ -1,12 +1,12 @@ -export * as SkillTool from "./skill" +export * as SkillTool from "./skill.js" import type { Context as PluginContext } from "@opencode-ai/plugin/effect/plugin" import path from "path" import { ToolFailure } from "@opencode-ai/ai" import { Effect, Schema } from "effect" import { FSUtil } from "@opencode-ai/util/fs-util" -import { Skill } from "../../skill" -import { Permission } from "../../permission" +import { Skill } from "../../skill.js" +import { Permission } from "../../permission.js" export const name = "skill" const FILE_LIMIT = 10 diff --git a/packages/core/src/tool/plugin/subagent.ts b/packages/core/src/tool/plugin/subagent.ts index 79443dfe8d2..26d646ce293 100644 --- a/packages/core/src/tool/plugin/subagent.ts +++ b/packages/core/src/tool/plugin/subagent.ts @@ -1,13 +1,13 @@ -export * as SubagentTool from "./subagent" +export * as SubagentTool from "./subagent.js" import { ToolFailure } from "@opencode-ai/ai" import type { Context as PluginContext } from "@opencode-ai/plugin/effect/plugin" import { Effect, Schema, Scope } from "effect" -import { Agent } from "../../agent" -import { Config } from "../../config" -import { PluginRuntime } from "../../plugin/runtime" -import { Permission } from "../../permission" -import { SessionSchema } from "../../session/schema" +import { Agent } from "../../agent.js" +import { Config } from "../../config.js" +import { PluginRuntime } from "../../plugin/runtime.js" +import { Permission } from "../../permission.js" +import { SessionSchema } from "../../session/schema.js" export const name = "subagent" diff --git a/packages/core/src/tool/plugin/webfetch.ts b/packages/core/src/tool/plugin/webfetch.ts index d570e8bf10b..9c1b2a892db 100644 --- a/packages/core/src/tool/plugin/webfetch.ts +++ b/packages/core/src/tool/plugin/webfetch.ts @@ -1,4 +1,4 @@ -export * as WebFetchTool from "./webfetch" +export * as WebFetchTool from "./webfetch.js" import type { Context as PluginContext } from "@opencode-ai/plugin/effect/plugin" import { ToolFailure } from "@opencode-ai/ai" @@ -6,8 +6,8 @@ import { Duration, Effect, Schema } from "effect" import { HttpClient, HttpClientRequest, HttpClientResponse } from "effect/unstable/http" import { Parser } from "htmlparser2" import TurndownService from "turndown" -import { Permission } from "../../permission" -import { collectBoundedResponseBody } from "../http-body" +import { Permission } from "../../permission.js" +import { collectBoundedResponseBody } from "../http-body.js" export const name = "webfetch" export const MAX_RESPONSE_BYTES = 5 * 1024 * 1024 diff --git a/packages/core/src/tool/plugin/websearch.ts b/packages/core/src/tool/plugin/websearch.ts index 4ad30188359..aab48520507 100644 --- a/packages/core/src/tool/plugin/websearch.ts +++ b/packages/core/src/tool/plugin/websearch.ts @@ -1,13 +1,13 @@ -export * as WebSearchTool from "./websearch" +export * as WebSearchTool from "./websearch.js" import type { Context as PluginContext } from "@opencode-ai/plugin/effect/plugin" import { ToolFailure } from "@opencode-ai/ai" import { Effect, Schema, Semaphore } from "effect" import { HttpClientError } from "effect/unstable/http" -import { Form } from "../../form" -import { KV } from "../../kv" -import { Permission } from "../../permission" -import { WebSearch } from "../../websearch" +import { Form } from "../../form.js" +import { KV } from "../../kv.js" +import { Permission } from "../../permission.js" +import { WebSearch } from "../../websearch.js" export const name = "websearch" export const NO_RESULTS = "No search results found. Please try a different query." diff --git a/packages/core/src/tool/plugin/write.ts b/packages/core/src/tool/plugin/write.ts index bdcf227de76..ec8bc3c6d20 100644 --- a/packages/core/src/tool/plugin/write.ts +++ b/packages/core/src/tool/plugin/write.ts @@ -4,18 +4,18 @@ * absolute external paths retain mutation capability through a separate * external_directory approval before edit approval. */ -export * as WriteTool from "./write" +export * as WriteTool from "./write.js" import type { Context as PluginContext } from "@opencode-ai/plugin/effect/plugin" import { ToolFailure } from "@opencode-ai/ai" import { Effect, Schema } from "effect" import { Bom } from "@opencode-ai/util/bom" -import { Environment } from "../../environment" -import { FileMutation } from "../../file-mutation" -import { Formatter } from "../../formatter" -import { LocationMutation } from "../../location-mutation" -import { Permission } from "../../permission" -import { fileDiff } from "./file-diff" +import { Environment } from "../../environment/index.js" +import { FileMutation } from "../../file-mutation.js" +import { Formatter } from "../../formatter.js" +import { LocationMutation } from "../../location-mutation.js" +import { Permission } from "../../permission.js" +import { fileDiff } from "./file-diff.js" export const name = "write" diff --git a/packages/core/src/tool/read-filesystem.ts b/packages/core/src/tool/read-filesystem.ts index 11001f1918b..4307d83ad01 100644 --- a/packages/core/src/tool/read-filesystem.ts +++ b/packages/core/src/tool/read-filesystem.ts @@ -1,15 +1,15 @@ -export * as ReadToolFileSystem from "./read-filesystem" +export * as ReadToolFileSystem from "./read-filesystem.js" import path from "path" import { pathToFileURL } from "url" import { makeLocationNode } from "@opencode-ai/util/effect/app-node" import { Context, Effect, Layer, Schema } from "effect" import { lookup } from "mime-types" -import { Environment } from "../environment" -import type { Files } from "../environment" -import { FileSystem } from "../filesystem" -import { Mime } from "../mime" -import { AbsolutePath, NonNegativeInt, PositiveInt, RelativePath } from "../schema" +import { Environment } from "../environment/index.js" +import type { Files } from "../environment/index.js" +import { FileSystem } from "../filesystem.js" +import { Mime } from "../mime.js" +import { AbsolutePath, NonNegativeInt, PositiveInt, RelativePath } from "../schema.js" export const MAX_READ_LINES = 2_000 export const MAX_READ_BYTES = 50 * 1024 diff --git a/packages/core/src/util/token.ts b/packages/core/src/util/token.ts index d3d4a8de29b..bca7dc4328f 100644 --- a/packages/core/src/util/token.ts +++ b/packages/core/src/util/token.ts @@ -1,4 +1,4 @@ -export * as Token from "./token" +export * as Token from "./token.js" const CHARS_PER_TOKEN = 4 diff --git a/packages/core/src/util/wildcard.ts b/packages/core/src/util/wildcard.ts index 0a67817bcb5..65608026f9b 100644 --- a/packages/core/src/util/wildcard.ts +++ b/packages/core/src/util/wildcard.ts @@ -1,4 +1,4 @@ -export * as Wildcard from "./wildcard" +export * as Wildcard from "./wildcard.js" export function match(input: string, pattern: string) { const normalized = input.replaceAll("\\", "/") diff --git a/packages/core/src/v1/config/agent.ts b/packages/core/src/v1/config/agent.ts index b220bd7ef87..4c731ae4b0f 100644 --- a/packages/core/src/v1/config/agent.ts +++ b/packages/core/src/v1/config/agent.ts @@ -1,8 +1,8 @@ -export * as ConfigAgentV1 from "./agent" +export * as ConfigAgentV1 from "./agent.js" import { Schema, SchemaGetter } from "effect" -import { PositiveInt } from "../../schema" -import { ConfigPermissionV1 } from "./permission" +import { PositiveInt } from "../../schema.js" +import { ConfigPermissionV1 } from "./permission.js" const Color = Schema.Union([ Schema.String.check(Schema.isPattern(/^#[0-9a-fA-F]{6}$/)), diff --git a/packages/core/src/v1/config/attachment.ts b/packages/core/src/v1/config/attachment.ts index f56a671ca70..0d3da363cea 100644 --- a/packages/core/src/v1/config/attachment.ts +++ b/packages/core/src/v1/config/attachment.ts @@ -1,7 +1,7 @@ -export * as ConfigAttachmentV1 from "./attachment" +export * as ConfigAttachmentV1 from "./attachment.js" import { Schema } from "effect" -import { PositiveInt } from "../../schema" +import { PositiveInt } from "../../schema.js" export const Image = Schema.Struct({ auto_resize: Schema.optional(Schema.Boolean).annotate({ diff --git a/packages/core/src/v1/config/command.ts b/packages/core/src/v1/config/command.ts index 281d5309109..72369d4136b 100644 --- a/packages/core/src/v1/config/command.ts +++ b/packages/core/src/v1/config/command.ts @@ -1,4 +1,4 @@ -export * as ConfigCommandV1 from "./command" +export * as ConfigCommandV1 from "./command.js" import { Schema } from "effect" diff --git a/packages/core/src/v1/config/config.ts b/packages/core/src/v1/config/config.ts index 5e15f9dfdc1..1e9e59d6405 100644 --- a/packages/core/src/v1/config/config.ts +++ b/packages/core/src/v1/config/config.ts @@ -1,20 +1,20 @@ -export * as ConfigV1 from "./config" +export * as ConfigV1 from "./config.js" import { Schema } from "effect" import { ConfigReference } from "@opencode-ai/schema/config/reference" -import { NonNegativeInt, PositiveInt, type DeepMutable } from "../../schema" -import { ConfigAgentV1 } from "./agent" -import { ConfigAttachmentV1 } from "./attachment" -import { ConfigCommandV1 } from "./command" -import { ConfigFormatterV1 } from "./formatter" -import { ConfigLayoutV1 } from "./layout" -import { ConfigLSPV1 } from "./lsp" -import { ConfigMCPV1 } from "./mcp" -import { ConfigPermissionV1 } from "./permission" -import { ConfigPluginV1 } from "./plugin" -import { ConfigProviderV1 } from "./provider" -import { ConfigServerV1 } from "./server" -import { ConfigSkillsV1 } from "./skills" +import { NonNegativeInt, PositiveInt, type DeepMutable } from "../../schema.js" +import { ConfigAgentV1 } from "./agent.js" +import { ConfigAttachmentV1 } from "./attachment.js" +import { ConfigCommandV1 } from "./command.js" +import { ConfigFormatterV1 } from "./formatter.js" +import { ConfigLayoutV1 } from "./layout.js" +import { ConfigLSPV1 } from "./lsp.js" +import { ConfigMCPV1 } from "./mcp.js" +import { ConfigPermissionV1 } from "./permission.js" +import { ConfigPluginV1 } from "./plugin.js" +import { ConfigProviderV1 } from "./provider.js" +import { ConfigServerV1 } from "./server.js" +import { ConfigSkillsV1 } from "./skills.js" export type Layout = ConfigLayoutV1.Layout diff --git a/packages/core/src/v1/config/error.ts b/packages/core/src/v1/config/error.ts index abf3a09276a..e25fd33e603 100644 --- a/packages/core/src/v1/config/error.ts +++ b/packages/core/src/v1/config/error.ts @@ -1,7 +1,7 @@ -export * as ConfigErrorV1 from "./error" +export * as ConfigErrorV1 from "./error.js" import { Schema } from "effect" -import { NamedError } from "../../util/error" +import { NamedError } from "../../util/error.js" const Issue = Schema.StructWithRest( Schema.Struct({ diff --git a/packages/core/src/v1/config/formatter.ts b/packages/core/src/v1/config/formatter.ts index b467e4f812b..b984ad79f8d 100644 --- a/packages/core/src/v1/config/formatter.ts +++ b/packages/core/src/v1/config/formatter.ts @@ -1,4 +1,4 @@ -export * as ConfigFormatterV1 from "./formatter" +export * as ConfigFormatterV1 from "./formatter.js" import { Schema } from "effect" diff --git a/packages/core/src/v1/config/layout.ts b/packages/core/src/v1/config/layout.ts index e50997f87f4..55ba12ee2c9 100644 --- a/packages/core/src/v1/config/layout.ts +++ b/packages/core/src/v1/config/layout.ts @@ -1,4 +1,4 @@ -export * as ConfigLayoutV1 from "./layout" +export * as ConfigLayoutV1 from "./layout.js" import { Schema } from "effect" diff --git a/packages/core/src/v1/config/lsp.ts b/packages/core/src/v1/config/lsp.ts index 89a58b5b2c9..d17866f4113 100644 --- a/packages/core/src/v1/config/lsp.ts +++ b/packages/core/src/v1/config/lsp.ts @@ -1,4 +1,4 @@ -export * as ConfigLSPV1 from "./lsp" +export * as ConfigLSPV1 from "./lsp.js" import { Schema } from "effect" diff --git a/packages/core/src/v1/config/mcp.ts b/packages/core/src/v1/config/mcp.ts index 0a2aeff12fb..36e83ba7e0b 100644 --- a/packages/core/src/v1/config/mcp.ts +++ b/packages/core/src/v1/config/mcp.ts @@ -1,7 +1,7 @@ -export * as ConfigMCPV1 from "./mcp" +export * as ConfigMCPV1 from "./mcp.js" import { Schema } from "effect" -import { PositiveInt } from "../../schema" +import { PositiveInt } from "../../schema.js" export const Local = Schema.Struct({ type: Schema.Literal("local").annotate({ description: "Type of MCP server connection" }), diff --git a/packages/core/src/v1/config/migrate.ts b/packages/core/src/v1/config/migrate.ts index 40775c089be..2a150a8f601 100644 --- a/packages/core/src/v1/config/migrate.ts +++ b/packages/core/src/v1/config/migrate.ts @@ -1,17 +1,17 @@ -export * as ConfigMigrateV1 from "./migrate" +export * as ConfigMigrateV1 from "./migrate.js" import { Info } from "@opencode-ai/schema/config" import { ConfigAgent } from "@opencode-ai/schema/config/agent" import { Schema } from "effect" -import { ConfigV1 } from "./config" -import { ConfigAgentV1 } from "./agent" -import { ConfigCommandV1 } from "./command" -import { ConfigMCPV1 } from "./mcp" -import { ConfigPermissionV1 } from "./permission" -import { ConfigProviderV1 } from "./provider" -import { ConfigProviderOptionsV1 } from "./provider-options" -import { Provider } from "../../provider" -import { Model } from "../../model" +import { ConfigV1 } from "./config.js" +import { ConfigAgentV1 } from "./agent.js" +import { ConfigCommandV1 } from "./command.js" +import { ConfigMCPV1 } from "./mcp.js" +import { ConfigPermissionV1 } from "./permission.js" +import { ConfigProviderV1 } from "./provider.js" +import { ConfigProviderOptionsV1 } from "./provider-options.js" +import { Provider } from "../../provider.js" +import { Model } from "../../model.js" const decodeOptions = { errors: "all", onExcessProperty: "ignore", propertyOrder: "original" } as const const decodeInfo = Schema.decodeUnknownSync(Schema.fromJsonString(Info), decodeOptions) diff --git a/packages/core/src/v1/config/permission.ts b/packages/core/src/v1/config/permission.ts index ef2da34e992..6dc8f9d6cc7 100644 --- a/packages/core/src/v1/config/permission.ts +++ b/packages/core/src/v1/config/permission.ts @@ -1,4 +1,4 @@ -export * as ConfigPermissionV1 from "./permission" +export * as ConfigPermissionV1 from "./permission.js" import { Schema, SchemaGetter } from "effect" diff --git a/packages/core/src/v1/config/plugin.ts b/packages/core/src/v1/config/plugin.ts index 96243635beb..1650b3ae14f 100644 --- a/packages/core/src/v1/config/plugin.ts +++ b/packages/core/src/v1/config/plugin.ts @@ -1,4 +1,4 @@ -export * as ConfigPluginV1 from "./plugin" +export * as ConfigPluginV1 from "./plugin.js" import { Schema } from "effect" diff --git a/packages/core/src/v1/config/provider-options.ts b/packages/core/src/v1/config/provider-options.ts index 82d5bb1d506..d6752ff03b8 100644 --- a/packages/core/src/v1/config/provider-options.ts +++ b/packages/core/src/v1/config/provider-options.ts @@ -1,4 +1,4 @@ -export * as ConfigProviderOptionsV1 from "./provider-options" +export * as ConfigProviderOptionsV1 from "./provider-options.js" type Options = Readonly> diff --git a/packages/core/src/v1/config/provider.ts b/packages/core/src/v1/config/provider.ts index 37e8c58c27f..eb93dbc9e7d 100644 --- a/packages/core/src/v1/config/provider.ts +++ b/packages/core/src/v1/config/provider.ts @@ -1,7 +1,7 @@ -export * as ConfigProviderV1 from "./provider" +export * as ConfigProviderV1 from "./provider.js" import { Schema } from "effect" -import { PositiveInt } from "../../schema" +import { PositiveInt } from "../../schema.js" export const ModelStatus = Schema.Literals(["alpha", "beta", "deprecated", "active"]) diff --git a/packages/core/src/v1/config/server.ts b/packages/core/src/v1/config/server.ts index 64a89186b33..1301ab497d0 100644 --- a/packages/core/src/v1/config/server.ts +++ b/packages/core/src/v1/config/server.ts @@ -1,7 +1,7 @@ -export * as ConfigServerV1 from "./server" +export * as ConfigServerV1 from "./server.js" import { Schema } from "effect" -import { PositiveInt } from "../../schema" +import { PositiveInt } from "../../schema.js" export const Server = Schema.Struct({ port: Schema.optional(PositiveInt).annotate({ diff --git a/packages/core/src/v1/config/skills.ts b/packages/core/src/v1/config/skills.ts index 9879634b472..72fbcea7065 100644 --- a/packages/core/src/v1/config/skills.ts +++ b/packages/core/src/v1/config/skills.ts @@ -1,4 +1,4 @@ -export * as ConfigSkillsV1 from "./skills" +export * as ConfigSkillsV1 from "./skills.js" import { Schema } from "effect" diff --git a/packages/core/src/v1/permission.ts b/packages/core/src/v1/permission.ts index c289196c182..aa35187c094 100644 --- a/packages/core/src/v1/permission.ts +++ b/packages/core/src/v1/permission.ts @@ -1,4 +1,4 @@ -export * as PermissionV1 from "./permission" +export * as PermissionV1 from "./permission.js" import { Schema } from "effect" export * from "@opencode-ai/schema/permission-v1" diff --git a/packages/core/src/vcs.ts b/packages/core/src/vcs.ts index db1f95d6612..1f0bcdf31ce 100644 --- a/packages/core/src/vcs.ts +++ b/packages/core/src/vcs.ts @@ -1,4 +1,4 @@ -export * as Vcs from "./vcs" +export * as Vcs from "./vcs.js" import path from "path" import { Context, Effect, Layer, Stream } from "effect" @@ -8,11 +8,11 @@ import { FileStatus, Info, Mode } from "@opencode-ai/schema/vcs" import { VcsEvent } from "@opencode-ai/schema/vcs-event" import { makeLocationNode } from "@opencode-ai/util/effect/app-node" import { FSUtil } from "@opencode-ai/util/fs-util" -import { Location } from "./location" +import { Location } from "./location.js" import { AppProcess } from "@opencode-ai/util/process" -import { Bus } from "./bus" -import { VcsGit } from "./vcs/git" -import { VcsHg } from "./vcs/hg" +import { Bus } from "./bus.js" +import { VcsGit } from "./vcs/git.js" +import { VcsHg } from "./vcs/hg.js" export { FileStatus, Info, Mode } diff --git a/packages/core/src/vcs/git.ts b/packages/core/src/vcs/git.ts index 60f84742069..b180d595964 100644 --- a/packages/core/src/vcs/git.ts +++ b/packages/core/src/vcs/git.ts @@ -1,13 +1,13 @@ -export * as VcsGit from "./git" +export * as VcsGit from "./git.js" import { Effect } from "effect" import { ChildProcess } from "effect/unstable/process" import { FileDiff } from "@opencode-ai/schema/file-diff" import { FileStatus, Info, Mode } from "@opencode-ai/schema/vcs" import { AppProcess } from "@opencode-ai/util/process" -import type { DiffOptions, Interface } from "../vcs" -import { chunksByFile, emptyPatch, MAX_PATCH_BYTES, MAX_TOTAL_PATCH_BYTES, PATCH_CONTEXT_LINES } from "./patch" -import type { Patch } from "./patch" +import type { DiffOptions, Interface } from "../vcs.js" +import { chunksByFile, emptyPatch, MAX_PATCH_BYTES, MAX_TOTAL_PATCH_BYTES, PATCH_CONTEXT_LINES } from "./patch.js" +import type { Patch } from "./patch.js" /** * Git adapter for the Vcs service. Ported from the V1 pipeline: patches are diff --git a/packages/core/src/vcs/hg.ts b/packages/core/src/vcs/hg.ts index dad49ac0531..415e7e1bc26 100644 --- a/packages/core/src/vcs/hg.ts +++ b/packages/core/src/vcs/hg.ts @@ -1,4 +1,4 @@ -export * as VcsHg from "./hg" +export * as VcsHg from "./hg.js" import path from "path" import { Effect } from "effect" @@ -7,7 +7,7 @@ import { FileDiff } from "@opencode-ai/schema/file-diff" import { FileStatus, Info, Mode } from "@opencode-ai/schema/vcs" import { FSUtil } from "@opencode-ai/util/fs-util" import { AppProcess } from "@opencode-ai/util/process" -import type { DiffOptions, Interface } from "../vcs" +import type { DiffOptions, Interface } from "../vcs.js" import { addPatch, chunksByFile, @@ -17,7 +17,7 @@ import { MAX_PATCH_BYTES, MAX_TOTAL_PATCH_BYTES, PATCH_CONTEXT_LINES, -} from "./patch" +} from "./patch.js" /** * Mercurial adapter for the Vcs service. `hg diff --git` emits git-format diff --git a/packages/core/src/vcs/patch.ts b/packages/core/src/vcs/patch.ts index 73d3f35dd92..9dcf1143567 100644 --- a/packages/core/src/vcs/patch.ts +++ b/packages/core/src/vcs/patch.ts @@ -1,4 +1,4 @@ -export * as VcsPatch from "./patch" +export * as VcsPatch from "./patch.js" import { formatPatch, structuredPatch } from "diff" diff --git a/packages/core/src/websearch.ts b/packages/core/src/websearch.ts index 7f389bffce4..1e0f8c7f19f 100644 --- a/packages/core/src/websearch.ts +++ b/packages/core/src/websearch.ts @@ -1,11 +1,11 @@ -export * as WebSearch from "./websearch" +export * as WebSearch from "./websearch.js" import { WebSearch } from "@opencode-ai/schema/websearch" import { Context, Effect, Layer, Schema } from "effect" import { makeLocationNode } from "@opencode-ai/util/effect/app-node" -import { Bus } from "./bus" -import { KV } from "./kv" -import { State } from "./state" +import { Bus } from "./bus.js" +import { KV } from "./kv.js" +import { State } from "./state.js" export const ID = WebSearch.ID export type ID = WebSearch.ID diff --git a/packages/core/src/wellknown.ts b/packages/core/src/wellknown.ts index db5862a9488..d86c6c21dc5 100644 --- a/packages/core/src/wellknown.ts +++ b/packages/core/src/wellknown.ts @@ -1,4 +1,4 @@ -export * as WellKnown from "./wellknown" +export * as WellKnown from "./wellknown.js" import { Integration } from "@opencode-ai/schema/integration" import { Context, Effect, Layer, Ref, Schema, Semaphore } from "effect" @@ -6,8 +6,8 @@ import { HttpClient, HttpClientRequest, HttpClientResponse } from "effect/unstab import { isDeepStrictEqual } from "node:util" import { makeGlobalNode } from "@opencode-ai/util/effect/app-node" import { httpClient } from "@opencode-ai/util/effect/app-node-platform" -import { Bus } from "./bus" -import { KV } from "./kv" +import { Bus } from "./bus.js" +import { KV } from "./kv.js" export interface Auth extends Schema.Schema.Type {} export const Auth = Schema.Struct({ diff --git a/packages/core/src/wellknown/plugin.ts b/packages/core/src/wellknown/plugin.ts index 3e1f7dbed34..53f33176b53 100644 --- a/packages/core/src/wellknown/plugin.ts +++ b/packages/core/src/wellknown/plugin.ts @@ -1,9 +1,9 @@ -export * as WellKnownPlugin from "./plugin" +export * as WellKnownPlugin from "./plugin.js" import { define } from "@opencode-ai/plugin/effect/plugin" import { Effect, Stream } from "effect" -import { Bus } from "../bus" -import { WellKnown } from "../wellknown" +import { Bus } from "../bus.js" +import { WellKnown } from "../wellknown.js" export const Plugin = define({ id: "opencode.wellknown", diff --git a/packages/core/src/workspace.ts b/packages/core/src/workspace.ts index 30315567ca6..4e2846e6841 100644 --- a/packages/core/src/workspace.ts +++ b/packages/core/src/workspace.ts @@ -1,4 +1,4 @@ -export * as Workspace from "./workspace" +export * as Workspace from "./workspace.js" import { Workspace } from "@opencode-ai/schema/workspace" import { makeGlobalNode } from "@opencode-ai/util/effect/app-node" @@ -6,11 +6,11 @@ import { eq } from "drizzle-orm" import { Clock, Context, Duration, Effect, Exit, Layer, Ref, Schedule, Schema, Scope } from "effect" import { systemError } from "effect/PlatformError" import { make } from "effect/unstable/process/ChildProcessSpawner" -import type { Driver as EnvironmentDriver } from "./environment/driver" -import { Database } from "./database/database" -import { KeyedMutex } from "./effect/keyed-mutex" -import { WorkspaceDriver } from "./workspace/driver" -import { WorkspaceTable } from "./workspace/sql" +import type { Driver as EnvironmentDriver } from "./environment/driver.js" +import { Database } from "./database/database.js" +import { KeyedMutex } from "./effect/keyed-mutex.js" +import { WorkspaceDriver } from "./workspace/driver.js" +import { WorkspaceTable } from "./workspace/sql.js" export const ID = Workspace.ID export type ID = Workspace.ID diff --git a/packages/core/src/workspace/driver.ts b/packages/core/src/workspace/driver.ts index f50ef5ea666..dd8ac1b4cce 100644 --- a/packages/core/src/workspace/driver.ts +++ b/packages/core/src/workspace/driver.ts @@ -1,10 +1,10 @@ -export * as WorkspaceDriver from "./driver" +export * as WorkspaceDriver from "./driver.js" import { Workspace } from "@opencode-ai/schema/workspace" import { makeGlobalNode } from "@opencode-ai/util/effect/app-node" import { Context, Effect, Layer, Schema } from "effect" import type { Scope } from "effect" -import type { Driver as EnvironmentDriver } from "../environment/driver" +import type { Driver as EnvironmentDriver } from "../environment/driver.js" /** * Smallest provider-owned JSON value required to reconnect to the same diff --git a/packages/core/src/workspace/sql.ts b/packages/core/src/workspace/sql.ts index 5d1ed77b308..6c8b701f086 100644 --- a/packages/core/src/workspace/sql.ts +++ b/packages/core/src/workspace/sql.ts @@ -1,6 +1,6 @@ import { Workspace } from "@opencode-ai/schema/workspace" import { integer, sqliteTable, text } from "drizzle-orm/sqlite-core" -import type { WorkspaceDriver } from "./driver" +import type { WorkspaceDriver } from "./driver.js" export const WorkspaceTable = sqliteTable("workspace", { id: text().$type().primaryKey(), diff --git a/packages/core/tsconfig.json b/packages/core/tsconfig.json index 6b43fb38cc8..9af9d62348b 100644 --- a/packages/core/tsconfig.json +++ b/packages/core/tsconfig.json @@ -2,6 +2,9 @@ "$schema": "https://json.schemastore.org/tsconfig", "extends": "@tsconfig/bun/tsconfig.json", "compilerOptions": { + "module": "NodeNext", + "moduleResolution": "NodeNext", + "allowImportingTsExtensions": false, "composite": true, "declaration": true, "emitDeclarationOnly": true,