@opencode-ai/ai 0.0.0-dev-18043 → 0.0.0-dev-18046

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -567,7 +567,7 @@ const NO_EVENTS = [];
567
567
  const TERMINAL_TYPES = new Set(["error", "response.completed", "response.incomplete", "response.failed"]);
568
568
  export const terminal = (event) => TERMINAL_TYPES.has(event.type);
569
569
  const onOutputTextDelta = (state, event, id) => {
570
- if (!event.delta)
570
+ if (!event.delta || !state.messageItems.has(id))
571
571
  return [state, NO_EVENTS];
572
572
  const events = [];
573
573
  const phase = state.messagePhases[id];
@@ -585,10 +585,10 @@ const onOutputTextDone = (state, event, id) => {
585
585
  return [{ ...state, lifecycle: Lifecycle.textEnd(state.lifecycle, events, id) }, events];
586
586
  };
587
587
  export const onReasoningDelta = (state, event, itemID) => {
588
- if (!event.delta)
588
+ if (!event.delta || !state.reasoningItems[itemID])
589
589
  return [state, NO_EVENTS];
590
590
  const events = [];
591
- const id = event.summary_index !== undefined || state.reasoningItems[itemID] ? `${itemID}:${event.summary_index ?? 0}` : itemID;
591
+ const id = `${itemID}:${event.summary_index ?? 0}`;
592
592
  return [
593
593
  {
594
594
  ...state,
@@ -663,23 +663,11 @@ const onOutputItemAdded = (state, event) => {
663
663
  const onReasoningSummaryPartAdded = (state, event) => {
664
664
  if (!event.item_id || event.summary_index === undefined)
665
665
  return [state, NO_EVENTS];
666
- const item = state.reasoningItems[event.item_id] ?? { encryptedContent: undefined, summaryParts: {} };
667
- if (event.summary_index === 0) {
668
- if (state.reasoningItems[event.item_id])
669
- return [state, NO_EVENTS];
670
- const events = [];
671
- return [
672
- {
673
- ...state,
674
- lifecycle: Lifecycle.reasoningStart(state.lifecycle, events, `${event.item_id}:0`, providerMetadata(state, { itemId: event.item_id, reasoningEncryptedContent: null })),
675
- reasoningItems: {
676
- ...state.reasoningItems,
677
- [event.item_id]: { ...item, summaryParts: { 0: "active" } },
678
- },
679
- },
680
- events,
681
- ];
682
- }
666
+ const item = state.reasoningItems[event.item_id];
667
+ if (!item)
668
+ return [state, NO_EVENTS];
669
+ if (event.summary_index === 0)
670
+ return [state, NO_EVENTS];
683
671
  const events = [];
684
672
  const closed = Object.entries(item.summaryParts)
685
673
  .filter((entry) => entry[1] === "can-conclude")
@@ -730,7 +718,7 @@ const onReasoningSummaryPartDone = (state, event) => {
730
718
  ];
731
719
  };
732
720
  const onFunctionCallArgumentsDelta = Effect.fn("OpenResponses.onFunctionCallArgumentsDelta")(function* (state, event) {
733
- if (!event.item_id || !event.delta)
721
+ if (!event.item_id || !event.delta || !state.tools[event.item_id])
734
722
  return [state, NO_EVENTS];
735
723
  const result = ToolStream.appendExisting(state.id, state.tools, event.item_id, event.delta, `${state.name} tool argument delta is missing its tool call`);
736
724
  if (ToolStream.isError(result))
@@ -911,7 +899,9 @@ export const step = (state, event) => {
911
899
  return Effect.succeed(onOutputItemAdded(state, event));
912
900
  }
913
901
  if (event.type === "response.function_call_arguments.delta")
914
- return onFunctionCallArgumentsDelta(state, event);
902
+ return event.item_id
903
+ ? onFunctionCallArgumentsDelta(state, event)
904
+ : ProviderShared.eventError(state.id, `${event.type} is missing item_id`);
915
905
  if (event.type === "response.output_item.done") {
916
906
  if (event.item?.type === "message" && !event.item.id)
917
907
  return ProviderShared.eventError(state.id, `${event.type} message is missing id`);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/package.json",
3
- "version": "0.0.0-dev-18043",
3
+ "version": "0.0.0-dev-18046",
4
4
  "name": "@opencode-ai/ai",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -30,7 +30,7 @@
30
30
  "devDependencies": {
31
31
  "@clack/prompts": "1.0.0-alpha.1",
32
32
  "@effect/platform-node": "4.0.0-rc.111",
33
- "@opencode-ai/http-recorder": "0.0.0-dev-18043",
33
+ "@opencode-ai/http-recorder": "0.0.0-dev-18046",
34
34
  "@tsconfig/bun": "1.0.9",
35
35
  "@types/bun": "1.3.13",
36
36
  "@typescript/native-preview": "7.0.0-dev.20251207.1",
@@ -39,7 +39,7 @@
39
39
  "dependencies": {
40
40
  "@smithy/eventstream-codec": "4.2.14",
41
41
  "@smithy/util-utf8": "4.2.2",
42
- "@opencode-ai/schema": "0.0.0-dev-18043",
42
+ "@opencode-ai/schema": "0.0.0-dev-18046",
43
43
  "aws4fetch": "1.0.20",
44
44
  "effect": "4.0.0-rc.111",
45
45
  "google-auth-library": "10.5.0"