@arcadialdev/arcality 2.4.30 → 2.4.32

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 (81) hide show
  1. package/.agent/skills/form-expert.md +99 -0
  2. package/.agent/skills/investigation-protocol.md +61 -0
  3. package/.agent/skills/modal-master.md +41 -0
  4. package/.agent/skills/native-control-expert.md +82 -0
  5. package/.agents/skills/e2e-testing-expert/SKILL.md +28 -0
  6. package/.agents/skills/frontend-design/LICENSE.txt +177 -0
  7. package/.agents/skills/frontend-design/SKILL.md +42 -0
  8. package/.agents/skills/nodejs-backend-patterns/SKILL.md +639 -0
  9. package/.agents/skills/nodejs-backend-patterns/references/advanced-patterns.md +430 -0
  10. package/.agents/skills/playwright-best-practices/LICENSE.md +7 -0
  11. package/.agents/skills/playwright-best-practices/README.md +147 -0
  12. package/.agents/skills/playwright-best-practices/SKILL.md +303 -0
  13. package/.agents/skills/playwright-best-practices/advanced/authentication-flows.md +360 -0
  14. package/.agents/skills/playwright-best-practices/advanced/authentication.md +871 -0
  15. package/.agents/skills/playwright-best-practices/advanced/clock-mocking.md +364 -0
  16. package/.agents/skills/playwright-best-practices/advanced/mobile-testing.md +409 -0
  17. package/.agents/skills/playwright-best-practices/advanced/multi-context.md +288 -0
  18. package/.agents/skills/playwright-best-practices/advanced/multi-user.md +393 -0
  19. package/.agents/skills/playwright-best-practices/advanced/network-advanced.md +452 -0
  20. package/.agents/skills/playwright-best-practices/advanced/third-party.md +464 -0
  21. package/.agents/skills/playwright-best-practices/architecture/pom-vs-fixtures.md +363 -0
  22. package/.agents/skills/playwright-best-practices/architecture/test-architecture.md +369 -0
  23. package/.agents/skills/playwright-best-practices/architecture/when-to-mock.md +383 -0
  24. package/.agents/skills/playwright-best-practices/browser-apis/browser-apis.md +391 -0
  25. package/.agents/skills/playwright-best-practices/browser-apis/iframes.md +403 -0
  26. package/.agents/skills/playwright-best-practices/browser-apis/service-workers.md +504 -0
  27. package/.agents/skills/playwright-best-practices/browser-apis/websockets.md +403 -0
  28. package/.agents/skills/playwright-best-practices/core/annotations.md +424 -0
  29. package/.agents/skills/playwright-best-practices/core/assertions-waiting.md +361 -0
  30. package/.agents/skills/playwright-best-practices/core/configuration.md +452 -0
  31. package/.agents/skills/playwright-best-practices/core/fixtures-hooks.md +417 -0
  32. package/.agents/skills/playwright-best-practices/core/global-setup.md +434 -0
  33. package/.agents/skills/playwright-best-practices/core/locators.md +242 -0
  34. package/.agents/skills/playwright-best-practices/core/page-object-model.md +315 -0
  35. package/.agents/skills/playwright-best-practices/core/projects-dependencies.md +453 -0
  36. package/.agents/skills/playwright-best-practices/core/test-data.md +492 -0
  37. package/.agents/skills/playwright-best-practices/core/test-suite-structure.md +361 -0
  38. package/.agents/skills/playwright-best-practices/core/test-tags.md +298 -0
  39. package/.agents/skills/playwright-best-practices/debugging/console-errors.md +420 -0
  40. package/.agents/skills/playwright-best-practices/debugging/debugging.md +504 -0
  41. package/.agents/skills/playwright-best-practices/debugging/error-testing.md +360 -0
  42. package/.agents/skills/playwright-best-practices/debugging/flaky-tests.md +496 -0
  43. package/.agents/skills/playwright-best-practices/frameworks/angular.md +530 -0
  44. package/.agents/skills/playwright-best-practices/frameworks/nextjs.md +469 -0
  45. package/.agents/skills/playwright-best-practices/frameworks/react.md +531 -0
  46. package/.agents/skills/playwright-best-practices/frameworks/vue.md +574 -0
  47. package/.agents/skills/playwright-best-practices/infrastructure-ci-cd/ci-cd.md +468 -0
  48. package/.agents/skills/playwright-best-practices/infrastructure-ci-cd/docker.md +283 -0
  49. package/.agents/skills/playwright-best-practices/infrastructure-ci-cd/github-actions.md +546 -0
  50. package/.agents/skills/playwright-best-practices/infrastructure-ci-cd/gitlab.md +397 -0
  51. package/.agents/skills/playwright-best-practices/infrastructure-ci-cd/other-providers.md +521 -0
  52. package/.agents/skills/playwright-best-practices/infrastructure-ci-cd/parallel-sharding.md +371 -0
  53. package/.agents/skills/playwright-best-practices/infrastructure-ci-cd/performance.md +453 -0
  54. package/.agents/skills/playwright-best-practices/infrastructure-ci-cd/reporting.md +424 -0
  55. package/.agents/skills/playwright-best-practices/infrastructure-ci-cd/test-coverage.md +497 -0
  56. package/.agents/skills/playwright-best-practices/testing-patterns/accessibility.md +359 -0
  57. package/.agents/skills/playwright-best-practices/testing-patterns/api-testing.md +719 -0
  58. package/.agents/skills/playwright-best-practices/testing-patterns/browser-extensions.md +506 -0
  59. package/.agents/skills/playwright-best-practices/testing-patterns/canvas-webgl.md +493 -0
  60. package/.agents/skills/playwright-best-practices/testing-patterns/component-testing.md +500 -0
  61. package/.agents/skills/playwright-best-practices/testing-patterns/drag-drop.md +576 -0
  62. package/.agents/skills/playwright-best-practices/testing-patterns/electron.md +509 -0
  63. package/.agents/skills/playwright-best-practices/testing-patterns/file-operations.md +377 -0
  64. package/.agents/skills/playwright-best-practices/testing-patterns/file-upload-download.md +562 -0
  65. package/.agents/skills/playwright-best-practices/testing-patterns/forms-validation.md +561 -0
  66. package/.agents/skills/playwright-best-practices/testing-patterns/graphql-testing.md +331 -0
  67. package/.agents/skills/playwright-best-practices/testing-patterns/i18n.md +508 -0
  68. package/.agents/skills/playwright-best-practices/testing-patterns/performance-testing.md +476 -0
  69. package/.agents/skills/playwright-best-practices/testing-patterns/security-testing.md +430 -0
  70. package/.agents/skills/playwright-best-practices/testing-patterns/visual-regression.md +634 -0
  71. package/.agents/skills/security-qa/SKILL.md +254 -0
  72. package/package.json +3 -1
  73. package/scripts/gen-and-run.mjs +33 -5
  74. package/scripts/init.mjs +2 -2
  75. package/scripts/setup.mjs +2 -2
  76. package/src/arcalityClient.mjs +4 -3
  77. package/tests/_helpers/agentic-runner.bundle.spec.js +161 -50
  78. package/scripts/cleanup-qmsdev.mjs +0 -63
  79. package/scripts/discover-view.mjs +0 -52
  80. package/scripts/extract-view.mjs +0 -64
  81. package/scripts/migrate-to-central-out.mjs +0 -157
@@ -1,157 +0,0 @@
1
- import fs from 'fs';
2
- import path from 'path';
3
- import { fileURLToPath } from 'url';
4
-
5
- const __filename = fileURLToPath(import.meta.url);
6
- const __dirname = path.dirname(__filename);
7
- const PROJECT_ROOT = path.join(__dirname, "..");
8
-
9
- function migrate() {
10
- const outDirs = fs.readdirSync(PROJECT_ROOT).filter(f => f.startsWith('out_') && fs.statSync(path.join(PROJECT_ROOT, f)).isDirectory());
11
- const centralOut = path.join(PROJECT_ROOT, 'out');
12
-
13
- if (!fs.existsSync(centralOut)) fs.mkdirSync(centralOut);
14
-
15
- console.log(`🚀 Starting migration of ${outDirs.length} legacy output directories...`);
16
-
17
- for (const oldDirName of outDirs) {
18
- const oldDirPath = path.join(PROJECT_ROOT, oldDirName);
19
- const children = fs.readdirSync(oldDirPath);
20
-
21
- // Try to find a config name
22
- let configName = oldDirName.replace('out_', '');
23
- const configSubDir = children.find(c => fs.statSync(path.join(oldDirPath, c)).isDirectory());
24
-
25
- if (configSubDir) {
26
- configName = configSubDir;
27
- console.log(`📦 Found configuration folder "${configName}" inside ${oldDirName}`);
28
- }
29
-
30
- const newConfigPath = path.join(centralOut, configName);
31
- const contextPath = path.join(newConfigPath, 'context');
32
- const missionsPath = path.join(newConfigPath, 'missions');
33
- const reportsPath = path.join(newConfigPath, 'reports');
34
-
35
- [contextPath, missionsPath, reportsPath].forEach(p => fs.mkdirSync(p, { recursive: true }));
36
-
37
- // Move files
38
- children.forEach(child => {
39
- const oldChildPath = path.join(oldDirPath, child);
40
- const isDir = fs.statSync(oldChildPath).isDirectory();
41
-
42
- if (child === configSubDir) {
43
- // Move internals of config subDir to context/projects or similar?
44
- // For now, let's just move the whole folder to context
45
- moveFolder(oldChildPath, path.join(contextPath, child));
46
- } else if (child.startsWith('agent-log') || child.includes('memory') || child.includes('memoria') || child.includes('components-')) {
47
- moveFile(oldChildPath, path.join(contextPath, child));
48
- } else if (child.endsWith('.yaml') || child.endsWith('.yml')) {
49
- moveFile(oldChildPath, path.join(missionsPath, child));
50
- } else if (child === 'saved_missions') {
51
- const subMissions = fs.readdirSync(oldChildPath);
52
- subMissions.forEach(sm => moveFile(path.join(oldChildPath, sm), path.join(missionsPath, sm)));
53
- fs.rmdirSync(oldChildPath, { recursive: true });
54
- } else {
55
- // Default to context
56
- if (isDir) moveFolder(oldChildPath, path.join(contextPath, child));
57
- else moveFile(oldChildPath, path.join(contextPath, child));
58
- }
59
- });
60
-
61
- // Remove the old out_ directory if empty
62
- if (fs.readdirSync(oldDirPath).length === 0) {
63
- fs.rmdirSync(oldDirPath);
64
- console.log(`✅ Cleaned up ${oldDirName}`);
65
- } else {
66
- console.warn(`⚠️ ${oldDirName} not empty after migration.`);
67
- }
68
- }
69
-
70
- // Move tests/projects folders
71
- const projectsDir = path.join(PROJECT_ROOT, 'tests', 'projects');
72
- if (fs.existsSync(projectsDir)) {
73
- const projects = fs.readdirSync(projectsDir).filter(f => fs.statSync(path.join(projectsDir, f)).isDirectory());
74
- console.log(`📁 Migrating ${projects.length} project models from tests/projects...`);
75
- for (const pName of projects) {
76
- const oldPPath = path.join(projectsDir, pName);
77
- // We assume project name matches or is related to a config
78
- // If out/[pName] exists, move there
79
- const targetConfigPath = path.join(centralOut, pName);
80
- const targetContextPath = path.join(targetConfigPath, 'context');
81
- if (!fs.existsSync(targetContextPath)) fs.mkdirSync(targetContextPath, { recursive: true });
82
-
83
- moveFolder(oldPPath, path.join(targetContextPath, pName));
84
- console.log(`✅ Moved project model "${pName}" to out/${pName}/context/`);
85
- }
86
- // If empty, remove tests/projects
87
- if (fs.readdirSync(projectsDir).length === 0) {
88
- fs.rmdirSync(projectsDir);
89
- }
90
- }
91
-
92
- // Move loose files in central out/ to out/Default/context/
93
- const looseFiles = fs.readdirSync(centralOut).filter(f => fs.statSync(path.join(centralOut, f)).isFile());
94
- if (looseFiles.length > 0) {
95
- console.log(`📄 Migrating ${looseFiles.length} loose files from out/ to out/Default/context/...`);
96
- const defaultContext = path.join(centralOut, 'Default', 'context');
97
- if (!fs.existsSync(defaultContext)) fs.mkdirSync(defaultContext, { recursive: true });
98
- looseFiles.forEach(f => moveFile(path.join(centralOut, f), path.join(defaultContext, f)));
99
- }
100
-
101
- // Move global reports
102
- const globalReports = ['tests-report', 'playwright-internal-report', 'test-results'];
103
- for (const gr of globalReports) {
104
- const grPath = path.join(PROJECT_ROOT, gr);
105
- if (fs.existsSync(grPath)) {
106
- const activeConfig = process.env.ACTIVE_CONFIG || 'Default';
107
- const targetDir = path.join(centralOut, activeConfig, 'reports', gr);
108
- fs.mkdirSync(path.dirname(targetDir), { recursive: true });
109
- moveFolder(grPath, targetDir);
110
- console.log(`📊 Moved global report "${gr}" to out/${activeConfig}/reports/`);
111
- }
112
- }
113
-
114
- console.log('✨ Migration completed successfully.');
115
- }
116
-
117
- function moveFile(src, dest) {
118
- if (!fs.existsSync(src)) return;
119
- try {
120
- fs.renameSync(src, dest);
121
- } catch (e) {
122
- if (e.code === 'EXDEV') {
123
- fs.copyFileSync(src, dest);
124
- fs.unlinkSync(src);
125
- } else {
126
- console.error(`Error moving ${src}:`, e.message);
127
- }
128
- }
129
- }
130
-
131
- function moveFolder(src, dest) {
132
- if (!fs.existsSync(src)) return;
133
- try {
134
- if (fs.existsSync(dest)) {
135
- // Merge content if exists
136
- const files = fs.readdirSync(src);
137
- files.forEach(f => {
138
- const s = path.join(src, f);
139
- const d = path.join(dest, f);
140
- if (fs.statSync(s).isDirectory()) moveFolder(s, d);
141
- else moveFile(s, d);
142
- });
143
- fs.rmdirSync(src, { recursive: true });
144
- } else {
145
- fs.renameSync(src, dest);
146
- }
147
- } catch (e) {
148
- if (e.code === 'EXDEV') {
149
- fs.cpSync(src, dest, { recursive: true });
150
- fs.rmSync(src, { recursive: true });
151
- } else {
152
- console.error(`Error moving folder ${src}:`, e.message);
153
- }
154
- }
155
- }
156
-
157
- migrate();