@thelogicatelier/sylva 1.0.14 → 1.0.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -80,11 +80,11 @@ npx @thelogicatelier/sylva --local-repository . -m openai/gpt-5.2 -i 25
80
80
 
81
81
  For detailed guidance, see the [Choosing the Right Model](https://achatt89.github.io/sylva/models/choosing.html) and [Iteration Depth Guide](https://achatt89.github.io/sylva/models/iterations.html) docs.
82
82
 
83
- ### Framework Awareness (NEW)
83
+ ### Framework & Integration Awareness (NEW)
84
84
 
85
- Sylva now includes **deterministic framework detection** that scans the entire repository (including nested subprojects and monorepos) for manifest files before invoking the LLM. This prevents framework hallucination and produces more accurate `AGENTS.md` output.
85
+ Sylva now includes **deterministic framework detection** and **source code integration scanning** that scans the entire repository (including nested subprojects and monorepos) before invoking the LLM. This prevents framework hallucination and produces more accurate `AGENTS.md` output.
86
86
 
87
- **What it detects:**
87
+ **What it detects via Manifests:**
88
88
  - **OpenClaw** (`openclaw.json`) — treated as the primary orchestrator
89
89
  - **Node.js/JS/TS** — React, Angular, Vue, Next.js, Express, NestJS, etc. from `package.json`
90
90
  - **Python** — Django, Flask, FastAPI from `requirements.txt`, `pyproject.toml`, `Pipfile`
@@ -93,11 +93,16 @@ Sylva now includes **deterministic framework detection** that scans the entire r
93
93
  - **Go** — Gin, Echo, Fiber from `go.mod`
94
94
  - **Rust** — Actix, Axum, Tokio from `Cargo.toml`
95
95
 
96
+ **What it detects via Source Scanning (Integrations & Deployments):**
97
+ - **Deployment Platforms** — Fly.io, Railway, Render, AWS, GCP, Azure, DigitalOcean via `fly.toml`, `railway.json`, `app.yaml`, or even `Dockerfile` base image inspection.
98
+ - **External APIs** — Stripe, Wix, AWS, Instagram Graph API via raw API URL regex matching or SDK imports directly in the source code.
99
+ - **Strict Security** — It automatically ignores `.env` files entirely to prevent secret leakage and strictly respects the `.gitignore`.
100
+
96
101
  **Version certainty:** Versions are only reported when explicitly found in manifest/lockfiles. Never assumed.
97
102
 
98
- **Web grounding:** When `BRAVE_API_KEY` is set, Sylva fetches official docs for detected frameworks (version-specific when exact versions are known, latest fallback otherwise).
103
+ **Web grounding:** When `BRAVE_API_KEY` is set, Sylva fetches official docs for detected frameworks (version-specific when exact versions are known, latest fallback otherwise) to feed into the architecture constraints. Note: It intelligently rate-limits itself to respect the Brave Free Tier (1 req/s).
99
104
 
100
- **Debug output:** `awareness.json` is saved alongside `AGENTS.md` for full transparency.
105
+ **Debug output:** `awareness.json` and `grounding.json` are saved alongside `AGENTS.md` for full transparency.
101
106
 
102
107
  ### Environment Overrides
103
108
  - `AUTOSKILL_MODEL`: Set this to `gemini` or `anthropic` or `openai` to change the default execution provider globally without providing `-m` on every execution.
package/dist/prompts.js CHANGED
@@ -8,7 +8,7 @@ exports.CODEBASE_ANALYSIS_SIGNATURE = (0, ax_1.f)()
8
8
  .output("projectOverview", ax_1.f.string("Project Overview & Context: Exhaustively describe all primary sub-services, their purpose, and what languages or frameworks power them."))
9
9
  .output("agentPersona", ax_1.f.string("Agent Persona / Role"))
10
10
  .output("techStack", ax_1.f.string("Tech Stack & Versions: List EVERY distinct language, library, database, and external API dependency used. WARNING: Do NOT guess frameworks based on assumptions or the presence of a package.json. You must explicitly scan the actual code files (e.g. imports in .py, .ts, .js) and dependency manifests (e.g. requirements.txt, go.mod) to determine the EXACT tech stack."))
11
- .output("directoryStructure", ax_1.f.string("Directory Structure (The Map): Deeply map out all root folders, separating different sub-projects (frontend vs backend) and their specific structures."))
11
+ .output("directoryStructure", ax_1.f.string("Directory Structure (The Map): Deeply map out all root folders. CRITICAL: You MUST strictly represent the EXACT physical file and directory structure provided in the source context. Do NOT invent, extrapolate, or hallucinate conceptual directories (like 'client/' or 'server/') if they do not physically exist on disk. If you see scripts like 'build:client' or 'build:server' in a package.json, interpret them as Build Output pipelines (like SSR/SSG), NOT as physical source directories unless those directories literally exist."))
12
12
  .output("executionCommands", ax_1.f.string("Execution Commands: Exact terminal commands to run or build."))
13
13
  .output("codeStyleAndFormatting", ax_1.f.string("Code Style & Formatting: Language-specific formatting and strictly enforced linting rules."))
14
14
  .output("architectureAndDesignPatterns", ax_1.f.string("Architecture & Design Patterns: Detailed cross-service logical flow, API boundaries, and system design logic."))
@@ -32,7 +32,7 @@ exports.COMPILE_CONVENTIONS_SIGNATURE = (0, ax_1.f)()
32
32
  .input("projectOverview", ax_1.f.string("Project Overview & Context."))
33
33
  .input("agentPersona", ax_1.f.string("Agent Persona / Role."))
34
34
  .input("techStack", ax_1.f.string("Tech Stack & Versions."))
35
- .input("directoryStructure", ax_1.f.string("Directory Structure (The Map)."))
35
+ .input("directoryStructure", ax_1.f.string("Directory Structure (The Map). CRITICAL: Maintain the exact PHYSICAL file and directory structure produced by the analyzer. Do NOT invent conceptual boundaries (like client/ or server/) if they are not in the provided map."))
36
36
  .input("executionCommands", ax_1.f.string("Execution Commands."))
37
37
  .input("codeStyleAndFormatting", ax_1.f.string("Code Style & Formatting."))
38
38
  .input("architectureAndDesignPatterns", ax_1.f.string("Architecture & Design Patterns."))
@@ -56,7 +56,7 @@ exports.EXTRACT_AGENTS_SECTIONS_SIGNATURE = (0, ax_1.f)()
56
56
  .input("awarenessContext", ax_1.f.string("Deterministically detected framework/architecture constraints. AUTHORITATIVE — do not contradict. If OpenClaw orchestrator is present, include OpenClaw Runtime section. Show version certainty for each framework. Include Framework References when web refs are available."))
57
57
  .output("projectOverview", ax_1.f.string("Comprehensive description of the project: what it does, its tech stack, its primary languages, and its overall purpose and functionality."))
58
58
  .output("techStack", ax_1.f.string("Explicit and exhaustive list of supported languages, frameworks, UI libraries, backend runtimes, and tools used in the repository. Annotate what each technology is used for (e.g., 'X Framework for UI', 'Y Language for REST Services')."))
59
- .output("architecture", ax_1.f.string("Deep mapping of where things live: directory layout, key modules, entry points, and their responsibilities. You MUST generate an ASCII diagram showing the architecture, module relationships, and sub-services. Break down complex monorepos explicitly (e.g., separating frontend code vs backend code)."))
59
+ .output("architecture", ax_1.f.string("Deep mapping of where things live: directory layout, key modules, entry points, and their responsibilities. You MUST generate an ASCII diagram showing the strict PHYSICAL file architecture. CRITICAL: Do NOT invent conceptual directories like 'client/' or 'server/' if they do not exist on disk. Rely solely on the provided conventions Markdown. Build targets (like SSR/SSG scripts) are behaviors, not physical source folders."))
60
60
  .output("codeStyle", ax_1.f.string("Granular coding standards observed: language version, formatting, naming conventions, import ordering, type-hinting rules, preferred patterns vs anti-patterns. Explicitly mention how different stacks in a monorepo communicate (e.g., REST, GraphQL, etc.) and how proprietary or 3rd-party external APIs are wrapped or invoked. Provide concrete examples from the codebase. All code blocks must be properly opened AND closed with triple backticks."))
61
61
  .output("antiPatternsAndRestrictions", ax_1.f.string("Specific anti-patterns and 'NEVER do this' rules the AI must strictly avoid."))
62
62
  .output("databaseAndState", ax_1.f.string("Guidelines on how data and state should flow through the application, including databases, external API data syncing, or state managers."))
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thelogicatelier/sylva",
3
- "version": "1.0.14",
3
+ "version": "1.0.15",
4
4
  "description": "Auto-generate AGENTS.md for your repository using Ax-LLM. Analyze the structural backbone, data flow, and day-to-day coding conventions natively.",
5
5
  "main": "dist/index.js",
6
6
  "bin": {