Skip to content

Commit 258acad

Browse files
authored
Merge pull request #86 from browser-use/sync/upstream-v1.15.0
sync: upstream v1.15.0 (c43edc5 on dev)
2 parents d0dbfa7 + e0dec91 commit 258acad

71 files changed

Lines changed: 1869 additions & 797 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

UPSTREAM.md

Lines changed: 2 additions & 1 deletion
Large diffs are not rendered by default.

bun.lock

Lines changed: 22 additions & 22 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/app/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@opencode-ai/app",
3-
"version": "1.14.50",
3+
"version": "1.15.0",
44
"description": "",
55
"type": "module",
66
"exports": {

packages/app/src/context/global-sync/event-reducer.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,7 @@ export function applyDirectoryEvent(input: {
125125
const info = (event.properties as { info: Session }).info
126126
const result = Binary.search(input.store.session, info.id, (s) => s.id)
127127
if (info.time.archived) {
128+
if (input.store.session[result.index]!.time.archived === info.time.archived) break
128129
if (result.found) {
129130
input.setStore(
130131
"session",

packages/console/app/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@opencode-ai/console-app",
3-
"version": "1.14.50",
3+
"version": "1.15.0",
44
"type": "module",
55
"license": "MIT",
66
"scripts": {

packages/console/core/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"$schema": "https://json.schemastore.org/package.json",
33
"name": "@opencode-ai/console-core",
4-
"version": "1.14.50",
4+
"version": "1.15.0",
55
"private": true,
66
"type": "module",
77
"license": "MIT",

packages/console/function/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@opencode-ai/console-function",
3-
"version": "1.14.50",
3+
"version": "1.15.0",
44
"$schema": "https://json.schemastore.org/package.json",
55
"private": true,
66
"type": "module",

packages/console/mail/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@opencode-ai/console-mail",
3-
"version": "1.14.50",
3+
"version": "1.15.0",
44
"dependencies": {
55
"@jsx-email/all": "2.2.3",
66
"@jsx-email/cli": "1.4.3",

packages/core/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"$schema": "https://json.schemastore.org/package.json",
3-
"version": "1.14.50",
3+
"version": "1.15.0",
44
"name": "@opencode-ai/core",
55
"type": "module",
66
"license": "MIT",

packages/core/src/catalog.ts

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ import { produce, type Draft } from "immer"
55
import { ModelV2 } from "./model"
66
import { PluginV2 } from "./plugin"
77
import { ProviderV2 } from "./provider"
8-
import { Instance } from "./instance"
8+
import { Location } from "./location"
9+
import { EventV2 } from "./event"
910

1011
type ProviderRecord = {
1112
provider: ProviderV2.Info
@@ -24,6 +25,15 @@ export class ModelNotFoundError extends Schema.TaggedErrorClass<ModelNotFoundErr
2425
modelID: ModelV2.ID,
2526
}) {}
2627

28+
export const Event = {
29+
ModelUpdated: EventV2.define({
30+
type: "catalog.model.updated",
31+
schema: {
32+
model: ModelV2.Info,
33+
},
34+
}),
35+
}
36+
2737
export interface Interface {
2838
readonly provider: {
2939
readonly get: (providerID: ProviderV2.ID) => Effect.Effect<ProviderV2.Info, ProviderNotFoundError>
@@ -57,10 +67,11 @@ export class Service extends Context.Service<Service, Interface>()("@opencode/v2
5767
export const layer = Layer.effect(
5868
Service,
5969
Effect.gen(function* () {
60-
yield* Instance.Service
70+
yield* Location.Service
6171
let records = HashMap.empty<ProviderV2.ID, ProviderRecord>()
6272
let defaultModel: { providerID: ProviderV2.ID; modelID: ModelV2.ID } | undefined
6373
const plugin = yield* PluginV2.Service
74+
const events = yield* EventV2.Service
6475

6576
const resolve = (model: ModelV2.Info) => {
6677
const provider = Option.getOrThrow(HashMap.get(records, model.providerID)).provider
@@ -157,14 +168,12 @@ export const layer = Layer.effect(
157168
)
158169
const updated = yield* plugin.trigger("model.update", {}, { model, cancel: false })
159170
if (updated.cancel) return
171+
const next = new ModelV2.Info({ ...updated.model, id: modelID, providerID })
160172
records = HashMap.set(records, providerID, {
161173
provider: record.provider,
162-
models: HashMap.set(
163-
record.models,
164-
modelID,
165-
new ModelV2.Info({ ...updated.model, id: modelID, providerID }),
166-
),
174+
models: HashMap.set(record.models, modelID, next),
167175
})
176+
yield* events.publish(Event.ModelUpdated, { model: resolve(next) })
168177
return
169178
}),
170179

@@ -257,4 +266,4 @@ export const layer = Layer.effect(
257266

258267
const SMALL_MODEL_RE = /\b(nano|flash|lite|mini|haiku|small|fast)\b/
259268

260-
export const defaultLayer = layer.pipe(Layer.provide(PluginV2.defaultLayer))
269+
export const defaultLayer = layer.pipe(Layer.provideMerge(EventV2.defaultLayer), Layer.provide(PluginV2.defaultLayer))

0 commit comments

Comments
 (0)