flowscript-core 1.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.
- package/LICENSE +21 -0
- package/README.md +386 -0
- package/bin/flowscript +12 -0
- package/dist/cli.d.ts +12 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +463 -0
- package/dist/cli.js.map +1 -0
- package/dist/errors/indentation-error.d.ts +11 -0
- package/dist/errors/indentation-error.d.ts.map +1 -0
- package/dist/errors/indentation-error.js +22 -0
- package/dist/errors/indentation-error.js.map +1 -0
- package/dist/grammar.ohm +132 -0
- package/dist/hash.d.ts +21 -0
- package/dist/hash.d.ts.map +1 -0
- package/dist/hash.js +82 -0
- package/dist/hash.js.map +1 -0
- package/dist/indentation-scanner.d.ts +81 -0
- package/dist/indentation-scanner.d.ts.map +1 -0
- package/dist/indentation-scanner.js +290 -0
- package/dist/indentation-scanner.js.map +1 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +49 -0
- package/dist/index.js.map +1 -0
- package/dist/linter.d.ts +71 -0
- package/dist/linter.d.ts.map +1 -0
- package/dist/linter.js +122 -0
- package/dist/linter.js.map +1 -0
- package/dist/memory.d.ts +506 -0
- package/dist/memory.d.ts.map +1 -0
- package/dist/memory.js +1802 -0
- package/dist/memory.js.map +1 -0
- package/dist/parser.d.ts +53 -0
- package/dist/parser.d.ts.map +1 -0
- package/dist/parser.js +1184 -0
- package/dist/parser.js.map +1 -0
- package/dist/query-engine.d.ts +320 -0
- package/dist/query-engine.d.ts.map +1 -0
- package/dist/query-engine.js +884 -0
- package/dist/query-engine.js.map +1 -0
- package/dist/rules/alternatives-without-decision.d.ts +24 -0
- package/dist/rules/alternatives-without-decision.d.ts.map +1 -0
- package/dist/rules/alternatives-without-decision.js +58 -0
- package/dist/rules/alternatives-without-decision.js.map +1 -0
- package/dist/rules/causal-cycles.d.ts +23 -0
- package/dist/rules/causal-cycles.d.ts.map +1 -0
- package/dist/rules/causal-cycles.js +83 -0
- package/dist/rules/causal-cycles.js.map +1 -0
- package/dist/rules/deep-nesting.d.ts +23 -0
- package/dist/rules/deep-nesting.d.ts.map +1 -0
- package/dist/rules/deep-nesting.js +55 -0
- package/dist/rules/deep-nesting.js.map +1 -0
- package/dist/rules/index.d.ts +15 -0
- package/dist/rules/index.d.ts.map +1 -0
- package/dist/rules/index.js +29 -0
- package/dist/rules/index.js.map +1 -0
- package/dist/rules/invalid-syntax.d.ts +22 -0
- package/dist/rules/invalid-syntax.d.ts.map +1 -0
- package/dist/rules/invalid-syntax.js +52 -0
- package/dist/rules/invalid-syntax.js.map +1 -0
- package/dist/rules/long-causal-chains.d.ts +25 -0
- package/dist/rules/long-causal-chains.d.ts.map +1 -0
- package/dist/rules/long-causal-chains.js +75 -0
- package/dist/rules/long-causal-chains.js.map +1 -0
- package/dist/rules/missing-recommended-fields.d.ts +21 -0
- package/dist/rules/missing-recommended-fields.d.ts.map +1 -0
- package/dist/rules/missing-recommended-fields.js +45 -0
- package/dist/rules/missing-recommended-fields.js.map +1 -0
- package/dist/rules/missing-required-fields.d.ts +22 -0
- package/dist/rules/missing-required-fields.d.ts.map +1 -0
- package/dist/rules/missing-required-fields.js +46 -0
- package/dist/rules/missing-required-fields.js.map +1 -0
- package/dist/rules/orphaned-nodes.d.ts +22 -0
- package/dist/rules/orphaned-nodes.d.ts.map +1 -0
- package/dist/rules/orphaned-nodes.js +76 -0
- package/dist/rules/orphaned-nodes.js.map +1 -0
- package/dist/rules/unlabeled-tension.d.ts +20 -0
- package/dist/rules/unlabeled-tension.d.ts.map +1 -0
- package/dist/rules/unlabeled-tension.js +37 -0
- package/dist/rules/unlabeled-tension.js.map +1 -0
- package/dist/serializer.d.ts +40 -0
- package/dist/serializer.d.ts.map +1 -0
- package/dist/serializer.js +368 -0
- package/dist/serializer.js.map +1 -0
- package/dist/tokenizer.d.ts +26 -0
- package/dist/tokenizer.d.ts.map +1 -0
- package/dist/tokenizer.js +213 -0
- package/dist/tokenizer.js.map +1 -0
- package/dist/types.d.ts +96 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +50 -0
- package/dist/types.js.map +1 -0
- package/dist/validate.d.ts +18 -0
- package/dist/validate.d.ts.map +1 -0
- package/dist/validate.js +68 -0
- package/dist/validate.js.map +1 -0
- package/package.json +69 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query-engine.js","sourceRoot":"","sources":["../src/query-engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* E006: Alternatives Without Decision Rule
|
|
3
|
+
*
|
|
4
|
+
* Specification: spec/linter-rules.md lines 621-743
|
|
5
|
+
*
|
|
6
|
+
* When alternatives (||) are used under a question (?), at least ONE must
|
|
7
|
+
* eventually be marked with [decided] OR the question must be marked [parking].
|
|
8
|
+
*
|
|
9
|
+
* Alternatives represent decision in progress.
|
|
10
|
+
* The thought must complete:
|
|
11
|
+
* - Either make decision ([decided])
|
|
12
|
+
* - Or explicitly defer ([parking])
|
|
13
|
+
*
|
|
14
|
+
* Leaving alternatives dangling indicates incomplete thinking.
|
|
15
|
+
*/
|
|
16
|
+
import { IR } from '../types';
|
|
17
|
+
import { BaseLintRule, LintResult } from '../linter';
|
|
18
|
+
export declare class AlternativesWithoutDecisionRule extends BaseLintRule {
|
|
19
|
+
name: string;
|
|
20
|
+
code: string;
|
|
21
|
+
severity: "ERROR";
|
|
22
|
+
check(ir: IR): LintResult[];
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=alternatives-without-decision.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alternatives-without-decision.d.ts","sourceRoot":"","sources":["../../src/rules/alternatives-without-decision.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAErD,qBAAa,+BAAgC,SAAQ,YAAY;IAC/D,IAAI,SAAmC;IACvC,IAAI,SAAU;IACd,QAAQ,EAAG,OAAO,CAAU;IAE5B,KAAK,CAAC,EAAE,EAAE,EAAE,GAAG,UAAU,EAAE;CAuC5B"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* E006: Alternatives Without Decision Rule
|
|
4
|
+
*
|
|
5
|
+
* Specification: spec/linter-rules.md lines 621-743
|
|
6
|
+
*
|
|
7
|
+
* When alternatives (||) are used under a question (?), at least ONE must
|
|
8
|
+
* eventually be marked with [decided] OR the question must be marked [parking].
|
|
9
|
+
*
|
|
10
|
+
* Alternatives represent decision in progress.
|
|
11
|
+
* The thought must complete:
|
|
12
|
+
* - Either make decision ([decided])
|
|
13
|
+
* - Or explicitly defer ([parking])
|
|
14
|
+
*
|
|
15
|
+
* Leaving alternatives dangling indicates incomplete thinking.
|
|
16
|
+
*/
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.AlternativesWithoutDecisionRule = void 0;
|
|
19
|
+
const linter_1 = require("../linter");
|
|
20
|
+
class AlternativesWithoutDecisionRule extends linter_1.BaseLintRule {
|
|
21
|
+
constructor() {
|
|
22
|
+
super(...arguments);
|
|
23
|
+
this.name = 'alternatives-without-decision';
|
|
24
|
+
this.code = 'E006';
|
|
25
|
+
this.severity = 'ERROR';
|
|
26
|
+
}
|
|
27
|
+
check(ir) {
|
|
28
|
+
const results = [];
|
|
29
|
+
// Find all alternative nodes
|
|
30
|
+
const alternatives = ir.nodes.filter(n => n.type === 'alternative');
|
|
31
|
+
if (alternatives.length === 0)
|
|
32
|
+
return results; // No alternatives
|
|
33
|
+
// Check if any [decided] state exists
|
|
34
|
+
// Note: We don't require the decided content to match an alternative exactly,
|
|
35
|
+
// as hybrid decisions that synthesize multiple alternatives are valid (see spec Pattern 4)
|
|
36
|
+
const hasDecision = ir.states.some(s => s.type === 'decided');
|
|
37
|
+
// Also check if question has [parking] state (spec allows this)
|
|
38
|
+
const hasParking = ir.states.some(s => {
|
|
39
|
+
if (s.type !== 'parking')
|
|
40
|
+
return false;
|
|
41
|
+
// Check if parking is on a question node
|
|
42
|
+
const node = ir.nodes.find(n => n.id === s.node_id);
|
|
43
|
+
return node && node.type === 'question';
|
|
44
|
+
});
|
|
45
|
+
if (!hasDecision && !hasParking) {
|
|
46
|
+
// Find the question (if any) that these alternatives relate to
|
|
47
|
+
const questions = ir.nodes.filter(n => n.type === 'question');
|
|
48
|
+
const questionContent = questions.length > 0 ? questions[0].content : 'alternatives';
|
|
49
|
+
results.push(this.createResult(`Alternatives without decision: "${questionContent}"`, {
|
|
50
|
+
file: alternatives[0].provenance.source_file,
|
|
51
|
+
line: alternatives[0].provenance.line_number
|
|
52
|
+
}, `Mark chosen alternative with [decided(rationale: "...", on: "...")] or mark question with [parking(why: "...", until: "...")]`));
|
|
53
|
+
}
|
|
54
|
+
return results;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
exports.AlternativesWithoutDecisionRule = AlternativesWithoutDecisionRule;
|
|
58
|
+
//# sourceMappingURL=alternatives-without-decision.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alternatives-without-decision.js","sourceRoot":"","sources":["../../src/rules/alternatives-without-decision.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAGH,sCAAqD;AAErD,MAAa,+BAAgC,SAAQ,qBAAY;IAAjE;;QACE,SAAI,GAAG,+BAA+B,CAAC;QACvC,SAAI,GAAG,MAAM,CAAC;QACd,aAAQ,GAAG,OAAgB,CAAC;IAyC9B,CAAC;IAvCC,KAAK,CAAC,EAAM;QACV,MAAM,OAAO,GAAiB,EAAE,CAAC;QAEjC,6BAA6B;QAC7B,MAAM,YAAY,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC;QAEpE,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,OAAO,CAAC,CAAE,kBAAkB;QAElE,sCAAsC;QACtC,8EAA8E;QAC9E,2FAA2F;QAC3F,MAAM,WAAW,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;QAE9D,gEAAgE;QAChE,MAAM,UAAU,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;YACpC,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS;gBAAE,OAAO,KAAK,CAAC;YAEvC,yCAAyC;YACzC,MAAM,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC;YACpD,OAAO,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC;QAC1C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW,IAAI,CAAC,UAAU,EAAE,CAAC;YAChC,+DAA+D;YAC/D,MAAM,SAAS,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;YAC9D,MAAM,eAAe,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC;YAErF,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAC5B,mCAAmC,eAAe,GAAG,EACrD;gBACE,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW;gBAC5C,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW;aAC7C,EACD,+HAA+H,CAChI,CAAC,CAAC;QACL,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AA5CD,0EA4CC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* E005: Causal Cycles Rule
|
|
3
|
+
*
|
|
4
|
+
* Specification: spec/linter-rules.md lines 486-618
|
|
5
|
+
*
|
|
6
|
+
* Causal relationships (->) must form a Directed Acyclic Graph (DAG).
|
|
7
|
+
*
|
|
8
|
+
* Cycles are invalid unless ALL edges in the cycle have feedback: true flag
|
|
9
|
+
* (set automatically by <-> bidirectional marker).
|
|
10
|
+
*
|
|
11
|
+
* INVALID: A -> B -> C -> A (cycle without feedback)
|
|
12
|
+
* VALID: A <-> B (bidirectional with feedback: true)
|
|
13
|
+
* VALID: A => B => C => A (temporal sequence, not causal)
|
|
14
|
+
*/
|
|
15
|
+
import { IR } from '../types';
|
|
16
|
+
import { BaseLintRule, LintResult } from '../linter';
|
|
17
|
+
export declare class CausalCyclesRule extends BaseLintRule {
|
|
18
|
+
name: string;
|
|
19
|
+
code: string;
|
|
20
|
+
severity: "ERROR";
|
|
21
|
+
check(ir: IR): LintResult[];
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=causal-cycles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"causal-cycles.d.ts","sourceRoot":"","sources":["../../src/rules/causal-cycles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAErD,qBAAa,gBAAiB,SAAQ,YAAY;IAChD,IAAI,SAAmB;IACvB,IAAI,SAAU;IACd,QAAQ,EAAG,OAAO,CAAU;IAE5B,KAAK,CAAC,EAAE,EAAE,EAAE,GAAG,UAAU,EAAE;CAsE5B"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* E005: Causal Cycles Rule
|
|
4
|
+
*
|
|
5
|
+
* Specification: spec/linter-rules.md lines 486-618
|
|
6
|
+
*
|
|
7
|
+
* Causal relationships (->) must form a Directed Acyclic Graph (DAG).
|
|
8
|
+
*
|
|
9
|
+
* Cycles are invalid unless ALL edges in the cycle have feedback: true flag
|
|
10
|
+
* (set automatically by <-> bidirectional marker).
|
|
11
|
+
*
|
|
12
|
+
* INVALID: A -> B -> C -> A (cycle without feedback)
|
|
13
|
+
* VALID: A <-> B (bidirectional with feedback: true)
|
|
14
|
+
* VALID: A => B => C => A (temporal sequence, not causal)
|
|
15
|
+
*/
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.CausalCyclesRule = void 0;
|
|
18
|
+
const linter_1 = require("../linter");
|
|
19
|
+
class CausalCyclesRule extends linter_1.BaseLintRule {
|
|
20
|
+
constructor() {
|
|
21
|
+
super(...arguments);
|
|
22
|
+
this.name = 'causal-cycles';
|
|
23
|
+
this.code = 'E005';
|
|
24
|
+
this.severity = 'ERROR';
|
|
25
|
+
}
|
|
26
|
+
check(ir) {
|
|
27
|
+
const results = [];
|
|
28
|
+
// Build adjacency list (causal edges only, exclude feedback)
|
|
29
|
+
const adj = new Map();
|
|
30
|
+
for (const rel of ir.relationships) {
|
|
31
|
+
if (rel.type === 'causes' && !rel.feedback) {
|
|
32
|
+
if (!adj.has(rel.source)) {
|
|
33
|
+
adj.set(rel.source, []);
|
|
34
|
+
}
|
|
35
|
+
adj.get(rel.source).push(rel.target);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
// DFS cycle detection with recursion stack
|
|
39
|
+
const visited = new Set();
|
|
40
|
+
const recStack = new Set();
|
|
41
|
+
const findCycle = (node, path) => {
|
|
42
|
+
visited.add(node);
|
|
43
|
+
recStack.add(node);
|
|
44
|
+
path.push(node);
|
|
45
|
+
const neighbors = adj.get(node) || [];
|
|
46
|
+
for (const neighbor of neighbors) {
|
|
47
|
+
if (!visited.has(neighbor)) {
|
|
48
|
+
const cycle = findCycle(neighbor, [...path]);
|
|
49
|
+
if (cycle)
|
|
50
|
+
return cycle;
|
|
51
|
+
}
|
|
52
|
+
else if (recStack.has(neighbor)) {
|
|
53
|
+
// Cycle found!
|
|
54
|
+
return [...path, neighbor];
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
recStack.delete(node);
|
|
58
|
+
return null;
|
|
59
|
+
};
|
|
60
|
+
// Check for cycles from each node
|
|
61
|
+
for (const node of adj.keys()) {
|
|
62
|
+
if (!visited.has(node)) {
|
|
63
|
+
const cycle = findCycle(node, []);
|
|
64
|
+
if (cycle) {
|
|
65
|
+
// Build readable cycle description
|
|
66
|
+
const cycleContent = cycle.map(id => {
|
|
67
|
+
const n = ir.nodes.find(node => node.id === id);
|
|
68
|
+
return n?.content || id.substring(0, 8);
|
|
69
|
+
});
|
|
70
|
+
const cycleStr = cycleContent.join(' -> ');
|
|
71
|
+
results.push(this.createResult(`Causal cycle detected: ${cycleStr}`, {
|
|
72
|
+
file: ir.nodes[0]?.provenance.source_file || 'unknown',
|
|
73
|
+
line: 0
|
|
74
|
+
}, `Fix: Use <-> for feedback loops, or use => for temporal sequence, or break the cycle`));
|
|
75
|
+
break; // Report first cycle found
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
return results;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
exports.CausalCyclesRule = CausalCyclesRule;
|
|
83
|
+
//# sourceMappingURL=causal-cycles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"causal-cycles.js","sourceRoot":"","sources":["../../src/rules/causal-cycles.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* W002: Deep Nesting Rule
|
|
3
|
+
*
|
|
4
|
+
* Specification: spec/linter-rules.md lines 806-895
|
|
5
|
+
*
|
|
6
|
+
* Thought blocks { } nested deeper than 5 levels may indicate over-complexity.
|
|
7
|
+
*
|
|
8
|
+
* Deep nesting becomes hard to read and understand.
|
|
9
|
+
* Often indicates need to refactor into multiple separate structures.
|
|
10
|
+
*
|
|
11
|
+
* Readable: {{{{{ }}}}} # 5 levels - OK
|
|
12
|
+
* Too deep: {{{{{{ }}}}}} # 6 levels - WARNING
|
|
13
|
+
*/
|
|
14
|
+
import { IR } from '../types';
|
|
15
|
+
import { BaseLintRule, LintResult } from '../linter';
|
|
16
|
+
export declare class DeepNestingRule extends BaseLintRule {
|
|
17
|
+
name: string;
|
|
18
|
+
code: string;
|
|
19
|
+
severity: "WARNING";
|
|
20
|
+
private maxDepth;
|
|
21
|
+
check(ir: IR): LintResult[];
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=deep-nesting.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deep-nesting.d.ts","sourceRoot":"","sources":["../../src/rules/deep-nesting.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,EAAE,EAAQ,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAErD,qBAAa,eAAgB,SAAQ,YAAY;IAC/C,IAAI,SAAkB;IACtB,IAAI,SAAU;IACd,QAAQ,EAAG,SAAS,CAAU;IAE9B,OAAO,CAAC,QAAQ,CAAK;IAErB,KAAK,CAAC,EAAE,EAAE,EAAE,GAAG,UAAU,EAAE;CAmC5B"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* W002: Deep Nesting Rule
|
|
4
|
+
*
|
|
5
|
+
* Specification: spec/linter-rules.md lines 806-895
|
|
6
|
+
*
|
|
7
|
+
* Thought blocks { } nested deeper than 5 levels may indicate over-complexity.
|
|
8
|
+
*
|
|
9
|
+
* Deep nesting becomes hard to read and understand.
|
|
10
|
+
* Often indicates need to refactor into multiple separate structures.
|
|
11
|
+
*
|
|
12
|
+
* Readable: {{{{{ }}}}} # 5 levels - OK
|
|
13
|
+
* Too deep: {{{{{{ }}}}}} # 6 levels - WARNING
|
|
14
|
+
*/
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.DeepNestingRule = void 0;
|
|
17
|
+
const linter_1 = require("../linter");
|
|
18
|
+
class DeepNestingRule extends linter_1.BaseLintRule {
|
|
19
|
+
constructor() {
|
|
20
|
+
super(...arguments);
|
|
21
|
+
this.name = 'deep-nesting';
|
|
22
|
+
this.code = 'W002';
|
|
23
|
+
this.severity = 'WARNING';
|
|
24
|
+
this.maxDepth = 5;
|
|
25
|
+
}
|
|
26
|
+
check(ir) {
|
|
27
|
+
const results = [];
|
|
28
|
+
const checkDepth = (node, depth) => {
|
|
29
|
+
if (depth > this.maxDepth) {
|
|
30
|
+
results.push(this.createResult(`Thought block nested ${depth} levels deep (max recommended: ${this.maxDepth})`, {
|
|
31
|
+
file: node.provenance.source_file,
|
|
32
|
+
line: node.provenance.line_number
|
|
33
|
+
}, `Consider: (1) Breaking into multiple blocks OR (2) Using flat relationships instead of nesting`));
|
|
34
|
+
}
|
|
35
|
+
// Recursively check children
|
|
36
|
+
const children = node.ext?.children;
|
|
37
|
+
if (Array.isArray(children)) {
|
|
38
|
+
for (const child of children) {
|
|
39
|
+
if (child.type === 'block') {
|
|
40
|
+
checkDepth(child, depth + 1);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
// Check all block nodes
|
|
46
|
+
for (const node of ir.nodes) {
|
|
47
|
+
if (node.type === 'block') {
|
|
48
|
+
checkDepth(node, 1);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return results;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
exports.DeepNestingRule = DeepNestingRule;
|
|
55
|
+
//# sourceMappingURL=deep-nesting.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deep-nesting.js","sourceRoot":"","sources":["../../src/rules/deep-nesting.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;;AAGH,sCAAqD;AAErD,MAAa,eAAgB,SAAQ,qBAAY;IAAjD;;QACE,SAAI,GAAG,cAAc,CAAC;QACtB,SAAI,GAAG,MAAM,CAAC;QACd,aAAQ,GAAG,SAAkB,CAAC;QAEtB,aAAQ,GAAG,CAAC,CAAC;IAqCvB,CAAC;IAnCC,KAAK,CAAC,EAAM;QACV,MAAM,OAAO,GAAiB,EAAE,CAAC;QAEjC,MAAM,UAAU,GAAG,CAAC,IAAU,EAAE,KAAa,EAAQ,EAAE;YACrD,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC1B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAC5B,wBAAwB,KAAK,kCAAkC,IAAI,CAAC,QAAQ,GAAG,EAC/E;oBACE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,WAAW;oBACjC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,WAAW;iBAClC,EACD,gGAAgG,CACjG,CAAC,CAAC;YACL,CAAC;YAED,6BAA6B;YAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC;YACpC,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5B,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;oBAC7B,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;wBAC3B,UAAU,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;oBAC/B,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC,CAAC;QAEF,wBAAwB;QACxB,KAAK,MAAM,IAAI,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;YAC5B,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAC1B,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AA1CD,0CA0CC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* FlowScript Linter Rules - Export Index
|
|
3
|
+
*
|
|
4
|
+
* Exports all 9 validation rules (6 ERROR + 3 WARNING)
|
|
5
|
+
*/
|
|
6
|
+
export { UnlabeledTensionRule } from './unlabeled-tension';
|
|
7
|
+
export { MissingRequiredFieldsRule } from './missing-required-fields';
|
|
8
|
+
export { InvalidSyntaxRule } from './invalid-syntax';
|
|
9
|
+
export { OrphanedNodesRule } from './orphaned-nodes';
|
|
10
|
+
export { CausalCyclesRule } from './causal-cycles';
|
|
11
|
+
export { AlternativesWithoutDecisionRule } from './alternatives-without-decision';
|
|
12
|
+
export { MissingRecommendedFieldsRule } from './missing-recommended-fields';
|
|
13
|
+
export { DeepNestingRule } from './deep-nesting';
|
|
14
|
+
export { LongCausalChainsRule } from './long-causal-chains';
|
|
15
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/rules/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,+BAA+B,EAAE,MAAM,iCAAiC,CAAC;AAGlF,OAAO,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* FlowScript Linter Rules - Export Index
|
|
4
|
+
*
|
|
5
|
+
* Exports all 9 validation rules (6 ERROR + 3 WARNING)
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.LongCausalChainsRule = exports.DeepNestingRule = exports.MissingRecommendedFieldsRule = exports.AlternativesWithoutDecisionRule = exports.CausalCyclesRule = exports.OrphanedNodesRule = exports.InvalidSyntaxRule = exports.MissingRequiredFieldsRule = exports.UnlabeledTensionRule = void 0;
|
|
9
|
+
// ERROR rules
|
|
10
|
+
var unlabeled_tension_1 = require("./unlabeled-tension");
|
|
11
|
+
Object.defineProperty(exports, "UnlabeledTensionRule", { enumerable: true, get: function () { return unlabeled_tension_1.UnlabeledTensionRule; } });
|
|
12
|
+
var missing_required_fields_1 = require("./missing-required-fields");
|
|
13
|
+
Object.defineProperty(exports, "MissingRequiredFieldsRule", { enumerable: true, get: function () { return missing_required_fields_1.MissingRequiredFieldsRule; } });
|
|
14
|
+
var invalid_syntax_1 = require("./invalid-syntax");
|
|
15
|
+
Object.defineProperty(exports, "InvalidSyntaxRule", { enumerable: true, get: function () { return invalid_syntax_1.InvalidSyntaxRule; } });
|
|
16
|
+
var orphaned_nodes_1 = require("./orphaned-nodes");
|
|
17
|
+
Object.defineProperty(exports, "OrphanedNodesRule", { enumerable: true, get: function () { return orphaned_nodes_1.OrphanedNodesRule; } });
|
|
18
|
+
var causal_cycles_1 = require("./causal-cycles");
|
|
19
|
+
Object.defineProperty(exports, "CausalCyclesRule", { enumerable: true, get: function () { return causal_cycles_1.CausalCyclesRule; } });
|
|
20
|
+
var alternatives_without_decision_1 = require("./alternatives-without-decision");
|
|
21
|
+
Object.defineProperty(exports, "AlternativesWithoutDecisionRule", { enumerable: true, get: function () { return alternatives_without_decision_1.AlternativesWithoutDecisionRule; } });
|
|
22
|
+
// WARNING rules
|
|
23
|
+
var missing_recommended_fields_1 = require("./missing-recommended-fields");
|
|
24
|
+
Object.defineProperty(exports, "MissingRecommendedFieldsRule", { enumerable: true, get: function () { return missing_recommended_fields_1.MissingRecommendedFieldsRule; } });
|
|
25
|
+
var deep_nesting_1 = require("./deep-nesting");
|
|
26
|
+
Object.defineProperty(exports, "DeepNestingRule", { enumerable: true, get: function () { return deep_nesting_1.DeepNestingRule; } });
|
|
27
|
+
var long_causal_chains_1 = require("./long-causal-chains");
|
|
28
|
+
Object.defineProperty(exports, "LongCausalChainsRule", { enumerable: true, get: function () { return long_causal_chains_1.LongCausalChainsRule; } });
|
|
29
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/rules/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,cAAc;AACd,yDAA2D;AAAlD,yHAAA,oBAAoB,OAAA;AAC7B,qEAAsE;AAA7D,oIAAA,yBAAyB,OAAA;AAClC,mDAAqD;AAA5C,mHAAA,iBAAiB,OAAA;AAC1B,mDAAqD;AAA5C,mHAAA,iBAAiB,OAAA;AAC1B,iDAAmD;AAA1C,iHAAA,gBAAgB,OAAA;AACzB,iFAAkF;AAAzE,gJAAA,+BAA+B,OAAA;AAExC,gBAAgB;AAChB,2EAA4E;AAAnE,0IAAA,4BAA4B,OAAA;AACrC,+CAAiD;AAAxC,+GAAA,eAAe,OAAA;AACxB,2DAA4D;AAAnD,0HAAA,oBAAoB,OAAA"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* E003: Invalid Marker Syntax Rule
|
|
3
|
+
*
|
|
4
|
+
* Specification: spec/linter-rules.md lines 246-344
|
|
5
|
+
*
|
|
6
|
+
* Markers must follow valid composition rules:
|
|
7
|
+
* - One state at a time: [decided blocked] invalid
|
|
8
|
+
* - One insight/command marker: thought: action: invalid
|
|
9
|
+
* - State before content: Deploy [blocked] invalid
|
|
10
|
+
*
|
|
11
|
+
* Most syntax validation is handled by parser.
|
|
12
|
+
* This rule catches semantic composition issues.
|
|
13
|
+
*/
|
|
14
|
+
import { IR } from '../types';
|
|
15
|
+
import { BaseLintRule, LintResult } from '../linter';
|
|
16
|
+
export declare class InvalidSyntaxRule extends BaseLintRule {
|
|
17
|
+
name: string;
|
|
18
|
+
code: string;
|
|
19
|
+
severity: "ERROR";
|
|
20
|
+
check(ir: IR): LintResult[];
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=invalid-syntax.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invalid-syntax.d.ts","sourceRoot":"","sources":["../../src/rules/invalid-syntax.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAErD,qBAAa,iBAAkB,SAAQ,YAAY;IACjD,IAAI,SAAoB;IACxB,IAAI,SAAU;IACd,QAAQ,EAAG,OAAO,CAAU;IAE5B,KAAK,CAAC,EAAE,EAAE,EAAE,GAAG,UAAU,EAAE;CAiC5B"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* E003: Invalid Marker Syntax Rule
|
|
4
|
+
*
|
|
5
|
+
* Specification: spec/linter-rules.md lines 246-344
|
|
6
|
+
*
|
|
7
|
+
* Markers must follow valid composition rules:
|
|
8
|
+
* - One state at a time: [decided blocked] invalid
|
|
9
|
+
* - One insight/command marker: thought: action: invalid
|
|
10
|
+
* - State before content: Deploy [blocked] invalid
|
|
11
|
+
*
|
|
12
|
+
* Most syntax validation is handled by parser.
|
|
13
|
+
* This rule catches semantic composition issues.
|
|
14
|
+
*/
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.InvalidSyntaxRule = void 0;
|
|
17
|
+
const linter_1 = require("../linter");
|
|
18
|
+
class InvalidSyntaxRule extends linter_1.BaseLintRule {
|
|
19
|
+
constructor() {
|
|
20
|
+
super(...arguments);
|
|
21
|
+
this.name = 'invalid-syntax';
|
|
22
|
+
this.code = 'E003';
|
|
23
|
+
this.severity = 'ERROR';
|
|
24
|
+
}
|
|
25
|
+
check(ir) {
|
|
26
|
+
const results = [];
|
|
27
|
+
// Check for multiple states on same node
|
|
28
|
+
const nodeStates = new Map();
|
|
29
|
+
for (const state of ir.states) {
|
|
30
|
+
if (!state.node_id)
|
|
31
|
+
continue;
|
|
32
|
+
if (!nodeStates.has(state.node_id)) {
|
|
33
|
+
nodeStates.set(state.node_id, []);
|
|
34
|
+
}
|
|
35
|
+
nodeStates.get(state.node_id).push(state.type);
|
|
36
|
+
}
|
|
37
|
+
for (const [nodeId, states] of nodeStates.entries()) {
|
|
38
|
+
if (states.length > 1) {
|
|
39
|
+
const node = ir.nodes.find(n => n.id === nodeId);
|
|
40
|
+
if (node) {
|
|
41
|
+
results.push(this.createResult(`Node has multiple states: ${states.join(', ')} - only one state allowed per node`, {
|
|
42
|
+
file: node.provenance.source_file,
|
|
43
|
+
line: node.provenance.line_number
|
|
44
|
+
}, `Choose one state marker`));
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return results;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
exports.InvalidSyntaxRule = InvalidSyntaxRule;
|
|
52
|
+
//# sourceMappingURL=invalid-syntax.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invalid-syntax.js","sourceRoot":"","sources":["../../src/rules/invalid-syntax.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;;AAGH,sCAAqD;AAErD,MAAa,iBAAkB,SAAQ,qBAAY;IAAnD;;QACE,SAAI,GAAG,gBAAgB,CAAC;QACxB,SAAI,GAAG,MAAM,CAAC;QACd,aAAQ,GAAG,OAAgB,CAAC;IAmC9B,CAAC;IAjCC,KAAK,CAAC,EAAM;QACV,MAAM,OAAO,GAAiB,EAAE,CAAC;QAEjC,yCAAyC;QACzC,MAAM,UAAU,GAAG,IAAI,GAAG,EAAoB,CAAC;QAE/C,KAAK,MAAM,KAAK,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;YAC9B,IAAI,CAAC,KAAK,CAAC,OAAO;gBAAE,SAAS;YAE7B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;gBACnC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACpC,CAAC;YACD,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClD,CAAC;QAED,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC;YACpD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtB,MAAM,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;gBACjD,IAAI,IAAI,EAAE,CAAC;oBACT,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAC5B,6BAA6B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,oCAAoC,EAClF;wBACE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,WAAW;wBACjC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,WAAW;qBAClC,EACD,yBAAyB,CAC1B,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AAtCD,8CAsCC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* W003: Long Causal Chains Rule
|
|
3
|
+
*
|
|
4
|
+
* Specification: spec/linter-rules.md lines 898-981
|
|
5
|
+
*
|
|
6
|
+
* Causal chains (->) longer than 10 steps without branching may indicate:
|
|
7
|
+
* - Over-simplification (missing nuance)
|
|
8
|
+
* - OR over-analysis (diminishing returns)
|
|
9
|
+
*
|
|
10
|
+
* Very long causal chains often miss branching factors or intermediate nuance.
|
|
11
|
+
* Encouraging branching improves analysis quality.
|
|
12
|
+
*
|
|
13
|
+
* OK: A -> B -> C -> D -> E -> F -> G -> H -> I -> J # 10 steps
|
|
14
|
+
* WARN: A -> B -> ... -> K # 11 steps
|
|
15
|
+
*/
|
|
16
|
+
import { IR } from '../types';
|
|
17
|
+
import { BaseLintRule, LintResult } from '../linter';
|
|
18
|
+
export declare class LongCausalChainsRule extends BaseLintRule {
|
|
19
|
+
name: string;
|
|
20
|
+
code: string;
|
|
21
|
+
severity: "WARNING";
|
|
22
|
+
private maxChainLength;
|
|
23
|
+
check(ir: IR): LintResult[];
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=long-causal-chains.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"long-causal-chains.d.ts","sourceRoot":"","sources":["../../src/rules/long-causal-chains.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAErD,qBAAa,oBAAqB,SAAQ,YAAY;IACpD,IAAI,SAAwB;IAC5B,IAAI,SAAU;IACd,QAAQ,EAAG,SAAS,CAAU;IAE9B,OAAO,CAAC,cAAc,CAAM;IAE5B,KAAK,CAAC,EAAE,EAAE,EAAE,GAAG,UAAU,EAAE;CA6D5B"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* W003: Long Causal Chains Rule
|
|
4
|
+
*
|
|
5
|
+
* Specification: spec/linter-rules.md lines 898-981
|
|
6
|
+
*
|
|
7
|
+
* Causal chains (->) longer than 10 steps without branching may indicate:
|
|
8
|
+
* - Over-simplification (missing nuance)
|
|
9
|
+
* - OR over-analysis (diminishing returns)
|
|
10
|
+
*
|
|
11
|
+
* Very long causal chains often miss branching factors or intermediate nuance.
|
|
12
|
+
* Encouraging branching improves analysis quality.
|
|
13
|
+
*
|
|
14
|
+
* OK: A -> B -> C -> D -> E -> F -> G -> H -> I -> J # 10 steps
|
|
15
|
+
* WARN: A -> B -> ... -> K # 11 steps
|
|
16
|
+
*/
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.LongCausalChainsRule = void 0;
|
|
19
|
+
const linter_1 = require("../linter");
|
|
20
|
+
class LongCausalChainsRule extends linter_1.BaseLintRule {
|
|
21
|
+
constructor() {
|
|
22
|
+
super(...arguments);
|
|
23
|
+
this.name = 'long-causal-chains';
|
|
24
|
+
this.code = 'W003';
|
|
25
|
+
this.severity = 'WARNING';
|
|
26
|
+
this.maxChainLength = 10;
|
|
27
|
+
}
|
|
28
|
+
check(ir) {
|
|
29
|
+
const results = [];
|
|
30
|
+
// Build adjacency list for causal relationships
|
|
31
|
+
const adj = new Map();
|
|
32
|
+
for (const rel of ir.relationships) {
|
|
33
|
+
if (rel.type === 'causes') {
|
|
34
|
+
if (!adj.has(rel.source)) {
|
|
35
|
+
adj.set(rel.source, []);
|
|
36
|
+
}
|
|
37
|
+
adj.get(rel.source).push(rel.target);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
// Find longest path from each node (DFS)
|
|
41
|
+
const visited = new Set();
|
|
42
|
+
const findLongestPath = (node, path) => {
|
|
43
|
+
visited.add(node);
|
|
44
|
+
path.push(node);
|
|
45
|
+
let maxLength = path.length;
|
|
46
|
+
const neighbors = adj.get(node) || [];
|
|
47
|
+
for (const neighbor of neighbors) {
|
|
48
|
+
if (!visited.has(neighbor)) {
|
|
49
|
+
const length = findLongestPath(neighbor, [...path]);
|
|
50
|
+
maxLength = Math.max(maxLength, length);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
visited.delete(node);
|
|
54
|
+
return maxLength;
|
|
55
|
+
};
|
|
56
|
+
// Check each potential start node
|
|
57
|
+
for (const nodeId of adj.keys()) {
|
|
58
|
+
visited.clear();
|
|
59
|
+
const chainLength = findLongestPath(nodeId, []);
|
|
60
|
+
if (chainLength > this.maxChainLength) {
|
|
61
|
+
const node = ir.nodes.find(n => n.id === nodeId);
|
|
62
|
+
if (node) {
|
|
63
|
+
results.push(this.createResult(`Long causal chain detected (${chainLength} steps, max recommended: ${this.maxChainLength})`, {
|
|
64
|
+
file: node.provenance.source_file,
|
|
65
|
+
line: node.provenance.line_number
|
|
66
|
+
}, `Consider: (1) Adding branching to show parallel effects OR (2) Breaking into multiple related chains`));
|
|
67
|
+
}
|
|
68
|
+
break; // Report first long chain found
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return results;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
exports.LongCausalChainsRule = LongCausalChainsRule;
|
|
75
|
+
//# sourceMappingURL=long-causal-chains.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"long-causal-chains.js","sourceRoot":"","sources":["../../src/rules/long-causal-chains.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAGH,sCAAqD;AAErD,MAAa,oBAAqB,SAAQ,qBAAY;IAAtD;;QACE,SAAI,GAAG,oBAAoB,CAAC;QAC5B,SAAI,GAAG,MAAM,CAAC;QACd,aAAQ,GAAG,SAAkB,CAAC;QAEtB,mBAAc,GAAG,EAAE,CAAC;IA+D9B,CAAC;IA7DC,KAAK,CAAC,EAAM;QACV,MAAM,OAAO,GAAiB,EAAE,CAAC;QAEjC,gDAAgD;QAChD,MAAM,GAAG,GAAG,IAAI,GAAG,EAAoB,CAAC;QAExC,KAAK,MAAM,GAAG,IAAI,EAAE,CAAC,aAAa,EAAE,CAAC;YACnC,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC1B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;oBACzB,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;gBAC1B,CAAC;gBACD,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;QAED,yCAAyC;QACzC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;QAElC,MAAM,eAAe,GAAG,CAAC,IAAY,EAAE,IAAc,EAAU,EAAE;YAC/D,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAClB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEhB,IAAI,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC;YAE5B,MAAM,SAAS,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACtC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;gBACjC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC3B,MAAM,MAAM,GAAG,eAAe,CAAC,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;oBACpD,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;gBAC1C,CAAC;YACH,CAAC;YAED,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACrB,OAAO,SAAS,CAAC;QACnB,CAAC,CAAC;QAEF,kCAAkC;QAClC,KAAK,MAAM,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;YAChC,OAAO,CAAC,KAAK,EAAE,CAAC;YAChB,MAAM,WAAW,GAAG,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAEhD,IAAI,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;gBACtC,MAAM,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;gBAEjD,IAAI,IAAI,EAAE,CAAC;oBACT,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAC5B,+BAA+B,WAAW,4BAA4B,IAAI,CAAC,cAAc,GAAG,EAC5F;wBACE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,WAAW;wBACjC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,WAAW;qBAClC,EACD,sGAAsG,CACvG,CAAC,CAAC;gBACL,CAAC;gBAED,MAAM,CAAE,gCAAgC;YAC1C,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AApED,oDAoEC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* W001: Missing Recommended State Fields Rule
|
|
3
|
+
*
|
|
4
|
+
* Specification: spec/linter-rules.md lines 747-803
|
|
5
|
+
*
|
|
6
|
+
* State marker [parking] SHOULD include recommended fields:
|
|
7
|
+
* - why - Why is this parked?
|
|
8
|
+
* - until - When to revisit?
|
|
9
|
+
*
|
|
10
|
+
* Missing these fields doesn't break semantics, but reduces clarity.
|
|
11
|
+
* Parking without explanation = easy to forget why.
|
|
12
|
+
*/
|
|
13
|
+
import { IR } from '../types';
|
|
14
|
+
import { BaseLintRule, LintResult } from '../linter';
|
|
15
|
+
export declare class MissingRecommendedFieldsRule extends BaseLintRule {
|
|
16
|
+
name: string;
|
|
17
|
+
code: string;
|
|
18
|
+
severity: "WARNING";
|
|
19
|
+
check(ir: IR): LintResult[];
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=missing-recommended-fields.d.ts.map
|