@arcadialdev/arcality 4.1.0 → 4.1.1

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.
Files changed (36) hide show
  1. package/.agents/skills/db-validation-evidence/SKILL.md +43 -0
  2. package/.agents/skills/db-validation-evidence/agents/openai.yaml +4 -0
  3. package/.agents/skills/db-validation-evidence/references/mission-patterns.md +130 -0
  4. package/.agents/skills/evidence-synthesis-reporting/SKILL.md +31 -0
  5. package/.agents/skills/form-expert/SKILL.md +98 -0
  6. package/.agents/skills/investigation-protocol/SKILL.md +56 -0
  7. package/.agents/skills/mission-generation-reviewer/SKILL.md +25 -0
  8. package/.agents/skills/modal-master/SKILL.md +46 -0
  9. package/.agents/skills/native-control-expert/SKILL.md +74 -0
  10. package/.agents/skills/qa-context-governance/SKILL.md +23 -0
  11. package/.agents/skills/security-evidence-triage/SKILL.md +23 -0
  12. package/.agents/skills/test-data-lifecycle/SKILL.md +24 -0
  13. package/README.md +103 -163
  14. package/bin/arcality.mjs +25 -25
  15. package/package.json +75 -75
  16. package/scripts/edit-config.mjs +843 -0
  17. package/scripts/gen-and-run.mjs +237 -169
  18. package/scripts/generate.mjs +236 -236
  19. package/scripts/init.mjs +47 -47
  20. package/src/configManager.mjs +13 -13
  21. package/src/envSetup.ts +229 -205
  22. package/src/services/codebaseAnalyzer.mjs +59 -59
  23. package/src/services/databaseValidationService.mjs +598 -0
  24. package/src/services/executionEvidenceService.mjs +124 -0
  25. package/src/services/generatedMissionSchema.mjs +76 -76
  26. package/src/services/generatedMissionStore.mjs +117 -117
  27. package/src/services/generationContext.mjs +242 -242
  28. package/src/services/mcpStdioClient.mjs +204 -0
  29. package/src/services/missionGenerator.mjs +329 -329
  30. package/src/services/routeDiscovery.mjs +762 -762
  31. package/tests/_helpers/ArcalityReporter.js +1342 -1255
  32. package/tests/_helpers/agentic-runner.bundle.spec.js +1354 -243
  33. package/.agent/skills/form-expert.md +0 -102
  34. package/.agent/skills/investigation-protocol.md +0 -61
  35. package/.agent/skills/modal-master.md +0 -41
  36. package/.agent/skills/native-control-expert.md +0 -82
package/README.md CHANGED
@@ -1,188 +1,128 @@
1
- <div align="center">
2
- <img src="./public/logo-arcadial-blanco.png" width="120" alt="Arcality Logo" />
3
- <br>
4
- <h1>Arcality Engine</h1>
5
- <p><b>Autonomous AI-Powered E2E Web Testing Agent</b></p>
6
-
7
- [![NPM Version](https://img.shields.io/npm/v/@arcadialdev/arcality?color=c084fc&label=NPM&style=for-the-badge)](https://www.npmjs.com/package/@arcadialdev/arcality)
8
- </div>
9
-
10
- <br>
11
-
12
- **Arcality** is an enterprise-grade autonomous testing agent designed by Arcadial. It replaces brittle, hard-coded UI automation with an intelligent, self-healing agent that understands natural language. Powered by our proprietary AI Cognitive Core and Headless Execution Engine, Arcality navigates web portals, fills forms dynamically, and verifies business logic without requiring you to write a single line of test code.
13
-
14
- ## ✨ Core Capabilities
15
-
16
- - 🧠 **Cognitive Execution Pipeline:** Arcality doesn't just click coordinates. It parses the DOM tree into an accessibility-focused abstraction, allowing it to "see" your application identically to a human user.
17
- - 🛡️ **Self-Healing & Forensic Debugging:** When elements shift or modals block the screen, Arcality doesn't instantly crash. It utilizes injected *E2E Expert Protocols* to debug the DOM, wait for networks, and gracefully recover.
18
- - ♻️ **YAML Persistence:** Once the Agent figures out how to successfully complete a prompt, the deterministic solution is saved locally as an optimized `.yaml` mission for lightning-fast regression testing in CI/CD.
19
- - 📊 **Agentic Diagnostics HTML Report:** Forget raw stack traces. Arcality generates beautiful, dark-mode `index.html` reports focusing entirely on **Agent Cognitive Process** and visual attachments.
20
- - 🧰 **Project-Centric Architecture:** Runs seamlessly locally with `arcality.config.json`. No messy global `.env` files required.
21
-
22
- ---
23
-
24
- ## 🚀 Getting Started
25
-
26
- ### 1. Install in your project
27
-
28
- ```bash
29
- npm install @arcadialdev/arcality
30
- ```
31
-
32
-
33
- ### 2. Initialize your project
34
- Run the setup wizard to connect your project and generate the configuration.
35
-
36
- ```bash
37
- npx arcality init
38
- ```
39
-
40
- ### 3. Run your first mission
41
- ```bash
42
- # Open interactive menu
43
- npx arcality
44
-
45
- # Or run directly (Ghost Mode)
46
- npx arcality run
47
- ```
48
-
49
-
50
- ### 📦 Updating Arcality
51
- Run the following to get the latest version:
52
- ```bash
53
- npm update @arcadialdev/arcality
54
- ```
55
-
56
- ### ⚙️ Configuration (`arcality.config.json`)
57
- After initializing with `npx arcality init`, a config file is created in the project root. Edit it to set your project name, base URL, and authentication details. The CLI reads this file on every run, ensuring consistent environment variables.
58
-
59
- ### QA Context Governance
60
- Arcality can load local business rules from `.arcality/qa-context.md` and governance metadata from `.arcality/qa-context.meta.json`.
61
-
62
- The effective precedence order is:
63
-
64
- 1. Local `qa-context.md`
65
- 2. Backend collective memory
66
- 3. Base QA heuristics
1
+ <div align="center">
2
+ <img src="./public/logo-arcadial-blanco.png" width="120" alt="Arcality Logo" />
3
+ <br>
4
+ <h1>Arcality Engine</h1>
5
+ <p><b>Autonomous AI-Powered E2E Web Testing Agent</b></p>
6
+
7
+ [![NPM Version](https://img.shields.io/npm/v/@arcadialdev/arcality?color=c084fc&label=NPM&style=for-the-badge)](https://www.npmjs.com/package/@arcadialdev/arcality)
8
+ </div>
67
9
 
68
- If local business rules conflict with backend memory, Arcality now prioritizes the local file.
10
+ <br>
69
11
 
70
- Example `.arcality/qa-context.meta.json`:
12
+ <br>
71
13
 
72
- ```json
73
- {
74
- "version": "1.0.0",
75
- "updated_by": "qa.owner@company.com",
76
- "approved_by": "qa.lead@company.com",
77
- "owner_team": "QA",
78
- "effective_from": "2026-06-15",
79
- "change_summary": "Initial governance metadata for customer-specific QA rules.",
80
- "tags": ["business-rules", "ui-navigation"]
81
- }
82
- ```
14
+ **Arcality** is a QA agent for web applications that helps teams describe flows in natural language, execute them with resilience, and preserve successful runs as reusable missions with evidence that is easier to review.
83
15
 
84
- Governance enforcement modes:
16
+ ## What Arcality Gives You
85
17
 
86
- - `ARCALITY_QA_CONTEXT_GOVERNANCE=off`: disables governance checks
87
- - `ARCALITY_QA_CONTEXT_GOVERNANCE=warn`: reports warnings but does not block execution
88
- - `ARCALITY_QA_CONTEXT_GOVERNANCE=strict`: blocks execution when `qa-context.md` exists but governance metadata is missing or incomplete
18
+ - Natural-language driven QA flows for real web applications
19
+ - Reusable local mission files that help teams keep coverage organized
20
+ - Visual evidence and execution summaries that are easier to share
21
+ - Project-scoped configuration, context, and artifacts
22
+ - Optional database corroboration for high-confidence validation
89
23
 
90
- In CI, Arcality defaults to `strict` governance mode unless you override `ARCALITY_QA_CONTEXT_GOVERNANCE`.
24
+ ---
91
25
 
26
+ ## Getting Started
92
27
 
93
- ---
94
-
95
- ## 💻 CLI Commands Cheatsheet
96
-
97
- The Arcality flow is designed to be used globally or project-wide via `npx`. Below are all currently supported commands:
98
-
99
- | Command | Description | Internal Behavior |
100
- | :--- | :--- | :--- |
101
- | `npx arcality` | **Interactive Menu**<br/>Launches a visual menu in the terminal to guide the user. | Prompts for the Mission to execute. Ideal for new users who want a guided experience. |
102
- | `npx arcality init` | **Initial Configuration**<br/>Connects the current project to Arcadial. | Prompts for your API Key and Project ID, generates `arcality.config.json`, and validates the portal connection. |
103
- | `npx arcality generate --dry-run` | **Dynamic Mission Discovery**<br/>Inspects the target codebase and previews the routes/pages that can become generated missions. | Runs framework detection, route discovery, context-aware mission planning, and prints a dry-run summary without writing YAML files. |
104
- | `npx arcality generate --count 5` | **Generated Mission Writer**<br/>Creates YAML missions automatically from the discovered routes. | Generates validated Arcality YAML missions, deduplicates existing output, and stores cache metadata in `.arcality/cache/generate-state.json`. |
105
- | `npx arcality run` | **Mission Runner (Agent Mode)**<br/>Launches the QA Agent directly. | Skips the interactive menu, scans the _package.json_ ("Ghost Mode"), and unleashes the AI agent. Ideal for CI/CD. |
106
- | `npx arcality logs` | **Mission Logs**<br/>Shows the last 3 executed missions in a concise QA-friendly format. | Reads the local `.arcality/out` mission summaries and displays result, failure reason, last relevant steps, and report path. |
28
+ ### 1. Install in your project
107
29
 
108
- ### Parallel collection execution
30
+ ```bash
31
+ npm install @arcadialdev/arcality
32
+ ```
33
+
34
+ ### 2. Initialize your project
109
35
 
110
- When running a saved collection from the interactive CLI, Arcality can execute multiple missions at the same time. The default is `3` simultaneous missions and the maximum allowed value is `5`.
36
+ ```bash
37
+ npx arcality init
38
+ ```
111
39
 
112
- Parallel execution opens multiple independent browser sessions. Arcality cannot validate the tested portal's internal session rules, user lock policies, shared test data constraints, or limits for multiple logins with the same account. If the portal does not support parallel sessions safely, run the collection sequentially with concurrency `1`.
40
+ ### 3. Run your first mission
113
41
 
114
- ### `generate` command
42
+ ```bash
43
+ # Open the interactive menu
44
+ npx arcality
115
45
 
116
- `npx arcality generate` is the mission-generation entrypoint. It analyzes the current codebase, discovers supported routes, enriches them with route signals, and writes Arcality mission YAML files under the configured output directory.
46
+ # Or launch the agent directly
47
+ npx arcality run
48
+ ```
117
49
 
118
- Examples:
50
+ ### Update Arcality
119
51
 
120
52
  ```bash
121
- npx arcality generate --dry-run
122
- npx arcality generate --count 5
123
- npx arcality generate --page "/users,/settings" --count 4
124
- npx arcality generate --page "/checkout" --prompt "focus on validation and payment edge cases"
125
- npx arcality generate --output-dir ".arcality/generated-review"
126
- npx arcality generate --debug
53
+ npm update @arcadialdev/arcality
127
54
  ```
128
55
 
129
- Current behavior:
56
+ ---
57
+
58
+ ## Local Project Setup
59
+
60
+ Arcality stores its project configuration in `arcality.config.json` and keeps runtime artifacts under `.arcality/`.
130
61
 
131
- - Supports automatic discovery for `Next.js`, `React Router` object configs, `React Router` nested JSX routes, and filesystem fallbacks for simpler SPA layouts.
132
- - Detects route metadata such as dynamic params, example paths, and route families.
133
- - Applies optional customer guidance from `.arcality/qa-context.md` and governance metadata from `.arcality/qa-context.meta.json`.
134
- - Generates only the most useful route variants to reduce noise.
135
- - Validates every generated mission against the Arcality mission schema before writing files.
136
- - Deduplicates previously generated missions by mission identity.
62
+ For existing projects, the interactive menu now separates:
63
+ - `Editar configuracion del proyecto`: recalibrates the current local setup
64
+ - `Reconectar backend / proyecto nuevo`: reruns the full onboarding flow
137
65
 
138
- Notes:
66
+ This makes it easier to refine a project without rebuilding everything from zero.
139
67
 
140
- - `--prompt` is supported and refines the generated mission focus.
141
- - `--page` accepts route fragments or exact route values.
142
- - Generated missions are written under `<yamlOutputDir>/generated` by default.
143
- - Local cache metadata is stored in `.arcality/cache/generate-state.json`.
144
- - Regression coverage for this command is available through `npm.cmd run test:generate` on Windows or `npm run test:generate` where shell policy allows it.
68
+ ---
69
+
70
+ ## Database Corroboration
71
+
72
+ Arcality can validate mission outcomes against PostgreSQL during local runs without placing secrets inside mission files.
145
73
 
146
- - Discovery and mission generation are covered by regression tests.
74
+ Recommended approach:
75
+ - keep connection data in `.env`
76
+ - keep reusable validation queries in `.arcality/db-validations.yaml`
77
+ - use MCP mode only when your team already has an approved PostgreSQL bridge
147
78
 
79
+ The recalibration flow can help you:
80
+ - register or update the connection profile
81
+ - choose direct PostgreSQL or MCP mode
82
+ - run a lightweight health check before leaving setup
148
83
 
149
84
  ---
150
-
151
- ## 🛠️ Internal Architecture
152
-
153
- Arcality operates on a highly decoupled modular system designed for maximum resilience:
154
-
155
- 1. **The CLI Wrapper:** A Node.js CLI that orchestrates Playwright subprocesses, parses configurations (`arcality.config.json`), and manages the CLI spinner aesthetic using `@clack/prompts`.
156
- 2. **The Vision Engine:** Instead of capturing raw DOM, Arcality strips out CSS/JS noise and builds an `Interactive Component Tree` using `aria-labels` and `roles`.
157
- 3. **The Cognitive Gateway (`AIAgentHelper`):** Handles bidirectional communication with the central AI Brain. It uses advanced recursive Tool Calling to perform `UI actions` (click, type, scroll) and `Forensic actions` (capture_console_errors).
158
- 4. **Skill Injection (`.agents/skills/`):** At runtime, the agent injects external E2E standards directly into the System Prompt to enforce strict QA policies and intelligent locator strategies.
159
- 5. **The Reporter:** A custom execution reporter (`ArcalityReporter.ts`) that filters out robotic hooks and renders the Agent's pure cognitive decision tree into an HTML dashboard.
160
-
161
- ---
162
-
163
- ## 📁 Configuration (`arcality.config.json`)
164
-
165
- When you run `npx arcality init`, a configuration is generated in your project root.
166
- ```json
167
- {
168
- "project": {
169
- "name": "PortalAdminQA",
170
- "baseUrl": "https://dev.arcadial.lat",
171
- "frameworkDetected": "Next.js"
172
- },
173
- "auth": {
174
- "username": "qa_user",
175
- "credentialsSource": "env"
176
- },
177
- "runtime": {
178
- "yamlOutputDir": "./.arcality"
179
- }
180
- }
181
- ```
182
- *All reports, saved YAML missions, and runtime context are cleanly isolated inside your project's `./.arcality/` output directory.*
183
-
184
- ---
185
-
186
- <div align="center">
187
- <p>Built with ❤️ by the QA Intelligence team at <b>Arcadial</b>.</p>
188
- </div>
85
+
86
+ ## QA Context
87
+
88
+ Arcality can load local business rules from `.arcality/qa-context.md` and optional governance metadata from `.arcality/qa-context.meta.json`.
89
+
90
+ Precedence order:
91
+ 1. Local QA context file
92
+ 2. Backend collective memory
93
+ 3. Base QA heuristics
94
+
95
+ If your team wants stronger control, governance can be enforced in `off`, `warn`, or `strict` mode.
96
+
97
+ ---
98
+
99
+ ## CLI Commands
100
+
101
+ | Command | Purpose |
102
+ | :--- | :--- |
103
+ | `npx arcality` | Open the interactive menu |
104
+ | `npx arcality init` | Configure a project for first use |
105
+ | `npx arcality run` | Launch the agent directly |
106
+ | `npx arcality generate --dry-run` | Preview candidate missions |
107
+ | `npx arcality generate --count 5` | Generate a limited mission batch |
108
+ | `npx arcality logs` | Review recent mission summaries |
109
+
110
+ ### Parallel collections
111
+
112
+ Arcality can execute multiple saved missions in parallel. Use this only when the target application safely supports concurrent sessions and shared test data will not collide.
113
+
114
+ ### Generate missions
115
+
116
+ `npx arcality generate` helps teams bootstrap reusable mission files from the current project. It is meant to accelerate authoring, not replace QA judgment.
117
+
118
+ ---
119
+
120
+ ## Product Overview
121
+
122
+ Arcality is designed to help QA teams move faster without depending on brittle hard-coded automation. It keeps configuration, local context, generated missions, and evidence close to the application under test so teams can evolve coverage in a practical way.
123
+
124
+ ---
125
+
126
+ <div align="center">
127
+ <p>Built by the QA Intelligence team at <b>Arcadial</b>.</p>
128
+ </div>
package/bin/arcality.mjs CHANGED
@@ -12,22 +12,22 @@ const PACKAGE_ROOT = path.resolve(__dirname, '..');
12
12
  // REFUERZO DE ARGUMENTOS: Capturamos TODO lo que venga de la consola
13
13
  const rawArgs = process.argv.slice(2);
14
14
  let isRun = false;
15
- let isInit = false;
16
- let isSetup = false;
17
- let isLogs = false;
18
- let isRunAll = false; // CI/CD mode: runs all missions from API headlessly
19
- let isGenerate = false;
15
+ let isInit = false;
16
+ let isSetup = false;
17
+ let isLogs = false;
18
+ let isRunAll = false; // CI/CD mode: runs all missions from API headlessly
19
+ let isGenerate = false;
20
20
 
21
21
  // Buscamos los comandos en cualquier posición para evitar filtros de NPM en Windows
22
22
  rawArgs.forEach(arg => {
23
23
  if (arg === 'run') isRun = true;
24
24
  if (arg === 'init') isInit = true;
25
25
  if (arg === 'setup') isSetup = true;
26
- if (arg === 'logs') isLogs = true;
27
- if (arg === '--logs') isLogs = true;
28
- if (arg === '--run-all') isRunAll = true;
29
- if (arg === 'generate') isGenerate = true;
30
- });
26
+ if (arg === 'logs') isLogs = true;
27
+ if (arg === '--logs') isLogs = true;
28
+ if (arg === '--run-all') isRunAll = true;
29
+ if (arg === 'generate') isGenerate = true;
30
+ });
31
31
 
32
32
  if (isLogs) {
33
33
  const logsScript = path.join(PACKAGE_ROOT, 'scripts', 'arcality-logs.mjs');
@@ -36,21 +36,21 @@ if (isLogs) {
36
36
  cwd: process.cwd(),
37
37
  env: { ...process.env, ARCALITY_ROOT: PACKAGE_ROOT }
38
38
  }).on('exit', code => process.exit(code || 0));
39
- } else if (isInit) {
40
- const initScript = path.join(PACKAGE_ROOT, 'scripts', 'init.mjs');
41
- spawn('node', [initScript, ...rawArgs.filter(a => a !== 'init')], {
42
- stdio: 'inherit',
43
- cwd: process.cwd(),
44
- env: { ...process.env, ARCALITY_ROOT: PACKAGE_ROOT }
45
- }).on('exit', code => process.exit(code || 0));
46
- } else if (isGenerate) {
47
- const generateScript = path.join(PACKAGE_ROOT, 'scripts', 'generate.mjs');
48
- spawn('node', [generateScript, ...rawArgs.filter(a => a !== 'generate')], {
49
- stdio: 'inherit',
50
- cwd: process.cwd(),
51
- env: { ...process.env, ARCALITY_ROOT: PACKAGE_ROOT }
52
- }).on('exit', code => process.exit(code || 0));
53
- } else if (isRunAll) {
39
+ } else if (isInit) {
40
+ const initScript = path.join(PACKAGE_ROOT, 'scripts', 'init.mjs');
41
+ spawn('node', [initScript, ...rawArgs.filter(a => a !== 'init')], {
42
+ stdio: 'inherit',
43
+ cwd: process.cwd(),
44
+ env: { ...process.env, ARCALITY_ROOT: PACKAGE_ROOT }
45
+ }).on('exit', code => process.exit(code || 0));
46
+ } else if (isGenerate) {
47
+ const generateScript = path.join(PACKAGE_ROOT, 'scripts', 'generate.mjs');
48
+ spawn('node', [generateScript, ...rawArgs.filter(a => a !== 'generate')], {
49
+ stdio: 'inherit',
50
+ cwd: process.cwd(),
51
+ env: { ...process.env, ARCALITY_ROOT: PACKAGE_ROOT }
52
+ }).on('exit', code => process.exit(code || 0));
53
+ } else if (isRunAll) {
54
54
  // CI/CD HEADLESS MODE: Descarga y ejecuta todas las misiones del proyecto desde la API
55
55
  // Uso: arcality --run-all [--workers=4] [--tags=smoke,regression] [--project-id=xxx]
56
56
  const mainScript = path.join(PACKAGE_ROOT, 'scripts', 'gen-and-run.mjs');
package/package.json CHANGED
@@ -1,75 +1,75 @@
1
- {
2
- "name": "@arcadialdev/arcality",
3
- "version": "4.1.0",
4
- "description": "El primer ingeniero QA Autónomo integrado al CI/CD. Creado por Arcadial.",
5
- "main": "index.js",
6
- "scripts": {
7
- "dev": "node scripts/gen-and-run.mjs",
8
- "arcality": "node scripts/gen-and-run.mjs",
9
- "test:generate": "node --test tests/generate/*.test.mjs",
10
- "postinstall": "node scripts/postinstall.mjs",
11
- "setup": "node scripts/setup.mjs",
12
- "build:runner": "npx esbuild tests/_helpers/agentic-runner.spec.ts --bundle --platform=node --target=node18 --format=cjs --external:@playwright/test --external:chalk --external:dotenv --external:node-fetch --external:js-yaml --external:axios --external:crypto --external:fs --external:path --outfile=tests/_helpers/agentic-runner.bundle.spec.js",
13
- "prepublishOnly": "npm run build:runner"
14
- },
15
- "bin": {
16
- "arcality": "bin/arcality.mjs"
17
- },
18
- "files": [
19
- "bin/",
20
- "scripts/",
21
- "src/",
22
- "public/",
23
- ".agent/",
24
- ".agents/",
25
- "tests/_helpers/agentic-runner.bundle.spec.js",
26
- "tests/_helpers/ArcalityReporter.js",
27
- "playwright.config.js",
28
- "README.md"
29
- ],
30
- "publishConfig": {
31
- "access": "public"
32
- },
33
- "repository": {
34
- "type": "git",
35
- "url": "https://dev.azure.com/arcadial/_git/ArcalityQA"
36
- },
37
- "keywords": [
38
- "qa",
39
- "testing",
40
- "ai",
41
- "playwright",
42
- "autonomous",
43
- "arcadial"
44
- ],
45
- "author": "Arcadial",
46
- "license": "ISC",
47
- "type": "commonjs",
48
- "bugs": {
49
- "url": "https://dev.azure.com/arcadial/_git/ArcalityQA"
50
- },
51
- "homepage": "https://dev.azure.com/arcadial/_git/ArcalityQA",
52
- "devDependencies": {
53
- "@types/figlet": "^1.7.0",
54
- "@types/node": "^25.0.9",
55
- "@types/prompts": "^2.4.9",
56
- "esbuild": "^0.20.2",
57
- "typescript": "^6.0.3"
58
- },
59
- "dependencies": {
60
- "@azure/storage-blob": "^12.31.0",
61
- "@clack/prompts": "^1.0.1",
62
- "@inquirer/prompts": "^8.2.0",
63
- "@playwright/test": "^1.57.0",
64
- "axios": "^1.13.6",
65
- "chalk": "^5.6.2",
66
- "dotenv": "^17.2.3",
67
- "figlet": "^1.9.4",
68
- "js-yaml": "^4.1.1",
69
- "mime-types": "^3.0.2",
70
- "node-fetch": "^3.3.2",
71
- "prompts": "^2.4.2",
72
- "terminal-image": "^1.1.0",
73
- "tsx": "^4.21.0"
74
- }
75
- }
1
+ {
2
+ "name": "@arcadialdev/arcality",
3
+ "version": "4.1.1",
4
+ "description": "El primer ingeniero QA Autónomo integrado al CI/CD. Creado por Arcadial.",
5
+ "main": "index.js",
6
+ "scripts": {
7
+ "dev": "node scripts/gen-and-run.mjs",
8
+ "arcality": "node scripts/gen-and-run.mjs",
9
+ "test:generate": "node --test tests/generate/*.test.mjs",
10
+ "postinstall": "node scripts/postinstall.mjs",
11
+ "setup": "node scripts/setup.mjs",
12
+ "build:runner": "npx esbuild tests/_helpers/agentic-runner.spec.ts --bundle --platform=node --target=node18 --format=cjs --external:@playwright/test --external:chalk --external:dotenv --external:node-fetch --external:js-yaml --external:axios --external:crypto --external:fs --external:path --outfile=tests/_helpers/agentic-runner.bundle.spec.js",
13
+ "prepublishOnly": "npm run build:runner"
14
+ },
15
+ "bin": {
16
+ "arcality": "bin/arcality.mjs"
17
+ },
18
+ "files": [
19
+ "bin/",
20
+ "scripts/",
21
+ "src/",
22
+ "public/",
23
+ ".agents/",
24
+ "tests/_helpers/agentic-runner.bundle.spec.js",
25
+ "tests/_helpers/ArcalityReporter.js",
26
+ "playwright.config.js",
27
+ "README.md"
28
+ ],
29
+ "publishConfig": {
30
+ "access": "public"
31
+ },
32
+ "repository": {
33
+ "type": "git",
34
+ "url": "https://dev.azure.com/arcadial/_git/ArcalityQA"
35
+ },
36
+ "keywords": [
37
+ "qa",
38
+ "testing",
39
+ "ai",
40
+ "playwright",
41
+ "autonomous",
42
+ "arcadial"
43
+ ],
44
+ "author": "Arcadial",
45
+ "license": "ISC",
46
+ "type": "commonjs",
47
+ "bugs": {
48
+ "url": "https://dev.azure.com/arcadial/_git/ArcalityQA"
49
+ },
50
+ "homepage": "https://dev.azure.com/arcadial/_git/ArcalityQA",
51
+ "devDependencies": {
52
+ "@types/figlet": "^1.7.0",
53
+ "@types/node": "^25.0.9",
54
+ "@types/prompts": "^2.4.9",
55
+ "esbuild": "^0.20.2",
56
+ "typescript": "^6.0.3"
57
+ },
58
+ "dependencies": {
59
+ "@azure/storage-blob": "^12.31.0",
60
+ "@clack/prompts": "^1.0.1",
61
+ "@inquirer/prompts": "^8.2.0",
62
+ "@playwright/test": "^1.57.0",
63
+ "axios": "^1.13.6",
64
+ "chalk": "^5.6.2",
65
+ "dotenv": "^17.2.3",
66
+ "figlet": "^1.9.4",
67
+ "js-yaml": "^4.1.1",
68
+ "mime-types": "^3.0.2",
69
+ "node-fetch": "^3.3.2",
70
+ "pg": "^8.22.0",
71
+ "prompts": "^2.4.2",
72
+ "terminal-image": "^1.1.0",
73
+ "tsx": "^4.21.0"
74
+ }
75
+ }