@stevenvo780/autologic 2.0.0 → 2.2.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.
- package/README.md +2 -0
- package/dist/atoms/index.d.ts +1 -1
- package/dist/atoms/index.d.ts.map +1 -1
- package/dist/atoms/index.js +91 -3
- package/dist/atoms/index.js.map +1 -1
- package/dist/atoms/keyword-extractor.d.ts +9 -0
- package/dist/atoms/keyword-extractor.d.ts.map +1 -1
- package/dist/atoms/keyword-extractor.js +64 -2
- package/dist/atoms/keyword-extractor.js.map +1 -1
- package/dist/atoms/math-parser.d.ts +11 -0
- package/dist/atoms/math-parser.d.ts.map +1 -0
- package/dist/atoms/math-parser.js +44 -0
- package/dist/atoms/math-parser.js.map +1 -0
- package/dist/compiler-frontend.d.ts +9 -0
- package/dist/compiler-frontend.d.ts.map +1 -0
- package/dist/compiler-frontend.js +142 -0
- package/dist/compiler-frontend.js.map +1 -0
- package/dist/context/discourse-state.d.ts +10 -0
- package/dist/context/discourse-state.d.ts.map +1 -0
- package/dist/context/discourse-state.js +26 -0
- package/dist/context/discourse-state.js.map +1 -0
- package/dist/discourse/markers-es.d.ts.map +1 -1
- package/dist/discourse/markers-es.js +23 -0
- package/dist/discourse/markers-es.js.map +1 -1
- package/dist/discourse/pattern-detector.d.ts.map +1 -1
- package/dist/discourse/pattern-detector.js +2 -1
- package/dist/discourse/pattern-detector.js.map +1 -1
- package/dist/discourse/role-classifier.js +38 -6
- package/dist/discourse/role-classifier.js.map +1 -1
- package/dist/formalize.d.ts +16 -0
- package/dist/formalize.d.ts.map +1 -1
- package/dist/formalize.js +128 -0
- package/dist/formalize.js.map +1 -1
- package/dist/formula/argument-builder.d.ts.map +1 -1
- package/dist/formula/argument-builder.js +124 -15
- package/dist/formula/argument-builder.js.map +1 -1
- package/dist/formula/ast-compiler.d.ts +6 -0
- package/dist/formula/ast-compiler.d.ts.map +1 -0
- package/dist/formula/ast-compiler.js +105 -0
- package/dist/formula/ast-compiler.js.map +1 -0
- package/dist/formula/ast.d.ts +81 -0
- package/dist/formula/ast.d.ts.map +1 -0
- package/dist/formula/ast.js +52 -0
- package/dist/formula/ast.js.map +1 -0
- package/dist/formula/connectors.js +1 -1
- package/dist/formula/connectors.js.map +1 -1
- package/dist/formula/first-order.js +74 -7
- package/dist/formula/first-order.js.map +1 -1
- package/dist/formula/helpers.d.ts +8 -0
- package/dist/formula/helpers.d.ts.map +1 -0
- package/dist/formula/helpers.js +166 -0
- package/dist/formula/helpers.js.map +1 -0
- package/dist/formula/index.d.ts +1 -0
- package/dist/formula/index.d.ts.map +1 -1
- package/dist/formula/index.js +5 -3
- package/dist/formula/index.js.map +1 -1
- package/dist/formula/modal.d.ts.map +1 -1
- package/dist/formula/modal.js +56 -67
- package/dist/formula/modal.js.map +1 -1
- package/dist/formula/probabilistic.d.ts +3 -0
- package/dist/formula/probabilistic.d.ts.map +1 -0
- package/dist/formula/probabilistic.js +55 -0
- package/dist/formula/probabilistic.js.map +1 -0
- package/dist/formula/propositional.d.ts +2 -2
- package/dist/formula/propositional.d.ts.map +1 -1
- package/dist/formula/propositional.js +99 -88
- package/dist/formula/propositional.js.map +1 -1
- package/dist/formula/temporal.d.ts.map +1 -1
- package/dist/formula/temporal.js +87 -62
- package/dist/formula/temporal.js.map +1 -1
- package/dist/generator/validator.d.ts +20 -0
- package/dist/generator/validator.d.ts.map +1 -1
- package/dist/generator/validator.js +112 -0
- package/dist/generator/validator.js.map +1 -1
- package/dist/index.d.ts +6 -17
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -17
- package/dist/index.js.map +1 -1
- package/dist/llm-parser.d.ts +29 -0
- package/dist/llm-parser.d.ts.map +1 -0
- package/dist/llm-parser.js +122 -0
- package/dist/llm-parser.js.map +1 -0
- package/dist/local-slm-web.d.ts +8 -0
- package/dist/local-slm-web.d.ts.map +1 -0
- package/dist/local-slm-web.js +87 -0
- package/dist/local-slm-web.js.map +1 -0
- package/dist/nl-linter/index.d.ts +10 -0
- package/dist/nl-linter/index.d.ts.map +1 -0
- package/dist/nl-linter/index.js +45 -0
- package/dist/nl-linter/index.js.map +1 -0
- package/dist/nl-linter/rules.d.ts +6 -0
- package/dist/nl-linter/rules.d.ts.map +1 -0
- package/dist/nl-linter/rules.js +93 -0
- package/dist/nl-linter/rules.js.map +1 -0
- package/dist/nl-linter/types.d.ts +14 -0
- package/dist/nl-linter/types.d.ts.map +1 -0
- package/dist/nl-linter/types.js +3 -0
- package/dist/nl-linter/types.js.map +1 -0
- package/dist/segmenter/clause-splitter.d.ts.map +1 -1
- package/dist/segmenter/clause-splitter.js +208 -10
- package/dist/segmenter/clause-splitter.js.map +1 -1
- package/dist/types.d.ts +22 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +14 -3
- package/readme.md +666 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"temporal.js","sourceRoot":"","sources":["../../src/formula/temporal.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"temporal.js","sourceRoot":"","sources":["../../src/formula/temporal.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,20 +3,40 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Intenta importar st-lang dinámicamente (peerDep).
|
|
5
5
|
* Si no está disponible, reporta warning pero no falla.
|
|
6
|
+
*
|
|
7
|
+
* NOTE: child_process is loaded dynamically to keep this module
|
|
8
|
+
* importable in browser/webpack contexts (Next.js client bundles).
|
|
6
9
|
*/
|
|
7
10
|
import type { Diagnostic } from '../types';
|
|
8
11
|
interface ValidationResult {
|
|
9
12
|
ok: boolean;
|
|
10
13
|
errors: string[];
|
|
11
14
|
}
|
|
15
|
+
interface ExecutionResult {
|
|
16
|
+
ok: boolean;
|
|
17
|
+
exitCode: number;
|
|
18
|
+
timedOut: boolean;
|
|
19
|
+
durationMs: number;
|
|
20
|
+
errors: string[];
|
|
21
|
+
resultStatuses: string[];
|
|
22
|
+
}
|
|
12
23
|
/**
|
|
13
24
|
* Valida código ST usando el parser de st-lang.
|
|
14
25
|
* Requiere que @stevenvo780/st-lang esté instalado (peerDependency).
|
|
15
26
|
*/
|
|
16
27
|
export declare function validateST(code: string): ValidationResult;
|
|
28
|
+
/**
|
|
29
|
+
* Ejecuta código ST para detectar errores reales de parser/runtime.
|
|
30
|
+
* Si st-lang no está disponible, no bloquea la formalización.
|
|
31
|
+
*/
|
|
32
|
+
export declare function executeST(code: string): ExecutionResult;
|
|
17
33
|
/**
|
|
18
34
|
* Convierte errores de validación en diagnósticos.
|
|
19
35
|
*/
|
|
20
36
|
export declare function validationToDiagnostics(validation: ValidationResult): Diagnostic[];
|
|
37
|
+
/**
|
|
38
|
+
* Convierte errores de ejecución en diagnósticos.
|
|
39
|
+
*/
|
|
40
|
+
export declare function executionToDiagnostics(execution: ExecutionResult): Diagnostic[];
|
|
21
41
|
export {};
|
|
22
42
|
//# sourceMappingURL=validator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/generator/validator.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/generator/validator.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C,UAAU,gBAAgB;IACxB,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,UAAU,eAAe;IACvB,EAAE,EAAE,OAAO,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;AAUD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAiCzD;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CA6FvD;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,gBAAgB,GAAG,UAAU,EAAE,CAOlF;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,eAAe,GAAG,UAAU,EAAE,CAO/E"}
|
|
@@ -1,7 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.validateST = validateST;
|
|
4
|
+
exports.executeST = executeST;
|
|
4
5
|
exports.validationToDiagnostics = validationToDiagnostics;
|
|
6
|
+
exports.executionToDiagnostics = executionToDiagnostics;
|
|
7
|
+
const DEFAULT_EXECUTION_TIMEOUT_MS = 4000;
|
|
8
|
+
function getExecutionTimeoutMs() {
|
|
9
|
+
const raw = process.env.AUTOLOGIC_ST_EXEC_TIMEOUT_MS;
|
|
10
|
+
const parsed = raw ? Number(raw) : NaN;
|
|
11
|
+
return Number.isFinite(parsed) && parsed > 0 ? parsed : DEFAULT_EXECUTION_TIMEOUT_MS;
|
|
12
|
+
}
|
|
5
13
|
/**
|
|
6
14
|
* Valida código ST usando el parser de st-lang.
|
|
7
15
|
* Requiere que @stevenvo780/st-lang esté instalado (peerDependency).
|
|
@@ -38,6 +46,98 @@ function validateST(code) {
|
|
|
38
46
|
return { ok: true, errors: [] };
|
|
39
47
|
}
|
|
40
48
|
}
|
|
49
|
+
/**
|
|
50
|
+
* Ejecuta código ST para detectar errores reales de parser/runtime.
|
|
51
|
+
* Si st-lang no está disponible, no bloquea la formalización.
|
|
52
|
+
*/
|
|
53
|
+
function executeST(code) {
|
|
54
|
+
const startedAt = Date.now();
|
|
55
|
+
try {
|
|
56
|
+
// Dynamic require to avoid breaking browser/webpack bundles
|
|
57
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
58
|
+
const cp = require('child_process');
|
|
59
|
+
const spawnSync = cp.spawnSync;
|
|
60
|
+
const runner = String.raw `
|
|
61
|
+
const fs = require('node:fs');
|
|
62
|
+
const input = fs.readFileSync(0, 'utf8');
|
|
63
|
+
const stLang = require('@stevenvo780/st-lang');
|
|
64
|
+
const result = stLang.evaluate(input);
|
|
65
|
+
const diagnostics = Array.isArray(result?.diagnostics) ? result.diagnostics : [];
|
|
66
|
+
const stderr = typeof result?.stderr === 'string' ? result.stderr.trim() : '';
|
|
67
|
+
const errors = diagnostics
|
|
68
|
+
.filter((d) => d?.severity === 'error')
|
|
69
|
+
.map((d) => d?.message || 'Error desconocido');
|
|
70
|
+
if (stderr) errors.push(stderr);
|
|
71
|
+
process.stdout.write(JSON.stringify({
|
|
72
|
+
ok: result?.exitCode === 0,
|
|
73
|
+
exitCode: typeof result?.exitCode === 'number' ? result.exitCode : 0,
|
|
74
|
+
errors: Array.from(new Set(errors)).filter((error) => typeof error === 'string' && error.length > 0),
|
|
75
|
+
resultStatuses: Array.isArray(result?.results)
|
|
76
|
+
? result.results.map((entry) => entry?.status || 'unknown')
|
|
77
|
+
: [],
|
|
78
|
+
}));`;
|
|
79
|
+
const child = spawnSync(process.execPath, ['-e', runner], {
|
|
80
|
+
input: code,
|
|
81
|
+
encoding: 'utf8',
|
|
82
|
+
timeout: getExecutionTimeoutMs(),
|
|
83
|
+
maxBuffer: 1024 * 1024,
|
|
84
|
+
env: process.env,
|
|
85
|
+
cwd: process.cwd(),
|
|
86
|
+
});
|
|
87
|
+
const durationMs = Date.now() - startedAt;
|
|
88
|
+
if (child.error && 'code' in child.error && child.error.code === 'ETIMEDOUT') {
|
|
89
|
+
return {
|
|
90
|
+
ok: false,
|
|
91
|
+
exitCode: -1,
|
|
92
|
+
timedOut: true,
|
|
93
|
+
durationMs,
|
|
94
|
+
errors: [`Tiempo de ejecución ST excedido (${getExecutionTimeoutMs()} ms)`],
|
|
95
|
+
resultStatuses: [],
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
if (child.error) {
|
|
99
|
+
return {
|
|
100
|
+
ok: false,
|
|
101
|
+
exitCode: -1,
|
|
102
|
+
timedOut: false,
|
|
103
|
+
durationMs,
|
|
104
|
+
errors: [child.error.message],
|
|
105
|
+
resultStatuses: [],
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
const stdout = (child.stdout || '').trim();
|
|
109
|
+
if (!stdout) {
|
|
110
|
+
const stderr = (child.stderr || '').trim();
|
|
111
|
+
return {
|
|
112
|
+
ok: false,
|
|
113
|
+
exitCode: child.status ?? -1,
|
|
114
|
+
timedOut: false,
|
|
115
|
+
durationMs,
|
|
116
|
+
errors: stderr ? [stderr] : ['ST no devolvió salida estructurada'],
|
|
117
|
+
resultStatuses: [],
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
const parsed = JSON.parse(stdout);
|
|
121
|
+
return {
|
|
122
|
+
ok: parsed.ok,
|
|
123
|
+
exitCode: parsed.exitCode,
|
|
124
|
+
timedOut: false,
|
|
125
|
+
durationMs,
|
|
126
|
+
errors: parsed.errors,
|
|
127
|
+
resultStatuses: parsed.resultStatuses,
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
catch {
|
|
131
|
+
return {
|
|
132
|
+
ok: true,
|
|
133
|
+
exitCode: 0,
|
|
134
|
+
timedOut: false,
|
|
135
|
+
durationMs: Date.now() - startedAt,
|
|
136
|
+
errors: [],
|
|
137
|
+
resultStatuses: [],
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
}
|
|
41
141
|
/**
|
|
42
142
|
* Convierte errores de validación en diagnósticos.
|
|
43
143
|
*/
|
|
@@ -50,4 +150,16 @@ function validationToDiagnostics(validation) {
|
|
|
50
150
|
code: 'ST_VALIDATION',
|
|
51
151
|
}));
|
|
52
152
|
}
|
|
153
|
+
/**
|
|
154
|
+
* Convierte errores de ejecución en diagnósticos.
|
|
155
|
+
*/
|
|
156
|
+
function executionToDiagnostics(execution) {
|
|
157
|
+
if (execution.ok)
|
|
158
|
+
return [];
|
|
159
|
+
return execution.errors.map(error => ({
|
|
160
|
+
severity: execution.timedOut ? 'warning' : 'error',
|
|
161
|
+
message: `ST Execution (${execution.durationMs} ms${execution.timedOut ? ', timeout' : ''}): ${error}`,
|
|
162
|
+
code: 'ST_EXECUTION',
|
|
163
|
+
}));
|
|
164
|
+
}
|
|
53
165
|
//# sourceMappingURL=validator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/generator/validator.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/generator/validator.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -3,25 +3,14 @@
|
|
|
3
3
|
*
|
|
4
4
|
* @packageDocumentation
|
|
5
5
|
* @module @stevenvo780/autologic
|
|
6
|
-
*
|
|
7
|
-
* @example
|
|
8
|
-
* ```ts
|
|
9
|
-
* import { formalize, Autologic } from '@stevenvo780/autologic';
|
|
10
|
-
*
|
|
11
|
-
* // Uso stateless
|
|
12
|
-
* const result = formalize("Si llueve, la calle se moja.", {
|
|
13
|
-
* profile: 'classical.propositional',
|
|
14
|
-
* language: 'es',
|
|
15
|
-
* });
|
|
16
|
-
* console.log(result.stCode);
|
|
17
|
-
*
|
|
18
|
-
* // Uso con estado
|
|
19
|
-
* const al = new Autologic({ language: 'es' });
|
|
20
|
-
* const r = al.formalize("Todo humano es mortal. Sócrates es humano.");
|
|
21
|
-
* ```
|
|
22
6
|
*/
|
|
23
|
-
export { formalize } from './formalize';
|
|
7
|
+
export { formalize, formalizeWithLLM } from './formalize';
|
|
8
|
+
export type { FormalizeWithLLMOptions, FormalizationLLMResult } from './formalize';
|
|
9
|
+
export { lintNaturalLanguage, DEFAULT_RULES } from './nl-linter';
|
|
10
|
+
export type { NLLinterDiagnostic, NLRule } from './nl-linter';
|
|
24
11
|
export { Autologic } from './autologic';
|
|
12
|
+
export { parseTextWithLLM, llmResultToST } from './llm-parser';
|
|
13
|
+
export type { LLMConfig, LLMParsedResult } from './llm-parser';
|
|
25
14
|
export type { FormalizeOptions, FormalizationResult, AutologicConfig, LogicProfile, Language, AtomStyle, DiscourseAnalysis, AnalyzedSentence, AnalyzedClause, SentenceType, ClauseRole, ClauseModifier, MarkerRole, MarkerDefinition, DetectedMarker, ArgumentStructure, ArgumentRelation, ArgumentPattern, Sentence, Clause, AtomEntry, FormulaEntry, STStatementType, Diagnostic, Token, } from './types';
|
|
26
15
|
export { segment } from './segmenter';
|
|
27
16
|
export { analyzeDiscourse } from './discourse';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC1D,YAAY,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACnF,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjE,YAAY,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC/D,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAG/D,YAAY,EACV,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,UAAU,EACV,cAAc,EACd,UAAU,EACV,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,QAAQ,EACR,MAAM,EACN,SAAS,EACT,YAAY,EACZ,eAAe,EACf,UAAU,EACV,KAAK,GACN,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -4,30 +4,21 @@
|
|
|
4
4
|
*
|
|
5
5
|
* @packageDocumentation
|
|
6
6
|
* @module @stevenvo780/autologic
|
|
7
|
-
*
|
|
8
|
-
* @example
|
|
9
|
-
* ```ts
|
|
10
|
-
* import { formalize, Autologic } from '@stevenvo780/autologic';
|
|
11
|
-
*
|
|
12
|
-
* // Uso stateless
|
|
13
|
-
* const result = formalize("Si llueve, la calle se moja.", {
|
|
14
|
-
* profile: 'classical.propositional',
|
|
15
|
-
* language: 'es',
|
|
16
|
-
* });
|
|
17
|
-
* console.log(result.stCode);
|
|
18
|
-
*
|
|
19
|
-
* // Uso con estado
|
|
20
|
-
* const al = new Autologic({ language: 'es' });
|
|
21
|
-
* const r = al.formalize("Todo humano es mortal. Sócrates es humano.");
|
|
22
|
-
* ```
|
|
23
7
|
*/
|
|
24
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
|
-
exports.validateST = exports.emitST = exports.buildFormulas = exports.extractAtoms = exports.analyzeDiscourse = exports.segment = exports.Autologic = exports.formalize = void 0;
|
|
9
|
+
exports.validateST = exports.emitST = exports.buildFormulas = exports.extractAtoms = exports.analyzeDiscourse = exports.segment = exports.llmResultToST = exports.parseTextWithLLM = exports.Autologic = exports.DEFAULT_RULES = exports.lintNaturalLanguage = exports.formalizeWithLLM = exports.formalize = void 0;
|
|
26
10
|
// ── API pública principal ─────────────────────
|
|
27
11
|
var formalize_1 = require("./formalize");
|
|
28
12
|
Object.defineProperty(exports, "formalize", { enumerable: true, get: function () { return formalize_1.formalize; } });
|
|
13
|
+
Object.defineProperty(exports, "formalizeWithLLM", { enumerable: true, get: function () { return formalize_1.formalizeWithLLM; } });
|
|
14
|
+
var nl_linter_1 = require("./nl-linter");
|
|
15
|
+
Object.defineProperty(exports, "lintNaturalLanguage", { enumerable: true, get: function () { return nl_linter_1.lintNaturalLanguage; } });
|
|
16
|
+
Object.defineProperty(exports, "DEFAULT_RULES", { enumerable: true, get: function () { return nl_linter_1.DEFAULT_RULES; } });
|
|
29
17
|
var autologic_1 = require("./autologic");
|
|
30
18
|
Object.defineProperty(exports, "Autologic", { enumerable: true, get: function () { return autologic_1.Autologic; } });
|
|
19
|
+
var llm_parser_1 = require("./llm-parser");
|
|
20
|
+
Object.defineProperty(exports, "parseTextWithLLM", { enumerable: true, get: function () { return llm_parser_1.parseTextWithLLM; } });
|
|
21
|
+
Object.defineProperty(exports, "llmResultToST", { enumerable: true, get: function () { return llm_parser_1.llmResultToST; } });
|
|
31
22
|
// ── Utilidades expuestas ──────────────────────
|
|
32
23
|
var segmenter_1 = require("./segmenter");
|
|
33
24
|
Object.defineProperty(exports, "segment", { enumerable: true, get: function () { return segmenter_1.segment; } });
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,iDAAiD;AACjD,yCAA0D;AAAjD,sGAAA,SAAS,OAAA;AAAE,6GAAA,gBAAgB,OAAA;AAEpC,yCAAiE;AAAxD,gHAAA,mBAAmB,OAAA;AAAE,0GAAA,aAAa,OAAA;AAE3C,yCAAwC;AAA/B,sGAAA,SAAS,OAAA;AAClB,2CAA+D;AAAtD,8GAAA,gBAAgB,OAAA;AAAE,2GAAA,aAAa,OAAA;AAgCxC,iDAAiD;AACjD,yCAAsC;AAA7B,oGAAA,OAAO,OAAA;AAChB,yCAA+C;AAAtC,6GAAA,gBAAgB,OAAA;AACzB,iCAAuC;AAA9B,qGAAA,YAAY,OAAA;AACrB,qCAA0C;AAAjC,wGAAA,aAAa,OAAA;AACtB,qDAAgD;AAAvC,oGAAA,MAAM,OAAA;AACf,mDAAmD;AAA1C,uGAAA,UAAU,OAAA"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { LogicNode } from './formula/ast';
|
|
2
|
+
import { LogicProfile } from './types';
|
|
3
|
+
export interface LLMConfig {
|
|
4
|
+
provider: 'openai' | 'anthropic' | 'gemini' | 'custom' | 'ollama' | 'web-distilled';
|
|
5
|
+
apiKey: string;
|
|
6
|
+
endpoint?: string;
|
|
7
|
+
model?: string;
|
|
8
|
+
}
|
|
9
|
+
export interface LLMParsedResult {
|
|
10
|
+
axioms: Array<{
|
|
11
|
+
name: string;
|
|
12
|
+
formulaJSON: LogicNode;
|
|
13
|
+
}>;
|
|
14
|
+
conclusions: Array<{
|
|
15
|
+
formulaJSON: LogicNode;
|
|
16
|
+
}>;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Llama a la API del LLM (usando fetch isomorfico) para abstraer el texto a AST.
|
|
20
|
+
*/
|
|
21
|
+
export declare function parseTextWithLLM(text: string, profile: LogicProfile, config: LLMConfig): Promise<LLMParsedResult>;
|
|
22
|
+
/**
|
|
23
|
+
* Transforma la respuesta estructurada del LLM directamente a líneas de código ST seguras.
|
|
24
|
+
*/
|
|
25
|
+
export declare function llmResultToST(result: LLMParsedResult): {
|
|
26
|
+
formula: string;
|
|
27
|
+
type: 'axiom' | 'check';
|
|
28
|
+
}[];
|
|
29
|
+
//# sourceMappingURL=llm-parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"llm-parser.d.ts","sourceRoot":"","sources":["../src/llm-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAO,MAAM,eAAe,CAAC;AAE/C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAGvC,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,QAAQ,GAAG,WAAW,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,eAAe,CAAC;IACpF,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAGD,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,SAAS,CAAA;KAAE,CAAC,CAAC;IACxD,WAAW,EAAE,KAAK,CAAC;QAAE,WAAW,EAAE,SAAS,CAAA;KAAE,CAAC,CAAC;CAChD;AA2BD;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,eAAe,CAAC,CAiFvH;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,eAAe,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAA;CAAE,EAAE,CAYrG"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseTextWithLLM = parseTextWithLLM;
|
|
4
|
+
exports.llmResultToST = llmResultToST;
|
|
5
|
+
const ast_compiler_1 = require("./formula/ast-compiler");
|
|
6
|
+
const local_slm_web_1 = require("./local-slm-web");
|
|
7
|
+
/**
|
|
8
|
+
* Prompt maestro isomorfico y ciego al entorno.
|
|
9
|
+
* Instruye al LLM para actuar como un destilador proposicional situado.
|
|
10
|
+
*/
|
|
11
|
+
function buildSystemPrompt(profile) {
|
|
12
|
+
return `You are Autologic's semantic AST parser.
|
|
13
|
+
Your goal is to read complex human text (often obfuscated legal/technical jargon) and translate it into Situated Propositional Logic or bounded First-Order Logic depending on the profile: '${profile}'.
|
|
14
|
+
DO NOT try to resolve or prove the logic. Only extract the claims and their semantic relations.
|
|
15
|
+
AVOID deep First-Order combinatorial explosions. If passing a specific instance, collapse it into descriptive propositional atoms like: 'CumpleInformesOrdinarios'.
|
|
16
|
+
|
|
17
|
+
You MUST return a pure JSON object conforming exactly to this TS interface, nothing else:
|
|
18
|
+
{
|
|
19
|
+
"axioms": [ { "name": "a1", "formulaJSON": { "type": "Connective", "operator": "IMPLIES", "left": {...}, "right": {...} } } ],
|
|
20
|
+
"conclusions": [ { "formulaJSON": { "type": "Atom", "id": "PasaProgramacionEditorial" } } ]
|
|
21
|
+
}
|
|
22
|
+
Available types for formulaJSON:
|
|
23
|
+
- Atom (id)
|
|
24
|
+
- Connective (operator: AND, OR, IMPLIES, IFF, NOT, left, right)
|
|
25
|
+
- Modal (operator: K, B, O, P, BOX, DIA, etc., child, agent)
|
|
26
|
+
- Quantifier (operator: FORALL, EXISTS, variables, child)
|
|
27
|
+
- predicate (name, args: ObjectNode[])
|
|
28
|
+
|
|
29
|
+
Be precise. Do not include markdown codeblocks around the JSON.`;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Llama a la API del LLM (usando fetch isomorfico) para abstraer el texto a AST.
|
|
33
|
+
*/
|
|
34
|
+
async function parseTextWithLLM(text, profile, config) {
|
|
35
|
+
const systemPrompt = buildSystemPrompt(profile);
|
|
36
|
+
if (config.provider === 'web-distilled') {
|
|
37
|
+
return await (0, local_slm_web_1.runDistilledWebInference)(text, profile, systemPrompt, config.endpoint);
|
|
38
|
+
}
|
|
39
|
+
if (config.provider === 'ollama') {
|
|
40
|
+
// Interfaz nativa de Ollama para el servidor GPU
|
|
41
|
+
const url = config.endpoint || 'http://localhost:11434/api/chat';
|
|
42
|
+
const response = await fetch(url, {
|
|
43
|
+
method: 'POST',
|
|
44
|
+
headers: { 'Content-Type': 'application/json' },
|
|
45
|
+
body: JSON.stringify({
|
|
46
|
+
model: config.model || 'qwen2.5:7b',
|
|
47
|
+
messages: [
|
|
48
|
+
{ role: 'system', content: systemPrompt },
|
|
49
|
+
{ role: 'user', content: `Formalize this text:\n\n${text}` }
|
|
50
|
+
],
|
|
51
|
+
stream: false,
|
|
52
|
+
format: 'json',
|
|
53
|
+
options: {
|
|
54
|
+
temperature: 0.1
|
|
55
|
+
}
|
|
56
|
+
})
|
|
57
|
+
});
|
|
58
|
+
if (!response.ok) {
|
|
59
|
+
const errText = await response.text();
|
|
60
|
+
throw new Error(`Ollama API Error: ${response.status} - ${errText}`);
|
|
61
|
+
}
|
|
62
|
+
const data = await response.json();
|
|
63
|
+
const rawContent = data.message.content;
|
|
64
|
+
try {
|
|
65
|
+
return JSON.parse(rawContent);
|
|
66
|
+
}
|
|
67
|
+
catch (e) {
|
|
68
|
+
throw new Error(`Failed to parse Ollama JSON. Raw: ${rawContent}`);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
let url = config.endpoint || 'https://api.openai.com/v1/chat/completions';
|
|
72
|
+
let headers = {
|
|
73
|
+
'Content-Type': 'application/json'
|
|
74
|
+
};
|
|
75
|
+
let body = {};
|
|
76
|
+
if (config.provider === 'openai') {
|
|
77
|
+
headers['Authorization'] = `Bearer ${config.apiKey}`;
|
|
78
|
+
body = {
|
|
79
|
+
model: config.model || 'gpt-4o',
|
|
80
|
+
messages: [
|
|
81
|
+
{ role: 'system', content: systemPrompt },
|
|
82
|
+
{ role: 'user', content: `Formalize this text:\n\n${text}` }
|
|
83
|
+
],
|
|
84
|
+
response_format: { type: 'json_object' },
|
|
85
|
+
temperature: 0.1
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
throw new Error(`Provider ${config.provider} not yet fully implemented in this isomorphic fetch stub.`);
|
|
90
|
+
}
|
|
91
|
+
const response = await fetch(url, {
|
|
92
|
+
method: 'POST',
|
|
93
|
+
headers,
|
|
94
|
+
body: JSON.stringify(body)
|
|
95
|
+
});
|
|
96
|
+
if (!response.ok) {
|
|
97
|
+
const errText = await response.text();
|
|
98
|
+
throw new Error(`LLM API Error: ${response.status} - ${errText}`);
|
|
99
|
+
}
|
|
100
|
+
const data = await response.json();
|
|
101
|
+
const rawContent = data.choices[0].message.content;
|
|
102
|
+
try {
|
|
103
|
+
return JSON.parse(rawContent);
|
|
104
|
+
}
|
|
105
|
+
catch (e) {
|
|
106
|
+
throw new Error(`Failed to parse LLM JSON output. Raw: ${rawContent}`);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Transforma la respuesta estructurada del LLM directamente a líneas de código ST seguras.
|
|
111
|
+
*/
|
|
112
|
+
function llmResultToST(result) {
|
|
113
|
+
const lines = [];
|
|
114
|
+
for (const ax of result.axioms) {
|
|
115
|
+
lines.push({ formula: (0, ast_compiler_1.compileAST)(ax.formulaJSON), type: 'axiom' });
|
|
116
|
+
}
|
|
117
|
+
for (const conc of result.conclusions) {
|
|
118
|
+
lines.push({ formula: (0, ast_compiler_1.compileAST)(conc.formulaJSON), type: 'check' });
|
|
119
|
+
}
|
|
120
|
+
return lines;
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=llm-parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"llm-parser.js","sourceRoot":"","sources":["../src/llm-parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { LLMParsedResult } from './llm-parser';
|
|
2
|
+
import { LogicProfile } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* Loads @huggingface/transformers asynchronously and runs local ONNX inference
|
|
5
|
+
* using our fine-tuned Qwen2.5-0.5B model hosted on HuggingFace or loaded locally.
|
|
6
|
+
*/
|
|
7
|
+
export declare function runDistilledWebInference(text: string, profile: LogicProfile, systemPrompt: string, customModelUrl?: string): Promise<LLMParsedResult>;
|
|
8
|
+
//# sourceMappingURL=local-slm-web.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-slm-web.d.ts","sourceRoot":"","sources":["../src/local-slm-web.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AA2CvC;;;GAGG;AACH,wBAAsB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CA2C3J"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.runDistilledWebInference = runDistilledWebInference;
|
|
4
|
+
let pipeline = null;
|
|
5
|
+
const TRAINING_SYSTEM_PROMPT = `You are Autologic's semantic AST parser.
|
|
6
|
+
Your goal is to read complex human text (often obfuscated legal/technical jargon) and translate it into Situated Propositional Logic.
|
|
7
|
+
DO NOT try to resolve or prove the logic. Only extract the claims and their semantic relations.
|
|
8
|
+
AVOID deep First-Order combinatorial explosions. Collapse contextual instances into descriptive propositional atoms like: 'CumpleInformesOrdinarios'.
|
|
9
|
+
|
|
10
|
+
You MUST return a pure JSON object conforming exactly to this interface, nothing else:
|
|
11
|
+
{
|
|
12
|
+
"axioms": [ { "name": "a1", "formulaJSON": { "type": "Connective", "operator": "IMPLIES", "left": {...}, "right": {...} } } ],
|
|
13
|
+
"conclusions": [ { "formulaJSON": { "type": "Atom", "id": "X", "text": "..." } } ]
|
|
14
|
+
}
|
|
15
|
+
Available node types for formulaJSON:
|
|
16
|
+
- AtomNode: { "type": "Atom", "id": "CAMEL_CASE_ID", "text": "human readable" }
|
|
17
|
+
- ConnectiveNode: { "type": "Connective", "operator": "AND"|"OR"|"IMPLIES"|"IFF"|"NOT", "left": node, "right": node }
|
|
18
|
+
- ModalNode: { "type": "Modal", "operator": "K"|"B"|"O"|"P"|"BOX"|"DIA", "child": node }
|
|
19
|
+
- QuantifierNode: { "type": "Quantifier", "operator": "FORALL"|"EXISTS", "variables": ["x"], "child": node }
|
|
20
|
+
|
|
21
|
+
Be precise. Return ONLY the raw JSON object. No markdown, no explanation, no codeblocks.`;
|
|
22
|
+
/**
|
|
23
|
+
* Extracts the first complete JSON object from a string,
|
|
24
|
+
* handling trailing garbage that the model may produce after the JSON.
|
|
25
|
+
*/
|
|
26
|
+
function extractFirstJSON(text) {
|
|
27
|
+
let braceCount = 0;
|
|
28
|
+
let jsonStart = -1;
|
|
29
|
+
for (let i = 0; i < text.length; i++) {
|
|
30
|
+
if (text[i] === '{') {
|
|
31
|
+
if (jsonStart === -1)
|
|
32
|
+
jsonStart = i;
|
|
33
|
+
braceCount++;
|
|
34
|
+
}
|
|
35
|
+
else if (text[i] === '}') {
|
|
36
|
+
braceCount--;
|
|
37
|
+
if (braceCount === 0 && jsonStart !== -1) {
|
|
38
|
+
return text.substring(jsonStart, i + 1);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return text;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Loads @huggingface/transformers asynchronously and runs local ONNX inference
|
|
46
|
+
* using our fine-tuned Qwen2.5-0.5B model hosted on HuggingFace or loaded locally.
|
|
47
|
+
*/
|
|
48
|
+
async function runDistilledWebInference(text, profile, systemPrompt, customModelUrl) {
|
|
49
|
+
if (!pipeline) {
|
|
50
|
+
try {
|
|
51
|
+
// Dynamic import for @huggingface/transformers (ESM)
|
|
52
|
+
const transformers = await Function('return import("@huggingface/transformers")')();
|
|
53
|
+
const { pipeline: trPipeline, env } = transformers;
|
|
54
|
+
env.allowLocalModels = true;
|
|
55
|
+
if (customModelUrl) {
|
|
56
|
+
env.localModelPath = customModelUrl;
|
|
57
|
+
env.allowRemoteModels = false;
|
|
58
|
+
}
|
|
59
|
+
// HuggingFace CDN model (fp32 ONNX, ~2.4GB lazy download)
|
|
60
|
+
const modelName = customModelUrl ? 'model-web' : 'stevenvo780/autologic-slm-onnx';
|
|
61
|
+
pipeline = await trPipeline('text-generation', modelName, {
|
|
62
|
+
local_files_only: !!customModelUrl,
|
|
63
|
+
dtype: 'fp32',
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
catch (e) {
|
|
67
|
+
throw new Error(`Web inference blocked: ${e.message}`);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
// Use the EXACT system prompt from training for best results
|
|
71
|
+
const prompt = `<|im_start|>system\n${TRAINING_SYSTEM_PROMPT}<|im_end|>\n<|im_start|>user\nFormalize this text:\n\n${text}<|im_end|>\n<|im_start|>assistant\n`;
|
|
72
|
+
const output = await pipeline(prompt, {
|
|
73
|
+
max_new_tokens: 512,
|
|
74
|
+
temperature: 0.1,
|
|
75
|
+
do_sample: false,
|
|
76
|
+
return_full_text: false,
|
|
77
|
+
});
|
|
78
|
+
const rawContent = output[0]?.generated_text || '';
|
|
79
|
+
try {
|
|
80
|
+
const jsonStr = extractFirstJSON(rawContent);
|
|
81
|
+
return JSON.parse(jsonStr);
|
|
82
|
+
}
|
|
83
|
+
catch (e) {
|
|
84
|
+
throw new Error(`Web inference JSON parse failed: ${rawContent.substring(0, 200)}`);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=local-slm-web.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-slm-web.js","sourceRoot":"","sources":["../src/local-slm-web.ts"],"names":[],"mappings":";;AAgDA,4DA2CC;AAxFD,IAAI,QAAQ,GAAQ,IAAI,CAAC;AAEzB,MAAM,sBAAsB,GAAG;;;;;;;;;;;;;;;;yFAgB0D,CAAC;AAE1F;;;GAGG;AACH,SAAS,gBAAgB,CAAC,IAAY;IACpC,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,SAAS,GAAG,CAAC,CAAC,CAAC;IACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YACpB,IAAI,SAAS,KAAK,CAAC,CAAC;gBAAE,SAAS,GAAG,CAAC,CAAC;YACpC,UAAU,EAAE,CAAC;QACf,CAAC;aAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YAC3B,UAAU,EAAE,CAAC;YACb,IAAI,UAAU,KAAK,CAAC,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC;gBACzC,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACI,KAAK,UAAU,wBAAwB,CAAC,IAAY,EAAE,OAAqB,EAAE,YAAoB,EAAE,cAAuB;IAC/H,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,IAAI,CAAC;YACH,qDAAqD;YACrD,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,4CAA4C,CAAC,EAAE,CAAC;YACpF,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,EAAE,GAAG,YAAY,CAAC;YAEnD,GAAG,CAAC,gBAAgB,GAAG,IAAI,CAAC;YAC5B,IAAI,cAAc,EAAE,CAAC;gBACnB,GAAG,CAAC,cAAc,GAAG,cAAc,CAAC;gBACpC,GAAG,CAAC,iBAAiB,GAAG,KAAK,CAAC;YAChC,CAAC;YAED,0DAA0D;YAC1D,MAAM,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,gCAAgC,CAAC;YAElF,QAAQ,GAAG,MAAM,UAAU,CAAC,iBAAiB,EAAE,SAAS,EAAE;gBACxD,gBAAgB,EAAE,CAAC,CAAC,cAAc;gBAClC,KAAK,EAAE,MAAM;aACd,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IAED,6DAA6D;IAC7D,MAAM,MAAM,GAAG,uBAAuB,sBAAsB,yDAAyD,IAAI,qCAAqC,CAAC;IAE/J,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,MAAM,EAAE;QACpC,cAAc,EAAE,GAAG;QACnB,WAAW,EAAE,GAAG;QAChB,SAAS,EAAE,KAAK;QAChB,gBAAgB,EAAE,KAAK;KACxB,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,cAAc,IAAI,EAAE,CAAC;IAEnD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAC7C,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAoB,CAAC;IAChD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,oCAAoC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IACtF,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { NLLinterDiagnostic, NLRule } from './types';
|
|
2
|
+
export declare const DEFAULT_RULES: NLRule[];
|
|
3
|
+
/**
|
|
4
|
+
* Escanea de forma asíncrona un texto buscando posibles violaciones de formalización sintiéndose como un Linter "ESLint".
|
|
5
|
+
* Totalmente compatible con ejecución en cliente.
|
|
6
|
+
*/
|
|
7
|
+
export declare function lintNaturalLanguage(text: string, rules?: NLRule[]): NLLinterDiagnostic[];
|
|
8
|
+
export * from './types';
|
|
9
|
+
export * from './rules';
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/nl-linter/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAGrD,eAAO,MAAM,aAAa,EAAE,MAAM,EAKjC,CAAC;AAEF;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,GAAE,MAAM,EAAkB,GAAG,kBAAkB,EAAE,CAavG;AAED,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC"}
|