mirror of
https://github.com/anomalyco/opencode.git
synced 2026-08-10 11:39:45 -04:00
refactor(schema): rename empty constructors
This commit is contained in:
@@ -61,7 +61,7 @@ const layer = Layer.effect(
|
||||
draft.default = id
|
||||
},
|
||||
update: (id, fn) => {
|
||||
const current = draft.agents.get(id) ?? (Info.empty(id) as Types.DeepMutable<Info>)
|
||||
const current = draft.agents.get(id) ?? (Info.default(id) as Types.DeepMutable<Info>)
|
||||
if (!draft.agents.has(id)) draft.agents.set(id, current)
|
||||
fn(current)
|
||||
current.id = id
|
||||
|
||||
@@ -93,7 +93,7 @@ const layer = Layer.effect(
|
||||
let current = draft.providers.get(providerID)
|
||||
if (!current) {
|
||||
current = {
|
||||
provider: Provider.Info.empty(providerID) as Provider.MutableInfo,
|
||||
provider: Provider.Info.default(providerID) as Provider.MutableInfo,
|
||||
models: new Map<Model.ID, Model.MutableInfo>(),
|
||||
}
|
||||
draft.providers.set(providerID, current)
|
||||
@@ -110,7 +110,7 @@ const layer = Layer.effect(
|
||||
let record = draft.providers.get(providerID)
|
||||
if (!record) {
|
||||
record = {
|
||||
provider: Provider.Info.empty(providerID) as Provider.MutableInfo,
|
||||
provider: Provider.Info.default(providerID) as Provider.MutableInfo,
|
||||
models: new Map<Model.ID, Model.MutableInfo>(),
|
||||
}
|
||||
draft.providers.set(providerID, record)
|
||||
|
||||
@@ -120,7 +120,7 @@ describe("Agent", () => {
|
||||
const id = Agent.ID.make("custom")
|
||||
|
||||
yield* agent.transform((editor) => editor.update(id, () => {}))
|
||||
expect(yield* agent.get(id)).toEqual(Agent.Info.empty(id))
|
||||
expect(yield* agent.get(id)).toEqual(Agent.Info.default(id))
|
||||
|
||||
yield* agent.transform((editor) => editor.remove(id))
|
||||
expect(yield* agent.get(id)).toBeUndefined()
|
||||
|
||||
@@ -12,7 +12,7 @@ import { readInitial, readUpdate } from "./lib/instructions"
|
||||
const build = Agent.ID.make("build")
|
||||
|
||||
const selection = (permissions: Permission.Ruleset = []) => {
|
||||
const info = Agent.Info.make({ ...Agent.Info.empty(build), permissions })
|
||||
const info = Agent.Info.make({ ...Agent.Info.default(build), permissions })
|
||||
return { id: info.id, info }
|
||||
}
|
||||
|
||||
|
||||
@@ -84,7 +84,7 @@ describe("AmazonBedrockPlugin", () => {
|
||||
const catalog = yield* Catalog.Service
|
||||
yield* catalog.transform((catalog) => {
|
||||
const bedrock = Provider.Info.make({
|
||||
...Provider.Info.empty(Provider.ID.amazonBedrock),
|
||||
...Provider.Info.default(Provider.ID.amazonBedrock),
|
||||
package: Provider.aisdk("@ai-sdk/amazon-bedrock"),
|
||||
settings: { endpoint: "https://bedrock.example" },
|
||||
})
|
||||
|
||||
@@ -30,7 +30,7 @@ describe("AnthropicPlugin", () => {
|
||||
const catalog = yield* Catalog.Service
|
||||
yield* catalog.transform((catalog) => {
|
||||
const item = Provider.Info.make({
|
||||
...Provider.Info.empty(Provider.ID.anthropic),
|
||||
...Provider.Info.default(Provider.ID.anthropic),
|
||||
package: Provider.aisdk("@ai-sdk/anthropic"),
|
||||
headers: { Existing: "1" },
|
||||
})
|
||||
|
||||
@@ -86,11 +86,11 @@ describe("AzureCognitiveServicesPlugin", () => {
|
||||
const catalog = yield* Catalog.Service
|
||||
yield* catalog.transform((catalog) => {
|
||||
const azure = Provider.Info.make({
|
||||
...Provider.Info.empty(Provider.ID.make("azure-cognitive-services")),
|
||||
...Provider.Info.default(Provider.ID.make("azure-cognitive-services")),
|
||||
package: "aisdk:@ai-sdk/openai-compatible",
|
||||
})
|
||||
const openai = Provider.Info.make({
|
||||
...Provider.Info.empty(Provider.ID.openai),
|
||||
...Provider.Info.default(Provider.ID.openai),
|
||||
package: "aisdk:test-provider",
|
||||
})
|
||||
catalog.provider.update(azure.id, (item) => {
|
||||
|
||||
@@ -81,7 +81,7 @@ describe("AzurePlugin", () => {
|
||||
const catalog = yield* Catalog.Service
|
||||
yield* catalog.transform((catalog) => {
|
||||
const azure = Provider.Info.make({
|
||||
...Provider.Info.empty(Provider.ID.azure),
|
||||
...Provider.Info.default(Provider.ID.azure),
|
||||
package: Provider.aisdk("@ai-sdk/azure"),
|
||||
settings: { resourceName: "from-config" },
|
||||
})
|
||||
@@ -104,7 +104,7 @@ describe("AzurePlugin", () => {
|
||||
const catalog = yield* Catalog.Service
|
||||
yield* catalog.transform((catalog) => {
|
||||
const azure = Provider.Info.make({
|
||||
...Provider.Info.empty(Provider.ID.azure),
|
||||
...Provider.Info.default(Provider.ID.azure),
|
||||
package: Provider.aisdk("@ai-sdk/azure"),
|
||||
settings: { resourceName: "" },
|
||||
})
|
||||
@@ -125,7 +125,7 @@ describe("AzurePlugin", () => {
|
||||
const catalog = yield* Catalog.Service
|
||||
yield* catalog.transform((catalog) => {
|
||||
const azure = Provider.Info.make({
|
||||
...Provider.Info.empty(Provider.ID.azure),
|
||||
...Provider.Info.default(Provider.ID.azure),
|
||||
package: Provider.aisdk("@ai-sdk/azure"),
|
||||
settings: { resourceName: " " },
|
||||
})
|
||||
|
||||
@@ -54,7 +54,7 @@ describe("OpenAIPlugin", () => {
|
||||
const credentials = yield* Credential.Service
|
||||
yield* catalog.transform((catalog) => {
|
||||
const item = Provider.Info.make({
|
||||
...Provider.Info.empty(Provider.ID.openai),
|
||||
...Provider.Info.default(Provider.ID.openai),
|
||||
package: Provider.aisdk("@ai-sdk/openai"),
|
||||
})
|
||||
catalog.provider.update(item.id, (draft) => {
|
||||
@@ -167,7 +167,7 @@ describe("OpenAIPlugin", () => {
|
||||
const credentials = yield* Credential.Service
|
||||
yield* catalog.transform((catalog) => {
|
||||
const item = Provider.Info.make({
|
||||
...Provider.Info.empty(Provider.ID.openai),
|
||||
...Provider.Info.default(Provider.ID.openai),
|
||||
package: Provider.aisdk("@ai-sdk/openai"),
|
||||
})
|
||||
catalog.provider.update(item.id, (draft) => {
|
||||
|
||||
@@ -289,7 +289,7 @@ describe("OpencodePlugin", () => {
|
||||
const catalog = yield* Catalog.Service
|
||||
yield* catalog.transform((catalog) => {
|
||||
const provider = Provider.Info.make({
|
||||
...Provider.Info.empty(Provider.ID.opencode),
|
||||
...Provider.Info.default(Provider.ID.opencode),
|
||||
package: Provider.aisdk("test-provider"),
|
||||
})
|
||||
const model = Model.Info.make({
|
||||
@@ -316,7 +316,7 @@ describe("OpencodePlugin", () => {
|
||||
const catalog = yield* Catalog.Service
|
||||
yield* catalog.transform((catalog) => {
|
||||
const provider = Provider.Info.make({
|
||||
...Provider.Info.empty(Provider.ID.opencode),
|
||||
...Provider.Info.default(Provider.ID.opencode),
|
||||
package: Provider.aisdk("test-provider"),
|
||||
})
|
||||
const model = Model.Info.make({
|
||||
@@ -343,7 +343,7 @@ describe("OpencodePlugin", () => {
|
||||
const catalog = yield* Catalog.Service
|
||||
yield* catalog.transform((catalog) => {
|
||||
const provider = Provider.Info.make({
|
||||
...Provider.Info.empty(Provider.ID.opencode),
|
||||
...Provider.Info.default(Provider.ID.opencode),
|
||||
package: Provider.aisdk("test-provider"),
|
||||
})
|
||||
const model = Model.Info.make({
|
||||
@@ -372,7 +372,7 @@ describe("OpencodePlugin", () => {
|
||||
const catalog = yield* Catalog.Service
|
||||
yield* catalog.transform((catalog) => {
|
||||
const provider = Provider.Info.make({
|
||||
...Provider.Info.empty(Provider.ID.opencode),
|
||||
...Provider.Info.default(Provider.ID.opencode),
|
||||
package: Provider.aisdk("test-provider"),
|
||||
})
|
||||
const model = Model.Info.make({
|
||||
@@ -406,7 +406,7 @@ describe("OpencodePlugin", () => {
|
||||
})
|
||||
yield* catalog.transform((catalog) => {
|
||||
const provider = Provider.Info.make({
|
||||
...Provider.Info.empty(Provider.ID.opencode),
|
||||
...Provider.Info.default(Provider.ID.opencode),
|
||||
package: Provider.aisdk("test-provider"),
|
||||
})
|
||||
const model = Model.Info.make({
|
||||
@@ -433,7 +433,7 @@ describe("OpencodePlugin", () => {
|
||||
const catalog = yield* Catalog.Service
|
||||
yield* catalog.transform((catalog) => {
|
||||
const provider = Provider.Info.make({
|
||||
...Provider.Info.empty(Provider.ID.opencode),
|
||||
...Provider.Info.default(Provider.ID.opencode),
|
||||
package: Provider.aisdk("test-provider"),
|
||||
settings: { apiKey: "configured" },
|
||||
})
|
||||
@@ -464,7 +464,7 @@ describe("OpencodePlugin", () => {
|
||||
const catalog = yield* Catalog.Service
|
||||
yield* catalog.transform((catalog) => {
|
||||
const provider = Provider.Info.make({
|
||||
...Provider.Info.empty(Provider.ID.openai),
|
||||
...Provider.Info.default(Provider.ID.openai),
|
||||
package: Provider.aisdk("test-provider"),
|
||||
})
|
||||
const model = Model.Info.make({
|
||||
|
||||
@@ -166,11 +166,11 @@ test("Core reuses the canonical shared schemas", async () => {
|
||||
]
|
||||
for (const [core, shared] of schemas) expect(core).toBe(shared)
|
||||
|
||||
expect(Agent.Info.empty(Agent.ID.make("test"))).toEqual(Agent.Info.empty(Agent.ID.make("test")))
|
||||
expect(Agent.Info.default(Agent.ID.make("test"))).toEqual(Agent.Info.default(Agent.ID.make("test")))
|
||||
expect(coreModel.Info.default(coreProvider.ID.make("test"), coreModel.ID.make("model"))).toEqual(
|
||||
Model.Info.default(Provider.ID.make("test"), Model.ID.make("model")),
|
||||
)
|
||||
expect(coreProvider.Info.empty(coreProvider.ID.make("test"))).toEqual(Provider.Info.empty(Provider.ID.make("test")))
|
||||
expect(coreProvider.Info.default(coreProvider.ID.make("test"))).toEqual(Provider.Info.default(Provider.ID.make("test")))
|
||||
expect(Skill.Source.key(Skill.DirectorySource.make({ type: "directory", path: AbsolutePath.make("/tmp") }))).toBe(
|
||||
"directory:/tmp",
|
||||
)
|
||||
|
||||
@@ -47,7 +47,7 @@ const layer = (list: () => Skill.Info[]) =>
|
||||
describe("SkillInstructions", () => {
|
||||
it.effect("renders described agent skills and updates the complete available list", () => {
|
||||
const agent = Agent.Info.make({
|
||||
...Agent.Info.empty(build),
|
||||
...Agent.Info.default(build),
|
||||
permissions: [{ action: "skill", resource: "denied", effect: "deny" }],
|
||||
})
|
||||
let skills = [hidden, denied, manual, effect]
|
||||
@@ -80,7 +80,7 @@ describe("SkillInstructions", () => {
|
||||
})
|
||||
|
||||
it.effect("announces added and removed skills as deltas without restating the list", () => {
|
||||
const agent = Agent.Info.make(Agent.Info.empty(build))
|
||||
const agent = Agent.Info.make(Agent.Info.default(build))
|
||||
const debugging = Skill.Info.make({
|
||||
id: Skill.ID.make("debugging"),
|
||||
name: Skill.Name.make("Debugging"),
|
||||
@@ -117,7 +117,7 @@ describe("SkillInstructions", () => {
|
||||
})
|
||||
|
||||
it.effect("restates the full skill list when a description changes", () => {
|
||||
const agent = Agent.Info.make(Agent.Info.empty(build))
|
||||
const agent = Agent.Info.make(Agent.Info.default(build))
|
||||
let skills = [effect]
|
||||
return Effect.gen(function* () {
|
||||
const instructions = yield* SkillInstructions.Service
|
||||
@@ -138,7 +138,7 @@ describe("SkillInstructions", () => {
|
||||
|
||||
it.effect("omits instructions when the selected agent denies all skills", () => {
|
||||
const agent = Agent.Info.make({
|
||||
...Agent.Info.empty(build),
|
||||
...Agent.Info.default(build),
|
||||
permissions: [{ action: "skill", resource: "*", effect: "deny" }],
|
||||
})
|
||||
return Effect.gen(function* () {
|
||||
@@ -149,7 +149,7 @@ describe("SkillInstructions", () => {
|
||||
|
||||
it.effect("omits instructions when a resource-specific denial follows the global denial", () => {
|
||||
const agent = Agent.Info.make({
|
||||
...Agent.Info.empty(build),
|
||||
...Agent.Info.default(build),
|
||||
permissions: [
|
||||
{ action: "skill", resource: "*", effect: "deny" },
|
||||
{ action: "skill", resource: "hidden", effect: "deny" },
|
||||
@@ -163,7 +163,7 @@ describe("SkillInstructions", () => {
|
||||
|
||||
it.effect("retains specifically allowed skills after a global denial", () => {
|
||||
const agent = Agent.Info.make({
|
||||
...Agent.Info.empty(build),
|
||||
...Agent.Info.default(build),
|
||||
permissions: [
|
||||
{ action: "skill", resource: "*", effect: "deny" },
|
||||
{ action: "skill", resource: "effect", effect: "allow" },
|
||||
@@ -179,7 +179,7 @@ describe("SkillInstructions", () => {
|
||||
|
||||
it.effect("omits instructions when a specifically allowed skill is denied again", () => {
|
||||
const agent = Agent.Info.make({
|
||||
...Agent.Info.empty(build),
|
||||
...Agent.Info.default(build),
|
||||
permissions: [
|
||||
{ action: "skill", resource: "*", effect: "deny" },
|
||||
{ action: "skill", resource: "effect", effect: "allow" },
|
||||
|
||||
@@ -36,7 +36,7 @@ export const Info = Schema.Struct({
|
||||
.annotate({ identifier: "Agent.Info" })
|
||||
.pipe(
|
||||
statics(() => ({
|
||||
empty: (id: ID) =>
|
||||
default: (id: ID) =>
|
||||
({
|
||||
id,
|
||||
name: Name.make(id),
|
||||
|
||||
@@ -53,6 +53,6 @@ export const Info = Schema.Struct({
|
||||
.annotate({ identifier: "Provider.Info" })
|
||||
.pipe(
|
||||
statics(() => ({
|
||||
empty: (id: ID): Info => ({ id, name: id, package: "" }),
|
||||
default: (id: ID): Info => ({ id, name: id, package: "" }),
|
||||
})),
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user