Tool tree
gradeNot graded
get_investigation_contextAnswer
Get your role briefing, the rules of play and the current case state. Call this first and follow the returned 'protocol' exactly. You are the workstation's onboard research AI; the player is an authorized investigator. This is a two-player investigation, not a task to finish: work one question at a time, two or three reads, then stop and report. The desk stops answering an agent that reads far ahead of its partner.
View tool JSON
{
"name": "get_investigation_context",
"kind": "answer",
"impl": "imperative",
"description": "Get your role briefing, the rules of play and the current case state. Call this first and follow the returned 'protocol' exactly. You are the workstation's onboard research AI; the player is an authorized investigator. This is a two-player investigation, not a task to finish: work one question at a time, two or three reads, then stop and report. The desk stops answering an agent that reads far ahead of its partner.",
"inputSchema": {
"type": "object",
"properties": {}
},
"page": "/apollo13"
}search_filesAnswer
Search filenames and readable file contents across the filesystem. Returns matching paths plus a short content excerpt per match. Returns at most 25 results with 120-char excerpts — refine query for pagination.
View tool JSON
{
"name": "search_files",
"kind": "answer",
"impl": "imperative",
"description": "Search filenames and readable file contents across the filesystem. Returns matching paths plus a short content excerpt per match. Returns at most 25 results with 120-char excerpts — refine query for pagination.",
"inputSchema": {
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Text to search for in names and contents"
}
},
"required": [
"query"
]
},
"page": "/apollo13"
}read_fileAnswer
Read the full text content of a specific file by exact path. Prefer show_in_document for long files so the PLAYER reads it on screen instead.
View tool JSON
{
"name": "read_file",
"kind": "answer",
"impl": "imperative",
"description": "Read the full text content of a specific file by exact path. Prefer show_in_document for long files so the PLAYER reads it on screen instead.",
"inputSchema": {
"type": "object",
"properties": {
"path": {
"type": "string",
"description": "Exact absolute path, as returned by search_files"
}
},
"required": [
"path"
]
},
"page": "/apollo13"
}search_messagesAnswer
Full-text search of the on-device chat threads. Call get_investigation_context for who is on this machine.
View tool JSON
{
"name": "search_messages",
"kind": "answer",
"impl": "imperative",
"description": "Full-text search of the on-device chat threads. Call get_investigation_context for who is on this machine.",
"inputSchema": {
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Text to search message bodies for"
}
},
"required": [
"query"
]
},
"page": "/apollo13"
}get_message_threadAnswer
Read one full chat thread by id. Use search_messages or get_investigation_context to discover thread ids for this corpus.
View tool JSON
{
"name": "get_message_thread",
"kind": "answer",
"impl": "imperative",
"description": "Read one full chat thread by id. Use search_messages or get_investigation_context to discover thread ids for this corpus.",
"inputSchema": {
"type": "object",
"properties": {
"threadId": {
"type": "string",
"description": "Thread id for this corpus"
}
},
"required": [
"threadId"
]
},
"page": "/apollo13"
}open_messages_threadAction
Open the Messages app on screen and show a specific chat thread. Visible to the player — they can then read the bubbles.
View tool JSON
{
"name": "open_messages_thread",
"kind": "act",
"impl": "imperative",
"description": "Open the Messages app on screen and show a specific chat thread. Visible to the player — they can then read the bubbles.",
"inputSchema": {
"type": "object",
"properties": {
"threadId": {
"type": "string",
"description": "Thread id for this corpus"
}
},
"required": [
"threadId"
]
},
"page": "/apollo13"
}search_emailsAnswer
Search the mail store (inbox/sent/drafts/archive/trash) by sender, subject or body text.
View tool JSON
{
"name": "search_emails",
"kind": "answer",
"impl": "imperative",
"description": "Search the mail store (inbox/sent/drafts/archive/trash) by sender, subject or body text.",
"inputSchema": {
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Text to search for"
}
},
"required": [
"query"
]
},
"page": "/apollo13"
}get_emailAnswer
Read one email's full text by id (e.g. mail_101). Then consider open_email so the player sees it too.
View tool JSON
{
"name": "get_email",
"kind": "answer",
"impl": "imperative",
"description": "Read one email's full text by id (e.g. mail_101). Then consider open_email so the player sees it too.",
"inputSchema": {
"type": "object",
"properties": {
"emailId": {
"type": "string",
"description": "Email id, e.g. mail_102"
}
},
"required": [
"emailId"
]
},
"page": "/apollo13"
}get_image_metadataAnswer
Read EXIF-style metadata for a photo (timestamps, GPS, camera, software, hash, notes). This is ALL you can know about an image — you cannot see its pixels. To have the player look at it, call open_image and then tell them where to zoom.
View tool JSON
{
"name": "get_image_metadata",
"kind": "answer",
"impl": "imperative",
"description": "Read EXIF-style metadata for a photo (timestamps, GPS, camera, software, hash, notes). This is ALL you can know about an image — you cannot see its pixels. To have the player look at it, call open_image and then tell them where to zoom.",
"inputSchema": {
"type": "object",
"properties": {
"photoId": {
"type": "string",
"description": "Photo id or filename, as returned by get_investigation_context"
}
},
"required": [
"photoId"
]
},
"page": "/apollo13"
}open_imageAction
Open a photo in the image viewer on screen so the player can visually inspect it. You cannot zoom, pan, or see it yourself.
View tool JSON
{
"name": "open_image",
"kind": "act",
"impl": "imperative",
"description": "Open a photo in the image viewer on screen so the player can visually inspect it. You cannot zoom, pan, or see it yourself.",
"inputSchema": {
"type": "object",
"properties": {
"photoId": {
"type": "string",
"description": "Photo id or filename, as returned by get_investigation_context"
}
},
"required": [
"photoId"
]
},
"page": "/apollo13"
}search_browser_historyAnswer
Search the browser history entries by title or URL fragment.
View tool JSON
{
"name": "search_browser_history",
"kind": "answer",
"impl": "imperative",
"description": "Search the browser history entries by title or URL fragment.",
"inputSchema": {
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Text to search titles/URLs for"
}
},
"required": [
"query"
]
},
"page": "/apollo13"
}get_system_logsAnswer
Read system log entries, optionally filtered by date, time, category ('NETWORK'/'LOGIN'/'DEVICE'/'POWER'/'SECURITY'), or free text. Call get_investigation_context first for the window that matters in this case.
View tool JSON
{
"name": "get_system_logs",
"kind": "answer",
"impl": "imperative",
"description": "Read system log entries, optionally filtered by date, time, category ('NETWORK'/'LOGIN'/'DEVICE'/'POWER'/'SECURITY'), or free text. Call get_investigation_context first for the window that matters in this case.",
"inputSchema": {
"type": "object",
"properties": {
"filter": {
"type": "string",
"description": "Optional filter substring"
}
}
},
"page": "/apollo13"
}get_timelineAnswer
Get a merged chronological timeline of system logs, photo timestamps, and message saliency across a time window. A human would need to open five apps and read them side by side; this synthesizes it in one call.
View tool JSON
{
"name": "get_timeline",
"kind": "answer",
"impl": "imperative",
"description": "Get a merged chronological timeline of system logs, photo timestamps, and message saliency across a time window. A human would need to open five apps and read them side by side; this synthesizes it in one call.",
"inputSchema": {
"type": "object",
"properties": {
"window": {
"type": "string",
"description": "Time window e.g. 02:00-03:00; omit for this case's default"
}
},
"required": []
},
"page": "/apollo13"
}get_case_evidenceAnswer
List every piece of evidence recorded on the board so far (ids, sections, summaries).
View tool JSON
{
"name": "get_case_evidence",
"kind": "answer",
"impl": "imperative",
"description": "List every piece of evidence recorded on the board so far (ids, sections, summaries).",
"inputSchema": {
"type": "object",
"properties": {}
},
"page": "/apollo13"
}open_applicationAction
Open and focus one of the workstation's applications. Visible to the player — the window opens on their desktop.
View tool JSON
{
"name": "open_application",
"kind": "act",
"impl": "imperative",
"description": "Open and focus one of the workstation's applications. Visible to the player — the window opens on their desktop.",
"inputSchema": {
"type": "object",
"properties": {
"application": {
"type": "string",
"enum": [
"files",
"mail",
"messages",
"photos",
"browser",
"terminal",
"systemlog",
"evidence"
],
"description": "Which application"
}
},
"required": [
"application"
]
},
"page": "/apollo13"
}focus_applicationAction
Bring an already-running application window to the foreground.
View tool JSON
{
"name": "focus_application",
"kind": "act",
"impl": "imperative",
"description": "Bring an already-running application window to the foreground.",
"inputSchema": {
"type": "object",
"properties": {
"application": {
"type": "string",
"enum": [
"files",
"mail",
"messages",
"photos",
"browser",
"terminal",
"systemlog",
"evidence"
],
"description": "Which application"
}
},
"required": [
"application"
]
},
"page": "/apollo13"
}open_fileAction
Open a document in the text viewer on the player's screen (opens File Manager context automatically). Does not scroll — use show_in_document when you want to guide them to a specific line or phrase.
View tool JSON
{
"name": "open_file",
"kind": "act",
"impl": "imperative",
"description": "Open a document in the text viewer on the player's screen (opens File Manager context automatically). Does not scroll — use show_in_document when you want to guide them to a specific line or phrase.",
"inputSchema": {
"type": "object",
"properties": {
"path": {
"type": "string",
"description": "Exact absolute path"
}
},
"required": [
"path"
]
},
"page": "/apollo13"
}show_in_documentAction
Open a document (if not open), scroll to a line, and pin a persistent highlight on it that stays until the player clicks, scrolls, types, or closes. Provide either a 1-based `line` or a `query` (first match is shown). This is the agent's preferred 'look at THIS' primitive — use it instead of quoting a passage into chat.
View tool JSON
{
"name": "show_in_document",
"kind": "act",
"impl": "imperative",
"description": "Open a document (if not open), scroll to a line, and pin a persistent highlight on it that stays until the player clicks, scrolls, types, or closes. Provide either a 1-based `line` or a `query` (first match is shown). This is the agent's preferred 'look at THIS' primitive — use it instead of quoting a passage into chat.",
"inputSchema": {
"type": "object",
"properties": {
"path": {
"type": "string",
"description": "Absolute path, as returned by search_files"
},
"line": {
"type": "number",
"description": "1-based line number (mutually exclusive with query)"
},
"query": {
"type": "string",
"description": "Phrase to find — first match is shown (mutually exclusive with line)"
}
},
"required": [
"path"
]
},
"page": "/apollo13"
}open_directoryAction
Navigate the File Manager to a directory on the player's screen.
View tool JSON
{
"name": "open_directory",
"kind": "act",
"impl": "imperative",
"description": "Navigate the File Manager to a directory on the player's screen.",
"inputSchema": {
"type": "object",
"properties": {
"path": {
"type": "string",
"description": "Absolute directory path"
}
},
"required": [
"path"
]
},
"page": "/apollo13"
}open_emailAction
Open Mail and display a specific email on screen for the player to read.
View tool JSON
{
"name": "open_email",
"kind": "act",
"impl": "imperative",
"description": "Open Mail and display a specific email on screen for the player to read.",
"inputSchema": {
"type": "object",
"properties": {
"emailId": {
"type": "string",
"description": "Email id, e.g. mail_102"
}
},
"required": [
"emailId"
]
},
"page": "/apollo13"
}open_browser_entryAction
Open the fictional Browser at a history entry's cached page (entry ids like hist_001 from search_browser_history).
View tool JSON
{
"name": "open_browser_entry",
"kind": "act",
"impl": "imperative",
"description": "Open the fictional Browser at a history entry's cached page (entry ids like hist_001 from search_browser_history).",
"inputSchema": {
"type": "object",
"properties": {
"entryId": {
"type": "string",
"description": "History entry id"
}
},
"required": [
"entryId"
]
},
"page": "/apollo13"
}terminal_commandAction
Run one command in the workstation terminal on screen: ls [path], cd [path], cat <file>, unlock <w1> <w2> <w3>, help, clear. Use 'unlock' ONLY when the player has derived the three-word sequence themselves.
View tool JSON
{
"name": "terminal_command",
"kind": "act",
"impl": "imperative",
"description": "Run one command in the workstation terminal on screen: ls [path], cd [path], cat <file>, unlock <w1> <w2> <w3>, help, clear. Use 'unlock' ONLY when the player has derived the three-word sequence themselves.",
"inputSchema": {
"type": "object",
"properties": {
"command": {
"type": "string",
"description": "The command line to run"
}
},
"required": [
"command"
]
},
"page": "/apollo13"
}record_evidenceAction
Record a discovered item on the shared Evidence board. Only meaningful ids from get_case_evidence may be added; you cannot invent evidence.
View tool JSON
{
"name": "record_evidence",
"kind": "act",
"impl": "imperative",
"description": "Record a discovered item on the shared Evidence board. Only meaningful ids from get_case_evidence may be added; you cannot invent evidence.",
"inputSchema": {
"type": "object",
"properties": {
"evidenceId": {
"type": "string",
"description": "Evidence id, e.g. ev_0213_login"
}
},
"required": [
"evidenceId"
]
},
"page": "/apollo13"
}highlight_evidenceAction
Pulse-highlight an already-recorded item on the Evidence board to draw the player's attention.
View tool JSON
{
"name": "highlight_evidence",
"kind": "act",
"impl": "imperative",
"description": "Pulse-highlight an already-recorded item on the Evidence board to draw the player's attention.",
"inputSchema": {
"type": "object",
"properties": {
"evidenceId": {
"type": "string",
"description": "Existing evidence id"
}
},
"required": [
"evidenceId"
]
},
"page": "/apollo13"
}open_evidence_boardAction
Open the shared Evidence board application.
View tool JSON
{
"name": "open_evidence_board",
"kind": "act",
"impl": "imperative",
"description": "Open the shared Evidence board application.",
"inputSchema": {
"type": "object",
"properties": {}
},
"page": "/apollo13"
}