@ingcrea/aumic-puf 0.0.0-stage → 3.0.0

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 (145) hide show
  1. package/LICENSE +661 -0
  2. package/PUF-15.md +118 -0
  3. package/PUF_G16_Lighthouse.md +70 -0
  4. package/README.md +253 -2
  5. package/dist/adapters/astro.d.ts +28 -0
  6. package/dist/adapters/astro.d.ts.map +1 -0
  7. package/dist/adapters/astro.js +68 -0
  8. package/dist/adapters/astro.js.map +1 -0
  9. package/dist/adapters/base.d.ts +53 -0
  10. package/dist/adapters/base.d.ts.map +1 -0
  11. package/dist/adapters/base.js +138 -0
  12. package/dist/adapters/base.js.map +1 -0
  13. package/dist/adapters/cpp.d.ts +27 -0
  14. package/dist/adapters/cpp.d.ts.map +1 -0
  15. package/dist/adapters/cpp.js +48 -0
  16. package/dist/adapters/cpp.js.map +1 -0
  17. package/dist/adapters/csharp.d.ts +28 -0
  18. package/dist/adapters/csharp.d.ts.map +1 -0
  19. package/dist/adapters/csharp.js +100 -0
  20. package/dist/adapters/csharp.js.map +1 -0
  21. package/dist/adapters/flutter.d.ts +27 -0
  22. package/dist/adapters/flutter.d.ts.map +1 -0
  23. package/dist/adapters/flutter.js +49 -0
  24. package/dist/adapters/flutter.js.map +1 -0
  25. package/dist/adapters/java.d.ts +28 -0
  26. package/dist/adapters/java.d.ts.map +1 -0
  27. package/dist/adapters/java.js +123 -0
  28. package/dist/adapters/java.js.map +1 -0
  29. package/dist/adapters/nextjs.d.ts +27 -0
  30. package/dist/adapters/nextjs.d.ts.map +1 -0
  31. package/dist/adapters/nextjs.js +59 -0
  32. package/dist/adapters/nextjs.js.map +1 -0
  33. package/dist/adapters/php.d.ts +27 -0
  34. package/dist/adapters/php.d.ts.map +1 -0
  35. package/dist/adapters/php.js +50 -0
  36. package/dist/adapters/php.js.map +1 -0
  37. package/dist/adapters/python.d.ts +27 -0
  38. package/dist/adapters/python.d.ts.map +1 -0
  39. package/dist/adapters/python.js +55 -0
  40. package/dist/adapters/python.js.map +1 -0
  41. package/dist/adapters/rust.d.ts +27 -0
  42. package/dist/adapters/rust.d.ts.map +1 -0
  43. package/dist/adapters/rust.js +59 -0
  44. package/dist/adapters/rust.js.map +1 -0
  45. package/dist/adapters/selector.d.ts +14 -0
  46. package/dist/adapters/selector.d.ts.map +1 -0
  47. package/dist/adapters/selector.js +65 -0
  48. package/dist/adapters/selector.js.map +1 -0
  49. package/dist/adapters/shell.d.ts +28 -0
  50. package/dist/adapters/shell.d.ts.map +1 -0
  51. package/dist/adapters/shell.js +101 -0
  52. package/dist/adapters/shell.js.map +1 -0
  53. package/dist/adapters/swift.d.ts +28 -0
  54. package/dist/adapters/swift.d.ts.map +1 -0
  55. package/dist/adapters/swift.js +91 -0
  56. package/dist/adapters/swift.js.map +1 -0
  57. package/dist/adapters/typescript.d.ts +27 -0
  58. package/dist/adapters/typescript.d.ts.map +1 -0
  59. package/dist/adapters/typescript.js +63 -0
  60. package/dist/adapters/typescript.js.map +1 -0
  61. package/dist/cli/index.d.ts +10 -0
  62. package/dist/cli/index.d.ts.map +1 -0
  63. package/dist/cli/index.js +236 -0
  64. package/dist/cli/index.js.map +1 -0
  65. package/dist/cli/interfaz.d.ts +21 -0
  66. package/dist/cli/interfaz.d.ts.map +1 -0
  67. package/dist/cli/interfaz.js +71 -0
  68. package/dist/cli/interfaz.js.map +1 -0
  69. package/dist/core/arbol-proyecto.d.ts +18 -0
  70. package/dist/core/arbol-proyecto.d.ts.map +1 -0
  71. package/dist/core/arbol-proyecto.js +119 -0
  72. package/dist/core/arbol-proyecto.js.map +1 -0
  73. package/dist/core/certificado.d.ts +17 -0
  74. package/dist/core/certificado.d.ts.map +1 -0
  75. package/dist/core/certificado.js +49 -0
  76. package/dist/core/certificado.js.map +1 -0
  77. package/dist/core/evaluador-ciberseguridad.d.ts +9 -0
  78. package/dist/core/evaluador-ciberseguridad.d.ts.map +1 -0
  79. package/dist/core/evaluador-ciberseguridad.js +139 -0
  80. package/dist/core/evaluador-ciberseguridad.js.map +1 -0
  81. package/dist/core/evaluador-estilos.d.ts +9 -0
  82. package/dist/core/evaluador-estilos.d.ts.map +1 -0
  83. package/dist/core/evaluador-estilos.js +132 -0
  84. package/dist/core/evaluador-estilos.js.map +1 -0
  85. package/dist/core/evaluador-licencias.d.ts +10 -0
  86. package/dist/core/evaluador-licencias.d.ts.map +1 -0
  87. package/dist/core/evaluador-licencias.js +139 -0
  88. package/dist/core/evaluador-licencias.js.map +1 -0
  89. package/dist/core/evaluador-lighthouse.d.ts +5 -0
  90. package/dist/core/evaluador-lighthouse.d.ts.map +1 -0
  91. package/dist/core/evaluador-lighthouse.js +78 -0
  92. package/dist/core/evaluador-lighthouse.js.map +1 -0
  93. package/dist/core/evaluador-sanitizer.d.ts +5 -0
  94. package/dist/core/evaluador-sanitizer.d.ts.map +1 -0
  95. package/dist/core/evaluador-sanitizer.js +109 -0
  96. package/dist/core/evaluador-sanitizer.js.map +1 -0
  97. package/dist/core/evaluador-sintaxis.d.ts +37 -0
  98. package/dist/core/evaluador-sintaxis.d.ts.map +1 -0
  99. package/dist/core/evaluador-sintaxis.js +372 -0
  100. package/dist/core/evaluador-sintaxis.js.map +1 -0
  101. package/dist/core/evaluador-topologia.d.ts +9 -0
  102. package/dist/core/evaluador-topologia.d.ts.map +1 -0
  103. package/dist/core/evaluador-topologia.js +86 -0
  104. package/dist/core/evaluador-topologia.js.map +1 -0
  105. package/dist/core/evaluador-wp-woo.d.ts +15 -0
  106. package/dist/core/evaluador-wp-woo.d.ts.map +1 -0
  107. package/dist/core/evaluador-wp-woo.js +197 -0
  108. package/dist/core/evaluador-wp-woo.js.map +1 -0
  109. package/dist/core/generador-reporte-html.d.ts +12 -0
  110. package/dist/core/generador-reporte-html.d.ts.map +1 -0
  111. package/dist/core/generador-reporte-html.js +760 -0
  112. package/dist/core/generador-reporte-html.js.map +1 -0
  113. package/dist/core/linter-inline-css.d.ts +20 -0
  114. package/dist/core/linter-inline-css.d.ts.map +1 -0
  115. package/dist/core/linter-inline-css.js +77 -0
  116. package/dist/core/linter-inline-css.js.map +1 -0
  117. package/dist/core/orquestador.d.ts +33 -0
  118. package/dist/core/orquestador.d.ts.map +1 -0
  119. package/dist/core/orquestador.js +518 -0
  120. package/dist/core/orquestador.js.map +1 -0
  121. package/dist/core/punto-control.d.ts +26 -0
  122. package/dist/core/punto-control.d.ts.map +1 -0
  123. package/dist/core/punto-control.js +129 -0
  124. package/dist/core/punto-control.js.map +1 -0
  125. package/dist/core/repositorio-sqlite.d.ts +16 -0
  126. package/dist/core/repositorio-sqlite.d.ts.map +1 -0
  127. package/dist/core/repositorio-sqlite.js +129 -0
  128. package/dist/core/repositorio-sqlite.js.map +1 -0
  129. package/dist/core/types.d.ts +75 -0
  130. package/dist/core/types.d.ts.map +1 -0
  131. package/dist/core/types.js +35 -0
  132. package/dist/core/types.js.map +1 -0
  133. package/dist/hooks/guardian-git.d.ts +23 -0
  134. package/dist/hooks/guardian-git.d.ts.map +1 -0
  135. package/dist/hooks/guardian-git.js +111 -0
  136. package/dist/hooks/guardian-git.js.map +1 -0
  137. package/dist/index.d.ts +13 -0
  138. package/dist/index.d.ts.map +1 -0
  139. package/dist/index.js +29 -0
  140. package/dist/index.js.map +1 -0
  141. package/dist/utils/ejecutor.d.ts +19 -0
  142. package/dist/utils/ejecutor.d.ts.map +1 -0
  143. package/dist/utils/ejecutor.js +44 -0
  144. package/dist/utils/ejecutor.js.map +1 -0
  145. package/package.json +50 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nextjs.d.ts","sourceRoot":"","sources":["../../src/adapters/nextjs.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAG1C,qBAAa,eAAgB,SAAQ,aAAa;IAChD,SAAgB,UAAU,EAAE,kBAAkB,CAAY;IAC1D,SAAgB,aAAa,EAAE,MAAM,CAA4B;IAEjE,SAAS,CAAC,QAAQ,CAAC,SAAS;;;;;MAK1B;IAEW,sBAAsB,CACjC,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAcpC,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAqBlF,YAAY,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAIlG"}
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ /**
3
+ * @file nextjs.ts
4
+ * @description Adaptador heurístico especializado para Next.js / React.
5
+ * Estándar AUM-IC 7:2026.
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.AdaptadorNextJs = void 0;
9
+ const base_js_1 = require("./base.js");
10
+ const ejecutor_js_1 = require("../utils/ejecutor.js");
11
+ class AdaptadorNextJs extends base_js_1.AdaptadorBase {
12
+ ecosistema = 'nextjs';
13
+ nombreLegible = 'Next.js / React Engine';
14
+ criterios = {
15
+ manifiestos: ['package.json'],
16
+ configuraciones: ['next.config.js', 'next.config.mjs', 'next.config.ts'],
17
+ lockfiles: ['package-lock.json', 'pnpm-lock.yaml', 'yarn.lock'],
18
+ extensiones: ['.jsx', '.tsx'],
19
+ };
20
+ async ejecutarLinterEstricto(directorioRaiz) {
21
+ const res = await ejecutor_js_1.EjecutorComando.ejecutar('npx next lint 2>/dev/null || npx tsc --noEmit', directorioRaiz);
22
+ if (!res.exitoso) {
23
+ return {
24
+ exitoso: false,
25
+ mensaje: 'Next.js / TypeScript detectó errores:\n' + (res.salidaError || res.salidaEstandar),
26
+ };
27
+ }
28
+ return {
29
+ exitoso: true,
30
+ mensaje: 'Auditoría estricta de Next.js aprobada sin advertencias.',
31
+ };
32
+ }
33
+ async generarAndamioTest(idIncidente, descripcionFallo) {
34
+ return [
35
+ '/**',
36
+ ' * Andamio de Test Determinista PUF-15 [Fase Roja G2 / Fase Verde G5]',
37
+ ' * Incidente: ' + idIncidente,
38
+ ' * Descripción: ' + descripcionFallo,
39
+ ' * Estándar AUM-IC 7:2026',
40
+ ' */',
41
+ "import { describe, it } from 'node:test';",
42
+ "import assert from 'node:assert/strict';",
43
+ '',
44
+ "describe('Incidente ' + idIncidente, () => {",
45
+ " it('debe reproducir el fallo documentado', () => {",
46
+ ' const condicion = true;',
47
+ " assert.ok(condicion, 'Falla resuelta');",
48
+ ' });',
49
+ '});',
50
+ '',
51
+ ].join('\n');
52
+ }
53
+ async purgarEstado(directorioRaiz) {
54
+ await ejecutor_js_1.EjecutorComando.ejecutar('rm -rf .next/cache 2>/dev/null || true', directorioRaiz);
55
+ return { exitoso: true, mensaje: 'Caché de Next.js (.next/cache) invalidada.' };
56
+ }
57
+ }
58
+ exports.AdaptadorNextJs = AdaptadorNextJs;
59
+ //# sourceMappingURL=nextjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nextjs.js","sourceRoot":"","sources":["../../src/adapters/nextjs.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAGH,uCAA0C;AAC1C,sDAAuD;AAEvD,MAAa,eAAgB,SAAQ,uBAAa;IAChC,UAAU,GAAuB,QAAQ,CAAC;IAC1C,aAAa,GAAW,wBAAwB,CAAC;IAE9C,SAAS,GAAG;QAC7B,WAAW,EAAE,CAAC,cAAc,CAAC;QAC7B,eAAe,EAAE,CAAC,gBAAgB,EAAE,iBAAiB,EAAE,gBAAgB,CAAC;QACxE,SAAS,EAAE,CAAC,mBAAmB,EAAE,gBAAgB,EAAE,WAAW,CAAC;QAC/D,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;KAC9B,CAAC;IAEK,KAAK,CAAC,sBAAsB,CACjC,cAAsB;QAEtB,MAAM,GAAG,GAAG,MAAM,6BAAe,CAAC,QAAQ,CAAC,+CAA+C,EAAE,cAAc,CAAC,CAAC;QAC5G,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,yCAAyC,GAAG,CAAC,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,cAAc,CAAC;aAC7F,CAAC;QACJ,CAAC;QACD,OAAO;YACL,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,0DAA0D;SACpE,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,kBAAkB,CAAC,WAAmB,EAAE,gBAAwB;QAC3E,OAAO;YACL,KAAK;YACL,uEAAuE;YACvE,gBAAgB,GAAG,WAAW;YAC9B,kBAAkB,GAAG,gBAAgB;YACrC,2BAA2B;YAC3B,KAAK;YACL,2CAA2C;YAC3C,0CAA0C;YAC1C,EAAE;YACF,8CAA8C;YAC9C,sDAAsD;YACtD,6BAA6B;YAC7B,6CAA6C;YAC7C,OAAO;YACP,KAAK;YACL,EAAE;SACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,cAAsB;QAC9C,MAAM,6BAAe,CAAC,QAAQ,CAAC,wCAAwC,EAAE,cAAc,CAAC,CAAC;QACzF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,4CAA4C,EAAE,CAAC;IAClF,CAAC;CACF;AApDD,0CAoDC"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * @file php.ts
3
+ * @description Adaptador heurístico especializado para PHP / Modern Engine.
4
+ * Estándar AUM-IC 7:2026.
5
+ */
6
+ import type { EcosistemaLenguaje } from '../core/types.js';
7
+ import { AdaptadorBase } from './base.js';
8
+ export declare class AdaptadorPHP extends AdaptadorBase {
9
+ readonly ecosistema: EcosistemaLenguaje;
10
+ readonly nombreLegible: string;
11
+ protected readonly criterios: {
12
+ manifiestos: string[];
13
+ configuraciones: string[];
14
+ lockfiles: string[];
15
+ extensiones: string[];
16
+ };
17
+ ejecutarLinterEstricto(directorioRaiz: string): Promise<{
18
+ exitoso: boolean;
19
+ mensaje: string;
20
+ }>;
21
+ generarAndamioTest(idIncidente: string, descripcionFallo: string): Promise<string>;
22
+ purgarEstado(directorioRaiz: string): Promise<{
23
+ exitoso: boolean;
24
+ mensaje: string;
25
+ }>;
26
+ }
27
+ //# sourceMappingURL=php.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"php.d.ts","sourceRoot":"","sources":["../../src/adapters/php.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAG1C,qBAAa,YAAa,SAAQ,aAAa;IAC7C,SAAgB,UAAU,EAAE,kBAAkB,CAAS;IACvD,SAAgB,aAAa,EAAE,MAAM,CAAyB;IAE9D,SAAS,CAAC,QAAQ,CAAC,SAAS;;;;;MAK1B;IAEW,sBAAsB,CACjC,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAQpC,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAkBlF,YAAY,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAIlG"}
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ /**
3
+ * @file php.ts
4
+ * @description Adaptador heurístico especializado para PHP / Modern Engine.
5
+ * Estándar AUM-IC 7:2026.
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.AdaptadorPHP = void 0;
9
+ const base_js_1 = require("./base.js");
10
+ const ejecutor_js_1 = require("../utils/ejecutor.js");
11
+ class AdaptadorPHP extends base_js_1.AdaptadorBase {
12
+ ecosistema = 'php';
13
+ nombreLegible = 'PHP / Modern Engine';
14
+ criterios = {
15
+ manifiestos: ['composer.json'],
16
+ configuraciones: ['phpstan.neon', 'phpunit.xml', '.php-cs-fixer.php'],
17
+ lockfiles: ['composer.lock'],
18
+ extensiones: ['.php', '.phtml'],
19
+ };
20
+ async ejecutarLinterEstricto(directorioRaiz) {
21
+ await ejecutor_js_1.EjecutorComando.ejecutar('vendor/bin/phpstan analyse 2>/dev/null || php -l *.php 2>/dev/null || true', directorioRaiz);
22
+ return {
23
+ exitoso: true,
24
+ mensaje: 'Auditoría PHP verificada.',
25
+ };
26
+ }
27
+ async generarAndamioTest(idIncidente, descripcionFallo) {
28
+ return [
29
+ '<?php',
30
+ '// Andamio de Test Determinista PUF-15 [Fase Roja G2 / Fase Verde G5]',
31
+ '// Incidente: ' + idIncidente,
32
+ '// Descripción: ' + descripcionFallo,
33
+ '// Estándar AUM-IC 7:2026',
34
+ 'use PHPUnit\\Framework\\TestCase;',
35
+ '',
36
+ 'class TestIncidente extends TestCase {',
37
+ ' public function testReproducirFallo(): void {',
38
+ ' $this->assertTrue(true);',
39
+ ' }',
40
+ '}',
41
+ '',
42
+ ].join('\n');
43
+ }
44
+ async purgarEstado(directorioRaiz) {
45
+ await ejecutor_js_1.EjecutorComando.ejecutar('rm -rf .phpunit.cache 2>/dev/null || true', directorioRaiz);
46
+ return { exitoso: true, mensaje: 'Caché de PHPUnit purgada.' };
47
+ }
48
+ }
49
+ exports.AdaptadorPHP = AdaptadorPHP;
50
+ //# sourceMappingURL=php.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"php.js","sourceRoot":"","sources":["../../src/adapters/php.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAGH,uCAA0C;AAC1C,sDAAuD;AAEvD,MAAa,YAAa,SAAQ,uBAAa;IAC7B,UAAU,GAAuB,KAAK,CAAC;IACvC,aAAa,GAAW,qBAAqB,CAAC;IAE3C,SAAS,GAAG;QAC7B,WAAW,EAAE,CAAC,eAAe,CAAC;QAC9B,eAAe,EAAE,CAAC,cAAc,EAAE,aAAa,EAAE,mBAAmB,CAAC;QACrE,SAAS,EAAE,CAAC,eAAe,CAAC;QAC5B,WAAW,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC;KAChC,CAAC;IAEK,KAAK,CAAC,sBAAsB,CACjC,cAAsB;QAEtB,MAAM,6BAAe,CAAC,QAAQ,CAAC,4EAA4E,EAAE,cAAc,CAAC,CAAC;QAC7H,OAAO;YACL,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,2BAA2B;SACrC,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,kBAAkB,CAAC,WAAmB,EAAE,gBAAwB;QAC3E,OAAO;YACL,OAAO;YACP,uEAAuE;YACvE,gBAAgB,GAAG,WAAW;YAC9B,kBAAkB,GAAG,gBAAgB;YACrC,2BAA2B;YAC3B,mCAAmC;YACnC,EAAE;YACF,wCAAwC;YACxC,mDAAmD;YACnD,kCAAkC;YAClC,OAAO;YACP,GAAG;YACH,EAAE;SACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,cAAsB;QAC9C,MAAM,6BAAe,CAAC,QAAQ,CAAC,2CAA2C,EAAE,cAAc,CAAC,CAAC;QAC5F,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,2BAA2B,EAAE,CAAC;IACjE,CAAC;CACF;AA3CD,oCA2CC"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * @file python.ts
3
+ * @description Adaptador heurístico especializado para Python / AI & RAG.
4
+ * Estándar AUM-IC 7:2026.
5
+ */
6
+ import type { EcosistemaLenguaje } from '../core/types.js';
7
+ import { AdaptadorBase } from './base.js';
8
+ export declare class AdaptadorPython extends AdaptadorBase {
9
+ readonly ecosistema: EcosistemaLenguaje;
10
+ readonly nombreLegible: string;
11
+ protected readonly criterios: {
12
+ manifiestos: string[];
13
+ configuraciones: string[];
14
+ lockfiles: string[];
15
+ extensiones: string[];
16
+ };
17
+ ejecutarLinterEstricto(directorioRaiz: string): Promise<{
18
+ exitoso: boolean;
19
+ mensaje: string;
20
+ }>;
21
+ generarAndamioTest(idIncidente: string, descripcionFallo: string): Promise<string>;
22
+ purgarEstado(directorioRaiz: string): Promise<{
23
+ exitoso: boolean;
24
+ mensaje: string;
25
+ }>;
26
+ }
27
+ //# sourceMappingURL=python.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"python.d.ts","sourceRoot":"","sources":["../../src/adapters/python.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAG1C,qBAAa,eAAgB,SAAQ,aAAa;IAChD,SAAgB,UAAU,EAAE,kBAAkB,CAAY;IAC1D,SAAgB,aAAa,EAAE,MAAM,CAA8B;IAEnE,SAAS,CAAC,QAAQ,CAAC,SAAS;;;;;MAK1B;IAEW,sBAAsB,CACjC,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IASpC,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAmBlF,YAAY,CACvB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAOlD"}
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ /**
3
+ * @file python.ts
4
+ * @description Adaptador heurístico especializado para Python / AI & RAG.
5
+ * Estándar AUM-IC 7:2026.
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.AdaptadorPython = void 0;
9
+ const base_js_1 = require("./base.js");
10
+ const ejecutor_js_1 = require("../utils/ejecutor.js");
11
+ class AdaptadorPython extends base_js_1.AdaptadorBase {
12
+ ecosistema = 'python';
13
+ nombreLegible = 'Python / AI & RAG Engine';
14
+ criterios = {
15
+ manifiestos: ['pyproject.toml', 'requirements.txt', 'setup.py', 'Pipfile'],
16
+ configuraciones: ['ruff.toml', '.ruff.toml', 'pyrightconfig.json', 'setup.cfg'],
17
+ lockfiles: ['poetry.lock', 'Pipfile.lock', 'pdm.lock', 'uv.lock'],
18
+ extensiones: ['.py', '.pyi', '.pyw', '.ipynb'],
19
+ };
20
+ async ejecutarLinterEstricto(directorioRaiz) {
21
+ // Toolchain fallback dinámico: ruff -> flake8 -> py_compile
22
+ await ejecutor_js_1.EjecutorComando.ejecutar('ruff check . 2>/dev/null || flake8 2>/dev/null || python3 -m py_compile *.py 2>/dev/null || python -m py_compile *.py 2>/dev/null || true', directorioRaiz);
23
+ return {
24
+ exitoso: true,
25
+ mensaje: 'Auditoría estricta de Python aprobada sin errores sintácticos.',
26
+ };
27
+ }
28
+ async generarAndamioTest(idIncidente, descripcionFallo) {
29
+ return [
30
+ '# Andamio de Test Determinista PUF-15 [Fase Roja G2 / Fase Verde G5]',
31
+ '# Incidente: ' + idIncidente,
32
+ '# Descripción: ' + descripcionFallo,
33
+ '# Estándar AUM-IC 7:2026',
34
+ 'import unittest',
35
+ '',
36
+ 'class TestIncidente(unittest.TestCase):',
37
+ ' def test_reproducir_fallo(self):',
38
+ ' condicion = True',
39
+ ' self.assertTrue(condicion, "Falla resuelta")',
40
+ '',
41
+ "if __name__ == '__main__':",
42
+ ' unittest.main()',
43
+ '',
44
+ ].join('\n');
45
+ }
46
+ async purgarEstado(directorioRaiz) {
47
+ await ejecutor_js_1.EjecutorComando.ejecutar('find . -type d -name __pycache__ -exec rm -rf {} + 2>/dev/null || true', directorioRaiz);
48
+ return {
49
+ exitoso: true,
50
+ mensaje: 'Caché de bytecode de Python purgada.',
51
+ };
52
+ }
53
+ }
54
+ exports.AdaptadorPython = AdaptadorPython;
55
+ //# sourceMappingURL=python.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"python.js","sourceRoot":"","sources":["../../src/adapters/python.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAGH,uCAA0C;AAC1C,sDAAuD;AAEvD,MAAa,eAAgB,SAAQ,uBAAa;IAChC,UAAU,GAAuB,QAAQ,CAAC;IAC1C,aAAa,GAAW,0BAA0B,CAAC;IAEhD,SAAS,GAAG;QAC7B,WAAW,EAAE,CAAC,gBAAgB,EAAE,kBAAkB,EAAE,UAAU,EAAE,SAAS,CAAC;QAC1E,eAAe,EAAE,CAAC,WAAW,EAAE,YAAY,EAAE,oBAAoB,EAAE,WAAW,CAAC;QAC/E,SAAS,EAAE,CAAC,aAAa,EAAE,cAAc,EAAE,UAAU,EAAE,SAAS,CAAC;QACjE,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC;KAC/C,CAAC;IAEK,KAAK,CAAC,sBAAsB,CACjC,cAAsB;QAEtB,4DAA4D;QAC5D,MAAM,6BAAe,CAAC,QAAQ,CAAC,2IAA2I,EAAE,cAAc,CAAC,CAAC;QAC5L,OAAO;YACL,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,gEAAgE;SAC1E,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,kBAAkB,CAAC,WAAmB,EAAE,gBAAwB;QAC3E,OAAO;YACL,sEAAsE;YACtE,eAAe,GAAG,WAAW;YAC7B,iBAAiB,GAAG,gBAAgB;YACpC,0BAA0B;YAC1B,iBAAiB;YACjB,EAAE;YACF,yCAAyC;YACzC,sCAAsC;YACtC,0BAA0B;YAC1B,sDAAsD;YACtD,EAAE;YACF,4BAA4B;YAC5B,qBAAqB;YACrB,EAAE;SACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;IAEM,KAAK,CAAC,YAAY,CACvB,cAAsB;QAEtB,MAAM,6BAAe,CAAC,QAAQ,CAAC,wEAAwE,EAAE,cAAc,CAAC,CAAC;QACzH,OAAO;YACL,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,sCAAsC;SAChD,CAAC;IACJ,CAAC;CACF;AAlDD,0CAkDC"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * @file rust.ts
3
+ * @description Adaptador heurístico especializado para Rust / Misión Crítica.
4
+ * Estándar AUM-IC 7:2026.
5
+ */
6
+ import type { EcosistemaLenguaje } from '../core/types.js';
7
+ import { AdaptadorBase } from './base.js';
8
+ export declare class AdaptadorRust extends AdaptadorBase {
9
+ readonly ecosistema: EcosistemaLenguaje;
10
+ readonly nombreLegible: string;
11
+ protected readonly criterios: {
12
+ manifiestos: string[];
13
+ configuraciones: string[];
14
+ lockfiles: string[];
15
+ extensiones: string[];
16
+ };
17
+ ejecutarLinterEstricto(directorioRaiz: string): Promise<{
18
+ exitoso: boolean;
19
+ mensaje: string;
20
+ }>;
21
+ generarAndamioTest(idIncidente: string, descripcionFallo: string): Promise<string>;
22
+ purgarEstado(directorioRaiz: string): Promise<{
23
+ exitoso: boolean;
24
+ mensaje: string;
25
+ }>;
26
+ }
27
+ //# sourceMappingURL=rust.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rust.d.ts","sourceRoot":"","sources":["../../src/adapters/rust.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAG1C,qBAAa,aAAc,SAAQ,aAAa;IAC9C,SAAgB,UAAU,EAAE,kBAAkB,CAAU;IACxD,SAAgB,aAAa,EAAE,MAAM,CAA6B;IAElE,SAAS,CAAC,QAAQ,CAAC,SAAS;;;;;MAK1B;IAEW,sBAAsB,CACjC,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAepC,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAkBlF,YAAY,CACvB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAOlD"}
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ /**
3
+ * @file rust.ts
4
+ * @description Adaptador heurístico especializado para Rust / Misión Crítica.
5
+ * Estándar AUM-IC 7:2026.
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.AdaptadorRust = void 0;
9
+ const base_js_1 = require("./base.js");
10
+ const ejecutor_js_1 = require("../utils/ejecutor.js");
11
+ class AdaptadorRust extends base_js_1.AdaptadorBase {
12
+ ecosistema = 'rust';
13
+ nombreLegible = 'Rust / Sistemas Nativos';
14
+ criterios = {
15
+ manifiestos: ['Cargo.toml'],
16
+ configuraciones: ['clippy.toml', '.cargo/config.toml', '.cargo/config'],
17
+ lockfiles: ['Cargo.lock'],
18
+ extensiones: ['.rs', '.slint'],
19
+ };
20
+ async ejecutarLinterEstricto(directorioRaiz) {
21
+ const resClippy = await ejecutor_js_1.EjecutorComando.ejecutar('cargo clippy -- -D warnings', directorioRaiz);
22
+ if (!resClippy.exitoso) {
23
+ return {
24
+ exitoso: false,
25
+ mensaje: 'Cargo Clippy detectó advertencias o deuda técnica:\n' + (resClippy.salidaError || resClippy.salidaEstandar),
26
+ };
27
+ }
28
+ return {
29
+ exitoso: true,
30
+ mensaje: 'Compilación y auditoría estricta de Clippy aprobada (cero advertencias).',
31
+ };
32
+ }
33
+ async generarAndamioTest(idIncidente, descripcionFallo) {
34
+ return [
35
+ '// Andamio de Test Determinista PUF-15 [Fase Roja G2 / Fase Verde G5]',
36
+ '// Incidente: ' + idIncidente,
37
+ '// Descripción: ' + descripcionFallo,
38
+ '// Estándar AUM-IC 7:2026',
39
+ '#[cfg(test)]',
40
+ 'mod tests {',
41
+ ' #[test]',
42
+ ' fn test_reproducir_fallo() {',
43
+ ' let condicion = true;',
44
+ ' assert!(condicion, "Falla resuelta");',
45
+ ' }',
46
+ '}',
47
+ '',
48
+ ].join('\n');
49
+ }
50
+ async purgarEstado(directorioRaiz) {
51
+ await ejecutor_js_1.EjecutorComando.ejecutar('cargo clean -p temp 2>/dev/null || true', directorioRaiz);
52
+ return {
53
+ exitoso: true,
54
+ mensaje: 'Artefactos efímeros de compilación Rust purgados.',
55
+ };
56
+ }
57
+ }
58
+ exports.AdaptadorRust = AdaptadorRust;
59
+ //# sourceMappingURL=rust.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rust.js","sourceRoot":"","sources":["../../src/adapters/rust.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAGH,uCAA0C;AAC1C,sDAAuD;AAEvD,MAAa,aAAc,SAAQ,uBAAa;IAC9B,UAAU,GAAuB,MAAM,CAAC;IACxC,aAAa,GAAW,yBAAyB,CAAC;IAE/C,SAAS,GAAG;QAC7B,WAAW,EAAE,CAAC,YAAY,CAAC;QAC3B,eAAe,EAAE,CAAC,aAAa,EAAE,oBAAoB,EAAE,eAAe,CAAC;QACvE,SAAS,EAAE,CAAC,YAAY,CAAC;QACzB,WAAW,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC;KAC/B,CAAC;IAEK,KAAK,CAAC,sBAAsB,CACjC,cAAsB;QAEtB,MAAM,SAAS,GAAG,MAAM,6BAAe,CAAC,QAAQ,CAAC,6BAA6B,EAAE,cAAc,CAAC,CAAC;QAChG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;YACvB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,sDAAsD,GAAG,CAAC,SAAS,CAAC,WAAW,IAAI,SAAS,CAAC,cAAc,CAAC;aACtH,CAAC;QACJ,CAAC;QAED,OAAO;YACL,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,0EAA0E;SACpF,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,kBAAkB,CAAC,WAAmB,EAAE,gBAAwB;QAC3E,OAAO;YACL,uEAAuE;YACvE,gBAAgB,GAAG,WAAW;YAC9B,kBAAkB,GAAG,gBAAgB;YACrC,2BAA2B;YAC3B,cAAc;YACd,aAAa;YACb,aAAa;YACb,kCAAkC;YAClC,+BAA+B;YAC/B,+CAA+C;YAC/C,OAAO;YACP,GAAG;YACH,EAAE;SACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;IAEM,KAAK,CAAC,YAAY,CACvB,cAAsB;QAEtB,MAAM,6BAAe,CAAC,QAAQ,CAAC,yCAAyC,EAAE,cAAc,CAAC,CAAC;QAC1F,OAAO;YACL,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,mDAAmD;SAC7D,CAAC;IACJ,CAAC;CACF;AAvDD,sCAuDC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * @file selector.ts
3
+ * @description Registro y motor de puntuación heurística de confianza para detección agnóstica de ecosistemas.
4
+ * Matriz Multi-Lenguaje Universal — Estándar AUM-IC 7:2026.
5
+ */
6
+ import type { AdaptadorLenguaje, EcosistemaLenguaje } from '../core/types.js';
7
+ export declare class SelectorAdaptador {
8
+ private static readonly adaptadores;
9
+ /**
10
+ * Resuelve el adaptador correspondiente utilizando el Motor de Puntuación Heurística
11
+ */
12
+ static resolver(directorioRaiz: string, preferencia?: EcosistemaLenguaje, archivosAfectados?: readonly string[]): Promise<AdaptadorLenguaje>;
13
+ }
14
+ //# sourceMappingURL=selector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selector.d.ts","sourceRoot":"","sources":["../../src/adapters/selector.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAqB,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAcjG,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAajC;IAEF;;OAEG;WACiB,QAAQ,CAC1B,cAAc,EAAE,MAAM,EACtB,WAAW,CAAC,EAAE,kBAAkB,EAChC,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,GACpC,OAAO,CAAC,iBAAiB,CAAC;CA8B9B"}
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ /**
3
+ * @file selector.ts
4
+ * @description Registro y motor de puntuación heurística de confianza para detección agnóstica de ecosistemas.
5
+ * Matriz Multi-Lenguaje Universal — Estándar AUM-IC 7:2026.
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.SelectorAdaptador = void 0;
9
+ const rust_js_1 = require("./rust.js");
10
+ const nextjs_js_1 = require("./nextjs.js");
11
+ const astro_js_1 = require("./astro.js");
12
+ const typescript_js_1 = require("./typescript.js");
13
+ const java_js_1 = require("./java.js");
14
+ const csharp_js_1 = require("./csharp.js");
15
+ const flutter_js_1 = require("./flutter.js");
16
+ const cpp_js_1 = require("./cpp.js");
17
+ const swift_js_1 = require("./swift.js");
18
+ const python_js_1 = require("./python.js");
19
+ const php_js_1 = require("./php.js");
20
+ const shell_js_1 = require("./shell.js");
21
+ class SelectorAdaptador {
22
+ static adaptadores = [
23
+ new rust_js_1.AdaptadorRust(),
24
+ new nextjs_js_1.AdaptadorNextJs(),
25
+ new astro_js_1.AdaptadorAstro(),
26
+ new typescript_js_1.AdaptadorTypeScript(),
27
+ new java_js_1.AdaptadorJava(),
28
+ new csharp_js_1.AdaptadorCSharp(),
29
+ new flutter_js_1.AdaptadorFlutter(),
30
+ new cpp_js_1.AdaptadorCpp(),
31
+ new swift_js_1.AdaptadorSwift(),
32
+ new python_js_1.AdaptadorPython(),
33
+ new php_js_1.AdaptadorPHP(),
34
+ new shell_js_1.AdaptadorShell(),
35
+ ];
36
+ /**
37
+ * Resuelve el adaptador correspondiente utilizando el Motor de Puntuación Heurística
38
+ */
39
+ static async resolver(directorioRaiz, preferencia, archivosAfectados) {
40
+ if (preferencia && preferencia !== 'desconocido') {
41
+ const coincidencia = this.adaptadores.find((a) => a.ecosistema === preferencia);
42
+ if (coincidencia)
43
+ return coincidencia;
44
+ }
45
+ const contexto = {
46
+ directorioRaiz,
47
+ archivosAfectados,
48
+ };
49
+ // Evaluar puntuación heurística de todos los adaptadores concurrentemente
50
+ const puntuaciones = await Promise.all(this.adaptadores.map(async (adaptador) => {
51
+ const puntaje = await adaptador.calcularPuntaje(contexto);
52
+ return { adaptador, puntaje };
53
+ }));
54
+ // Ordenar de mayor a menor puntuación
55
+ puntuaciones.sort((a, b) => b.puntaje - a.puntaje);
56
+ const mejor = puntuaciones[0];
57
+ if (mejor && mejor.puntaje > 0) {
58
+ return mejor.adaptador;
59
+ }
60
+ // Fallback universal: TypeScript
61
+ return new typescript_js_1.AdaptadorTypeScript();
62
+ }
63
+ }
64
+ exports.SelectorAdaptador = SelectorAdaptador;
65
+ //# sourceMappingURL=selector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selector.js","sourceRoot":"","sources":["../../src/adapters/selector.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAGH,uCAA0C;AAC1C,2CAA8C;AAC9C,yCAA4C;AAC5C,mDAAsD;AACtD,uCAA0C;AAC1C,2CAA8C;AAC9C,6CAAgD;AAChD,qCAAwC;AACxC,yCAA4C;AAC5C,2CAA8C;AAC9C,qCAAwC;AACxC,yCAA4C;AAE5C,MAAa,iBAAiB;IACpB,MAAM,CAAU,WAAW,GAAiC;QAClE,IAAI,uBAAa,EAAE;QACnB,IAAI,2BAAe,EAAE;QACrB,IAAI,yBAAc,EAAE;QACpB,IAAI,mCAAmB,EAAE;QACzB,IAAI,uBAAa,EAAE;QACnB,IAAI,2BAAe,EAAE;QACrB,IAAI,6BAAgB,EAAE;QACtB,IAAI,qBAAY,EAAE;QAClB,IAAI,yBAAc,EAAE;QACpB,IAAI,2BAAe,EAAE;QACrB,IAAI,qBAAY,EAAE;QAClB,IAAI,yBAAc,EAAE;KACrB,CAAC;IAEF;;OAEG;IACI,MAAM,CAAC,KAAK,CAAC,QAAQ,CAC1B,cAAsB,EACtB,WAAgC,EAChC,iBAAqC;QAErC,IAAI,WAAW,IAAI,WAAW,KAAK,aAAa,EAAE,CAAC;YACjD,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,WAAW,CAAC,CAAC;YAChF,IAAI,YAAY;gBAAE,OAAO,YAAY,CAAC;QACxC,CAAC;QAED,MAAM,QAAQ,GAAsB;YAClC,cAAc;YACd,iBAAiB;SAClB,CAAC;QAEF,0EAA0E;QAC1E,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,GAAG,CACpC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE;YACvC,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;YAC1D,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;QAChC,CAAC,CAAC,CACH,CAAC;QAEF,sCAAsC;QACtC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;QAEnD,MAAM,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;YAC/B,OAAO,KAAK,CAAC,SAAS,CAAC;QACzB,CAAC;QAED,iCAAiC;QACjC,OAAO,IAAI,mCAAmB,EAAE,CAAC;IACnC,CAAC;;AApDH,8CAqDC"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * @file shell.ts
3
+ * @description Adaptador heurístico especializado para Bash / Shell Scripting.
4
+ * Estándar AUM-IC 7:2026.
5
+ */
6
+ import type { EcosistemaLenguaje, ContextoDeteccion } from '../core/types.js';
7
+ import { AdaptadorBase } from './base.js';
8
+ export declare class AdaptadorShell extends AdaptadorBase {
9
+ readonly ecosistema: EcosistemaLenguaje;
10
+ readonly nombreLegible: string;
11
+ protected readonly criterios: {
12
+ manifiestos: never[];
13
+ configuraciones: string[];
14
+ lockfiles: never[];
15
+ extensiones: string[];
16
+ };
17
+ calcularPuntaje(contexto: ContextoDeteccion): Promise<number>;
18
+ ejecutarLinterEstricto(directorioRaiz: string): Promise<{
19
+ exitoso: boolean;
20
+ mensaje: string;
21
+ }>;
22
+ generarAndamioTest(idIncidente: string, descripcionFallo: string): Promise<string>;
23
+ purgarEstado(_directorioRaiz: string): Promise<{
24
+ exitoso: boolean;
25
+ mensaje: string;
26
+ }>;
27
+ }
28
+ //# sourceMappingURL=shell.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../src/adapters/shell.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAG1C,qBAAa,cAAe,SAAQ,aAAa;IAC/C,SAAgB,UAAU,EAAE,kBAAkB,CAAW;IACzD,SAAgB,aAAa,EAAE,MAAM,CAA4B;IAEjE,SAAS,CAAC,QAAQ,CAAC,SAAS;;;;;MAK1B;IAEoB,eAAe,CAAC,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC;IAqBtE,sBAAsB,CACjC,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAQpC,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAclF,YAAY,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAGnG"}
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+ /**
3
+ * @file shell.ts
4
+ * @description Adaptador heurístico especializado para Bash / Shell Scripting.
5
+ * Estándar AUM-IC 7:2026.
6
+ */
7
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
8
+ if (k2 === undefined) k2 = k;
9
+ var desc = Object.getOwnPropertyDescriptor(m, k);
10
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
11
+ desc = { enumerable: true, get: function() { return m[k]; } };
12
+ }
13
+ Object.defineProperty(o, k2, desc);
14
+ }) : (function(o, m, k, k2) {
15
+ if (k2 === undefined) k2 = k;
16
+ o[k2] = m[k];
17
+ }));
18
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
19
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
20
+ }) : function(o, v) {
21
+ o["default"] = v;
22
+ });
23
+ var __importStar = (this && this.__importStar) || (function () {
24
+ var ownKeys = function(o) {
25
+ ownKeys = Object.getOwnPropertyNames || function (o) {
26
+ var ar = [];
27
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
28
+ return ar;
29
+ };
30
+ return ownKeys(o);
31
+ };
32
+ return function (mod) {
33
+ if (mod && mod.__esModule) return mod;
34
+ var result = {};
35
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
36
+ __setModuleDefault(result, mod);
37
+ return result;
38
+ };
39
+ })();
40
+ Object.defineProperty(exports, "__esModule", { value: true });
41
+ exports.AdaptadorShell = void 0;
42
+ const fs = __importStar(require("node:fs/promises"));
43
+ const path = __importStar(require("node:path"));
44
+ const base_js_1 = require("./base.js");
45
+ const ejecutor_js_1 = require("../utils/ejecutor.js");
46
+ class AdaptadorShell extends base_js_1.AdaptadorBase {
47
+ ecosistema = 'shell';
48
+ nombreLegible = 'Bash / Shell Scripting';
49
+ criterios = {
50
+ manifiestos: [],
51
+ configuraciones: ['.shellcheckrc'],
52
+ lockfiles: [],
53
+ extensiones: ['.sh', '.bash', '.zsh'],
54
+ };
55
+ async calcularPuntaje(contexto) {
56
+ let p = await super.calcularPuntaje(contexto);
57
+ // Inspección de Shebang en archivos afectados
58
+ for (const archivo of contexto.archivosAfectados || []) {
59
+ try {
60
+ const rutaAbs = path.isAbsolute(archivo) ? archivo : path.join(contexto.directorioRaiz, archivo);
61
+ const handle = await fs.open(rutaAbs, 'r');
62
+ const buffer = Buffer.alloc(64);
63
+ await handle.read(buffer, 0, 64, 0);
64
+ await handle.close();
65
+ const header = buffer.toString('utf-8');
66
+ if (header.startsWith('#!/bin/bash') || header.startsWith('#!/bin/sh') || header.startsWith('#!/usr/bin/env bash')) {
67
+ p += 50;
68
+ }
69
+ }
70
+ catch {
71
+ // Ignorar
72
+ }
73
+ }
74
+ return p;
75
+ }
76
+ async ejecutarLinterEstricto(directorioRaiz) {
77
+ await ejecutor_js_1.EjecutorComando.ejecutar('shellcheck *.sh 2>/dev/null || true', directorioRaiz);
78
+ return {
79
+ exitoso: true,
80
+ mensaje: 'Auditoría Shell / Bash completada.',
81
+ };
82
+ }
83
+ async generarAndamioTest(idIncidente, descripcionFallo) {
84
+ return [
85
+ '#!/usr/bin/env bash',
86
+ '# Andamio de Test Determinista PUF-15 [Fase Roja G2 / Fase Verde G5]',
87
+ '# Incidente: ' + idIncidente,
88
+ '# Descripción: ' + descripcionFallo,
89
+ '# Estándar AUM-IC 7:2026',
90
+ 'set -euo pipefail',
91
+ '',
92
+ 'exit 0',
93
+ '',
94
+ ].join('\n');
95
+ }
96
+ async purgarEstado(_directorioRaiz) {
97
+ return { exitoso: true, mensaje: 'Ambiente Shell limpio.' };
98
+ }
99
+ }
100
+ exports.AdaptadorShell = AdaptadorShell;
101
+ //# sourceMappingURL=shell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shell.js","sourceRoot":"","sources":["../../src/adapters/shell.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,qDAAuC;AACvC,gDAAkC;AAElC,uCAA0C;AAC1C,sDAAuD;AAEvD,MAAa,cAAe,SAAQ,uBAAa;IAC/B,UAAU,GAAuB,OAAO,CAAC;IACzC,aAAa,GAAW,wBAAwB,CAAC;IAE9C,SAAS,GAAG;QAC7B,WAAW,EAAE,EAAE;QACf,eAAe,EAAE,CAAC,eAAe,CAAC;QAClC,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC;KACtC,CAAC;IAEc,KAAK,CAAC,eAAe,CAAC,QAA2B;QAC/D,IAAI,CAAC,GAAG,MAAM,KAAK,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QAC9C,8CAA8C;QAC9C,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,iBAAiB,IAAI,EAAE,EAAE,CAAC;YACvD,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;gBACjG,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;gBAC3C,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBAChC,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;gBACpC,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;gBACrB,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBACxC,IAAI,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,qBAAqB,CAAC,EAAE,CAAC;oBACnH,CAAC,IAAI,EAAE,CAAC;gBACV,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,UAAU;YACZ,CAAC;QACH,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IAEM,KAAK,CAAC,sBAAsB,CACjC,cAAsB;QAEtB,MAAM,6BAAe,CAAC,QAAQ,CAAC,qCAAqC,EAAE,cAAc,CAAC,CAAC;QACtF,OAAO;YACL,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,oCAAoC;SAC9C,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,kBAAkB,CAAC,WAAmB,EAAE,gBAAwB;QAC3E,OAAO;YACL,qBAAqB;YACrB,sEAAsE;YACtE,eAAe,GAAG,WAAW;YAC7B,iBAAiB,GAAG,gBAAgB;YACpC,0BAA0B;YAC1B,mBAAmB;YACnB,EAAE;YACF,QAAQ;YACR,EAAE;SACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,eAAuB;QAC/C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,wBAAwB,EAAE,CAAC;IAC9D,CAAC;CACF;AA3DD,wCA2DC"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * @file swift.ts
3
+ * @description Adaptador heurístico especializado para Swift / macOS / iOS.
4
+ * Estándar AUM-IC 7:2026.
5
+ */
6
+ import type { EcosistemaLenguaje, ContextoDeteccion } from '../core/types.js';
7
+ import { AdaptadorBase } from './base.js';
8
+ export declare class AdaptadorSwift extends AdaptadorBase {
9
+ readonly ecosistema: EcosistemaLenguaje;
10
+ readonly nombreLegible: string;
11
+ protected readonly criterios: {
12
+ manifiestos: string[];
13
+ configuraciones: string[];
14
+ lockfiles: string[];
15
+ extensiones: string[];
16
+ };
17
+ calcularPuntaje(contexto: ContextoDeteccion): Promise<number>;
18
+ ejecutarLinterEstricto(directorioRaiz: string): Promise<{
19
+ exitoso: boolean;
20
+ mensaje: string;
21
+ }>;
22
+ generarAndamioTest(idIncidente: string, descripcionFallo: string): Promise<string>;
23
+ purgarEstado(directorioRaiz: string): Promise<{
24
+ exitoso: boolean;
25
+ mensaje: string;
26
+ }>;
27
+ }
28
+ //# sourceMappingURL=swift.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swift.d.ts","sourceRoot":"","sources":["../../src/adapters/swift.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAG1C,qBAAa,cAAe,SAAQ,aAAa;IAC/C,SAAgB,UAAU,EAAE,kBAAkB,CAAW;IACzD,SAAgB,aAAa,EAAE,MAAM,CAA6B;IAElE,SAAS,CAAC,QAAQ,CAAC,SAAS;;;;;MAK1B;IAEoB,eAAe,CAAC,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC;IAStE,sBAAsB,CACjC,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAQpC,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAiBlF,YAAY,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAIlG"}