feat: add stella-callgraph-node for JavaScript/TypeScript call graph extraction

- Implemented a new tool `stella-callgraph-node` that extracts call graphs from JavaScript/TypeScript projects using Babel AST.
- Added command-line interface with options for JSON output and help.
- Included functionality to analyze project structure, detect functions, and build call graphs.
- Created a package.json file for dependency management.

feat: introduce stella-callgraph-python for Python call graph extraction

- Developed `stella-callgraph-python` to extract call graphs from Python projects using AST analysis.
- Implemented command-line interface with options for JSON output and verbose logging.
- Added framework detection to identify popular web frameworks and their entry points.
- Created an AST analyzer to traverse Python code and extract function definitions and calls.
- Included requirements.txt for project dependencies.

chore: add framework detection for Python projects

- Implemented framework detection logic to identify frameworks like Flask, FastAPI, Django, and others based on project files and import patterns.
- Enhanced the AST analyzer to recognize entry points based on decorators and function definitions.
This commit is contained in:
master
2025-12-19 18:11:59 +02:00
parent 951a38d561
commit 8779e9226f
130 changed files with 19011 additions and 422 deletions

View File

@@ -41,12 +41,12 @@ Implement request handling in the Microservice SDK: receiving REQUEST frames, di
| 13 | HDL-040 | DONE | Implement `RequestDispatcher` | `src/__Libraries/StellaOps.Microservice/RequestDispatcher.cs` |
| 14 | HDL-041 | DONE | Implement frame-to-context conversion | `src/__Libraries/StellaOps.Microservice/RequestDispatcher.cs` |
| 15 | HDL-042 | DONE | Implement response-to-frame conversion | `src/__Libraries/StellaOps.Microservice/RequestDispatcher.cs` |
| 16 | HDL-043 | TODO | Wire dispatcher into transport receive loop | Microservice does not subscribe to `IMicroserviceTransport.OnRequestReceived` |
| 16 | HDL-043 | DONE | Wire dispatcher into transport receive loop | Implemented in `src/__Libraries/StellaOps.Microservice/RouterConnectionManager.cs` (subscribes to `IMicroserviceTransport.OnRequestReceived` and dispatches via `RequestDispatcher`) |
| 17 | HDL-050 | DONE | Implement `IServiceProvider` integration for handler instantiation | `src/__Libraries/StellaOps.Microservice/RequestDispatcher.cs` |
| 18 | HDL-051 | DONE | Implement handler scoping (per-request scope) | `CreateAsyncScope()` in `RequestDispatcher` |
| 19 | HDL-060 | DONE | Write unit tests for path matching | `tests/StellaOps.Microservice.Tests/EndpointRegistryTests.cs` |
| 20 | HDL-061 | DONE | Write unit tests for typed adapter | `tests/StellaOps.Microservice.Tests/TypedEndpointAdapterTests.cs` |
| 21 | HDL-062 | TODO | Write integration tests for full REQUEST/RESPONSE flow | Pending: end-to-end InMemory wiring + passing integration tests |
| 21 | HDL-062 | DONE | Write integration tests for full REQUEST/RESPONSE flow | Covered by `examples/router/tests/Examples.Integration.Tests` (buffered + streaming dispatch over InMemory transport) |
## Handler Interfaces
@@ -163,6 +163,8 @@ Before marking this sprint DONE:
| Date (UTC) | Update | Owner |
|------------|--------|-------|
| 2025-12-19 | Archive audit: initial status reconciliation pass. | Planning |
| 2025-12-19 | Archive audit: HDL-043 marked DONE; transport receive loop now wired to `RequestDispatcher`. | Planning |
| 2025-12-19 | Archive audit: HDL-062 marked DONE; end-to-end request/response verified by passing examples integration tests. | Planning |
## Decisions & Risks

View File

@@ -31,7 +31,7 @@ Implement the core infrastructure of the Gateway: node configuration, global rou
|---|---------|--------|-------------|-------|
| 1 | GW-001 | DONE | Implement `GatewayNodeConfig` | Implemented as `RouterNodeConfig` in `src/__Libraries/StellaOps.Router.Gateway/Configuration/RouterNodeConfig.cs` |
| 2 | GW-002 | DONE | Bind `GatewayNodeConfig` from configuration | `AddRouterGateway()` binds options in `src/__Libraries/StellaOps.Router.Gateway/DependencyInjection/RouterServiceCollectionExtensions.cs` |
| 3 | GW-003 | TODO | Validate GatewayNodeConfig on startup | `RouterNodeConfig.Validate()` exists but is not wired to run on startup |
| 3 | GW-003 | DONE | Validate GatewayNodeConfig on startup | Fail-fast options validation + `PostConfigure` NodeId generation in `src/__Libraries/StellaOps.Router.Gateway/DependencyInjection/RouterServiceCollectionExtensions.cs` |
| 4 | GW-010 | DONE | Implement `IGlobalRoutingState` as `InMemoryRoutingState` | `src/__Libraries/StellaOps.Router.Gateway/State/InMemoryRoutingState.cs` |
| 5 | GW-011 | DONE | Implement `ConnectionState` storage | `src/__Libraries/StellaOps.Router.Common/Models/ConnectionState.cs` |
| 6 | GW-012 | DONE | Implement endpoint-to-connections index | `src/__Libraries/StellaOps.Router.Gateway/State/InMemoryRoutingState.cs` |
@@ -44,8 +44,8 @@ Implement the core infrastructure of the Gateway: node configuration, global rou
| 13 | GW-024 | DONE | Implement basic tie-breaking (any healthy instance) | Implemented (ping/heartbeat + random/round-robin) in `src/__Libraries/StellaOps.Router.Gateway/Routing/DefaultRoutingPlugin.cs` |
| 14 | GW-030 | DONE | Create `RoutingOptions` for configurable behavior | `src/__Libraries/StellaOps.Router.Gateway/Configuration/RoutingOptions.cs` |
| 15 | GW-031 | DONE | Register routing services in DI | `src/__Libraries/StellaOps.Router.Gateway/DependencyInjection/RouterServiceCollectionExtensions.cs` |
| 16 | GW-040 | TODO | Write unit tests for InMemoryRoutingState | Not present (no tests cover `InMemoryRoutingState`) |
| 17 | GW-041 | TODO | Write unit tests for DefaultRoutingPlugin | Not present (no tests cover `DefaultRoutingPlugin`) |
| 16 | GW-040 | DONE | Write unit tests for InMemoryRoutingState | Added in `tests/StellaOps.Router.Gateway.Tests/InMemoryRoutingStateTests.cs` |
| 17 | GW-041 | DONE | Write unit tests for DefaultRoutingPlugin | Added in `tests/StellaOps.Router.Gateway.Tests/DefaultRoutingPluginTests.cs` |
## GatewayNodeConfig
@@ -126,6 +126,7 @@ Before marking this sprint DONE:
| Date (UTC) | Update | Owner |
|------------|--------|-------|
| 2025-12-19 | Archive audit: updated working directory and task statuses based on current `src/__Libraries/StellaOps.Router.Gateway/` implementation. | Planning |
| 2025-12-19 | Implemented gateway config fail-fast validation + added core unit tests; marked remaining tasks DONE. | Implementer |
## Decisions & Risks

View File

@@ -40,20 +40,20 @@ Implement the HTTP middleware pipeline for the Gateway: endpoint resolution, aut
| 12 | MID-031 | DONE | Implement buffered request dispatch | `src/__Libraries/StellaOps.Router.Gateway/Middleware/TransportDispatchMiddleware.cs` |
| 13 | MID-032 | DONE | Implement buffered response handling | `src/__Libraries/StellaOps.Router.Gateway/Middleware/TransportDispatchMiddleware.cs` |
| 14 | MID-033 | DONE | Map transport errors to HTTP status codes | `src/__Libraries/StellaOps.Router.Gateway/Middleware/TransportDispatchMiddleware.cs` |
| 15 | MID-040 | TODO | Create `GlobalErrorHandlerMiddleware` | Not implemented (errors handled per-middleware) |
| 16 | MID-041 | TODO | Implement structured error responses | Not centralized; responses vary per middleware |
| 17 | MID-050 | TODO | Create `RequestLoggingMiddleware` | Not implemented |
| 15 | MID-040 | DONE | Create `GlobalErrorHandlerMiddleware` | Implemented in `src/__Libraries/StellaOps.Router.Gateway/Middleware/GlobalErrorHandlerMiddleware.cs` and wired in `src/__Libraries/StellaOps.Router.Gateway/ApplicationBuilderExtensions.cs` |
| 16 | MID-041 | DONE | Implement structured error responses | Centralized via `RouterErrorWriter` (all gateway middleware emit a consistent JSON envelope) |
| 17 | MID-050 | DONE | Create `RequestLoggingMiddleware` | Implemented in `src/__Libraries/StellaOps.Router.Gateway/Middleware/RequestLoggingMiddleware.cs` and wired in `src/__Libraries/StellaOps.Router.Gateway/ApplicationBuilderExtensions.cs` |
| 18 | MID-051 | DONE | Wire forwarded headers middleware | Host app responsibility; see `examples/router/src/Examples.Gateway/Program.cs` |
| 19 | MID-060 | DONE | Configure middleware pipeline in Program.cs | Host app uses `UseRouterGateway()`; see `examples/router/src/Examples.Gateway/Program.cs` |
| 20 | MID-070 | TODO | Write integration tests for full HTTP→transport flow | `examples/router/tests` currently fails to build; end-to-end wiring not validated |
| 21 | MID-071 | TODO | Write tests for error scenarios (404, 503, etc.) | Not present |
| 20 | MID-070 | DONE | Write integration tests for full HTTP→transport flow | Covered by `examples/router/tests/Examples.Integration.Tests` (12 passing) |
| 21 | MID-071 | DONE | Write tests for error scenarios (404, 503, etc.) | Added focused middleware tests in `tests/StellaOps.Router.Gateway.Tests/MiddlewareErrorScenarioTests.cs` |
## Middleware Pipeline Order
```csharp
app.UseForwardedHeaders(); // Reverse proxy support
app.UseMiddleware<GlobalErrorHandlerMiddleware>();
app.UseMiddleware<RequestLoggingMiddleware>();
app.UseMiddleware<GlobalErrorHandlerMiddleware>();
app.UseAuthentication(); // ASP.NET Core auth
app.UseMiddleware<EndpointResolutionMiddleware>();
app.UseMiddleware<AuthorizationMiddleware>();
@@ -163,6 +163,10 @@ Before marking this sprint DONE:
| Date (UTC) | Update | Owner |
|------------|--------|-------|
| 2025-12-19 | Archive audit: updated working directory and task statuses based on current gateway library + examples. | Planning |
| 2025-12-19 | Archive audit: refreshed MID-070 note (examples tests build; were failing at audit time). | Planning |
| 2025-12-19 | Archive audit: MID-070 marked DONE; examples integration tests now pass. | Planning |
| 2025-12-19 | Started closing remaining middleware gaps (centralized structured errors + error-scenario tests). | Implementer |
| 2025-12-19 | Completed structured error unification + added error-scenario tests; marked MID-041/MID-071 DONE. | Implementer |
## Decisions & Risks

View File

@@ -28,10 +28,10 @@ Implement connection handling in the Gateway: processing HELLO frames from micro
|---|---------|--------|-------------|-------|
| 1 | CON-001 | DONE | Create `IConnectionHandler` interface | Superseded by event-driven transport handling (no `IConnectionHandler` abstraction) |
| 2 | CON-002 | DONE | Implement `ConnectionHandler` | Superseded by `InMemoryTransportServer` frame processing + gateway `ConnectionManager` |
| 3 | CON-010 | TODO | Implement HELLO frame processing | InMemory HELLO is handled, but HelloPayload serialization/deserialization is not implemented |
| 4 | CON-011 | TODO | Validate HELLO payload | Not implemented (no HelloPayload parsing) |
| 3 | CON-010 | DONE | Implement HELLO frame processing | InMemory server handles HELLO in `src/__Libraries/StellaOps.Router.Transport.InMemory/InMemoryTransportServer.cs` and gateway registers via `src/__Libraries/StellaOps.Router.Gateway/Services/ConnectionManager.cs` |
| 4 | CON-011 | TODO | Validate HELLO payload | Not implemented (no explicit HelloPayload validation; real transports still send empty payloads) |
| 5 | CON-012 | DONE | Register connection in IGlobalRoutingState | `src/__Libraries/StellaOps.Router.Gateway/Services/ConnectionManager.cs` |
| 6 | CON-013 | TODO | Build endpoint index from HELLO | Requires HelloPayload endpoints to be carried over the transport |
| 6 | CON-013 | DONE | Build endpoint index from HELLO | Index built when `ConnectionState` is registered (HELLO-triggered) via `src/__Libraries/StellaOps.Router.Gateway/State/InMemoryRoutingState.cs` |
| 7 | CON-020 | DONE | Create `TransportServerHost` hosted service | Implemented as gateway `ConnectionManager` hosted service |
| 8 | CON-021 | DONE | Wire transport server to connection handler | `ConnectionManager` subscribes to `InMemoryTransportServer` events |
| 9 | CON-022 | DONE | Handle new connections (InMemory: channel registration) | Channel created by client; server begins listening after HELLO |
@@ -40,7 +40,7 @@ Implement connection handling in the Gateway: processing HELLO frames from micro
| 12 | CON-032 | DONE | Log connection lifecycle events | `src/__Libraries/StellaOps.Router.Gateway/Services/ConnectionManager.cs` + `src/__Libraries/StellaOps.Router.Transport.InMemory/InMemoryTransportServer.cs` |
| 13 | CON-040 | DONE | Implement connection ID generation | InMemory client uses GUID connection IDs |
| 14 | CON-041 | TODO | Store connection metadata | No explicit connect-time stored (only `LastHeartbeatUtc`, `TransportType`) |
| 15 | CON-050 | TODO | Write integration tests for HELLO flow | End-to-end gateway registration not covered by passing tests |
| 15 | CON-050 | DONE | Write integration tests for HELLO flow | Covered by `examples/router/tests/Examples.Integration.Tests` (microservices register + routes resolve) |
| 16 | CON-051 | TODO | Write tests for connection cleanup | Not present |
| 17 | CON-052 | TODO | Write tests for multiple connections from same service | Not present |
@@ -209,6 +209,8 @@ Before marking this sprint DONE:
| Date (UTC) | Update | Owner |
|------------|--------|-------|
| 2025-12-19 | Archive audit: updated working directory and task statuses based on current gateway/in-memory transport implementation. | Planning |
| 2025-12-19 | Archive audit: examples integration tests now pass (covers HELLO+registration for InMemory). | Planning |
| 2025-12-19 | Re-audit: marked CON-010/CON-013 DONE for InMemory (HELLO triggers registration + endpoint indexing). | Implementer |
## Decisions & Risks

View File

@@ -53,8 +53,8 @@ Implement the RabbitMQ transport plugin. Uses message queue infrastructure for r
| 25 | RMQ-061 | DONE | Consider at-most-once delivery semantics | Using autoAck=true |
| 26 | RMQ-070 | DONE | Create RabbitMqTransportOptions | Connection, queues, durability |
| 27 | RMQ-071 | DONE | Create DI registration `AddRabbitMqTransport()` | |
| 28 | RMQ-080 | TODO | Write integration tests with local RabbitMQ | Test project exists but currently fails to build (fix pending) |
| 29 | RMQ-081 | TODO | Write tests for connection recovery | Test project exists but currently fails to build (fix pending) |
| 28 | RMQ-080 | DONE | Write integration tests with local RabbitMQ | Implemented in `src/__Libraries/__Tests/StellaOps.Router.Transport.RabbitMq.Tests/` (skipped unless `STELLAOPS_TEST_RABBITMQ=1`) |
| 29 | RMQ-081 | TODO | Write tests for connection recovery | Connection recovery scenarios still untested (forced disconnect/reconnect assertions missing) |
## Queue/Exchange Topology
@@ -208,7 +208,8 @@ Before marking this sprint DONE:
| Date (UTC) | Update | Owner |
|------------|--------|-------|
| 2025-12-05 | Code DONE but BLOCKED - RabbitMQ.Client NuGet package not available in local-nugets. Code written: RabbitMqTransportServer, RabbitMqTransportClient, RabbitMqFrameProtocol, RabbitMqTransportOptions, ServiceCollectionExtensions | Claude |
| 2025-12-19 | Archive audit: RabbitMQ.Client now referenced and restores; reopened remaining test work as TODO (tests currently failing build). | Planning |
| 2025-12-19 | Archive audit: RabbitMQ.Client now referenced and restores; reopened remaining test work as TODO (tests were failing build at audit time). | Planning |
| 2025-12-19 | Archive audit: RabbitMQ tests now build and pass; integration tests are opt-in via `STELLAOPS_TEST_RABBITMQ=1`. | Planning |
## Decisions & Risks

View File

@@ -46,7 +46,7 @@ Build a complete reference example demonstrating the router, gateway, and micros
| 18 | EX-052 | DONE | Document cancellation behavior | In README |
| 19 | EX-053 | DONE | Document payload limit testing | In README |
| 20 | EX-060 | DONE | Create integration test project | |
| 21 | EX-061 | DONE | Test full end-to-end flow | Tests compile |
| 21 | EX-061 | DONE | Test full end-to-end flow | `examples/router/tests/Examples.Integration.Tests` passes |
## Directory Structure
@@ -250,7 +250,7 @@ Before marking this sprint DONE:
| Date (UTC) | Update | Owner |
|------------|--------|-------|
| | | |
| 2025-12-19 | Archive audit: examples integration tests now pass (end-to-end coverage validated). | Planning |
## Decisions & Risks

View File

@@ -2,11 +2,11 @@
## Topic & Scope
Create comprehensive test coverage for StellaOps Router projects. **Critical gap**: `StellaOps.Router.Transport.RabbitMq` has **NO tests**.
Create comprehensive test coverage for StellaOps Router projects. **Critical gaps**: RequestDispatcher request/response unit test coverage; RabbitMQ connection-recovery tests; Gateway error-scenario integration tests.
**Goal:** ~192 tests covering all Router components with shared testing infrastructure.
**Working directory:** `src/__Libraries/__Tests/`
**Working directory:** `tests/` + `src/__Libraries/__Tests/`
## Dependencies & Concurrency
@@ -31,12 +31,12 @@ Create comprehensive test coverage for StellaOps Router projects. **Critical gap
| 2 | TST-002 | DONE | Critical | Create RabbitMq transport test project skeleton | `src/__Libraries/__Tests/StellaOps.Router.Transport.RabbitMq.Tests/` |
| 3 | TST-003 | DONE | High | Implement Router.Common tests | `src/__Libraries/__Tests/StellaOps.Router.Common.Tests/` |
| 4 | TST-004 | DONE | High | Implement Router.Config tests | `src/__Libraries/__Tests/StellaOps.Router.Config.Tests/` |
| 5 | TST-005 | TODO | Critical | Implement RabbitMq transport unit tests | Project exists but currently fails to build |
| 6 | TST-006 | TODO | Medium | Expand Microservice SDK tests | RequestDispatcher tests missing; integration suite failing |
| 5 | TST-005 | DONE | Critical | Implement RabbitMq transport unit tests | Project exists and passes; integration tests opt-in via `STELLAOPS_TEST_RABBITMQ=1` |
| 6 | TST-006 | DONE | Medium | Expand Microservice SDK tests | Added `RequestDispatcher` unit tests in `tests/StellaOps.Microservice.Tests/RequestDispatcherTests.cs` |
| 7 | TST-007 | DONE | Medium | Expand Transport.InMemory tests | `src/__Libraries/__Tests/StellaOps.Router.Transport.InMemory.Tests/` |
| 8 | TST-008 | TODO | Medium | Create integration test suite | `src/__Libraries/__Tests/StellaOps.Router.Integration.Tests/` currently failing |
| 8 | TST-008 | DONE | Medium | Create integration test suite | `src/__Libraries/__Tests/StellaOps.Router.Integration.Tests/` passes (60 tests) |
| 9 | TST-009 | DONE | Low | Expand TCP/TLS transport tests | Projects exist in `src/__Libraries/__Tests/` |
| 10 | TST-010 | TODO | Low | Create SourceGen integration tests | Test project exists; examples currently fail to build |
| 10 | TST-010 | DONE | Low | Create SourceGen integration tests | `src/__Libraries/__Tests/StellaOps.Microservice.SourceGen.Tests/` passes (18 tests) |
## Current State
@@ -48,7 +48,7 @@ Create comprehensive test coverage for StellaOps Router projects. **Critical gap
| Router.Transport.Tcp | `src/__Libraries/__Tests/StellaOps.Router.Transport.Tcp.Tests/` | Exists |
| Router.Transport.Tls | `src/__Libraries/__Tests/StellaOps.Router.Transport.Tls.Tests/` | Exists |
| Router.Transport.Udp | `src/__Libraries/__Tests/StellaOps.Router.Transport.Udp.Tests/` | Exists |
| **Router.Transport.RabbitMq** | `src/__Libraries/__Tests/StellaOps.Router.Transport.RabbitMq.Tests/` | Exists (currently failing build) |
| **Router.Transport.RabbitMq** | `src/__Libraries/__Tests/StellaOps.Router.Transport.RabbitMq.Tests/` | Exists (passes; integration tests opt-in) |
| Microservice | `tests/StellaOps.Microservice.Tests` | Exists |
| Microservice.SourceGen | `src/__Libraries/__Tests/StellaOps.Microservice.SourceGen.Tests/` | Exists |
@@ -82,6 +82,10 @@ Before marking this sprint DONE:
| Date (UTC) | Update | Owner |
|------------|--------|-------|
| 2025-12-19 | Archive audit: updated task/status tables to reflect current test project layout and known failing areas. | Planning |
| 2025-12-19 | Archive audit: Router integration + RabbitMQ + SourceGen tests passing; `examples/router/tests` were failing at audit time. | Planning |
| 2025-12-19 | Archive audit: `examples/router/tests/Examples.Integration.Tests` now pass (12 tests). | Planning |
| 2025-12-19 | Started closing remaining Microservice SDK test gaps (TST-006). | Implementer |
| 2025-12-19 | Completed TST-006 by adding focused RequestDispatcher tests; marked sprint DONE. | Implementer |
## Decisions & Risks

View File

@@ -127,9 +127,9 @@ These sprints can run in parallel:
| 7000-0001-0002 | Common Library | DONE | `src/__Libraries/StellaOps.Router.Common/` |
| 7000-0002-0001 | InMemory Transport | DONE | `src/__Libraries/StellaOps.Router.Transport.InMemory/` |
| 7000-0003-0001 | SDK Core | DONE | `src/__Libraries/StellaOps.Microservice/` |
| 7000-0003-0002 | SDK Handlers | TODO | `src/__Libraries/StellaOps.Microservice/` |
| 7000-0004-0001 | Gateway Core | TODO | `src/__Libraries/StellaOps.Router.Gateway/` |
| 7000-0004-0002 | Gateway Middleware | TODO | `src/__Libraries/StellaOps.Router.Gateway/` |
| 7000-0003-0002 | SDK Handlers | DONE | `src/__Libraries/StellaOps.Microservice/` |
| 7000-0004-0001 | Gateway Core | DONE | `src/__Libraries/StellaOps.Router.Gateway/` |
| 7000-0004-0002 | Gateway Middleware | DONE | `src/__Libraries/StellaOps.Router.Gateway/` |
| 7000-0004-0003 | Gateway Connections | TODO | `src/__Libraries/StellaOps.Router.Gateway/` + `src/__Libraries/StellaOps.Router.Transport.InMemory/` |
| 7000-0005-0001 | Heartbeat & Health | DONE | `src/__Libraries/StellaOps.Microservice/` + `src/__Libraries/StellaOps.Router.Gateway/` |
| 7000-0005-0002 | Routing Algorithm | DONE | `src/__Libraries/StellaOps.Router.Gateway/` |
@@ -143,10 +143,10 @@ These sprints can run in parallel:
| 7000-0007-0001 | Router Config | DONE | `src/__Libraries/StellaOps.Router.Config/` |
| 7000-0007-0002 | Microservice YAML | DONE | `src/__Libraries/StellaOps.Microservice/` |
| 7000-0008-0001 | Authority Integration | DONE | `src/__Libraries/StellaOps.Router.Gateway/` + `src/Authority/*` |
| 7000-0008-0002 | Source Generator | TODO | `src/__Libraries/StellaOps.Microservice.SourceGen/` |
| 7000-0009-0001 | Reference Example | TODO | `examples/router/` |
| 7000-0008-0002 | Source Generator | DONE | `src/__Libraries/StellaOps.Microservice.SourceGen/` |
| 7000-0009-0001 | Reference Example | DONE | `examples/router/` |
| 7000-0010-0001 | Migration | DONE | Multiple (final integration) |
| 7000-0011-0001 | Router Testing Sprint | TODO | `src/__Libraries/__Tests/` |
| 7000-0011-0001 | Router Testing Sprint | DONE | `tests/` + `src/__Libraries/__Tests/` |
## Critical Path