@nhtio/adk 1.20260607.2 → 1.20260609.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/CHANGELOG.md +185 -0
- package/batteries/embeddings/openai/adapter.cjs +1 -1
- package/batteries/embeddings/openai/adapter.mjs +1 -1
- package/batteries/embeddings/openai/exceptions.cjs +1 -1
- package/batteries/embeddings/openai/exceptions.mjs +1 -1
- package/batteries/embeddings/openai/types.d.ts +7 -0
- package/batteries/embeddings/webllm/adapter.cjs +1 -1
- package/batteries/embeddings/webllm/adapter.mjs +1 -1
- package/batteries/embeddings/webllm/exceptions.cjs +1 -1
- package/batteries/embeddings/webllm/exceptions.mjs +1 -1
- package/batteries/llm/chat_common/helpers.d.ts +165 -0
- package/batteries/llm/chat_common/types.d.ts +309 -0
- package/batteries/llm/index.d.ts +5 -0
- package/batteries/llm/ollama/adapter.cjs +736 -0
- package/batteries/llm/ollama/adapter.cjs.map +1 -0
- package/batteries/llm/ollama/adapter.d.ts +64 -0
- package/batteries/llm/ollama/adapter.mjs +734 -0
- package/batteries/llm/ollama/adapter.mjs.map +1 -0
- package/batteries/llm/ollama/exceptions.cjs +105 -0
- package/batteries/llm/ollama/exceptions.cjs.map +1 -0
- package/batteries/llm/ollama/exceptions.d.ts +112 -0
- package/batteries/llm/ollama/exceptions.mjs +96 -0
- package/batteries/llm/ollama/exceptions.mjs.map +1 -0
- package/batteries/llm/ollama/helpers.cjs +487 -0
- package/batteries/llm/ollama/helpers.cjs.map +1 -0
- package/batteries/llm/ollama/helpers.d.ts +158 -0
- package/batteries/llm/ollama/helpers.mjs +450 -0
- package/batteries/llm/ollama/helpers.mjs.map +1 -0
- package/batteries/llm/ollama/index.d.ts +29 -0
- package/batteries/llm/ollama/types.cjs +2 -0
- package/batteries/llm/ollama/types.d.ts +334 -0
- package/batteries/llm/ollama/types.mjs +0 -0
- package/batteries/llm/ollama/validation.cjs +130 -0
- package/batteries/llm/ollama/validation.cjs.map +1 -0
- package/batteries/llm/ollama/validation.d.ts +31 -0
- package/batteries/llm/ollama/validation.mjs +127 -0
- package/batteries/llm/ollama/validation.mjs.map +1 -0
- package/batteries/llm/ollama.cjs +54 -0
- package/batteries/llm/ollama.mjs +6 -0
- package/batteries/llm/openai_chat_completions/adapter.cjs +36 -19
- package/batteries/llm/openai_chat_completions/adapter.cjs.map +1 -1
- package/batteries/llm/openai_chat_completions/adapter.mjs +23 -6
- package/batteries/llm/openai_chat_completions/adapter.mjs.map +1 -1
- package/batteries/llm/openai_chat_completions/exceptions.cjs +1 -1
- package/batteries/llm/openai_chat_completions/exceptions.mjs +1 -1
- package/batteries/llm/openai_chat_completions/helpers.cjs +80 -320
- package/batteries/llm/openai_chat_completions/helpers.cjs.map +1 -1
- package/batteries/llm/openai_chat_completions/helpers.d.ts +68 -144
- package/batteries/llm/openai_chat_completions/helpers.mjs +40 -280
- package/batteries/llm/openai_chat_completions/helpers.mjs.map +1 -1
- package/batteries/llm/openai_chat_completions/types.d.ts +273 -181
- package/batteries/llm/openai_chat_completions/validation.cjs +2 -2
- package/batteries/llm/openai_chat_completions/validation.cjs.map +1 -1
- package/batteries/llm/openai_chat_completions/validation.mjs +2 -2
- package/batteries/llm/openai_chat_completions/validation.mjs.map +1 -1
- package/batteries/llm/openai_chat_completions.cjs +29 -28
- package/batteries/llm/openai_chat_completions.mjs +2 -1
- package/batteries/llm/webllm_chat_completions/adapter.cjs +38 -19
- package/batteries/llm/webllm_chat_completions/adapter.cjs.map +1 -1
- package/batteries/llm/webllm_chat_completions/adapter.d.ts +18 -0
- package/batteries/llm/webllm_chat_completions/adapter.mjs +25 -6
- package/batteries/llm/webllm_chat_completions/adapter.mjs.map +1 -1
- package/batteries/llm/webllm_chat_completions/exceptions.cjs +1 -1
- package/batteries/llm/webllm_chat_completions/exceptions.mjs +1 -1
- package/batteries/llm/webllm_chat_completions/helpers.cjs +29 -28
- package/batteries/llm/webllm_chat_completions/helpers.mjs +2 -1
- package/batteries/llm/webllm_chat_completions/types.d.ts +21 -0
- package/batteries/llm/webllm_chat_completions/validation.cjs +13 -1
- package/batteries/llm/webllm_chat_completions/validation.cjs.map +1 -1
- package/batteries/llm/webllm_chat_completions/validation.d.ts +12 -0
- package/batteries/llm/webllm_chat_completions/validation.mjs +13 -1
- package/batteries/llm/webllm_chat_completions/validation.mjs.map +1 -1
- package/batteries/llm/webllm_chat_completions.cjs +29 -28
- package/batteries/llm/webllm_chat_completions.mjs +2 -1
- package/batteries/llm.cjs +44 -28
- package/batteries/llm.mjs +9 -4
- package/batteries/storage/flydrive.cjs +1 -1
- package/batteries/storage/flydrive.mjs +1 -1
- package/batteries/storage/in_memory/index.d.ts +1 -1
- package/batteries/storage/in_memory.cjs +2 -2
- package/batteries/storage/in_memory.cjs.map +1 -1
- package/batteries/storage/in_memory.mjs +2 -2
- package/batteries/storage/in_memory.mjs.map +1 -1
- package/batteries/storage/opfs/index.d.ts +19 -0
- package/batteries/storage/opfs.cjs +1 -1
- package/batteries/storage/opfs.cjs.map +1 -1
- package/batteries/storage/opfs.mjs +1 -1
- package/batteries/storage/opfs.mjs.map +1 -1
- package/batteries/tools/color.cjs +3 -2
- package/batteries/tools/color.cjs.map +1 -1
- package/batteries/tools/color.mjs +3 -2
- package/batteries/tools/color.mjs.map +1 -1
- package/batteries/tools/comparison.cjs +4 -3
- package/batteries/tools/comparison.cjs.map +1 -1
- package/batteries/tools/comparison.mjs +4 -3
- package/batteries/tools/comparison.mjs.map +1 -1
- package/batteries/tools/data_structure.cjs +30 -10
- package/batteries/tools/data_structure.cjs.map +1 -1
- package/batteries/tools/data_structure.mjs +30 -10
- package/batteries/tools/data_structure.mjs.map +1 -1
- package/batteries/tools/datetime_extended.cjs +5 -10
- package/batteries/tools/datetime_extended.cjs.map +1 -1
- package/batteries/tools/datetime_extended.mjs +5 -10
- package/batteries/tools/datetime_extended.mjs.map +1 -1
- package/batteries/tools/datetime_math.cjs +2 -2
- package/batteries/tools/datetime_math.mjs +2 -2
- package/batteries/tools/encoding.cjs +13 -4
- package/batteries/tools/encoding.cjs.map +1 -1
- package/batteries/tools/encoding.mjs +13 -4
- package/batteries/tools/encoding.mjs.map +1 -1
- package/batteries/tools/formatting.cjs +4 -4
- package/batteries/tools/formatting.cjs.map +1 -1
- package/batteries/tools/formatting.mjs +4 -4
- package/batteries/tools/formatting.mjs.map +1 -1
- package/batteries/tools/geo_basics.cjs +2 -2
- package/batteries/tools/geo_basics.mjs +2 -2
- package/batteries/tools/index.d.ts +1 -0
- package/batteries/tools/math.cjs +10 -8
- package/batteries/tools/math.cjs.map +1 -1
- package/batteries/tools/math.mjs +10 -8
- package/batteries/tools/math.mjs.map +1 -1
- package/batteries/tools/memory.cjs +5 -5
- package/batteries/tools/memory.mjs +5 -5
- package/batteries/tools/parsing.cjs +9 -5
- package/batteries/tools/parsing.cjs.map +1 -1
- package/batteries/tools/parsing.mjs +9 -5
- package/batteries/tools/parsing.mjs.map +1 -1
- package/batteries/tools/retrievables.cjs +4 -4
- package/batteries/tools/retrievables.mjs +4 -4
- package/batteries/tools/searxng/exceptions.d.ts +21 -0
- package/batteries/tools/searxng/index.d.ts +150 -0
- package/batteries/tools/searxng.cjs +5 -0
- package/batteries/tools/searxng.mjs +2 -0
- package/batteries/tools/standing_instructions.cjs +4 -4
- package/batteries/tools/standing_instructions.mjs +4 -4
- package/batteries/tools/statistics.cjs +54 -43
- package/batteries/tools/statistics.cjs.map +1 -1
- package/batteries/tools/statistics.mjs +54 -43
- package/batteries/tools/statistics.mjs.map +1 -1
- package/batteries/tools/string_processing.cjs +5 -5
- package/batteries/tools/string_processing.cjs.map +1 -1
- package/batteries/tools/string_processing.mjs +5 -5
- package/batteries/tools/string_processing.mjs.map +1 -1
- package/batteries/tools/structured_data.cjs +8 -13
- package/batteries/tools/structured_data.cjs.map +1 -1
- package/batteries/tools/structured_data.mjs +8 -13
- package/batteries/tools/structured_data.mjs.map +1 -1
- package/batteries/tools/text_analysis.cjs +3 -3
- package/batteries/tools/text_analysis.mjs +3 -3
- package/batteries/tools/text_comparison.cjs +2 -2
- package/batteries/tools/text_comparison.mjs +2 -2
- package/batteries/tools/time.cjs +2 -2
- package/batteries/tools/time.mjs +2 -2
- package/batteries/tools/unit_conversion.cjs +10 -8
- package/batteries/tools/unit_conversion.cjs.map +1 -1
- package/batteries/tools/unit_conversion.mjs +10 -8
- package/batteries/tools/unit_conversion.mjs.map +1 -1
- package/batteries/tools.cjs +3 -0
- package/batteries/tools.mjs +2 -1
- package/batteries/vector/arangodb/index.d.ts +2 -0
- package/batteries/vector/arangodb.cjs +2 -1
- package/batteries/vector/arangodb.cjs.map +1 -1
- package/batteries/vector/arangodb.mjs +2 -1
- package/batteries/vector/arangodb.mjs.map +1 -1
- package/batteries/vector/builder.cjs +31 -0
- package/batteries/vector/builder.cjs.map +1 -1
- package/batteries/vector/builder.d.ts +58 -0
- package/batteries/vector/builder.mjs +31 -0
- package/batteries/vector/builder.mjs.map +1 -1
- package/batteries/vector/chroma/index.d.ts +4 -0
- package/batteries/vector/chroma.cjs +3 -0
- package/batteries/vector/chroma.cjs.map +1 -1
- package/batteries/vector/chroma.mjs +3 -0
- package/batteries/vector/chroma.mjs.map +1 -1
- package/batteries/vector/clickhouse/index.d.ts +2 -0
- package/batteries/vector/clickhouse.cjs +2 -1
- package/batteries/vector/clickhouse.cjs.map +1 -1
- package/batteries/vector/clickhouse.mjs +2 -1
- package/batteries/vector/clickhouse.mjs.map +1 -1
- package/batteries/vector/cloudflare/index.d.ts +2 -0
- package/batteries/vector/cloudflare.cjs +2 -1
- package/batteries/vector/cloudflare.cjs.map +1 -1
- package/batteries/vector/cloudflare.mjs +2 -1
- package/batteries/vector/cloudflare.mjs.map +1 -1
- package/batteries/vector/conformance/index.d.ts +22 -0
- package/batteries/vector/conformance.cjs +22 -0
- package/batteries/vector/conformance.cjs.map +1 -1
- package/batteries/vector/conformance.mjs +22 -0
- package/batteries/vector/conformance.mjs.map +1 -1
- package/batteries/vector/contract.cjs +22 -0
- package/batteries/vector/contract.cjs.map +1 -1
- package/batteries/vector/contract.d.ts +51 -0
- package/batteries/vector/contract.mjs +22 -0
- package/batteries/vector/contract.mjs.map +1 -1
- package/batteries/vector/couchbase/index.d.ts +2 -0
- package/batteries/vector/couchbase.cjs +2 -1
- package/batteries/vector/couchbase.cjs.map +1 -1
- package/batteries/vector/couchbase.mjs +2 -1
- package/batteries/vector/couchbase.mjs.map +1 -1
- package/batteries/vector/duckdb/index.d.ts +2 -0
- package/batteries/vector/duckdb.cjs +2 -1
- package/batteries/vector/duckdb.cjs.map +1 -1
- package/batteries/vector/duckdb.mjs +2 -1
- package/batteries/vector/duckdb.mjs.map +1 -1
- package/batteries/vector/elasticsearch/index.d.ts +2 -0
- package/batteries/vector/elasticsearch.cjs +2 -1
- package/batteries/vector/elasticsearch.cjs.map +1 -1
- package/batteries/vector/elasticsearch.mjs +2 -1
- package/batteries/vector/elasticsearch.mjs.map +1 -1
- package/batteries/vector/exceptions.cjs +1 -1
- package/batteries/vector/exceptions.mjs +1 -1
- package/batteries/vector/factory.cjs +6 -0
- package/batteries/vector/factory.cjs.map +1 -1
- package/batteries/vector/factory.d.ts +14 -0
- package/batteries/vector/factory.mjs +6 -0
- package/batteries/vector/factory.mjs.map +1 -1
- package/batteries/vector/filters.cjs +22 -1
- package/batteries/vector/filters.cjs.map +1 -1
- package/batteries/vector/filters.d.ts +38 -0
- package/batteries/vector/filters.mjs +22 -1
- package/batteries/vector/filters.mjs.map +1 -1
- package/batteries/vector/helpers.cjs +13 -0
- package/batteries/vector/helpers.cjs.map +1 -1
- package/batteries/vector/helpers.d.ts +14 -0
- package/batteries/vector/helpers.mjs +13 -0
- package/batteries/vector/helpers.mjs.map +1 -1
- package/batteries/vector/hnswlib/index.d.ts +2 -0
- package/batteries/vector/hnswlib.cjs +2 -1
- package/batteries/vector/hnswlib.cjs.map +1 -1
- package/batteries/vector/hnswlib.mjs +2 -1
- package/batteries/vector/hnswlib.mjs.map +1 -1
- package/batteries/vector/in_memory/index.d.ts +1 -0
- package/batteries/vector/in_memory.cjs +1 -0
- package/batteries/vector/in_memory.cjs.map +1 -1
- package/batteries/vector/in_memory.mjs +1 -0
- package/batteries/vector/in_memory.mjs.map +1 -1
- package/batteries/vector/lancedb/index.d.ts +2 -0
- package/batteries/vector/lancedb.cjs +2 -1
- package/batteries/vector/lancedb.cjs.map +1 -1
- package/batteries/vector/lancedb.mjs +2 -1
- package/batteries/vector/lancedb.mjs.map +1 -1
- package/batteries/vector/mariadb/index.d.ts +2 -0
- package/batteries/vector/mariadb.cjs +2 -1
- package/batteries/vector/mariadb.cjs.map +1 -1
- package/batteries/vector/mariadb.mjs +2 -1
- package/batteries/vector/mariadb.mjs.map +1 -1
- package/batteries/vector/meilisearch/index.d.ts +2 -0
- package/batteries/vector/meilisearch.cjs +2 -1
- package/batteries/vector/meilisearch.cjs.map +1 -1
- package/batteries/vector/meilisearch.mjs +2 -1
- package/batteries/vector/meilisearch.mjs.map +1 -1
- package/batteries/vector/migrate.cjs +18 -1
- package/batteries/vector/migrate.cjs.map +1 -1
- package/batteries/vector/migrate.d.ts +31 -0
- package/batteries/vector/migrate.mjs +18 -1
- package/batteries/vector/migrate.mjs.map +1 -1
- package/batteries/vector/milvus/index.d.ts +5 -0
- package/batteries/vector/milvus.cjs +4 -0
- package/batteries/vector/milvus.cjs.map +1 -1
- package/batteries/vector/milvus.mjs +4 -0
- package/batteries/vector/milvus.mjs.map +1 -1
- package/batteries/vector/mongodb/index.d.ts +2 -0
- package/batteries/vector/mongodb.cjs +2 -1
- package/batteries/vector/mongodb.cjs.map +1 -1
- package/batteries/vector/mongodb.mjs +2 -1
- package/batteries/vector/mongodb.mjs.map +1 -1
- package/batteries/vector/neo4j/index.d.ts +2 -0
- package/batteries/vector/neo4j.cjs +2 -1
- package/batteries/vector/neo4j.cjs.map +1 -1
- package/batteries/vector/neo4j.mjs +2 -1
- package/batteries/vector/neo4j.mjs.map +1 -1
- package/batteries/vector/opensearch/index.d.ts +2 -0
- package/batteries/vector/opensearch.cjs +2 -1
- package/batteries/vector/opensearch.cjs.map +1 -1
- package/batteries/vector/opensearch.mjs +2 -1
- package/batteries/vector/opensearch.mjs.map +1 -1
- package/batteries/vector/oracle23ai/index.d.ts +2 -0
- package/batteries/vector/oracle23ai.cjs +2 -1
- package/batteries/vector/oracle23ai.cjs.map +1 -1
- package/batteries/vector/oracle23ai.mjs +2 -1
- package/batteries/vector/oracle23ai.mjs.map +1 -1
- package/batteries/vector/orama/index.d.ts +1 -0
- package/batteries/vector/orama.cjs +1 -0
- package/batteries/vector/orama.cjs.map +1 -1
- package/batteries/vector/orama.mjs +1 -0
- package/batteries/vector/orama.mjs.map +1 -1
- package/batteries/vector/pgvector/index.d.ts +9 -2
- package/batteries/vector/pgvector.cjs +4 -0
- package/batteries/vector/pgvector.cjs.map +1 -1
- package/batteries/vector/pgvector.mjs +4 -0
- package/batteries/vector/pgvector.mjs.map +1 -1
- package/batteries/vector/pinecone/index.d.ts +5 -0
- package/batteries/vector/pinecone.cjs +3 -1
- package/batteries/vector/pinecone.cjs.map +1 -1
- package/batteries/vector/pinecone.mjs +3 -1
- package/batteries/vector/pinecone.mjs.map +1 -1
- package/batteries/vector/plan.d.ts +27 -0
- package/batteries/vector/qdrant/index.d.ts +5 -0
- package/batteries/vector/qdrant.cjs +4 -0
- package/batteries/vector/qdrant.cjs.map +1 -1
- package/batteries/vector/qdrant.mjs +4 -0
- package/batteries/vector/qdrant.mjs.map +1 -1
- package/batteries/vector/redis/index.d.ts +2 -0
- package/batteries/vector/redis.cjs +2 -1
- package/batteries/vector/redis.cjs.map +1 -1
- package/batteries/vector/redis.mjs +2 -1
- package/batteries/vector/redis.mjs.map +1 -1
- package/batteries/vector/retrievable.cjs +9 -1
- package/batteries/vector/retrievable.cjs.map +1 -1
- package/batteries/vector/retrievable.mjs +9 -1
- package/batteries/vector/retrievable.mjs.map +1 -1
- package/batteries/vector/retrievable_glue.d.ts +21 -0
- package/batteries/vector/s3vectors/index.d.ts +2 -0
- package/batteries/vector/s3vectors.cjs +2 -1
- package/batteries/vector/s3vectors.cjs.map +1 -1
- package/batteries/vector/s3vectors.mjs +2 -1
- package/batteries/vector/s3vectors.mjs.map +1 -1
- package/batteries/vector/schema.cjs +28 -0
- package/batteries/vector/schema.cjs.map +1 -1
- package/batteries/vector/schema.d.ts +39 -0
- package/batteries/vector/schema.mjs +28 -0
- package/batteries/vector/schema.mjs.map +1 -1
- package/batteries/vector/solr/index.d.ts +2 -0
- package/batteries/vector/solr.cjs +2 -1
- package/batteries/vector/solr.cjs.map +1 -1
- package/batteries/vector/solr.mjs +2 -1
- package/batteries/vector/solr.mjs.map +1 -1
- package/batteries/vector/sqlite_vec/index.d.ts +6 -3
- package/batteries/vector/sqlite_vec.cjs +2 -0
- package/batteries/vector/sqlite_vec.cjs.map +1 -1
- package/batteries/vector/sqlite_vec.mjs +2 -0
- package/batteries/vector/sqlite_vec.mjs.map +1 -1
- package/batteries/vector/surrealdb/index.d.ts +2 -0
- package/batteries/vector/surrealdb.cjs +2 -1
- package/batteries/vector/surrealdb.cjs.map +1 -1
- package/batteries/vector/surrealdb.mjs +2 -1
- package/batteries/vector/surrealdb.mjs.map +1 -1
- package/batteries/vector/types.d.ts +27 -0
- package/batteries/vector/typesense/index.d.ts +2 -0
- package/batteries/vector/typesense.cjs +2 -1
- package/batteries/vector/typesense.cjs.map +1 -1
- package/batteries/vector/typesense.mjs +2 -1
- package/batteries/vector/typesense.mjs.map +1 -1
- package/batteries/vector/validation.cjs +14 -0
- package/batteries/vector/validation.cjs.map +1 -1
- package/batteries/vector/validation.d.ts +14 -0
- package/batteries/vector/validation.mjs +14 -0
- package/batteries/vector/validation.mjs.map +1 -1
- package/batteries/vector/vector_store_constructor.cjs +1 -1
- package/batteries/vector/vector_store_constructor.cjs.map +1 -1
- package/batteries/vector/vector_store_constructor.d.ts +1 -1
- package/batteries/vector/vector_store_constructor.mjs +1 -1
- package/batteries/vector/vector_store_constructor.mjs.map +1 -1
- package/batteries/vector/vespa/index.d.ts +2 -0
- package/batteries/vector/vespa.cjs +2 -1
- package/batteries/vector/vespa.cjs.map +1 -1
- package/batteries/vector/vespa.mjs +2 -1
- package/batteries/vector/vespa.mjs.map +1 -1
- package/batteries/vector/weaviate/index.d.ts +2 -0
- package/batteries/vector/weaviate.cjs +2 -1
- package/batteries/vector/weaviate.cjs.map +1 -1
- package/batteries/vector/weaviate.mjs +2 -1
- package/batteries/vector/weaviate.mjs.map +1 -1
- package/batteries.cjs +46 -28
- package/batteries.mjs +10 -5
- package/{common-BT0nfCi9.mjs → common-DYDUi99O.mjs} +9 -9
- package/common-DYDUi99O.mjs.map +1 -0
- package/{common-Cj8TaQ9U.js → common-DZl3ADJs.js} +9 -9
- package/common-DZl3ADJs.js.map +1 -0
- package/common.cjs +7 -7
- package/common.d.ts +1 -1
- package/common.mjs +7 -7
- package/{dispatch_runner-DPcS7Y_M.mjs → dispatch_runner--ZhdDWRZ.mjs} +27 -5
- package/{dispatch_runner-DPcS7Y_M.mjs.map → dispatch_runner--ZhdDWRZ.mjs.map} +1 -1
- package/{dispatch_runner-BHBNupqp.js → dispatch_runner-nHDKkxye.js} +27 -5
- package/{dispatch_runner-BHBNupqp.js.map → dispatch_runner-nHDKkxye.js.map} +1 -1
- package/dispatch_runner.cjs +1 -1
- package/dispatch_runner.d.ts +1 -1
- package/dispatch_runner.mjs +1 -1
- package/eslint/rules/artifact_tool_forbids_artifact_constructor.cjs +1 -0
- package/eslint/rules/artifact_tool_forbids_artifact_constructor.cjs.map +1 -1
- package/eslint/rules/artifact_tool_forbids_artifact_constructor.d.ts +1 -0
- package/eslint/rules/artifact_tool_forbids_artifact_constructor.mjs +1 -0
- package/eslint/rules/artifact_tool_forbids_artifact_constructor.mjs.map +1 -1
- package/eslint/rules/no_model_in_tool_handler.cjs +1 -0
- package/eslint/rules/no_model_in_tool_handler.cjs.map +1 -1
- package/eslint/rules/no_model_in_tool_handler.d.ts +1 -0
- package/eslint/rules/no_model_in_tool_handler.mjs +1 -0
- package/eslint/rules/no_model_in_tool_handler.mjs.map +1 -1
- package/eslint/rules/require_validator_any_required.cjs +1 -0
- package/eslint/rules/require_validator_any_required.cjs.map +1 -1
- package/eslint/rules/require_validator_any_required.d.ts +1 -0
- package/eslint/rules/require_validator_any_required.mjs +1 -0
- package/eslint/rules/require_validator_any_required.mjs.map +1 -1
- package/eslint/rules/thought_payload_requires_replay_tag.cjs +1 -0
- package/eslint/rules/thought_payload_requires_replay_tag.cjs.map +1 -1
- package/eslint/rules/thought_payload_requires_replay_tag.d.ts +1 -0
- package/eslint/rules/thought_payload_requires_replay_tag.mjs +1 -0
- package/eslint/rules/thought_payload_requires_replay_tag.mjs.map +1 -1
- package/eslint/rules/token_encoding_requires_context_window.cjs +1 -0
- package/eslint/rules/token_encoding_requires_context_window.cjs.map +1 -1
- package/eslint/rules/token_encoding_requires_context_window.d.ts +1 -0
- package/eslint/rules/token_encoding_requires_context_window.mjs +1 -0
- package/eslint/rules/token_encoding_requires_context_window.mjs.map +1 -1
- package/eslint.cjs +1 -1
- package/eslint.mjs +1 -1
- package/{exceptions-BeWH2FwP.mjs → exceptions-BDhN0Xzr.mjs} +3 -2
- package/exceptions-BDhN0Xzr.mjs.map +1 -0
- package/{exceptions-CitH5wZI.js → exceptions-BRXrUKiW.js} +3 -2
- package/exceptions-BRXrUKiW.js.map +1 -0
- package/exceptions.cjs +2 -2
- package/exceptions.mjs +2 -2
- package/factories.cjs +1 -1
- package/factories.mjs +1 -1
- package/forge.cjs +4 -4
- package/forge.d.ts +1 -1
- package/forge.mjs +4 -4
- package/guards.cjs +9 -9
- package/guards.mjs +9 -9
- package/helpers-DSTFxTiC.js +497 -0
- package/helpers-DSTFxTiC.js.map +1 -0
- package/helpers-xhrQbMAG.mjs +306 -0
- package/helpers-xhrQbMAG.mjs.map +1 -0
- package/index.cjs +13 -13
- package/index.mjs +13 -13
- package/lib/classes/base_exception.d.ts +1 -0
- package/lib/classes/media.d.ts +10 -0
- package/lib/classes/retrievable.d.ts +1 -1
- package/lib/classes/spooled_json_artifact.d.ts +1 -1
- package/lib/classes/spooled_markdown_artifact.d.ts +1 -0
- package/lib/classes/tokenizable.d.ts +3 -0
- package/lib/classes/tool.d.ts +8 -0
- package/lib/classes/turn_gate.d.ts +6 -0
- package/lib/dispatch_runner.d.ts +4 -32
- package/lib/helpers/bignum.cjs +82 -0
- package/lib/helpers/bignum.cjs.map +1 -0
- package/lib/helpers/bignum.d.ts +52 -0
- package/lib/helpers/bignum.mjs +74 -0
- package/lib/helpers/bignum.mjs.map +1 -0
- package/lib/turn_runner.d.ts +1 -1
- package/lib/types/dispatch_runner.d.ts +83 -0
- package/lib/utils/exceptions.d.ts +1 -1
- package/lib/utils/retry.cjs.map +1 -1
- package/lib/utils/retry.d.ts +2 -0
- package/lib/utils/retry.mjs.map +1 -1
- package/mcp/adk-docs-corpus.json +1 -1
- package/package.json +264 -224
- package/{runtime-j92CNi5z.mjs → runtime-Bz5zA8wc.mjs} +2 -2
- package/{runtime-j92CNi5z.mjs.map → runtime-Bz5zA8wc.mjs.map} +1 -1
- package/{runtime-MFFcJrRv.js → runtime-DslE1aBw.js} +2 -2
- package/{runtime-MFFcJrRv.js.map → runtime-DslE1aBw.js.map} +1 -1
- package/searxng-Bkrwhwhw.js +269 -0
- package/searxng-Bkrwhwhw.js.map +1 -0
- package/searxng-CyA-nEu5.mjs +257 -0
- package/searxng-CyA-nEu5.mjs.map +1 -0
- package/skills/adk-assembly/SKILL.md +2 -2
- package/{spooled_artifact-CHoZgWwI.mjs → spooled_artifact-7eePq7JA.mjs} +5 -5
- package/{spooled_artifact-CHoZgWwI.mjs.map → spooled_artifact-7eePq7JA.mjs.map} +1 -1
- package/{spooled_artifact-BTq6Nzfy.js → spooled_artifact-DX8LLyUX.js} +5 -5
- package/{spooled_artifact-BTq6Nzfy.js.map → spooled_artifact-DX8LLyUX.js.map} +1 -1
- package/spooled_artifact.cjs +2 -2
- package/spooled_artifact.mjs +2 -2
- package/{spooled_markdown_artifact-CALSDxIx.js → spooled_markdown_artifact-ClX72lek.js} +4 -4
- package/spooled_markdown_artifact-ClX72lek.js.map +1 -0
- package/{spooled_markdown_artifact-Ci5UL7l4.mjs → spooled_markdown_artifact-wkrBF3oX.mjs} +4 -4
- package/spooled_markdown_artifact-wkrBF3oX.mjs.map +1 -0
- package/{thought-D34QQZZ9.mjs → thought-B_vxAiKU.mjs} +5 -5
- package/{thought-D34QQZZ9.mjs.map → thought-B_vxAiKU.mjs.map} +1 -1
- package/{thought-BbwhJ1wb.js → thought-DLwpF7MI.js} +5 -5
- package/{thought-BbwhJ1wb.js.map → thought-DLwpF7MI.js.map} +1 -1
- package/{tool-CVyZkFC7.js → tool-D5WGVIcI.js} +4 -4
- package/{tool-CVyZkFC7.js.map → tool-D5WGVIcI.js.map} +1 -1
- package/{tool-CMhaDRNd.mjs → tool-wMYMVl60.mjs} +4 -4
- package/{tool-CMhaDRNd.mjs.map → tool-wMYMVl60.mjs.map} +1 -1
- package/{tool_call-CV5qVNlb.mjs → tool_call-B4-_-vjG.mjs} +5 -5
- package/tool_call-B4-_-vjG.mjs.map +1 -0
- package/{tool_call-Db68hB7y.js → tool_call-DixVlW40.js} +5 -5
- package/tool_call-DixVlW40.js.map +1 -0
- package/{tool_registry-D1pSSlsd.mjs → tool_registry-791Vrjtf.mjs} +4 -3
- package/tool_registry-791Vrjtf.mjs.map +1 -0
- package/{tool_registry-DYUYqXvo.js → tool_registry-CKJPze3j.js} +4 -3
- package/tool_registry-CKJPze3j.js.map +1 -0
- package/{turn_runner-DqWHNP80.js → turn_runner-HXImLGIn.js} +7 -7
- package/turn_runner-HXImLGIn.js.map +1 -0
- package/{turn_runner-fg1Wc3dK.mjs → turn_runner-ZyYO-Kti.mjs} +7 -7
- package/turn_runner-ZyYO-Kti.mjs.map +1 -0
- package/turn_runner.cjs +1 -1
- package/turn_runner.mjs +1 -1
- package/types.d.ts +1 -1
- package/common-BT0nfCi9.mjs.map +0 -1
- package/common-Cj8TaQ9U.js.map +0 -1
- package/exceptions-BeWH2FwP.mjs.map +0 -1
- package/exceptions-CitH5wZI.js.map +0 -1
- package/spooled_markdown_artifact-CALSDxIx.js.map +0 -1
- package/spooled_markdown_artifact-Ci5UL7l4.mjs.map +0 -1
- package/tool_call-CV5qVNlb.mjs.map +0 -1
- package/tool_call-Db68hB7y.js.map +0 -1
- package/tool_registry-D1pSSlsd.mjs.map +0 -1
- package/tool_registry-DYUYqXvo.js.map +0 -1
- package/turn_runner-DqWHNP80.js.map +0 -1
- package/turn_runner-fg1Wc3dK.mjs.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,191 @@ All notable changes to `@nhtio/adk` are documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## 2026-06-09
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
|
|
12
|
+
- **OpenAI Chat Completions battery now accepts `reasoning_effort: 'none'`.** The request
|
|
13
|
+
validator constrained `reasoning_effort` to `['minimal', 'low', 'medium', 'high']` and rejects
|
|
14
|
+
unknown top-level keys (`.unknown(false)`), so there was no way to send `none` — the documented
|
|
15
|
+
value Ollama's OpenAI-compatible `/v1/chat/completions` needs to turn a thinking model's (e.g.
|
|
16
|
+
Gemma's) reasoning **off**. `'none'` is now in the enum (and the `reasoning_effort` type union);
|
|
17
|
+
it flows to the wire through the existing body-assembly passthrough, and the strict-unknown-key
|
|
18
|
+
protection is unchanged. The WebLLM battery is unaffected — upstream WebLLM has no
|
|
19
|
+
`reasoning_effort` field and disables thinking via `extra_body.enable_thinking`, already an open
|
|
20
|
+
passthrough there.
|
|
21
|
+
|
|
22
|
+
- **OpenAI Chat Completions battery now retries transport failures (HTTP status 0).** When `fetch`
|
|
23
|
+
rejected before any HTTP response arrived (DNS failure, connection refused, TLS error, socket
|
|
24
|
+
drop), the adapter immediately `nack`'d with status 0 **without consulting `retry.maxAttempts`** —
|
|
25
|
+
so a single transient network blip killed the turn even when retries were configured. The
|
|
26
|
+
transport-failure branch now retries with backoff up to `maxAttempts` before surfacing the error,
|
|
27
|
+
matching the request-timeout branch beside it and the sibling embeddings adapter. Governed by the
|
|
28
|
+
existing `retry.maxAttempts` knob; `retriableStatuses` is untouched (it gates HTTP responses,
|
|
29
|
+
which transport errors never produce).
|
|
30
|
+
|
|
31
|
+
- **Bundled deterministic tools now do exactly what their descriptions say.** A correctness audit
|
|
32
|
+
of the 17 deterministic tool batteries (`src/batteries/tools/*`) — driven by a schema-fuzzing
|
|
33
|
+
invariant harness and two independent model reviews, with every finding verified against the
|
|
34
|
+
running tool — surfaced a class of defects where a tool would throw an unexpected runtime error,
|
|
35
|
+
refuse work it advertised, or silently return a wrong value. All are fixed; each tool was changed
|
|
36
|
+
to meet its label (no description or test was weakened to match broken behaviour):
|
|
37
|
+
- **`json_transform`** — `top_n` returned the wrong end of the range (comparator inverted; `desc`
|
|
38
|
+
now returns the largest *n*, `asc` the smallest); `unique_by` never deduplicated object/array
|
|
39
|
+
key values (reference-identity `Set` → now value-serialised); `sum` over a non-numeric array
|
|
40
|
+
silently returned `0` (now a clear error); a `null` operation entry crashed the dispatch (now a
|
|
41
|
+
clean schema rejection).
|
|
42
|
+
- **`compare_records`** — a nested array and an integer-keyed object (`[1,2]` vs `{"0":1,"1":2}`)
|
|
43
|
+
were reported equal; they are now distinct.
|
|
44
|
+
- **`color_contrast` / `color_scheme` / `color_adjust`** — `hexToRgb` accepted hex strings with
|
|
45
|
+
trailing non-hex characters (`#1Z2Z3Z` → silent `rgb(1,2,3)`); invalid hex is now rejected.
|
|
46
|
+
- **`string_transform`** — `reverse` split astral characters/emoji into broken surrogate halves
|
|
47
|
+
(`A💥B` now reverses to `B💥A`); `slug` destroyed non-decomposing Latin-1 letters (`føtex` →
|
|
48
|
+
`f-tex`), now transliterated (`fotex`).
|
|
49
|
+
- **`parse_yaml`** — an empty/whitespace/BOM-only document returned a non-string (`undefined`),
|
|
50
|
+
now `null`; `.NaN` / `.inf` / `-.inf` were silently corrupted to `null`, now preserved.
|
|
51
|
+
- **`format_table`** — null/primitive rows threw; they now render empty cells or return a clear
|
|
52
|
+
"provide columns" error.
|
|
53
|
+
- **`format_list`** — an unbounded `indent` threw `RangeError`; it is now clamped to 100.
|
|
54
|
+
- **`evaluate_katex`** — scientific notation (`2e3`) misparsed, and `\log_b(x)` change-of-base
|
|
55
|
+
produced malformed output; both now evaluate correctly.
|
|
56
|
+
- **`encode_text`** — HTML-entity decoding of astral code points used `String.fromCharCode`
|
|
57
|
+
(truncating to 16 bits); `🎉` / `🎉` now decode to 🎉 via `String.fromCodePoint`.
|
|
58
|
+
- **`date_period`** — fiscal-quarter boundaries spanning the calendar-year boundary were computed
|
|
59
|
+
in the wrong year (e.g. FY-Feb, `2024-01-15` → now correctly `2023-11-01`).
|
|
60
|
+
- **`convert_unit`** — temperatures below absolute zero are now rejected instead of silently
|
|
61
|
+
returned.
|
|
62
|
+
- **`calculate`** — a non-finite scalar result (`1/0`, `2^5000`) now returns a clear error rather
|
|
63
|
+
than printing `Result: Infinity`.
|
|
64
|
+
|
|
65
|
+
- **Updated three stale functional tests to the corrected `stats_describe` contract.** The
|
|
66
|
+
`statistics`/`flydrive` through-runner tests still passed `stats_describe`'s `numbers` as a JSON
|
|
67
|
+
**string** and asserted numeric `mean`/`sum` — both invalidated by the tool-correctness pass above,
|
|
68
|
+
which retyped `numbers` to a real array (restoring NaN/∞/`>2^53` rejection) and emits computed
|
|
69
|
+
aggregates as precision-formatted BigNumber **strings**. The tests now pass actual arrays and
|
|
70
|
+
assert the string-valued aggregates; no production behaviour changed.
|
|
71
|
+
|
|
72
|
+
### Added
|
|
73
|
+
|
|
74
|
+
- **SearXNG search tool battery (`@nhtio/adk/batteries/tools/searxng`).** A web-search tool for any
|
|
75
|
+
[SearXNG](https://docs.searxng.org/dev/search_api.html) instance, exposed via a **factory** —
|
|
76
|
+
`createSearxngSearchTool(config)` — rather than a ready-made constant. It is the first
|
|
77
|
+
factory-style tool battery: a search tool has to know *which* instance to query and is usually
|
|
78
|
+
behind custom authentication, so it needs per-deployment config that cannot be baked in at module
|
|
79
|
+
load. Because it exports a factory (not a `Tool`), it must not be bulk-registered via
|
|
80
|
+
`Object.values(batteries)` — call the factory first, then register the returned tool.
|
|
81
|
+
- **Custom-header auth** — `config.headers` accepts a static `Record<string,string>` or a
|
|
82
|
+
sync/async resolver (`() => headers | Promise<headers>`); the resolver runs on every search, so
|
|
83
|
+
refreshable bearer tokens work. Caller headers override the default `Accept`/`User-Agent`.
|
|
84
|
+
- **Two-level output-format control** — `config.resultFormat: 'normalized' | 'raw' | 'either'`
|
|
85
|
+
(default `'either'`). Pinning it forces the shape AND removes the model-facing `format` arg from
|
|
86
|
+
the schema; leaving it neutral lets the model choose per call. `normalized` trims each result to
|
|
87
|
+
`{title,url,content,engine,score,publishedDate}` plus non-empty `answers`/`infoboxes`/
|
|
88
|
+
`suggestions`/`corrections`; `raw` returns the full SearXNG JSON.
|
|
89
|
+
- **Input/output middleware pipelines** — `config.inputPipeline` / `config.outputPipeline` are
|
|
90
|
+
onion middleware `(ctx, next)` built on `@nhtio/middleware`. Input stages mutate the
|
|
91
|
+
query/params/headers before the request or `ctx.shortCircuit(string)` to skip the fetch (cache
|
|
92
|
+
hit); output stages filter/re-rank `ctx.results`, mutate `ctx.raw`, or set `ctx.output` verbatim
|
|
93
|
+
(e.g. rendered markdown). A `ctx.stash` Map carries across both; a fresh runner is minted per
|
|
94
|
+
invocation (middleware runners are single-use).
|
|
95
|
+
- **Configurable spool artifact** — `config.artifactConstructor` (default `() => SpooledJsonArtifact`)
|
|
96
|
+
is passed straight through to the `Tool`; set `() => SpooledMarkdownArtifact` or
|
|
97
|
+
`() => SpooledArtifact` to match a custom `outputPipeline` render.
|
|
98
|
+
- **Graceful failures** — a disabled-JSON instance (SearXNG disables JSON by default → HTTP 403),
|
|
99
|
+
network errors, timeouts, and thrown pipeline stages all return `Error:` strings the model can
|
|
100
|
+
react to; only malformed args throw (`E_INVALID_TOOL_ARGS`). Invalid config throws the
|
|
101
|
+
battery-scoped `E_INVALID_SEARXNG_CONFIG` at factory-call time.
|
|
102
|
+
- Documented as a featured-battery page, with a TypeDoc `@warning` recording the upstream quirk
|
|
103
|
+
that SearXNG's `number_of_results` is frequently `0` even when results exist
|
|
104
|
+
([searxng#2987](https://github.com/searxng/searxng/issues/2987),
|
|
105
|
+
[searxng#2457](https://github.com/searxng/searxng/issues/2457)) — the tool passes it through
|
|
106
|
+
verbatim; use `results.length`. Covered by a cross-env unit spec (stubbed `fetch`, all three
|
|
107
|
+
artifact types round-tripped) and an env-gated live integration spec
|
|
108
|
+
(`TEST_SEARXNG_URL` / `TEST_SEARXNG_HEADERS`).
|
|
109
|
+
|
|
110
|
+
- **Documentation-coverage gate (`bin/doc_coverage.ts`, `pnpm run doc:coverage`).** A standalone
|
|
111
|
+
helper that bootstraps TypeDoc read-only over the same entrypoints the published docs use
|
|
112
|
+
(`bin/utils/index.ts` `getEntries`) and reports every public API symbol missing a TSDoc comment,
|
|
113
|
+
grouped by its deepest `@module` submodule. Modes: a human report (default), `--json`, `--ci`
|
|
114
|
+
(non-zero exit when any non-allowlisted symbol is undocumented — wired into CI as a job, currently
|
|
115
|
+
`allow_failure: true`), `--hook` (emits a Claude Code `additionalContext` envelope and always exits
|
|
116
|
+
0), and `--primary` (audits `@primaryExport` placement). The shared `blockTags` list moved to an
|
|
117
|
+
exported `BLOCK_TAGS` const so the helper and `makeApiDocs` never drift. **The entire public API
|
|
118
|
+
surface is now documented — the gate reports zero undocumented symbols.** Every interface,
|
|
119
|
+
type, class member, options field, wire shape, and exported function across the LLM, vector,
|
|
120
|
+
embeddings, storage, and ESLint-rule batteries carries an accurate TSDoc comment.
|
|
121
|
+
|
|
122
|
+
The API-doc build is also link-clean: every TypeDoc cross-reference now resolves. Types that
|
|
123
|
+
documented symbols referenced but that were not themselves exported are now public —
|
|
124
|
+
`ArtifactConstructorResolver` (`@nhtio/adk/forge`), the four `DispatchRetrievable*Fn` callback
|
|
125
|
+
types (`@nhtio/adk/types`), and the pgvector / sqlite-vec adapter options interfaces, renamed for
|
|
126
|
+
consistency with the other 24 adapters to `PgVectorStoreOptions` and
|
|
127
|
+
`SqliteVecVectorStoreOptions`. Vendor types referenced in comments (`BigNumber`, `Set`, `Disk`)
|
|
128
|
+
now link to their upstream docs via `externalSymbolLinkMappings`, and broken `{@link}` targets
|
|
129
|
+
(wrong or non-exported names) were corrected. The internal, sentinel-gated `DispatchRunner`
|
|
130
|
+
constructor is marked `@internal` (construct via the static `DispatchRunner.dispatch`).
|
|
131
|
+
|
|
132
|
+
- **Native Ollama LLM battery (`@nhtio/adk/batteries/llm/ollama`).** Ships `OllamaAdapter`, an
|
|
133
|
+
executor targeting Ollama's **native `/api/chat`** endpoint — distinct from pointing the OpenAI
|
|
134
|
+
Chat Completions battery at `/v1`, which it complements rather than replaces. Works with both
|
|
135
|
+
local Ollama (`http://localhost:11434`, no auth — the default `baseURL`) and cloud Ollama
|
|
136
|
+
(`https://ollama.com`, `apiKey` → `Authorization: Bearer`); only `baseURL` plus the auth header
|
|
137
|
+
differ. Native-only capabilities the `/v1` compat layer cannot express are first-class: per-request
|
|
138
|
+
context size via the nested `options.num_ctx`, native reasoning via `think`
|
|
139
|
+
(`boolean | 'low' | 'medium' | 'high'`) surfaced as `message.thinking`, structured output via
|
|
140
|
+
`format` (`'json'` or a JSON schema), and model lifecycle via `keep_alive`. Generation params live
|
|
141
|
+
in a nested `options` block (not at the top level, unlike the OpenAI wire). The adapter parses
|
|
142
|
+
NDJSON streaming (terminated by `done: true`, no `[DONE]` sentinel), takes tool-call `arguments` as
|
|
143
|
+
a JSON object (no `JSON.parse`), labels tool-result history messages with `tool_name` (not
|
|
144
|
+
`tool_call_id`), and follows every cross-battery design rule (trust-framed envelopes, per-tool
|
|
145
|
+
trust, swappable helpers, `ctx.stash.ollama` per-iteration overrides, `ToolCall.inline` handling,
|
|
146
|
+
trust-tier-distinct buckets). Native `/api/chat` carries images only; other modalities route
|
|
147
|
+
through `unsupportedMediaPolicy`. `tool_choice` is intentionally unsupported (native `/api/chat`
|
|
148
|
+
has no such field). Ollama is HTTP-only — Unix-socket deployments are reached via a bridge or a
|
|
149
|
+
custom `fetch`.
|
|
150
|
+
|
|
151
|
+
- **Dedicated generation-stats observability channel on `DispatchRunner`.** Executors can emit
|
|
152
|
+
provider-agnostic generation accounting (token counts, nanosecond durations, finish reason, model,
|
|
153
|
+
provider, plus the raw provider object) via a new `helpers.reportGenerationStats(stats)` method;
|
|
154
|
+
the runner enriches each record with `dispatchId` / `iteration` / `emittedAt` and fires it on a new
|
|
155
|
+
`generationStats` observability hook (subscribe through `observers.generationStats`). This is
|
|
156
|
+
additive and non-breaking — `DispatchExecutorHelpers` is runner-produced, so existing executors
|
|
157
|
+
gain the method without change. The native Ollama battery emits its terminal-chunk stats through
|
|
158
|
+
this channel; the new `GenerationStats` / `GenerationStatsEvent` types are exported from
|
|
159
|
+
`@nhtio/adk/dispatch_runner`.
|
|
160
|
+
|
|
161
|
+
- **Shared Chat-family helper submodule.** The wire-shape-agnostic translation helpers (trust
|
|
162
|
+
envelopes, memory/retrievable/standing-instruction rendering, system-prompt assembly, JSON-schema
|
|
163
|
+
and function-tool conversion, thought filtering) were extracted to an internal
|
|
164
|
+
`src/batteries/llm/chat_common` module shared by the OpenAI Chat Completions and native Ollama
|
|
165
|
+
batteries. Behaviour-preserving: every existing `@nhtio/adk/batteries/llm/openai_chat_completions`
|
|
166
|
+
helper export keeps its name and value identity (the battery re-exports the shared names), and the
|
|
167
|
+
WebLLM battery is untouched. The shared module is internal — not a public package subpath.
|
|
168
|
+
|
|
169
|
+
- **NDJSON cassette support in the cross-env test harness.** `tests/_fixtures/cassette.ts` gained an
|
|
170
|
+
`ndjson` response mode (parallel to the existing SSE `sse` mode) plus Ollama-native programmatic
|
|
171
|
+
builders (`buildOllamaChatResponse`, `buildOllamaStreamFrames`, `singleOllamaResponseCassette`,
|
|
172
|
+
`singleOllamaStreamCassette`) for deterministic native-wire replay.
|
|
173
|
+
|
|
174
|
+
- **Arbitrary-precision numeric handling across the math tools.** A shared
|
|
175
|
+
`src/lib/helpers/bignum.ts` (a BigNumber-configured `mathjs` instance) backs the numeric
|
|
176
|
+
batteries so float64 limitations no longer corrupt results: large in-range sums stay exact
|
|
177
|
+
instead of overflowing to `Infinity`, tiny ratios don't underflow to `0`, and precision is
|
|
178
|
+
preserved end-to-end (`sum([0.1, 0.2]) → 0.3`). `statistics`, `data_structure`, and
|
|
179
|
+
`unit_conversion` now compute aggregates/conversions through it. The `statistics` tools take
|
|
180
|
+
typed number arrays (`validator.array().items(validator.number())`) instead of JSON strings —
|
|
181
|
+
restoring schema rejection of `NaN`/`Infinity`/`> 2^53` at the boundary and removing the prior
|
|
182
|
+
silent-drop behaviour. Tools that format numeric output gained an optional `precision` argument
|
|
183
|
+
(significant digits, default 8). **This changes those tool signatures and some output shapes**
|
|
184
|
+
(computed aggregates may be precision-formatted strings).
|
|
185
|
+
|
|
186
|
+
- **Tool correctness test infrastructure.** A `callTool` helper in
|
|
187
|
+
`tests/_fixtures/tool_ctx_stub.ts` captures a tool invocation's resolve-vs-throw outcome as a
|
|
188
|
+
value (making the no-crash contract directly assertable), and a new
|
|
189
|
+
`tests/unit/batteries/tools/fuzz.node.spec.ts` invariant harness introspects every bundled tool's
|
|
190
|
+
schema, feeds adversarial input, and asserts each call either resolves to a string/`Uint8Array`
|
|
191
|
+
or rejects with `E_INVALID_TOOL_ARGS` — never any other throw.
|
|
192
|
+
|
|
8
193
|
## 2026-06-07
|
|
9
194
|
|
|
10
195
|
### Added
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
require("../../../chunk-Ble4zEEl.js");
|
|
3
|
-
const require_tool_registry = require("../../../tool_registry-
|
|
3
|
+
const require_tool_registry = require("../../../tool_registry-CKJPze3j.js");
|
|
4
4
|
require("../../../guards.cjs");
|
|
5
5
|
const require_lib_utils_retry = require("../../../lib/utils/retry.cjs");
|
|
6
6
|
const require_batteries_embeddings_openai_exceptions = require("./exceptions.cjs");
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { o as isError } from "../../../tool_registry-
|
|
1
|
+
import { o as isError } from "../../../tool_registry-791Vrjtf.mjs";
|
|
2
2
|
import "../../../guards.mjs";
|
|
3
3
|
import { computeBackoff, parseRetryAfter, sleepWithJitter } from "../../../lib/utils/retry.mjs";
|
|
4
4
|
import { E_OPENAI_EMBEDDINGS_HTTP_ERROR, E_OPENAI_EMBEDDINGS_MALFORMED_RESPONSE, E_OPENAI_EMBEDDINGS_REQUEST_TIMEOUT } from "./exceptions.mjs";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
require("../../../chunk-Ble4zEEl.js");
|
|
3
|
-
const require_exceptions = require("../../../exceptions-
|
|
3
|
+
const require_exceptions = require("../../../exceptions-BRXrUKiW.js");
|
|
4
4
|
require("../../../factories.cjs");
|
|
5
5
|
//#region src/batteries/embeddings/openai/exceptions.ts
|
|
6
6
|
/**
|
|
@@ -105,19 +105,26 @@ export interface OpenAIEmbeddingsAdapterOptions extends BaseEmbeddingsAdapterOpt
|
|
|
105
105
|
* The JSON request body POSTed to `/v1/embeddings`.
|
|
106
106
|
*/
|
|
107
107
|
export interface OpenAIEmbeddingsRequestBody {
|
|
108
|
+
/** ID of the embedding model to use. */
|
|
108
109
|
model: string;
|
|
110
|
+
/** The batch of texts to embed. */
|
|
109
111
|
input: string[];
|
|
112
|
+
/** Wire encoding for the returned vectors; always `'float'`. */
|
|
110
113
|
encoding_format: 'float';
|
|
114
|
+
/** Optional output dimensionality for models that support truncation. */
|
|
111
115
|
dimensions?: number;
|
|
112
116
|
}
|
|
113
117
|
/**
|
|
114
118
|
* The relevant subset of the `/v1/embeddings` JSON response shape.
|
|
115
119
|
*/
|
|
116
120
|
export interface OpenAIEmbeddingsResponseBody {
|
|
121
|
+
/** The embedding vectors, each tagged with its input `index`. */
|
|
117
122
|
data: Array<{
|
|
118
123
|
embedding: number[];
|
|
119
124
|
index: number;
|
|
120
125
|
}>;
|
|
126
|
+
/** Model that produced the embeddings. */
|
|
121
127
|
model?: string;
|
|
128
|
+
/** Object type reported by the API (e.g. `'list'`). */
|
|
122
129
|
object?: string;
|
|
123
130
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
require("../../../chunk-Ble4zEEl.js");
|
|
3
|
-
const require_tool_registry = require("../../../tool_registry-
|
|
3
|
+
const require_tool_registry = require("../../../tool_registry-CKJPze3j.js");
|
|
4
4
|
require("../../../guards.cjs");
|
|
5
5
|
const require_batteries_embeddings_openai_helpers = require("../openai/helpers.cjs");
|
|
6
6
|
const require_batteries_embeddings_webllm_exceptions = require("./exceptions.cjs");
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { o as isError } from "../../../tool_registry-
|
|
1
|
+
import { o as isError } from "../../../tool_registry-791Vrjtf.mjs";
|
|
2
2
|
import "../../../guards.mjs";
|
|
3
3
|
import { applyEmbeddingPrefix } from "../openai/helpers.mjs";
|
|
4
4
|
import { E_INVALID_WEBLLM_EMBEDDINGS_OPTIONS, E_WEBLLM_EMBEDDINGS_ENGINE_ERROR } from "./exceptions.mjs";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
require("../../../chunk-Ble4zEEl.js");
|
|
3
|
-
const require_exceptions = require("../../../exceptions-
|
|
3
|
+
const require_exceptions = require("../../../exceptions-BRXrUKiW.js");
|
|
4
4
|
require("../../../factories.cjs");
|
|
5
5
|
//#region src/batteries/embeddings/webllm/exceptions.ts
|
|
6
6
|
/**
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wire-shape-agnostic translation helpers shared across the Chat-family LLM batteries.
|
|
3
|
+
*
|
|
4
|
+
* @remarks
|
|
5
|
+
* INTERNAL to the bundled LLM batteries — intentionally **not** `@module`-tagged, so it stays a
|
|
6
|
+
* private, inlined module (see the note in `./types`). These helpers turn ADK primitives into
|
|
7
|
+
* plain strings (or the family-identical JSON Schema / function-tool wire), independent of any
|
|
8
|
+
* single battery's message-object shape. The OpenAI Chat Completions battery and the native Ollama
|
|
9
|
+
* battery both re-export every name here from their own `helpers.ts` barrels (each under its
|
|
10
|
+
* unprefixed name AND a `default*` alias) so consumer override composition is unchanged.
|
|
11
|
+
*
|
|
12
|
+
* Helpers that compose other helpers receive their dependents via explicit `deps` arguments typed
|
|
13
|
+
* against {@link ChatHelpersCommon} — never against a battery-specific helper bag — so this module
|
|
14
|
+
* carries no import edge back to any individual battery.
|
|
15
|
+
*/
|
|
16
|
+
import type { Tool, ArtifactTool, Tokenizable, Memory, Thought, Retrievable } from "../../../common";
|
|
17
|
+
import type { ChatCompletionsBucketOrder, ChatCompletionsTool, DescriptionLike, JsonSchema, MemoryAttrs, RetrievableAttrs, StandingInstructionAttrs, ThoughtAttrs, TrustedContentAttrs, UntrustedContentAttrs, ChatHelpersCommon } from "./types";
|
|
18
|
+
export declare const escapeXmlAttribute: (value: string) => string;
|
|
19
|
+
export declare const memoryToAttrs: (m: Memory) => {
|
|
20
|
+
memory: Memory;
|
|
21
|
+
attrs: MemoryAttrs;
|
|
22
|
+
};
|
|
23
|
+
export declare const retrievableToAttrs: (r: Retrievable) => {
|
|
24
|
+
retrievable: Retrievable;
|
|
25
|
+
attrs: RetrievableAttrs;
|
|
26
|
+
};
|
|
27
|
+
export declare const sanitiseNameField: (raw: string) => string;
|
|
28
|
+
/** Implements {@link ChatHelpersCommon.descriptionToChatCompletionsJsonSchema}. */
|
|
29
|
+
export declare const descriptionToChatCompletionsJsonSchema: (d: DescriptionLike) => JsonSchema;
|
|
30
|
+
/** Default JSON-Schema renderer; alias of {@link descriptionToChatCompletionsJsonSchema}. */
|
|
31
|
+
export declare const defaultDescriptionToChatCompletionsJsonSchema: (d: DescriptionLike) => JsonSchema;
|
|
32
|
+
/** Implements {@link ChatHelpersCommon.renderUntrustedContent}. */
|
|
33
|
+
export declare const renderUntrustedContent: (content: string, attrs: UntrustedContentAttrs) => string;
|
|
34
|
+
/** Default untrusted-content renderer; alias of {@link renderUntrustedContent}. */
|
|
35
|
+
export declare const defaultRenderUntrustedContent: (content: string, attrs: UntrustedContentAttrs) => string;
|
|
36
|
+
/** Implements {@link ChatHelpersCommon.renderTrustedContent}. */
|
|
37
|
+
export declare const renderTrustedContent: (content: string, attrs: TrustedContentAttrs) => string;
|
|
38
|
+
/** Default trusted-content renderer; alias of {@link renderTrustedContent}. */
|
|
39
|
+
export declare const defaultRenderTrustedContent: (content: string, attrs: TrustedContentAttrs) => string;
|
|
40
|
+
/** Implements {@link ChatHelpersCommon.renderStandingInstructions}. */
|
|
41
|
+
export declare const renderStandingInstructions: (items: Iterable<Tokenizable>, attrs?: StandingInstructionAttrs) => string;
|
|
42
|
+
/** Default standing-instructions renderer; alias of {@link renderStandingInstructions}. */
|
|
43
|
+
export declare const defaultRenderStandingInstructions: (items: Iterable<Tokenizable>, attrs?: StandingInstructionAttrs) => string;
|
|
44
|
+
/** Implements {@link ChatHelpersCommon.renderMemories}. */
|
|
45
|
+
export declare const renderMemories: (items: Iterable<{
|
|
46
|
+
memory: Memory;
|
|
47
|
+
attrs: MemoryAttrs;
|
|
48
|
+
}>) => string;
|
|
49
|
+
/** Default memories renderer; alias of {@link renderMemories}. */
|
|
50
|
+
export declare const defaultRenderMemories: (items: Iterable<{
|
|
51
|
+
memory: Memory;
|
|
52
|
+
attrs: MemoryAttrs;
|
|
53
|
+
}>) => string;
|
|
54
|
+
/** Implements {@link ChatHelpersCommon.renderRetrievableSafetyDirective}. */
|
|
55
|
+
export declare const renderRetrievableSafetyDirective: () => string;
|
|
56
|
+
/** Default safety-directive renderer; alias of {@link renderRetrievableSafetyDirective}. */
|
|
57
|
+
export declare const defaultRenderRetrievableSafetyDirective: () => string;
|
|
58
|
+
/** Implements {@link ChatHelpersCommon.renderFirstPartyRetrievables}. */
|
|
59
|
+
export declare const renderFirstPartyRetrievables: (items: Iterable<{
|
|
60
|
+
retrievable: Retrievable;
|
|
61
|
+
attrs: RetrievableAttrs;
|
|
62
|
+
}>) => Promise<string>;
|
|
63
|
+
/** Default first-party retrievables renderer; alias of {@link renderFirstPartyRetrievables}. */
|
|
64
|
+
export declare const defaultRenderFirstPartyRetrievables: (items: Iterable<{
|
|
65
|
+
retrievable: Retrievable;
|
|
66
|
+
attrs: RetrievableAttrs;
|
|
67
|
+
}>) => Promise<string>;
|
|
68
|
+
/** Implements {@link ChatHelpersCommon.renderThirdPartyPublicRetrievables}. */
|
|
69
|
+
export declare const renderThirdPartyPublicRetrievables: (items: Iterable<{
|
|
70
|
+
retrievable: Retrievable;
|
|
71
|
+
attrs: RetrievableAttrs;
|
|
72
|
+
}>, deps: {
|
|
73
|
+
renderUntrustedContent: ChatHelpersCommon["renderUntrustedContent"];
|
|
74
|
+
}) => Promise<string>;
|
|
75
|
+
/** Default third-party-public retrievables renderer; alias of {@link renderThirdPartyPublicRetrievables}. */
|
|
76
|
+
export declare const defaultRenderThirdPartyPublicRetrievables: (items: Iterable<{
|
|
77
|
+
retrievable: Retrievable;
|
|
78
|
+
attrs: RetrievableAttrs;
|
|
79
|
+
}>, deps: {
|
|
80
|
+
renderUntrustedContent: ChatHelpersCommon["renderUntrustedContent"];
|
|
81
|
+
}) => Promise<string>;
|
|
82
|
+
/** Implements {@link ChatHelpersCommon.renderThirdPartyPrivateRetrievables}. */
|
|
83
|
+
export declare const renderThirdPartyPrivateRetrievables: (items: Iterable<{
|
|
84
|
+
retrievable: Retrievable;
|
|
85
|
+
attrs: RetrievableAttrs;
|
|
86
|
+
}>, deps: {
|
|
87
|
+
renderUntrustedContent: ChatHelpersCommon["renderUntrustedContent"];
|
|
88
|
+
}) => Promise<string>;
|
|
89
|
+
/** Default third-party-private retrievables renderer; alias of {@link renderThirdPartyPrivateRetrievables}. */
|
|
90
|
+
export declare const defaultRenderThirdPartyPrivateRetrievables: (items: Iterable<{
|
|
91
|
+
retrievable: Retrievable;
|
|
92
|
+
attrs: RetrievableAttrs;
|
|
93
|
+
}>, deps: {
|
|
94
|
+
renderUntrustedContent: ChatHelpersCommon["renderUntrustedContent"];
|
|
95
|
+
}) => Promise<string>;
|
|
96
|
+
/** Implements {@link ChatHelpersCommon.renderRetrievables}. */
|
|
97
|
+
export declare const renderRetrievables: (items: Iterable<{
|
|
98
|
+
retrievable: Retrievable;
|
|
99
|
+
attrs: RetrievableAttrs;
|
|
100
|
+
}>, deps: {
|
|
101
|
+
renderRetrievableSafetyDirective: ChatHelpersCommon["renderRetrievableSafetyDirective"];
|
|
102
|
+
renderFirstPartyRetrievables: ChatHelpersCommon["renderFirstPartyRetrievables"];
|
|
103
|
+
renderThirdPartyPublicRetrievables: ChatHelpersCommon["renderThirdPartyPublicRetrievables"];
|
|
104
|
+
renderThirdPartyPrivateRetrievables: ChatHelpersCommon["renderThirdPartyPrivateRetrievables"];
|
|
105
|
+
renderUntrustedContent: ChatHelpersCommon["renderUntrustedContent"];
|
|
106
|
+
}) => Promise<string>;
|
|
107
|
+
/** Default retrievables orchestrator; alias of {@link renderRetrievables}. */
|
|
108
|
+
export declare const defaultRenderRetrievables: (items: Iterable<{
|
|
109
|
+
retrievable: Retrievable;
|
|
110
|
+
attrs: RetrievableAttrs;
|
|
111
|
+
}>, deps: {
|
|
112
|
+
renderRetrievableSafetyDirective: ChatHelpersCommon["renderRetrievableSafetyDirective"];
|
|
113
|
+
renderFirstPartyRetrievables: ChatHelpersCommon["renderFirstPartyRetrievables"];
|
|
114
|
+
renderThirdPartyPublicRetrievables: ChatHelpersCommon["renderThirdPartyPublicRetrievables"];
|
|
115
|
+
renderThirdPartyPrivateRetrievables: ChatHelpersCommon["renderThirdPartyPrivateRetrievables"];
|
|
116
|
+
renderUntrustedContent: ChatHelpersCommon["renderUntrustedContent"];
|
|
117
|
+
}) => Promise<string>;
|
|
118
|
+
/** Implements {@link ChatHelpersCommon.renderThought}. */
|
|
119
|
+
export declare const renderThought: (content: string, attrs: ThoughtAttrs, payload?: unknown) => string;
|
|
120
|
+
/** Default thought renderer; alias of {@link renderThought}. */
|
|
121
|
+
export declare const defaultRenderThought: (content: string, attrs: ThoughtAttrs, payload?: unknown) => string;
|
|
122
|
+
/** Implements {@link ChatHelpersCommon.filterThoughts}. */
|
|
123
|
+
export declare const filterThoughts: (thoughts: Iterable<Thought>, mode: "all-self" | "latest-self" | "all", selfIdentity: string, replayCompatibility: ReadonlyArray<string>) => Thought[];
|
|
124
|
+
/** Default thought filter; alias of {@link filterThoughts}. */
|
|
125
|
+
export declare const defaultFilterThoughts: (thoughts: Iterable<Thought>, mode: "all-self" | "latest-self" | "all", selfIdentity: string, replayCompatibility: ReadonlyArray<string>) => Thought[];
|
|
126
|
+
/** Implements {@link ChatHelpersCommon.toolsToChatCompletionsTools}. */
|
|
127
|
+
export declare const toolsToChatCompletionsTools: (tools: ReadonlyArray<Tool | ArtifactTool>, deps: {
|
|
128
|
+
descriptionToChatCompletionsJsonSchema: (d: DescriptionLike) => JsonSchema;
|
|
129
|
+
}) => ChatCompletionsTool[];
|
|
130
|
+
/** Default tool-translation helper; alias of {@link toolsToChatCompletionsTools}. */
|
|
131
|
+
export declare const defaultToolsToChatCompletionsTools: (tools: ReadonlyArray<Tool | ArtifactTool>, deps: {
|
|
132
|
+
descriptionToChatCompletionsJsonSchema: (d: DescriptionLike) => JsonSchema;
|
|
133
|
+
}) => ChatCompletionsTool[];
|
|
134
|
+
/** Implements {@link ChatHelpersCommon.renderChatCompletionsSystemPrompt}. */
|
|
135
|
+
export declare const renderChatCompletionsSystemPrompt: (input: {
|
|
136
|
+
systemPrompt: Tokenizable;
|
|
137
|
+
standingInstructions: Iterable<Tokenizable>;
|
|
138
|
+
memories: Iterable<Memory>;
|
|
139
|
+
retrievables: Iterable<Retrievable>;
|
|
140
|
+
bucketOrder: ChatCompletionsBucketOrder;
|
|
141
|
+
renderStandingInstructions: ChatHelpersCommon["renderStandingInstructions"];
|
|
142
|
+
renderMemories: ChatHelpersCommon["renderMemories"];
|
|
143
|
+
renderRetrievables: ChatHelpersCommon["renderRetrievables"];
|
|
144
|
+
renderRetrievableSafetyDirective: ChatHelpersCommon["renderRetrievableSafetyDirective"];
|
|
145
|
+
renderFirstPartyRetrievables: ChatHelpersCommon["renderFirstPartyRetrievables"];
|
|
146
|
+
renderThirdPartyPublicRetrievables: ChatHelpersCommon["renderThirdPartyPublicRetrievables"];
|
|
147
|
+
renderThirdPartyPrivateRetrievables: ChatHelpersCommon["renderThirdPartyPrivateRetrievables"];
|
|
148
|
+
renderUntrustedContent: ChatHelpersCommon["renderUntrustedContent"];
|
|
149
|
+
}) => Promise<string>;
|
|
150
|
+
/** Default system-prompt renderer; alias of {@link renderChatCompletionsSystemPrompt}. */
|
|
151
|
+
export declare const defaultRenderChatCompletionsSystemPrompt: (input: {
|
|
152
|
+
systemPrompt: Tokenizable;
|
|
153
|
+
standingInstructions: Iterable<Tokenizable>;
|
|
154
|
+
memories: Iterable<Memory>;
|
|
155
|
+
retrievables: Iterable<Retrievable>;
|
|
156
|
+
bucketOrder: ChatCompletionsBucketOrder;
|
|
157
|
+
renderStandingInstructions: ChatHelpersCommon["renderStandingInstructions"];
|
|
158
|
+
renderMemories: ChatHelpersCommon["renderMemories"];
|
|
159
|
+
renderRetrievables: ChatHelpersCommon["renderRetrievables"];
|
|
160
|
+
renderRetrievableSafetyDirective: ChatHelpersCommon["renderRetrievableSafetyDirective"];
|
|
161
|
+
renderFirstPartyRetrievables: ChatHelpersCommon["renderFirstPartyRetrievables"];
|
|
162
|
+
renderThirdPartyPublicRetrievables: ChatHelpersCommon["renderThirdPartyPublicRetrievables"];
|
|
163
|
+
renderThirdPartyPrivateRetrievables: ChatHelpersCommon["renderThirdPartyPrivateRetrievables"];
|
|
164
|
+
renderUntrustedContent: ChatHelpersCommon["renderUntrustedContent"];
|
|
165
|
+
}) => Promise<string>;
|