@stigmer/react 0.2.3 → 0.3.0
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/composer/ComposerToolbar.d.ts +5 -1
- package/composer/ComposerToolbar.d.ts.map +1 -1
- package/composer/ComposerToolbar.js +6 -3
- package/composer/ComposerToolbar.js.map +1 -1
- package/composer/SessionComposer.d.ts +17 -1
- package/composer/SessionComposer.d.ts.map +1 -1
- package/composer/SessionComposer.js +10 -3
- package/composer/SessionComposer.js.map +1 -1
- package/execution/MessageEntry.d.ts +3 -1
- package/execution/MessageEntry.d.ts.map +1 -1
- package/execution/MessageEntry.js +30 -1
- package/execution/MessageEntry.js.map +1 -1
- package/index.d.ts +3 -3
- package/index.d.ts.map +1 -1
- package/index.js +2 -2
- package/index.js.map +1 -1
- package/models/HarnessSelector.d.ts +41 -0
- package/models/HarnessSelector.d.ts.map +1 -0
- package/models/HarnessSelector.js +74 -0
- package/models/HarnessSelector.js.map +1 -0
- package/models/ModelSelector.d.ts +26 -16
- package/models/ModelSelector.d.ts.map +1 -1
- package/models/ModelSelector.js +128 -48
- package/models/ModelSelector.js.map +1 -1
- package/models/__tests__/HarnessSelector.test.d.ts +2 -0
- package/models/__tests__/HarnessSelector.test.d.ts.map +1 -0
- package/models/__tests__/HarnessSelector.test.js +160 -0
- package/models/__tests__/HarnessSelector.test.js.map +1 -0
- package/models/__tests__/harness.test.d.ts +2 -0
- package/models/__tests__/harness.test.d.ts.map +1 -0
- package/models/__tests__/harness.test.js +50 -0
- package/models/__tests__/harness.test.js.map +1 -0
- package/models/__tests__/useModelRegistry.test.d.ts +2 -0
- package/models/__tests__/useModelRegistry.test.d.ts.map +1 -0
- package/models/__tests__/useModelRegistry.test.js +148 -0
- package/models/__tests__/useModelRegistry.test.js.map +1 -0
- package/models/harness.d.ts +21 -0
- package/models/harness.d.ts.map +1 -0
- package/models/harness.js +34 -0
- package/models/harness.js.map +1 -0
- package/models/index.d.ts +7 -2
- package/models/index.d.ts.map +1 -1
- package/models/index.js +3 -1
- package/models/index.js.map +1 -1
- package/models/registry.d.ts +53 -13
- package/models/registry.d.ts.map +1 -1
- package/models/registry.js +51 -40
- package/models/registry.js.map +1 -1
- package/models/useModelRegistry.d.ts +39 -19
- package/models/useModelRegistry.d.ts.map +1 -1
- package/models/useModelRegistry.js +45 -23
- package/models/useModelRegistry.js.map +1 -1
- package/package.json +4 -4
- package/runner/RunnerListPanel.js +2 -1
- package/runner/RunnerListPanel.js.map +1 -1
- package/runner/__tests__/phase.test.js +6 -2
- package/runner/__tests__/phase.test.js.map +1 -1
- package/runner/phase.d.ts +9 -7
- package/runner/phase.d.ts.map +1 -1
- package/runner/phase.js +18 -12
- package/runner/phase.js.map +1 -1
- package/session/__tests__/useCreateSession.test.d.ts +2 -0
- package/session/__tests__/useCreateSession.test.d.ts.map +1 -0
- package/session/__tests__/useCreateSession.test.js +232 -0
- package/session/__tests__/useCreateSession.test.js.map +1 -0
- package/session/__tests__/useNewSessionFlow.test.d.ts +2 -0
- package/session/__tests__/useNewSessionFlow.test.d.ts.map +1 -0
- package/session/__tests__/useNewSessionFlow.test.js +199 -0
- package/session/__tests__/useNewSessionFlow.test.js.map +1 -0
- package/session/__tests__/useSessionConversation.test.js +37 -0
- package/session/__tests__/useSessionConversation.test.js.map +1 -1
- package/session/index.d.ts +1 -1
- package/session/index.d.ts.map +1 -1
- package/session/useCreateSession.d.ts +8 -0
- package/session/useCreateSession.d.ts.map +1 -1
- package/session/useCreateSession.js +2 -0
- package/session/useCreateSession.js.map +1 -1
- package/session/useNewSessionFlow.d.ts +6 -1
- package/session/useNewSessionFlow.d.ts.map +1 -1
- package/session/useNewSessionFlow.js +34 -8
- package/session/useNewSessionFlow.js.map +1 -1
- package/session/usePersistedModel.d.ts +16 -1
- package/session/usePersistedModel.d.ts.map +1 -1
- package/session/usePersistedModel.js +15 -6
- package/session/usePersistedModel.js.map +1 -1
- package/session/useSessionConversation.d.ts.map +1 -1
- package/session/useSessionConversation.js +6 -1
- package/session/useSessionConversation.js.map +1 -1
- package/session/useSessionPageFlow.d.ts +11 -0
- package/session/useSessionPageFlow.d.ts.map +1 -1
- package/session/useSessionPageFlow.js +11 -2
- package/session/useSessionPageFlow.js.map +1 -1
- package/src/composer/ComposerToolbar.tsx +24 -1
- package/src/composer/SessionComposer.tsx +35 -1
- package/src/execution/MessageEntry.tsx +134 -1
- package/src/index.ts +15 -1
- package/src/models/HarnessSelector.tsx +130 -0
- package/src/models/ModelSelector.tsx +285 -81
- package/src/models/__tests__/HarnessSelector.test.tsx +190 -0
- package/src/models/__tests__/harness.test.ts +66 -0
- package/src/models/__tests__/useModelRegistry.test.tsx +209 -0
- package/src/models/harness.ts +45 -0
- package/src/models/index.ts +7 -2
- package/src/models/registry.ts +122 -50
- package/src/models/useModelRegistry.ts +74 -24
- package/src/runner/RunnerListPanel.tsx +13 -5
- package/src/runner/__tests__/phase.test.ts +6 -2
- package/src/runner/phase.ts +18 -12
- package/src/session/__tests__/useCreateSession.test.tsx +296 -0
- package/src/session/__tests__/useNewSessionFlow.test.tsx +258 -0
- package/src/session/__tests__/useSessionConversation.test.tsx +53 -0
- package/src/session/index.ts +1 -1
- package/src/session/useCreateSession.ts +9 -0
- package/src/session/useNewSessionFlow.ts +46 -9
- package/src/session/usePersistedModel.ts +30 -6
- package/src/session/useSessionConversation.ts +6 -1
- package/src/session/useSessionPageFlow.ts +26 -2
- package/styles.css +1 -1
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { describe, it, expect, vi, beforeEach, afterEach } from "vitest";
|
|
3
|
+
import { renderHook, act } from "@testing-library/react";
|
|
4
|
+
import { Harness } from "@stigmer/protos/ai/stigmer/agentic/session/v1/enum_pb";
|
|
5
|
+
import { StigmerContext } from "../../context";
|
|
6
|
+
import { useCreateSession } from "../useCreateSession";
|
|
7
|
+
function buildMockClient(overrides = {}) {
|
|
8
|
+
return {
|
|
9
|
+
session: {
|
|
10
|
+
create: overrides.sessionCreate ?? vi.fn(),
|
|
11
|
+
},
|
|
12
|
+
agent: {
|
|
13
|
+
getByReference: overrides.agentGetByReference ?? vi.fn(),
|
|
14
|
+
},
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
function makeWrapper(client) {
|
|
18
|
+
return ({ children }) => (_jsx(StigmerContext.Provider, { value: client, children: children }));
|
|
19
|
+
}
|
|
20
|
+
function fakeSessionResponse(sessionId) {
|
|
21
|
+
return { metadata: { id: sessionId } };
|
|
22
|
+
}
|
|
23
|
+
describe("useCreateSession", () => {
|
|
24
|
+
let sessionCreateMock;
|
|
25
|
+
let agentGetByRefMock;
|
|
26
|
+
let client;
|
|
27
|
+
beforeEach(() => {
|
|
28
|
+
sessionCreateMock = vi.fn();
|
|
29
|
+
agentGetByRefMock = vi.fn();
|
|
30
|
+
client = buildMockClient({
|
|
31
|
+
sessionCreate: sessionCreateMock,
|
|
32
|
+
agentGetByReference: agentGetByRefMock,
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
afterEach(() => {
|
|
36
|
+
vi.restoreAllMocks();
|
|
37
|
+
});
|
|
38
|
+
it("starts in idle state", () => {
|
|
39
|
+
const { result } = renderHook(() => useCreateSession(), {
|
|
40
|
+
wrapper: makeWrapper(client),
|
|
41
|
+
});
|
|
42
|
+
expect(result.current.isCreating).toBe(false);
|
|
43
|
+
expect(result.current.error).toBeNull();
|
|
44
|
+
});
|
|
45
|
+
describe("agentInstanceId path", () => {
|
|
46
|
+
it("creates a session with the given instance ID", async () => {
|
|
47
|
+
sessionCreateMock.mockResolvedValueOnce(fakeSessionResponse("sess-1"));
|
|
48
|
+
const { result } = renderHook(() => useCreateSession(), {
|
|
49
|
+
wrapper: makeWrapper(client),
|
|
50
|
+
});
|
|
51
|
+
let outcome;
|
|
52
|
+
await act(async () => {
|
|
53
|
+
outcome = await result.current.create({
|
|
54
|
+
org: "acme",
|
|
55
|
+
agentInstanceId: "inst-abc",
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
expect(outcome.sessionId).toBe("sess-1");
|
|
59
|
+
expect(sessionCreateMock).toHaveBeenCalledOnce();
|
|
60
|
+
expect(sessionCreateMock.mock.calls[0][0]).toMatchObject({
|
|
61
|
+
org: "acme",
|
|
62
|
+
agentInstanceId: "inst-abc",
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
describe("agentRef path", () => {
|
|
67
|
+
it("resolves the agent reference to its default instance", async () => {
|
|
68
|
+
agentGetByRefMock.mockResolvedValueOnce({
|
|
69
|
+
status: { defaultInstanceId: "inst-resolved" },
|
|
70
|
+
});
|
|
71
|
+
sessionCreateMock.mockResolvedValueOnce(fakeSessionResponse("sess-2"));
|
|
72
|
+
const { result } = renderHook(() => useCreateSession(), {
|
|
73
|
+
wrapper: makeWrapper(client),
|
|
74
|
+
});
|
|
75
|
+
await act(async () => {
|
|
76
|
+
await result.current.create({
|
|
77
|
+
org: "acme",
|
|
78
|
+
agentRef: { org: "acme", slug: "my-agent" },
|
|
79
|
+
});
|
|
80
|
+
});
|
|
81
|
+
expect(agentGetByRefMock).toHaveBeenCalledWith({
|
|
82
|
+
org: "acme",
|
|
83
|
+
slug: "my-agent",
|
|
84
|
+
});
|
|
85
|
+
expect(sessionCreateMock.mock.calls[0][0]).toMatchObject({
|
|
86
|
+
agentInstanceId: "inst-resolved",
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
it("throws when agent has no default instance", async () => {
|
|
90
|
+
agentGetByRefMock.mockResolvedValueOnce({ status: {} });
|
|
91
|
+
const { result } = renderHook(() => useCreateSession(), {
|
|
92
|
+
wrapper: makeWrapper(client),
|
|
93
|
+
});
|
|
94
|
+
await act(async () => {
|
|
95
|
+
await expect(result.current.create({
|
|
96
|
+
org: "acme",
|
|
97
|
+
agentRef: { org: "acme", slug: "no-instance" },
|
|
98
|
+
})).rejects.toThrow("does not have a default instance");
|
|
99
|
+
});
|
|
100
|
+
expect(result.current.error).not.toBeNull();
|
|
101
|
+
expect(result.current.error.message).toContain("does not have a default instance");
|
|
102
|
+
});
|
|
103
|
+
});
|
|
104
|
+
describe("harness proto conversion", () => {
|
|
105
|
+
it("passes Harness.CURSOR when harness is cursor", async () => {
|
|
106
|
+
sessionCreateMock.mockResolvedValueOnce(fakeSessionResponse("sess-h1"));
|
|
107
|
+
const { result } = renderHook(() => useCreateSession(), {
|
|
108
|
+
wrapper: makeWrapper(client),
|
|
109
|
+
});
|
|
110
|
+
await act(async () => {
|
|
111
|
+
await result.current.create({
|
|
112
|
+
org: "acme",
|
|
113
|
+
agentInstanceId: "inst-1",
|
|
114
|
+
harness: "cursor",
|
|
115
|
+
});
|
|
116
|
+
});
|
|
117
|
+
expect(sessionCreateMock.mock.calls[0][0].harness).toBe(Harness.CURSOR);
|
|
118
|
+
});
|
|
119
|
+
it("passes Harness.NATIVE when harness is native", async () => {
|
|
120
|
+
sessionCreateMock.mockResolvedValueOnce(fakeSessionResponse("sess-h2"));
|
|
121
|
+
const { result } = renderHook(() => useCreateSession(), {
|
|
122
|
+
wrapper: makeWrapper(client),
|
|
123
|
+
});
|
|
124
|
+
await act(async () => {
|
|
125
|
+
await result.current.create({
|
|
126
|
+
org: "acme",
|
|
127
|
+
agentInstanceId: "inst-1",
|
|
128
|
+
harness: "native",
|
|
129
|
+
});
|
|
130
|
+
});
|
|
131
|
+
expect(sessionCreateMock.mock.calls[0][0].harness).toBe(Harness.NATIVE);
|
|
132
|
+
});
|
|
133
|
+
it("passes undefined when harness is omitted", async () => {
|
|
134
|
+
sessionCreateMock.mockResolvedValueOnce(fakeSessionResponse("sess-h3"));
|
|
135
|
+
const { result } = renderHook(() => useCreateSession(), {
|
|
136
|
+
wrapper: makeWrapper(client),
|
|
137
|
+
});
|
|
138
|
+
await act(async () => {
|
|
139
|
+
await result.current.create({
|
|
140
|
+
org: "acme",
|
|
141
|
+
agentInstanceId: "inst-1",
|
|
142
|
+
});
|
|
143
|
+
});
|
|
144
|
+
expect(sessionCreateMock.mock.calls[0][0].harness).toBeUndefined();
|
|
145
|
+
});
|
|
146
|
+
});
|
|
147
|
+
describe("loading state lifecycle", () => {
|
|
148
|
+
it("isCreating is true during the RPC and false after", async () => {
|
|
149
|
+
let resolveCreate;
|
|
150
|
+
sessionCreateMock.mockReturnValueOnce(new Promise((r) => { resolveCreate = r; }));
|
|
151
|
+
const { result } = renderHook(() => useCreateSession(), {
|
|
152
|
+
wrapper: makeWrapper(client),
|
|
153
|
+
});
|
|
154
|
+
let createPromise;
|
|
155
|
+
act(() => {
|
|
156
|
+
createPromise = result.current.create({
|
|
157
|
+
org: "acme",
|
|
158
|
+
agentInstanceId: "inst-1",
|
|
159
|
+
});
|
|
160
|
+
});
|
|
161
|
+
expect(result.current.isCreating).toBe(true);
|
|
162
|
+
await act(async () => {
|
|
163
|
+
resolveCreate(fakeSessionResponse("sess-lc"));
|
|
164
|
+
await createPromise;
|
|
165
|
+
});
|
|
166
|
+
expect(result.current.isCreating).toBe(false);
|
|
167
|
+
});
|
|
168
|
+
});
|
|
169
|
+
describe("error handling", () => {
|
|
170
|
+
it("sets error on RPC failure and resets isCreating", async () => {
|
|
171
|
+
sessionCreateMock.mockRejectedValueOnce(new Error("network timeout"));
|
|
172
|
+
const { result } = renderHook(() => useCreateSession(), {
|
|
173
|
+
wrapper: makeWrapper(client),
|
|
174
|
+
});
|
|
175
|
+
await act(async () => {
|
|
176
|
+
await expect(result.current.create({
|
|
177
|
+
org: "acme",
|
|
178
|
+
agentInstanceId: "inst-1",
|
|
179
|
+
})).rejects.toThrow("network timeout");
|
|
180
|
+
});
|
|
181
|
+
expect(result.current.isCreating).toBe(false);
|
|
182
|
+
expect(result.current.error).toBeInstanceOf(Error);
|
|
183
|
+
expect(result.current.error.message).toBe("network timeout");
|
|
184
|
+
});
|
|
185
|
+
it("clearError resets error to null", async () => {
|
|
186
|
+
sessionCreateMock.mockRejectedValueOnce(new Error("fail"));
|
|
187
|
+
const { result } = renderHook(() => useCreateSession(), {
|
|
188
|
+
wrapper: makeWrapper(client),
|
|
189
|
+
});
|
|
190
|
+
await act(async () => {
|
|
191
|
+
try {
|
|
192
|
+
await result.current.create({
|
|
193
|
+
org: "acme",
|
|
194
|
+
agentInstanceId: "inst-1",
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
catch { /* expected */ }
|
|
198
|
+
});
|
|
199
|
+
expect(result.current.error).not.toBeNull();
|
|
200
|
+
act(() => {
|
|
201
|
+
result.current.clearError();
|
|
202
|
+
});
|
|
203
|
+
expect(result.current.error).toBeNull();
|
|
204
|
+
});
|
|
205
|
+
it("clears previous error on new create attempt", async () => {
|
|
206
|
+
sessionCreateMock
|
|
207
|
+
.mockRejectedValueOnce(new Error("first fail"))
|
|
208
|
+
.mockResolvedValueOnce(fakeSessionResponse("sess-retry"));
|
|
209
|
+
const { result } = renderHook(() => useCreateSession(), {
|
|
210
|
+
wrapper: makeWrapper(client),
|
|
211
|
+
});
|
|
212
|
+
await act(async () => {
|
|
213
|
+
try {
|
|
214
|
+
await result.current.create({
|
|
215
|
+
org: "acme",
|
|
216
|
+
agentInstanceId: "inst-1",
|
|
217
|
+
});
|
|
218
|
+
}
|
|
219
|
+
catch { /* expected */ }
|
|
220
|
+
});
|
|
221
|
+
expect(result.current.error).not.toBeNull();
|
|
222
|
+
await act(async () => {
|
|
223
|
+
await result.current.create({
|
|
224
|
+
org: "acme",
|
|
225
|
+
agentInstanceId: "inst-1",
|
|
226
|
+
});
|
|
227
|
+
});
|
|
228
|
+
expect(result.current.error).toBeNull();
|
|
229
|
+
});
|
|
230
|
+
});
|
|
231
|
+
});
|
|
232
|
+
//# sourceMappingURL=useCreateSession.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCreateSession.test.js","sourceRoot":"","sources":["../../../src/session/__tests__/useCreateSession.test.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useNewSessionFlow.test.d.ts","sourceRoot":"","sources":["../../../src/session/__tests__/useNewSessionFlow.test.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
import { describe, it, expect, vi, beforeEach, afterEach } from "vitest";
|
|
2
|
+
import { renderHook, act } from "@testing-library/react";
|
|
3
|
+
import { DEFAULT_MODEL_ID, DEFAULT_CURSOR_MODEL_ID } from "../../models/registry";
|
|
4
|
+
const mockCreateSession = vi.fn();
|
|
5
|
+
vi.mock("../useCreateSession", () => ({
|
|
6
|
+
useCreateSession: () => ({
|
|
7
|
+
create: mockCreateSession,
|
|
8
|
+
isCreating: false,
|
|
9
|
+
error: null,
|
|
10
|
+
clearError: vi.fn(),
|
|
11
|
+
}),
|
|
12
|
+
}));
|
|
13
|
+
const mockCreateExecution = vi.fn();
|
|
14
|
+
vi.mock("../../execution/useCreateAgentExecution", () => ({
|
|
15
|
+
useCreateAgentExecution: () => ({
|
|
16
|
+
create: mockCreateExecution,
|
|
17
|
+
isCreating: false,
|
|
18
|
+
error: null,
|
|
19
|
+
clearError: vi.fn(),
|
|
20
|
+
}),
|
|
21
|
+
}));
|
|
22
|
+
const mockDefaultAgent = {
|
|
23
|
+
agent: null,
|
|
24
|
+
isLoading: false,
|
|
25
|
+
error: null,
|
|
26
|
+
refetch: vi.fn(),
|
|
27
|
+
};
|
|
28
|
+
vi.mock("../../agent", () => ({
|
|
29
|
+
useDefaultAgent: () => mockDefaultAgent,
|
|
30
|
+
}));
|
|
31
|
+
const mockWorkspace = {
|
|
32
|
+
entries: [],
|
|
33
|
+
hasEntries: false,
|
|
34
|
+
toInput: vi.fn().mockReturnValue([]),
|
|
35
|
+
addGitRepo: vi.fn(),
|
|
36
|
+
addLocalPath: vi.fn(),
|
|
37
|
+
removeEntry: vi.fn(),
|
|
38
|
+
clear: vi.fn(),
|
|
39
|
+
};
|
|
40
|
+
vi.mock("../../workspace", () => ({
|
|
41
|
+
useWorkspaceEntries: () => mockWorkspace,
|
|
42
|
+
}));
|
|
43
|
+
const mockSessionVariables = {
|
|
44
|
+
variables: [],
|
|
45
|
+
hasVariables: false,
|
|
46
|
+
setVariable: vi.fn(),
|
|
47
|
+
removeVariable: vi.fn(),
|
|
48
|
+
clear: vi.fn(),
|
|
49
|
+
toMap: vi.fn().mockReturnValue(new Map()),
|
|
50
|
+
};
|
|
51
|
+
vi.mock("../../execution/useSessionVariables", () => ({
|
|
52
|
+
useSessionVariables: () => mockSessionVariables,
|
|
53
|
+
}));
|
|
54
|
+
import { useNewSessionFlow } from "../useNewSessionFlow";
|
|
55
|
+
const STORAGE_KEY_HARNESS = "stigmer:session:harness";
|
|
56
|
+
const STORAGE_KEY_MODEL_NATIVE = "stigmer:session:model";
|
|
57
|
+
const STORAGE_KEY_MODEL_CURSOR = "stigmer:session:model:cursor";
|
|
58
|
+
function defaultOptions() {
|
|
59
|
+
return {
|
|
60
|
+
org: "acme",
|
|
61
|
+
onSessionCreated: vi.fn(),
|
|
62
|
+
onError: vi.fn(),
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
describe("useNewSessionFlow", () => {
|
|
66
|
+
beforeEach(() => {
|
|
67
|
+
localStorage.clear();
|
|
68
|
+
mockDefaultAgent.agent = {
|
|
69
|
+
status: { defaultInstanceId: "default-inst" },
|
|
70
|
+
};
|
|
71
|
+
mockDefaultAgent.isLoading = false;
|
|
72
|
+
mockDefaultAgent.error = null;
|
|
73
|
+
mockCreateSession.mockResolvedValue({ sessionId: "sess-new" });
|
|
74
|
+
mockCreateExecution.mockResolvedValue({});
|
|
75
|
+
});
|
|
76
|
+
afterEach(() => {
|
|
77
|
+
vi.restoreAllMocks();
|
|
78
|
+
localStorage.clear();
|
|
79
|
+
});
|
|
80
|
+
describe("harness state", () => {
|
|
81
|
+
it("defaults to native when localStorage is empty", () => {
|
|
82
|
+
const { result } = renderHook(() => useNewSessionFlow(defaultOptions()));
|
|
83
|
+
expect(result.current.harness).toBe("native");
|
|
84
|
+
});
|
|
85
|
+
it("restores cursor harness from localStorage", () => {
|
|
86
|
+
localStorage.setItem(STORAGE_KEY_HARNESS, "cursor");
|
|
87
|
+
const { result } = renderHook(() => useNewSessionFlow(defaultOptions()));
|
|
88
|
+
expect(result.current.harness).toBe("cursor");
|
|
89
|
+
});
|
|
90
|
+
it("falls back to native for unknown localStorage values", () => {
|
|
91
|
+
localStorage.setItem(STORAGE_KEY_HARNESS, "unknown-value");
|
|
92
|
+
const { result } = renderHook(() => useNewSessionFlow(defaultOptions()));
|
|
93
|
+
expect(result.current.harness).toBe("native");
|
|
94
|
+
});
|
|
95
|
+
it("persists harness to localStorage on change", () => {
|
|
96
|
+
const { result } = renderHook(() => useNewSessionFlow(defaultOptions()));
|
|
97
|
+
act(() => result.current.setHarness("cursor"));
|
|
98
|
+
expect(localStorage.getItem(STORAGE_KEY_HARNESS)).toBe("cursor");
|
|
99
|
+
expect(result.current.harness).toBe("cursor");
|
|
100
|
+
});
|
|
101
|
+
it("persists native harness to localStorage", () => {
|
|
102
|
+
localStorage.setItem(STORAGE_KEY_HARNESS, "cursor");
|
|
103
|
+
const { result } = renderHook(() => useNewSessionFlow(defaultOptions()));
|
|
104
|
+
act(() => result.current.setHarness("native"));
|
|
105
|
+
expect(localStorage.getItem(STORAGE_KEY_HARNESS)).toBe("native");
|
|
106
|
+
});
|
|
107
|
+
});
|
|
108
|
+
describe("per-harness model persistence", () => {
|
|
109
|
+
it("uses separate storage keys for native and cursor models", () => {
|
|
110
|
+
const { result } = renderHook(() => useNewSessionFlow(defaultOptions()));
|
|
111
|
+
act(() => result.current.setModelId(DEFAULT_MODEL_ID));
|
|
112
|
+
expect(localStorage.getItem(STORAGE_KEY_MODEL_NATIVE)).toBe(DEFAULT_MODEL_ID);
|
|
113
|
+
expect(localStorage.getItem(STORAGE_KEY_MODEL_CURSOR)).toBeNull();
|
|
114
|
+
});
|
|
115
|
+
it("persists cursor model to cursor-specific key", () => {
|
|
116
|
+
localStorage.setItem(STORAGE_KEY_HARNESS, "cursor");
|
|
117
|
+
const { result } = renderHook(() => useNewSessionFlow(defaultOptions()));
|
|
118
|
+
act(() => result.current.setModelId(DEFAULT_CURSOR_MODEL_ID));
|
|
119
|
+
expect(localStorage.getItem(STORAGE_KEY_MODEL_CURSOR)).toBe(DEFAULT_CURSOR_MODEL_ID);
|
|
120
|
+
});
|
|
121
|
+
it("restores per-harness model when switching harness", () => {
|
|
122
|
+
localStorage.setItem(STORAGE_KEY_MODEL_CURSOR, DEFAULT_CURSOR_MODEL_ID);
|
|
123
|
+
const { result } = renderHook(() => useNewSessionFlow(defaultOptions()));
|
|
124
|
+
act(() => result.current.setHarness("cursor"));
|
|
125
|
+
expect(result.current.modelId).toBe(DEFAULT_CURSOR_MODEL_ID);
|
|
126
|
+
});
|
|
127
|
+
it("clears modelId when switching to a harness with no stored model", () => {
|
|
128
|
+
const { result } = renderHook(() => useNewSessionFlow(defaultOptions()));
|
|
129
|
+
act(() => result.current.setModelId(DEFAULT_MODEL_ID));
|
|
130
|
+
expect(result.current.modelId).toBe(DEFAULT_MODEL_ID);
|
|
131
|
+
act(() => result.current.setHarness("cursor"));
|
|
132
|
+
// No stored cursor model → modelId should be undefined
|
|
133
|
+
// (unless the model happens to be valid in the cursor registry)
|
|
134
|
+
if (result.current.modelId !== undefined) {
|
|
135
|
+
// If it has a value, it must be valid for cursor harness
|
|
136
|
+
expect(result.current.modelId).toBe(localStorage.getItem(STORAGE_KEY_MODEL_CURSOR));
|
|
137
|
+
}
|
|
138
|
+
});
|
|
139
|
+
it("invalidates modelId when it is not in the active harness registry", () => {
|
|
140
|
+
const { result } = renderHook(() => useNewSessionFlow(defaultOptions()));
|
|
141
|
+
// Set a native-only model
|
|
142
|
+
act(() => result.current.setModelId(DEFAULT_MODEL_ID));
|
|
143
|
+
expect(result.current.modelId).toBe(DEFAULT_MODEL_ID);
|
|
144
|
+
// Switch to cursor → native model should be invalidated
|
|
145
|
+
act(() => result.current.setHarness("cursor"));
|
|
146
|
+
// DEFAULT_MODEL_ID (anthropic) is not in cursor registry
|
|
147
|
+
expect(result.current.modelId).not.toBe(DEFAULT_MODEL_ID);
|
|
148
|
+
});
|
|
149
|
+
});
|
|
150
|
+
describe("submit with harness", () => {
|
|
151
|
+
it("passes harness field to createSession", async () => {
|
|
152
|
+
const opts = defaultOptions();
|
|
153
|
+
const { result } = renderHook(() => useNewSessionFlow(opts));
|
|
154
|
+
await act(async () => {
|
|
155
|
+
await result.current.submit("Hello");
|
|
156
|
+
});
|
|
157
|
+
expect(mockCreateSession).toHaveBeenCalledOnce();
|
|
158
|
+
const sessionInput = mockCreateSession.mock.calls[0][0];
|
|
159
|
+
expect(sessionInput.harness).toBe("native");
|
|
160
|
+
});
|
|
161
|
+
it("passes cursor harness to createSession after switching", async () => {
|
|
162
|
+
const opts = defaultOptions();
|
|
163
|
+
const { result } = renderHook(() => useNewSessionFlow(opts));
|
|
164
|
+
act(() => result.current.setHarness("cursor"));
|
|
165
|
+
await act(async () => {
|
|
166
|
+
await result.current.submit("Hello");
|
|
167
|
+
});
|
|
168
|
+
const sessionInput = mockCreateSession.mock.calls[0][0];
|
|
169
|
+
expect(sessionInput.harness).toBe("cursor");
|
|
170
|
+
});
|
|
171
|
+
it("calls onSessionCreated on success", async () => {
|
|
172
|
+
const opts = defaultOptions();
|
|
173
|
+
const { result } = renderHook(() => useNewSessionFlow(opts));
|
|
174
|
+
await act(async () => {
|
|
175
|
+
await result.current.submit("Hello");
|
|
176
|
+
});
|
|
177
|
+
expect(opts.onSessionCreated).toHaveBeenCalledWith("sess-new");
|
|
178
|
+
});
|
|
179
|
+
it("sets submitError and calls onError on failure", async () => {
|
|
180
|
+
mockCreateSession.mockRejectedValueOnce(new Error("RPC fail"));
|
|
181
|
+
const opts = defaultOptions();
|
|
182
|
+
const { result } = renderHook(() => useNewSessionFlow(opts));
|
|
183
|
+
await act(async () => {
|
|
184
|
+
await result.current.submit("Hello");
|
|
185
|
+
});
|
|
186
|
+
expect(result.current.submitError).not.toBeNull();
|
|
187
|
+
expect(opts.onError).toHaveBeenCalled();
|
|
188
|
+
});
|
|
189
|
+
it("resets isSubmitting after completion", async () => {
|
|
190
|
+
const opts = defaultOptions();
|
|
191
|
+
const { result } = renderHook(() => useNewSessionFlow(opts));
|
|
192
|
+
await act(async () => {
|
|
193
|
+
await result.current.submit("Hello");
|
|
194
|
+
});
|
|
195
|
+
expect(result.current.isSubmitting).toBe(false);
|
|
196
|
+
});
|
|
197
|
+
});
|
|
198
|
+
});
|
|
199
|
+
//# sourceMappingURL=useNewSessionFlow.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useNewSessionFlow.test.js","sourceRoot":"","sources":["../../../src/session/__tests__/useNewSessionFlow.test.tsx"],"names":[],"mappings":"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"}
|
|
@@ -205,5 +205,42 @@ describe("useSessionConversation", () => {
|
|
|
205
205
|
expect(result.current.pendingUserMessage).toBeNull();
|
|
206
206
|
});
|
|
207
207
|
});
|
|
208
|
+
it("full follow-up lifecycle: active execution completes → canSendFollowUp → sendFollowUp succeeds", async () => {
|
|
209
|
+
// Start with one IN_PROGRESS execution (simulates a Cursor execution running)
|
|
210
|
+
const activeExec = makeExecution("exec-1", ExecutionPhase.EXECUTION_IN_PROGRESS);
|
|
211
|
+
methods.listBySession.mockResolvedValue({ entries: [activeExec] });
|
|
212
|
+
const execStream = createControllableStream();
|
|
213
|
+
methods.subscribe.mockReturnValue(execStream.generator);
|
|
214
|
+
const { result } = renderHook(() => useSessionConversation("session-1", "org"), { wrapper: createWrapper(mockStigmer) });
|
|
215
|
+
await waitFor(() => expect(result.current.isLoading).toBe(false));
|
|
216
|
+
// Initially canSendFollowUp should be false (execution is active)
|
|
217
|
+
expect(result.current.canSendFollowUp).toBe(false);
|
|
218
|
+
// Stream delivers EXECUTION_COMPLETED — simulating Cursor run finishing
|
|
219
|
+
const completedExec = makeExecution("exec-1", ExecutionPhase.EXECUTION_COMPLETED);
|
|
220
|
+
act(() => {
|
|
221
|
+
execStream.push(completedExec);
|
|
222
|
+
});
|
|
223
|
+
// After stream completes, the hook should refetch executions.
|
|
224
|
+
// Mock the refetch to return the completed execution.
|
|
225
|
+
methods.listBySession.mockResolvedValue({ entries: [completedExec] });
|
|
226
|
+
// Wait for canSendFollowUp to become true
|
|
227
|
+
await waitFor(() => {
|
|
228
|
+
expect(result.current.canSendFollowUp).toBe(true);
|
|
229
|
+
});
|
|
230
|
+
// Now send a follow-up message
|
|
231
|
+
const followUpExec = makeExecution("exec-2", ExecutionPhase.EXECUTION_PENDING);
|
|
232
|
+
followUpExec.metadata.id = "exec-2";
|
|
233
|
+
methods.executionCreate.mockResolvedValue(followUpExec);
|
|
234
|
+
await act(async () => {
|
|
235
|
+
await result.current.sendFollowUp("Follow-up message", { modelName: "default" });
|
|
236
|
+
});
|
|
237
|
+
// Verify the create call was made with the correct session and message
|
|
238
|
+
expect(methods.executionCreate).toHaveBeenCalledWith(expect.objectContaining({
|
|
239
|
+
org: "org",
|
|
240
|
+
sessionId: "session-1",
|
|
241
|
+
message: "Follow-up message",
|
|
242
|
+
executionConfig: expect.objectContaining({ modelName: "default" }),
|
|
243
|
+
}));
|
|
244
|
+
});
|
|
208
245
|
});
|
|
209
246
|
//# sourceMappingURL=useSessionConversation.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSessionConversation.test.js","sourceRoot":"","sources":["../../../src/session/__tests__/useSessionConversation.test.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useSessionConversation.test.js","sourceRoot":"","sources":["../../../src/session/__tests__/useSessionConversation.test.tsx"],"names":[],"mappings":"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"}
|
package/session/index.d.ts
CHANGED
|
@@ -23,7 +23,7 @@ export type { UseNewSessionFlowOptions, UseNewSessionFlowReturn, } from "./useNe
|
|
|
23
23
|
export { useSessionPageFlow } from "./useSessionPageFlow";
|
|
24
24
|
export type { UseSessionPageFlowOptions, UseSessionPageFlowReturn, } from "./useSessionPageFlow";
|
|
25
25
|
export { usePersistedModel } from "./usePersistedModel";
|
|
26
|
-
export type { UsePersistedModelReturn } from "./usePersistedModel";
|
|
26
|
+
export type { UsePersistedModelReturn, UsePersistedModelOptions } from "./usePersistedModel";
|
|
27
27
|
export { useEditSessionPrep } from "./useEditSessionPrep";
|
|
28
28
|
export type { UseEditSessionPrepReturn } from "./useEditSessionPrep";
|
|
29
29
|
export { CREATOR_AGENTS, parseDraftType, parseDraftParams, } from "./draft";
|
package/session/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/session/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EACV,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAEjE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,YAAY,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAErD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,YAAY,EACV,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,YAAY,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AAEzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,YAAY,EACV,mBAAmB,EACnB,4BAA4B,GAC7B,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,YAAY,EACV,oBAAoB,EACpB,yBAAyB,GAC1B,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,YAAY,EACV,qBAAqB,EACrB,0BAA0B,GAC3B,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,YAAY,EACV,cAAc,EACd,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,YAAY,EAAE,4BAA4B,EAAE,MAAM,0BAA0B,CAAC;AAE7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,YAAY,EACV,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,YAAY,EACV,yBAAyB,EACzB,wBAAwB,GACzB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,YAAY,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/session/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EACV,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAEjE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,YAAY,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAErD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,YAAY,EACV,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,YAAY,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AAEzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,YAAY,EACV,mBAAmB,EACnB,4BAA4B,GAC7B,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,YAAY,EACV,oBAAoB,EACpB,yBAAyB,GAC1B,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,YAAY,EACV,qBAAqB,EACrB,0BAA0B,GAC3B,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,YAAY,EACV,cAAc,EACd,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,YAAY,EAAE,4BAA4B,EAAE,MAAM,0BAA0B,CAAC;AAE7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,YAAY,EACV,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,YAAY,EACV,yBAAyB,EACzB,wBAAwB,GACzB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,YAAY,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAE7F,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,YAAY,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAErE,OAAO,EACL,cAAc,EACd,cAAc,EACd,gBAAgB,GACjB,MAAM,SAAS,CAAC;AACjB,YAAY,EACV,iBAAiB,EACjB,WAAW,GACZ,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGrD,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type McpServerUsageInput, type ResourceRef, type WorkspaceEntryInput } from "@stigmer/sdk";
|
|
2
|
+
import { type HarnessOption } from "../models/harness";
|
|
2
3
|
/** Shared fields present in both variants of {@link CreateSessionInput}. */
|
|
3
4
|
export interface SharedSessionFields {
|
|
4
5
|
/** Organization slug for the new session. */
|
|
@@ -19,6 +20,13 @@ export interface SharedSessionFields {
|
|
|
19
20
|
* auto-bind in OSS, cloud auto-provisioning in Cloud).
|
|
20
21
|
*/
|
|
21
22
|
readonly runnerId?: string;
|
|
23
|
+
/**
|
|
24
|
+
* Execution harness for this session.
|
|
25
|
+
*
|
|
26
|
+
* Determines which execution engine processes agent activities.
|
|
27
|
+
* Immutable after the first execution runs. Defaults to `"native"`.
|
|
28
|
+
*/
|
|
29
|
+
readonly harness?: HarnessOption;
|
|
22
30
|
}
|
|
23
31
|
/**
|
|
24
32
|
* Input for creating a session. Exactly one agent resolution strategy
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCreateSession.d.ts","sourceRoot":"","sources":["../../src/session/useCreateSession.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,WAAW,EAChB,KAAK,mBAAmB,EACzB,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"useCreateSession.d.ts","sourceRoot":"","sources":["../../src/session/useCreateSession.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,WAAW,EAChB,KAAK,mBAAmB,EACzB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAkB,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvE,4EAA4E;AAC5E,MAAM,WAAW,mBAAmB;IAClC,6CAA6C;IAC7C,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,yDAAyD;IACzD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAClD,oEAAoE;IACpE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,4DAA4D;IAC5D,QAAQ,CAAC,eAAe,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACjD,iEAAiE;IACjE,QAAQ,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,CAAC;IACnC;;;;;;OAMG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;;OAKG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC;CAClC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,kBAAkB,GAAG,mBAAmB,GAClD,CACI;IACE,+DAA+D;IAC/D,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,4EAA4E;IAC5E,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC;CAC3B,GACD;IACE,mFAAmF;IACnF,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;IAC/B,qEAAqE;IACrE,QAAQ,CAAC,eAAe,CAAC,EAAE,KAAK,CAAC;CAClC,CACJ,CAAC;AAEJ,gEAAgE;AAChE,MAAM,WAAW,mBAAmB;IAClC,gEAAgE;IAChE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,gDAAgD;AAChD,MAAM,WAAW,sBAAsB;IACrC,+EAA+E;IAC/E,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC7E,gDAAgD;IAChD,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,yEAAyE;IACzE,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAC7B,uCAAuC;IACvC,QAAQ,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC;CACjC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,gBAAgB,IAAI,sBAAsB,CA4DzD"}
|
|
@@ -3,6 +3,7 @@ import { useCallback, useState } from "react";
|
|
|
3
3
|
import { PENDING_SUBJECT, } from "@stigmer/sdk";
|
|
4
4
|
import { useStigmer } from "../hooks";
|
|
5
5
|
import { toError } from "../internal/toError";
|
|
6
|
+
import { toProtoHarness } from "../models/harness";
|
|
6
7
|
/**
|
|
7
8
|
* Behavior hook that wraps `session.create()` with loading/error state.
|
|
8
9
|
*
|
|
@@ -72,6 +73,7 @@ export function useCreateSession() {
|
|
|
72
73
|
skillRefs: input.skillRefs,
|
|
73
74
|
runnerId: input.runnerId,
|
|
74
75
|
agentInstanceId: resolvedInstanceId,
|
|
76
|
+
harness: input.harness ? toProtoHarness(input.harness) : undefined,
|
|
75
77
|
});
|
|
76
78
|
return { sessionId: session.metadata.id };
|
|
77
79
|
}
|