@openharness/react 0.2.0 → 0.2.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.
package/README.md ADDED
@@ -0,0 +1,90 @@
1
+ # @openharness/react
2
+
3
+ React hooks and provider for [OpenHarness](https://github.com/MaxGfeller/open-harness) AI SDK 5 chat UIs.
4
+
5
+ ## Install
6
+
7
+ ```bash
8
+ npm install @openharness/react
9
+ ```
10
+
11
+ Peer dependencies: `@openharness/core`, `@ai-sdk/react`, `react`
12
+
13
+ ## Quick start
14
+
15
+ ```tsx
16
+ import {
17
+ OpenHarnessProvider,
18
+ useOpenHarness,
19
+ useSubagentStatus,
20
+ useSessionStatus,
21
+ } from "@openharness/react";
22
+
23
+ function App() {
24
+ return (
25
+ <OpenHarnessProvider>
26
+ <Chat />
27
+ </OpenHarnessProvider>
28
+ );
29
+ }
30
+
31
+ function Chat() {
32
+ const { messages, sendMessage, status } = useOpenHarness({
33
+ endpoint: "/api/chat",
34
+ });
35
+ const { activeSubagents, hasActiveSubagents } = useSubagentStatus();
36
+ const session = useSessionStatus();
37
+
38
+ return (
39
+ <div>
40
+ {messages.map((msg) => (
41
+ <div key={msg.id}>
42
+ {msg.parts.map((part, i) =>
43
+ part.type === "text" ? <span key={i}>{part.text}</span> : null
44
+ )}
45
+ </div>
46
+ ))}
47
+ {hasActiveSubagents && <p>Subagents working...</p>}
48
+ <button onClick={() => sendMessage({ text: "Hello" })}>Send</button>
49
+ </div>
50
+ );
51
+ }
52
+ ```
53
+
54
+ ## API
55
+
56
+ ### `<OpenHarnessProvider>`
57
+
58
+ Context provider that holds subagent, session, and sandbox state. Wrap your app or chat component with this.
59
+
60
+ ### `useOpenHarness(config)`
61
+
62
+ Creates a chat session connected to your API endpoint. Returns the same interface as AI SDK 5's `useChat` (`messages`, `sendMessage`, `status`, `stop`, etc.), typed with `OHUIMessage`.
63
+
64
+ ### `useSubagentStatus()`
65
+
66
+ Derives reactive state from `data-oh:subagent.*` stream events:
67
+
68
+ - `activeSubagents` -- currently running subagents
69
+ - `recentSubagents` -- all subagents seen in this session
70
+ - `hasActiveSubagents` -- boolean shorthand
71
+
72
+ ### `useSessionStatus()`
73
+
74
+ Tracks turn index, compaction state, and retry info from `data-oh:*` stream events.
75
+
76
+ ### `useSandboxStatus()`
77
+
78
+ Tracks sandbox-related state from stream events.
79
+
80
+ ### `createOHTransport(options)`
81
+
82
+ Low-level transport factory for custom integrations. Creates the SSE connection with OpenHarness data part handling.
83
+
84
+ ## Documentation
85
+
86
+ See the [full documentation](https://github.com/MaxGfeller/open-harness#readme) for server setup, middleware composition, and the complete streaming protocol.
87
+
88
+ ## License
89
+
90
+ ISC
package/dist/context.d.ts CHANGED
@@ -2,7 +2,8 @@ export interface SubagentInfo {
2
2
  name: string;
3
3
  task: string;
4
4
  status: "running" | "done" | "error";
5
- parentAgent?: string;
5
+ /** Full ancestry path from outermost to innermost agent, e.g. ["explore"] or ["explore", "search"]. */
6
+ path: string[];
6
7
  startedAt: number;
7
8
  durationMs?: number;
8
9
  error?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;IACrC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAID,MAAM,WAAW,YAAY;IAC3B,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,IAAI,GAAG,IAAI,CAAC;IAC9B,2BAA2B,EAAE,MAAM,CAAC;CACrC;AAED,eAAO,MAAM,mBAAmB,EAAE,YAQjC,CAAC;AAIF,MAAM,WAAW,YAAY;IAC3B,cAAc,EAAE,OAAO,CAAC;IACxB,MAAM,EAAE,OAAO,CAAC;IAChB,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,aAAa,EAAE,IAAI,GAAG,IAAI,CAAC;CAC5B;AAED,eAAO,MAAM,mBAAmB,EAAE,YAKjC,CAAC;AAIF,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACrC,YAAY,EAAE,YAAY,CAAC;IAC3B,YAAY,EAAE,YAAY,CAAC;IAC3B,QAAQ,EAAE,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;CAC5D;AAED,eAAO,MAAM,SAAS,gDAA6C,CAAC;AAEpE,wBAAgB,YAAY,IAAI,cAAc,CAQ7C"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;IACrC,uGAAuG;IACvG,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAID,MAAM,WAAW,YAAY;IAC3B,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,IAAI,GAAG,IAAI,CAAC;IAC9B,2BAA2B,EAAE,MAAM,CAAC;CACrC;AAED,eAAO,MAAM,mBAAmB,EAAE,YAQjC,CAAC;AAIF,MAAM,WAAW,YAAY;IAC3B,cAAc,EAAE,OAAO,CAAC;IACxB,MAAM,EAAE,OAAO,CAAC;IAChB,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,aAAa,EAAE,IAAI,GAAG,IAAI,CAAC;CAC5B;AAED,eAAO,MAAM,mBAAmB,EAAE,YAKjC,CAAC;AAIF,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACrC,YAAY,EAAE,YAAY,CAAC;IAC3B,YAAY,EAAE,YAAY,CAAC;IAC3B,QAAQ,EAAE,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;CAC5D;AAED,eAAO,MAAM,SAAS,gDAA6C,CAAC;AAEpE,wBAAgB,YAAY,IAAI,cAAc,CAQ7C"}
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AA0BlD,MAAM,CAAC,MAAM,mBAAmB,GAAiB;IAC/C,YAAY,EAAE,KAAK;IACnB,UAAU,EAAE,KAAK;IACjB,YAAY,EAAE,CAAC;IACf,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,CAAC;IACd,gBAAgB,EAAE,IAAI;IACtB,2BAA2B,EAAE,CAAC;CAC/B,CAAC;AAWF,MAAM,CAAC,MAAM,mBAAmB,GAAiB;IAC/C,cAAc,EAAE,KAAK;IACrB,MAAM,EAAE,KAAK;IACb,mBAAmB,EAAE,IAAI;IACzB,aAAa,EAAE,IAAI;CACpB,CAAC;AAWF,MAAM,CAAC,MAAM,SAAS,GAAG,aAAa,CAAwB,IAAI,CAAC,CAAC;AAEpE,MAAM,UAAU,YAAY;IAC1B,MAAM,GAAG,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;IAClC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CACb,mEAAmE,CACpE,CAAC;IACJ,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AA2BlD,MAAM,CAAC,MAAM,mBAAmB,GAAiB;IAC/C,YAAY,EAAE,KAAK;IACnB,UAAU,EAAE,KAAK;IACjB,YAAY,EAAE,CAAC;IACf,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,CAAC;IACd,gBAAgB,EAAE,IAAI;IACtB,2BAA2B,EAAE,CAAC;CAC/B,CAAC;AAWF,MAAM,CAAC,MAAM,mBAAmB,GAAiB;IAC/C,cAAc,EAAE,KAAK;IACrB,MAAM,EAAE,KAAK;IACb,mBAAmB,EAAE,IAAI;IACzB,aAAa,EAAE,IAAI;CACpB,CAAC;AAWF,MAAM,CAAC,MAAM,SAAS,GAAG,aAAa,CAAwB,IAAI,CAAC,CAAC;AAEpE,MAAM,UAAU,YAAY;IAC1B,MAAM,GAAG,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;IAClC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CACb,mEAAmE,CACpE,CAAC;IACJ,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -6,6 +6,8 @@ export interface UseOpenHarnessConfig extends OHTransportOptions {
6
6
  endpoint: string;
7
7
  /** Stable chat ID for sharing state across components. */
8
8
  id?: string;
9
+ /** Initial messages to populate the chat with (e.g. loaded from persistence). */
10
+ messages?: OHUIMessage[];
9
11
  /** Called when the assistant message finishes streaming. */
10
12
  onFinish?: (message: OHUIMessage) => void;
11
13
  }
@@ -1 +1 @@
1
- {"version":3,"file":"use-open-harness.d.ts","sourceRoot":"","sources":["../../src/hooks/use-open-harness.ts"],"names":[],"mappings":"AACA,OAAO,EAAW,KAAK,cAAc,EAAQ,MAAM,eAAe,CAAC;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,OAAO,EAAqB,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAE7E,MAAM,WAAW,oBAAqB,SAAQ,kBAAkB;IAC9D,6BAA6B;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,0DAA0D;IAC1D,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;CAC3C;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,oBAAoB,GAC3B,cAAc,CAAC,WAAW,CAAC,CAiB7B"}
1
+ {"version":3,"file":"use-open-harness.d.ts","sourceRoot":"","sources":["../../src/hooks/use-open-harness.ts"],"names":[],"mappings":"AACA,OAAO,EAAW,KAAK,cAAc,EAAQ,MAAM,eAAe,CAAC;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,OAAO,EAAqB,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAE7E,MAAM,WAAW,oBAAqB,SAAQ,kBAAkB;IAC9D,6BAA6B;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,0DAA0D;IAC1D,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,iFAAiF;IACjF,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;IACzB,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;CAC3C;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,oBAAoB,GAC3B,cAAc,CAAC,WAAW,CAAC,CAkB7B"}
@@ -17,6 +17,7 @@ export function useOpenHarness(config) {
17
17
  if (!chatRef.current) {
18
18
  chatRef.current = new Chat({
19
19
  id: config.id,
20
+ messages: config.messages,
20
21
  transport: createOHTransport(config.endpoint, config),
21
22
  onData: (part) => dispatch(part),
22
23
  onFinish: config.onFinish
@@ -1 +1 @@
1
- {"version":3,"file":"use-open-harness.js","sourceRoot":"","sources":["../../src/hooks/use-open-harness.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,OAAO,EAAuB,IAAI,EAAE,MAAM,eAAe,CAAC;AAEnE,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAA2B,MAAM,iBAAiB,CAAC;AAW7E;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAC5B,MAA4B;IAE5B,MAAM,EAAE,QAAQ,EAAE,GAAG,YAAY,EAAE,CAAC;IAEpC,4EAA4E;IAC5E,MAAM,OAAO,GAAG,MAAM,CAA2B,IAAI,CAAC,CAAC;IACvD,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACrB,OAAO,CAAC,OAAO,GAAG,IAAI,IAAI,CAAc;YACtC,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,SAAS,EAAE,iBAAiB,CAAc,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC;YAClE,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;YAChC,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACvB,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,QAAS,CAAC,OAAO,CAAC;gBAC5C,CAAC,CAAC,SAAS;SACd,CAAC,CAAC;IACL,CAAC;IAED,OAAO,OAAO,CAAc,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;AACzD,CAAC"}
1
+ {"version":3,"file":"use-open-harness.js","sourceRoot":"","sources":["../../src/hooks/use-open-harness.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,OAAO,EAAuB,IAAI,EAAE,MAAM,eAAe,CAAC;AAEnE,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAA2B,MAAM,iBAAiB,CAAC;AAa7E;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAC5B,MAA4B;IAE5B,MAAM,EAAE,QAAQ,EAAE,GAAG,YAAY,EAAE,CAAC;IAEpC,4EAA4E;IAC5E,MAAM,OAAO,GAAG,MAAM,CAA2B,IAAI,CAAC,CAAC;IACvD,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACrB,OAAO,CAAC,OAAO,GAAG,IAAI,IAAI,CAAc;YACtC,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,SAAS,EAAE,iBAAiB,CAAc,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC;YAClE,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;YAChC,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACvB,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,QAAS,CAAC,OAAO,CAAC;gBAC5C,CAAC,CAAC,SAAS;SACd,CAAC,CAAC;IACL,CAAC;IAED,OAAO,OAAO,CAAc,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;AACzD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAWtE,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,QAAQ,EAAE,EAAE,wBAAwB,2CAwIzE"}
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAWtE,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,QAAQ,EAAE,EAAE,wBAAwB,2CA2IzE"}
package/dist/provider.js CHANGED
@@ -19,29 +19,31 @@ export function OpenHarnessProvider({ children }) {
19
19
  switch (part.type) {
20
20
  // ── Subagent events ──────────────────────────────────────
21
21
  case "data-oh:subagent.start": {
22
- const name = data?.agentName ?? "unknown";
22
+ const path = data?.path ?? [data?.agentName ?? "unknown"];
23
+ const key = path.join("/");
23
24
  const info = {
24
- name,
25
+ name: path[path.length - 1],
25
26
  task: data?.task ?? "",
26
27
  status: "running",
27
- parentAgent: data?.parentAgent,
28
+ path,
28
29
  startedAt: Date.now(),
29
30
  };
30
31
  setSubagents((prev) => {
31
32
  const next = new Map(prev);
32
- next.set(name, info);
33
+ next.set(key, info);
33
34
  return next;
34
35
  });
35
36
  break;
36
37
  }
37
38
  case "data-oh:subagent.done": {
38
- const name = data?.agentName ?? "unknown";
39
+ const path = data?.path ?? [data?.agentName ?? "unknown"];
40
+ const key = path.join("/");
39
41
  setSubagents((prev) => {
40
- const existing = prev.get(name);
42
+ const existing = prev.get(key);
41
43
  if (!existing)
42
44
  return prev;
43
45
  const next = new Map(prev);
44
- next.set(name, {
46
+ next.set(key, {
45
47
  ...existing,
46
48
  status: "done",
47
49
  durationMs: data?.durationMs ?? Date.now() - existing.startedAt,
@@ -51,13 +53,14 @@ export function OpenHarnessProvider({ children }) {
51
53
  break;
52
54
  }
53
55
  case "data-oh:subagent.error": {
54
- const name = data?.agentName ?? "unknown";
56
+ const path = data?.path ?? [data?.agentName ?? "unknown"];
57
+ const key = path.join("/");
55
58
  setSubagents((prev) => {
56
- const existing = prev.get(name);
59
+ const existing = prev.get(key);
57
60
  if (!existing)
58
61
  return prev;
59
62
  const next = new Map(prev);
60
- next.set(name, {
63
+ next.set(key, {
61
64
  ...existing,
62
65
  status: "error",
63
66
  error: data?.error ?? "Unknown error",
@@ -1 +1 @@
1
- {"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openharness/react",
3
- "version": "0.2.0",
3
+ "version": "0.2.2",
4
4
  "type": "module",
5
5
  "description": "React hooks and provider for OpenHarness AI SDK 5 integration",
6
6
  "exports": {
@@ -10,13 +10,31 @@
10
10
  }
11
11
  },
12
12
  "files": [
13
- "dist"
13
+ "dist",
14
+ "README.md"
14
15
  ],
15
16
  "peerDependencies": {
16
17
  "@ai-sdk/react": "^3.0.0",
17
18
  "react": "^18.0.0 || ^19.0.0",
18
- "@openharness/core": "0.3.0"
19
+ "@openharness/core": "0.4.2"
19
20
  },
21
+ "homepage": "https://github.com/MaxGfeller/open-harness/tree/main/packages/react#readme",
22
+ "repository": {
23
+ "type": "git",
24
+ "url": "https://github.com/MaxGfeller/open-harness.git",
25
+ "directory": "packages/react"
26
+ },
27
+ "bugs": {
28
+ "url": "https://github.com/MaxGfeller/open-harness/issues"
29
+ },
30
+ "keywords": [
31
+ "agent",
32
+ "ai",
33
+ "react",
34
+ "hooks",
35
+ "chat",
36
+ "openharness"
37
+ ],
20
38
  "devDependencies": {
21
39
  "@ai-sdk/react": "^3.0.0",
22
40
  "@testing-library/react": "^16.3.0",
@@ -25,7 +43,7 @@
25
43
  "react": "^19.1.0",
26
44
  "react-dom": "^19.1.0",
27
45
  "typescript": "^5.9.3",
28
- "@openharness/core": "0.3.0"
46
+ "@openharness/core": "0.4.2"
29
47
  },
30
48
  "license": "ISC",
31
49
  "scripts": {