ag-ui-validate 0.2.0 → 0.4.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/README.md +82 -23
- package/dist/{catalog-BglXBNbL.js → catalog-3e6INLCp.js} +122 -4
- package/dist/catalog-3e6INLCp.js.map +1 -0
- package/dist/{catalog-Ci9dqc1a.cjs → catalog-DH5gDIbo.cjs} +122 -4
- package/dist/catalog-DH5gDIbo.cjs.map +1 -0
- package/dist/cli.js +641 -63
- package/dist/cli.js.map +1 -1
- package/dist/{index-Hmqj3r_r.d.cts → index-Cydfs-rB.d.ts} +4 -4
- package/dist/{index-oNG1kOp9.d.ts → index-DsVmjcLO.d.cts} +4 -4
- package/dist/index.cjs +2 -2
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -2
- package/dist/report.cjs +11 -2
- package/dist/report.cjs.map +1 -1
- package/dist/report.d.cts +21 -12
- package/dist/report.d.ts +21 -12
- package/dist/report.js +11 -2
- package/dist/report.js.map +1 -1
- package/dist/{src-rGZ2G4qA.js → src-CezZ73Mm.js} +494 -59
- package/dist/src-CezZ73Mm.js.map +1 -0
- package/dist/{src-HmI-kxef.cjs → src-CyugLoks.cjs} +494 -59
- package/dist/src-CyugLoks.cjs.map +1 -0
- package/dist/transport.cjs +1 -1
- package/dist/transport.cjs.map +1 -1
- package/dist/transport.d.cts +1 -1
- package/dist/transport.d.ts +1 -1
- package/dist/transport.js +1 -1
- package/dist/transport.js.map +1 -1
- package/dist/{types-oH_QTnn2.d.ts → types-CUIgyj2N.d.cts} +3 -1
- package/dist/{types-oH_QTnn2.d.cts → types-CUIgyj2N.d.ts} +3 -1
- package/dist/vitest.js +616 -61
- package/dist/vitest.js.map +1 -1
- package/{src → js/src}/cli-args.ts +16 -0
- package/{src → js/src}/cli.ts +1 -1
- package/{src → js/src}/index.ts +5 -0
- package/{src → js/src}/protocol/event-table.ts +93 -2
- package/js/src/report/json.ts +31 -0
- package/{src → js/src}/report/sarif.ts +3 -6
- package/{src → js/src}/rules/catalog.ts +5 -1
- package/{src → js/src}/rules/checks/context.ts +48 -3
- package/{src → js/src}/rules/checks/lifecycle.ts +5 -2
- package/js/src/rules/checks/subagents.ts +78 -0
- package/{src → js/src}/rules/checks/text.ts +11 -3
- package/{src → js/src}/rules/checks/toolcalls.ts +8 -2
- package/{src → js/src}/transport/index.ts +1 -1
- package/package.json +15 -14
- package/{src/rules → spec}/catalog.json +109 -2
- package/spec/event-categories.json +60 -0
- package/spec/fixtures/README.md +91 -0
- package/spec/fixtures/invalid/AGUI001-first-event-not-run-started/expected.json +10 -0
- package/spec/fixtures/invalid/AGUI001-first-event-not-run-started/stream.jsonl +4 -0
- package/spec/fixtures/invalid/AGUI002-duplicate-run-started/expected.json +11 -0
- package/spec/fixtures/invalid/AGUI002-duplicate-run-started/stream.jsonl +3 -0
- package/spec/fixtures/invalid/AGUI003-run-never-terminated/expected.json +10 -0
- package/spec/fixtures/invalid/AGUI003-run-never-terminated/stream.jsonl +4 -0
- package/spec/fixtures/invalid/AGUI004-event-after-terminal/expected.json +11 -0
- package/spec/fixtures/invalid/AGUI004-event-after-terminal/stream.jsonl +3 -0
- package/spec/fixtures/invalid/AGUI005-finished-and-error/expected.json +11 -0
- package/spec/fixtures/invalid/AGUI005-finished-and-error/stream.jsonl +3 -0
- package/spec/fixtures/invalid/AGUI006-step-finished-unmatched/expected.json +11 -0
- package/spec/fixtures/invalid/AGUI006-step-finished-unmatched/stream.jsonl +3 -0
- package/spec/fixtures/invalid/AGUI007-step-unterminated/expected.json +10 -0
- package/spec/fixtures/invalid/AGUI007-step-unterminated/stream.jsonl +3 -0
- package/spec/fixtures/invalid/AGUI008-unstable-run-ids/expected.json +12 -0
- package/spec/fixtures/invalid/AGUI008-unstable-run-ids/stream.jsonl +2 -0
- package/spec/fixtures/invalid/AGUI101-content-without-start/expected.json +11 -0
- package/spec/fixtures/invalid/AGUI101-content-without-start/stream.jsonl +3 -0
- package/spec/fixtures/invalid/AGUI102-end-without-start/expected.json +11 -0
- package/spec/fixtures/invalid/AGUI102-end-without-start/stream.jsonl +3 -0
- package/spec/fixtures/invalid/AGUI103-message-unterminated/expected.json +10 -0
- package/spec/fixtures/invalid/AGUI103-message-unterminated/stream.jsonl +4 -0
- package/spec/fixtures/invalid/AGUI104-duplicate-message-id/expected.json +12 -0
- package/spec/fixtures/invalid/AGUI104-duplicate-message-id/stream.jsonl +6 -0
- package/spec/fixtures/invalid/AGUI105-empty-content-delta/expected.json +12 -0
- package/spec/fixtures/invalid/AGUI105-empty-content-delta/stream.jsonl +5 -0
- package/spec/fixtures/invalid/AGUI106-interleaved-same-message-id/expected.json +12 -0
- package/spec/fixtures/invalid/AGUI106-interleaved-same-message-id/stream.jsonl +5 -0
- package/spec/fixtures/invalid/AGUI201-args-without-start/expected.json +11 -0
- package/spec/fixtures/invalid/AGUI201-args-without-start/stream.jsonl +3 -0
- package/spec/fixtures/invalid/AGUI202-end-without-start/expected.json +11 -0
- package/spec/fixtures/invalid/AGUI202-end-without-start/stream.jsonl +3 -0
- package/spec/fixtures/invalid/AGUI203-unterminated-tool-call/expected.json +10 -0
- package/spec/fixtures/invalid/AGUI203-unterminated-tool-call/stream.jsonl +4 -0
- package/spec/fixtures/invalid/AGUI204-args-not-json/expected.json +10 -0
- package/spec/fixtures/invalid/AGUI204-args-not-json/stream.jsonl +6 -0
- package/spec/fixtures/invalid/AGUI205-duplicate-tool-call-id/expected.json +12 -0
- package/spec/fixtures/invalid/AGUI205-duplicate-tool-call-id/stream.jsonl +5 -0
- package/spec/fixtures/invalid/AGUI206-result-before-end/expected.json +12 -0
- package/spec/fixtures/invalid/AGUI206-result-before-end/stream.jsonl +5 -0
- package/spec/fixtures/invalid/AGUI207-result-unknown-id/expected.json +11 -0
- package/spec/fixtures/invalid/AGUI207-result-unknown-id/stream.jsonl +3 -0
- package/spec/fixtures/invalid/AGUI208-unknown-parent-message-id/expected.json +11 -0
- package/spec/fixtures/invalid/AGUI208-unknown-parent-message-id/stream.jsonl +4 -0
- package/spec/fixtures/invalid/AGUI301-delta-before-snapshot/expected.json +10 -0
- package/spec/fixtures/invalid/AGUI301-delta-before-snapshot/stream.jsonl +3 -0
- package/spec/fixtures/invalid/AGUI302-delta-failed-to-apply/expected.json +11 -0
- package/spec/fixtures/invalid/AGUI302-delta-failed-to-apply/stream.jsonl +4 -0
- package/spec/fixtures/invalid/AGUI303-invalid-patch-document/expected.json +11 -0
- package/spec/fixtures/invalid/AGUI303-invalid-patch-document/stream.jsonl +4 -0
- package/spec/fixtures/invalid/AGUI304-midrun-snapshot-discards-deltas/expected.json +10 -0
- package/spec/fixtures/invalid/AGUI304-midrun-snapshot-discards-deltas/stream.jsonl +5 -0
- package/spec/fixtures/invalid/AGUI305-shared-state-never-established/expected.json +9 -0
- package/spec/fixtures/invalid/AGUI305-shared-state-never-established/options.json +5 -0
- package/spec/fixtures/invalid/AGUI305-shared-state-never-established/stream.jsonl +5 -0
- package/spec/fixtures/invalid/AGUI401-reasoning-content-without-start/expected.json +11 -0
- package/spec/fixtures/invalid/AGUI401-reasoning-content-without-start/stream.jsonl +3 -0
- package/spec/fixtures/invalid/AGUI402-reasoning-unterminated/expected.json +10 -0
- package/spec/fixtures/invalid/AGUI402-reasoning-unterminated/stream.jsonl +3 -0
- package/spec/fixtures/invalid/AGUI501-missing-data-prefix/expected.json +9 -0
- package/spec/fixtures/invalid/AGUI501-missing-data-prefix/scenario.json +17 -0
- package/spec/fixtures/invalid/AGUI502-payload-not-json/expected.json +10 -0
- package/spec/fixtures/invalid/AGUI502-payload-not-json/stream.jsonl +3 -0
- package/spec/fixtures/invalid/AGUI503-unknown-event-type/expected.json +10 -0
- package/spec/fixtures/invalid/AGUI503-unknown-event-type/stream.jsonl +3 -0
- package/spec/fixtures/invalid/AGUI504-schema-violation/expected.json +11 -0
- package/spec/fixtures/invalid/AGUI504-schema-violation/stream.jsonl +4 -0
- package/spec/fixtures/invalid/AGUI505-unexpected-content-type/expected.json +9 -0
- package/spec/fixtures/invalid/AGUI505-unexpected-content-type/scenario.json +25 -0
- package/spec/fixtures/invalid/AGUI506-keepalive-gap/expected.json +9 -0
- package/spec/fixtures/invalid/AGUI506-keepalive-gap/scenario.json +25 -0
- package/spec/fixtures/invalid/AGUI507-buffered-response/expected.json +9 -0
- package/spec/fixtures/invalid/AGUI507-buffered-response/scenario.json +9 -0
- package/spec/fixtures/invalid/AGUI508-connection-dropped/expected.json +17 -0
- package/spec/fixtures/invalid/AGUI508-connection-dropped/scenario.json +10 -0
- package/spec/fixtures/invalid/AGUI601-duplicate-subagent-started/expected.json +12 -0
- package/spec/fixtures/invalid/AGUI601-duplicate-subagent-started/stream.jsonl +5 -0
- package/spec/fixtures/invalid/AGUI602-finished-without-start/expected.json +11 -0
- package/spec/fixtures/invalid/AGUI602-finished-without-start/stream.jsonl +3 -0
- package/spec/fixtures/invalid/AGUI603-error-without-start/expected.json +11 -0
- package/spec/fixtures/invalid/AGUI603-error-without-start/stream.jsonl +3 -0
- package/spec/fixtures/invalid/AGUI604-subagent-unterminated/expected.json +10 -0
- package/spec/fixtures/invalid/AGUI604-subagent-unterminated/stream.jsonl +3 -0
- package/spec/fixtures/invalid/AGUI605-unknown-parent-subagent-run-id/expected.json +11 -0
- package/spec/fixtures/invalid/AGUI605-unknown-parent-subagent-run-id/stream.jsonl +4 -0
- package/spec/fixtures/invalid/AGUI606-continuation-owner-mismatch/expected.json +11 -0
- package/spec/fixtures/invalid/AGUI606-continuation-owner-mismatch/stream.jsonl +6 -0
- package/spec/fixtures/invalid/AGUI901-raw-wraps-typed-event/expected.json +11 -0
- package/spec/fixtures/invalid/AGUI901-raw-wraps-typed-event/stream.jsonl +3 -0
- package/spec/fixtures/invalid/AGUI902-no-timestamps/expected.json +9 -0
- package/spec/fixtures/invalid/AGUI902-no-timestamps/stream.jsonl +2 -0
- package/spec/fixtures/invalid/AGUI903-custom-name-not-namespaced/expected.json +11 -0
- package/spec/fixtures/invalid/AGUI903-custom-name-not-namespaced/stream.jsonl +3 -0
- package/spec/fixtures/valid/agentic-chat.jsonl +14 -0
- package/spec/fixtures/valid/agentic-generative-ui.jsonl +13 -0
- package/spec/fixtures/valid/backend-tool-rendering.jsonl +14 -0
- package/spec/fixtures/valid/human-in-the-loop.jsonl +13 -0
- package/spec/fixtures/valid/predictive-state-updates.expected.json +11 -0
- package/spec/fixtures/valid/predictive-state-updates.jsonl +11 -0
- package/spec/fixtures/valid/shared-state.jsonl +8 -0
- package/spec/fixtures/valid/tool-based-generative-ui.jsonl +5 -0
- package/dist/catalog-BglXBNbL.js.map +0 -1
- package/dist/catalog-Ci9dqc1a.cjs.map +0 -1
- package/dist/src-HmI-kxef.cjs.map +0 -1
- package/dist/src-rGZ2G4qA.js.map +0 -1
- package/src/report/json.ts +0 -20
- /package/{src → js/src}/protocol/jsonpatch.ts +0 -0
- /package/{src → js/src}/report/index.ts +0 -0
- /package/{src → js/src}/report/junit.ts +0 -0
- /package/{src → js/src}/report/pretty.ts +0 -0
- /package/{src → js/src}/rules/checks/reasoning.ts +0 -0
- /package/{src → js/src}/rules/checks/state.ts +0 -0
- /package/{src → js/src}/rules/checks/transport.ts +0 -0
- /package/{src → js/src}/transport/ndjson.ts +0 -0
- /package/{src → js/src}/transport/sse.ts +0 -0
- /package/{src → js/src}/types.ts +0 -0
- /package/{src → js/src}/vitest/index.ts +0 -0
- /package/{src → js/src}/vitest/matcher.ts +0 -0
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"rule": "AGUI303",
|
|
4
|
+
"severity": "error",
|
|
5
|
+
"message": "STATE_DELTA is not a valid RFC 6902 patch document: operation 0 has invalid op 'merge'",
|
|
6
|
+
"eventIndex": 2,
|
|
7
|
+
"specUrl": "https://docs.ag-ui.com/concepts/events#statedelta",
|
|
8
|
+
"eventType": "STATE_DELTA",
|
|
9
|
+
"pointer": "/delta/0/op"
|
|
10
|
+
}
|
|
11
|
+
]
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
{"type":"RUN_STARTED","threadId":"thread_001","runId":"run_001","timestamp":1755300017000}
|
|
2
|
+
{"type":"STATE_SNAPSHOT","snapshot":{},"timestamp":1755300017100}
|
|
3
|
+
{"type":"STATE_DELTA","delta":[{"op":"merge","path":"/a","value":1}],"timestamp":1755300017200}
|
|
4
|
+
{"type":"RUN_FINISHED","threadId":"thread_001","runId":"run_001","outcome":{"type":"success"},"timestamp":1755300017300}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
{"type":"RUN_STARTED","threadId":"thread_001","runId":"run_001","timestamp":1755300017400}
|
|
2
|
+
{"type":"STATE_SNAPSHOT","snapshot":{"a":1},"timestamp":1755300017500}
|
|
3
|
+
{"type":"STATE_DELTA","delta":[{"op":"replace","path":"/a","value":2}],"timestamp":1755300017600}
|
|
4
|
+
{"type":"STATE_SNAPSHOT","snapshot":{"a":99},"timestamp":1755300017700}
|
|
5
|
+
{"type":"RUN_FINISHED","threadId":"thread_001","runId":"run_001","outcome":{"type":"success"},"timestamp":1755300017800}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
{"type":"RUN_STARTED","threadId":"thread_001","runId":"run_001","timestamp":1755300017900}
|
|
2
|
+
{"type":"TEXT_MESSAGE_START","messageId":"msg_001","role":"assistant","timestamp":1755300018000}
|
|
3
|
+
{"type":"TEXT_MESSAGE_CONTENT","messageId":"msg_001","delta":"No state events at all.","timestamp":1755300018100}
|
|
4
|
+
{"type":"TEXT_MESSAGE_END","messageId":"msg_001","timestamp":1755300018200}
|
|
5
|
+
{"type":"RUN_FINISHED","threadId":"thread_001","runId":"run_001","outcome":{"type":"success"},"timestamp":1755300018300}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"rule": "AGUI401",
|
|
4
|
+
"severity": "error",
|
|
5
|
+
"message": "REASONING_MESSAGE_CONTENT for messageId 'rmsg_ghost' with no open REASONING_MESSAGE_START",
|
|
6
|
+
"eventIndex": 1,
|
|
7
|
+
"specUrl": "https://docs.ag-ui.com/concepts/events#reasoningmessagecontent",
|
|
8
|
+
"eventType": "REASONING_MESSAGE_CONTENT",
|
|
9
|
+
"pointer": "/messageId"
|
|
10
|
+
}
|
|
11
|
+
]
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
{"type":"RUN_STARTED","threadId":"thread_001","runId":"run_001","timestamp":1755300018400}
|
|
2
|
+
{"type":"REASONING_MESSAGE_CONTENT","messageId":"rmsg_ghost","delta":"orphan","timestamp":1755300018500}
|
|
3
|
+
{"type":"RUN_FINISHED","threadId":"thread_001","runId":"run_001","outcome":{"type":"success"},"timestamp":1755300018600}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
{"type":"RUN_STARTED","threadId":"thread_001","runId":"run_001","timestamp":1755300018700}
|
|
2
|
+
{"type":"REASONING_START","messageId":"rsn_001","timestamp":1755300018800}
|
|
3
|
+
{"type":"RUN_FINISHED","threadId":"thread_001","runId":"run_001","outcome":{"type":"success"},"timestamp":1755300018900}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"rule": "AGUI501",
|
|
4
|
+
"severity": "error",
|
|
5
|
+
"message": "Malformed SSE framing: line '{\"type\":\"CUSTOM\",\"name\":\"acme.ping\",\"value\":1,\"timestamp\":17…' looks like a JSON payload but lacks the 'data:' field prefix, so SSE clients silently drop it",
|
|
6
|
+
"eventIndex": -1,
|
|
7
|
+
"specUrl": "https://html.spec.whatwg.org/multipage/server-sent-events.html#event-stream-interpretation"
|
|
8
|
+
}
|
|
9
|
+
]
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"contentType": "text/event-stream",
|
|
3
|
+
"chunks": [
|
|
4
|
+
{
|
|
5
|
+
"gapMs": 0,
|
|
6
|
+
"text": "data: {\"type\":\"RUN_STARTED\",\"threadId\":\"thread_001\",\"runId\":\"run_001\",\"timestamp\":1755300022900}\n\n"
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
"gapMs": 0,
|
|
10
|
+
"text": "{\"type\":\"CUSTOM\",\"name\":\"acme.ping\",\"value\":1,\"timestamp\":1755300023000}\n\n"
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"gapMs": 0,
|
|
14
|
+
"text": "data: {\"type\":\"RUN_FINISHED\",\"threadId\":\"thread_001\",\"runId\":\"run_001\",\"outcome\":{\"type\":\"success\"},\"timestamp\":1755300023100}\n\n"
|
|
15
|
+
}
|
|
16
|
+
]
|
|
17
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"rule": "AGUI502",
|
|
4
|
+
"severity": "error",
|
|
5
|
+
"message": "Event payload is not valid JSON: Unexpected token 'b', \"{\"type\": broken json\" is not valid JSON",
|
|
6
|
+
"eventIndex": 1,
|
|
7
|
+
"specUrl": "https://docs.ag-ui.com/concepts/events#base-event-properties",
|
|
8
|
+
"eventType": ""
|
|
9
|
+
}
|
|
10
|
+
]
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"rule": "AGUI503",
|
|
4
|
+
"severity": "error",
|
|
5
|
+
"message": "Unknown event type 'AGUI_PING' (not in the installed AG-UI SDK v0.0.59, and not RAW or CUSTOM)",
|
|
6
|
+
"eventIndex": 1,
|
|
7
|
+
"specUrl": "https://docs.ag-ui.com/concepts/events#event-types-overview",
|
|
8
|
+
"eventType": "AGUI_PING"
|
|
9
|
+
}
|
|
10
|
+
]
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"rule": "AGUI504",
|
|
4
|
+
"severity": "error",
|
|
5
|
+
"message": "TOOL_CALL_START: missing required field 'toolCallName' (string)",
|
|
6
|
+
"eventIndex": 1,
|
|
7
|
+
"specUrl": "https://docs.ag-ui.com/concepts/events#base-event-properties",
|
|
8
|
+
"eventType": "TOOL_CALL_START",
|
|
9
|
+
"pointer": "/toolCallName"
|
|
10
|
+
}
|
|
11
|
+
]
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
{"type":"RUN_STARTED","threadId":"thread_001","runId":"run_001","timestamp":1755300021900}
|
|
2
|
+
{"type":"TOOL_CALL_START","toolCallId":"call_001","timestamp":1755300022000}
|
|
3
|
+
{"type":"TOOL_CALL_END","toolCallId":"call_001","timestamp":1755300022100}
|
|
4
|
+
{"type":"RUN_FINISHED","threadId":"thread_001","runId":"run_001","outcome":{"type":"success"},"timestamp":1755300022200}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"rule": "AGUI505",
|
|
4
|
+
"severity": "warning",
|
|
5
|
+
"message": "Content-Type 'application/json' is neither text/event-stream nor application/x-ndjson",
|
|
6
|
+
"eventIndex": -1,
|
|
7
|
+
"specUrl": "https://html.spec.whatwg.org/multipage/server-sent-events.html#sse-processing-model"
|
|
8
|
+
}
|
|
9
|
+
]
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
{
|
|
2
|
+
"contentType": "application/json",
|
|
3
|
+
"chunks": [
|
|
4
|
+
{
|
|
5
|
+
"gapMs": 0,
|
|
6
|
+
"text": "data: {\"type\":\"RUN_STARTED\",\"threadId\":\"thread_001\",\"runId\":\"run_001\",\"timestamp\":1755300023200}\n\n"
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
"gapMs": 0,
|
|
10
|
+
"text": "data: {\"type\":\"TEXT_MESSAGE_START\",\"messageId\":\"msg_001\",\"role\":\"assistant\",\"timestamp\":1755300023300}\n\n"
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"gapMs": 0,
|
|
14
|
+
"text": "data: {\"type\":\"TEXT_MESSAGE_CONTENT\",\"messageId\":\"msg_001\",\"delta\":\"All good here.\",\"timestamp\":1755300023400}\n\n"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"gapMs": 0,
|
|
18
|
+
"text": "data: {\"type\":\"TEXT_MESSAGE_END\",\"messageId\":\"msg_001\",\"timestamp\":1755300023500}\n\n"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"gapMs": 0,
|
|
22
|
+
"text": "data: {\"type\":\"RUN_FINISHED\",\"threadId\":\"thread_001\",\"runId\":\"run_001\",\"outcome\":{\"type\":\"success\"},\"timestamp\":1755300023600}\n\n"
|
|
23
|
+
}
|
|
24
|
+
]
|
|
25
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
{
|
|
2
|
+
"contentType": "text/event-stream",
|
|
3
|
+
"chunks": [
|
|
4
|
+
{
|
|
5
|
+
"gapMs": 0,
|
|
6
|
+
"text": "data: {\"type\":\"RUN_STARTED\",\"threadId\":\"thread_001\",\"runId\":\"run_001\",\"timestamp\":1755300023700}\n\n"
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
"gapMs": 0,
|
|
10
|
+
"text": "data: {\"type\":\"TEXT_MESSAGE_START\",\"messageId\":\"msg_001\",\"role\":\"assistant\",\"timestamp\":1755300023800}\n\n"
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"gapMs": 0,
|
|
14
|
+
"text": "data: {\"type\":\"TEXT_MESSAGE_CONTENT\",\"messageId\":\"msg_001\",\"delta\":\"Thinking very hard…\",\"timestamp\":1755300023900}\n\n"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"gapMs": 0,
|
|
18
|
+
"text": "data: {\"type\":\"TEXT_MESSAGE_END\",\"messageId\":\"msg_001\",\"timestamp\":1755300024000}\n\n"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"gapMs": 47000,
|
|
22
|
+
"text": "data: {\"type\":\"RUN_FINISHED\",\"threadId\":\"thread_001\",\"runId\":\"run_001\",\"outcome\":{\"type\":\"success\"},\"timestamp\":1755300024100}\n\n"
|
|
23
|
+
}
|
|
24
|
+
]
|
|
25
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
{
|
|
2
|
+
"contentType": "text/event-stream",
|
|
3
|
+
"chunks": [
|
|
4
|
+
{
|
|
5
|
+
"gapMs": 0,
|
|
6
|
+
"text": "data: {\"type\":\"RUN_STARTED\",\"threadId\":\"thread_001\",\"runId\":\"run_001\",\"timestamp\":1755300024200}\n\ndata: {\"type\":\"TEXT_MESSAGE_START\",\"messageId\":\"msg_001\",\"role\":\"assistant\",\"timestamp\":1755300024300}\n\ndata: {\"type\":\"TEXT_MESSAGE_CONTENT\",\"messageId\":\"msg_001\",\"delta\":\"All good here.\",\"timestamp\":1755300024400}\n\ndata: {\"type\":\"TEXT_MESSAGE_END\",\"messageId\":\"msg_001\",\"timestamp\":1755300024500}\n\ndata: {\"type\":\"RUN_FINISHED\",\"threadId\":\"thread_001\",\"runId\":\"run_001\",\"outcome\":{\"type\":\"success\"},\"timestamp\":1755300024600}\n\n"
|
|
7
|
+
}
|
|
8
|
+
]
|
|
9
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"rule": "AGUI508",
|
|
4
|
+
"severity": "error",
|
|
5
|
+
"message": "Connection ended mid-run 'run_001' without RUN_FINISHED or RUN_ERROR",
|
|
6
|
+
"eventIndex": -1,
|
|
7
|
+
"specUrl": "https://docs.ag-ui.com/concepts/events#runfinished"
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
"rule": "AGUI003",
|
|
11
|
+
"severity": "error",
|
|
12
|
+
"message": "Run 'run_001' ended without RUN_FINISHED or RUN_ERROR",
|
|
13
|
+
"eventIndex": -1,
|
|
14
|
+
"specUrl": "https://docs.ag-ui.com/concepts/events#runfinished",
|
|
15
|
+
"relatedEventIndex": 0
|
|
16
|
+
}
|
|
17
|
+
]
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"rule": "AGUI601",
|
|
4
|
+
"severity": "error",
|
|
5
|
+
"message": "SUBAGENT_STARTED reuses subagentRunId 'sub_001', which is already in use this run",
|
|
6
|
+
"eventIndex": 2,
|
|
7
|
+
"specUrl": "https://docs.ag-ui.com/concepts/subagents#rules-clients-enforce",
|
|
8
|
+
"eventType": "SUBAGENT_STARTED",
|
|
9
|
+
"pointer": "/subagentRunId",
|
|
10
|
+
"relatedEventIndex": 1
|
|
11
|
+
}
|
|
12
|
+
]
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
{"type":"RUN_STARTED","threadId":"thread_001","runId":"run_001","timestamp":1755300019000}
|
|
2
|
+
{"type":"SUBAGENT_STARTED","subagentRunId":"sub_001","name":"researcher","timestamp":1755300019100}
|
|
3
|
+
{"type":"SUBAGENT_STARTED","subagentRunId":"sub_001","name":"researcher","timestamp":1755300019200}
|
|
4
|
+
{"type":"SUBAGENT_FINISHED","subagentRunId":"sub_001","timestamp":1755300019300}
|
|
5
|
+
{"type":"RUN_FINISHED","threadId":"thread_001","runId":"run_001","outcome":{"type":"success"},"timestamp":1755300019400}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"rule": "AGUI602",
|
|
4
|
+
"severity": "error",
|
|
5
|
+
"message": "SUBAGENT_FINISHED for subagentRunId 'sub_ghost' with no open SUBAGENT_STARTED",
|
|
6
|
+
"eventIndex": 1,
|
|
7
|
+
"specUrl": "https://docs.ag-ui.com/concepts/subagents#rules-clients-enforce",
|
|
8
|
+
"eventType": "SUBAGENT_FINISHED",
|
|
9
|
+
"pointer": "/subagentRunId"
|
|
10
|
+
}
|
|
11
|
+
]
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
{"type":"RUN_STARTED","threadId":"thread_001","runId":"run_001","timestamp":1755300019500}
|
|
2
|
+
{"type":"SUBAGENT_FINISHED","subagentRunId":"sub_ghost","timestamp":1755300019600}
|
|
3
|
+
{"type":"RUN_FINISHED","threadId":"thread_001","runId":"run_001","outcome":{"type":"success"},"timestamp":1755300019700}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"rule": "AGUI603",
|
|
4
|
+
"severity": "error",
|
|
5
|
+
"message": "SUBAGENT_ERROR for subagentRunId 'sub_ghost' with no open SUBAGENT_STARTED",
|
|
6
|
+
"eventIndex": 1,
|
|
7
|
+
"specUrl": "https://docs.ag-ui.com/concepts/subagents#rules-clients-enforce",
|
|
8
|
+
"eventType": "SUBAGENT_ERROR",
|
|
9
|
+
"pointer": "/subagentRunId"
|
|
10
|
+
}
|
|
11
|
+
]
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
{"type":"RUN_STARTED","threadId":"thread_001","runId":"run_001","timestamp":1755300019800}
|
|
2
|
+
{"type":"SUBAGENT_ERROR","subagentRunId":"sub_ghost","message":"boom","timestamp":1755300019900}
|
|
3
|
+
{"type":"RUN_FINISHED","threadId":"thread_001","runId":"run_001","outcome":{"type":"success"},"timestamp":1755300020000}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"rule": "AGUI604",
|
|
4
|
+
"severity": "error",
|
|
5
|
+
"message": "SUBAGENT_STARTED subagentRunId 'sub_001' never closed with SUBAGENT_FINISHED or SUBAGENT_ERROR",
|
|
6
|
+
"eventIndex": 2,
|
|
7
|
+
"specUrl": "https://docs.ag-ui.com/concepts/subagents#rules-clients-enforce",
|
|
8
|
+
"relatedEventIndex": 1
|
|
9
|
+
}
|
|
10
|
+
]
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
{"type":"RUN_STARTED","threadId":"thread_001","runId":"run_001","timestamp":1755300020100}
|
|
2
|
+
{"type":"SUBAGENT_STARTED","subagentRunId":"sub_001","name":"researcher","timestamp":1755300020200}
|
|
3
|
+
{"type":"RUN_FINISHED","threadId":"thread_001","runId":"run_001","outcome":{"type":"success"},"timestamp":1755300020300}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"rule": "AGUI605",
|
|
4
|
+
"severity": "warning",
|
|
5
|
+
"message": "SUBAGENT_STARTED parentSubagentRunId 'sub_ghost' matches no subagent observed in this stream",
|
|
6
|
+
"eventIndex": 1,
|
|
7
|
+
"specUrl": "https://docs.ag-ui.com/concepts/subagents#nesting-and-concurrency",
|
|
8
|
+
"eventType": "SUBAGENT_STARTED",
|
|
9
|
+
"pointer": "/parentSubagentRunId"
|
|
10
|
+
}
|
|
11
|
+
]
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
{"type":"RUN_STARTED","threadId":"thread_001","runId":"run_001","timestamp":1755300020400}
|
|
2
|
+
{"type":"SUBAGENT_STARTED","subagentRunId":"sub_001","name":"researcher","parentSubagentRunId":"sub_ghost","timestamp":1755300020500}
|
|
3
|
+
{"type":"SUBAGENT_FINISHED","subagentRunId":"sub_001","timestamp":1755300020600}
|
|
4
|
+
{"type":"RUN_FINISHED","threadId":"thread_001","runId":"run_001","outcome":{"type":"success"},"timestamp":1755300020700}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"rule": "AGUI606",
|
|
4
|
+
"severity": "warning",
|
|
5
|
+
"message": "TEXT_MESSAGE_END declares subagentRunId 'sub_2', but messageId 'msg_1' was opened under 'sub_1'",
|
|
6
|
+
"eventIndex": 3,
|
|
7
|
+
"specUrl": "https://docs.ag-ui.com/concepts/subagents#rules-clients-enforce",
|
|
8
|
+
"eventType": "TEXT_MESSAGE_END",
|
|
9
|
+
"pointer": "/subagentRunId"
|
|
10
|
+
}
|
|
11
|
+
]
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{"type":"RUN_STARTED","threadId":"thread_001","runId":"run_001","timestamp":1755300020800}
|
|
2
|
+
{"type":"SUBAGENT_STARTED","subagentRunId":"sub_1","name":"researcher","timestamp":1755300020900}
|
|
3
|
+
{"type":"TEXT_MESSAGE_START","messageId":"msg_1","role":"assistant","subagentRunId":"sub_1","timestamp":1755300021000}
|
|
4
|
+
{"type":"TEXT_MESSAGE_END","messageId":"msg_1","subagentRunId":"sub_2","timestamp":1755300021100}
|
|
5
|
+
{"type":"SUBAGENT_FINISHED","subagentRunId":"sub_1","timestamp":1755300021200}
|
|
6
|
+
{"type":"RUN_FINISHED","threadId":"thread_001","runId":"run_001","outcome":{"type":"success"},"timestamp":1755300021300}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"rule": "AGUI901",
|
|
4
|
+
"severity": "info",
|
|
5
|
+
"message": "RAW event wraps an event of type 'TOOL_CALL_RESULT', which has a typed AG-UI equivalent",
|
|
6
|
+
"eventIndex": 1,
|
|
7
|
+
"specUrl": "https://docs.ag-ui.com/concepts/events#raw",
|
|
8
|
+
"eventType": "RAW",
|
|
9
|
+
"pointer": "/event/type"
|
|
10
|
+
}
|
|
11
|
+
]
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
{"type":"RUN_STARTED","threadId":"thread_001","runId":"run_001","timestamp":1755300022300}
|
|
2
|
+
{"type":"RAW","event":{"type":"TOOL_CALL_RESULT","toolCallId":"call_001","content":"wrapped"},"timestamp":1755300022400}
|
|
3
|
+
{"type":"RUN_FINISHED","threadId":"thread_001","runId":"run_001","outcome":{"type":"success"},"timestamp":1755300022500}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"rule": "AGUI903",
|
|
4
|
+
"severity": "info",
|
|
5
|
+
"message": "CUSTOM event name 'update' has no namespace prefix (e.g. 'vendor.event')",
|
|
6
|
+
"eventIndex": 1,
|
|
7
|
+
"specUrl": "https://docs.ag-ui.com/concepts/events#custom",
|
|
8
|
+
"eventType": "CUSTOM",
|
|
9
|
+
"pointer": "/name"
|
|
10
|
+
}
|
|
11
|
+
]
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
{"type":"RUN_STARTED","threadId":"thread_001","runId":"run_001","timestamp":1755300022600}
|
|
2
|
+
{"type":"CUSTOM","name":"update","value":{"x":1},"timestamp":1755300022700}
|
|
3
|
+
{"type":"RUN_FINISHED","threadId":"thread_001","runId":"run_001","outcome":{"type":"success"},"timestamp":1755300022800}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{"type":"RUN_STARTED","threadId":"thread_chat","runId":"run_001","timestamp":1755300000100}
|
|
2
|
+
{"type":"REASONING_START","messageId":"rsn_001","timestamp":1755300000200}
|
|
3
|
+
{"type":"REASONING_MESSAGE_START","messageId":"rmsg_001","role":"reasoning","timestamp":1755300000300}
|
|
4
|
+
{"type":"REASONING_MESSAGE_CONTENT","messageId":"rmsg_001","delta":"The user greeted me; respond warmly.","timestamp":1755300000400}
|
|
5
|
+
{"type":"REASONING_MESSAGE_END","messageId":"rmsg_001","timestamp":1755300000500}
|
|
6
|
+
{"type":"REASONING_END","messageId":"rsn_001","timestamp":1755300000600}
|
|
7
|
+
{"type":"TEXT_MESSAGE_START","messageId":"msg_001","role":"assistant","timestamp":1755300000700}
|
|
8
|
+
{"type":"TEXT_MESSAGE_CONTENT","messageId":"msg_001","delta":"Hello! ","timestamp":1755300000800}
|
|
9
|
+
{"type":"TEXT_MESSAGE_CONTENT","messageId":"msg_001","delta":"How can I help ","timestamp":1755300000900}
|
|
10
|
+
{"type":"TEXT_MESSAGE_CONTENT","messageId":"msg_001","delta":"you today?","timestamp":1755300001000}
|
|
11
|
+
{"type":"TEXT_MESSAGE_END","messageId":"msg_001","timestamp":1755300001100}
|
|
12
|
+
{"type":"TEXT_MESSAGE_CHUNK","messageId":"msg_002","delta":"Chunked messages ","timestamp":1755300001200}
|
|
13
|
+
{"type":"TEXT_MESSAGE_CHUNK","delta":"work too.","timestamp":1755300001300}
|
|
14
|
+
{"type":"RUN_FINISHED","threadId":"thread_chat","runId":"run_001","outcome":{"type":"success"},"timestamp":1755300001400}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{"type":"RUN_STARTED","threadId":"thread_genui","runId":"run_001","timestamp":1755300004200}
|
|
2
|
+
{"type":"STATE_SNAPSHOT","snapshot":{"steps":[{"name":"plan","status":"pending"},{"name":"execute","status":"pending"}]},"timestamp":1755300004300}
|
|
3
|
+
{"type":"STEP_STARTED","stepName":"plan","timestamp":1755300004400}
|
|
4
|
+
{"type":"STATE_DELTA","delta":[{"op":"replace","path":"/steps/0/status","value":"in_progress"}],"timestamp":1755300004500}
|
|
5
|
+
{"type":"STATE_DELTA","delta":[{"op":"replace","path":"/steps/0/status","value":"done"}],"timestamp":1755300004600}
|
|
6
|
+
{"type":"STEP_FINISHED","stepName":"plan","timestamp":1755300004700}
|
|
7
|
+
{"type":"STEP_STARTED","stepName":"execute","timestamp":1755300004800}
|
|
8
|
+
{"type":"STATE_DELTA","delta":[{"op":"replace","path":"/steps/1/status","value":"done"}],"timestamp":1755300004900}
|
|
9
|
+
{"type":"STEP_FINISHED","stepName":"execute","timestamp":1755300005000}
|
|
10
|
+
{"type":"TEXT_MESSAGE_START","messageId":"msg_001","role":"assistant","timestamp":1755300005100}
|
|
11
|
+
{"type":"TEXT_MESSAGE_CONTENT","messageId":"msg_001","delta":"All steps complete.","timestamp":1755300005200}
|
|
12
|
+
{"type":"TEXT_MESSAGE_END","messageId":"msg_001","timestamp":1755300005300}
|
|
13
|
+
{"type":"RUN_FINISHED","threadId":"thread_genui","runId":"run_001","outcome":{"type":"success"},"timestamp":1755300005400}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{"type":"RUN_STARTED","threadId":"thread_tools","runId":"run_001","timestamp":1755300001500}
|
|
2
|
+
{"type":"TEXT_MESSAGE_START","messageId":"msg_001","role":"assistant","timestamp":1755300001600}
|
|
3
|
+
{"type":"TEXT_MESSAGE_CONTENT","messageId":"msg_001","delta":"Checking the weather…","timestamp":1755300001700}
|
|
4
|
+
{"type":"TEXT_MESSAGE_END","messageId":"msg_001","timestamp":1755300001800}
|
|
5
|
+
{"type":"TOOL_CALL_START","toolCallId":"call_001","toolCallName":"get_weather","parentMessageId":"msg_001","timestamp":1755300001900}
|
|
6
|
+
{"type":"TOOL_CALL_ARGS","toolCallId":"call_001","delta":"{\"city\":\"Ber","timestamp":1755300002000}
|
|
7
|
+
{"type":"TOOL_CALL_ARGS","toolCallId":"call_001","delta":"lin\"}","timestamp":1755300002100}
|
|
8
|
+
{"type":"TOOL_CALL_END","toolCallId":"call_001","timestamp":1755300002200}
|
|
9
|
+
{"type":"TOOL_CALL_RESULT","messageId":"msg_002","toolCallId":"call_001","content":"{\"tempC\":21}","role":"tool","timestamp":1755300002300}
|
|
10
|
+
{"type":"RAW","event":{"kind":"langgraph_checkpoint","checkpoint_id":"ckpt_42"},"source":"langgraph","timestamp":1755300002400}
|
|
11
|
+
{"type":"TEXT_MESSAGE_START","messageId":"msg_003","role":"assistant","timestamp":1755300002500}
|
|
12
|
+
{"type":"TEXT_MESSAGE_CONTENT","messageId":"msg_003","delta":"It is 21°C in Berlin.","timestamp":1755300002600}
|
|
13
|
+
{"type":"TEXT_MESSAGE_END","messageId":"msg_003","timestamp":1755300002700}
|
|
14
|
+
{"type":"RUN_FINISHED","threadId":"thread_tools","runId":"run_001","outcome":{"type":"success"},"timestamp":1755300002800}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{"type":"RUN_STARTED","threadId":"thread_hitl","runId":"run_001","timestamp":1755300002900}
|
|
2
|
+
{"type":"TEXT_MESSAGE_START","messageId":"msg_001","role":"assistant","timestamp":1755300003000}
|
|
3
|
+
{"type":"TEXT_MESSAGE_CONTENT","messageId":"msg_001","delta":"I need your approval to delete 3 files.","timestamp":1755300003100}
|
|
4
|
+
{"type":"TEXT_MESSAGE_END","messageId":"msg_001","timestamp":1755300003200}
|
|
5
|
+
{"type":"TOOL_CALL_START","toolCallId":"call_001","toolCallName":"confirm_action","parentMessageId":"msg_001","timestamp":1755300003300}
|
|
6
|
+
{"type":"TOOL_CALL_ARGS","toolCallId":"call_001","delta":"{\"action\":\"delete\",\"count\":3}","timestamp":1755300003400}
|
|
7
|
+
{"type":"TOOL_CALL_END","toolCallId":"call_001","timestamp":1755300003500}
|
|
8
|
+
{"type":"RUN_FINISHED","threadId":"thread_hitl","runId":"run_001","outcome":{"type":"interrupt","interrupts":[{"id":"int_001","reason":"approval_required","toolCallId":"call_001"}]},"timestamp":1755300003600}
|
|
9
|
+
{"type":"RUN_STARTED","threadId":"thread_hitl","runId":"run_002","timestamp":1755300003700,"parentRunId":"run_001"}
|
|
10
|
+
{"type":"TEXT_MESSAGE_START","messageId":"msg_002","role":"assistant","timestamp":1755300003800}
|
|
11
|
+
{"type":"TEXT_MESSAGE_CONTENT","messageId":"msg_002","delta":"Done — 3 files deleted.","timestamp":1755300003900}
|
|
12
|
+
{"type":"TEXT_MESSAGE_END","messageId":"msg_002","timestamp":1755300004000}
|
|
13
|
+
{"type":"RUN_FINISHED","threadId":"thread_hitl","runId":"run_002","outcome":{"type":"success"},"timestamp":1755300004100}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"rule": "AGUI903",
|
|
4
|
+
"severity": "info",
|
|
5
|
+
"message": "CUSTOM event name 'PredictState' has no namespace prefix (e.g. 'vendor.event')",
|
|
6
|
+
"eventIndex": 2,
|
|
7
|
+
"specUrl": "https://docs.ag-ui.com/concepts/events#custom",
|
|
8
|
+
"eventType": "CUSTOM",
|
|
9
|
+
"pointer": "/name"
|
|
10
|
+
}
|
|
11
|
+
]
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{"type":"RUN_STARTED","threadId":"thread_predict","runId":"run_001","timestamp":1755300006800}
|
|
2
|
+
{"type":"STATE_SNAPSHOT","snapshot":{"document":""},"timestamp":1755300006900}
|
|
3
|
+
{"type":"CUSTOM","name":"PredictState","value":[{"state_key":"document","tool":"write_document","tool_argument":"document"}],"timestamp":1755300007000}
|
|
4
|
+
{"type":"TOOL_CALL_START","toolCallId":"call_001","toolCallName":"write_document","timestamp":1755300007100}
|
|
5
|
+
{"type":"TOOL_CALL_ARGS","toolCallId":"call_001","delta":"{\"document\":\"Hello world.\"}","timestamp":1755300007200}
|
|
6
|
+
{"type":"TOOL_CALL_END","toolCallId":"call_001","timestamp":1755300007300}
|
|
7
|
+
{"type":"STATE_DELTA","delta":[{"op":"replace","path":"/document","value":"Hello world."}],"timestamp":1755300007400}
|
|
8
|
+
{"type":"TEXT_MESSAGE_START","messageId":"msg_001","role":"assistant","timestamp":1755300007500}
|
|
9
|
+
{"type":"TEXT_MESSAGE_CONTENT","messageId":"msg_001","delta":"Written.","timestamp":1755300007600}
|
|
10
|
+
{"type":"TEXT_MESSAGE_END","messageId":"msg_001","timestamp":1755300007700}
|
|
11
|
+
{"type":"RUN_FINISHED","threadId":"thread_predict","runId":"run_001","outcome":{"type":"success"},"timestamp":1755300007800}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
{"type":"RUN_STARTED","threadId":"thread_state","runId":"run_001","timestamp":1755300006000}
|
|
2
|
+
{"type":"STATE_SNAPSHOT","snapshot":{"recipe":{"title":"Pasta","ingredients":["tomato"]}},"timestamp":1755300006100}
|
|
3
|
+
{"type":"TEXT_MESSAGE_START","messageId":"msg_001","role":"assistant","timestamp":1755300006200}
|
|
4
|
+
{"type":"TEXT_MESSAGE_CONTENT","messageId":"msg_001","delta":"Adding garlic to the recipe.","timestamp":1755300006300}
|
|
5
|
+
{"type":"TEXT_MESSAGE_END","messageId":"msg_001","timestamp":1755300006400}
|
|
6
|
+
{"type":"STATE_DELTA","delta":[{"op":"add","path":"/recipe/ingredients/-","value":"garlic"}],"timestamp":1755300006500}
|
|
7
|
+
{"type":"STATE_DELTA","delta":[{"op":"test","path":"/recipe/title","value":"Pasta"},{"op":"replace","path":"/recipe/title","value":"Garlic Pasta"}],"timestamp":1755300006600}
|
|
8
|
+
{"type":"RUN_FINISHED","threadId":"thread_state","runId":"run_001","outcome":{"type":"success"},"timestamp":1755300006700}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
{"type":"RUN_STARTED","threadId":"thread_fe_tools","runId":"run_001","timestamp":1755300005500}
|
|
2
|
+
{"type":"TOOL_CALL_START","toolCallId":"call_001","toolCallName":"generate_haiku","timestamp":1755300005600}
|
|
3
|
+
{"type":"TOOL_CALL_ARGS","toolCallId":"call_001","delta":"{\"topic\":\"conformance\"}","timestamp":1755300005700}
|
|
4
|
+
{"type":"TOOL_CALL_END","toolCallId":"call_001","timestamp":1755300005800}
|
|
5
|
+
{"type":"RUN_FINISHED","threadId":"thread_fe_tools","runId":"run_001","outcome":{"type":"success"},"timestamp":1755300005900}
|