174 Commits

Author SHA1 Message Date
Ingo Schnabel
c2078f6443 Recognize bare ':=' assignments and qualified-field write targets in NaturalParser
NaturalParser previously required a COMPUTE/ASSIGN keyword for any
assignment, missing Natural's implicit "<target> := <expr>" form, and
lookupVariable didn't strip a "<QUALIFIER>." prefix so qualified field
references (e.g. CDBRPDA.SORT-KEY) never matched the declared field.

New IngestModuleIT ingests the WGEAGB0S fixture tree via the
ingest-module BFS and exercises the variable writes endpoint across it.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-15 11:40:15 +02:00
Ingo Schnabel
3f0029c73f Add module/depth scoping to variable reads/writes endpoints and CLI
Restrict /variables/{name}/reads and /writes to a given module and its
transitive CALLS tree, reusing the call-tree depth config/clamping.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-15 10:30:01 +02:00
Ingo Schnabel
498215839c Agentic workflow 2026-06-15 09:55:19 +02:00
Ingo Schnabel
7940bd0495 Agentic workflow 2026-06-15 09:33:55 +02:00
Ingo Schnabel
a369b7775d Agentic workflow 2026-06-15 08:16:10 +02:00
Ingo Schnabel
d33e26d36c Add control-flow parsing and reengineering-context API endpoints 2026-06-14 21:22:14 +02:00
Ingo Schnabel
9dbfe6f210 SQL Queries 2026-06-14 21:11:59 +02:00
Ingo Schnabel
1619f54542 SQL Queries 2026-06-14 20:59:27 +02:00
Ingo Schnabel
0b3f664b3f Add clear command, fix CLI shell completion/history, add launch script
- New DELETE /api/projects endpoint and GraphRepository.clearAll() wipe
  the whole Neo4j database (schema preserved).
- New CLI 'clear' command with confirmation prompt (-y/--yes to skip).
- Fix interactive shell: compile the picocli SystemCompleter before use
  (was throwing IllegalStateException on Tab), and persist the actual
  LineReader history instead of an unattached DefaultHistory instance.
- Add ac-cli/agenticcode.sh to launch the interactive shell from the
  built jar.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-14 13:33:53 +02:00
Ingo Schnabel
fd73cf6279 Cli 2026-06-14 13:09:11 +02:00
Ingo Schnabel
299cb6c945 Properties 2026-06-14 13:08:31 +02:00
Ingo Schnabel
ea15fc3417 Improvements 2026-06-14 11:42:50 +02:00
Ingo Schnabel
da9308e98a Add project scoping, project CRUD, CLI config file, and Neo4j docs
Scope all AST nodes/queries by project, add /api/projects CRUD endpoints
and matching ac-cli commands (use, project create/update/delete/list,
-p/--project), persist server URL and selected project to
~/.agenticcode/config.properties, and add a Neo4j/Cypher introduction
for the team. Also clarify CLAUDE.md's commit policy.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-14 09:20:59 +02:00
Ingo Schnabel
5ea36f7c4a Add tab-completion and persistent history to ac-cli shell
Use picocli-shell-jline3 to generate a completer from the command
tree, and explicitly save JLine history on exit so it persists
across sessions in ~/.agenticcode_history.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-14 08:42:35 +02:00
Ingo Schnabel
138569faff Add interactive shell mode to ac-cli
Running the jar with no arguments now starts a psql-like REPL (JLine,
with persistent history) that dispatches commands to the existing
picocli subcommands, plus a new `connect` command to set the session
server URL.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-13 22:55:20 +02:00
Ingo Schnabel
94ceaefa9f Document ac-cli usage in README
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-13 22:39:49 +02:00
Ingo Schnabel
edefeeb860 docker 2026-06-13 22:38:50 +02:00
Ingo Schnabel
2a29074113 Add ac-cli module for ingesting source files and querying the API
Provides a standalone executable jar (picocli) with an `ingest` command
that walks files/directories and posts Java/Natural sources to the
ingest endpoints, plus callers/callees/db-accesses/search-identifier
query commands mirroring the REST API.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-13 22:38:32 +02:00
Ingo Schnabel
31d5c71d91 First implementation 2026-06-13 22:07:47 +02:00
Ingo Schnabel
ac2eb97979 Init 2026-06-13 15:37:12 +02:00
Ingo Schnabel
790972cc78 Init 2026-06-13 13:39:41 +02:00
Ingo Schnabel
de6176ed64 Init 2026-06-13 13:35:02 +02:00
Ingo Schnabel
162cd119f9 init 2026-06-12 18:04:37 +02:00
b26b04ba83 Initial commit 2026-06-12 17:52:11 +02:00