From aa7094c66254e8ec27bd5443598aca51cbae8e9e Mon Sep 17 00:00:00 2001 From: twells46 <173561638+twells46@users.noreply.github.com> Date: Mon, 13 Apr 2026 14:29:14 -0500 Subject: More commands --- .serena/.gitignore | 2 + .serena/project.yml | 152 ++++++++++++++++++++++++++++++++++++++++++++++++++++ cards.jsonl | 13 +++++ cheat.db | Bin 393216 -> 430080 bytes 4 files changed, 167 insertions(+) create mode 100644 .serena/.gitignore create mode 100644 .serena/project.yml diff --git a/.serena/.gitignore b/.serena/.gitignore new file mode 100644 index 0000000..2e510af --- /dev/null +++ b/.serena/.gitignore @@ -0,0 +1,2 @@ +/cache +/project.local.yml diff --git a/.serena/project.yml b/.serena/project.yml new file mode 100644 index 0000000..028cdba --- /dev/null +++ b/.serena/project.yml @@ -0,0 +1,152 @@ +# the name by which the project can be referenced within Serena +project_name: "cheat" + + +# list of languages for which language servers are started; choose from: +# al bash clojure cpp csharp +# csharp_omnisharp dart elixir elm erlang +# fortran fsharp go groovy haskell +# java julia kotlin lua markdown +# matlab nix pascal perl php +# php_phpactor powershell python python_jedi r +# rego ruby ruby_solargraph rust scala +# swift terraform toml typescript typescript_vts +# vue yaml zig +# (This list may be outdated. For the current list, see values of Language enum here: +# https://github.com/oraios/serena/blob/main/src/solidlsp/ls_config.py +# For some languages, there are alternative language servers, e.g. csharp_omnisharp, ruby_solargraph.) +# Note: +# - For C, use cpp +# - For JavaScript, use typescript +# - For Free Pascal/Lazarus, use pascal +# Special requirements: +# Some languages require additional setup/installations. +# See here for details: https://oraios.github.io/serena/01-about/020_programming-languages.html#language-servers +# When using multiple languages, the first language server that supports a given file will be used for that file. +# The first language is the default language and the respective language server will be used as a fallback. +# Note that when using the JetBrains backend, language servers are not used and this list is correspondingly ignored. +languages: +- python + +# the encoding used by text files in the project +# For a list of possible encodings, see https://docs.python.org/3.11/library/codecs.html#standard-encodings +encoding: "utf-8" + +# line ending convention to use when writing source files. +# Possible values: unset (use global setting), "lf", "crlf", or "native" (platform default) +# This does not affect Serena's own files (e.g. memories and configuration files), which always use native line endings. +line_ending: + +# The language backend to use for this project. +# If not set, the global setting from serena_config.yml is used. +# Valid values: LSP, JetBrains +# Note: the backend is fixed at startup. If a project with a different backend +# is activated post-init, an error will be returned. +language_backend: + +# whether to use project's .gitignore files to ignore files +ignore_all_files_in_gitignore: true + +# advanced configuration option allowing to configure language server-specific options. +# Maps the language key to the options. +# Have a look at the docstring of the constructors of the LS implementations within solidlsp (e.g., for C# or PHP) to see which options are available. +# No documentation on options means no options are available. +ls_specific_settings: {} + +# list of additional paths to ignore in this project. +# Same syntax as gitignore, so you can use * and **. +# Note: global ignored_paths from serena_config.yml are also applied additively. +ignored_paths: [] + +# whether the project is in read-only mode +# If set to true, all editing tools will be disabled and attempts to use them will result in an error +# Added on 2025-04-18 +read_only: false + +# list of tool names to exclude. +# This extends the existing exclusions (e.g. from the global configuration) +# +# Below is the complete list of tools for convenience. +# To make sure you have the latest list of tools, and to view their descriptions, +# execute `uv run scripts/print_tool_overview.py`. +# +# * `activate_project`: Activates a project by name. +# * `check_onboarding_performed`: Checks whether project onboarding was already performed. +# * `create_text_file`: Creates/overwrites a file in the project directory. +# * `delete_lines`: Deletes a range of lines within a file. +# * `delete_memory`: Deletes a memory from Serena's project-specific memory store. +# * `execute_shell_command`: Executes a shell command. +# * `find_referencing_code_snippets`: Finds code snippets in which the symbol at the given location is referenced. +# * `find_referencing_symbols`: Finds symbols that reference the symbol at the given location (optionally filtered by type). +# * `find_symbol`: Performs a global (or local) search for symbols with/containing a given name/substring (optionally filtered by type). +# * `get_current_config`: Prints the current configuration of the agent, including the active and available projects, tools, contexts, and modes. +# * `get_symbols_overview`: Gets an overview of the top-level symbols defined in a given file. +# * `initial_instructions`: Gets the initial instructions for the current project. +# Should only be used in settings where the system prompt cannot be set, +# e.g. in clients you have no control over, like Claude Desktop. +# * `insert_after_symbol`: Inserts content after the end of the definition of a given symbol. +# * `insert_at_line`: Inserts content at a given line in a file. +# * `insert_before_symbol`: Inserts content before the beginning of the definition of a given symbol. +# * `list_dir`: Lists files and directories in the given directory (optionally with recursion). +# * `list_memories`: Lists memories in Serena's project-specific memory store. +# * `onboarding`: Performs onboarding (identifying the project structure and essential tasks, e.g. for testing or building). +# * `prepare_for_new_conversation`: Provides instructions for preparing for a new conversation (in order to continue with the necessary context). +# * `read_file`: Reads a file within the project directory. +# * `read_memory`: Reads the memory with the given name from Serena's project-specific memory store. +# * `remove_project`: Removes a project from the Serena configuration. +# * `replace_lines`: Replaces a range of lines within a file with new content. +# * `replace_symbol_body`: Replaces the full definition of a symbol. +# * `restart_language_server`: Restarts the language server, may be necessary when edits not through Serena happen. +# * `search_for_pattern`: Performs a search for a pattern in the project. +# * `summarize_changes`: Provides instructions for summarizing the changes made to the codebase. +# * `switch_modes`: Activates modes by providing a list of their names +# * `think_about_collected_information`: Thinking tool for pondering the completeness of collected information. +# * `think_about_task_adherence`: Thinking tool for determining whether the agent is still on track with the current task. +# * `think_about_whether_you_are_done`: Thinking tool for determining whether the task is truly completed. +# * `write_memory`: Writes a named memory (for future reference) to Serena's project-specific memory store. +excluded_tools: [] + +# list of tools to include that would otherwise be disabled (particularly optional tools that are disabled by default). +# This extends the existing inclusions (e.g. from the global configuration). +included_optional_tools: [] + +# fixed set of tools to use as the base tool set (if non-empty), replacing Serena's default set of tools. +# This cannot be combined with non-empty excluded_tools or included_optional_tools. +fixed_tools: [] + +# list of mode names to that are always to be included in the set of active modes +# The full set of modes to be activated is base_modes + default_modes. +# If the setting is undefined, the base_modes from the global configuration (serena_config.yml) apply. +# Otherwise, this setting overrides the global configuration. +# Set this to [] to disable base modes for this project. +# Set this to a list of mode names to always include the respective modes for this project. +base_modes: + +# list of mode names that are to be activated by default. +# The full set of modes to be activated is base_modes + default_modes. +# If the setting is undefined, the default_modes from the global configuration (serena_config.yml) apply. +# Otherwise, this overrides the setting from the global configuration (serena_config.yml). +# This setting can, in turn, be overridden by CLI parameters (--mode). +default_modes: + +# initial prompt for the project. It will always be given to the LLM upon activating the project +# (contrary to the memories, which are loaded on demand). +initial_prompt: "" + +# time budget (seconds) per tool call for the retrieval of additional symbol information +# such as docstrings or parameter information. +# This overrides the corresponding setting in the global configuration; see the documentation there. +# If null or missing, use the setting from the global configuration. +symbol_info_budget: + +# list of regex patterns which, when matched, mark a memory entry as read‑only. +# Extends the list from the global configuration, merging the two lists. +read_only_memory_patterns: [] + +# list of regex patterns for memories to completely ignore. +# Matching memories will not appear in list_memories or activate_project output +# and cannot be accessed via read_memory or write_memory. +# To access ignored memory files, use the read_file tool on the raw file path. +# Extends the list from the global configuration, merging the two lists. +# Example: ["_archive/.*", "_episodes/.*"] +ignored_memory_patterns: [] diff --git a/cards.jsonl b/cards.jsonl index 5cdb994..1a82b2a 100644 --- a/cards.jsonl +++ b/cards.jsonl @@ -123,3 +123,16 @@ {"id":"jq_build_object_from_fields","intent":["construct a new json object with jq","pick only selected fields from json","reshape json into smaller object","jq object literal example"],"command":"jq '{id, command, tags}' file.json","alternatives":["jq '{name: .metadata.name, version: .metadata.version}' file.json"],"explanation":"Builds a new object containing only the fields you want, optionally with renamed keys or nested lookups.","requires":["jq"],"packages":{"fedora":["jq"],"debian":["jq"],"arch":["jq"]},"tags":["jq","json","transform"],"platform":["linux","macos"],"shell":["bash","zsh","fish"],"safety":"safe-readonly"} {"id":"jq_sort_array_by_field","intent":["sort json array by field with jq","order objects by property value","jq sort objects by name","sort array entries in json"],"command":"jq 'sort_by(.name)' file.json","alternatives":["jq 'sort_by(.created_at) | reverse' file.json"],"explanation":"Sorts an array of objects by the chosen field before printing the result.","requires":["jq"],"packages":{"fedora":["jq"],"debian":["jq"],"arch":["jq"]},"tags":["jq","json","sort"],"platform":["linux","macos"],"shell":["bash","zsh","fish"],"safety":"safe-readonly"} {"id":"jq_count_array_items","intent":["count array items with jq","get length of json array","how many objects are in this json list","jq length example"],"command":"jq 'length' file.json","alternatives":["jq '.items | length' file.json"],"explanation":"Returns the number of elements in an array, or the number of keys in an object.","requires":["jq"],"packages":{"fedora":["jq"],"debian":["jq"],"arch":["jq"]},"tags":["jq","json","count"],"platform":["linux","macos"],"shell":["bash","zsh","fish"],"safety":"safe-readonly"} +{"id":"sort_version_numbers","intent":["sort version strings naturally","order versions like 1.9 1.10 correctly","version sort lines","sort semantic-ish version text"],"command":"sort -V versions.txt","alternatives":["printf '%s\n' 1.9 1.10 1.2 | sort -V"],"explanation":"Sorts text using version-aware ordering so dotted numbers come out in the order humans expect.","requires":["sort"],"packages":{},"tags":["text","sort","versions"],"platform":["linux"],"shell":["bash","zsh","fish"],"safety":"safe-readonly"} +{"id":"tsort_topological_order","intent":["topologically sort dependency pairs","order tasks from parent child edges","resolve simple dependency chain from pairs","tsort example"],"command":"tsort edges.txt","alternatives":["printf 'build test\ntest deploy\n' | tsort"],"explanation":"Reads whitespace-separated dependency pairs and prints a topological order, which is easy to forget exists.","requires":["tsort"],"packages":{},"tags":["text","graph","dependencies"],"platform":["linux","macos"],"shell":["bash","zsh","fish"],"safety":"safe-readonly"} +{"id":"nl_number_all_lines","intent":["number every line in a file","show line numbers including blank lines","annotate text with line numbers","nl all lines example"],"command":"nl -ba file.txt","alternatives":["cat -n file.txt"],"explanation":"Numbers all lines, including blank ones, which is handy when exact line references matter.","requires":["nl"],"packages":{},"tags":["text","lines","numbering"],"platform":["linux","macos"],"shell":["bash","zsh","fish"],"safety":"safe-readonly"} +{"id":"pr_two_column_view","intent":["display a file in two columns","split text into side by side columns","pretty print file as columns","pr multi column example"],"command":"pr -T -2 file.txt","alternatives":["pr -T -3 file.txt"],"explanation":"Formats text into multiple columns without headers, a useful but often-forgotten pager-style trick.","requires":["pr"],"packages":{},"tags":["text","formatting","columns"],"platform":["linux","macos"],"shell":["bash","zsh","fish"],"safety":"safe-readonly"} +{"id":"xargs_null_delimited","intent":["handle filenames with spaces from find","pass null delimited input to another command","safe xargs for weird filenames","xargs zero terminated example"],"command":"find . -type f -print0 | xargs -0 file","alternatives":["find . -type f -print0 | xargs -0 -n1 basename"],"explanation":"Consumes NUL-delimited input so paths with spaces, quotes, and newlines are handled safely.","requires":["find","xargs"],"packages":{},"tags":["find","xargs","files","safety"],"platform":["linux","macos"],"shell":["bash","zsh","fish"],"safety":"safe-readonly"} +{"id":"split_file_by_size","intent":["split a large file into chunks","break file into 100MB pieces","chunk big file by size","split archive or log into parts"],"command":"split -b 100M bigfile chunk-","alternatives":["split -l 10000 file.txt chunk-"],"explanation":"Splits a file into smaller pieces by size or line count using a chosen output prefix.","requires":["split"],"packages":{},"tags":["files","split","chunks"],"platform":["linux","macos"],"shell":["bash","zsh","fish"],"safety":"safe-modifying"} +{"id":"expand_tabs_to_spaces","intent":["convert tabs to spaces","replace tab characters with spaces","normalize indentation from tabs","expand tabs in text file"],"command":"expand -t 4 file.txt","alternatives":["expand file.txt"],"explanation":"Replaces tab characters with the corresponding number of spaces at the chosen tab stop width.","requires":["expand"],"packages":{},"tags":["text","tabs","whitespace"],"platform":["linux","macos"],"shell":["bash","zsh","fish"],"safety":"safe-readonly"} +{"id":"unexpand_spaces_to_tabs","intent":["convert spaces to tabs","compress indentation back into tabs","replace leading spaces with tabs","unexpand text example"],"command":"unexpand -a file.txt","alternatives":["unexpand --first-only file.txt"],"explanation":"Turns runs of spaces into tabs where possible, which is useful when matching tab-based formatting.","requires":["unexpand"],"packages":{},"tags":["text","tabs","whitespace"],"platform":["linux","macos"],"shell":["bash","zsh","fish"],"safety":"safe-readonly"} +{"id":"script_capture_clean_output","intent":["capture output exactly as shown in terminal","record command output through a pseudo tty","run command under script to preserve tty behavior","script command example"],"command":"script -q -c 'command' /dev/null","alternatives":["script session.log"],"explanation":"Runs a command under a pseudo-terminal, which helps with programs that behave differently when stdout is not a TTY.","requires":["script"],"packages":{},"tags":["terminal","tty","capture"],"platform":["linux","macos"],"shell":["bash","zsh","fish"],"safety":"safe-readonly"} +{"id":"flock_single_instance_command","intent":["prevent two copies of a command from running","take a lock file before running command","serialize script execution with flock","run only one instance"],"command":"flock -n /tmp/my.lock command","alternatives":["flock /tmp/my.lock command"],"explanation":"Uses a lock file to ensure only one instance runs at a time, which is easy to overlook when scripting.","requires":["flock"],"packages":{},"tags":["locking","scripts","concurrency"],"platform":["linux"],"shell":["bash","zsh","fish"],"safety":"safe-modifying"} +{"id":"env_clean_shell","intent":["start command with empty environment","debug issue caused by env vars","run shell without inherited environment","test command in clean env"],"command":"env -i bash --noprofile --norc","alternatives":["env -i PATH=\"$PATH\" command"],"explanation":"Starts a command with an empty environment so you can isolate problems caused by inherited variables or shell startup files.","requires":["env","bash"],"packages":{},"tags":["environment","shell","debugging"],"platform":["linux","macos"],"shell":["bash","zsh"],"safety":"safe-readonly"} +{"id":"kernel_cmdline_current","intent":["view current kernel commandline","show current kernel command line","inspect boot kernel arguments","read running kernel cmdline"],"command":"cat /proc/cmdline","alternatives":[],"explanation":"Prints the kernel command line that the currently running system was booted with.","requires":["cat"],"packages":{},"tags":["kernel","boot","cmdline"],"platform":["linux"],"shell":["bash","zsh","fish"],"safety":"safe-readonly"} +{"id":"sysctl_list_all","intent":["view current kernel parameters","show all current kernel parameters","list all sysctl settings","inspect all runtime kernel tunables"],"command":"sysctl -a","alternatives":["find /proc/sys -type f | sort"],"explanation":"Lists all currently readable sysctl-exposed kernel parameters and their values.","requires":["sysctl"],"packages":{},"tags":["kernel","sysctl","parameters"],"platform":["linux"],"shell":["bash","zsh","fish"],"safety":"safe-readonly"} diff --git a/cheat.db b/cheat.db index 0b31024..e0bfef7 100644 Binary files a/cheat.db and b/cheat.db differ -- cgit v1.2.3