32 lines
1018 B
Bash
Executable File
32 lines
1018 B
Bash
Executable File
#!/bin/bash
|
|
# AskFile - Ask ollie about the current file in acme
|
|
#
|
|
# Usage: Middle-click AskFile in the tag
|
|
# Sends: "Describe and explain this file: <filename>"
|
|
|
|
set -euo pipefail
|
|
|
|
if [[ -z "${winid:-}" ]]; then
|
|
echo "AskFile must be run from within acme" >&2
|
|
exit 1
|
|
fi
|
|
|
|
# Get the window name (filename) from the tag
|
|
filename=$(9p read acme/$winid/tag | awk '{print $1}')
|
|
|
|
if [[ -z "$filename" || "$filename" == *"+Errors" || "$filename" == "+*" ]]; then
|
|
echo "No file associated with this window" >&2
|
|
exit 1
|
|
fi
|
|
|
|
# Ensure acme session/agent exists
|
|
eval $(acme-ollie-ensure)
|
|
|
|
# Build and send the prompt
|
|
prompt="Read-only task. Inspect the complete file $filename and describe it. Do not edit files. Report the file's purpose, main components, important data flow, dependencies, and relevant tests or checks. Do not guess details that are not present in the file or repository.
|
|
|
|
File: $filename
|
|
|
|
Give a concise implementation-oriented overview."
|
|
echo "$prompt" | o "$OLLIE_SESSION/$OLLIE_AGENT" prompt
|