@vextlabs/theron-cli 0.3.0 → 0.4.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/dist/api.d.ts +8 -0
- package/dist/api.js +3 -0
- package/dist/api.js.map +1 -1
- package/dist/auth.js +51 -1
- package/dist/auth.js.map +1 -1
- package/dist/banner.js +3 -2
- package/dist/banner.js.map +1 -1
- package/dist/checkpoints.d.ts +32 -0
- package/dist/checkpoints.js +61 -0
- package/dist/checkpoints.js.map +1 -0
- package/dist/index.js +59 -4
- package/dist/index.js.map +1 -1
- package/dist/input.d.ts +61 -0
- package/dist/input.js +574 -0
- package/dist/input.js.map +1 -0
- package/dist/profiles/index.js +5 -0
- package/dist/profiles/index.js.map +1 -1
- package/dist/profiles/methodologies/operate_domains.d.ts +8 -0
- package/dist/profiles/methodologies/operate_domains.js +1239 -0
- package/dist/profiles/methodologies/operate_domains.js.map +1 -0
- package/dist/profiles/seeds.js +57 -36
- package/dist/profiles/seeds.js.map +1 -1
- package/dist/receipt.d.ts +17 -0
- package/dist/receipt.js +46 -0
- package/dist/receipt.js.map +1 -0
- package/dist/render.d.ts +4 -1
- package/dist/render.js +95 -28
- package/dist/render.js.map +1 -1
- package/dist/repl.d.ts +8 -1
- package/dist/repl.js +420 -62
- package/dist/repl.js.map +1 -1
- package/dist/sessions.d.ts +14 -0
- package/dist/sessions.js +100 -0
- package/dist/sessions.js.map +1 -1
- package/dist/ship.d.ts +2 -0
- package/dist/ship.js +62 -0
- package/dist/ship.js.map +1 -0
- package/dist/skills/catalog.d.ts +13 -0
- package/dist/skills/catalog.js +86 -0
- package/dist/skills/catalog.js.map +1 -0
- package/dist/tools/bash.js +81 -14
- package/dist/tools/bash.js.map +1 -1
- package/dist/tools/edit.js +21 -1
- package/dist/tools/edit.js.map +1 -1
- package/dist/tools/glob.js +4 -1
- package/dist/tools/glob.js.map +1 -1
- package/dist/tools/grep.d.ts +5 -0
- package/dist/tools/grep.js +101 -2
- package/dist/tools/grep.js.map +1 -1
- package/dist/tools/index.d.ts +22 -0
- package/dist/tools/index.js +177 -41
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/ls.d.ts +3 -0
- package/dist/tools/ls.js +23 -12
- package/dist/tools/ls.js.map +1 -1
- package/dist/tools/multiedit.d.ts +12 -0
- package/dist/tools/multiedit.js +79 -0
- package/dist/tools/multiedit.js.map +1 -0
- package/dist/tools/stoa.d.ts +1 -1
- package/dist/tools/stoa.js +7 -3
- package/dist/tools/stoa.js.map +1 -1
- package/dist/tools/task.d.ts +9 -0
- package/dist/tools/task.js +166 -0
- package/dist/tools/task.js.map +1 -0
- package/dist/tools/todowrite.d.ts +12 -0
- package/dist/tools/todowrite.js +38 -0
- package/dist/tools/todowrite.js.map +1 -0
- package/dist/tools/webfetch.d.ts +6 -0
- package/dist/tools/webfetch.js +98 -0
- package/dist/tools/webfetch.js.map +1 -0
- package/dist/tools/websearch.d.ts +7 -0
- package/dist/tools/websearch.js +83 -0
- package/dist/tools/websearch.js.map +1 -0
- package/dist/tools/write.js +17 -1
- package/dist/tools/write.js.map +1 -1
- package/dist/verifiers/confidence_marked.d.ts +2 -0
- package/dist/verifiers/confidence_marked.js +49 -0
- package/dist/verifiers/confidence_marked.js.map +1 -0
- package/dist/verifiers/disclaimer_gate.d.ts +2 -0
- package/dist/verifiers/disclaimer_gate.js +57 -0
- package/dist/verifiers/disclaimer_gate.js.map +1 -0
- package/dist/verifiers/index.d.ts +5 -0
- package/dist/verifiers/index.js +20 -7
- package/dist/verifiers/index.js.map +1 -1
- package/dist/verifiers/lint.js +4 -3
- package/dist/verifiers/lint.js.map +1 -1
- package/dist/verifiers/promoted_kernels.d.ts +8 -0
- package/dist/verifiers/promoted_kernels.js +190 -0
- package/dist/verifiers/promoted_kernels.js.map +1 -0
- package/dist/verifiers/source_gate.js +2 -3
- package/dist/verifiers/source_gate.js.map +1 -1
- package/dist/verifiers/test_smoke.js +30 -0
- package/dist/verifiers/test_smoke.js.map +1 -1
- package/dist/verifiers/types.d.ts +3 -0
- package/package.json +4 -2
- package/skills/README.md +123 -0
- package/skills/ab-test.md +89 -0
- package/skills/api-design.md +175 -0
- package/skills/architecture-design.md +185 -0
- package/skills/business-case.md +77 -0
- package/skills/causal-inference.md +77 -0
- package/skills/clinical-guideline.md +98 -0
- package/skills/code-review.md +98 -0
- package/skills/cold-outreach.md +268 -0
- package/skills/competitive-teardown.md +223 -0
- package/skills/component-spec.md +121 -0
- package/skills/content-calendar.md +280 -0
- package/skills/contract-review.md +155 -0
- package/skills/data-analysis.md +187 -0
- package/skills/debug.md +91 -0
- package/skills/design-audit.md +121 -0
- package/skills/differential-diagnosis.md +79 -0
- package/skills/discovery-call.md +206 -0
- package/skills/edit-pass.md +80 -0
- package/skills/engineering-calc.md +101 -0
- package/skills/estimate.md +70 -0
- package/skills/experiment-design.md +105 -0
- package/skills/fact-check.md +82 -0
- package/skills/financial-model.md +104 -0
- package/skills/grant-proposal.md +93 -0
- package/skills/harmony-analysis.md +93 -0
- package/skills/hypothesis-generation.md +99 -0
- package/skills/incident-response.md +134 -0
- package/skills/interview-loop.md +62 -0
- package/skills/job-scorecard.md +92 -0
- package/skills/kb-article.md +174 -0
- package/skills/launch-plan.md +85 -0
- package/skills/lease-review.md +93 -0
- package/skills/lesson-plan.md +198 -0
- package/skills/literature-review.md +69 -0
- package/skills/market-entry.md +137 -0
- package/skills/market-sizing.md +159 -0
- package/skills/meta-analysis.md +140 -0
- package/skills/migrate.md +117 -0
- package/skills/optimize.md +88 -0
- package/skills/options-strategy.md +166 -0
- package/skills/peer-review.md +96 -0
- package/skills/pentest-plan.md +193 -0
- package/skills/pitch-review.md +132 -0
- package/skills/plan.md +88 -0
- package/skills/policy-brief.md +124 -0
- package/skills/positioning.md +192 -0
- package/skills/postmortem.md +168 -0
- package/skills/prd.md +105 -0
- package/skills/prioritize.md +162 -0
- package/skills/proof.md +91 -0
- package/skills/property-underwrite.md +159 -0
- package/skills/recipe-develop.md +109 -0
- package/skills/red-team.md +142 -0
- package/skills/refactor.md +58 -0
- package/skills/reflection-session.md +115 -0
- package/skills/regulatory-compliance.md +136 -0
- package/skills/reproduce.md +87 -0
- package/skills/runbook.md +344 -0
- package/skills/security-audit.md +154 -0
- package/skills/seo-brief.md +201 -0
- package/skills/sql-query.md +161 -0
- package/skills/story-craft.md +163 -0
- package/skills/tdd.md +59 -0
- package/skills/term-sheet.md +298 -0
- package/skills/theory-of-change.md +88 -0
- package/skills/threat-model.md +104 -0
- package/skills/ticket-triage.md +200 -0
- package/skills/tolerance-analysis.md +149 -0
- package/skills/training-program.md +151 -0
- package/skills/translate.md +64 -0
- package/skills/unit-economics.md +238 -0
- package/skills/valuation.md +112 -0
- package/skills/write-tests.md +77 -0
package/dist/verifiers/index.js
CHANGED
|
@@ -23,6 +23,9 @@ import { evidenceGateKernel } from "./evidence_gate.js";
|
|
|
23
23
|
import { citationGateKernel } from "./citation_gate.js";
|
|
24
24
|
import { calcGateKernel } from "./calc_gate.js";
|
|
25
25
|
import { sourceGateKernel } from "./source_gate.js";
|
|
26
|
+
import { disclaimerGateKernel } from "./disclaimer_gate.js";
|
|
27
|
+
import { confidenceMarkedKernel } from "./confidence_marked.js";
|
|
28
|
+
import { PROMOTED_KERNELS } from "./promoted_kernels.js";
|
|
26
29
|
// Map slug → kernel. Profiles reference these via Profile.verifiers[].
|
|
27
30
|
const REGISTRY = new Map();
|
|
28
31
|
function register(v) { REGISTRY.set(v.slug, v); }
|
|
@@ -38,19 +41,22 @@ register(evidenceGateKernel);
|
|
|
38
41
|
register(citationGateKernel);
|
|
39
42
|
register(calcGateKernel);
|
|
40
43
|
register(sourceGateKernel);
|
|
44
|
+
register(disclaimerGateKernel);
|
|
45
|
+
register(confidenceMarkedKernel);
|
|
46
|
+
// Promoted real kernels (claim_grounding, assumption_marked, unit_consistency,
|
|
47
|
+
// sentence_variance, component_states_complete, token_lint) — previously inert
|
|
48
|
+
// style_lint aliases, now each with conservative warn-level domain logic.
|
|
49
|
+
for (const k of PROMOTED_KERNELS)
|
|
50
|
+
register(k);
|
|
41
51
|
// Aliases for verifier slugs referenced in seeds.ts that share a kernel
|
|
42
52
|
// (e.g. assumption_marked / advice_disclaimer / confidence_marked all
|
|
43
53
|
// run via style_lint with a different config — the verifier reads the
|
|
44
54
|
// active profile slug to know what to look for).
|
|
45
55
|
for (const alias of [
|
|
46
|
-
|
|
47
|
-
|
|
56
|
+
// The only remaining style_lint alias. The rest (claim_grounding,
|
|
57
|
+
// assumption_marked, confidence_marked, sentence_variance, unit_consistency,
|
|
58
|
+
// component_states_complete, token_lint) are now real kernels.
|
|
48
59
|
"advice_disclaimer",
|
|
49
|
-
"confidence_marked",
|
|
50
|
-
"sentence_variance",
|
|
51
|
-
"unit_consistency",
|
|
52
|
-
"component_states_complete",
|
|
53
|
-
"token_lint",
|
|
54
60
|
]) {
|
|
55
61
|
// Default these aliases to the style_lint kernel for now — they're
|
|
56
62
|
// surfaced as the kernel name in issue.kernel so the user still sees
|
|
@@ -58,6 +64,13 @@ for (const alias of [
|
|
|
58
64
|
// of "auto-baseline" into "hand-crafted."
|
|
59
65
|
REGISTRY.set(alias, { ...styleLintKernel, slug: alias });
|
|
60
66
|
}
|
|
67
|
+
/** All registered verifier slugs (real kernels + aliases). Used by the
|
|
68
|
+
* integrity test to catch a profile referencing a slug that doesn't resolve
|
|
69
|
+
* to a kernel (runVerifiers silently drops unknown slugs, so without this a
|
|
70
|
+
* typo'd verifier slug would be an invisible no-op). */
|
|
71
|
+
export function listVerifierSlugs() {
|
|
72
|
+
return [...REGISTRY.keys()];
|
|
73
|
+
}
|
|
61
74
|
/** Run the kernels for the active profile in parallel. Each kernel
|
|
62
75
|
* has its own 5s timeout — slow kernels return [] rather than block
|
|
63
76
|
* the loop. Total wall time bounded by max(per-kernel time, 5s). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/verifiers/index.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,EAAE;AACF,sEAAsE;AACtE,mEAAmE;AACnE,8DAA8D;AAC9D,qEAAqE;AACrE,EAAE;AACF,gEAAgE;AAChE,iEAAiE;AACjE,EAAE;AACF,sEAAsE;AACtE,mEAAmE;AACnE,wCAAwC;AAExC,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/verifiers/index.ts"],"names":[],"mappings":"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"}
|
package/dist/verifiers/lint.js
CHANGED
|
@@ -69,6 +69,7 @@ export const lintKernel = {
|
|
|
69
69
|
continue;
|
|
70
70
|
let m;
|
|
71
71
|
rule.pattern.lastIndex = 0;
|
|
72
|
+
let ruleCount = 0;
|
|
72
73
|
while ((m = rule.pattern.exec(content))) {
|
|
73
74
|
const lineNo = content.slice(0, m.index).split("\n").length;
|
|
74
75
|
issues.push({
|
|
@@ -77,9 +78,9 @@ export const lintKernel = {
|
|
|
77
78
|
message: rule.message(m),
|
|
78
79
|
location: `${path.relative(ctx.cwd, abs)}:${lineNo}`,
|
|
79
80
|
});
|
|
80
|
-
|
|
81
|
-
//
|
|
82
|
-
if (
|
|
81
|
+
ruleCount++;
|
|
82
|
+
// Cap repetitions of the same rule per file at 5.
|
|
83
|
+
if (ruleCount >= 5)
|
|
83
84
|
break;
|
|
84
85
|
}
|
|
85
86
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lint.js","sourceRoot":"","sources":["../../src/verifiers/lint.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"lint.js","sourceRoot":"","sources":["../../src/verifiers/lint.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Verifier } from "./types.js";
|
|
2
|
+
export declare const claimGroundingKernel: Verifier;
|
|
3
|
+
export declare const assumptionMarkedKernel: Verifier;
|
|
4
|
+
export declare const unitConsistencyKernel: Verifier;
|
|
5
|
+
export declare const sentenceVarianceKernel: Verifier;
|
|
6
|
+
export declare const componentStatesCompleteKernel: Verifier;
|
|
7
|
+
export declare const tokenLintKernel: Verifier;
|
|
8
|
+
export declare const PROMOTED_KERNELS: Verifier[];
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
// Promoted kernels — the remaining verifier slugs that used to be inert aliases
|
|
2
|
+
// of style_lint, now given real, domain-specific logic. All are WARN-level
|
|
3
|
+
// (quality nudges surfaced after the turn, never hard blocks) and deliberately
|
|
4
|
+
// conservative: each fires only on a clear, high-signal violation so it never
|
|
5
|
+
// punishes already-good output. They read ctx.profile to scope themselves.
|
|
6
|
+
const has = (re, s) => re.test(s);
|
|
7
|
+
const SUBSTANTIVE = 240;
|
|
8
|
+
// ── claim_grounding ─────────────────────────────────────────────────────────
|
|
9
|
+
// Absolute claims ("always", "proven", "guarantees") should be qualified or
|
|
10
|
+
// cited. Fires when an absolute claim appears with neither a citation nor a
|
|
11
|
+
// hedge anywhere in its sentence.
|
|
12
|
+
const CLAIM_PROFILES = new Set(["research", "academic", "policy", "medical", "science", "business", "legal", "strategy"]);
|
|
13
|
+
const ABSOLUTE = /\b(always|never|guarantees?|guaranteed|proven|proves|certainly|undeniably|definitely|undoubtedly|everyone|no one|nobody|impossible|all\s+\w+\s+are|every\s+\w+\s+(is|are))\b/i;
|
|
14
|
+
const GROUNDING = /(https?:\/\/|\bdoi\b|\[\d+\]|§|\baccording to\b|\bper\b\s|\bcites?\b|\(\d{4}\)|\bevidence\b|\bstud(y|ies)\b|\bdata\b)/i;
|
|
15
|
+
const HEDGE = /\b(likely|probabl|may|might|could|tends? to|generally|often|usually|in most|appears?|suggests?|typically|can\b)\b/i;
|
|
16
|
+
export const claimGroundingKernel = {
|
|
17
|
+
slug: "claim_grounding",
|
|
18
|
+
describe: "Flag absolute claims that carry neither a citation nor a qualifier",
|
|
19
|
+
async run(ctx) {
|
|
20
|
+
if (!CLAIM_PROFILES.has(ctx.profile))
|
|
21
|
+
return [];
|
|
22
|
+
const text = ctx.assistantText ?? "";
|
|
23
|
+
if (text.trim().length < SUBSTANTIVE)
|
|
24
|
+
return [];
|
|
25
|
+
for (const sentence of text.split(/(?<=[.!?])\s+/)) {
|
|
26
|
+
if (ABSOLUTE.test(sentence) && !GROUNDING.test(sentence) && !HEDGE.test(sentence)) {
|
|
27
|
+
return [{
|
|
28
|
+
severity: "warn",
|
|
29
|
+
kernel: "claim_grounding",
|
|
30
|
+
message: `Absolute claim without grounding: "${sentence.trim().slice(0, 90)}…". Cite a source or qualify it (scope/conditions/likelihood).`,
|
|
31
|
+
}];
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
return [];
|
|
35
|
+
},
|
|
36
|
+
};
|
|
37
|
+
// ── assumption_marked ───────────────────────────────────────────────────────
|
|
38
|
+
// Quantitative conclusions (projections, valuations, computed results) must
|
|
39
|
+
// state their assumptions. Fires when a computed conclusion appears with no
|
|
40
|
+
// assumptions block anywhere.
|
|
41
|
+
const ASSUMP_PROFILES = new Set(["finance", "data", "realtor", "engineer", "strategy", "investor", "trader", "business"]);
|
|
42
|
+
const COMPUTED = /\b(projection|forecast|estimat|valuation|NPV|IRR|ROI|LTV|CAC|cap rate|cash[- ]on[- ]cash|DSCR|TAM|SAM|SOM|breakeven|payback|runway|burn|multiple)\b/i;
|
|
43
|
+
// Prefix matches (assum→assuming, hypothes→hypotheses) — leading \b only, NO
|
|
44
|
+
// trailing \b (a trailing boundary would break "Assuming"/"hypotheses").
|
|
45
|
+
const ASSUMPTIONS = /\b(assum|given|inputs?|hypothes|all else equal|ceteris paribus|baseline|scenario|holding|we take|at\s+\d+\s*%|with\s+[\$]?\d)/i;
|
|
46
|
+
// An explicit worked derivation (an equation with numbers, or several figures)
|
|
47
|
+
// already exposes its inputs — don't double-flag a shown calculation.
|
|
48
|
+
const DERIVATION = /=\s*[-$€£]?\d/;
|
|
49
|
+
const numberCount = (s) => (s.match(/\d/g) ?? []).length;
|
|
50
|
+
export const assumptionMarkedKernel = {
|
|
51
|
+
slug: "assumption_marked",
|
|
52
|
+
describe: "Flag quantitative conclusions stated without inputs/assumptions or a shown derivation",
|
|
53
|
+
async run(ctx) {
|
|
54
|
+
if (!ASSUMP_PROFILES.has(ctx.profile))
|
|
55
|
+
return [];
|
|
56
|
+
const text = ctx.assistantText ?? "";
|
|
57
|
+
if (text.trim().length < SUBSTANTIVE)
|
|
58
|
+
return [];
|
|
59
|
+
const shownWork = has(DERIVATION, text) || numberCount(text) >= 4;
|
|
60
|
+
if (has(COMPUTED, text) && !has(ASSUMPTIONS, text) && !shownWork) {
|
|
61
|
+
return [{
|
|
62
|
+
severity: "warn",
|
|
63
|
+
kernel: "assumption_marked",
|
|
64
|
+
message: "A quantitative conclusion is given without stating its inputs/assumptions or showing the derivation. List the inputs (growth, rate, vacancy, churn, etc.) so the number is auditable.",
|
|
65
|
+
}];
|
|
66
|
+
}
|
|
67
|
+
return [];
|
|
68
|
+
},
|
|
69
|
+
};
|
|
70
|
+
// ── unit_consistency ────────────────────────────────────────────────────────
|
|
71
|
+
// In quantitative/physical domains a measurement noun followed by a bare number
|
|
72
|
+
// (no unit, %, or currency) is usually a missing unit. High-signal: requires the
|
|
73
|
+
// measurement noun adjacent to the bare number.
|
|
74
|
+
const UNIT_PROFILES = new Set(["engineer", "data", "realtor", "math", "science", "trader", "finance"]);
|
|
75
|
+
const MEASURE_BARE = /\b(temperature|distance|length|width|height|depth|weight|mass|force|pressure|voltage|current|power|speed|velocity|area|volume|frequency|energy|torque|density|wavelength|load)\b[^.\n]{0,18}?\b(\d+(?:\.\d+)?)\b(?!\s*(?:%|°|[a-zA-Zµ°Ω$€£/]))/i;
|
|
76
|
+
export const unitConsistencyKernel = {
|
|
77
|
+
slug: "unit_consistency",
|
|
78
|
+
describe: "Flag a physical quantity stated as a bare number with no unit",
|
|
79
|
+
async run(ctx) {
|
|
80
|
+
if (!UNIT_PROFILES.has(ctx.profile))
|
|
81
|
+
return [];
|
|
82
|
+
const text = ctx.assistantText ?? "";
|
|
83
|
+
if (text.trim().length < SUBSTANTIVE)
|
|
84
|
+
return [];
|
|
85
|
+
const m = text.match(MEASURE_BARE);
|
|
86
|
+
if (m) {
|
|
87
|
+
return [{
|
|
88
|
+
severity: "warn",
|
|
89
|
+
kernel: "unit_consistency",
|
|
90
|
+
message: `A measured quantity appears without a unit near "${m[0].trim().slice(0, 50)}". Attach units (and keep them consistent) for every physical/financial quantity.`,
|
|
91
|
+
}];
|
|
92
|
+
}
|
|
93
|
+
return [];
|
|
94
|
+
},
|
|
95
|
+
};
|
|
96
|
+
// ── sentence_variance ───────────────────────────────────────────────────────
|
|
97
|
+
// Uniform sentence length reads as monotone, machine-generated prose. Fires when
|
|
98
|
+
// many sentences have a very low length coefficient-of-variation.
|
|
99
|
+
const PROSE_PROFILES = new Set(["writing", "creative", "marketing", "influencer", "sales"]);
|
|
100
|
+
export const sentenceVarianceKernel = {
|
|
101
|
+
slug: "sentence_variance",
|
|
102
|
+
describe: "Flag monotone, uniform-length sentences (a machine-text tell)",
|
|
103
|
+
async run(ctx) {
|
|
104
|
+
if (!PROSE_PROFILES.has(ctx.profile))
|
|
105
|
+
return [];
|
|
106
|
+
const text = ctx.assistantText ?? "";
|
|
107
|
+
const lens = text
|
|
108
|
+
.split(/(?<=[.!?])\s+/)
|
|
109
|
+
.map((s) => s.trim().split(/\s+/).filter(Boolean).length)
|
|
110
|
+
.filter((n) => n >= 3);
|
|
111
|
+
if (lens.length < 6)
|
|
112
|
+
return [];
|
|
113
|
+
const mean = lens.reduce((a, b) => a + b, 0) / lens.length;
|
|
114
|
+
if (mean < 5)
|
|
115
|
+
return [];
|
|
116
|
+
const sd = Math.sqrt(lens.reduce((a, b) => a + (b - mean) ** 2, 0) / lens.length);
|
|
117
|
+
const cv = sd / mean;
|
|
118
|
+
if (cv < 0.28) {
|
|
119
|
+
return [{
|
|
120
|
+
severity: "warn",
|
|
121
|
+
kernel: "sentence_variance",
|
|
122
|
+
message: `Sentences are uniform in length (low rhythm variance). Mix short and long sentences — vary the cadence so it doesn't read as machine-generated.`,
|
|
123
|
+
}];
|
|
124
|
+
}
|
|
125
|
+
return [];
|
|
126
|
+
},
|
|
127
|
+
};
|
|
128
|
+
// ── component_states_complete ───────────────────────────────────────────────
|
|
129
|
+
// A UI component spec that lists some interaction states but omits the
|
|
130
|
+
// accessibility-critical focus/disabled states is incomplete.
|
|
131
|
+
const DESIGN_PROFILES = new Set(["design"]);
|
|
132
|
+
const COMPONENT = /\b(component|button|input|field|modal|dropdown|toggle|checkbox|radio|menu|card|form|tab|slider|switch)\b/i;
|
|
133
|
+
export const componentStatesCompleteKernel = {
|
|
134
|
+
slug: "component_states_complete",
|
|
135
|
+
describe: "Flag a component spec missing focus/disabled (or other) states",
|
|
136
|
+
async run(ctx) {
|
|
137
|
+
if (!DESIGN_PROFILES.has(ctx.profile))
|
|
138
|
+
return [];
|
|
139
|
+
const text = ctx.assistantText ?? "";
|
|
140
|
+
if (text.trim().length < SUBSTANTIVE || !COMPONENT.test(text))
|
|
141
|
+
return [];
|
|
142
|
+
const states = ["default", "hover", "focus", "active", "disabled", "loading", "error", "selected", "pressed"];
|
|
143
|
+
const present = states.filter((s) => new RegExp(`\\b${s}\\b`, "i").test(text));
|
|
144
|
+
if (present.length === 0)
|
|
145
|
+
return []; // not a state-level spec at all
|
|
146
|
+
const missing = ["focus", "disabled"].filter((s) => !present.includes(s));
|
|
147
|
+
if (missing.length) {
|
|
148
|
+
return [{
|
|
149
|
+
severity: "warn",
|
|
150
|
+
kernel: "component_states_complete",
|
|
151
|
+
message: `Component spec lists states (${present.join(", ")}) but is missing: ${missing.join(", ")}. Enumerate every interaction state — focus + disabled are accessibility-critical.`,
|
|
152
|
+
}];
|
|
153
|
+
}
|
|
154
|
+
return [];
|
|
155
|
+
},
|
|
156
|
+
};
|
|
157
|
+
// ── token_lint ──────────────────────────────────────────────────────────────
|
|
158
|
+
// Design output should reference design tokens, not hardcoded colors/sizes.
|
|
159
|
+
const HARDCODED_HEX = /#[0-9a-fA-F]{3,8}\b/g;
|
|
160
|
+
export const tokenLintKernel = {
|
|
161
|
+
slug: "token_lint",
|
|
162
|
+
describe: "Flag hardcoded colors/sizes in design output (use tokens)",
|
|
163
|
+
async run(ctx) {
|
|
164
|
+
if (!DESIGN_PROFILES.has(ctx.profile))
|
|
165
|
+
return [];
|
|
166
|
+
const text = ctx.assistantText ?? "";
|
|
167
|
+
if (text.trim().length < SUBSTANTIVE)
|
|
168
|
+
return [];
|
|
169
|
+
const hexes = text.match(HARDCODED_HEX) ?? [];
|
|
170
|
+
// Allow a stray reference; flag when there are several raw hex values AND
|
|
171
|
+
// no token usage at all.
|
|
172
|
+
if (hexes.length >= 2 && !/var\(--|tokens?\.|\$[a-z-]+\b/i.test(text)) {
|
|
173
|
+
return [{
|
|
174
|
+
severity: "warn",
|
|
175
|
+
kernel: "token_lint",
|
|
176
|
+
message: `Found ${hexes.length} hardcoded colors (${[...new Set(hexes)].slice(0, 3).join(", ")}…) and no design-token usage. Reference tokens (e.g. var(--color-...)) instead of literals.`,
|
|
177
|
+
}];
|
|
178
|
+
}
|
|
179
|
+
return [];
|
|
180
|
+
},
|
|
181
|
+
};
|
|
182
|
+
export const PROMOTED_KERNELS = [
|
|
183
|
+
claimGroundingKernel,
|
|
184
|
+
assumptionMarkedKernel,
|
|
185
|
+
unitConsistencyKernel,
|
|
186
|
+
sentenceVarianceKernel,
|
|
187
|
+
componentStatesCompleteKernel,
|
|
188
|
+
tokenLintKernel,
|
|
189
|
+
];
|
|
190
|
+
//# sourceMappingURL=promoted_kernels.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"promoted_kernels.js","sourceRoot":"","sources":["../../src/verifiers/promoted_kernels.ts"],"names":[],"mappings":"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"}
|
|
@@ -104,9 +104,8 @@ export const sourceGateKernel = {
|
|
|
104
104
|
const claimMatch = CLAIM_PATTERNS.map((re) => re.exec(text)).find(Boolean);
|
|
105
105
|
if (!claimMatch)
|
|
106
106
|
return [];
|
|
107
|
-
// If the model READ a file this turn
|
|
108
|
-
|
|
109
|
-
if (ctx.touchedFiles && ctx.touchedFiles.length > 0)
|
|
107
|
+
// If the model READ a file this turn, the source was consulted by definition — don't warn.
|
|
108
|
+
if ((ctx.readFiles && ctx.readFiles.length > 0) || (ctx.touchedFiles && ctx.touchedFiles.length > 0))
|
|
110
109
|
return [];
|
|
111
110
|
// Did the text itself show the source was consulted (quote / link /
|
|
112
111
|
// filename / "I read the file")?
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source_gate.js","sourceRoot":"","sources":["../../src/verifiers/source_gate.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,6DAA6D;AAC7D,EAAE;AACF,6EAA6E;AAC7E,0EAA0E;AAC1E,2EAA2E;AAC3E,uEAAuE;AACvE,2EAA2E;AAC3E,2EAA2E;AAC3E,+BAA+B;AAC/B,EAAE;AACF,2EAA2E;AAC3E,4EAA4E;AAC5E,0EAA0E;AAC1E,0EAA0E;AAC1E,2EAA2E;AAC3E,QAAQ;AACR,EAAE;AACF,gBAAgB;AAChB,4EAA4E;AAC5E,2EAA2E;AAC3E,+EAA+E;AAC/E,4EAA4E;AAC5E,qCAAqC;AACrC,gFAAgF;AAChF,8EAA8E;AAC9E,6EAA6E;AAC7E,6CAA6C;AAC7C,+EAA+E;AAC/E,gFAAgF;AAChF,EAAE;AACF,6EAA6E;AAC7E,yEAAyE;AACzE,uEAAuE;AACvE,uEAAuE;AAIvE,4EAA4E;AAC5E,8EAA8E;AAC9E,+EAA+E;AAC/E,wEAAwE;AACxE,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC;IAClC,MAAM;IACN,UAAU;IACV,SAAS;IACT,KAAK;IACL,UAAU;IACV,WAAW;IACX,MAAM;IACN,OAAO;IACP,UAAU;IACV,UAAU;IACV,SAAS;IACT,QAAQ;IACR,SAAS;IACT,wEAAwE;IACxE,OAAO;IACP,4EAA4E;IAC5E,6EAA6E;IAC7E,QAAQ;IACR,UAAU;IACV,SAAS;CACV,CAAC,CAAC;AAEH,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAE/B,0EAA0E;AAC1E,0EAA0E;AAC1E,iDAAiD;AACjD,MAAM,cAAc,GAAa;IAC/B,2DAA2D;IAC3D,uOAAuO;IACvO,yFAAyF;IACzF,2HAA2H;IAC3H,+EAA+E;IAC/E,0GAA0G;IAC1G,+EAA+E;IAC/E,wPAAwP;IACxP,4EAA4E;IAC5E,qJAAqJ;IACrJ,uFAAuF;IACvF,iLAAiL;CAClL,CAAC;AAEF,4EAA4E;AAC5E,qCAAqC;AACrC,MAAM,gBAAgB,GAAa;IACjC,gBAAgB,EAA+C,iCAAiC;IAChG,kBAAkB,EAA6C,uBAAuB;IACtF,mBAAmB,EAA4C,kBAAkB;IACjF,oNAAoN;IACpN,2EAA2E,EAAE,0CAA0C;IACvH,+FAA+F,EAAE,iCAAiC;IAClI,uBAAuB,EAAwC,0CAA0C;CAC1G,CAAC;AAEF,SAAS,QAAQ,CAAC,QAAkB,EAAE,IAAY;IAChD,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAa;IACxC,IAAI,EAAE,aAAa;IACnB,QAAQ,EACN,+JAA+J;IACjK,KAAK,CAAC,GAAG,CAAC,GAAoB;QAC5B,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC;YAAE,OAAO,EAAE,CAAC;QACrD,MAAM,IAAI,GAAG,GAAG,CAAC,aAAa,CAAC;QAC/B,IAAI,IAAI,CAAC,MAAM,GAAG,kBAAkB;YAAE,OAAO,EAAE,CAAC;QAEhD,gDAAgD;QAChD,MAAM,UAAU,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3E,IAAI,CAAC,UAAU;YAAE,OAAO,EAAE,CAAC;QAE3B,
|
|
1
|
+
{"version":3,"file":"source_gate.js","sourceRoot":"","sources":["../../src/verifiers/source_gate.ts"],"names":[],"mappings":"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"}
|
|
@@ -71,6 +71,36 @@ export const testSmokeKernel = {
|
|
|
71
71
|
}
|
|
72
72
|
}
|
|
73
73
|
catch { /* fall through */ }
|
|
74
|
+
// Vitest or Jest detection: find the touched test files and run against them.
|
|
75
|
+
const vitestConfig = findUpward(ctx.cwd, ["vitest.config.ts", "vitest.config.js", "vitest.config.mjs"]);
|
|
76
|
+
const jestConfig = findUpward(ctx.cwd, ["jest.config.ts", "jest.config.js", "jest.config.cjs", "jest.config.mjs"]);
|
|
77
|
+
const testFiles = ctx.touchedFiles.filter((p) => /\.(test|spec)\.(ts|tsx|js|jsx|mjs)$/.test(p));
|
|
78
|
+
if (vitestConfig && testFiles.length > 0) {
|
|
79
|
+
const rootDir = path.dirname(vitestConfig);
|
|
80
|
+
const res = await runCmd("npx", ["vitest", "run", "--bail=1", ...testFiles], rootDir, 5000);
|
|
81
|
+
if (res.code !== 0 && res.code !== -1) {
|
|
82
|
+
return [{
|
|
83
|
+
severity: "block",
|
|
84
|
+
kernel: "test_smoke",
|
|
85
|
+
message: `vitest failed (exit ${res.code}): ${res.out.slice(0, 300)}`,
|
|
86
|
+
location: path.relative(ctx.cwd, vitestConfig),
|
|
87
|
+
}];
|
|
88
|
+
}
|
|
89
|
+
return [];
|
|
90
|
+
}
|
|
91
|
+
if (jestConfig && testFiles.length > 0) {
|
|
92
|
+
const rootDir = path.dirname(jestConfig);
|
|
93
|
+
const res = await runCmd("npx", ["jest", "--bail", "--passWithNoTests", ...testFiles], rootDir, 5000);
|
|
94
|
+
if (res.code !== 0 && res.code !== -1) {
|
|
95
|
+
return [{
|
|
96
|
+
severity: "block",
|
|
97
|
+
kernel: "test_smoke",
|
|
98
|
+
message: `jest failed (exit ${res.code}): ${res.out.slice(0, 300)}`,
|
|
99
|
+
location: path.relative(ctx.cwd, jestConfig),
|
|
100
|
+
}];
|
|
101
|
+
}
|
|
102
|
+
return [];
|
|
103
|
+
}
|
|
74
104
|
}
|
|
75
105
|
// Python: look for pytest + tests/ dir + touched .py files.
|
|
76
106
|
const pyTouched = ctx.touchedFiles.filter((p) => p.endsWith(".py"));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test_smoke.js","sourceRoot":"","sources":["../../src/verifiers/test_smoke.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"test_smoke.js","sourceRoot":"","sources":["../../src/verifiers/test_smoke.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,9 @@ export interface VerifierContext {
|
|
|
17
17
|
* Write or Edit). Verifiers focus their work on these to keep
|
|
18
18
|
* latency low. */
|
|
19
19
|
touchedFiles: string[];
|
|
20
|
+
/** Files the assistant READ this turn (paths passed to Read). Used by
|
|
21
|
+
* source_gate to confirm a source was consulted rather than recited. */
|
|
22
|
+
readFiles?: string[];
|
|
20
23
|
/** Profile slug active during this turn. */
|
|
21
24
|
profile: string;
|
|
22
25
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vextlabs/theron-cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "Theron CLI — an agentic coding assistant that verifies its own output. Runs an agentic tool loop in your terminal, then runs post-turn checks (types, tests, lint, arithmetic, citations) over the files it touched; blocking failures feed the next turn so it self-corrects. Across a 33-profile domain council. From Vext Labs.",
|
|
5
5
|
"author": "Vext Labs Inc.",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
"files": [
|
|
17
17
|
"bin",
|
|
18
18
|
"dist",
|
|
19
|
+
"skills",
|
|
19
20
|
"README.md",
|
|
20
21
|
"LICENSE.txt"
|
|
21
22
|
],
|
|
@@ -29,7 +30,7 @@
|
|
|
29
30
|
"build": "tsc -p .",
|
|
30
31
|
"dev": "tsc -p . --watch",
|
|
31
32
|
"start": "node ./bin/theron.js",
|
|
32
|
-
"test": "npm run build && node test/sweep.mjs && node test/pentest.unit.test.mjs && node test/verifiers.unit.test.mjs",
|
|
33
|
+
"test": "npm run build && node test/sweep.mjs && node test/pentest.unit.test.mjs && node test/verifiers.unit.test.mjs && node test/input.unit.test.mjs && node test/integrity.unit.test.mjs",
|
|
33
34
|
"test:integration": "npm run build && THERON_RUN_INTEGRATION=1 node test/integration.mjs",
|
|
34
35
|
"prepublishOnly": "npm run build",
|
|
35
36
|
"release": "npm version patch && npm publish",
|
|
@@ -38,6 +39,7 @@
|
|
|
38
39
|
},
|
|
39
40
|
"dependencies": {
|
|
40
41
|
"@types/node": "^20.0.0",
|
|
42
|
+
"@vextlabs/theron-agent-sdk": "^0.3.1",
|
|
41
43
|
"chalk": "^5.3.0",
|
|
42
44
|
"fast-glob": "^3.3.2",
|
|
43
45
|
"marked": "^12.0.0",
|