plainstamp 0.7.9 → 0.7.10

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/CHANGELOG.md CHANGED
@@ -16,6 +16,13 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
16
16
 
17
17
  Distribution is **npm-only**. Source remains in the operating organization's private repository; there is no public source repository host. Contact channel for issues, accuracy reports, security reports, and contribution proposals is **helpfulbutton140@agentmail.to** (see `docs/CONTRIBUTING.md`, `docs/SECURITY.md`).
18
18
 
19
+ ## [0.7.10] — 2026-05-09
20
+
21
+ ### Improved (CLI human-readable output)
22
+
23
+ - `plainstamp lookup` and `plainstamp validate` now accept `--format json|text`. Default is `json` (unchanged from previous releases — no breaking change for existing pipelines that grep / jq the output). `--format text` renders a human-readable summary: severity, jurisdiction, citation, source URL, last-verified date, and a trimmed plain-language disclosure for `lookup`; per-element confidence band and matched signals for `validate`.
24
+ - README updated to show the `--format text` example.
25
+
19
26
  ## [0.7.9] — 2026-05-09
20
27
 
21
28
  ### Improved (validate-disclosure precision)
package/README.md CHANGED
@@ -58,7 +58,14 @@ npx plainstamp coverage --format csv # machine-readable CSV
58
58
  npx plainstamp coverage --format json # full structure with rule_ids per cell
59
59
  ```
60
60
 
61
- All output is JSON. Pipe through `jq` for filtering.
61
+ Default output is JSON for piping into `jq` and other tooling. Add
62
+ `--format text` to `lookup` or `validate` for a human-readable
63
+ summary instead:
64
+
65
+ ```bash
66
+ npx plainstamp lookup --jurisdiction us-ca --channel live-chat \
67
+ --use-case b2c-customer-support --format text
68
+ ```
62
69
 
63
70
  ## MCP server
64
71
 
package/dist/cli.js CHANGED
@@ -6,19 +6,21 @@ const help = `
6
6
  plainstamp — AI disclosure compliance lookup
7
7
 
8
8
  Usage:
9
- plainstamp mcp # start MCP server (stdio)
9
+ plainstamp mcp # start MCP server (stdio)
10
10
  plainstamp list-jurisdictions
11
11
  plainstamp list-rules
12
12
  plainstamp get-rule <rule-id>
13
- plainstamp lookup --jurisdiction <id> --channel <ch> --use-case <uc>
14
- plainstamp validate --jurisdiction <id> --channel <ch> --use-case <uc> --text "<candidate disclosure>"
15
- plainstamp coverage [--format json|markdown|csv] # rule coverage matrix
13
+ plainstamp lookup --jurisdiction <id> --channel <ch> --use-case <uc> [--format json|text]
14
+ plainstamp validate --jurisdiction <id> --channel <ch> --use-case <uc> --text "<candidate>" [--format json|text]
15
+ plainstamp coverage [--format json|markdown|csv] # rule coverage matrix
16
16
 
17
17
  Channels: ${Channel.options.join(", ")}
18
18
  Use cases: ${UseCase.options.join(", ")}
19
19
 
20
- Output is JSON. This tool is informational and does not provide legal advice;
21
- every rule cites its regulator-published source for verification.
20
+ Default output is JSON for piping into jq / further tooling. Pass
21
+ --format text for a human-readable summary. This tool is informational
22
+ and does not provide legal advice; every rule cites its regulator-
23
+ published source for verification.
22
24
  `.trim();
23
25
  const subcommand = process.argv[2];
24
26
  const rest = process.argv.slice(3);
@@ -90,23 +92,35 @@ switch (subcommand) {
90
92
  jurisdiction: { type: "string" },
91
93
  channel: { type: "string" },
92
94
  "use-case": { type: "string" },
95
+ format: { type: "string" },
93
96
  },
94
97
  strict: true,
95
98
  });
96
99
  if (!values.jurisdiction || !values.channel || !values["use-case"]) {
97
- console.error("usage: plainstamp lookup --jurisdiction <id> --channel <ch> --use-case <uc>");
100
+ console.error("usage: plainstamp lookup --jurisdiction <id> --channel <ch> --use-case <uc> [--format json|text]");
98
101
  process.exit(2);
99
102
  }
100
- const results = disclosuresFor({
103
+ const query = {
101
104
  jurisdiction: values.jurisdiction,
102
105
  channel: Channel.parse(values.channel),
103
106
  use_case: UseCase.parse(values["use-case"]),
104
- });
105
- console.log(JSON.stringify({
106
- disclaimer: "Informational only. Not legal advice. Each rule cites its source.",
107
- count: results.length,
108
- results,
109
- }, null, 2));
107
+ };
108
+ const results = disclosuresFor(query);
109
+ const fmt = values.format ?? "json";
110
+ if (fmt === "text") {
111
+ console.log(formatLookupText(query, results));
112
+ }
113
+ else if (fmt === "json") {
114
+ console.log(JSON.stringify({
115
+ disclaimer: "Informational only. Not legal advice. Each rule cites its source.",
116
+ count: results.length,
117
+ results,
118
+ }, null, 2));
119
+ }
120
+ else {
121
+ console.error(`unknown --format: ${fmt}. Use json or text.`);
122
+ process.exit(2);
123
+ }
110
124
  break;
111
125
  }
112
126
  case "validate": {
@@ -117,6 +131,7 @@ switch (subcommand) {
117
131
  channel: { type: "string" },
118
132
  "use-case": { type: "string" },
119
133
  text: { type: "string" },
134
+ format: { type: "string" },
120
135
  },
121
136
  strict: true,
122
137
  });
@@ -124,7 +139,7 @@ switch (subcommand) {
124
139
  !values.channel ||
125
140
  !values["use-case"] ||
126
141
  !values.text) {
127
- console.error("usage: plainstamp validate --jurisdiction <id> --channel <ch> --use-case <uc> --text \"<candidate disclosure>\"");
142
+ console.error('usage: plainstamp validate --jurisdiction <id> --channel <ch> --use-case <uc> --text "<candidate>" [--format json|text]');
128
143
  process.exit(2);
129
144
  }
130
145
  const reports = validateDisclosureForQuery({
@@ -132,10 +147,20 @@ switch (subcommand) {
132
147
  channel: Channel.parse(values.channel),
133
148
  use_case: UseCase.parse(values["use-case"]),
134
149
  }, values.text);
135
- console.log(JSON.stringify({
136
- disclaimer: "Heuristic substring check. NOT a legal-sufficiency determination.",
137
- reports,
138
- }, null, 2));
150
+ const fmt = values.format ?? "json";
151
+ if (fmt === "text") {
152
+ console.log(formatValidateText(reports));
153
+ }
154
+ else if (fmt === "json") {
155
+ console.log(JSON.stringify({
156
+ disclaimer: "Heuristic word-boundary check. NOT a legal-sufficiency determination.",
157
+ reports,
158
+ }, null, 2));
159
+ }
160
+ else {
161
+ console.error(`unknown --format: ${fmt}. Use json or text.`);
162
+ process.exit(2);
163
+ }
139
164
  break;
140
165
  }
141
166
  default: {
@@ -144,4 +169,56 @@ switch (subcommand) {
144
169
  process.exit(2);
145
170
  }
146
171
  }
172
+ function formatLookupText(query, results) {
173
+ const lines = [];
174
+ const q = `(${query.jurisdiction}, ${query.channel}, ${query.use_case})`;
175
+ if (results.length === 0) {
176
+ lines.push(`No rules apply to ${q}.`);
177
+ lines.push("");
178
+ lines.push("Note: this is the bundled rule corpus only. Verify against current regulator-published sources for high-stakes disclosures.");
179
+ return lines.join("\n");
180
+ }
181
+ const singular = results.length === 1;
182
+ lines.push(`${results.length} rule${singular ? "" : "s"} ${singular ? "applies" : "apply"} to ${q}:`);
183
+ lines.push("");
184
+ for (const r of results) {
185
+ const sev = `[${r.rule.severity}]`.padEnd(14);
186
+ lines.push(`${sev} ${r.rule.short_title}`);
187
+ lines.push(` jurisdiction: ${r.rule.jurisdiction}`);
188
+ lines.push(` citation: ${r.rule.citation.statute}`);
189
+ lines.push(` source: ${r.rule.citation.source_url}`);
190
+ lines.push(` last verified: ${r.rule.last_verified}`);
191
+ if (r.generated_text.plain) {
192
+ const plainTrimmed = r.generated_text.plain.length > 240
193
+ ? r.generated_text.plain.slice(0, 240) + "…"
194
+ : r.generated_text.plain;
195
+ lines.push(` plain disclosure:`);
196
+ lines.push(` "${plainTrimmed}"`);
197
+ }
198
+ lines.push("");
199
+ }
200
+ lines.push("Informational only. Not legal advice. For high-stakes disclosures, verify against the cited source URL.");
201
+ return lines.join("\n");
202
+ }
203
+ function formatValidateText(reports) {
204
+ const lines = [];
205
+ if (reports.length === 0) {
206
+ lines.push("No rules apply to this query — nothing to validate. Check the --jurisdiction/--channel/--use-case combination.");
207
+ return lines.join("\n");
208
+ }
209
+ for (const r of reports) {
210
+ const status = r.passes ? "PASSES" : "MISSING ELEMENTS";
211
+ lines.push(`${r.rule_id}: ${status}`);
212
+ for (const el of r.elements) {
213
+ const conf = el.confidence.toUpperCase();
214
+ const matched = el.matched_signals.length > 0
215
+ ? `matched: ${el.matched_signals.slice(0, 5).join(", ")}${el.matched_signals.length > 5 ? "…" : ""}`
216
+ : "no matches";
217
+ lines.push(` • ${el.element_id} [${conf}] — ${matched}`);
218
+ }
219
+ lines.push("");
220
+ }
221
+ lines.push("Heuristic word-boundary check with confidence bands. NOT a legal-sufficiency determination. Medium-confidence elements warrant manual review.");
222
+ return lines.join("\n");
223
+ }
147
224
  //# sourceMappingURL=cli.js.map
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "plainstamp",
3
- "version": "0.7.9",
3
+ "version": "0.7.10",
4
4
  "description": "AI disclosure compliance assistant — generates legally-grounded AI disclosure text per (jurisdiction × channel × use-case) and tracks regulatory updates. Operated by an autonomous AI agent under KS Elevated Solutions LLC.",
5
5
  "type": "module",
6
6
  "license": "MIT",