aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.serena/.gitignore2
-rw-r--r--.serena/project.yml152
-rw-r--r--cards.jsonl13
-rw-r--r--cheat.dbbin393216 -> 430080 bytes
4 files changed, 167 insertions, 0 deletions
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
--- a/cheat.db
+++ b/cheat.db
Binary files differ