agent-dump 1.2.5__tar.gz → 1.2.6__tar.gz
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.
- {agent_dump-1.2.5 → agent_dump-1.2.6}/Cargo.lock +20 -19
- {agent_dump-1.2.5 → agent_dump-1.2.6}/Cargo.toml +2 -1
- {agent_dump-1.2.5 → agent_dump-1.2.6}/PKG-INFO +3 -3
- {agent_dump-1.2.5 → agent_dump-1.2.6}/README.md +2 -2
- agent_dump-1.2.5/crates/agent-dump-core/src/compat/json.rs → agent_dump-1.2.6/crates/agent-dump-core/src/compat/json/mod.rs +5 -1
- agent_dump-1.2.6/crates/agent-dump-core/src/compat/mod.rs +5 -0
- {agent_dump-1.2.5 → agent_dump-1.2.6}/crates/agent-dump-core/src/output/diagnostics.rs +29 -7
- {agent_dump-1.2.5 → agent_dump-1.2.6}/crates/agent-dump-core/src/output/render.rs +13 -2
- {agent_dump-1.2.5 → agent_dump-1.2.6}/crates/agent-dump-core/src/providers/antigravity_cli/mod.rs +6 -3
- {agent_dump-1.2.5 → agent_dump-1.2.6}/crates/agent-dump-core/src/providers/antigravity_cli/tests.rs +44 -9
- {agent_dump-1.2.5 → agent_dump-1.2.6}/crates/agent-dump-core/src/providers/claude/mod.rs +40 -8
- {agent_dump-1.2.5 → agent_dump-1.2.6}/crates/agent-dump-core/src/providers/codex/enrichment.rs +16 -4
- {agent_dump-1.2.5 → agent_dump-1.2.6}/crates/agent-dump-core/src/providers/codex/exec.rs +6 -1
- {agent_dump-1.2.5 → agent_dump-1.2.6}/crates/agent-dump-core/src/providers/codex/mod.rs +192 -41
- {agent_dump-1.2.5 → agent_dump-1.2.6}/crates/agent-dump-core/src/providers/codex/patch.rs +6 -1
- {agent_dump-1.2.5 → agent_dump-1.2.6}/crates/agent-dump-core/src/providers/contract.rs +21 -6
- {agent_dump-1.2.5 → agent_dump-1.2.6}/crates/agent-dump-core/src/providers/cursor/mod.rs +50 -11
- {agent_dump-1.2.5 → agent_dump-1.2.6}/crates/agent-dump-core/src/providers/cursor/transcript.rs +7 -1
- {agent_dump-1.2.5 → agent_dump-1.2.6}/crates/agent-dump-core/src/providers/desktop/cherry.rs +45 -8
- {agent_dump-1.2.5 → agent_dump-1.2.6}/crates/agent-dump-core/src/providers/desktop/deepchat.rs +109 -26
- {agent_dump-1.2.5 → agent_dump-1.2.6}/crates/agent-dump-core/src/providers/desktop/minimax.rs +83 -14
- {agent_dump-1.2.5 → agent_dump-1.2.6}/crates/agent-dump-core/src/providers/desktop/mod.rs +21 -8
- {agent_dump-1.2.5 → agent_dump-1.2.6}/crates/agent-dump-core/src/providers/desktop/tests.rs +163 -50
- {agent_dump-1.2.5 → agent_dump-1.2.6}/crates/agent-dump-core/src/providers/droid/mod.rs +27 -6
- {agent_dump-1.2.5 → agent_dump-1.2.6}/crates/agent-dump-core/src/providers/dsh/mod.rs +13 -4
- {agent_dump-1.2.5 → agent_dump-1.2.6}/crates/agent-dump-core/src/providers/dsh/transcript.rs +6 -2
- {agent_dump-1.2.5 → agent_dump-1.2.6}/crates/agent-dump-core/src/providers/gemini_cli/chat.rs +178 -24
- {agent_dump-1.2.5 → agent_dump-1.2.6}/crates/agent-dump-core/src/providers/gemini_cli/mod.rs +5 -3
- {agent_dump-1.2.5 → agent_dump-1.2.6}/crates/agent-dump-core/src/providers/grok/mod.rs +10 -4
- {agent_dump-1.2.5 → agent_dump-1.2.6}/crates/agent-dump-core/src/providers/kimi/mod.rs +43 -13
- {agent_dump-1.2.5 → agent_dump-1.2.6}/crates/agent-dump-core/src/providers/kimi_code/mod.rs +11 -5
- {agent_dump-1.2.5 → agent_dump-1.2.6}/crates/agent-dump-core/src/providers/mod.rs +2 -2
- {agent_dump-1.2.5 → agent_dump-1.2.6}/crates/agent-dump-core/src/providers/pi/mod.rs +150 -23
- {agent_dump-1.2.5 → agent_dump-1.2.6}/crates/agent-dump-core/src/providers/sqlite/connection.rs +7 -1
- {agent_dump-1.2.5 → agent_dump-1.2.6}/crates/agent-dump-core/src/providers/sqlite/legacy.rs +10 -5
- {agent_dump-1.2.5 → agent_dump-1.2.6}/crates/agent-dump-core/src/providers/sqlite/mod.rs +189 -33
- {agent_dump-1.2.5 → agent_dump-1.2.6}/crates/agent-dump-core/src/providers/sqlite/v2.rs +30 -6
- {agent_dump-1.2.5 → agent_dump-1.2.6}/crates/agent-dump-core/src/providers/text.rs +7 -4
- agent_dump-1.2.5/crates/agent-dump-core/src/query/index.rs → agent_dump-1.2.6/crates/agent-dump-core/src/query/index/mod.rs +142 -20
- {agent_dump-1.2.5 → agent_dump-1.2.6}/crates/agent-dump-core/src/query/index/tests.rs +16 -2
- {agent_dump-1.2.5 → agent_dump-1.2.6}/pyproject.toml +3 -4
- {agent_dump-1.2.5 → agent_dump-1.2.6}/src/cli_args.rs +7 -8
- {agent_dump-1.2.5 → agent_dump-1.2.6}/src/collect/events.rs +12 -6
- {agent_dump-1.2.5 → agent_dump-1.2.6}/src/collect/handoff.rs +33 -8
- {agent_dump-1.2.5 → agent_dump-1.2.6}/src/collect/llm.rs +31 -11
- {agent_dump-1.2.5 → agent_dump-1.2.6}/src/collect/log.rs +17 -22
- {agent_dump-1.2.5 → agent_dump-1.2.6}/src/collect/model.rs +4 -2
- {agent_dump-1.2.5 → agent_dump-1.2.6}/src/collect/progress.rs +2 -5
- agent_dump-1.2.5/src/collect/prompts.rs → agent_dump-1.2.6/src/collect/prompts/mod.rs +23 -21
- {agent_dump-1.2.5 → agent_dump-1.2.6}/src/collect/reduction.rs +55 -8
- {agent_dump-1.2.5 → agent_dump-1.2.6}/src/collect/sessions.rs +19 -10
- {agent_dump-1.2.5 → agent_dump-1.2.6}/src/collect/summary.rs +20 -7
- {agent_dump-1.2.5 → agent_dump-1.2.6}/src/command.rs +243 -215
- {agent_dump-1.2.5 → agent_dump-1.2.6}/src/date_input.rs +5 -14
- {agent_dump-1.2.5 → agent_dump-1.2.6}/src/shortcut.rs +4 -4
- {agent_dump-1.2.5 → agent_dump-1.2.6}/src/terminal/reader.rs +41 -7
- {agent_dump-1.2.5 → agent_dump-1.2.6}/src/terminal/selector.rs +8 -15
- {agent_dump-1.2.5 → agent_dump-1.2.6}/src/terminal/tui.rs +3 -3
- agent_dump-1.2.5/src/workflows/reader.rs → agent_dump-1.2.6/src/workflows/browse.rs +7 -9
- {agent_dump-1.2.5 → agent_dump-1.2.6}/src/workflows/collect.rs +410 -289
- {agent_dump-1.2.5 → agent_dump-1.2.6}/src/workflows/config.rs +17 -41
- {agent_dump-1.2.5 → agent_dump-1.2.6}/src/workflows/interactive.rs +46 -58
- {agent_dump-1.2.5 → agent_dump-1.2.6}/src/workflows/list.rs +23 -28
- {agent_dump-1.2.5 → agent_dump-1.2.6}/src/workflows/machine.rs +21 -9
- {agent_dump-1.2.5 → agent_dump-1.2.6}/src/workflows/maintenance.rs +27 -27
- {agent_dump-1.2.5 → agent_dump-1.2.6}/src/workflows/mod.rs +1 -1
- {agent_dump-1.2.5 → agent_dump-1.2.6}/src/workflows/read.rs +2 -3
- agent_dump-1.2.6/src/workflows/uri.rs +533 -0
- agent_dump-1.2.5/crates/agent-dump-core/src/compat/mod.rs +0 -2
- agent_dump-1.2.5/src/workflows/uri.rs +0 -491
- {agent_dump-1.2.5 → agent_dump-1.2.6}/LICENSE +0 -0
- {agent_dump-1.2.5 → agent_dump-1.2.6}/crates/agent-dump-core/Cargo.toml +0 -0
- {agent_dump-1.2.5 → agent_dump-1.2.6}/crates/agent-dump-core/src/compat/json/diagnostic.rs +0 -0
- {agent_dump-1.2.5 → agent_dump-1.2.6}/crates/agent-dump-core/src/compat/json/encoding.rs +0 -0
- {agent_dump-1.2.5 → agent_dump-1.2.6}/crates/agent-dump-core/src/compat/value.rs +0 -0
- {agent_dump-1.2.5 → agent_dump-1.2.6}/crates/agent-dump-core/src/config.rs +0 -0
- {agent_dump-1.2.5 → agent_dump-1.2.6}/crates/agent-dump-core/src/lib.rs +0 -0
- {agent_dump-1.2.5 → agent_dump-1.2.6}/crates/agent-dump-core/src/output/export.rs +0 -0
- {agent_dump-1.2.5 → agent_dump-1.2.6}/crates/agent-dump-core/src/output/formats.rs +0 -0
- {agent_dump-1.2.5 → agent_dump-1.2.6}/crates/agent-dump-core/src/output/i18n.rs +0 -0
- {agent_dump-1.2.5 → agent_dump-1.2.6}/crates/agent-dump-core/src/output/mod.rs +0 -0
- {agent_dump-1.2.5 → agent_dump-1.2.6}/crates/agent-dump-core/src/parallel.rs +0 -0
- {agent_dump-1.2.5 → agent_dump-1.2.6}/crates/agent-dump-core/src/providers/antigravity_cli/proto.rs +0 -0
- {agent_dump-1.2.5 → agent_dump-1.2.6}/crates/agent-dump-core/src/providers/antigravity_cli/transcript.rs +0 -0
- {agent_dump-1.2.5 → agent_dump-1.2.6}/crates/agent-dump-core/src/providers/claude/transcript.rs +0 -0
- {agent_dump-1.2.5 → agent_dump-1.2.6}/crates/agent-dump-core/src/providers/codex/children.rs +0 -0
- {agent_dump-1.2.5 → agent_dump-1.2.6}/crates/agent-dump-core/src/providers/codex/rollout.rs +0 -0
- {agent_dump-1.2.5 → agent_dump-1.2.6}/crates/agent-dump-core/src/providers/codex/transcript.rs +0 -0
- {agent_dump-1.2.5 → agent_dump-1.2.6}/crates/agent-dump-core/src/providers/codex/usage.rs +0 -0
- {agent_dump-1.2.5 → agent_dump-1.2.6}/crates/agent-dump-core/src/providers/cursor/workspace.rs +0 -0
- {agent_dump-1.2.5 → agent_dump-1.2.6}/crates/agent-dump-core/src/providers/dsh/log.rs +0 -0
- {agent_dump-1.2.5 → agent_dump-1.2.6}/crates/agent-dump-core/src/providers/error.rs +0 -0
- {agent_dump-1.2.5 → agent_dump-1.2.6}/crates/agent-dump-core/src/providers/files.rs +0 -0
- {agent_dump-1.2.5 → agent_dump-1.2.6}/crates/agent-dump-core/src/providers/grok/transcript.rs +0 -0
- {agent_dump-1.2.5 → agent_dump-1.2.6}/crates/agent-dump-core/src/providers/jsonl.rs +0 -0
- {agent_dump-1.2.5 → agent_dump-1.2.6}/crates/agent-dump-core/src/providers/kimi/transcript.rs +0 -0
- {agent_dump-1.2.5 → agent_dump-1.2.6}/crates/agent-dump-core/src/providers/kimi/wire.rs +0 -0
- {agent_dump-1.2.5 → agent_dump-1.2.6}/crates/agent-dump-core/src/providers/kimi_code/wire.rs +0 -0
- {agent_dump-1.2.5 → agent_dump-1.2.6}/crates/agent-dump-core/src/providers/pi/transcript.rs +0 -0
- {agent_dump-1.2.5 → agent_dump-1.2.6}/crates/agent-dump-core/src/providers/registry.rs +0 -0
- /agent_dump-1.2.5/crates/agent-dump-core/src/providers/source_tests.rs → /agent_dump-1.2.6/crates/agent-dump-core/src/providers/tests.rs +0 -0
- {agent_dump-1.2.5 → agent_dump-1.2.6}/crates/agent-dump-core/src/providers/title.rs +0 -0
- {agent_dump-1.2.5 → agent_dump-1.2.6}/crates/agent-dump-core/src/query/context.rs +0 -0
- {agent_dump-1.2.5 → agent_dump-1.2.6}/crates/agent-dump-core/src/query/filter.rs +0 -0
- {agent_dump-1.2.5 → agent_dump-1.2.6}/crates/agent-dump-core/src/query/mod.rs +0 -0
- {agent_dump-1.2.5 → agent_dump-1.2.6}/crates/agent-dump-core/src/query/read.rs +0 -0
- {agent_dump-1.2.5 → agent_dump-1.2.6}/crates/agent-dump-core/src/query/scanner.rs +0 -0
- {agent_dump-1.2.5 → agent_dump-1.2.6}/crates/agent-dump-core/src/query/text.rs +0 -0
- {agent_dump-1.2.5 → agent_dump-1.2.6}/crates/agent-dump-core/src/query/transcript.rs +0 -0
- {agent_dump-1.2.5 → agent_dump-1.2.6}/crates/agent-dump-core/src/session/assembly.rs +0 -0
- /agent_dump-1.2.5/crates/agent-dump-core/src/session/cache.rs → /agent_dump-1.2.6/crates/agent-dump-core/src/session/cache/mod.rs +0 -0
- {agent_dump-1.2.5 → agent_dump-1.2.6}/crates/agent-dump-core/src/session/cache/tests.rs +0 -0
- {agent_dump-1.2.5 → agent_dump-1.2.6}/crates/agent-dump-core/src/session/mod.rs +0 -0
- {agent_dump-1.2.5 → agent_dump-1.2.6}/crates/agent-dump-core/src/session/timestamp.rs +0 -0
- {agent_dump-1.2.5 → agent_dump-1.2.6}/crates/agent-dump-core/src/storage/mod.rs +0 -0
- {agent_dump-1.2.5 → agent_dump-1.2.6}/crates/agent-dump-core/src/storage/private_files.rs +0 -0
- {agent_dump-1.2.5 → agent_dump-1.2.6}/crates/agent-dump-core/src/storage/source_io.rs +0 -0
- {agent_dump-1.2.5 → agent_dump-1.2.6}/crates/agent-dump-core/src/storage/zstd.rs +0 -0
- {agent_dump-1.2.5 → agent_dump-1.2.6}/resources/locales/en.json +0 -0
- {agent_dump-1.2.5 → agent_dump-1.2.6}/resources/locales/zh.json +0 -0
- {agent_dump-1.2.5 → agent_dump-1.2.6}/resources/prompts/.gitattributes +0 -0
- {agent_dump-1.2.5 → agent_dump-1.2.6}/resources/prompts/README.md +0 -0
- {agent_dump-1.2.5 → agent_dump-1.2.6}/resources/prompts/insight-chunk.txt +0 -0
- {agent_dump-1.2.5 → agent_dump-1.2.6}/resources/prompts/insight-handoff.txt +0 -0
- {agent_dump-1.2.5 → agent_dump-1.2.6}/resources/prompts/insight-merge.txt +0 -0
- {agent_dump-1.2.5 → agent_dump-1.2.6}/resources/prompts/insight-report.txt +0 -0
- {agent_dump-1.2.5 → agent_dump-1.2.6}/resources/prompts/insight-retry.txt +0 -0
- {agent_dump-1.2.5 → agent_dump-1.2.6}/resources/prompts/pm-chunk.txt +0 -0
- {agent_dump-1.2.5 → agent_dump-1.2.6}/resources/prompts/pm-handoff.txt +0 -0
- {agent_dump-1.2.5 → agent_dump-1.2.6}/resources/prompts/pm-merge.txt +0 -0
- {agent_dump-1.2.5 → agent_dump-1.2.6}/resources/prompts/pm-report.txt +0 -0
- {agent_dump-1.2.5 → agent_dump-1.2.6}/resources/prompts/pm-retry.txt +0 -0
- {agent_dump-1.2.5 → agent_dump-1.2.6}/resources/prompts/read-session-en.txt +0 -0
- {agent_dump-1.2.5 → agent_dump-1.2.6}/resources/prompts/read-session-zh.txt +0 -0
- {agent_dump-1.2.5 → agent_dump-1.2.6}/resources/prompts/system.txt +0 -0
- {agent_dump-1.2.5 → agent_dump-1.2.6}/resources/prompts/uri.txt +0 -0
- {agent_dump-1.2.5 → agent_dump-1.2.6}/rust-toolchain.toml +0 -0
- {agent_dump-1.2.5 → agent_dump-1.2.6}/rustfmt.toml +0 -0
- {agent_dump-1.2.5 → agent_dump-1.2.6}/src/collect/mod.rs +0 -0
- {agent_dump-1.2.5 → agent_dump-1.2.6}/src/main.rs +0 -0
- {agent_dump-1.2.5 → agent_dump-1.2.6}/src/terminal/mod.rs +0 -0
|
@@ -10,7 +10,7 @@ checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa"
|
|
|
10
10
|
|
|
11
11
|
[[package]]
|
|
12
12
|
name = "agent-dump"
|
|
13
|
-
version = "1.2.
|
|
13
|
+
version = "1.2.6"
|
|
14
14
|
dependencies = [
|
|
15
15
|
"agent-dump-core",
|
|
16
16
|
"caseless",
|
|
@@ -1398,9 +1398,9 @@ dependencies = [
|
|
|
1398
1398
|
|
|
1399
1399
|
[[package]]
|
|
1400
1400
|
name = "rustls-webpki"
|
|
1401
|
-
version = "0.103.
|
|
1401
|
+
version = "0.103.16"
|
|
1402
1402
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1403
|
-
checksum = "
|
|
1403
|
+
checksum = "4443b1b6d39d7c663139942cc4558262562d2c84123bb6282ef177009ca8b281"
|
|
1404
1404
|
dependencies = [
|
|
1405
1405
|
"ring",
|
|
1406
1406
|
"rustls-pki-types",
|
|
@@ -1415,9 +1415,9 @@ checksum = "cf54715a573b99ac80df0bc206da022bcd442c974952c7b9720069370852e21f"
|
|
|
1415
1415
|
|
|
1416
1416
|
[[package]]
|
|
1417
1417
|
name = "ruzstd"
|
|
1418
|
-
version = "0.9.
|
|
1418
|
+
version = "0.9.1"
|
|
1419
1419
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1420
|
-
checksum = "
|
|
1420
|
+
checksum = "69e4ce4a039f42bf25920b95667e4d789e98749ab11bbb8d2c2936f788421bb5"
|
|
1421
1421
|
|
|
1422
1422
|
[[package]]
|
|
1423
1423
|
name = "ryu"
|
|
@@ -1478,10 +1478,11 @@ dependencies = [
|
|
|
1478
1478
|
|
|
1479
1479
|
[[package]]
|
|
1480
1480
|
name = "serde_json"
|
|
1481
|
-
version = "1.0.
|
|
1481
|
+
version = "1.0.154"
|
|
1482
1482
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1483
|
-
checksum = "
|
|
1483
|
+
checksum = "e7e9cc8b1b85264074fbcc02a88680c4096b1e47df8f739dceb03bf482f04bd6"
|
|
1484
1484
|
dependencies = [
|
|
1485
|
+
"foldhash",
|
|
1485
1486
|
"indexmap",
|
|
1486
1487
|
"itoa",
|
|
1487
1488
|
"memchr",
|
|
@@ -1492,9 +1493,9 @@ dependencies = [
|
|
|
1492
1493
|
|
|
1493
1494
|
[[package]]
|
|
1494
1495
|
name = "sha2"
|
|
1495
|
-
version = "0.11.
|
|
1496
|
+
version = "0.11.1"
|
|
1496
1497
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1497
|
-
checksum = "
|
|
1498
|
+
checksum = "47d7069beb7d6ac7b9acd1039986e73443f24234f41074da099d6f994ac9ad19"
|
|
1498
1499
|
dependencies = [
|
|
1499
1500
|
"cfg-if",
|
|
1500
1501
|
"cpufeatures",
|
|
@@ -1717,18 +1718,18 @@ checksum = "fd3ca314f692efd6c868f8408f53fe444634a845f96c028b97d35f6a1f79f0ee"
|
|
|
1717
1718
|
|
|
1718
1719
|
[[package]]
|
|
1719
1720
|
name = "toml_datetime"
|
|
1720
|
-
version = "1.1.
|
|
1721
|
+
version = "1.1.2+spec-1.1.0"
|
|
1721
1722
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1722
|
-
checksum = "
|
|
1723
|
+
checksum = "2b86d767906c6c42421dcba507eb9d203e779497710a47782a224bb871653053"
|
|
1723
1724
|
dependencies = [
|
|
1724
1725
|
"serde_core",
|
|
1725
1726
|
]
|
|
1726
1727
|
|
|
1727
1728
|
[[package]]
|
|
1728
1729
|
name = "toml_edit"
|
|
1729
|
-
version = "0.25.
|
|
1730
|
+
version = "0.25.17+spec-1.1.0"
|
|
1730
1731
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1731
|
-
checksum = "
|
|
1732
|
+
checksum = "e3641d5bbb5349a79e1020a242d251efbc546ad8048d133958323ce9c40a9c9c"
|
|
1732
1733
|
dependencies = [
|
|
1733
1734
|
"indexmap",
|
|
1734
1735
|
"toml_datetime",
|
|
@@ -1739,18 +1740,18 @@ dependencies = [
|
|
|
1739
1740
|
|
|
1740
1741
|
[[package]]
|
|
1741
1742
|
name = "toml_parser"
|
|
1742
|
-
version = "1.1.
|
|
1743
|
+
version = "1.1.5+spec-1.1.0"
|
|
1743
1744
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1744
|
-
checksum = "
|
|
1745
|
+
checksum = "baa693a8032d7e1cada7d0041e96126df243179ff061456783ac7f12bda4744c"
|
|
1745
1746
|
dependencies = [
|
|
1746
1747
|
"winnow",
|
|
1747
1748
|
]
|
|
1748
1749
|
|
|
1749
1750
|
[[package]]
|
|
1750
1751
|
name = "toml_writer"
|
|
1751
|
-
version = "1.1.
|
|
1752
|
+
version = "1.1.3+spec-1.1.0"
|
|
1752
1753
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1753
|
-
checksum = "
|
|
1754
|
+
checksum = "06bdbd8cfc056b8d2e2e85f29b56a3bdbecb527cef81eb39e3e7b98af4652770"
|
|
1754
1755
|
|
|
1755
1756
|
[[package]]
|
|
1756
1757
|
name = "typenum"
|
|
@@ -1950,9 +1951,9 @@ dependencies = [
|
|
|
1950
1951
|
|
|
1951
1952
|
[[package]]
|
|
1952
1953
|
name = "webpki-roots"
|
|
1953
|
-
version = "1.0.
|
|
1954
|
+
version = "1.0.10"
|
|
1954
1955
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1955
|
-
checksum = "
|
|
1956
|
+
checksum = "1c1c8e20c8a38fc7d65abfe74eb7280e4aa667e8eec8bc84996d2874810748d9"
|
|
1956
1957
|
dependencies = [
|
|
1957
1958
|
"rustls-pki-types",
|
|
1958
1959
|
]
|
|
@@ -9,6 +9,7 @@ unsafe_code = "deny"
|
|
|
9
9
|
all = { level = "deny", priority = -1 }
|
|
10
10
|
pedantic = { level = "deny", priority = -1 }
|
|
11
11
|
nursery = { level = "warn", priority = -1 }
|
|
12
|
+
self_named_module_files = "deny"
|
|
12
13
|
module_name_repetitions = "allow"
|
|
13
14
|
missing_errors_doc = "allow"
|
|
14
15
|
missing_panics_doc = "allow"
|
|
@@ -46,7 +47,7 @@ nix = { version = "0.31", default-features = false, features = ["fs", "user"] }
|
|
|
46
47
|
|
|
47
48
|
[package]
|
|
48
49
|
name = "agent-dump"
|
|
49
|
-
version = "1.2.
|
|
50
|
+
version = "1.2.6"
|
|
50
51
|
edition = "2024"
|
|
51
52
|
rust-version = "1.90"
|
|
52
53
|
publish = false
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agent-dump
|
|
3
|
-
Version: 1.2.
|
|
3
|
+
Version: 1.2.6
|
|
4
4
|
Classifier: Environment :: Console
|
|
5
5
|
Classifier: License :: OSI Approved :: MIT License
|
|
6
6
|
Classifier: Programming Language :: Rust
|
|
@@ -706,7 +706,7 @@ web/ # Landing page
|
|
|
706
706
|
|
|
707
707
|
## Development
|
|
708
708
|
|
|
709
|
-
Rust is the build and runtime implementation starting with v1.0.0, with Ratatui for terminal interaction. The old Python application has been removed from the working tree. CI and `just isok` run Rust behavior contracts without the historical Python CLI.
|
|
709
|
+
Rust is the build and runtime implementation starting with v1.0.0, with Ratatui for terminal interaction. The old Python application has been removed from the working tree. CI and `just isok` run Rust behavior contracts without the historical Python CLI. Paired performance evaluation installs the immutable 0.15.9 wheel in an isolated reference environment through `just reference`. Migration plans and acceptance records remain in Git history. See [project goals](docs/product.md) and [architecture](docs/architecture.md) for the current design.
|
|
710
710
|
|
|
711
711
|
```bash
|
|
712
712
|
# Run Cargo directly from the repository root
|
|
@@ -742,7 +742,7 @@ just build-npm
|
|
|
742
742
|
just test-npm-smoke
|
|
743
743
|
```
|
|
744
744
|
|
|
745
|
-
Both crates inherit workspace lints: unsafe code is denied, Clippy all/pedantic are denied, and nursery warnings fail the gate through `-D warnings`. Explicit exceptions and their reasons are documented in the [development guide](docs/development-guide.md#rust-格式与-lint).
|
|
745
|
+
Both crates inherit workspace lints: unsafe code is denied, Clippy all/pedantic are denied, and nursery warnings fail the gate through `-D warnings`. Explicit exceptions and their reasons are documented in the [development guide](docs/development-guide.md#rust-格式与-lint). CLI contract and tooling tests remain in `tests/`.
|
|
746
746
|
|
|
747
747
|
## Release
|
|
748
748
|
|
|
@@ -682,7 +682,7 @@ web/ # Landing page
|
|
|
682
682
|
|
|
683
683
|
## Development
|
|
684
684
|
|
|
685
|
-
Rust is the build and runtime implementation starting with v1.0.0, with Ratatui for terminal interaction. The old Python application has been removed from the working tree. CI and `just isok` run Rust behavior contracts without the historical Python CLI.
|
|
685
|
+
Rust is the build and runtime implementation starting with v1.0.0, with Ratatui for terminal interaction. The old Python application has been removed from the working tree. CI and `just isok` run Rust behavior contracts without the historical Python CLI. Paired performance evaluation installs the immutable 0.15.9 wheel in an isolated reference environment through `just reference`. Migration plans and acceptance records remain in Git history. See [project goals](docs/product.md) and [architecture](docs/architecture.md) for the current design.
|
|
686
686
|
|
|
687
687
|
```bash
|
|
688
688
|
# Run Cargo directly from the repository root
|
|
@@ -718,7 +718,7 @@ just build-npm
|
|
|
718
718
|
just test-npm-smoke
|
|
719
719
|
```
|
|
720
720
|
|
|
721
|
-
Both crates inherit workspace lints: unsafe code is denied, Clippy all/pedantic are denied, and nursery warnings fail the gate through `-D warnings`. Explicit exceptions and their reasons are documented in the [development guide](docs/development-guide.md#rust-格式与-lint).
|
|
721
|
+
Both crates inherit workspace lints: unsafe code is denied, Clippy all/pedantic are denied, and nursery warnings fail the gate through `-D warnings`. Explicit exceptions and their reasons are documented in the [development guide](docs/development-guide.md#rust-格式与-lint). CLI contract and tooling tests remain in `tests/`.
|
|
722
722
|
|
|
723
723
|
## Release
|
|
724
724
|
|
|
@@ -130,7 +130,11 @@ pub struct Formatter(serde_json::ser::PrettyFormatter<'static>);
|
|
|
130
130
|
|
|
131
131
|
macro_rules! delegate {
|
|
132
132
|
($($name:ident($($argument:ident: $type:ty),*));* $(;)?) => {
|
|
133
|
-
$(fn $name<W: ?Sized + Write>(
|
|
133
|
+
$(fn $name<W: ?Sized + Write>(
|
|
134
|
+
&mut self,
|
|
135
|
+
writer: &mut W,
|
|
136
|
+
$($argument: $type),*
|
|
137
|
+
) -> io::Result<()> {
|
|
134
138
|
self.0.$name(writer, $($argument),*)
|
|
135
139
|
})*
|
|
136
140
|
};
|
|
@@ -157,13 +157,28 @@ impl Diagnostic {
|
|
|
157
157
|
zh: bool,
|
|
158
158
|
) -> Self {
|
|
159
159
|
Self {
|
|
160
|
-
summary: if zh {
|
|
160
|
+
summary: if zh {
|
|
161
|
+
"命令因未预期的错误中止。"
|
|
162
|
+
} else {
|
|
163
|
+
"Command aborted with an unexpected error."
|
|
164
|
+
}
|
|
165
|
+
.into(),
|
|
161
166
|
details: vec![provider_error::operation_message(error, zh)],
|
|
162
167
|
next_steps: if zh {
|
|
163
|
-
[
|
|
168
|
+
[
|
|
169
|
+
"重试一次以确认是否为瞬时故障。",
|
|
170
|
+
"若可稳定复现,请带上上面的错误类型与命令参数提交 issue。",
|
|
171
|
+
]
|
|
164
172
|
} else {
|
|
165
|
-
[
|
|
166
|
-
|
|
173
|
+
[
|
|
174
|
+
"Retry once to check whether the failure is transient.",
|
|
175
|
+
"If it reproduces consistently, open an issue with the \
|
|
176
|
+
error type above and your command arguments.",
|
|
177
|
+
]
|
|
178
|
+
}
|
|
179
|
+
.into_iter()
|
|
180
|
+
.map(str::to_owned)
|
|
181
|
+
.collect(),
|
|
167
182
|
..Self::default()
|
|
168
183
|
}
|
|
169
184
|
}
|
|
@@ -235,7 +250,12 @@ impl Diagnostic {
|
|
|
235
250
|
"检查 URI 中的 session id 是否完整且对应正确 provider。".into(),
|
|
236
251
|
]
|
|
237
252
|
} else {
|
|
238
|
-
vec![
|
|
253
|
+
vec![
|
|
254
|
+
"Run `agent-dump --list` to confirm the session still \
|
|
255
|
+
exists.".into(),
|
|
256
|
+
"Check that the session id in the URI is complete and \
|
|
257
|
+
belongs to that provider.".into(),
|
|
258
|
+
]
|
|
239
259
|
},
|
|
240
260
|
..Self::default()
|
|
241
261
|
}
|
|
@@ -380,8 +400,10 @@ impl Diagnostic {
|
|
|
380
400
|
],
|
|
381
401
|
(false, None) => &[
|
|
382
402
|
"Confirm the agent has produced session data on this machine.",
|
|
383
|
-
"If you use a custom directory, check that the relevant
|
|
384
|
-
|
|
403
|
+
"If you use a custom directory, check that the relevant \
|
|
404
|
+
environment variable points at it.",
|
|
405
|
+
"In a development environment, check whether the \
|
|
406
|
+
`data/<agent>` fallback directory exists.",
|
|
385
407
|
],
|
|
386
408
|
};
|
|
387
409
|
Self {
|
|
@@ -2,7 +2,17 @@ use crate::session::{Part, Session, SessionData};
|
|
|
2
2
|
use std::fmt::Write;
|
|
3
3
|
|
|
4
4
|
const fn unsafe_char(c: char) -> bool {
|
|
5
|
-
matches!(
|
|
5
|
+
matches!(
|
|
6
|
+
c,
|
|
7
|
+
'\u{0}'..='\u{8}'
|
|
8
|
+
| '\u{b}'..='\u{1f}'
|
|
9
|
+
| '\u{7f}'..='\u{9f}'
|
|
10
|
+
| '\u{61c}'
|
|
11
|
+
| '\u{200e}'
|
|
12
|
+
| '\u{200f}'
|
|
13
|
+
| '\u{202a}'..='\u{202e}'
|
|
14
|
+
| '\u{2066}'..='\u{2069}'
|
|
15
|
+
)
|
|
6
16
|
}
|
|
7
17
|
pub fn safe_body(text: &str) -> String {
|
|
8
18
|
let mut safe = String::with_capacity(text.len());
|
|
@@ -181,7 +191,8 @@ pub fn excerpt(
|
|
|
181
191
|
incomplete: bool,
|
|
182
192
|
) -> String {
|
|
183
193
|
let mut output = format!(
|
|
184
|
-
"# Session Context\n\n- URI: `{}`\n- Locator: `{}`\n- Messages: {}–{}
|
|
194
|
+
"# Session Context\n\n- URI: `{}`\n- Locator: `{}`\n- Messages: {}–{} \
|
|
195
|
+
of {}\n- Status: {}\n\n",
|
|
185
196
|
safe_line(uri),
|
|
186
197
|
safe_line(locator),
|
|
187
198
|
range.start + 1,
|
{agent_dump-1.2.5 → agent_dump-1.2.6}/crates/agent-dump-core/src/providers/antigravity_cli/mod.rs
RENAMED
|
@@ -60,7 +60,8 @@ fn read_summaries(
|
|
|
60
60
|
}
|
|
61
61
|
let connection = connect(&path)?;
|
|
62
62
|
let mut statement = connection.prepare(
|
|
63
|
-
"SELECT conversation_id, title, workspace_uris, last_modified_time
|
|
63
|
+
"SELECT conversation_id, title, workspace_uris, last_modified_time \
|
|
64
|
+
FROM conversation_summaries",
|
|
64
65
|
)?;
|
|
65
66
|
let mut rows = statement.query([])?;
|
|
66
67
|
while let Some(row) = rows.next()? {
|
|
@@ -153,7 +154,8 @@ fn session(
|
|
|
153
154
|
impl AntigravityCli {
|
|
154
155
|
#[allow(
|
|
155
156
|
clippy::unnecessary_wraps,
|
|
156
|
-
reason = "Provider factories share the fallible registry interface;
|
|
157
|
+
reason = "Provider factories share the fallible registry interface; \
|
|
158
|
+
source access is deferred"
|
|
157
159
|
)]
|
|
158
160
|
pub fn open() -> crate::Result<Self> {
|
|
159
161
|
Ok(Self {
|
|
@@ -198,7 +200,8 @@ impl AntigravityCli {
|
|
|
198
200
|
source_roots(self)?,
|
|
199
201
|
vec![
|
|
200
202
|
[
|
|
201
|
-
"Confirm the Antigravity CLI conversation database has
|
|
203
|
+
"Confirm the Antigravity CLI conversation database has \
|
|
204
|
+
not been moved or cleaned up.",
|
|
202
205
|
"确认 Antigravity CLI 会话数据库没有被移动或清理。",
|
|
203
206
|
],
|
|
204
207
|
[
|
{agent_dump-1.2.5 → agent_dump-1.2.6}/crates/agent-dump-core/src/providers/antigravity_cli/tests.rs
RENAMED
|
@@ -4,11 +4,14 @@ use rusqlite::Connection;
|
|
|
4
4
|
use serde_json::json;
|
|
5
5
|
|
|
6
6
|
const FIXTURE: &str = "
|
|
7
|
-
CREATE TABLE steps (idx INTEGER PRIMARY KEY, step_type INTEGER NOT NULL,
|
|
7
|
+
CREATE TABLE steps (idx INTEGER PRIMARY KEY, step_type INTEGER NOT NULL, \
|
|
8
|
+
status INTEGER NOT NULL, step_payload BLOB);
|
|
8
9
|
CREATE TABLE gen_metadata (idx INTEGER PRIMARY KEY, data BLOB);
|
|
9
10
|
INSERT INTO steps VALUES (1, 14, 3, X'9a010412024869');
|
|
10
11
|
INSERT INTO steps VALUES (2, 15, 3, X'a201060a04446f6e65');
|
|
11
|
-
INSERT INTO steps VALUES (3, 132, 3,
|
|
12
|
+
INSERT INTO steps VALUES (3, 132, 3, \
|
|
13
|
+
X'2a2322210a0663616c6c2d311209726561645f66696c65\
|
|
14
|
+
1a0c7b2270617468223a2261227d');
|
|
12
15
|
INSERT INTO steps VALUES (4, 23, 3, X'f20109220741207469746c65');
|
|
13
16
|
INSERT INTO steps VALUES (5, 999, 3, X'a00601');
|
|
14
17
|
";
|
|
@@ -52,12 +55,25 @@ fn native_steps_keep_order_tools_titles_and_summary_facts() {
|
|
|
52
55
|
let summaries =
|
|
53
56
|
Connection::open(root.path().join("conversation_summaries.db"))
|
|
54
57
|
.unwrap();
|
|
55
|
-
summaries
|
|
58
|
+
summaries
|
|
59
|
+
.execute_batch(
|
|
60
|
+
"CREATE TABLE conversation_summaries (\
|
|
61
|
+
conversation_id TEXT PRIMARY KEY, title TEXT, \
|
|
62
|
+
workspace_uris TEXT, last_modified_time TEXT, \
|
|
63
|
+
parent_conversation_id TEXT);",
|
|
64
|
+
)
|
|
65
|
+
.unwrap();
|
|
56
66
|
let workspace = root.path().join("agy-fixture");
|
|
57
67
|
summaries
|
|
58
68
|
.execute(
|
|
59
|
-
"INSERT INTO conversation_summaries VALUES
|
|
60
|
-
|
|
69
|
+
"INSERT INTO conversation_summaries VALUES \
|
|
70
|
+
('session', 'Summary title', ?1, \
|
|
71
|
+
'2026-09-02 16:57:28.971105+00:00', '')",
|
|
72
|
+
[json!([
|
|
73
|
+
"not a uri",
|
|
74
|
+
url::Url::from_file_path(&workspace).unwrap().as_str(),
|
|
75
|
+
])
|
|
76
|
+
.to_string()],
|
|
61
77
|
)
|
|
62
78
|
.unwrap();
|
|
63
79
|
let mut provider = provider(root.path());
|
|
@@ -104,11 +120,24 @@ fn native_steps_keep_order_tools_titles_and_summary_facts() {
|
|
|
104
120
|
);
|
|
105
121
|
assert_eq!(
|
|
106
122
|
tool["state"],
|
|
107
|
-
json!({
|
|
123
|
+
json!({
|
|
124
|
+
"status": "unknown",
|
|
125
|
+
"input": {"path": "a"},
|
|
126
|
+
"output": null,
|
|
127
|
+
"metadata": {
|
|
128
|
+
"antigravity_step_type": 132,
|
|
129
|
+
"antigravity_status": 3,
|
|
130
|
+
},
|
|
131
|
+
})
|
|
108
132
|
);
|
|
109
133
|
assert_eq!(
|
|
110
134
|
data["stats"],
|
|
111
|
-
json!({
|
|
135
|
+
json!({
|
|
136
|
+
"total_cost": 0,
|
|
137
|
+
"total_input_tokens": 0,
|
|
138
|
+
"total_output_tokens": 0,
|
|
139
|
+
"message_count": 3,
|
|
140
|
+
})
|
|
112
141
|
);
|
|
113
142
|
assert_eq!(
|
|
114
143
|
provider
|
|
@@ -215,7 +244,13 @@ fn usage_deduplicates_retries_and_attaches_to_the_next_assistant_message() {
|
|
|
215
244
|
assert_eq!(usage["tokens"]["output"], 2);
|
|
216
245
|
assert_eq!(
|
|
217
246
|
data["stats"],
|
|
218
|
-
json!({
|
|
247
|
+
json!({
|
|
248
|
+
"total_cost": 0,
|
|
249
|
+
"total_input_tokens": 193,
|
|
250
|
+
"total_output_tokens": 37,
|
|
251
|
+
"message_count": 5,
|
|
252
|
+
"total_tokens": 230,
|
|
253
|
+
})
|
|
219
254
|
);
|
|
220
255
|
assert_eq!(session.created_at.as_millisecond(), 1_788_000_001_500);
|
|
221
256
|
}
|
|
@@ -286,7 +321,7 @@ fn empty_databases_are_skipped_and_invalid_ones_fail_alone() {
|
|
|
286
321
|
|
|
287
322
|
#[test]
|
|
288
323
|
fn source_selection_retries_absence_and_keeps_selected_root() {
|
|
289
|
-
crate::providers::
|
|
324
|
+
crate::providers::tests::source_selection(
|
|
290
325
|
"conversations",
|
|
291
326
|
false,
|
|
292
327
|
|roots| AntigravityCli { roots },
|
|
@@ -302,7 +302,8 @@ pub struct Claude {
|
|
|
302
302
|
impl Claude {
|
|
303
303
|
#[allow(
|
|
304
304
|
clippy::unnecessary_wraps,
|
|
305
|
-
reason = "Provider factories share the fallible registry interface;
|
|
305
|
+
reason = "Provider factories share the fallible registry interface; \
|
|
306
|
+
source access is deferred"
|
|
306
307
|
)]
|
|
307
308
|
pub fn open(kind: Kind) -> crate::Result<Self> {
|
|
308
309
|
Ok(Self {
|
|
@@ -595,9 +596,14 @@ impl Provider for Claude {
|
|
|
595
596
|
crate::providers::contract::source_roots(self)?,
|
|
596
597
|
vec![
|
|
597
598
|
self.kind.location_hint(),
|
|
598
|
-
[
|
|
599
|
+
[
|
|
600
|
+
"Re-run `agent-dump --list` to confirm the session \
|
|
601
|
+
still exists.",
|
|
602
|
+
"重新运行 `agent-dump --list` 确认该会话是否仍存在。",
|
|
603
|
+
],
|
|
599
604
|
],
|
|
600
|
-
)
|
|
605
|
+
)
|
|
606
|
+
.into());
|
|
601
607
|
}
|
|
602
608
|
crate::providers::claude::transcript::read(
|
|
603
609
|
session,
|
|
@@ -626,7 +632,7 @@ mod tests {
|
|
|
626
632
|
|
|
627
633
|
#[test]
|
|
628
634
|
fn source_selection_retries_absence_and_keeps_selected_root() {
|
|
629
|
-
crate::providers::
|
|
635
|
+
crate::providers::tests::source_selection(
|
|
630
636
|
"projects",
|
|
631
637
|
true,
|
|
632
638
|
|roots| Claude {
|
|
@@ -637,7 +643,15 @@ mod tests {
|
|
|
637
643
|
|base| {
|
|
638
644
|
let path = base.join("project/kept.jsonl");
|
|
639
645
|
std::fs::create_dir_all(path.parent().unwrap()).unwrap();
|
|
640
|
-
std::fs::write(
|
|
646
|
+
std::fs::write(
|
|
647
|
+
&path,
|
|
648
|
+
concat!(
|
|
649
|
+
r#"{"type":"user","timestamp":"2026-01-15T00:00:00Z","#,
|
|
650
|
+
r#""message":{"role":"user","content":"Keep"}}"#,
|
|
651
|
+
"\n",
|
|
652
|
+
),
|
|
653
|
+
)
|
|
654
|
+
.unwrap();
|
|
641
655
|
path
|
|
642
656
|
},
|
|
643
657
|
);
|
|
@@ -654,7 +668,16 @@ mod tests {
|
|
|
654
668
|
] {
|
|
655
669
|
let path = projects.join(project).join(format!("{id}.jsonl"));
|
|
656
670
|
std::fs::create_dir_all(path.parent().unwrap()).unwrap();
|
|
657
|
-
std::fs::write(
|
|
671
|
+
std::fs::write(
|
|
672
|
+
&path,
|
|
673
|
+
serde_json::json!({
|
|
674
|
+
"type": "user",
|
|
675
|
+
"timestamp": "2026-01-15T00:00:00Z",
|
|
676
|
+
"message": {"role": "user", "content": "Fallback"}
|
|
677
|
+
})
|
|
678
|
+
.to_string(),
|
|
679
|
+
)
|
|
680
|
+
.unwrap();
|
|
658
681
|
}
|
|
659
682
|
let index = projects.join("first/sessions-index.json");
|
|
660
683
|
std::fs::write(&index, "[]").unwrap();
|
|
@@ -719,7 +742,16 @@ mod tests {
|
|
|
719
742
|
let directory = tempfile::tempdir().unwrap();
|
|
720
743
|
let path = directory.path().join("projects/project/kept.jsonl");
|
|
721
744
|
std::fs::create_dir_all(path.parent().unwrap()).unwrap();
|
|
722
|
-
std::fs::write(
|
|
745
|
+
std::fs::write(
|
|
746
|
+
&path,
|
|
747
|
+
concat!(
|
|
748
|
+
r#"{"type":"user","sessionId":"kept","#,
|
|
749
|
+
r#""timestamp":"2026-01-15T00:00:00Z","#,
|
|
750
|
+
r#""message":{"role":"user","content":"hello"}}"#,
|
|
751
|
+
"\n",
|
|
752
|
+
),
|
|
753
|
+
)
|
|
754
|
+
.unwrap();
|
|
723
755
|
let provider = Claude {
|
|
724
756
|
kind: Kind::Claude,
|
|
725
757
|
roots: SourceRoots::fixed(
|
|
@@ -730,7 +762,7 @@ mod tests {
|
|
|
730
762
|
),
|
|
731
763
|
titles: HashMap::new(),
|
|
732
764
|
};
|
|
733
|
-
crate::providers::
|
|
765
|
+
crate::providers::tests::removed_file(
|
|
734
766
|
provider,
|
|
735
767
|
&path,
|
|
736
768
|
"kept",
|
{agent_dump-1.2.5 → agent_dump-1.2.6}/crates/agent-dump-core/src/providers/codex/enrichment.rs
RENAMED
|
@@ -22,7 +22,15 @@ static CONTEXT_BLOCK: LazyLock<Regex> = LazyLock::new(|| {
|
|
|
22
22
|
.map(|tag| format!("<{tag}>.*?</{tag}>"))
|
|
23
23
|
.collect::<Vec<_>>()
|
|
24
24
|
.join("|");
|
|
25
|
-
Regex::new(&format!(
|
|
25
|
+
Regex::new(&format!(
|
|
26
|
+
concat!(
|
|
27
|
+
r"(?is)\A(?:# AGENTS\.md instructions for [^\r\n]+\r?\n",
|
|
28
|
+
r"(?:[ \t]*\r?\n)*)?",
|
|
29
|
+
r"(?:{blocks})(?:[ \t]*\r?\n)*",
|
|
30
|
+
),
|
|
31
|
+
blocks = blocks,
|
|
32
|
+
))
|
|
33
|
+
.unwrap()
|
|
26
34
|
});
|
|
27
35
|
|
|
28
36
|
pub fn inner_tag<'a>(text: &'a str, tag: &str) -> Option<&'a str> {
|
|
@@ -222,9 +230,13 @@ pub fn json_payload(data: &SessionData) -> SessionData {
|
|
|
222
230
|
skill_index += 1;
|
|
223
231
|
}
|
|
224
232
|
for message in &mut payload.messages {
|
|
225
|
-
message
|
|
226
|
-
|
|
227
|
-
|
|
233
|
+
message.parts.retain(|part| {
|
|
234
|
+
!matches!(
|
|
235
|
+
part,
|
|
236
|
+
Part::Tool(tool)
|
|
237
|
+
if tool.tool.rsplit('.').next() == Some("wait_agent")
|
|
238
|
+
)
|
|
239
|
+
});
|
|
228
240
|
if message
|
|
229
241
|
.parts
|
|
230
242
|
.iter()
|
|
@@ -454,7 +454,12 @@ mod tests {
|
|
|
454
454
|
json!([
|
|
455
455
|
{"type":"text","text":"boom","time_created":7},
|
|
456
456
|
{"type":"image","mime_type":"image/png","data":"AAAA","time_created":7},
|
|
457
|
-
{
|
|
457
|
+
{
|
|
458
|
+
"type":"image",
|
|
459
|
+
"mime_type":null,
|
|
460
|
+
"data":"https://example.test/a.png",
|
|
461
|
+
"time_created":7
|
|
462
|
+
}
|
|
458
463
|
])
|
|
459
464
|
);
|
|
460
465
|
assert_eq!(
|