Skip to content

feat(nlp2env): enforce versioned LLM tool-call contract - #1

Merged
tom-sapletta-com merged 2 commits into
mainfrom
feat/llm-contract-bundle-testql
Aug 8, 2026
Merged

feat(nlp2env): enforce versioned LLM tool-call contract#1
tom-sapletta-com merged 2 commits into
mainfrom
feat/llm-contract-bundle-testql

Conversation

@tom-sapletta-com

Copy link
Copy Markdown
Contributor

Summary

  • publish nlp2env ToolCall v1 as GBNF, Protobuf, JSON Schema, fixtures, and a boundary manifest
  • constrain both OpenRouter (response_format) and Ollama (format) and validate the complete response locally before MCP execution
  • remove regex/fenced-JSON salvage; reject unknown tools, literal password fields, extra args, and version drift
  • identify OpenRouter requests through OPENROUTER_APP_NAME/X-Title, falling back to the current project folder, with GLM 5.2 defaults in .env.example

Verification

  • python -m pytest -q tests/test_nlp2env_llm_contract.py tests/test_nlp2env_adapter.py --no-cov (19 passed)
  • full suite excluding one pre-existing overlapping user-worktree regression: 1669 passed, 17 skipped, 1 deselected
  • ruff check and ruff format --check pass for changed Python
  • wheel contains the runtime loader plus all four v1 artifacts and no bytecode cache

Existing unrelated failure

tests/test_environment_regressions.py::test_navigate_section_starts_browser_before_navigation expects NAVIGATE, while runtime emits GUI_NAVIGATE. The primary checkout already contains an uncommitted correction of that exact assertion, so this PR intentionally does not duplicate or overwrite that user-owned work.

@tom-sapletta-com
tom-sapletta-com merged commit 34e98a5 into main Aug 8, 2026
1 check passed
@tom-sapletta-com
tom-sapletta-com deleted the feat/llm-contract-bundle-testql branch August 8, 2026 22:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant