sxng-cli 1.2.2 → 1.2.3
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 +33 -0
- package/dist/claims/deterministic-checks.d.ts +46 -0
- package/dist/claims/deterministic-checks.d.ts.map +1 -0
- package/dist/claims/deterministic-checks.js +146 -0
- package/dist/claims/deterministic-checks.js.map +1 -0
- package/dist/claims/policy.d.ts +25 -0
- package/dist/claims/policy.d.ts.map +1 -0
- package/dist/claims/policy.js +168 -0
- package/dist/claims/policy.js.map +1 -0
- package/dist/claims/store.d.ts +31 -0
- package/dist/claims/store.d.ts.map +1 -0
- package/dist/claims/store.js +127 -0
- package/dist/claims/store.js.map +1 -0
- package/dist/claims/types.d.ts +93 -0
- package/dist/claims/types.d.ts.map +1 -0
- package/dist/claims/types.js +9 -0
- package/dist/claims/types.js.map +1 -0
- package/dist/commands/build-graph.d.ts +0 -0
- package/dist/commands/build-graph.d.ts.map +0 -0
- package/dist/commands/build-graph.js +0 -0
- package/dist/commands/build-graph.js.map +0 -0
- package/dist/commands/claim.d.ts +13 -0
- package/dist/commands/claim.d.ts.map +1 -0
- package/dist/commands/claim.js +121 -0
- package/dist/commands/claim.js.map +1 -0
- package/dist/commands/doc-index.d.ts +0 -0
- package/dist/commands/doc-index.d.ts.map +0 -0
- package/dist/commands/doc-index.js +0 -0
- package/dist/commands/doc-index.js.map +0 -0
- package/dist/commands/doc-search.d.ts +0 -0
- package/dist/commands/doc-search.d.ts.map +0 -0
- package/dist/commands/doc-search.js +0 -0
- package/dist/commands/doc-search.js.map +0 -0
- package/dist/commands/evidence.d.ts +21 -0
- package/dist/commands/evidence.d.ts.map +1 -0
- package/dist/commands/evidence.js +187 -0
- package/dist/commands/evidence.js.map +1 -0
- package/dist/commands/extract.d.ts +0 -0
- package/dist/commands/extract.d.ts.map +0 -0
- package/dist/commands/extract.js +0 -0
- package/dist/commands/extract.js.map +0 -0
- package/dist/commands/graph-add.d.ts +0 -0
- package/dist/commands/graph-add.d.ts.map +0 -0
- package/dist/commands/graph-add.d.ts.sync-conflict-20260629-232900-2SGIW5T.map +0 -0
- package/dist/commands/graph-add.js +0 -0
- package/dist/commands/graph-add.js.map +0 -0
- package/dist/commands/graph-add.js.sync-conflict-20260629-232916-2SGIW5T.map +0 -0
- package/dist/commands/graph-add.sync-conflict-20260629-232853-2SGIW5T.js +0 -0
- package/dist/commands/graph-drill.d.ts +0 -0
- package/dist/commands/graph-drill.d.ts.map +0 -0
- package/dist/commands/graph-drill.js +0 -0
- package/dist/commands/graph-drill.js.map +0 -0
- package/dist/commands/graph-explore.d.ts +0 -0
- package/dist/commands/graph-explore.d.ts.map +0 -0
- package/dist/commands/graph-explore.js +0 -0
- package/dist/commands/graph-explore.js.map +0 -0
- package/dist/commands/graph-obfuscate.d.ts +0 -0
- package/dist/commands/graph-obfuscate.d.ts.map +0 -0
- package/dist/commands/graph-obfuscate.js +0 -0
- package/dist/commands/graph-obfuscate.js.map +0 -0
- package/dist/commands/graph-search.d.ts +0 -0
- package/dist/commands/graph-search.d.ts.map +0 -0
- package/dist/commands/graph-search.js +0 -0
- package/dist/commands/graph-search.js.map +0 -0
- package/dist/commands/graph-traverse.d.ts +0 -0
- package/dist/commands/graph-traverse.d.ts.map +0 -0
- package/dist/commands/graph-traverse.js +0 -0
- package/dist/commands/graph-traverse.js.map +0 -0
- package/dist/commands/query-graph.d.ts +0 -0
- package/dist/commands/query-graph.d.ts.map +0 -0
- package/dist/commands/query-graph.js +0 -0
- package/dist/commands/query-graph.js.map +0 -0
- package/dist/commands/raw.d.ts +0 -0
- package/dist/commands/raw.d.ts.map +0 -0
- package/dist/commands/raw.js +0 -0
- package/dist/commands/raw.js.map +0 -0
- package/dist/commands/results-add.d.ts +0 -0
- package/dist/commands/results-add.d.ts.map +0 -0
- package/dist/commands/results-add.js +0 -0
- package/dist/commands/results-add.js.map +0 -0
- package/dist/commands/review.d.ts +12 -0
- package/dist/commands/review.d.ts.map +1 -0
- package/dist/commands/review.js +113 -0
- package/dist/commands/review.js.map +1 -0
- package/dist/commands/session.d.ts +0 -0
- package/dist/commands/session.d.ts.map +0 -0
- package/dist/commands/session.js +0 -0
- package/dist/commands/session.js.map +0 -0
- package/dist/commands/verdict.d.ts +9 -0
- package/dist/commands/verdict.d.ts.map +1 -0
- package/dist/commands/verdict.js +29 -0
- package/dist/commands/verdict.js.map +1 -0
- package/dist/config.d.ts +0 -0
- package/dist/config.d.ts.map +0 -0
- package/dist/config.js +0 -0
- package/dist/config.js.map +0 -0
- package/dist/deep/co-occurrence.d.ts +0 -0
- package/dist/deep/co-occurrence.d.ts.map +0 -0
- package/dist/deep/co-occurrence.js +0 -0
- package/dist/deep/co-occurrence.js.map +0 -0
- package/dist/deep/dedupe.d.ts +0 -0
- package/dist/deep/dedupe.d.ts.map +0 -0
- package/dist/deep/dedupe.js +0 -0
- package/dist/deep/dedupe.js.map +0 -0
- package/dist/deep/degree-utils.d.ts +0 -0
- package/dist/deep/degree-utils.d.ts.map +0 -0
- package/dist/deep/degree-utils.js +0 -0
- package/dist/deep/degree-utils.js.map +0 -0
- package/dist/deep/extractor.d.sync-conflict-20260629-232902-2SGIW5T.ts +0 -0
- package/dist/deep/extractor.d.ts +0 -0
- package/dist/deep/extractor.d.ts.map +0 -0
- package/dist/deep/extractor.d.ts.sync-conflict-20260629-232921-2SGIW5T.map +0 -0
- package/dist/deep/extractor.js +0 -0
- package/dist/deep/extractor.js.map +0 -0
- package/dist/deep/extractor.js.sync-conflict-20260629-232921-2SGIW5T.map +0 -0
- package/dist/deep/extractor.sync-conflict-20260629-232903-2SGIW5T.js +0 -0
- package/dist/deep/graph-explore.d.ts +0 -0
- package/dist/deep/graph-explore.d.ts.map +0 -0
- package/dist/deep/graph-explore.js +0 -0
- package/dist/deep/graph-explore.js.map +0 -0
- package/dist/deep/graph-obfuscate.d.ts +0 -0
- package/dist/deep/graph-obfuscate.d.ts.map +0 -0
- package/dist/deep/graph-obfuscate.js +0 -0
- package/dist/deep/graph-obfuscate.js.map +0 -0
- package/dist/deep/graph-preprocess.d.ts +0 -0
- package/dist/deep/graph-preprocess.d.ts.map +0 -0
- package/dist/deep/graph-preprocess.js +0 -0
- package/dist/deep/graph-preprocess.js.map +0 -0
- package/dist/deep/graph-sampling.d.ts +0 -0
- package/dist/deep/graph-sampling.d.ts.map +0 -0
- package/dist/deep/graph-sampling.js +0 -0
- package/dist/deep/graph-sampling.js.map +0 -0
- package/dist/deep/graph.d.sync-conflict-20260629-232917-2SGIW5T.ts +0 -0
- package/dist/deep/graph.d.ts +0 -0
- package/dist/deep/graph.d.ts.map +0 -0
- package/dist/deep/graph.d.ts.sync-conflict-20260629-232911-2SGIW5T.map +0 -0
- package/dist/deep/graph.js +0 -0
- package/dist/deep/graph.js.map +0 -0
- package/dist/deep/graph.js.sync-conflict-20260629-232855-2SGIW5T.map +0 -0
- package/dist/deep/graph.sync-conflict-20260629-232907-2SGIW5T.js +0 -0
- package/dist/deep/index.d.ts +0 -0
- package/dist/deep/index.d.ts.map +0 -0
- package/dist/deep/index.js +0 -0
- package/dist/deep/index.js.map +0 -0
- package/dist/deep/iteration-data.d.ts +0 -0
- package/dist/deep/iteration-data.d.ts.map +0 -0
- package/dist/deep/iteration-data.js +0 -0
- package/dist/deep/iteration-data.js.map +0 -0
- package/dist/deep/keywords.d.ts +0 -0
- package/dist/deep/keywords.d.ts.map +0 -0
- package/dist/deep/keywords.js +0 -0
- package/dist/deep/keywords.js.map +0 -0
- package/dist/deep/local-doc/indexer.d.ts +0 -0
- package/dist/deep/local-doc/indexer.d.ts.map +0 -0
- package/dist/deep/local-doc/indexer.js +0 -0
- package/dist/deep/local-doc/indexer.js.map +0 -0
- package/dist/deep/local-doc/scanner.d.ts +0 -0
- package/dist/deep/local-doc/scanner.d.ts.map +0 -0
- package/dist/deep/local-doc/scanner.js +0 -0
- package/dist/deep/local-doc/scanner.js.map +0 -0
- package/dist/deep/local-doc/searcher.d.ts +0 -0
- package/dist/deep/local-doc/searcher.d.ts.map +0 -0
- package/dist/deep/local-doc/searcher.js +0 -0
- package/dist/deep/local-doc/searcher.js.map +0 -0
- package/dist/deep/local-doc/types.d.ts +0 -0
- package/dist/deep/local-doc/types.d.ts.map +0 -0
- package/dist/deep/local-doc/types.js +0 -0
- package/dist/deep/local-doc/types.js.map +0 -0
- package/dist/deep/path-extraction.d.ts +0 -0
- package/dist/deep/path-extraction.d.ts.map +0 -0
- package/dist/deep/path-extraction.js +0 -0
- package/dist/deep/path-extraction.js.map +0 -0
- package/dist/deep/quality-assess.d.ts +0 -0
- package/dist/deep/quality-assess.d.ts.map +0 -0
- package/dist/deep/quality-assess.js +0 -0
- package/dist/deep/quality-assess.js.map +0 -0
- package/dist/deep/query-redundancy.d.ts +0 -0
- package/dist/deep/query-redundancy.d.ts.map +0 -0
- package/dist/deep/query-redundancy.js +0 -0
- package/dist/deep/query-redundancy.js.map +0 -0
- package/dist/deep/query-suggest.d.ts +0 -0
- package/dist/deep/query-suggest.d.ts.map +0 -0
- package/dist/deep/query-suggest.js +0 -0
- package/dist/deep/query-suggest.js.map +0 -0
- package/dist/deep/recovery-analysis.d.ts +0 -0
- package/dist/deep/recovery-analysis.d.ts.map +0 -0
- package/dist/deep/recovery-analysis.js +0 -0
- package/dist/deep/recovery-analysis.js.map +0 -0
- package/dist/deep/rrf.d.ts +0 -0
- package/dist/deep/rrf.d.ts.map +0 -0
- package/dist/deep/rrf.js +0 -0
- package/dist/deep/rrf.js.map +0 -0
- package/dist/deep/search-strategy.d.ts +0 -0
- package/dist/deep/search-strategy.d.ts.map +0 -0
- package/dist/deep/search-strategy.js +0 -0
- package/dist/deep/search-strategy.js.map +0 -0
- package/dist/deep/session.d.sync-conflict-20260629-232917-2SGIW5T.ts +0 -0
- package/dist/deep/session.d.ts +2 -0
- package/dist/deep/session.d.ts.map +1 -1
- package/dist/deep/session.d.ts.sync-conflict-20260629-232921-2SGIW5T.map +0 -0
- package/dist/deep/session.js +0 -0
- package/dist/deep/session.js.map +1 -1
- package/dist/deep/session.js.sync-conflict-20260629-232854-2SGIW5T.map +0 -0
- package/dist/deep/simhash.d.ts +0 -0
- package/dist/deep/simhash.d.ts.map +0 -0
- package/dist/deep/simhash.js +0 -0
- package/dist/deep/simhash.js.map +0 -0
- package/dist/deep/tfidf.d.ts +0 -0
- package/dist/deep/tfidf.d.ts.map +0 -0
- package/dist/deep/tfidf.js +0 -0
- package/dist/deep/tfidf.js.map +0 -0
- package/dist/index.d.ts +0 -0
- package/dist/index.d.ts.map +0 -0
- package/dist/index.js +0 -0
- package/dist/index.js.map +0 -0
- package/dist/init.d.ts +0 -0
- package/dist/init.d.ts.map +0 -0
- package/dist/init.js +0 -0
- package/dist/init.js.map +0 -0
- package/dist/protocol.d.ts +0 -0
- package/dist/protocol.d.ts.map +0 -0
- package/dist/protocol.js +0 -0
- package/dist/protocol.js.map +0 -0
- package/dist/runCli.d.ts +0 -0
- package/dist/runCli.d.ts.map +1 -1
- package/dist/runCli.d.ts.sync-conflict-20260629-232854-2SGIW5T.map +0 -0
- package/dist/runCli.js +125 -0
- package/dist/runCli.js.map +1 -1
- package/dist/runCli.js.sync-conflict-20260629-232857-2SGIW5T.map +0 -0
- package/dist/runCli.sync-conflict-20260629-232915-2SGIW5T.js +0 -0
- package/dist/runCli.sync-conflict-20260629-233530-JAULAPO.d.ts +0 -0
- package/dist/runCli.sync-conflict-20260629-233530-JAULAPO.d.ts.map +0 -0
- package/dist/runCli.sync-conflict-20260629-233530-JAULAPO.js +0 -0
- package/dist/runCli.sync-conflict-20260629-233530-JAULAPO.js.map +0 -0
- package/dist/service.d.ts +0 -0
- package/dist/service.d.ts.map +0 -0
- package/dist/service.js +0 -0
- package/dist/service.js.map +0 -0
- package/package.json +2 -2
- package/sxng.config.example.json +0 -0
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Claim—Evidence—Review types for automatic audit pipeline.
|
|
3
|
+
*
|
|
4
|
+
* All field names use camelCase per project convention.
|
|
5
|
+
* String literal values (status, stance, decision) use lower_case
|
|
6
|
+
* to match existing SessionResult.status pattern.
|
|
7
|
+
*/
|
|
8
|
+
export interface Claim {
|
|
9
|
+
/** Assigned by CLI: cl_<seq>, auto-increment per session */
|
|
10
|
+
id: string;
|
|
11
|
+
/** Raw claim text */
|
|
12
|
+
text: string;
|
|
13
|
+
/** Semantic decomposition (provided by Agent, CLI does not validate) */
|
|
14
|
+
subject?: string;
|
|
15
|
+
predicate?: string;
|
|
16
|
+
object?: string;
|
|
17
|
+
/** Time constraint, e.g. "2025-06", "Q3 2025" */
|
|
18
|
+
time?: string;
|
|
19
|
+
/** Risk classification (Agent-assigned) */
|
|
20
|
+
riskLevel: 'low' | 'medium' | 'high';
|
|
21
|
+
/**
|
|
22
|
+
* Lifecycle status
|
|
23
|
+
* - pending: submitted, no evidence yet
|
|
24
|
+
* - verifying: has EvidenceSpan(s), awaiting policy aggregation
|
|
25
|
+
* - reviewed: policy aggregation complete
|
|
26
|
+
*/
|
|
27
|
+
status: 'pending' | 'verifying' | 'reviewed';
|
|
28
|
+
/** Owning session directory */
|
|
29
|
+
sessionDir: string;
|
|
30
|
+
/** Creation timestamp */
|
|
31
|
+
createdAt: number;
|
|
32
|
+
}
|
|
33
|
+
export interface EvidenceSpan {
|
|
34
|
+
id: string;
|
|
35
|
+
claimId: string;
|
|
36
|
+
/** Approved result URL this evidence points to */
|
|
37
|
+
resultUrl: string;
|
|
38
|
+
/** Verbatim quote from source */
|
|
39
|
+
quote: string;
|
|
40
|
+
/** Offset in UTF-16 code units (JS .slice() convention) */
|
|
41
|
+
charStart: number;
|
|
42
|
+
charEnd: number;
|
|
43
|
+
/** SHA256 hex digest of the exact quote slice */
|
|
44
|
+
contentHash: string;
|
|
45
|
+
/** Retrieval timestamp */
|
|
46
|
+
retrievedAt: number;
|
|
47
|
+
/** Source publish date (inherited from SessionResult.publishedDate) */
|
|
48
|
+
publishedDate?: string;
|
|
49
|
+
/** Source author / site name (set dynamically by mergeExtractedContent) */
|
|
50
|
+
author?: string;
|
|
51
|
+
siteName?: string;
|
|
52
|
+
/**
|
|
53
|
+
* Source independence cluster ID.
|
|
54
|
+
* null on write; computed on-demand during policy-aggregate.
|
|
55
|
+
* Derived from: domain + byline + content SimHash → SHA256 → 16 hex chars.
|
|
56
|
+
*/
|
|
57
|
+
sourceClusterId?: string;
|
|
58
|
+
}
|
|
59
|
+
export interface Verdict {
|
|
60
|
+
id: string;
|
|
61
|
+
claimId: string;
|
|
62
|
+
evidenceIds: string[];
|
|
63
|
+
stance: 'support' | 'refute' | 'insufficient';
|
|
64
|
+
confidence?: number;
|
|
65
|
+
reason: string;
|
|
66
|
+
createdAt: number;
|
|
67
|
+
}
|
|
68
|
+
export type ReviewStatus = 'approved' | 'needsReview' | 'rejected';
|
|
69
|
+
export interface ReviewChecks {
|
|
70
|
+
sourceIndependent: boolean;
|
|
71
|
+
hasRefute: boolean;
|
|
72
|
+
allSupport: boolean;
|
|
73
|
+
}
|
|
74
|
+
export interface ReviewConflict {
|
|
75
|
+
summary: string;
|
|
76
|
+
supporting: string[];
|
|
77
|
+
refuting: string[];
|
|
78
|
+
}
|
|
79
|
+
export interface Review {
|
|
80
|
+
claimId: string;
|
|
81
|
+
decision: ReviewStatus;
|
|
82
|
+
autoPass: boolean;
|
|
83
|
+
/** Deterministic check results */
|
|
84
|
+
checks: ReviewChecks;
|
|
85
|
+
/** Conflict info (populated when refute exists) */
|
|
86
|
+
conflict?: ReviewConflict;
|
|
87
|
+
/** Matched rule name */
|
|
88
|
+
matchedRule: string;
|
|
89
|
+
/** Reviewer (always "agent" for now) */
|
|
90
|
+
reviewer: string;
|
|
91
|
+
reviewedAt: number;
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/claims/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,MAAM,WAAW,KAAK;IACpB,4DAA4D;IAC5D,EAAE,EAAE,MAAM,CAAC;IAEX,qBAAqB;IACrB,IAAI,EAAE,MAAM,CAAC;IAEb,wEAAwE;IACxE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,iDAAiD;IACjD,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,2CAA2C;IAC3C,SAAS,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IAErC;;;;;OAKG;IACH,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,UAAU,CAAC;IAE7C,+BAA+B;IAC/B,UAAU,EAAE,MAAM,CAAC;IAEnB,yBAAyB;IACzB,SAAS,EAAE,MAAM,CAAC;CACnB;AAID,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAEhB,kDAAkD;IAClD,SAAS,EAAE,MAAM,CAAC;IAElB,iCAAiC;IACjC,KAAK,EAAE,MAAM,CAAC;IAEd,2DAA2D;IAC3D,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAEhB,iDAAiD;IACjD,WAAW,EAAE,MAAM,CAAC;IAEpB,0BAA0B;IAC1B,WAAW,EAAE,MAAM,CAAC;IAEpB,uEAAuE;IACvE,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,2EAA2E;IAC3E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAID,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,cAAc,CAAC;IAC9C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAID,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,aAAa,GAAG,UAAU,CAAC;AAEnE,MAAM,WAAW,YAAY;IAC3B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,MAAM;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,YAAY,CAAC;IACvB,QAAQ,EAAE,OAAO,CAAC;IAElB,kCAAkC;IAClC,MAAM,EAAE,YAAY,CAAC;IAErB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,cAAc,CAAC;IAE1B,wBAAwB;IACxB,WAAW,EAAE,MAAM,CAAC;IAEpB,wCAAwC;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Claim—Evidence—Review types for automatic audit pipeline.
|
|
3
|
+
*
|
|
4
|
+
* All field names use camelCase per project convention.
|
|
5
|
+
* String literal values (status, stance, decision) use lower_case
|
|
6
|
+
* to match existing SessionResult.status pattern.
|
|
7
|
+
*/
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/claims/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* claim-add / claim-list — Claim subcommands for the review pipeline.
|
|
3
|
+
*/
|
|
4
|
+
export declare function runClaimAdd(session: string, options: {
|
|
5
|
+
claim?: string;
|
|
6
|
+
claims?: string;
|
|
7
|
+
format?: string;
|
|
8
|
+
}): Promise<number>;
|
|
9
|
+
export declare function runClaimList(session: string, options: {
|
|
10
|
+
status?: string;
|
|
11
|
+
format?: string;
|
|
12
|
+
}): Promise<number>;
|
|
13
|
+
//# sourceMappingURL=claim.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claim.d.ts","sourceRoot":"","sources":["../../src/commands/claim.ts"],"names":[],"mappings":"AAAA;;GAEG;AAyBH,wBAAsB,WAAW,CAC/B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE;IACP,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GACA,OAAO,CAAC,MAAM,CAAC,CA8FjB;AAED,wBAAsB,YAAY,CAChC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE;IACP,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GACA,OAAO,CAAC,MAAM,CAAC,CAuBjB"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* claim-add / claim-list — Claim subcommands for the review pipeline.
|
|
3
|
+
*/
|
|
4
|
+
import { loadClaims, saveClaims, nextClaimId, getClaimsByStatus, } from '../claims/store.js';
|
|
5
|
+
import { searchCandidates } from '../claims/deterministic-checks.js';
|
|
6
|
+
import { createSuccessEnvelope, createErrorEnvelope } from '../protocol.js';
|
|
7
|
+
import { resolveSessionPath } from '../deep/session.js';
|
|
8
|
+
export async function runClaimAdd(session, options) {
|
|
9
|
+
const sessionDir = resolveSessionPath(session);
|
|
10
|
+
// Parse input
|
|
11
|
+
let inputs = [];
|
|
12
|
+
if (options.claims) {
|
|
13
|
+
try {
|
|
14
|
+
const parsed = JSON.parse(options.claims);
|
|
15
|
+
if (!Array.isArray(parsed)) {
|
|
16
|
+
console.log(JSON.stringify(createErrorEnvelope('INVALID_CLAIMS', '--claims must be a JSON array', { hint: 'Example: --claims \'[{"text":"..."}]\'' }), null, 2));
|
|
17
|
+
return 1;
|
|
18
|
+
}
|
|
19
|
+
inputs = parsed;
|
|
20
|
+
}
|
|
21
|
+
catch {
|
|
22
|
+
console.log(JSON.stringify(createErrorEnvelope('INVALID_JSON', 'Failed to parse --claims JSON', { hint: 'Ensure valid JSON array' }), null, 2));
|
|
23
|
+
return 1;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
else if (options.claim) {
|
|
27
|
+
try {
|
|
28
|
+
const parsed = JSON.parse(options.claim);
|
|
29
|
+
inputs = [parsed];
|
|
30
|
+
}
|
|
31
|
+
catch {
|
|
32
|
+
console.log(JSON.stringify(createErrorEnvelope('INVALID_JSON', 'Failed to parse --claim JSON', { hint: 'Ensure valid JSON object' }), null, 2));
|
|
33
|
+
return 1;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
console.log(JSON.stringify(createErrorEnvelope('MISSING_CLAIM', 'Provide either --claim or --claims', { hint: 'Use: sxng claim-add <session> --claim \'{"text":"..."}\'' }), null, 2));
|
|
38
|
+
return 1;
|
|
39
|
+
}
|
|
40
|
+
// Validate required fields
|
|
41
|
+
for (let i = 0; i < inputs.length; i++) {
|
|
42
|
+
if (!inputs[i].text || typeof inputs[i].text !== 'string') {
|
|
43
|
+
console.log(JSON.stringify(createErrorEnvelope('MISSING_TEXT', `Entry ${i} is missing required field "text"`), null, 2));
|
|
44
|
+
return 1;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
const now = Date.now();
|
|
48
|
+
const newClaims = [];
|
|
49
|
+
const candidates = {};
|
|
50
|
+
for (const input of inputs) {
|
|
51
|
+
const id = nextClaimId(sessionDir);
|
|
52
|
+
const claim = {
|
|
53
|
+
id,
|
|
54
|
+
text: input.text,
|
|
55
|
+
subject: input.subject,
|
|
56
|
+
predicate: input.predicate,
|
|
57
|
+
object: input.object,
|
|
58
|
+
time: input.time,
|
|
59
|
+
riskLevel: input.riskLevel || 'medium',
|
|
60
|
+
status: 'pending',
|
|
61
|
+
sessionDir,
|
|
62
|
+
createdAt: now,
|
|
63
|
+
};
|
|
64
|
+
newClaims.push(claim);
|
|
65
|
+
// Auto-trigger evidence search
|
|
66
|
+
candidates[id] = searchCandidates(sessionDir, claim.text);
|
|
67
|
+
}
|
|
68
|
+
// Append to existing claims
|
|
69
|
+
const existing = loadClaims(sessionDir);
|
|
70
|
+
saveClaims(sessionDir, [...existing, ...newClaims]);
|
|
71
|
+
const result = {
|
|
72
|
+
claims: newClaims.map(c => ({ id: c.id, text: c.text, status: c.status })),
|
|
73
|
+
candidates,
|
|
74
|
+
};
|
|
75
|
+
const outputFormat = options.format || 'json';
|
|
76
|
+
if (outputFormat === 'md') {
|
|
77
|
+
console.log('## Claim-Add Results\n');
|
|
78
|
+
for (const c of newClaims) {
|
|
79
|
+
console.log(`**${c.id}**: ${c.text}`);
|
|
80
|
+
console.log(`- Status: ${c.status}, Risk: ${c.riskLevel}`);
|
|
81
|
+
const cs = candidates[c.id] || [];
|
|
82
|
+
if (cs.length > 0) {
|
|
83
|
+
console.log(`- Candidates: ${cs.length} found`);
|
|
84
|
+
for (const cand of cs) {
|
|
85
|
+
console.log(` - [${cand.domain}] ${cand.quote.slice(0, 80)}...`);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
console.log('- Candidates: none');
|
|
90
|
+
}
|
|
91
|
+
console.log('');
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
console.log(JSON.stringify(createSuccessEnvelope(result), null, 2));
|
|
96
|
+
}
|
|
97
|
+
return 0;
|
|
98
|
+
}
|
|
99
|
+
export async function runClaimList(session, options) {
|
|
100
|
+
const sessionDir = resolveSessionPath(session);
|
|
101
|
+
const statusFilter = options.status;
|
|
102
|
+
const claims = getClaimsByStatus(sessionDir, statusFilter);
|
|
103
|
+
const outputFormat = options.format || 'json';
|
|
104
|
+
if (outputFormat === 'md') {
|
|
105
|
+
if (claims.length === 0) {
|
|
106
|
+
console.log('No claims found.');
|
|
107
|
+
return 0;
|
|
108
|
+
}
|
|
109
|
+
console.log('## Claims\n');
|
|
110
|
+
console.log('| ID | Text | Status | Risk |');
|
|
111
|
+
console.log('|---:|------|--------|------|');
|
|
112
|
+
for (const c of claims) {
|
|
113
|
+
console.log(`| ${c.id} | ${c.text} | ${c.status} | ${c.riskLevel} |`);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
console.log(JSON.stringify(createSuccessEnvelope({ claims }), null, 2));
|
|
118
|
+
}
|
|
119
|
+
return 0;
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=claim.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claim.js","sourceRoot":"","sources":["../../src/commands/claim.ts"],"names":[],"mappings":"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"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* evidence-search / evidence-verify / evidence-list — Evidence subcommands.
|
|
3
|
+
*/
|
|
4
|
+
export declare function runEvidenceSearch(session: string, options: {
|
|
5
|
+
claimId: string;
|
|
6
|
+
format?: string;
|
|
7
|
+
}): Promise<number>;
|
|
8
|
+
export declare function runEvidenceVerify(session: string, options: {
|
|
9
|
+
claimId: string;
|
|
10
|
+
evidence: string;
|
|
11
|
+
stance: 'support' | 'refute' | 'insufficient';
|
|
12
|
+
reason: string;
|
|
13
|
+
confidence?: number;
|
|
14
|
+
complete?: boolean;
|
|
15
|
+
format?: string;
|
|
16
|
+
}): Promise<number>;
|
|
17
|
+
export declare function runEvidenceList(session: string, options: {
|
|
18
|
+
claimId: string;
|
|
19
|
+
format?: string;
|
|
20
|
+
}): Promise<number>;
|
|
21
|
+
//# sourceMappingURL=evidence.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evidence.d.ts","sourceRoot":"","sources":["../../src/commands/evidence.ts"],"names":[],"mappings":"AAAA;;GAEG;AAyBH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE;IACP,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GACA,OAAO,CAAC,MAAM,CAAC,CA+BjB;AAYD,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE;IACP,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,cAAc,CAAC;IAC9C,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GACA,OAAO,CAAC,MAAM,CAAC,CAkJjB;AAID,wBAAsB,eAAe,CACnC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE;IACP,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GACA,OAAO,CAAC,MAAM,CAAC,CAqBjB"}
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* evidence-search / evidence-verify / evidence-list — Evidence subcommands.
|
|
3
|
+
*/
|
|
4
|
+
import { loadEvidences, saveEvidences, nextEvidenceId, loadVerdicts, saveVerdicts, nextVerdictId, loadClaims, loadReviews, saveReviews, } from '../claims/store.js';
|
|
5
|
+
import { aggregateClaim } from '../claims/policy.js';
|
|
6
|
+
import { computeSourceClusterId } from '../claims/deterministic-checks.js';
|
|
7
|
+
import { resolveSessionPath, loadSessionResults } from '../deep/session.js';
|
|
8
|
+
import { createSuccessEnvelope, createErrorEnvelope } from '../protocol.js';
|
|
9
|
+
import { searchCandidates } from '../claims/deterministic-checks.js';
|
|
10
|
+
// ── evidence-search ─────────────────────────────────────────────────
|
|
11
|
+
export async function runEvidenceSearch(session, options) {
|
|
12
|
+
const sessionDir = resolveSessionPath(session);
|
|
13
|
+
// Load the claim to get its text
|
|
14
|
+
const claims = loadClaims(sessionDir);
|
|
15
|
+
const claim = claims.find(c => c.id === options.claimId);
|
|
16
|
+
if (!claim) {
|
|
17
|
+
console.log(JSON.stringify(createErrorEnvelope('CLAIM_NOT_FOUND', `Claim ${options.claimId} not found`), null, 2));
|
|
18
|
+
return 1;
|
|
19
|
+
}
|
|
20
|
+
const candidates = searchCandidates(sessionDir, claim.text);
|
|
21
|
+
const outputFormat = options.format || 'json';
|
|
22
|
+
if (outputFormat === 'md') {
|
|
23
|
+
console.log(`## Evidence Candidates for ${options.claimId}\n`);
|
|
24
|
+
if (candidates.length === 0) {
|
|
25
|
+
console.log('No candidates found.');
|
|
26
|
+
}
|
|
27
|
+
for (let i = 0; i < candidates.length; i++) {
|
|
28
|
+
const c = candidates[i];
|
|
29
|
+
console.log(`**${i + 1}.** [${c.domain}](${c.resultUrl})`);
|
|
30
|
+
console.log(` ${c.quote.slice(0, 200)}`);
|
|
31
|
+
console.log(` offset: ${c.charStart}-${c.charEnd}`);
|
|
32
|
+
console.log('');
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
console.log(JSON.stringify(createSuccessEnvelope({ candidates }), null, 2));
|
|
37
|
+
}
|
|
38
|
+
return 0;
|
|
39
|
+
}
|
|
40
|
+
export async function runEvidenceVerify(session, options) {
|
|
41
|
+
const sessionDir = resolveSessionPath(session);
|
|
42
|
+
// Parse evidence input
|
|
43
|
+
let evInput;
|
|
44
|
+
try {
|
|
45
|
+
evInput = JSON.parse(options.evidence);
|
|
46
|
+
}
|
|
47
|
+
catch {
|
|
48
|
+
console.log(JSON.stringify(createErrorEnvelope('INVALID_EVIDENCE', 'Failed to parse --evidence JSON'), null, 2));
|
|
49
|
+
return 1;
|
|
50
|
+
}
|
|
51
|
+
// Validate required fields
|
|
52
|
+
if (!evInput.resultUrl || !evInput.quote) {
|
|
53
|
+
console.log(JSON.stringify(createErrorEnvelope('MISSING_FIELDS', '--evidence must contain resultUrl and quote'), null, 2));
|
|
54
|
+
return 1;
|
|
55
|
+
}
|
|
56
|
+
// Verify the claim exists
|
|
57
|
+
const claims = loadClaims(sessionDir);
|
|
58
|
+
const claim = claims.find(c => c.id === options.claimId);
|
|
59
|
+
if (!claim) {
|
|
60
|
+
console.log(JSON.stringify(createErrorEnvelope('CLAIM_NOT_FOUND', `Claim ${options.claimId} not found`), null, 2));
|
|
61
|
+
return 1;
|
|
62
|
+
}
|
|
63
|
+
// Deterministic checks: anchor the evidence
|
|
64
|
+
const sessionResults = loadSessionResults(sessionDir);
|
|
65
|
+
const approvedResults = sessionResults.filter(r => r.status === 'approved');
|
|
66
|
+
const result = approvedResults.find(r => r.url === evInput.resultUrl);
|
|
67
|
+
if (!result) {
|
|
68
|
+
console.log(JSON.stringify(createErrorEnvelope('URL_NOT_APPROVED', `Result URL ${evInput.resultUrl} is not in approved results`), null, 2));
|
|
69
|
+
return 1;
|
|
70
|
+
}
|
|
71
|
+
const content = result.content || '';
|
|
72
|
+
if (evInput.charEnd > content.length || evInput.charStart < 0) {
|
|
73
|
+
console.log(JSON.stringify(createErrorEnvelope('OFFSET_OUT_OF_RANGE', `charStart/charEnd out of range (content length: ${content.length})`), null, 2));
|
|
74
|
+
return 1;
|
|
75
|
+
}
|
|
76
|
+
// Verify content hash
|
|
77
|
+
const { createHash } = await import('crypto');
|
|
78
|
+
const slice = content.slice(evInput.charStart, evInput.charEnd);
|
|
79
|
+
const computedHash = createHash('sha256').update(slice).digest('hex');
|
|
80
|
+
const providedHash = evInput.contentHash || computedHash;
|
|
81
|
+
if (providedHash !== computedHash) {
|
|
82
|
+
console.log(JSON.stringify(createErrorEnvelope('HASH_MISMATCH', 'Content hash mismatch — quote does not match source'), null, 2));
|
|
83
|
+
return 1;
|
|
84
|
+
}
|
|
85
|
+
// All checks passed — write evidence
|
|
86
|
+
const now = Date.now();
|
|
87
|
+
const evId = nextEvidenceId(sessionDir);
|
|
88
|
+
const evidence = {
|
|
89
|
+
id: evId,
|
|
90
|
+
claimId: options.claimId,
|
|
91
|
+
resultUrl: evInput.resultUrl,
|
|
92
|
+
quote: evInput.quote,
|
|
93
|
+
charStart: evInput.charStart,
|
|
94
|
+
charEnd: evInput.charEnd,
|
|
95
|
+
contentHash: computedHash,
|
|
96
|
+
retrievedAt: now,
|
|
97
|
+
sourceClusterId: undefined, // computed during policy-aggregate
|
|
98
|
+
};
|
|
99
|
+
const existingEvs = loadEvidences(sessionDir);
|
|
100
|
+
saveEvidences(sessionDir, [...existingEvs, evidence]);
|
|
101
|
+
// Write verdict alongside evidence
|
|
102
|
+
const vdId = nextVerdictId(sessionDir);
|
|
103
|
+
const verdict = {
|
|
104
|
+
id: vdId,
|
|
105
|
+
claimId: options.claimId,
|
|
106
|
+
evidenceIds: [evId],
|
|
107
|
+
stance: options.stance,
|
|
108
|
+
confidence: options.confidence,
|
|
109
|
+
reason: options.reason,
|
|
110
|
+
createdAt: now,
|
|
111
|
+
};
|
|
112
|
+
const existingVds = loadVerdicts(sessionDir);
|
|
113
|
+
saveVerdicts(sessionDir, [...existingVds, verdict]);
|
|
114
|
+
// Update claim status to verifying
|
|
115
|
+
claim.status = 'verifying';
|
|
116
|
+
const { saveClaims } = await import('../claims/store.js');
|
|
117
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
118
|
+
saveClaims(sessionDir, claims);
|
|
119
|
+
// If --complete, trigger policy aggregation
|
|
120
|
+
let review = undefined;
|
|
121
|
+
if (options.complete) {
|
|
122
|
+
// Gather all evidence and verdicts for this claim
|
|
123
|
+
const allEvs = loadEvidences(sessionDir).filter(e => e.claimId === options.claimId);
|
|
124
|
+
const allVds = loadVerdicts(sessionDir).filter(v => v.claimId === options.claimId);
|
|
125
|
+
// Compute source cluster IDs on demand
|
|
126
|
+
for (const ev of allEvs) {
|
|
127
|
+
if (!ev.sourceClusterId) {
|
|
128
|
+
ev.sourceClusterId = computeSourceClusterId(ev);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
const input = {
|
|
132
|
+
claimId: options.claimId,
|
|
133
|
+
riskLevel: claim.riskLevel,
|
|
134
|
+
verdicts: allVds,
|
|
135
|
+
evidences: allEvs,
|
|
136
|
+
};
|
|
137
|
+
const result = aggregateClaim(input);
|
|
138
|
+
// Update claim status
|
|
139
|
+
claim.status = 'reviewed';
|
|
140
|
+
saveClaims(sessionDir, claims);
|
|
141
|
+
// Persist review
|
|
142
|
+
const existingReviews = loadReviews(sessionDir);
|
|
143
|
+
saveReviews(sessionDir, [...existingReviews, result]);
|
|
144
|
+
review = result;
|
|
145
|
+
}
|
|
146
|
+
const output = {
|
|
147
|
+
evidence: { id: evId, claimId: options.claimId },
|
|
148
|
+
verdict: { id: vdId, stance: options.stance },
|
|
149
|
+
...(review ? { review: { claimId: review.claimId, decision: review.decision, matchedRule: review.matchedRule, autoPass: review.autoPass } } : {}),
|
|
150
|
+
};
|
|
151
|
+
const outputFormat = options.format || 'json';
|
|
152
|
+
if (outputFormat === 'md') {
|
|
153
|
+
console.log('## Evidence-Verify Result\n');
|
|
154
|
+
console.log(`**Evidence**: ${evId} → ${options.claimId}`);
|
|
155
|
+
console.log(`**Verdict**: ${vdId} — ${options.stance}`);
|
|
156
|
+
if (review) {
|
|
157
|
+
console.log(`**Review**: ${review.decision} (rule: ${review.matchedRule}, autoPass: ${review.autoPass})`);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
else {
|
|
161
|
+
console.log(JSON.stringify(createSuccessEnvelope(output), null, 2));
|
|
162
|
+
}
|
|
163
|
+
return 0;
|
|
164
|
+
}
|
|
165
|
+
// ── evidence-list ───────────────────────────────────────────────────
|
|
166
|
+
export async function runEvidenceList(session, options) {
|
|
167
|
+
const sessionDir = resolveSessionPath(session);
|
|
168
|
+
const evidences = loadEvidences(sessionDir).filter(e => e.claimId === options.claimId);
|
|
169
|
+
const outputFormat = options.format || 'json';
|
|
170
|
+
if (outputFormat === 'md') {
|
|
171
|
+
if (evidences.length === 0) {
|
|
172
|
+
console.log('No evidence found for this claim.');
|
|
173
|
+
return 0;
|
|
174
|
+
}
|
|
175
|
+
console.log('## Evidence\n');
|
|
176
|
+
console.log('| ID | Source | Quote |');
|
|
177
|
+
console.log('|----|--------|-------|');
|
|
178
|
+
for (const e of evidences) {
|
|
179
|
+
console.log(`| ${e.id} | ${e.resultUrl} | ${e.quote.slice(0, 60)}... |`);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
else {
|
|
183
|
+
console.log(JSON.stringify(createSuccessEnvelope({ evidences }), null, 2));
|
|
184
|
+
}
|
|
185
|
+
return 0;
|
|
186
|
+
}
|
|
187
|
+
//# sourceMappingURL=evidence.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evidence.js","sourceRoot":"","sources":["../../src/commands/evidence.ts"],"names":[],"mappings":"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"}
|
|
File without changes
|
|
File without changes
|
package/dist/commands/extract.js
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/dist/commands/raw.d.ts
CHANGED
|
File without changes
|
|
File without changes
|
package/dist/commands/raw.js
CHANGED
|
File without changes
|
package/dist/commands/raw.js.map
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|