@oni.bot/core 0.6.1 → 0.6.2

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.
@@ -2,6 +2,7 @@ import type { ONIMessage, MessageState } from "../graph.js";
2
2
  import type { ONISkeleton, RetryPolicy } from "../types.js";
3
3
  import type { ONICheckpointer } from "../types.js";
4
4
  import { type ONITool } from "./tool-node.js";
5
+ import type { ONIModel } from "../models/types.js";
5
6
  export interface ONILanguageModel {
6
7
  invoke(messages: ONIMessage[], config?: {
7
8
  tools?: LLMToolSchema[];
@@ -14,8 +15,8 @@ export interface LLMToolSchema {
14
15
  parameters: Record<string, unknown>;
15
16
  }
16
17
  export interface CreateReactAgentOptions {
17
- /** The LLM to use as the agent brain */
18
- llm: ONILanguageModel;
18
+ /** The LLM to use as the agent brain (ONIModel or legacy ONILanguageModel) */
19
+ llm: ONIModel | ONILanguageModel;
19
20
  /** Tools the agent can call */
20
21
  tools?: ONITool[];
21
22
  /** System prompt prepended to every invocation */
@@ -1 +1 @@
1
- {"version":3,"file":"react-agent.d.ts","sourceRoot":"","sources":["../../src/prebuilt/react-agent.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,UAAU,EAAe,YAAY,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,KAAK,EAAa,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,OAAO,EAAkC,KAAK,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAM9E,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CACJ,QAAQ,EAAE,UAAU,EAAE,EACtB,MAAM,CAAC,EAAG;QAAE,KAAK,CAAC,EAAE,aAAa,EAAE,CAAC;QAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAC1D,OAAO,CAAC,UAAU,CAAC,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAS,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC;AAMD,MAAM,WAAW,uBAAuB;IACtC,wCAAwC;IACxC,GAAG,EAAe,gBAAgB,CAAC;IACnC,+BAA+B;IAC/B,KAAK,CAAC,EAAY,OAAO,EAAE,CAAC;IAC5B,kDAAkD;IAClD,YAAY,CAAC,EAAK,MAAM,CAAC;IACzB,sCAAsC;IACtC,UAAU,CAAC,EAAO,WAAW,CAAC;IAC9B,qCAAqC;IACrC,SAAS,CAAC,EAAQ,WAAW,CAAC;IAC9B,4CAA4C;IAC5C,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,cAAc,CAAC,EAAG,MAAM,EAAE,CAAC;IAC3B,mCAAmC;IACnC,YAAY,CAAC,EAAK,eAAe,CAAC,YAAY,CAAC,CAAC;CACjD;AAMD,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,uBAAuB,GAC5B,WAAW,CAAC,YAAY,CAAC,CAwD3B;AAGD,YAAY,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"react-agent.d.ts","sourceRoot":"","sources":["../../src/prebuilt/react-agent.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,UAAU,EAAe,YAAY,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,KAAK,EAAa,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,OAAO,EAAkC,KAAK,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC9E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAOnD,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CACJ,QAAQ,EAAE,UAAU,EAAE,EACtB,MAAM,CAAC,EAAG;QAAE,KAAK,CAAC,EAAE,aAAa,EAAE,CAAC;QAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAC1D,OAAO,CAAC,UAAU,CAAC,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAS,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC;AAsDD,MAAM,WAAW,uBAAuB;IACtC,8EAA8E;IAC9E,GAAG,EAAe,QAAQ,GAAG,gBAAgB,CAAC;IAC9C,+BAA+B;IAC/B,KAAK,CAAC,EAAY,OAAO,EAAE,CAAC;IAC5B,kDAAkD;IAClD,YAAY,CAAC,EAAK,MAAM,CAAC;IACzB,sCAAsC;IACtC,UAAU,CAAC,EAAO,WAAW,CAAC;IAC9B,qCAAqC;IACrC,SAAS,CAAC,EAAQ,WAAW,CAAC;IAC9B,4CAA4C;IAC5C,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,cAAc,CAAC,EAAG,MAAM,EAAE,CAAC;IAC3B,mCAAmC;IACnC,YAAY,CAAC,EAAK,eAAe,CAAC,YAAY,CAAC,CAAC;CACjD;AAMD,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,uBAAuB,GAC5B,WAAW,CAAC,YAAY,CAAC,CA2D3B;AAGD,YAAY,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC"}
@@ -12,11 +12,57 @@ import { StateGraph } from "../graph.js";
12
12
  import { START, END } from "../types.js";
13
13
  import { appendList } from "../types.js";
14
14
  import { createToolNode, toolsCondition } from "./tool-node.js";
15
+ /** Detect if value is an ONIModel (has chat method, no invoke method) */
16
+ function isONIModel(obj) {
17
+ return (typeof obj === "object" &&
18
+ obj !== null &&
19
+ typeof obj.chat === "function" &&
20
+ typeof obj.provider === "string");
21
+ }
22
+ /** Adapt ONIModel to the ONILanguageModel interface used by createReactAgent */
23
+ function adaptModel(model) {
24
+ return {
25
+ async invoke(messages, config) {
26
+ const response = await model.chat({
27
+ messages: messages.map((m) => ({
28
+ role: m.role,
29
+ content: m.content,
30
+ toolCalls: m.tool_calls?.map((tc) => ({
31
+ id: tc.id,
32
+ name: tc.name,
33
+ args: tc.args,
34
+ })),
35
+ toolCallId: m.tool_call_id,
36
+ })),
37
+ tools: config?.tools?.map((t) => ({
38
+ name: t.name,
39
+ description: t.description,
40
+ parameters: t.parameters,
41
+ })),
42
+ signal: config?.signal,
43
+ });
44
+ const msg = {
45
+ role: "assistant",
46
+ content: response.content,
47
+ };
48
+ if (response.toolCalls?.length) {
49
+ msg.tool_calls = response.toolCalls.map((tc) => ({
50
+ id: tc.id,
51
+ name: tc.name,
52
+ args: tc.args,
53
+ }));
54
+ }
55
+ return msg;
56
+ },
57
+ };
58
+ }
15
59
  // ----------------------------------------------------------------
16
60
  // Factory
17
61
  // ----------------------------------------------------------------
18
62
  export function createReactAgent(opts) {
19
- const { llm, tools = [], systemPrompt, agentRetry, toolRetry, interruptBefore, interruptAfter, checkpointer, } = opts;
63
+ const { llm: rawLlm, tools = [], systemPrompt, agentRetry, toolRetry, interruptBefore, interruptAfter, checkpointer, } = opts;
64
+ // Auto-adapt ONIModel to the internal ONILanguageModel interface
65
+ const llm = isONIModel(rawLlm) ? adaptModel(rawLlm) : rawLlm;
20
66
  const graph = new StateGraph({
21
67
  channels: { messages: appendList(() => []) },
22
68
  });
@@ -1 +1 @@
1
- {"version":3,"file":"react-agent.js","sourceRoot":"","sources":["../../src/prebuilt/react-agent.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,4CAA4C;AAC5C,+DAA+D;AAC/D,yDAAyD;AACzD,iCAAiC;AACjC,EAAE;AACF,SAAS;AACT,kDAAkD;AAClD,8DAA8D;AAC9D,+DAA+D;AAE/D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAIzC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,cAAc,EAAgB,MAAM,gBAAgB,CAAC;AAyC9E,mEAAmE;AACnE,UAAU;AACV,mEAAmE;AAEnE,MAAM,UAAU,gBAAgB,CAC9B,IAA6B;IAE7B,MAAM,EACJ,GAAG,EACH,KAAK,GAAa,EAAE,EACpB,YAAY,EACZ,UAAU,EACV,SAAS,EACT,eAAe,EACf,cAAc,EACd,YAAY,GACb,GAAG,IAAI,CAAC;IAET,MAAM,KAAK,GAAG,IAAI,UAAU,CAAe;QACzC,QAAQ,EAAE,EAAE,QAAQ,EAAE,UAAU,CAAa,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE;KACzD,CAAC,CAAC;IAEH,uCAAuC;IACvC,MAAM,cAAc,GAAoB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACxD,IAAI,EAAS,CAAC,CAAC,IAAI;QACnB,WAAW,EAAE,CAAC,CAAC,WAAW;QAC1B,UAAU,EAAG,CAAC,CAAC,MAAM,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE;KAC5D,CAAC,CAAC,CAAC;IAEJ,uBAAuB;IACvB,KAAK,CAAC,OAAO,CACX,OAAO,EACP,KAAK,EAAE,KAAmB,EAAE,MAAkB,EAAE,EAAE;QAChD,MAAM,QAAQ,GAAiB,YAAY;YACzC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC;YAChE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC;QAEnB,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE;YAC1C,KAAK,EAAE,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS;SAC9D,CAAC,CAAC;QAEH,OAAO,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;IAClC,CAAC,EACD,EAAE,KAAK,EAAE,UAAU,EAAE,CACtB,CAAC;IAEF,+CAA+C;IAC/C,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC,KAAK,CAAQ,EAAE;YACnD,KAAK,EAAE,SAAS;SACjB,CAAC,CAAC;QAEH,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC9B,KAAK,CAAC,mBAAmB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QACnD,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAClC,CAAC;SAAM,CAAC;QACN,sCAAsC;QACtC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC9B,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAC9B,CAAC;IAED,OAAO,KAAK,CAAC,OAAO,CAAC,EAAE,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,CAAC,CAAC;AAC1E,CAAC"}
1
+ {"version":3,"file":"react-agent.js","sourceRoot":"","sources":["../../src/prebuilt/react-agent.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oni.bot/core",
3
- "version": "0.6.1",
3
+ "version": "0.6.2",
4
4
  "description": "The graph execution engine for agent swarms",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",