Skip to content

update from fork#1

Open
harm1999 wants to merge 36 commits into
harm1999:mainfrom
rsatrioadi:main
Open

update from fork#1
harm1999 wants to merge 36 commits into
harm1999:mainfrom
rsatrioadi:main

Conversation

@harm1999
Copy link
Copy Markdown
Owner

@harm1999 harm1999 commented Dec 2, 2024

No description provided.

rsatrioadi and others added 30 commits November 27, 2024 11:29
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
ScriptDescription, StructureDescription, ComponentDescription are now
Pydantic BaseModels. Tool dicts for the legacy tool-calling path are
auto-generated via model_json_schema(), eliminating the risk of schema
drift. TOOL_MODELS maps tool name → model class for the structured-output
client path.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Primary path uses OpenAI json_schema strict mode and validates responses
with Pydantic model_validate_json(). Falls back to the legacy tool-calling
path if the provider does not support structured outputs (controlled by
[llm] use_structured_output). Both paths retry up to 3 times with
exponential backoff (2s/4s/8s) before giving up.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
load_checkpoint() reads a JSONL checkpoint file and applies node property
updates and edges back into a graph, so a resumed run skips already-processed
nodes via the existing per-node description guards in processors.

configure_writer() sets a stable checkpoint path and open mode: 'w' for
fresh runs (overwrite), 'a' for resume runs (append). Writer calls are now
lock-protected for concurrent processor access.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Satrio Adi Rukmono and others added 6 commits April 28, 2026 13:22
…g context

Execution model: NodeExecutor submits all nodes to a ThreadPoolExecutor
immediately. Each worker waits only on the futures of its direct dependencies
before making its LLM call, giving finer-grained parallelism than level-by-level
topological batching. Workers is configurable via [llm] workers (default 8).

Override/overload context: ScriptProcessor collects all methods sharing the
same simpleName in the enclosing class (overloads) and ancestor classes
(overrides/hides). When present, these are injected into the prompt with an
explicit instruction to differentiate implementations while keeping terminology
consistent.

Sibling-aware class processing: StructureProcessor collects already-processed
sibling classes (sharing the same parent) and passes them as context with an
instruction to maintain terminological consistency while differentiating
responsibilities. Also strengthens the parent-class context instruction and
fixes a "Inhertis" typo.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Reads [llm] workers, checkpoint_file, and resume from config; calls
  configure_writer() so processors share the right checkpoint file/mode.
- Calls load_checkpoint() before processing when resume = true.
- Builds a type_ancestor_ids map (BFS over specializes edges) and passes it
  to ScriptProcessor for same-name family / override context lookups.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Adds two new classification dimensions based on the Dragan/Al-Ramadan
Stereocode taxonomy (17 method stereotypes across five categories:
structural accessors, structural mutators, creational, collaborational,
degenerate; and 14 class stereotypes). Each becomes a Dimension node with
Category nodes in the graph, and elements receive 'implements' edges to
their assigned categories.

Method stereotypes are multi-label (e.g. 'get collaborator'); class
stereotypes are single-label. Both are gated behind [stereocode] enabled
in config so existing runs are unaffected.

Pydantic output models gain optional stereocodeStereotype /
stereocodeClassStereotype fields (default empty) so they parse cleanly
regardless of whether stereocode is enabled.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants