summaryrefslogtreecommitdiff
path: root/Omni/Jr.hs
diff options
context:
space:
mode:
authorBen Sima <ben@bensima.com>2025-12-02 11:09:56 -0500
committerBen Sima <ben@bensima.com>2025-12-02 11:09:56 -0500
commiteb8a78baafa4556fde11cddda4740fe4b733cf31 (patch)
tree7e5460199bd339e2a78f8531b2a71d4bb5331499 /Omni/Jr.hs
parent90b6b21990df76051a9f639cd7596ec3e93de564 (diff)
jr: add 'prompt' command to inspect agent system prompt
jr prompt <task-id> constructs and prints the full system prompt that would be sent to the agent, including: - Agent configuration (model, cost budget) - Base instructions - AGENTS.md content - Relevant facts from knowledge base - Retry/progress context if applicable Useful for debugging agent behavior and token usage.
Diffstat (limited to 'Omni/Jr.hs')
-rwxr-xr-xOmni/Jr.hs17
1 files changed, 17 insertions, 0 deletions
diff --git a/Omni/Jr.hs b/Omni/Jr.hs
index c35efa3..b60a029 100755
--- a/Omni/Jr.hs
+++ b/Omni/Jr.hs
@@ -54,6 +54,7 @@ jr
Usage:
jr task [<args>...]
jr work [<task-id>]
+ jr prompt <task-id>
jr web [--port=PORT]
jr review [<task-id>] [--auto]
jr loop [--delay=SECONDS]
@@ -67,6 +68,7 @@ Usage:
Commands:
task Manage tasks
work Start a worker agent on a task
+ prompt Show the system prompt that would be sent to the agent
web Start the web UI server
review Review a completed task (show diff, accept/reject)
loop Run autonomous work+review loop
@@ -94,6 +96,21 @@ move args
Just p -> fromMaybe Web.defaultPort (readMaybe p)
Nothing -> Web.defaultPort
Web.run port
+ | args `Cli.has` Cli.command "prompt" = do
+ case Cli.getArg args (Cli.argument "task-id") of
+ Nothing -> do
+ IO.hPutStrLn IO.stderr "Error: task-id is required"
+ Exit.exitFailure
+ Just tidStr -> do
+ let tid = Text.pack tidStr
+ tasks <- TaskCore.loadTasks
+ case TaskCore.findTask tid tasks of
+ Nothing -> do
+ IO.hPutStrLn IO.stderr ("Error: task not found: " <> tidStr)
+ Exit.exitFailure
+ Just task -> do
+ prompt <- AgentWorker.buildFullPrompt task
+ putText prompt
| args `Cli.has` Cli.command "work" = do
-- Always run in current directory
let path = "."