@design.estate/dees-catalog 6.0.0 → 6.2.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/dist_bundle/bundle.js +3105 -1500
- package/dist_ts_web/00_commitinfo_data.js +1 -1
- package/dist_ts_web/elements/00group-harness/dees-harness-chat/dees-harness-chat.d.ts +2 -0
- package/dist_ts_web/elements/00group-harness/dees-harness-chat/dees-harness-chat.demo.js +484 -8
- package/dist_ts_web/elements/00group-harness/dees-harness-chat/dees-harness-chat.js +10 -1
- package/dist_ts_web/elements/00group-harness/dees-harness-message/dees-harness-message.d.ts +3 -1
- package/dist_ts_web/elements/00group-harness/dees-harness-message/dees-harness-message.js +24 -4
- package/dist_ts_web/elements/00group-harness/dees-harness-message-list/dees-harness-message-list.d.ts +26 -0
- package/dist_ts_web/elements/00group-harness/dees-harness-message-list/dees-harness-message-list.js +398 -94
- package/dist_ts_web/elements/00group-harness/dees-harness-overflow-text.d.ts +32 -0
- package/dist_ts_web/elements/00group-harness/dees-harness-overflow-text.demo.d.ts +1 -0
- package/dist_ts_web/elements/00group-harness/dees-harness-overflow-text.demo.js +31 -0
- package/dist_ts_web/elements/00group-harness/dees-harness-overflow-text.js +297 -0
- package/dist_ts_web/elements/00group-harness/dees-harness-session-list/dees-harness-session-list.js +1 -9
- package/dist_ts_web/elements/00group-harness/dees-harness-session-sidebar/dees-harness-session-sidebar.d.ts +10 -1
- package/dist_ts_web/elements/00group-harness/dees-harness-session-sidebar/dees-harness-session-sidebar.js +181 -2
- package/dist_ts_web/elements/00group-harness/dees-harness-tool-card/dees-harness-tool-card.d.ts +17 -1
- package/dist_ts_web/elements/00group-harness/dees-harness-tool-card/dees-harness-tool-card.js +480 -36
- package/dist_ts_web/elements/00group-harness/dees-harness-tool-card/renderers.js +28 -24
- package/dist_ts_web/elements/00group-harness/harness.helpers.d.ts +5 -1
- package/dist_ts_web/elements/00group-harness/harness.helpers.js +66 -1
- package/dist_ts_web/elements/00group-harness/index.d.ts +1 -0
- package/dist_ts_web/elements/00group-harness/index.js +2 -1
- package/dist_ts_web/elements/00group-harness/interfaces.d.ts +33 -2
- package/dist_ts_web/elements/00group-harness/toolregistry.d.ts +4 -0
- package/dist_ts_web/elements/00group-harness/toolregistry.js +8 -1
- package/package.json +2 -2
- package/readme.hints.md +16 -1
- package/readme.md +41 -9
- package/readme.playbook.md +8 -4
- package/ts_web/00_commitinfo_data.ts +1 -1
- package/ts_web/elements/00group-harness/dees-harness-chat/dees-harness-chat.demo.ts +490 -7
- package/ts_web/elements/00group-harness/dees-harness-chat/dees-harness-chat.ts +9 -0
- package/ts_web/elements/00group-harness/dees-harness-message/dees-harness-message.ts +24 -3
- package/ts_web/elements/00group-harness/dees-harness-message-list/dees-harness-message-list.ts +397 -84
- package/ts_web/elements/00group-harness/dees-harness-overflow-text.demo.ts +31 -0
- package/ts_web/elements/00group-harness/dees-harness-overflow-text.ts +236 -0
- package/ts_web/elements/00group-harness/dees-harness-session-list/dees-harness-session-list.ts +0 -8
- package/ts_web/elements/00group-harness/dees-harness-session-sidebar/dees-harness-session-sidebar.ts +193 -1
- package/ts_web/elements/00group-harness/dees-harness-tool-card/dees-harness-tool-card.ts +484 -34
- package/ts_web/elements/00group-harness/dees-harness-tool-card/renderers.ts +29 -25
- package/ts_web/elements/00group-harness/harness.helpers.ts +68 -1
- package/ts_web/elements/00group-harness/index.ts +1 -0
- package/ts_web/elements/00group-harness/interfaces.ts +38 -2
- package/ts_web/elements/00group-harness/toolregistry.ts +12 -0
|
@@ -74,8 +74,472 @@ const pendingPermission = {
|
|
|
74
74
|
createdAt: Date.now(),
|
|
75
75
|
metadata: { path: '/srv/app/src/jobs/sitemap.job.ts', bytes: 812 },
|
|
76
76
|
};
|
|
77
|
+
const firstSubagentWave = [
|
|
78
|
+
{
|
|
79
|
+
description: 'API contract',
|
|
80
|
+
model: 'openai/gpt-5.5',
|
|
81
|
+
toolName: 'read_file',
|
|
82
|
+
toolInput: { path: '/srv/app/ts_interfaces/harness.ts', startLine: 1, endLine: 220 },
|
|
83
|
+
toolOutput: 'IHarnessSessionProjection and event contracts loaded.',
|
|
84
|
+
resultChunks: [
|
|
85
|
+
'The projection boundary is already runtime-neutral. ',
|
|
86
|
+
'Child ownership can stay on the session service. ',
|
|
87
|
+
'Only bounded messages and status need to cross the API. ',
|
|
88
|
+
'Contract review complete.',
|
|
89
|
+
],
|
|
90
|
+
startDelay: 0,
|
|
91
|
+
toolDuration: 1_300,
|
|
92
|
+
chunkDelay: 620,
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
description: 'Browser lifecycle',
|
|
96
|
+
model: 'anthropic/claude-sonnet-4',
|
|
97
|
+
toolName: 'browser',
|
|
98
|
+
toolInput: { action: 'snapshot', url: 'http://localhost:3002/harness' },
|
|
99
|
+
toolOutput: 'Captured active, reconnecting, and completed child-card states.',
|
|
100
|
+
resultChunks: [
|
|
101
|
+
'The nested transcript keeps its own scroll boundary. ',
|
|
102
|
+
'Reconnect restores the content observer without duplicating it. ',
|
|
103
|
+
'Completed cards return to chronology with DOM identity intact. ',
|
|
104
|
+
'Browser lifecycle checks pass.',
|
|
105
|
+
],
|
|
106
|
+
startDelay: 240,
|
|
107
|
+
toolDuration: 1_750,
|
|
108
|
+
chunkDelay: 700,
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
description: 'Regression coverage',
|
|
112
|
+
model: 'openai/gpt-5.5',
|
|
113
|
+
toolName: 'run_command',
|
|
114
|
+
toolInput: { command: 'pnpm exec tstest test/test.harness-subagent-streams.chromium.ts --web', cwd: '/srv/app' },
|
|
115
|
+
toolOutput: { exitCode: 0, stdout: '11/11 focused Chromium tests passed' },
|
|
116
|
+
resultChunks: [
|
|
117
|
+
'Focused coverage exercises nested deltas and grid movement. ',
|
|
118
|
+
'The projection-only drill-in path resolves correctly. ',
|
|
119
|
+
'Native overscroll containment is present. ',
|
|
120
|
+
'Regression coverage is green.',
|
|
121
|
+
],
|
|
122
|
+
startDelay: 480,
|
|
123
|
+
toolDuration: 2_200,
|
|
124
|
+
chunkDelay: 760,
|
|
125
|
+
},
|
|
126
|
+
];
|
|
127
|
+
const secondSubagentWave = [
|
|
128
|
+
{
|
|
129
|
+
description: 'Authorization boundaries',
|
|
130
|
+
model: 'openai/gpt-5.5',
|
|
131
|
+
toolName: 'grep',
|
|
132
|
+
toolInput: { pattern: 'requireSessionAccess', path: '/srv/app/ts' },
|
|
133
|
+
toolOutput: '8 ownership checks found; all projection routes are guarded.',
|
|
134
|
+
resultChunks: ['Checked route guards. ', 'Verified parent and child ownership. ', 'No cross-tenant projection path found. ', 'Authorization review complete.'],
|
|
135
|
+
startDelay: 0,
|
|
136
|
+
toolDuration: 1_350,
|
|
137
|
+
chunkDelay: 620,
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
description: 'Storage adapters',
|
|
141
|
+
model: 'anthropic/claude-sonnet-4',
|
|
142
|
+
toolName: 'read_file',
|
|
143
|
+
toolInput: { path: '/srv/app/ts/classes.sessionstore.ts', startLine: 80, endLine: 260 },
|
|
144
|
+
toolOutput: 'Session lookup and bounded transcript paging reviewed.',
|
|
145
|
+
resultChunks: ['Read the paging path. ', 'Confirmed stable cursor ordering. ', 'Validated truncation metadata. ', 'Storage review complete.'],
|
|
146
|
+
startDelay: 140,
|
|
147
|
+
toolDuration: 1_700,
|
|
148
|
+
chunkDelay: 680,
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
description: 'RPC event mapping',
|
|
152
|
+
model: 'openai/gpt-5.5',
|
|
153
|
+
toolName: 'read_file',
|
|
154
|
+
toolInput: { path: '/srv/app/ts_interfaces/events.ts', startLine: 1, endLine: 180 },
|
|
155
|
+
toolOutput: 'Parent and nested stream event mapping is complete.',
|
|
156
|
+
resultChunks: ['Mapped child status events. ', 'Mapped tool and reasoning deltas. ', 'Confirmed snapshot recovery after gaps. ', 'RPC event mapping complete.'],
|
|
157
|
+
startDelay: 280,
|
|
158
|
+
toolDuration: 1_150,
|
|
159
|
+
chunkDelay: 740,
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
description: 'Mobile layout',
|
|
163
|
+
model: 'anthropic/claude-sonnet-4',
|
|
164
|
+
toolName: 'browser',
|
|
165
|
+
toolInput: { action: 'snapshot', url: 'http://localhost:3002/harness?viewport=phone' },
|
|
166
|
+
toolOutput: 'Single-column cards and session overlay captured at 390px.',
|
|
167
|
+
resultChunks: ['Reduced the transcript container. ', 'Confirmed one-column active cards. ', 'Opened the session overlay above the chat. ', 'Mobile layout is stable.'],
|
|
168
|
+
startDelay: 420,
|
|
169
|
+
toolDuration: 2_050,
|
|
170
|
+
chunkDelay: 610,
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
description: 'Reconnect behavior',
|
|
174
|
+
model: 'openai/gpt-5.5',
|
|
175
|
+
toolName: 'run_command',
|
|
176
|
+
toolInput: { command: 'pnpm test --filter reconnect', cwd: '/srv/app' },
|
|
177
|
+
toolOutput: { exitCode: 0, stdout: '6 reconnect scenarios passed' },
|
|
178
|
+
resultChunks: ['Interrupted the child feed. ', 'Replayed the authoritative snapshot. ', 'Resumed deltas without duplication. ', 'Reconnect behavior passes.'],
|
|
179
|
+
startDelay: 560,
|
|
180
|
+
toolDuration: 2_400,
|
|
181
|
+
chunkDelay: 720,
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
description: 'Permission flow',
|
|
185
|
+
model: 'anthropic/claude-sonnet-4',
|
|
186
|
+
toolName: 'grep',
|
|
187
|
+
toolInput: { pattern: 'harness-permission-response', path: '/srv/app/ts_web' },
|
|
188
|
+
toolOutput: 'Permission responses remain child-session scoped.',
|
|
189
|
+
resultChunks: ['Traced permission ownership. ', 'Confirmed answered cards persist. ', 'Verified nested requests never leak outward. ', 'Permission flow is correct.'],
|
|
190
|
+
startDelay: 700,
|
|
191
|
+
toolDuration: 1_500,
|
|
192
|
+
chunkDelay: 790,
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
description: 'Documentation audit',
|
|
196
|
+
model: 'openai/gpt-5.5',
|
|
197
|
+
toolName: 'read_file',
|
|
198
|
+
toolInput: { path: '/srv/app/readme.md', startLine: 1800, endLine: 1860 },
|
|
199
|
+
toolOutput: 'Subtask projection, drill-in, and truncation behavior documented.',
|
|
200
|
+
resultChunks: ['Compared docs with interfaces. ', 'Checked the projection example. ', 'Verified host responsibilities are explicit. ', 'Documentation audit complete.'],
|
|
201
|
+
startDelay: 840,
|
|
202
|
+
toolDuration: 1_900,
|
|
203
|
+
chunkDelay: 650,
|
|
204
|
+
},
|
|
205
|
+
{
|
|
206
|
+
description: 'Bundle impact',
|
|
207
|
+
model: 'anthropic/claude-sonnet-4',
|
|
208
|
+
toolName: 'run_command',
|
|
209
|
+
toolInput: { command: 'pnpm run build', cwd: '/srv/app' },
|
|
210
|
+
toolOutput: { exitCode: 0, stdout: 'TypeScript and browser bundle completed' },
|
|
211
|
+
resultChunks: ['Compiled the component graph. ', 'Checked the browser bundle. ', 'Found no runtime-specific dependency. ', 'Bundle verification passes.'],
|
|
212
|
+
startDelay: 980,
|
|
213
|
+
toolDuration: 2_600,
|
|
214
|
+
chunkDelay: 700,
|
|
215
|
+
},
|
|
216
|
+
{
|
|
217
|
+
description: 'Release checklist',
|
|
218
|
+
model: 'openai/gpt-5.5',
|
|
219
|
+
toolName: 'webfetch',
|
|
220
|
+
toolInput: { url: 'https://code.foss.global/design.estate/dees-catalog/raw/branch/main/changelog.md' },
|
|
221
|
+
toolOutput: 'Release notes include bounded live subagent streams.',
|
|
222
|
+
resultChunks: ['Reviewed the pending notes. ', 'Matched public API names. ', 'Confirmed verification results are recorded. ', 'Release checklist is ready.'],
|
|
223
|
+
startDelay: 1_120,
|
|
224
|
+
toolDuration: 2_150,
|
|
225
|
+
chunkDelay: 760,
|
|
226
|
+
},
|
|
227
|
+
];
|
|
228
|
+
const createSubagentWave = (runId, waveNumber, scenarios) => {
|
|
229
|
+
const now = Date.now();
|
|
230
|
+
return scenarios.map((scenario, index) => {
|
|
231
|
+
const childSessionId = `demo-${runId}-wave-${waveNumber}-child-${index + 1}`;
|
|
232
|
+
const childToolId = `${childSessionId}-tool`;
|
|
233
|
+
return {
|
|
234
|
+
id: `demo-${runId}-wave-${waveNumber}-subagent-${index + 1}`,
|
|
235
|
+
role: 'tool',
|
|
236
|
+
text: '',
|
|
237
|
+
createdAt: now + index,
|
|
238
|
+
toolCall: {
|
|
239
|
+
id: `demo-${runId}-wave-${waveNumber}-call-${index + 1}`,
|
|
240
|
+
name: 'task',
|
|
241
|
+
status: 'running',
|
|
242
|
+
input: { description: scenario.description },
|
|
243
|
+
childSessionId,
|
|
244
|
+
model: scenario.model,
|
|
245
|
+
subtask: {
|
|
246
|
+
sessionId: childSessionId,
|
|
247
|
+
previewState: 'ready',
|
|
248
|
+
status: { type: 'busy', message: `Investigating ${scenario.description.toLowerCase()}…` },
|
|
249
|
+
messages: [
|
|
250
|
+
{
|
|
251
|
+
id: `${childSessionId}-plan`,
|
|
252
|
+
role: 'assistant',
|
|
253
|
+
text: `I’ll inspect ${scenario.description.toLowerCase()} and report the concrete result.`,
|
|
254
|
+
createdAt: now,
|
|
255
|
+
markdown: false,
|
|
256
|
+
},
|
|
257
|
+
{
|
|
258
|
+
id: childToolId,
|
|
259
|
+
role: 'tool',
|
|
260
|
+
text: '',
|
|
261
|
+
createdAt: now + 1,
|
|
262
|
+
toolCall: {
|
|
263
|
+
id: `${childToolId}-call`,
|
|
264
|
+
name: scenario.toolName,
|
|
265
|
+
status: 'running',
|
|
266
|
+
input: scenario.toolInput,
|
|
267
|
+
startedAt: now,
|
|
268
|
+
},
|
|
269
|
+
},
|
|
270
|
+
{
|
|
271
|
+
id: `${childSessionId}-result`,
|
|
272
|
+
role: 'assistant',
|
|
273
|
+
text: '',
|
|
274
|
+
createdAt: now + 2,
|
|
275
|
+
markdown: false,
|
|
276
|
+
streaming: true,
|
|
277
|
+
},
|
|
278
|
+
],
|
|
279
|
+
},
|
|
280
|
+
startedAt: now,
|
|
281
|
+
},
|
|
282
|
+
};
|
|
283
|
+
});
|
|
284
|
+
};
|
|
77
285
|
let stopStream;
|
|
78
286
|
const chatOf = (event) => event.target.closest('.chatDemo')?.querySelector('dees-harness-chat') ?? null;
|
|
287
|
+
const simulateSubagents = (event) => {
|
|
288
|
+
const chat = chatOf(event);
|
|
289
|
+
if (!chat)
|
|
290
|
+
return;
|
|
291
|
+
stopStream?.();
|
|
292
|
+
const runId = Date.now();
|
|
293
|
+
let stopped = false;
|
|
294
|
+
let currentWaveLabel = '';
|
|
295
|
+
const pendingDelays = new Map();
|
|
296
|
+
const activeSubagents = new Map();
|
|
297
|
+
const activeMainMessages = new Set();
|
|
298
|
+
const activeMainTools = new Set();
|
|
299
|
+
const wait = async (milliseconds) => new Promise((resolve) => {
|
|
300
|
+
if (stopped) {
|
|
301
|
+
resolve(false);
|
|
302
|
+
return;
|
|
303
|
+
}
|
|
304
|
+
const timeout = setTimeout(() => {
|
|
305
|
+
pendingDelays.delete(timeout);
|
|
306
|
+
resolve(!stopped);
|
|
307
|
+
}, milliseconds);
|
|
308
|
+
pendingDelays.set(timeout, resolve);
|
|
309
|
+
});
|
|
310
|
+
const pushMessage = async (message) => {
|
|
311
|
+
chat.messages = [...chat.messages, message];
|
|
312
|
+
await chat.updateComplete;
|
|
313
|
+
return !stopped;
|
|
314
|
+
};
|
|
315
|
+
const updateWaveStatus = () => {
|
|
316
|
+
if (stopped || !activeSubagents.size)
|
|
317
|
+
return;
|
|
318
|
+
chat.status = {
|
|
319
|
+
type: 'busy',
|
|
320
|
+
message: `${currentWaveLabel}: ${activeSubagents.size} subagent${activeSubagents.size === 1 ? '' : 's'} still working…`,
|
|
321
|
+
};
|
|
322
|
+
};
|
|
323
|
+
const finishSubagent = (task, status) => {
|
|
324
|
+
if (!activeSubagents.has(task.id))
|
|
325
|
+
return;
|
|
326
|
+
const call = task.toolCall;
|
|
327
|
+
const subtask = call?.subtask;
|
|
328
|
+
if (!call || subtask?.previewState !== 'ready')
|
|
329
|
+
return;
|
|
330
|
+
const now = Date.now();
|
|
331
|
+
chat.applyDelta({
|
|
332
|
+
type: 'tool-update',
|
|
333
|
+
messageId: task.id,
|
|
334
|
+
tool: {
|
|
335
|
+
id: call.id,
|
|
336
|
+
status,
|
|
337
|
+
finishedAt: now,
|
|
338
|
+
...(status === 'error' ? { errorText: 'Simulation stopped.' } : {}),
|
|
339
|
+
subtask: {
|
|
340
|
+
...subtask,
|
|
341
|
+
status: status === 'completed' ? { type: 'idle' } : { type: 'error', message: 'Stopped' },
|
|
342
|
+
messages: subtask.messages.map((message) => {
|
|
343
|
+
if (message.toolCall?.status === 'pending' || message.toolCall?.status === 'running') {
|
|
344
|
+
return {
|
|
345
|
+
...message,
|
|
346
|
+
toolCall: {
|
|
347
|
+
...message.toolCall,
|
|
348
|
+
status: status === 'completed' ? 'completed' : 'error',
|
|
349
|
+
finishedAt: now,
|
|
350
|
+
...(status === 'error' ? { errorText: 'Simulation stopped.' } : {}),
|
|
351
|
+
},
|
|
352
|
+
};
|
|
353
|
+
}
|
|
354
|
+
if (!message.streaming)
|
|
355
|
+
return message;
|
|
356
|
+
return {
|
|
357
|
+
...message,
|
|
358
|
+
streaming: false,
|
|
359
|
+
...(status === 'error' ? { error: 'Simulation stopped.' } : {}),
|
|
360
|
+
};
|
|
361
|
+
}),
|
|
362
|
+
},
|
|
363
|
+
},
|
|
364
|
+
});
|
|
365
|
+
activeSubagents.delete(task.id);
|
|
366
|
+
updateWaveStatus();
|
|
367
|
+
};
|
|
368
|
+
const runSubagent = async (task, scenario) => {
|
|
369
|
+
const subtask = task.toolCall?.subtask;
|
|
370
|
+
if (subtask?.previewState !== 'ready')
|
|
371
|
+
return;
|
|
372
|
+
const childTool = subtask.messages.find((message) => message.toolCall);
|
|
373
|
+
const childResult = subtask.messages.find((message) => message.streaming);
|
|
374
|
+
if (!childTool?.toolCall || !childResult)
|
|
375
|
+
return;
|
|
376
|
+
if (!await wait(scenario.startDelay))
|
|
377
|
+
return;
|
|
378
|
+
if (!await wait(scenario.toolDuration))
|
|
379
|
+
return;
|
|
380
|
+
chat.applyDelta({
|
|
381
|
+
type: 'tool-update',
|
|
382
|
+
parentMessageId: task.id,
|
|
383
|
+
messageId: childTool.id,
|
|
384
|
+
tool: {
|
|
385
|
+
id: childTool.toolCall.id,
|
|
386
|
+
status: 'completed',
|
|
387
|
+
output: scenario.toolOutput,
|
|
388
|
+
finishedAt: Date.now(),
|
|
389
|
+
},
|
|
390
|
+
});
|
|
391
|
+
for (const chunk of scenario.resultChunks) {
|
|
392
|
+
if (!await wait(scenario.chunkDelay))
|
|
393
|
+
return;
|
|
394
|
+
chat.applyDelta({
|
|
395
|
+
type: 'text',
|
|
396
|
+
parentMessageId: task.id,
|
|
397
|
+
messageId: childResult.id,
|
|
398
|
+
delta: chunk,
|
|
399
|
+
});
|
|
400
|
+
}
|
|
401
|
+
chat.applyDelta({
|
|
402
|
+
type: 'message-end',
|
|
403
|
+
parentMessageId: task.id,
|
|
404
|
+
messageId: childResult.id,
|
|
405
|
+
});
|
|
406
|
+
finishSubagent(task, 'completed');
|
|
407
|
+
};
|
|
408
|
+
const runWave = async (waveNumber, label, scenarios) => {
|
|
409
|
+
currentWaveLabel = label;
|
|
410
|
+
const tasks = createSubagentWave(runId, waveNumber, scenarios);
|
|
411
|
+
for (const task of tasks)
|
|
412
|
+
activeSubagents.set(task.id, task);
|
|
413
|
+
chat.messages = [...chat.messages, ...tasks];
|
|
414
|
+
updateWaveStatus();
|
|
415
|
+
await chat.updateComplete;
|
|
416
|
+
await Promise.all(tasks.map((task, index) => runSubagent(task, scenarios[index])));
|
|
417
|
+
return !stopped;
|
|
418
|
+
};
|
|
419
|
+
const streamMainMessage = async (text) => {
|
|
420
|
+
const messageId = `demo-${runId}-main-${Date.now()}`;
|
|
421
|
+
const message = {
|
|
422
|
+
id: messageId,
|
|
423
|
+
role: 'assistant',
|
|
424
|
+
text: '',
|
|
425
|
+
createdAt: Date.now(),
|
|
426
|
+
markdown: true,
|
|
427
|
+
streaming: true,
|
|
428
|
+
model: 'gpt-5.5',
|
|
429
|
+
};
|
|
430
|
+
activeMainMessages.add(messageId);
|
|
431
|
+
if (!await pushMessage(message))
|
|
432
|
+
return false;
|
|
433
|
+
for (let offset = 0; offset < text.length; offset += 18) {
|
|
434
|
+
if (!await wait(70))
|
|
435
|
+
return false;
|
|
436
|
+
chat.applyDelta({ type: 'text', messageId, delta: text.slice(offset, offset + 18) });
|
|
437
|
+
}
|
|
438
|
+
chat.applyDelta({ type: 'message-end', messageId });
|
|
439
|
+
activeMainMessages.delete(messageId);
|
|
440
|
+
return true;
|
|
441
|
+
};
|
|
442
|
+
const stop = () => {
|
|
443
|
+
if (stopped)
|
|
444
|
+
return;
|
|
445
|
+
stopped = true;
|
|
446
|
+
for (const [timeout, resolve] of pendingDelays) {
|
|
447
|
+
clearTimeout(timeout);
|
|
448
|
+
resolve(false);
|
|
449
|
+
}
|
|
450
|
+
pendingDelays.clear();
|
|
451
|
+
for (const task of [...activeSubagents.values()])
|
|
452
|
+
finishSubagent(task, 'error');
|
|
453
|
+
for (const messageId of activeMainMessages) {
|
|
454
|
+
chat.applyDelta({ type: 'message-end', messageId, error: 'Simulation stopped.' });
|
|
455
|
+
}
|
|
456
|
+
activeMainMessages.clear();
|
|
457
|
+
for (const messageId of activeMainTools) {
|
|
458
|
+
const tool = chat.messages.find((message) => message.id === messageId)?.toolCall;
|
|
459
|
+
if (!tool)
|
|
460
|
+
continue;
|
|
461
|
+
chat.applyDelta({
|
|
462
|
+
type: 'tool-update',
|
|
463
|
+
messageId,
|
|
464
|
+
tool: { id: tool.id, status: 'error', errorText: 'Simulation stopped.', finishedAt: Date.now() },
|
|
465
|
+
});
|
|
466
|
+
}
|
|
467
|
+
activeMainTools.clear();
|
|
468
|
+
chat.status = { type: 'idle' };
|
|
469
|
+
if (stopStream === stop)
|
|
470
|
+
stopStream = undefined;
|
|
471
|
+
};
|
|
472
|
+
stopStream = stop;
|
|
473
|
+
const run = async () => {
|
|
474
|
+
chat.messages = [...harnessDemoConversation().slice(-2)];
|
|
475
|
+
chat.permissions = [];
|
|
476
|
+
chat.questions = [];
|
|
477
|
+
if (!await runWave(1, 'First wave', firstSubagentWave))
|
|
478
|
+
return;
|
|
479
|
+
chat.status = { type: 'busy', message: 'Main thread is reconciling the first wave…' };
|
|
480
|
+
if (!await wait(520))
|
|
481
|
+
return;
|
|
482
|
+
if (!await streamMainMessage('The first three reviews agree on the bounded projection. I’m consolidating their findings before widening the verification pass.'))
|
|
483
|
+
return;
|
|
484
|
+
const mainToolId = `demo-${runId}-main-checklist`;
|
|
485
|
+
activeMainTools.add(mainToolId);
|
|
486
|
+
if (!await pushMessage({
|
|
487
|
+
id: mainToolId,
|
|
488
|
+
role: 'tool',
|
|
489
|
+
text: '',
|
|
490
|
+
createdAt: Date.now(),
|
|
491
|
+
toolCall: {
|
|
492
|
+
id: `${mainToolId}-call`,
|
|
493
|
+
name: 'todowrite',
|
|
494
|
+
status: 'running',
|
|
495
|
+
input: {
|
|
496
|
+
todos: [
|
|
497
|
+
{ content: 'Reconcile initial contract findings', status: 'completed' },
|
|
498
|
+
{ content: 'Run nine parallel integration reviews', status: 'in_progress' },
|
|
499
|
+
{ content: 'Summarize release readiness', status: 'pending' },
|
|
500
|
+
],
|
|
501
|
+
},
|
|
502
|
+
startedAt: Date.now(),
|
|
503
|
+
},
|
|
504
|
+
}))
|
|
505
|
+
return;
|
|
506
|
+
if (!await wait(1_100))
|
|
507
|
+
return;
|
|
508
|
+
chat.applyDelta({
|
|
509
|
+
type: 'tool-update',
|
|
510
|
+
messageId: mainToolId,
|
|
511
|
+
tool: { id: `${mainToolId}-call`, status: 'completed', finishedAt: Date.now() },
|
|
512
|
+
});
|
|
513
|
+
activeMainTools.delete(mainToolId);
|
|
514
|
+
if (!await streamMainMessage('The core path is sound. I’m launching nine focused subagents across authorization, storage, RPC, responsive UI, reconnects, permissions, docs, bundling, and release readiness.'))
|
|
515
|
+
return;
|
|
516
|
+
if (!await wait(600))
|
|
517
|
+
return;
|
|
518
|
+
if (!await runWave(2, 'Integration wave', secondSubagentWave))
|
|
519
|
+
return;
|
|
520
|
+
chat.status = { type: 'busy', message: 'Main thread is assembling the final result…' };
|
|
521
|
+
if (!await wait(600))
|
|
522
|
+
return;
|
|
523
|
+
if (!await streamMainMessage([
|
|
524
|
+
'All **nine integration reviews** have completed at their own pace.',
|
|
525
|
+
'',
|
|
526
|
+
'- Authorization and permission boundaries remain session-scoped',
|
|
527
|
+
'- Storage paging and reconnect recovery preserve bounded projections',
|
|
528
|
+
'- Desktop and mobile layouts retain stable card ownership',
|
|
529
|
+
'- Documentation, bundle, and release checks are ready',
|
|
530
|
+
'',
|
|
531
|
+
'The staged subagent run is complete.',
|
|
532
|
+
].join('\n')))
|
|
533
|
+
return;
|
|
534
|
+
chat.status = { type: 'idle' };
|
|
535
|
+
if (stopStream === stop)
|
|
536
|
+
stopStream = undefined;
|
|
537
|
+
};
|
|
538
|
+
void run().catch((error) => {
|
|
539
|
+
console.error('Harness subagent demo simulation failed.', error);
|
|
540
|
+
stop();
|
|
541
|
+
});
|
|
542
|
+
};
|
|
79
543
|
/**
|
|
80
544
|
* Streams a realistic turn through planning, inspection, a failing test,
|
|
81
545
|
* the file edit, verification, and the final assistant summary.
|
|
@@ -441,19 +905,30 @@ export const demoFunc = () => html `
|
|
|
441
905
|
.chatDemo {
|
|
442
906
|
display: grid;
|
|
443
907
|
grid-template-rows: auto minmax(0, 1fr);
|
|
444
|
-
|
|
445
|
-
height:
|
|
446
|
-
|
|
447
|
-
|
|
908
|
+
min-height: 0;
|
|
909
|
+
height: 100%;
|
|
910
|
+
width: 100%;
|
|
911
|
+
box-sizing: border-box;
|
|
912
|
+
overflow: hidden;
|
|
913
|
+
border: 1px solid var(--dees-color-border-subtle, rgb(128 128 128 / 28%));
|
|
914
|
+
border-radius: var(--dees-radius-xl, 14px);
|
|
915
|
+
background: var(--dees-color-bg-primary, inherit);
|
|
448
916
|
}
|
|
449
917
|
.chatDemo .controls {
|
|
918
|
+
position: relative;
|
|
919
|
+
z-index: 1;
|
|
450
920
|
display: flex;
|
|
921
|
+
align-items: center;
|
|
451
922
|
gap: 8px;
|
|
452
923
|
flex-wrap: wrap;
|
|
924
|
+
padding: var(--dees-spacing-sm, 8px) var(--dees-spacing-md, 12px);
|
|
925
|
+
border-bottom: 1px solid var(--dees-color-border-subtle, rgb(128 128 128 / 28%));
|
|
926
|
+
background: var(--dees-color-bg-secondary, rgb(128 128 128 / 12%));
|
|
927
|
+
box-shadow: var(--dees-shadow-sm, 0 1px 3px rgb(0 0 0 / 16%));
|
|
453
928
|
}
|
|
454
929
|
.chatDemo dees-harness-chat {
|
|
455
|
-
|
|
456
|
-
|
|
930
|
+
min-width: 0;
|
|
931
|
+
min-height: 0;
|
|
457
932
|
overflow: hidden;
|
|
458
933
|
}
|
|
459
934
|
</style>
|
|
@@ -488,8 +963,9 @@ export const demoFunc = () => html `
|
|
|
488
963
|
console.log('harness-abort');
|
|
489
964
|
}}
|
|
490
965
|
>
|
|
491
|
-
<div class="controls">
|
|
966
|
+
<div class="controls" role="toolbar" aria-label="Demo controls">
|
|
492
967
|
<dees-button type="accent" @clicked=${simulate}>Simulate streaming</dees-button>
|
|
968
|
+
<dees-button type="accent" @clicked=${simulateSubagents}>Simulate subagents</dees-button>
|
|
493
969
|
<dees-button @clicked=${askPermission}>Ask permission</dees-button>
|
|
494
970
|
<dees-button @clicked=${askQuestion}>Ask a question</dees-button>
|
|
495
971
|
<dees-button @clicked=${toggleError}>Toggle error status</dees-button>
|
|
@@ -533,4 +1009,4 @@ export const demoFunc = () => html `
|
|
|
533
1009
|
></dees-harness-chat>
|
|
534
1010
|
</div>
|
|
535
1011
|
`;
|
|
536
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcy1oYXJuZXNzLWNoYXQuZGVtby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLWhhcm5lc3MvZGVlcy1oYXJuZXNzLWNoYXQvZGVlcy1oYXJuZXNzLWNoYXQuZGVtby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFHbkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFakUsTUFBTSxZQUFZLEdBQUcsR0FBc0IsRUFBRTtJQUMzQyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDdkIsT0FBTztRQUNMO1lBQ0UsRUFBRSxFQUFFLFNBQVM7WUFDYixJQUFJLEVBQUUsTUFBTTtZQUNaLElBQUksRUFBRSxFQUFFO1lBQ1IsU0FBUyxFQUFFLEdBQUcsR0FBRyxPQUFPO1lBQ3hCLFFBQVEsRUFBRTtnQkFDUixFQUFFLEVBQUUsUUFBUTtnQkFDWixJQUFJLEVBQUUsYUFBYTtnQkFDbkIsTUFBTSxFQUFFLFdBQVc7Z0JBQ25CLEtBQUssRUFBRSxFQUFFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFO2dCQUNqRSxNQUFNLEVBQUUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRTtnQkFDbEQsU0FBUyxFQUFFLEdBQUcsR0FBRyxPQUFPO2dCQUN4QixVQUFVLEVBQUUsR0FBRyxHQUFHLE9BQU87YUFDMUI7U0FDRjtRQUNEO1lBQ0UsRUFBRSxFQUFFLFNBQVM7WUFDYixJQUFJLEVBQUUsTUFBTTtZQUNaLElBQUksRUFBRSxFQUFFO1lBQ1IsU0FBUyxFQUFFLEdBQUcsR0FBRyxPQUFPO1lBQ3hCLFFBQVEsRUFBRTtnQkFDUixFQUFFLEVBQUUsUUFBUTtnQkFDWixJQUFJLEVBQUUsWUFBWTtnQkFD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
|
|
1012
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcy1oYXJuZXNzLWNoYXQuZGVtby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLWhhcm5lc3MvZGVlcy1oYXJuZXNzLWNoYXQvZGVlcy1oYXJuZXNzLWNoYXQuZGVtby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFHbkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFakUsTUFBTSxZQUFZLEdBQUcsR0FBc0IsRUFBRTtJQUMzQyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDdkIsT0FBTztRQUNMO1lBQ0UsRUFBRSxFQUFFLFNBQVM7WUFDYixJQUFJLEVBQUUsTUFBTTtZQUNaLElBQUksRUFBRSxFQUFFO1lBQ1IsU0FBUyxFQUFFLEdBQUcsR0FBRyxPQUFPO1lBQ3hCLFFBQVEsRUFBRTtnQkFDUixFQUFFLEVBQUUsUUFBUTtnQkFDWixJQUFJLEVBQUUsYUFBYTtnQkFDbkIsTUFBTSxFQUFFLFdBQVc7Z0JBQ25CLEtBQUssRUFBRSxFQUFFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFO2dCQUNqRSxNQUFNLEVBQUUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRTtnQkFDbEQsU0FBUyxFQUFFLEdBQUcsR0FBRyxPQUFPO2dCQUN4QixVQUFVLEVBQUUsR0FBRyxHQUFHLE9BQU87YUFDMUI7U0FDRjtRQUNEO1lBQ0UsRUFBRSxFQUFFLFNBQVM7WUFDYixJQUFJLEVBQUUsTUFBTTtZQUNaLElBQUksRUFBRSxFQUFFO1lBQ1IsU0FBUyxFQUFFLEdBQUcsR0FBRyxPQUFPO1lBQ3hCLFFBQVEsRUFBRTtnQkFDUixFQUFFLEVBQUUsUUFBUTtnQkFDWixJQUFJLEVBQUUsWUFBWTtnQkFD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
|