Task Prompt
Please consider the information for campaigns that were started in December 2023 of my digital organization system on advertising, and determine the average cpc from mobile devices (round to three decimals).
Please consider the information for campaigns that were started in December 2023 of my digital organization system on advertising, and determine the average cpc from mobile devices (round to three decimals).
Open in GymPlease consider the information for campaigns that were started in December 2023 of my digital organization system on advertising, and determine the average cpc from mobile devices (round to three decimals).
---
name: workspace-filesystem
description: The virtual filesystem layout of this workspace.
---
# Virtual Filesystem
You work in a terminal over a virtual filesystem. Read files with shell
commands.
Command output comes back whole, however long. Some files here are large,
so point `grep -r`, `rg`, `find` and `cat` at the directory or file you
need rather than at a whole mount.
| path | what it is |
|---|---|
| `/data` | Your files. |
| `/notion` | Your Notion workspace, read-only. |
| `/tmp` | Scratch space, in memory. |
## `/notion`
```
/notion/
pages/
<page-title>__<page-id>/
page.json
<child-page-title>__<child-id>/
page.json
databases/
<database-title>__<database-id>/
database.json
<data-source-title>__<data-source-id>/
data_source.json
rows.jsonl
```
A title in a path is sanitized: spaces and characters unsafe in a shell
become `_`. `ls` the parent directory for the exact name, or take a row's
`path` from `rows.jsonl`.
- `database.json`: `{database_id: str, title: str, url: str | null,
created_time: str | null, last_edited_time: str | null, parent: dict,
archived: bool, is_inline: bool, data_sources: list[{id: str, name: str}]}`
- `data_source.json`: `{data_source_id: str, database_id: str, title: str,
created_time: str | null, last_edited_time: str | null, database_parent:
dict, archived: bool, properties: {<column>: {id: str, name: str, type:
str, <type>: dict}}}`
- `rows.jsonl`: one row per line, `{page_id: str, title: str, path: str,
url: str, created_time: str, last_edited_time: str, parent_type: str,
parent_id: str, archived: bool, created_by: str, last_edited_by: str,
properties: {<column>: {id: str, type: str, <type>: <value>}}}`. Row
directories are not listed; a row's `page.json` is at its `path` below the
data source directory. A table's `rows.jsonl` can run to several
megabytes.
- `page.json`: a row's fields less `path`, plus `markdown: str`, the body,
and `blocks: list[dict]`| name | workspace-filesystem |
|---|---|
| description | The virtual filesystem layout of this workspace. |
Virtual Filesystem
You work in a terminal over a virtual filesystem. Read files with shell commands.
Command output comes back whole, however long. Some files here are large, so point grep -r, rg, find and cat at the directory or file you need rather than at a whole mount.
| path | what it is |
|---|---|
/data | Your files. |
/notion | Your Notion workspace, read-only. |
/tmp | Scratch space, in memory. |
/notion
/notion/
pages/
<page-title>__<page-id>/
page.json
<child-page-title>__<child-id>/
page.json
databases/
<database-title>__<database-id>/
database.json
<data-source-title>__<data-source-id>/
data_source.json
rows.jsonlA title in a path is sanitized: spaces and characters unsafe in a shell become _. ls the parent directory for the exact name, or take a row's path from rows.jsonl.
database.json: {database_id: str, title: str, url: str | null, created_time: str | null, last_edited_time: str | null, parent: dict, archived: bool, is_inline: bool, data_sources: list[{id: str, name: str}]}data_source.json: {data_source_id: str, database_id: str, title: str, created_time: str | null, last_edited_time: str | null, database_parent: dict, archived: bool, properties: {<column>: {id: str, name: str, type: str, <type>: dict}}}rows.jsonl: one row per line, {page_id: str, title: str, path: str, url: str, created_time: str, last_edited_time: str, parent_type: str, parent_id: str, archived: bool, created_by: str, last_edited_by: str, properties: {<column>: {id: str, type: str, <type>: <value>}}}. Row directories are not listed; a row's page.json is at its path below the data source directory. A table's rows.jsonl can run to several megabytes.page.json: a row's fields less path, plus markdown: str, the body, and blocks: list[dict]---
name: workspace-commands
description: Use when running commands in this workspace - which commands exist, what they can do, and what the interpreter supports.
---
# Available commands
Standard Unix commands, among them:
cat head tail ls find grep wc sort uniq cut tr sed awk
diff tee xargs jq
with pipes, `>` redirection and `$(...)` substitution.
Do not probe the machine with `which`, `type`, `--version`, `env`, `ps`,
`echo $PATH`, `ls /usr/bin` or `cat /usr/bin/<command>`: they tell you
nothing about the task.
A filename with a space in it needs quoting, as it would in any shell.
## notion
Use `notion <command> '<JSON arguments>'`. Run `notion <command> --help` to
get more information.
```sh
notion get-user '{"user_id":"ID"}'
notion get-users '{}'
notion get-self '{}'
notion post-database-query '{"database_id":"ID","filter":{"property":"Name","rich_text":{"contains":"TEXT"}},"page_size":10}'
notion post-search '{"query":"QUERY"}'
notion get-block-children '{"block_id":"ID"}'
notion retrieve-a-block '{"block_id":"ID"}'
notion retrieve-a-page '{"page_id":"ID"}'
notion retrieve-a-database '{"database_id":"ID"}'
notion retrieve-a-page-property '{"page_id":"ID","property_id":"PROPERTY_ID"}'
notion retrieve-a-comment '{"block_id":"ID"}'
```
| Command | Arguments | Description |
|---|---|---|
| `notion get-user` | `{user_id: str}` | Retrieve a user Error Responses: 400: 400 |
| `notion get-users` | `{start_cursor?: str, page_size?: int = 100}` | List all users Error Responses: 400: 400 |
| `notion get-self` | `{}` | Retrieve your token's bot user |
| `notion post-database-query` | `{database_id: str, filter_properties?: list[str], filter?: dict, sorts?: list[{property: str, direction: "ascending" \| "descending"}], start_cursor?: str, page_size?: int = 100, archived?: bool, in_trash?: bool}` | Query a database |
| `notion post-search` | `{query?: str, sort?: {direction?: str, timestamp?: str}, filter?: {value?: str, property?: str}, start_cursor?: str, page_size?: int = 100}` | Search by title |
| `notion get-block-children` | `{block_id: str, start_cursor?: str, page_size?: int = 100}` | Retrieve block children |
| `notion retrieve-a-block` | `{block_id: str}` | Retrieve a block |
| `notion retrieve-a-page` | `{page_id: str, filter_properties?: str}` | Retrieve a page |
| `notion retrieve-a-database` | `{database_id: str}` | Retrieve a database |
| `notion retrieve-a-page-property` | `{page_id: str, property_id: str, page_size?: int, start_cursor?: str}` | Retrieve a page property item |
| `notion retrieve-a-comment` | `{block_id: str, start_cursor?: str, page_size?: int}` | Retrieve comments |
## calculator
Use `calculator <command> '<JSON arguments>'`. Run
`calculator <command> --help` to get more information.
```sh
calculator calculate '{"expression":"2 * (3 + 4)"}'
```
| Command | Arguments | Description |
|---|---|---|
| `calculator calculate` | `{expression: str}` | Calculates/evaluates the given expression. |
## python3
Execute Python code and return stdout and stderr. Code can be pasted into a
`.py` file and run with `python3`. Python cannot launch subprocesses or make
direct network requests. Run the documented service commands directly in
the shell. Use Python for local file processing and generating JSON
arguments.| name | workspace-commands |
|---|---|
| description | Use when running commands in this workspace - which commands exist, what they can do, and what the interpreter supports. |
Available commands
Standard Unix commands, among them:
cat head tail ls find grep wc sort uniq cut tr sed awk
diff tee xargs jqwith pipes, > redirection and $(...) substitution.
Do not probe the machine with which, type, --version, env, ps, echo $PATH, ls /usr/bin or cat /usr/bin/<command>: they tell you nothing about the task.
A filename with a space in it needs quoting, as it would in any shell.
notion
Use notion <command> '<JSON arguments>'. Run notion <command> --help to get more information.
notion get-user '{"user_id":"ID"}'
notion get-users '{}'
notion get-self '{}'
notion post-database-query '{"database_id":"ID","filter":{"property":"Name","rich_text":{"contains":"TEXT"}},"page_size":10}'
notion post-search '{"query":"QUERY"}'
notion get-block-children '{"block_id":"ID"}'
notion retrieve-a-block '{"block_id":"ID"}'
notion retrieve-a-page '{"page_id":"ID"}'
notion retrieve-a-database '{"database_id":"ID"}'
notion retrieve-a-page-property '{"page_id":"ID","property_id":"PROPERTY_ID"}'
notion retrieve-a-comment '{"block_id":"ID"}'| Command | Arguments | Description | |
|---|---|---|---|
notion get-user | {user_id: str} | Retrieve a user Error Responses: 400: 400 | |
notion get-users | {start_cursor?: str, page_size?: int = 100} | List all users Error Responses: 400: 400 | |
notion get-self | {} | Retrieve your token's bot user | |
notion post-database-query | `{database_id: str, filter_properties?: list[str], filter?: dict, sorts?: list[{property: str, direction: "ascending" \ | "descending"}], start_cursor?: str, page_size?: int = 100, archived?: bool, in_trash?: bool}` | Query a database |
notion post-search | {query?: str, sort?: {direction?: str, timestamp?: str}, filter?: {value?: str, property?: str}, start_cursor?: str, page_size?: int = 100} | Search by title | |
notion get-block-children | {block_id: str, start_cursor?: str, page_size?: int = 100} | Retrieve block children | |
notion retrieve-a-block | {block_id: str} | Retrieve a block | |
notion retrieve-a-page | {page_id: str, filter_properties?: str} | Retrieve a page | |
notion retrieve-a-database | {database_id: str} | Retrieve a database | |
notion retrieve-a-page-property | {page_id: str, property_id: str, page_size?: int, start_cursor?: str} | Retrieve a page property item | |
notion retrieve-a-comment | {block_id: str, start_cursor?: str, page_size?: int} | Retrieve comments |
calculator
Use calculator <command> '<JSON arguments>'. Run calculator <command> --help to get more information.
calculator calculate '{"expression":"2 * (3 + 4)"}'| Command | Arguments | Description |
|---|---|---|
calculator calculate | {expression: str} | Calculates/evaluates the given expression. |
python3
Execute Python code and return stdout and stderr. Code can be pasted into a .py file and run with python3. Python cannot launch subprocesses or make direct network requests. Run the documented service commands directly in the shell. Use Python for local file processing and generating JSON arguments.
| Model | VFS | MCP | VFS Tokens | MCP Tokens | Token Reduction Rate |
|---|---|---|---|---|---|
| Claude Opus 5.5 | 1/1 | 1/1 | 22.0k | 56.6k | 61% |
| GPT-6.1 Sol | 1/1 | 1/1 | 15.0k | 30.9k | 51% |
| GPT-5.6 Luna | 1/1 | 1/1 | 30.3k | 11.6k | −162% |
| Claude Haiku 5.5 | 1/1 | 1/1 | 100k | 51.3k | −95% |
| Gemini 3.8 Flash | 1/1 | 1/1 | 336k | 1.86M | 82% |