@design.estate/dees-catalog 4.12.0 → 6.0.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 +2719 -1261
- package/dist_ts_web/00_commitinfo_data.js +2 -2
- package/dist_ts_web/elements/00group-harness/dees-harness-chat/dees-harness-chat.d.ts +23 -4
- package/dist_ts_web/elements/00group-harness/dees-harness-chat/dees-harness-chat.demo.js +290 -78
- package/dist_ts_web/elements/00group-harness/dees-harness-chat/dees-harness-chat.js +419 -42
- package/dist_ts_web/elements/00group-harness/dees-harness-message/dees-harness-message.js +44 -3
- package/dist_ts_web/elements/00group-harness/dees-harness-reasoning/dees-harness-reasoning.js +5 -7
- package/dist_ts_web/elements/00group-harness/dees-harness-session-list/dees-harness-session-list.js +5 -2
- package/dist_ts_web/elements/00group-harness/dees-harness-session-sidebar/dees-harness-session-sidebar.d.ts +54 -0
- package/dist_ts_web/elements/00group-harness/dees-harness-session-sidebar/dees-harness-session-sidebar.demo.d.ts +1 -0
- package/dist_ts_web/elements/00group-harness/dees-harness-session-sidebar/dees-harness-session-sidebar.demo.js +56 -0
- package/dist_ts_web/elements/00group-harness/dees-harness-session-sidebar/dees-harness-session-sidebar.js +870 -0
- package/dist_ts_web/elements/00group-harness/dees-harness-session-sidebar/index.d.ts +1 -0
- package/dist_ts_web/elements/00group-harness/dees-harness-session-sidebar/index.js +2 -0
- package/dist_ts_web/elements/00group-harness/dees-harness-tool-card/dees-harness-tool-card.d.ts +5 -0
- package/dist_ts_web/elements/00group-harness/dees-harness-tool-card/dees-harness-tool-card.js +87 -3
- package/dist_ts_web/elements/00group-harness/harness.markdown.js +3 -1
- package/dist_ts_web/elements/00group-harness/harness.styles.js +48 -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 +41 -0
- package/package.json +1 -1
- package/readme.md +13 -5
- package/ts_web/00_commitinfo_data.ts +1 -1
- package/ts_web/elements/00group-harness/dees-harness-chat/dees-harness-chat.demo.ts +277 -79
- package/ts_web/elements/00group-harness/dees-harness-chat/dees-harness-chat.ts +367 -36
- package/ts_web/elements/00group-harness/dees-harness-message/dees-harness-message.ts +43 -2
- package/ts_web/elements/00group-harness/dees-harness-reasoning/dees-harness-reasoning.ts +4 -6
- package/ts_web/elements/00group-harness/dees-harness-session-list/dees-harness-session-list.ts +4 -1
- package/ts_web/elements/00group-harness/dees-harness-session-sidebar/dees-harness-session-sidebar.demo.ts +67 -0
- package/ts_web/elements/00group-harness/dees-harness-session-sidebar/dees-harness-session-sidebar.ts +802 -0
- package/ts_web/elements/00group-harness/dees-harness-session-sidebar/index.ts +1 -0
- package/ts_web/elements/00group-harness/dees-harness-tool-card/dees-harness-tool-card.ts +79 -1
- package/ts_web/elements/00group-harness/harness.markdown.ts +2 -0
- package/ts_web/elements/00group-harness/harness.styles.ts +47 -0
- package/ts_web/elements/00group-harness/index.ts +1 -0
- package/ts_web/elements/00group-harness/interfaces.ts +48 -0
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export const commitinfo = {
|
|
5
5
|
name: '@design.estate/dees-catalog',
|
|
6
|
-
version: '
|
|
6
|
+
version: '6.0.0',
|
|
7
7
|
description: 'A comprehensive library that provides dynamic web components for building sophisticated and modern web applications using JavaScript and TypeScript.'
|
|
8
8
|
};
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHNfd2ViLzAwX2NvbW1pdGluZm9fZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRztJQUN4QixJQUFJLEVBQUUsNkJBQTZCO0lBQ25DLE9BQU8sRUFBRSxPQUFPO0lBQ2hCLFdBQVcsRUFBRSxzSkFBc0o7Q0FDcEssQ0FBQSJ9
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { DeesElement, type TemplateResult } from '@design.estate/dees-element';
|
|
2
|
-
import type { IHarnessAttachment, IHarnessMessage, IHarnessPermissionRequest, IHarnessQuestionRequest, IHarnessStatus, IHarnessTodoItem, IHarnessUsage, THarnessStreamDelta } from '../interfaces.js';
|
|
2
|
+
import type { IHarnessAttachment, IHarnessMessage, IHarnessPermissionRequest, IHarnessQuestionRequest, IHarnessIntelligenceExchange, IHarnessScratchpad, IHarnessSessionMetrics, IHarnessStatus, IHarnessTodoItem, IHarnessUsage, THarnessStreamDelta } from '../interfaces.js';
|
|
3
3
|
import { DeesHarnessToolRegistry } from '../toolregistry.js';
|
|
4
4
|
import '../dees-harness-todos/dees-harness-todos.js';
|
|
5
|
+
import '../dees-harness-session-sidebar/dees-harness-session-sidebar.js';
|
|
5
6
|
import '../dees-harness-usage/dees-harness-usage.js';
|
|
6
7
|
import '../../00group-button/dees-button/dees-button.js';
|
|
7
8
|
import '../../00group-utility/dees-icon/dees-icon.js';
|
|
@@ -15,8 +16,7 @@ declare global {
|
|
|
15
16
|
* pinned permission queue, status line, and composer. Owns no business
|
|
16
17
|
* logic — consumers feed `.messages`/`.permissions`/`.status` (and stream
|
|
17
18
|
* through `applyDelta()`), and listen for the bubbling harness-* events
|
|
18
|
-
* from the children
|
|
19
|
-
* from the toolbar.
|
|
19
|
+
* from the children.
|
|
20
20
|
*/
|
|
21
21
|
export declare class DeesHarnessChat extends DeesElement {
|
|
22
22
|
static demo: () => TemplateResult<1>;
|
|
@@ -34,6 +34,19 @@ export declare class DeesHarnessChat extends DeesElement {
|
|
|
34
34
|
*/
|
|
35
35
|
accessor todos: IHarnessTodoItem[];
|
|
36
36
|
accessor showTodosPanel: boolean;
|
|
37
|
+
accessor showSessionSidebar: boolean;
|
|
38
|
+
accessor sessionMetrics: IHarnessSessionMetrics;
|
|
39
|
+
accessor scratchpad: IHarnessScratchpad | undefined;
|
|
40
|
+
accessor scratchpadBusy: boolean;
|
|
41
|
+
accessor scratchpadError: string;
|
|
42
|
+
accessor sessionIntelligenceEnabled: boolean;
|
|
43
|
+
accessor intelligenceExchanges: IHarnessIntelligenceExchange[];
|
|
44
|
+
accessor intelligenceBusy: boolean;
|
|
45
|
+
accessor intelligenceError: string;
|
|
46
|
+
private accessor sessionSidebarOpen;
|
|
47
|
+
private accessor desktopSessionSidebarVisible;
|
|
48
|
+
private accessor narrowSessionLayout;
|
|
49
|
+
private sessionLayoutResizeObserver;
|
|
37
50
|
accessor heading: string;
|
|
38
51
|
accessor subheading: string;
|
|
39
52
|
accessor showToolbar: boolean;
|
|
@@ -59,10 +72,16 @@ export declare class DeesHarnessChat extends DeesElement {
|
|
|
59
72
|
focusComposer(): Promise<void>;
|
|
60
73
|
clearComposer(): void;
|
|
61
74
|
scrollToBottom(force?: boolean): void;
|
|
75
|
+
connectedCallback(): Promise<void>;
|
|
76
|
+
disconnectedCallback(): Promise<void>;
|
|
77
|
+
private syncSessionLayout;
|
|
62
78
|
get effectiveTodos(): IHarnessTodoItem[];
|
|
79
|
+
get hasSessionSidebar(): boolean;
|
|
63
80
|
private get listElement();
|
|
64
81
|
private get composerElement();
|
|
82
|
+
private readonly toggleSessionSidebar;
|
|
83
|
+
private openSessionSidebar;
|
|
84
|
+
private closeSessionSidebar;
|
|
65
85
|
render(): TemplateResult;
|
|
66
86
|
private renderToolbar;
|
|
67
|
-
private emit;
|
|
68
87
|
}
|
|
@@ -77,8 +77,8 @@ const pendingPermission = {
|
|
|
77
77
|
let stopStream;
|
|
78
78
|
const chatOf = (event) => event.target.closest('.chatDemo')?.querySelector('dees-harness-chat') ?? null;
|
|
79
79
|
/**
|
|
80
|
-
* Streams a realistic turn
|
|
81
|
-
*
|
|
80
|
+
* Streams a realistic turn through planning, inspection, a failing test,
|
|
81
|
+
* the file edit, verification, and the final assistant summary.
|
|
82
82
|
*/
|
|
83
83
|
const simulate = (event) => {
|
|
84
84
|
const chat = chatOf(event);
|
|
@@ -86,43 +86,154 @@ const simulate = (event) => {
|
|
|
86
86
|
return;
|
|
87
87
|
stopStream?.();
|
|
88
88
|
const runId = Date.now();
|
|
89
|
-
|
|
90
|
-
const
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
89
|
+
let stopped = false;
|
|
90
|
+
const pendingDelays = new Map();
|
|
91
|
+
const activeMessages = new Set();
|
|
92
|
+
const activeTools = new Set();
|
|
93
|
+
const activeReasoning = new Map();
|
|
94
|
+
const wait = async (milliseconds) => new Promise((resolve) => {
|
|
95
|
+
if (stopped) {
|
|
96
|
+
resolve(false);
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
const timeout = setTimeout(() => {
|
|
100
|
+
pendingDelays.delete(timeout);
|
|
101
|
+
resolve(!stopped);
|
|
102
|
+
}, milliseconds);
|
|
103
|
+
pendingDelays.set(timeout, resolve);
|
|
104
|
+
});
|
|
105
|
+
const waitForMessageList = async () => {
|
|
106
|
+
await chat.updateComplete;
|
|
107
|
+
const list = chat.shadowRoot?.querySelector('dees-harness-message-list');
|
|
108
|
+
if (list)
|
|
109
|
+
await list.updateComplete;
|
|
98
110
|
};
|
|
99
|
-
const pushMessage = (message) => {
|
|
111
|
+
const pushMessage = async (message) => {
|
|
100
112
|
chat.messages = [...chat.messages, message];
|
|
113
|
+
if (message.streaming)
|
|
114
|
+
activeMessages.add(message.id);
|
|
115
|
+
if (message.toolCall?.status === 'pending' || message.toolCall?.status === 'running') {
|
|
116
|
+
activeTools.add(message.id);
|
|
117
|
+
}
|
|
118
|
+
await waitForMessageList();
|
|
119
|
+
if (!stopped)
|
|
120
|
+
return true;
|
|
121
|
+
if (message.streaming) {
|
|
122
|
+
message.streaming = false;
|
|
123
|
+
message.error ??= 'Simulation stopped.';
|
|
124
|
+
}
|
|
125
|
+
if (message.toolCall?.status === 'pending' || message.toolCall?.status === 'running') {
|
|
126
|
+
message.toolCall.status = 'error';
|
|
127
|
+
message.toolCall.errorText = 'Simulation stopped.';
|
|
128
|
+
message.toolCall.finishedAt = Date.now();
|
|
129
|
+
}
|
|
130
|
+
chat.messages = [...chat.messages];
|
|
131
|
+
return false;
|
|
101
132
|
};
|
|
102
133
|
const updateTool = (messageId, tool) => {
|
|
103
|
-
chat.applyDelta({ type: 'tool-update', messageId, tool
|
|
134
|
+
chat.applyDelta({ type: 'tool-update', messageId, tool });
|
|
135
|
+
if (tool.status === 'completed' || tool.status === 'error')
|
|
136
|
+
activeTools.delete(messageId);
|
|
104
137
|
};
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
138
|
+
const startReasoning = (messageId, partId) => {
|
|
139
|
+
chat.applyDelta({ type: 'reasoning-start', messageId, partId, startedAt: Date.now() });
|
|
140
|
+
const parts = activeReasoning.get(messageId) ?? new Set();
|
|
141
|
+
parts.add(partId);
|
|
142
|
+
activeReasoning.set(messageId, parts);
|
|
109
143
|
};
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
chat.applyDelta({
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
144
|
+
const endReasoning = (messageId, partId) => {
|
|
145
|
+
chat.applyDelta({ type: 'reasoning-end', messageId, partId, endedAt: Date.now() });
|
|
146
|
+
const parts = activeReasoning.get(messageId);
|
|
147
|
+
parts?.delete(partId);
|
|
148
|
+
if (!parts?.size)
|
|
149
|
+
activeReasoning.delete(messageId);
|
|
150
|
+
};
|
|
151
|
+
const finishMessage = (messageId, options = {}) => {
|
|
152
|
+
chat.applyDelta({
|
|
153
|
+
type: 'message-end',
|
|
154
|
+
messageId,
|
|
155
|
+
usage: options.usage,
|
|
156
|
+
error: options.error,
|
|
157
|
+
});
|
|
158
|
+
activeMessages.delete(messageId);
|
|
159
|
+
};
|
|
160
|
+
const streamWords = async (messageId, partId, text) => {
|
|
161
|
+
for (const word of text.split(' ')) {
|
|
162
|
+
if (!await wait(38))
|
|
163
|
+
return false;
|
|
164
|
+
chat.applyDelta({ type: 'reasoning', messageId, partId, delta: `${word} ` });
|
|
165
|
+
}
|
|
166
|
+
return true;
|
|
167
|
+
};
|
|
168
|
+
const streamText = async (messageId, text) => {
|
|
169
|
+
for (let offset = 0; offset < text.length; offset += 8) {
|
|
170
|
+
if (!await wait(32))
|
|
171
|
+
return false;
|
|
172
|
+
chat.applyDelta({ type: 'text', messageId, delta: text.slice(offset, offset + 8) });
|
|
173
|
+
}
|
|
174
|
+
return true;
|
|
175
|
+
};
|
|
176
|
+
const stop = () => {
|
|
177
|
+
if (stopped)
|
|
178
|
+
return;
|
|
179
|
+
stopped = true;
|
|
180
|
+
for (const [timeout, resolve] of pendingDelays) {
|
|
181
|
+
clearTimeout(timeout);
|
|
182
|
+
resolve(false);
|
|
183
|
+
}
|
|
184
|
+
pendingDelays.clear();
|
|
185
|
+
for (const [messageId, parts] of [...activeReasoning]) {
|
|
186
|
+
for (const partId of [...parts])
|
|
187
|
+
endReasoning(messageId, partId);
|
|
188
|
+
}
|
|
189
|
+
for (const messageId of [...activeMessages]) {
|
|
190
|
+
finishMessage(messageId, { error: 'Simulation stopped.' });
|
|
191
|
+
}
|
|
192
|
+
for (const messageId of [...activeTools]) {
|
|
193
|
+
const message = chat.messages.find((candidate) => candidate.id === messageId);
|
|
194
|
+
if (!message?.toolCall)
|
|
195
|
+
continue;
|
|
196
|
+
updateTool(messageId, {
|
|
197
|
+
id: message.toolCall.id,
|
|
198
|
+
status: 'error',
|
|
199
|
+
errorText: 'Simulation stopped.',
|
|
200
|
+
finishedAt: Date.now(),
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
chat.status = { type: 'idle' };
|
|
204
|
+
if (stopStream === stop)
|
|
205
|
+
stopStream = undefined;
|
|
206
|
+
};
|
|
207
|
+
stopStream = stop;
|
|
208
|
+
const run = async () => {
|
|
209
|
+
chat.status = { type: 'busy', message: 'Planning…' };
|
|
210
|
+
const reasoningId = `sim-${runId}-reasoning`;
|
|
211
|
+
if (!await pushMessage({
|
|
212
|
+
id: reasoningId,
|
|
213
|
+
role: 'assistant',
|
|
214
|
+
text: '',
|
|
215
|
+
createdAt: Date.now(),
|
|
216
|
+
streaming: true,
|
|
217
|
+
model: 'gpt-5.5',
|
|
218
|
+
effort: 'high',
|
|
219
|
+
}))
|
|
220
|
+
return;
|
|
221
|
+
startReasoning(reasoningId, 'analysis');
|
|
222
|
+
if (!await streamWords(reasoningId, 'analysis', 'The locale list participates in the cache key, so a rollout invalidates every route even when the manifest is unchanged.'))
|
|
223
|
+
return;
|
|
224
|
+
endReasoning(reasoningId, 'analysis');
|
|
225
|
+
if (!await wait(160))
|
|
226
|
+
return;
|
|
227
|
+
startReasoning(reasoningId, 'plan');
|
|
228
|
+
if (!await streamWords(reasoningId, 'plan', 'I will inspect the job, pin the key to the route manifest, run the focused regression test, and update the task list.'))
|
|
229
|
+
return;
|
|
230
|
+
endReasoning(reasoningId, 'plan');
|
|
231
|
+
finishMessage(reasoningId);
|
|
232
|
+
if (!await wait(260))
|
|
233
|
+
return;
|
|
124
234
|
chat.status = { type: 'busy', message: 'Updating task list…' };
|
|
125
|
-
|
|
235
|
+
const todoId = `sim-${runId}-todos`;
|
|
236
|
+
if (!await pushMessage({
|
|
126
237
|
id: todoId, role: 'tool', text: '', createdAt: Date.now(),
|
|
127
238
|
toolCall: {
|
|
128
239
|
id: `${todoId}-call`, name: 'todowrite', status: 'running',
|
|
@@ -134,32 +245,65 @@ const simulate = (event) => {
|
|
|
134
245
|
] },
|
|
135
246
|
startedAt: Date.now(),
|
|
136
247
|
},
|
|
248
|
+
}))
|
|
249
|
+
return;
|
|
250
|
+
if (!await wait(520))
|
|
251
|
+
return;
|
|
252
|
+
updateTool(todoId, { id: `${todoId}-call`, status: 'completed', finishedAt: Date.now() });
|
|
253
|
+
if (!await wait(240))
|
|
254
|
+
return;
|
|
255
|
+
chat.status = { type: 'busy', message: 'Inspecting the sitemap job…' };
|
|
256
|
+
const readId = `sim-${runId}-read`;
|
|
257
|
+
if (!await pushMessage({
|
|
258
|
+
id: readId, role: 'tool', text: '', createdAt: Date.now(),
|
|
259
|
+
toolCall: {
|
|
260
|
+
id: `${readId}-call`, name: 'read_file', status: 'running',
|
|
261
|
+
input: { path: '/srv/app/src/jobs/sitemap.job.ts', startLine: 1, endLine: 80 },
|
|
262
|
+
startedAt: Date.now(),
|
|
263
|
+
},
|
|
264
|
+
}))
|
|
265
|
+
return;
|
|
266
|
+
if (!await wait(620))
|
|
267
|
+
return;
|
|
268
|
+
updateTool(readId, {
|
|
269
|
+
id: `${readId}-call`,
|
|
270
|
+
status: 'completed',
|
|
271
|
+
output: 'const cacheKey = hash(locales);\nconst ttl = 3600;\nawait cache.set(cacheKey, sitemap, ttl);',
|
|
272
|
+
finishedAt: Date.now(),
|
|
137
273
|
});
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
chat.status = { type: 'busy', message: 'Running tests…' };
|
|
144
|
-
pushMessage({
|
|
274
|
+
if (!await wait(240))
|
|
275
|
+
return;
|
|
276
|
+
chat.status = { type: 'busy', message: 'Running the regression test…' };
|
|
277
|
+
const testId = `sim-${runId}-test`;
|
|
278
|
+
if (!await pushMessage({
|
|
145
279
|
id: testId, role: 'tool', text: '', createdAt: Date.now(),
|
|
146
280
|
toolCall: {
|
|
147
281
|
id: `${testId}-call`, name: 'run_command', status: 'running',
|
|
148
282
|
input: { command: 'pnpm test --filter sitemap', cwd: '/srv/app' },
|
|
149
283
|
startedAt: Date.now(),
|
|
150
284
|
},
|
|
285
|
+
}))
|
|
286
|
+
return;
|
|
287
|
+
if (!await wait(520))
|
|
288
|
+
return;
|
|
289
|
+
updateTool(testId, {
|
|
290
|
+
id: `${testId}-call`,
|
|
291
|
+
status: 'running',
|
|
292
|
+
output: { stdout: '13 tests passed\n1 test still running…' },
|
|
151
293
|
});
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
294
|
+
if (!await wait(620))
|
|
295
|
+
return;
|
|
296
|
+
updateTool(testId, {
|
|
297
|
+
id: `${testId}-call`, status: 'error', isError: true,
|
|
298
|
+
output: { exitCode: 1, stdout: '13 tests passed', stderr: 'cache key changed after locale reorder' },
|
|
299
|
+
errorText: 'Regression confirmed before applying the patch.',
|
|
300
|
+
finishedAt: Date.now(),
|
|
301
|
+
});
|
|
302
|
+
if (!await wait(260))
|
|
303
|
+
return;
|
|
161
304
|
chat.status = { type: 'busy', message: 'Applying the patch…' };
|
|
162
|
-
|
|
305
|
+
const editId = `sim-${runId}-edit`;
|
|
306
|
+
if (!await pushMessage({
|
|
163
307
|
id: editId, role: 'tool', text: '', createdAt: Date.now(),
|
|
164
308
|
toolCall: {
|
|
165
309
|
id: `${editId}-call`, name: 'write_file', status: 'running',
|
|
@@ -170,13 +314,35 @@ const simulate = (event) => {
|
|
|
170
314
|
},
|
|
171
315
|
startedAt: Date.now(),
|
|
172
316
|
},
|
|
317
|
+
}))
|
|
318
|
+
return;
|
|
319
|
+
if (!await wait(720))
|
|
320
|
+
return;
|
|
321
|
+
updateTool(editId, { id: `${editId}-call`, status: 'completed', finishedAt: Date.now() });
|
|
322
|
+
if (!await wait(240))
|
|
323
|
+
return;
|
|
324
|
+
chat.status = { type: 'busy', message: 'Verifying the patch…' };
|
|
325
|
+
const verifyId = `sim-${runId}-verify`;
|
|
326
|
+
if (!await pushMessage({
|
|
327
|
+
id: verifyId, role: 'tool', text: '', createdAt: Date.now(),
|
|
328
|
+
toolCall: {
|
|
329
|
+
id: `${verifyId}-call`, name: 'run_command', status: 'running',
|
|
330
|
+
input: { command: 'pnpm test --filter sitemap', cwd: '/srv/app' },
|
|
331
|
+
startedAt: Date.now(),
|
|
332
|
+
},
|
|
333
|
+
}))
|
|
334
|
+
return;
|
|
335
|
+
if (!await wait(760))
|
|
336
|
+
return;
|
|
337
|
+
updateTool(verifyId, {
|
|
338
|
+
id: `${verifyId}-call`, status: 'completed',
|
|
339
|
+
output: { exitCode: 0, stdout: '14 tests passed\n0 failed' },
|
|
340
|
+
finishedAt: Date.now(),
|
|
173
341
|
});
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
at(reasoningDoneAt + 5000, () => {
|
|
179
|
-
pushMessage({
|
|
342
|
+
if (!await wait(220))
|
|
343
|
+
return;
|
|
344
|
+
const todoDoneId = `sim-${runId}-todos-2`;
|
|
345
|
+
if (!await pushMessage({
|
|
180
346
|
id: todoDoneId, role: 'tool', text: '', createdAt: Date.now(),
|
|
181
347
|
toolCall: {
|
|
182
348
|
id: `${todoDoneId}-call`, name: 'todowrite', status: 'completed',
|
|
@@ -184,30 +350,50 @@ const simulate = (event) => {
|
|
|
184
350
|
{ content: 'Pin sitemap cache key to route manifest hash', status: 'completed' },
|
|
185
351
|
{ content: 'Run the sitemap test suite', status: 'completed' },
|
|
186
352
|
{ content: 'Apply the cache-key patch', status: 'completed' },
|
|
187
|
-
{ content: 'Verify staging timings', status: '
|
|
353
|
+
{ content: 'Verify staging timings', status: 'completed' },
|
|
188
354
|
] },
|
|
189
355
|
startedAt: Date.now(), finishedAt: Date.now(),
|
|
190
356
|
},
|
|
191
|
-
})
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
357
|
+
}))
|
|
358
|
+
return;
|
|
359
|
+
if (!await wait(260))
|
|
360
|
+
return;
|
|
195
361
|
chat.status = { type: 'busy', message: 'Responding…' };
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
362
|
+
const summaryId = `sim-${runId}-summary`;
|
|
363
|
+
if (!await pushMessage({
|
|
364
|
+
id: summaryId,
|
|
365
|
+
role: 'assistant',
|
|
366
|
+
text: '',
|
|
367
|
+
createdAt: Date.now(),
|
|
368
|
+
streaming: true,
|
|
369
|
+
model: 'gpt-5.5',
|
|
370
|
+
effort: 'high',
|
|
371
|
+
}))
|
|
372
|
+
return;
|
|
373
|
+
const summary = [
|
|
374
|
+
'Patched `sitemap.job.ts` so the cache is keyed by the **route manifest hash** instead of locale ordering.',
|
|
375
|
+
'',
|
|
376
|
+
'### Verification',
|
|
377
|
+
'',
|
|
378
|
+
'- Confirmed the regression before the edit',
|
|
379
|
+
'- Applied the one-line cache-key change',
|
|
380
|
+
'- Re-ran the focused suite: **14/14 tests passed**',
|
|
381
|
+
'- Completed the staging timing check',
|
|
382
|
+
'',
|
|
383
|
+
'Locale-only rollouts now reuse the existing sitemap cache.',
|
|
384
|
+
].join('\n');
|
|
385
|
+
if (!await streamText(summaryId, summary))
|
|
386
|
+
return;
|
|
387
|
+
finishMessage(summaryId, {
|
|
388
|
+
usage: { inputTokens: 2480, outputTokens: 340, totalTokens: 2820 },
|
|
389
|
+
});
|
|
390
|
+
chat.status = { type: 'idle' };
|
|
391
|
+
if (stopStream === stop)
|
|
392
|
+
stopStream = undefined;
|
|
393
|
+
};
|
|
394
|
+
void run().catch((error) => {
|
|
395
|
+
console.error('Harness chat demo simulation failed.', error);
|
|
396
|
+
stop();
|
|
211
397
|
});
|
|
212
398
|
};
|
|
213
399
|
const askQuestion = (event) => {
|
|
@@ -293,8 +479,10 @@ export const demoFunc = () => html `
|
|
|
293
479
|
: request);
|
|
294
480
|
}
|
|
295
481
|
}}
|
|
296
|
-
@harness-
|
|
297
|
-
@harness-
|
|
482
|
+
@harness-scratchpad-save=${(event) => console.log('harness-scratchpad-save', event.detail)}
|
|
483
|
+
@harness-session-intelligence-ask=${(event) => {
|
|
484
|
+
console.log('harness-session-intelligence-ask', event.detail);
|
|
485
|
+
}}
|
|
298
486
|
@harness-abort=${() => {
|
|
299
487
|
stopStream?.();
|
|
300
488
|
console.log('harness-abort');
|
|
@@ -317,8 +505,32 @@ export const demoFunc = () => html `
|
|
|
317
505
|
.modelOptions=${['gpt-5.5', 'gpt-5', 'o4-mini']}
|
|
318
506
|
.effortOptions=${['xhigh', 'high', 'medium', 'low']}
|
|
319
507
|
.usage=${{ inputTokens: 18_400, outputTokens: 3_100, totalTokens: 21_500 }}
|
|
508
|
+
.sessionMetrics=${{
|
|
509
|
+
lifetimeUsedTokens: 184_320,
|
|
510
|
+
compactionCount: 2,
|
|
511
|
+
tokensBeforeLatestCompaction: 112_840,
|
|
512
|
+
currentContextTokens: 47_200,
|
|
513
|
+
maxContextTokens: 128_000,
|
|
514
|
+
}}
|
|
515
|
+
.scratchpad=${{
|
|
516
|
+
id: 'deploy-assistant-demo',
|
|
517
|
+
text: '- Cache keys use the route manifest hash.\n- Release after staging verification.',
|
|
518
|
+
revision: 4,
|
|
519
|
+
updatedAt: Date.now() - 45_000,
|
|
520
|
+
updatedBy: 'intelligence',
|
|
521
|
+
}}
|
|
522
|
+
.sessionIntelligenceEnabled=${true}
|
|
523
|
+
.intelligenceExchanges=${[{
|
|
524
|
+
id: 'intelligence-demo',
|
|
525
|
+
question: 'What remains before release?',
|
|
526
|
+
answer: 'Staging verification is the only remaining task.',
|
|
527
|
+
status: 'completed',
|
|
528
|
+
model: 'gpt-5.6-luna',
|
|
529
|
+
createdAt: Date.now() - 30_000,
|
|
530
|
+
completedAt: Date.now() - 28_000,
|
|
531
|
+
}]}
|
|
320
532
|
.messages=${[...harnessDemoConversation(), ...toolShowcase()]}
|
|
321
533
|
></dees-harness-chat>
|
|
322
534
|
</div>
|
|
323
535
|
`;
|
|
324
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcy1oYXJuZXNzLWNoYXQuZGVtby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLWhhcm5lc3MvZGVlcy1oYXJuZXNzLWNoYXQvZGVlcy1oYXJuZXNzLWNoYXQuZGVtby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFHbkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFakUsTUFBTSxZQUFZLEdBQUcsR0FBc0IsRUFBRTtJQUMzQyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDdkIsT0FBTztRQUNMO1lBQ0UsRUFBRSxFQUFFLFNBQVM7WUFDYixJQUFJLEVBQUUsTUFBTTtZQUNaLElBQUksRUFBRSxFQUFFO1lBQ1IsU0FBUyxFQUFFLEdBQUcsR0FBRyxPQUFPO1lBQ3hCLFFBQVEsRUFBRTtnQkFDUixFQUFFLEVBQUUsUUFBUTtnQkFDWixJQUFJLEVBQUUsYUFBYTtnQkFDbkIsTUFBTSxFQUFFLFdBQVc7Z0JBQ25CLEtBQUssRUFBRSxFQUFFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFO2dCQUNqRSxNQUFNLEVBQUUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRTtnQkFDbEQsU0FBUyxFQUFFLEdBQUcsR0FBRyxPQUFPO2dCQUN4QixVQUFVLEVBQUUsR0FBRyxHQUFHLE9BQU87YUFDMUI7U0FDRjtRQUNEO1lBQ0UsRUFBRSxFQUFFLFNBQVM7WUFDYixJQUFJLEVBQUUsTUFBTTtZQUNaLElBQUksRUFBRSxFQUFFO1lBQ1IsU0FBUyxFQUFFLEdBQUcsR0FBRyxPQUFPO1lBQ3hCLFFBQVEsRUFBRTtnQkFDUixFQUFFLEVBQUUsUUFBUTtnQkFDWixJQUFJLEVBQUUsWUFBWTtnQkFD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
|
|
536
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcy1oYXJuZXNzLWNoYXQuZGVtby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RzX3dlYi9lbGVtZW50cy8wMGdyb3VwLWhhcm5lc3MvZGVlcy1oYXJuZXNzLWNoYXQvZGVlcy1oYXJuZXNzLWNoYXQuZGVtby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFHbkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFakUsTUFBTSxZQUFZLEdBQUcsR0FBc0IsRUFBRTtJQUMzQyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDdkIsT0FBTztRQUNMO1lBQ0UsRUFBRSxFQUFFLFNBQVM7WUFDYixJQUFJLEVBQUUsTUFBTTtZQUNaLElBQUksRUFBRSxFQUFFO1lBQ1IsU0FBUyxFQUFFLEdBQUcsR0FBRyxPQUFPO1lBQ3hCLFFBQVEsRUFBRTtnQkFDUixFQUFFLEVBQUUsUUFBUTtnQkFDWixJQUFJLEVBQUUsYUFBYTtnQkFDbkIsTUFBTSxFQUFFLFdBQVc7Z0JBQ25CLEtBQUssRUFBRSxFQUFFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFO2dCQUNqRSxNQUFNLEVBQUUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRTtnQkFDbEQsU0FBUyxFQUFFLEdBQUcsR0FBRyxPQUFPO2dCQUN4QixVQUFVLEVBQUUsR0FBRyxHQUFHLE9BQU87YUFDMUI7U0FDRjtRQUNEO1lBQ0UsRUFBRSxFQUFFLFNBQVM7WUFDYixJQUFJLEVBQUUsTUFBTTtZQUNaLElBQUksRUFBRSxFQUFFO1lBQ1IsU0FBUyxFQUFFLEdBQUcsR0FBRyxPQUFPO1lBQ3hCLFFBQVEsRUFBRTtnQkFDUixFQUFFLEVBQUUsUUFBUTtnQkFDWixJQUFJLEVBQUUsWUFBWTtnQkFD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
|