@atsumell/trace-weave 0.1.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.ja.md +99 -0
- package/README.md +105 -0
- package/dist/ai/index.d.ts +32 -0
- package/dist/ai/index.js +121 -0
- package/dist/ai/index.js.map +1 -0
- package/dist/builder/index.d.ts +26 -0
- package/dist/builder/index.js +47 -0
- package/dist/builder/index.js.map +1 -0
- package/dist/chunk-35PKIXFV.js +90 -0
- package/dist/chunk-35PKIXFV.js.map +1 -0
- package/dist/chunk-AS6LZLUH.js +32 -0
- package/dist/chunk-AS6LZLUH.js.map +1 -0
- package/dist/chunk-B4SEKVLL.js +29 -0
- package/dist/chunk-B4SEKVLL.js.map +1 -0
- package/dist/chunk-EICHUHZH.js +689 -0
- package/dist/chunk-EICHUHZH.js.map +1 -0
- package/dist/chunk-WIW3TVEK.js +324 -0
- package/dist/chunk-WIW3TVEK.js.map +1 -0
- package/dist/compiler/index.d.ts +19 -0
- package/dist/compiler/index.js +24 -0
- package/dist/compiler/index.js.map +1 -0
- package/dist/core/index.d.ts +5 -0
- package/dist/core/index.js +37 -0
- package/dist/core/index.js.map +1 -0
- package/dist/fast-check/index.d.ts +34 -0
- package/dist/fast-check/index.js +64 -0
- package/dist/fast-check/index.js.map +1 -0
- package/dist/formula-document-ChXznpvJ.d.ts +99 -0
- package/dist/formula-expr-DAHklv9S.d.ts +111 -0
- package/dist/monitor/index.d.ts +23 -0
- package/dist/monitor/index.js +251 -0
- package/dist/monitor/index.js.map +1 -0
- package/dist/patterns/index.d.ts +61 -0
- package/dist/patterns/index.js +57 -0
- package/dist/patterns/index.js.map +1 -0
- package/dist/prepare-CrKEArDt.d.ts +8 -0
- package/dist/runtime-Do1rQFhQ.d.ts +9 -0
- package/dist/types-xatgZlwH.d.ts +35 -0
- package/dist/values-CEF1lKTL.d.ts +48 -0
- package/dist/verdict-DYG0WE3o.d.ts +7 -0
- package/dist/vitest/index.d.ts +24 -0
- package/dist/vitest/index.js +40 -0
- package/dist/vitest/index.js.map +1 -0
- package/package.json +95 -0
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import {
|
|
2
|
+
always,
|
|
3
|
+
eventually,
|
|
4
|
+
implies,
|
|
5
|
+
not,
|
|
6
|
+
once,
|
|
7
|
+
release,
|
|
8
|
+
since
|
|
9
|
+
} from "../chunk-35PKIXFV.js";
|
|
10
|
+
|
|
11
|
+
// src/patterns/patterns.ts
|
|
12
|
+
function absence(p) {
|
|
13
|
+
return always(not(p));
|
|
14
|
+
}
|
|
15
|
+
function response(p, q) {
|
|
16
|
+
return always(implies(p, eventually(q)));
|
|
17
|
+
}
|
|
18
|
+
function boundedResponse(p, q, steps) {
|
|
19
|
+
return always(implies(p, { kind: "withinSteps", steps, child: q }));
|
|
20
|
+
}
|
|
21
|
+
function precedence(p, q) {
|
|
22
|
+
return release(p, not(q));
|
|
23
|
+
}
|
|
24
|
+
function persistence(p) {
|
|
25
|
+
return always(implies(p, always(p)));
|
|
26
|
+
}
|
|
27
|
+
function stability(p, q) {
|
|
28
|
+
return always(implies(p, always(q)));
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
// src/patterns/scoped.ts
|
|
32
|
+
function globally(pattern) {
|
|
33
|
+
return always(pattern);
|
|
34
|
+
}
|
|
35
|
+
function after(q, pattern) {
|
|
36
|
+
return always(implies(once(q), pattern));
|
|
37
|
+
}
|
|
38
|
+
function before(r, pattern) {
|
|
39
|
+
return always(implies(not(once(r)), pattern));
|
|
40
|
+
}
|
|
41
|
+
function between(q, r, pattern) {
|
|
42
|
+
const inScope = since(not(r), q);
|
|
43
|
+
return always(implies(inScope, pattern));
|
|
44
|
+
}
|
|
45
|
+
export {
|
|
46
|
+
absence,
|
|
47
|
+
after,
|
|
48
|
+
before,
|
|
49
|
+
between,
|
|
50
|
+
boundedResponse,
|
|
51
|
+
globally,
|
|
52
|
+
persistence,
|
|
53
|
+
precedence,
|
|
54
|
+
response,
|
|
55
|
+
stability
|
|
56
|
+
};
|
|
57
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/patterns/patterns.ts","../../src/patterns/scoped.ts"],"sourcesContent":["import { always, eventually, implies, not, release } from \"../builder/factory.js\";\nimport type { FormulaExpr } from \"../core/formula-expr.js\";\n\n/**\n * Absence: p never holds globally.\n * LTLf: G(!p)\n */\nexport function absence(p: FormulaExpr): FormulaExpr {\n\treturn always(not(p));\n}\n\n/**\n * Response: every p is eventually followed by q.\n * LTLf: G(p -> F q)\n */\nexport function response(p: FormulaExpr, q: FormulaExpr): FormulaExpr {\n\treturn always(implies(p, eventually(q)));\n}\n\n/**\n * Bounded Response: every p is followed by q within N steps (N positions from current).\n * LTLf: G(p -> withinSteps(n, q))\n * Consistent with withinSteps semantics: checks positions [pos, pos+n).\n */\nexport function boundedResponse(p: FormulaExpr, q: FormulaExpr, steps: number): FormulaExpr {\n\treturn always(implies(p, { kind: \"withinSteps\", steps, child: q }));\n}\n\n/**\n * Precedence: q can only occur after p has occurred.\n * LTLf: (!q) U p (or equivalently, G(!q) if p never happens)\n * Weak until variant: !q W p = ((!q) U p) | G(!q)\n */\nexport function precedence(p: FormulaExpr, q: FormulaExpr): FormulaExpr {\n\treturn release(p, not(q));\n}\n\n/**\n * Persistence: once p holds, it holds forever after.\n * LTLf: G(p -> G p)\n */\nexport function persistence(p: FormulaExpr): FormulaExpr {\n\treturn always(implies(p, always(p)));\n}\n\n/**\n * Stability: once p holds, q holds forever after.\n * LTLf: G(p -> G q)\n */\nexport function stability(p: FormulaExpr, q: FormulaExpr): FormulaExpr {\n\treturn always(implies(p, always(q)));\n}\n","import { always, and, implies, not, once, since } from \"../builder/factory.js\";\nimport type { FormulaExpr } from \"../core/formula-expr.js\";\n\n/**\n * Globally scope — the pattern holds at every step.\n * Just wraps the pattern in always(). Included for API completeness.\n */\nexport function globally(pattern: FormulaExpr): FormulaExpr {\n\treturn always(pattern);\n}\n\n/**\n * After scope — the pattern holds at every step after q has occurred.\n * LTLf: G(once(q) -> pattern)\n */\nexport function after(q: FormulaExpr, pattern: FormulaExpr): FormulaExpr {\n\treturn always(implies(once(q), pattern));\n}\n\n/**\n * Before scope — the pattern holds at every step before r occurs.\n * LTLf: G(!once(r) -> pattern) which simplifies to: pattern holds until r.\n * We use historically(!r) -> pattern for each step.\n */\nexport function before(r: FormulaExpr, pattern: FormulaExpr): FormulaExpr {\n\treturn always(implies(not(once(r)), pattern));\n}\n\n/**\n * Between scope — the pattern holds between every occurrence of q and the next r.\n * LTLf: G( (not(r) S q) -> pattern )\n * \"not(r) since q\" is true when q has occurred and r has not occurred since the last q.\n * This correctly handles re-entry: q→r→q reactivates the scope.\n */\nexport function between(q: FormulaExpr, r: FormulaExpr, pattern: FormulaExpr): FormulaExpr {\n\tconst inScope = since(not(r), q);\n\treturn always(implies(inScope, pattern));\n}\n"],"mappings":";;;;;;;;;;;AAOO,SAAS,QAAQ,GAA6B;AACpD,SAAO,OAAO,IAAI,CAAC,CAAC;AACrB;AAMO,SAAS,SAAS,GAAgB,GAA6B;AACrE,SAAO,OAAO,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC;AACxC;AAOO,SAAS,gBAAgB,GAAgB,GAAgB,OAA4B;AAC3F,SAAO,OAAO,QAAQ,GAAG,EAAE,MAAM,eAAe,OAAO,OAAO,EAAE,CAAC,CAAC;AACnE;AAOO,SAAS,WAAW,GAAgB,GAA6B;AACvE,SAAO,QAAQ,GAAG,IAAI,CAAC,CAAC;AACzB;AAMO,SAAS,YAAY,GAA6B;AACxD,SAAO,OAAO,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC;AACpC;AAMO,SAAS,UAAU,GAAgB,GAA6B;AACtE,SAAO,OAAO,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC;AACpC;;;AC5CO,SAAS,SAAS,SAAmC;AAC3D,SAAO,OAAO,OAAO;AACtB;AAMO,SAAS,MAAM,GAAgB,SAAmC;AACxE,SAAO,OAAO,QAAQ,KAAK,CAAC,GAAG,OAAO,CAAC;AACxC;AAOO,SAAS,OAAO,GAAgB,SAAmC;AACzE,SAAO,OAAO,QAAQ,IAAI,KAAK,CAAC,CAAC,GAAG,OAAO,CAAC;AAC7C;AAQO,SAAS,QAAQ,GAAgB,GAAgB,SAAmC;AAC1F,QAAM,UAAU,MAAM,IAAI,CAAC,GAAG,CAAC;AAC/B,SAAO,OAAO,QAAQ,SAAS,OAAO,CAAC;AACxC;","names":[]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { F as FormulaDocument } from './formula-document-ChXznpvJ.js';
|
|
2
|
+
|
|
3
|
+
interface CompiledFormula {
|
|
4
|
+
readonly document: FormulaDocument;
|
|
5
|
+
}
|
|
6
|
+
declare function prepare(doc: FormulaDocument): CompiledFormula;
|
|
7
|
+
|
|
8
|
+
export { type CompiledFormula as C, prepare as p };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { P as PredicateId, J as JsonValue, S as SelectorId } from './values-CEF1lKTL.js';
|
|
2
|
+
|
|
3
|
+
interface MonitorRuntime<TEvent> {
|
|
4
|
+
readonly predicates: Readonly<Record<PredicateId, (event: TEvent, args: readonly JsonValue[]) => boolean>>;
|
|
5
|
+
readonly selectors: Readonly<Record<SelectorId, (event: TEvent) => JsonValue>>;
|
|
6
|
+
readonly timestamp?: (event: TEvent) => number;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export type { MonitorRuntime as M };
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { C as CompiledFormula } from './prepare-CrKEArDt.js';
|
|
2
|
+
import { N as NodeId, A as ActivationId } from './values-CEF1lKTL.js';
|
|
3
|
+
import { M as MonitorRuntime } from './runtime-Do1rQFhQ.js';
|
|
4
|
+
import { V as Verdict } from './verdict-DYG0WE3o.js';
|
|
5
|
+
|
|
6
|
+
interface MonitorState<TEvent> {
|
|
7
|
+
readonly compiled: CompiledFormula;
|
|
8
|
+
readonly runtime: MonitorRuntime<TEvent>;
|
|
9
|
+
step: number;
|
|
10
|
+
readonly trace: TEvent[];
|
|
11
|
+
currentVerdict: Verdict;
|
|
12
|
+
finalized: boolean;
|
|
13
|
+
}
|
|
14
|
+
interface OracleRunResult {
|
|
15
|
+
readonly verdict: Verdict;
|
|
16
|
+
readonly steps: number;
|
|
17
|
+
readonly report: CounterexampleReport | null;
|
|
18
|
+
}
|
|
19
|
+
interface ObligationSnapshot {
|
|
20
|
+
readonly nodeId: NodeId;
|
|
21
|
+
readonly activationId: ActivationId;
|
|
22
|
+
readonly verdict: Verdict;
|
|
23
|
+
readonly step: number;
|
|
24
|
+
}
|
|
25
|
+
interface CounterexampleReport {
|
|
26
|
+
readonly verdict: Verdict;
|
|
27
|
+
readonly failurePath: readonly ObligationSnapshot[];
|
|
28
|
+
readonly traceSlice: readonly {
|
|
29
|
+
step: number;
|
|
30
|
+
event: unknown;
|
|
31
|
+
}[];
|
|
32
|
+
readonly summary: string;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export type { CounterexampleReport as C, MonitorState as M, OracleRunResult as O, ObligationSnapshot as a };
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
declare const __brand: unique symbol;
|
|
2
|
+
type Brand<T, B extends string> = T & {
|
|
3
|
+
readonly [__brand]: B;
|
|
4
|
+
};
|
|
5
|
+
type NodeId = Brand<string, "NodeId">;
|
|
6
|
+
type PredicateId = Brand<string, "PredicateId">;
|
|
7
|
+
type SelectorId = Brand<string, "SelectorId">;
|
|
8
|
+
type CaptureName = Brand<string, "CaptureName">;
|
|
9
|
+
type ActivationId = Brand<string, "ActivationId">;
|
|
10
|
+
type EnvId = Brand<string, "EnvId">;
|
|
11
|
+
declare function nodeId(s: string): NodeId;
|
|
12
|
+
declare function predicateId(s: string): PredicateId;
|
|
13
|
+
declare function selectorId(s: string): SelectorId;
|
|
14
|
+
declare function captureName(s: string): CaptureName;
|
|
15
|
+
declare function activationId(s: string): ActivationId;
|
|
16
|
+
declare function envId(s: string): EnvId;
|
|
17
|
+
|
|
18
|
+
interface SourceSpan {
|
|
19
|
+
readonly file?: string;
|
|
20
|
+
readonly line?: number;
|
|
21
|
+
readonly column?: number;
|
|
22
|
+
}
|
|
23
|
+
interface FormulaMeta {
|
|
24
|
+
readonly humanLabel?: string;
|
|
25
|
+
readonly sourceSpan?: SourceSpan;
|
|
26
|
+
readonly confidence?: number;
|
|
27
|
+
}
|
|
28
|
+
interface NodeProvenance {
|
|
29
|
+
readonly nodeId: NodeId;
|
|
30
|
+
readonly origin: "user" | "compiler" | "pattern";
|
|
31
|
+
readonly sourceExprKind?: string;
|
|
32
|
+
readonly meta?: FormulaMeta;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
type JsonValue = string | number | boolean | null | readonly JsonValue[] | {
|
|
36
|
+
readonly [key: string]: JsonValue;
|
|
37
|
+
};
|
|
38
|
+
type ValueExprArg = {
|
|
39
|
+
readonly kind: "currentSelector";
|
|
40
|
+
readonly selectorId: SelectorId;
|
|
41
|
+
} | {
|
|
42
|
+
readonly kind: "literal";
|
|
43
|
+
readonly value: JsonValue;
|
|
44
|
+
};
|
|
45
|
+
declare function current(selectorId: SelectorId): ValueExprArg;
|
|
46
|
+
declare function value(v: JsonValue): ValueExprArg;
|
|
47
|
+
|
|
48
|
+
export { type ActivationId as A, type CaptureName as C, type EnvId as E, type FormulaMeta as F, type JsonValue as J, type NodeId as N, type PredicateId as P, type SelectorId as S, type ValueExprArg as V, type NodeProvenance as a, type SourceSpan as b, activationId as c, captureName as d, current as e, envId as f, nodeId as n, predicateId as p, selectorId as s, value as v };
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
type Verdict = "satisfied" | "violated" | "pending";
|
|
2
|
+
declare function notV(v: Verdict): Verdict;
|
|
3
|
+
declare function andV(a: Verdict, b: Verdict): Verdict;
|
|
4
|
+
declare function orV(a: Verdict, b: Verdict): Verdict;
|
|
5
|
+
declare function impliesV(a: Verdict, b: Verdict): Verdict;
|
|
6
|
+
|
|
7
|
+
export { type Verdict as V, andV as a, impliesV as i, notV as n, orV as o };
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { F as FormulaExpr } from '../formula-expr-DAHklv9S.js';
|
|
2
|
+
import { M as MonitorRuntime } from '../runtime-Do1rQFhQ.js';
|
|
3
|
+
import '../values-CEF1lKTL.js';
|
|
4
|
+
|
|
5
|
+
declare function createMatchers(): {
|
|
6
|
+
toSatisfy<TEvent>(received: TEvent[], formula: FormulaExpr, runtime: MonitorRuntime<TEvent>): {
|
|
7
|
+
pass: boolean;
|
|
8
|
+
message: () => string;
|
|
9
|
+
};
|
|
10
|
+
toViolate<TEvent>(received: TEvent[], formula: FormulaExpr, runtime: MonitorRuntime<TEvent>): {
|
|
11
|
+
pass: boolean;
|
|
12
|
+
message: () => string;
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
declare module "vitest" {
|
|
17
|
+
interface CustomMatchers<R> {
|
|
18
|
+
toSatisfy<TEvent>(formula: FormulaExpr, runtime: MonitorRuntime<TEvent>): R;
|
|
19
|
+
toViolate<TEvent>(formula: FormulaExpr, runtime: MonitorRuntime<TEvent>): R;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
declare function installMatchers(): void;
|
|
23
|
+
|
|
24
|
+
export { createMatchers, installMatchers };
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import {
|
|
2
|
+
runOracle
|
|
3
|
+
} from "../chunk-EICHUHZH.js";
|
|
4
|
+
import "../chunk-AS6LZLUH.js";
|
|
5
|
+
import "../chunk-WIW3TVEK.js";
|
|
6
|
+
import "../chunk-B4SEKVLL.js";
|
|
7
|
+
|
|
8
|
+
// src/vitest/matchers.ts
|
|
9
|
+
function createMatchers() {
|
|
10
|
+
return {
|
|
11
|
+
toSatisfy(received, formula, runtime) {
|
|
12
|
+
const result = runOracle(formula, runtime, received);
|
|
13
|
+
const pass = result.verdict === "satisfied";
|
|
14
|
+
return {
|
|
15
|
+
pass,
|
|
16
|
+
message: () => pass ? "Expected trace NOT to satisfy formula, but it did" : `Expected trace to satisfy formula, but got verdict: ${result.verdict}
|
|
17
|
+
${result.report?.summary ?? ""}`
|
|
18
|
+
};
|
|
19
|
+
},
|
|
20
|
+
toViolate(received, formula, runtime) {
|
|
21
|
+
const result = runOracle(formula, runtime, received);
|
|
22
|
+
const pass = result.verdict === "violated";
|
|
23
|
+
return {
|
|
24
|
+
pass,
|
|
25
|
+
message: () => pass ? "Expected trace NOT to violate formula, but it did" : `Expected trace to violate formula, but got verdict: ${result.verdict}`
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
// src/vitest/setup.ts
|
|
32
|
+
import { expect } from "vitest";
|
|
33
|
+
function installMatchers() {
|
|
34
|
+
expect.extend(createMatchers());
|
|
35
|
+
}
|
|
36
|
+
export {
|
|
37
|
+
createMatchers,
|
|
38
|
+
installMatchers
|
|
39
|
+
};
|
|
40
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/vitest/matchers.ts","../../src/vitest/setup.ts"],"sourcesContent":["import type { FormulaExpr } from \"../core/formula-expr.js\";\nimport type { MonitorRuntime } from \"../core/runtime.js\";\nimport { runOracle } from \"../monitor/run-oracle.js\";\n\nexport interface TraceMatcherOptions<TEvent> {\n\treadonly formula: FormulaExpr;\n\treadonly runtime: MonitorRuntime<TEvent>;\n}\n\nexport function createMatchers() {\n\treturn {\n\t\ttoSatisfy<TEvent>(received: TEvent[], formula: FormulaExpr, runtime: MonitorRuntime<TEvent>) {\n\t\t\tconst result = runOracle(formula, runtime, received);\n\t\t\tconst pass = result.verdict === \"satisfied\";\n\t\t\treturn {\n\t\t\t\tpass,\n\t\t\t\tmessage: () =>\n\t\t\t\t\tpass\n\t\t\t\t\t\t? \"Expected trace NOT to satisfy formula, but it did\"\n\t\t\t\t\t\t: `Expected trace to satisfy formula, but got verdict: ${result.verdict}\\n${result.report?.summary ?? \"\"}`,\n\t\t\t};\n\t\t},\n\n\t\ttoViolate<TEvent>(received: TEvent[], formula: FormulaExpr, runtime: MonitorRuntime<TEvent>) {\n\t\t\tconst result = runOracle(formula, runtime, received);\n\t\t\tconst pass = result.verdict === \"violated\";\n\t\t\treturn {\n\t\t\t\tpass,\n\t\t\t\tmessage: () =>\n\t\t\t\t\tpass\n\t\t\t\t\t\t? \"Expected trace NOT to violate formula, but it did\"\n\t\t\t\t\t\t: `Expected trace to violate formula, but got verdict: ${result.verdict}`,\n\t\t\t};\n\t\t},\n\t};\n}\n","import { expect } from \"vitest\";\nimport type { FormulaExpr } from \"../core/formula-expr.js\";\nimport type { MonitorRuntime } from \"../core/runtime.js\";\nimport { createMatchers } from \"./matchers.js\";\n\ndeclare module \"vitest\" {\n\tinterface CustomMatchers<R> {\n\t\ttoSatisfy<TEvent>(formula: FormulaExpr, runtime: MonitorRuntime<TEvent>): R;\n\t\ttoViolate<TEvent>(formula: FormulaExpr, runtime: MonitorRuntime<TEvent>): R;\n\t}\n}\n\nexport function installMatchers(): void {\n\texpect.extend(createMatchers());\n}\n"],"mappings":";;;;;;;;AASO,SAAS,iBAAiB;AAChC,SAAO;AAAA,IACN,UAAkB,UAAoB,SAAsB,SAAiC;AAC5F,YAAM,SAAS,UAAU,SAAS,SAAS,QAAQ;AACnD,YAAM,OAAO,OAAO,YAAY;AAChC,aAAO;AAAA,QACN;AAAA,QACA,SAAS,MACR,OACG,sDACA,uDAAuD,OAAO,OAAO;AAAA,EAAK,OAAO,QAAQ,WAAW,EAAE;AAAA,MAC3G;AAAA,IACD;AAAA,IAEA,UAAkB,UAAoB,SAAsB,SAAiC;AAC5F,YAAM,SAAS,UAAU,SAAS,SAAS,QAAQ;AACnD,YAAM,OAAO,OAAO,YAAY;AAChC,aAAO;AAAA,QACN;AAAA,QACA,SAAS,MACR,OACG,sDACA,uDAAuD,OAAO,OAAO;AAAA,MAC1E;AAAA,IACD;AAAA,EACD;AACD;;;ACnCA,SAAS,cAAc;AAYhB,SAAS,kBAAwB;AACvC,SAAO,OAAO,eAAe,CAAC;AAC/B;","names":[]}
|
package/package.json
ADDED
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@atsumell/trace-weave",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Finite-trace temporal test oracle framework based on LTLf",
|
|
5
|
+
"repository": {
|
|
6
|
+
"type": "git",
|
|
7
|
+
"url": "git+https://github.com/Atsumell/trace-weave.git"
|
|
8
|
+
},
|
|
9
|
+
"bugs": {
|
|
10
|
+
"url": "https://github.com/Atsumell/trace-weave/issues"
|
|
11
|
+
},
|
|
12
|
+
"homepage": "https://github.com/Atsumell/trace-weave#readme",
|
|
13
|
+
"publishConfig": {
|
|
14
|
+
"access": "public"
|
|
15
|
+
},
|
|
16
|
+
"type": "module",
|
|
17
|
+
"exports": {
|
|
18
|
+
"./core": {
|
|
19
|
+
"import": "./dist/core/index.js",
|
|
20
|
+
"types": "./dist/core/index.d.ts"
|
|
21
|
+
},
|
|
22
|
+
"./builder": {
|
|
23
|
+
"import": "./dist/builder/index.js",
|
|
24
|
+
"types": "./dist/builder/index.d.ts"
|
|
25
|
+
},
|
|
26
|
+
"./compiler": {
|
|
27
|
+
"import": "./dist/compiler/index.js",
|
|
28
|
+
"types": "./dist/compiler/index.d.ts"
|
|
29
|
+
},
|
|
30
|
+
"./monitor": {
|
|
31
|
+
"import": "./dist/monitor/index.js",
|
|
32
|
+
"types": "./dist/monitor/index.d.ts"
|
|
33
|
+
},
|
|
34
|
+
"./patterns": {
|
|
35
|
+
"import": "./dist/patterns/index.js",
|
|
36
|
+
"types": "./dist/patterns/index.d.ts"
|
|
37
|
+
},
|
|
38
|
+
"./fast-check": {
|
|
39
|
+
"import": "./dist/fast-check/index.js",
|
|
40
|
+
"types": "./dist/fast-check/index.d.ts"
|
|
41
|
+
},
|
|
42
|
+
"./vitest": {
|
|
43
|
+
"import": "./dist/vitest/index.js",
|
|
44
|
+
"types": "./dist/vitest/index.d.ts"
|
|
45
|
+
},
|
|
46
|
+
"./ai": {
|
|
47
|
+
"import": "./dist/ai/index.js",
|
|
48
|
+
"types": "./dist/ai/index.d.ts"
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
"files": [
|
|
52
|
+
"dist"
|
|
53
|
+
],
|
|
54
|
+
"peerDependencies": {
|
|
55
|
+
"fast-check": ">=3.0.0",
|
|
56
|
+
"vitest": ">=2.0.0"
|
|
57
|
+
},
|
|
58
|
+
"peerDependenciesMeta": {
|
|
59
|
+
"fast-check": {
|
|
60
|
+
"optional": true
|
|
61
|
+
},
|
|
62
|
+
"vitest": {
|
|
63
|
+
"optional": true
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
"devDependencies": {
|
|
67
|
+
"@biomejs/biome": "^1.9.0",
|
|
68
|
+
"@vitest/coverage-v8": "^4.1.3",
|
|
69
|
+
"fast-check": "^3.23.0",
|
|
70
|
+
"tsup": "^8.3.0",
|
|
71
|
+
"typescript": "^5.7.0",
|
|
72
|
+
"vite": "^6.4.2",
|
|
73
|
+
"vitest": "^4.1.2"
|
|
74
|
+
},
|
|
75
|
+
"overrides": {
|
|
76
|
+
"picomatch": "^4.0.4",
|
|
77
|
+
"vite": "^6.4.2"
|
|
78
|
+
},
|
|
79
|
+
"engines": {
|
|
80
|
+
"node": ">=20"
|
|
81
|
+
},
|
|
82
|
+
"license": "MIT",
|
|
83
|
+
"scripts": {
|
|
84
|
+
"build": "tsup",
|
|
85
|
+
"test": "vitest run",
|
|
86
|
+
"test:watch": "vitest",
|
|
87
|
+
"typecheck": "tsc --noEmit",
|
|
88
|
+
"lint": "biome check .",
|
|
89
|
+
"lint:fix": "biome check --write .",
|
|
90
|
+
"format": "biome format --write .",
|
|
91
|
+
"audit": "npm audit",
|
|
92
|
+
"skills:validate": "node ./scripts/validate-skills.mjs",
|
|
93
|
+
"pack:smoke": "node ./scripts/pack-smoke.mjs"
|
|
94
|
+
}
|
|
95
|
+
}
|