You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit aed1c19
Browse filesBrowse the repository at this point in the historyBrowse files
CodeWiki only documented what reached the dependency graph, and the graph was
built from files whose extension is in CODE_EXTENSIONS. Dockerfiles, CI
workflows, Makefiles, package manifests, config, schema and script files were
dropped before a single Node existed, so no wiki ever described how a system
is built, packaged, shipped, configured or tested.
This adds a second analysis pass over the same file tree
(dependency_analyzer/analyzers/artifact.py) that emits `artifact` nodes:
- one node per artifact file (id `<path>::<file>`, source = capped 16 KB head)
plus unit nodes for CI jobs, Dockerfile stages, Makefile targets,
package.json scripts and pyproject/setup.cfg entry points;
- edges from artifacts to the code they reference (COPY/ENTRYPOINT paths,
`run:` lines, `python -m`, `make <target>`, `npm run`, `module:function`
entry points, compose build contexts), emitted only for fully resolved ids;
- caps: per-file head, 40 files per class, total token budget filled in class
priority order; lock files and binaries are never read; README/docs stay
out unless --with-prose.
Pipeline changes so the new nodes flow through unchanged machinery:
- repo_analyzer: an ARTIFACT_WHITELIST lets `.github/workflows`, `*.ini`,
`bin/*.sh`, `*.gradle` survive the default ignore list (user excludes and
.gitignore still win); artifact names added to DEFAULT_INCLUDE_PATTERNS.
- leaf_selection: `artifact` is always a valid leaf type; topo_sort no longer
lets artifact->code edges prune code leaves.
- cluster prompts mark artifact files `(artifact: <class>)` and tell the LLM
they are essential; `ensure_artifact_module` inserts a top-level
"Build, Deployment and Configuration" module when clustering placed fewer
than 80% of the artifact nodes (both the CLI adapter and run() paths).
- prompt_template: fence language falls back to `text` instead of raising
KeyError for Dockerfile/Makefile/.yml/.toml; artifact groups inline their
capped source instead of re-reading the whole file; a
<REPOSITORY_ARTIFACTS> index is appended to module prompts and to the
repository overview prompt (USER_PROMPT itself is unchanged for the MCP
prompt server).
- str_replace_editor `view` on a directory no longer hides `.github` and
quotes the path.
- Node gains `artifact_class`; the graph builder writes temp/artifact_index.json.
Flags: --artifacts/--no-artifacts (default on), --artifact-token-budget
(200000), --with-prose (off), --artifact-exclude, and an
agent_instructions.artifact_exclude key.
Tests: tests/test_artifact_analyzer.py (classifier, whitelist, nodes and
units, edge resolution, caps, leaf selection, prompt, fallback module).
Custom editing tool for viewing, creating and editing files
749
753
* State is persistent across command calls and discussions with the user
750
-
* If `path` is a file, `view` displays the result of applying `cat -n`. If `path` is a directory, `view` lists non-hidden files and directories up to 2 levels deep.
754
+
* If `path` is a file, `view` displays the result of applying `cat -n`. If `path` is a directory, `view` lists non-hidden files and directories (plus `.github`) up to 2 levels deep.
751
755
* The `create` command cannot be used if the specified `path` already exists as a file
752
756
* If a `command` generates a long output, it will be truncated and marked with `<response clipped>`
753
757
* The `undo_edit` command will revert the last edit made to the file at `path`
754
758
* Only `view` command is allowed when `working_dir` is `repo`.
755
759
756
760
Args:
757
-
working_dir: The working directory to use. Choose `repo` to work with the repository files, or `docs` to work with the generated documentation files.
761
+
working_dir: The working directory to use. Choose `repo` to view repository files (source code, and build/CI/container/manifest/config artifacts such as Dockerfile, Makefile, .github/workflows/*.yml, pyproject.toml), or `docs` to work with the generated documentation files.
758
762
command: The command to run. Allowed options are: `view`, `create`, `str_replace`, `insert`, `undo_edit`.
759
763
path: Path to file or directory, e.g. `./chat_core.md` or `./agents/`
760
764
file: Alias for `path` parameter (for compatibility with some models)
@@ -805,7 +809,7 @@ async def str_replace_editor(
805
809
description="""
806
810
Custom editing tool for viewing, creating and editing files
807
811
* State is persistent across command calls and discussions with the user
808
-
* If `path` is a file, `view` displays the result of applying `cat -n`. If `path` is a directory, `view` lists non-hidden files and directories up to 2 levels deep.
812
+
* If `path` is a file, `view` displays the result of applying `cat -n`. If `path` is a directory, `view` lists non-hidden files and directories (plus `.github`) up to 2 levels deep.
809
813
* The `create` command cannot be used if the specified `path` already exists as a file
810
814
* If a `command` generates a long output, it will be truncated and marked with `<response clipped>`
811
815
* The `undo_edit` command will revert the last edit made to the file at `path`
0 commit comments