Repository navigation
feat(human-input): dynamic ask-user tool and resume strategy fix - #71
Merged
dsiddharth2 merged 4 commits intoOct 22, 2026
Merged
dsiddharth2 merged 4 commits into
dsiddharth2 merged 4 commits into
Conversation
…rminal logging - Add generic `ask-user` tool that lets the LLM compose its own questions as tool arguments instead of relying on hardcoded `trip-preferences`. Accepts both plain strings and structured question objects. - Fix resumed runs being re-routed: `executeHostedTask` now reads the strategy from `resumeFrom` so a paused plan-execute run stays on plan-execute after the person answers. - Add terminal logging for human-input pause and resume events in both the in-process and Azure Durable backends. - Disable trip-planner workflow routing so trip queries go through plan-execute where askUser is available. - Update agentDescription to instruct the LLM to call ask-user before planning and think about what information is missing. - Add explicit guardrail policy for confirm-itinerary. - Add smoke test script and package.json entries. - Fix test timing tolerance and expiry dates in test fixtures.
…r questions - Pass askUser from executeHostedTask through executeWorkflow so any workflow tool can pause and ask the traveller questions. - Re-enable trip-planner routing now that it asks questions before running the research pipeline. - Add 6 hardcoded questions (dates, travellers, budget, interests, transport, must-see/avoid) to the trip-planner tool's run() as a starting point. - Feed the traveller's answers into the compose prompt so the final itinerary reflects their preferences.
…e strategy fix - Document the generic ask-user tool: LLM-composed dynamic questions, plain-string and structured-object formats, agentDescription guidance. - Document askUser in workflows: how executeWorkflow passes it through, and the trip-planner as a working example. - Document the resume strategy fix: how resumeFrom.strategy prevents re-routing after a pause. - Add "Seeing it work with Fleet" section with terminal logging examples.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
ask-usertool: the LLM composes its own questions dynamically as tool arguments instead of relying on hardcodedtrip-preferences. Accepts both plain strings (auto-converted to text fields) and structured question objects with pick_one/pick_many/approval kinds.executeHostedTasknow reads the strategy from the checkpoint viaresumeFrom, so a plan-execute run stays on plan-execute after the person answers.askUseris available.ask-userbefore planning and think about what information is missing from the request.Test plan
npm run test:human-input— 304/304 passnpm run test:checkpoint— 137/137 passnpm run test:phase4— 176/176 passnode --test tests/host-human-input-demo-e2e.test.mjs— 7/7 passnpm run host→ chat UI: LLM composes context-aware questions, pauses, resumes on same strategy, answers flow into final itinerary