transcript-search-tool — read-only search over a ConversationStore (SPEC.md
§7E "Memory hierarchy" → transcript search). The ground-truth tier of agent
memory: a dreaming persona checks its notes against what actually happened,
not against its own notes.
Positions and lengths are in CODE POINTS. Neither host's count answers that
(UTF-16 units on the JVM, runes on cljgo), so text is handled here as a vector
of one-code-point STRINGS — code-point-strings — which compares, slices and
re-joins identically everywhere without a code-point -> string encoder.
No java.*, no reader conditionals.
`transcript-search-tool` — read-only search over a ConversationStore (SPEC.md §7E "Memory hierarchy" → transcript search). The ground-truth tier of agent memory: a dreaming persona checks its notes against what actually happened, not against its own notes. Positions and lengths are in CODE POINTS. Neither host's `count` answers that (UTF-16 units on the JVM, runes on cljgo), so text is handled here as a vector of one-code-point STRINGS — `code-point-strings` — which compares, slices and re-joins identically everywhere without a code-point -> string encoder. No java.*, no reader conditionals.
(code-point-strings s)s as a vector of strings, one code point each. A surrogate pair (JVM) stays
together; on a rune-indexed host every character already is one code point.
`s` as a vector of strings, one code point each. A surrogate pair (JVM) stays together; on a rune-indexed host every character already is one code point.
The tool description (§7E, exact).
The tool description (§7E, exact).
(message-text msg)The searchable text of one stored message (§7E): string content, text parts,
tool_use input as compact JSON, tool_result content (recursively), then each
OpenAI tool call's arguments string — joined by "\n", then normalized.
The searchable text of one stored message (§7E): string content, text parts, tool_use input as compact JSON, tool_result content (recursively), then each OpenAI tool call's `arguments` string — joined by "\n", then normalized.
(transcript-search-tool store)(transcript-search-tool store opts)A read-only Tool over store (§7E). Construction throws unless the store has
:list. Input {query, conversationId?, limit?}; output one line per hit,
<conversationId>#<index> <role>: <snippet>, no matches when none, and a
trailing (+<k> more) when hits exceed the limit. Never writes.
Options: :max-results (default 20), :snippet-chars (default 200, code
points), :name (default transcript_search).
A read-only Tool over `store` (§7E). Construction throws unless the store has
`:list`. Input `{query, conversationId?, limit?}`; output one line per hit,
`<conversationId>#<index> <role>: <snippet>`, `no matches` when none, and a
trailing `(+<k> more)` when hits exceed the limit. Never writes.
Options: `:max-results` (default 20), `:snippet-chars` (default 200, code
points), `:name` (default `transcript_search`).cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |