@drbaher/draft-cli 0.8.0 → 0.8.2

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
@@ -4,6 +4,33 @@ All notable changes to this project will be documented in this file. The
4
4
  format is loosely based on [Keep a Changelog](https://keepachangelog.com/),
5
5
  and the project adheres to semantic versioning once it leaves 0.x.
6
6
 
7
+ ## 0.8.2 — 2026-05-17
8
+
9
+ ### Docs
10
+
11
+ - **Animated SVG demo embedded in README.** Self-contained
12
+ (`assets/demo.svg`, ~11 KB) — plays inline on github.com and
13
+ npmjs.com without an asciinema.org dependency. Shows
14
+ `--list-placeholders` then a `--diff` substitution against the
15
+ Common Paper Mutual NDA cover page fixture in `examples/`.
16
+ - Strictly docs + assets; no code or behavior change.
17
+
18
+ ## 0.8.1 — 2026-05-17
19
+
20
+ ### Docs
21
+
22
+ - **README refreshed for the v2 surface.** New "v2 features" section
23
+ with one-paragraph showcases for each shipped v2 capability (.docx
24
+ round-trip, typed parameters, computed placeholders, positional
25
+ addressing, `parties.json` registry, multi-document bundles,
26
+ `--from-deal` LLM inference). Command reference updated with new
27
+ flags + version annotations. Exit-code table updated with code 4
28
+ (validation / typed / computed / ref / positional) and code 5
29
+ (LLM). Intro paragraph rewritten to reflect the v2 capability
30
+ scope instead of just v1.
31
+ - No code or behavior change. v0.8.0's API surface, schema contract,
32
+ and CLI flags are unchanged. Strictly a docs publish.
33
+
7
34
  ## 0.8.0 — 2026-05-17
8
35
 
9
36
  ### Added
package/README.md CHANGED
@@ -1,62 +1,68 @@
1
+ <p align="center">
2
+ <img src="assets/icon.svg" width="120" alt="draft-cli">
3
+ </p>
4
+
1
5
  # draft-cli
2
6
 
3
- A **deterministic placeholder-filler** for legal-document templates. Reads
4
- bracketed (`[Party A]`) or mustache (`{{Party A}}`) markup, `.docx` yellow
5
- highlights, or generic-name heuristics; substitutes from CLI flags, a JSON
6
- params file, or an interactive prompt; writes a ready-to-review draft.
7
+ > Part of the contract-operations CLI suite. **draft-cli** (fill placeholders) → [**nda-review-cli**](https://github.com/DrBaher/nda-review-cli) (review, redline, negotiate) → [**docx2pdf-cli**](https://github.com/DrBaher/docx2pdf-cli) (DOCX → PDF) → [**sign-cli**](https://github.com/DrBaher/sign-cli) (signing + audit). [Showcase site](https://cli.drbaher.com/).
7
8
 
8
- Single-file Node.js. One runtime dependency (`jszip`, for `.docx`). Local-first,
9
- no telemetry, MIT-licensed. Part of the contract-operations suite (see
10
- [cli.drbaher.com](https://cli.drbaher.com)).
9
+ [![npm version](https://img.shields.io/npm/v/@drbaher/draft-cli.svg)](https://www.npmjs.com/package/@drbaher/draft-cli)
10
+ [![npm downloads](https://img.shields.io/npm/dw/@drbaher/draft-cli.svg)](https://www.npmjs.com/package/@drbaher/draft-cli)
11
+ [![CI](https://github.com/DrBaher/Draft-CLI/actions/workflows/ci.yml/badge.svg)](https://github.com/DrBaher/Draft-CLI/actions/workflows/ci.yml)
12
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
11
13
 
12
- ---
14
+ Agent-first placeholder-filler for legal-document templates. Reads bracketed (`[Party A]`) or mustache markup, `.docx` yellow highlights, or generic-name heuristics; substitutes from CLI flags, a JSON params file, a shared `parties.json` registry, or — optionally — values extracted by an LLM from a free-form deal description; writes a ready-to-review draft as text or `.docx` (round-trip, runs and styles preserved). Schema-declared placeholders can be **typed** (`date` / `money` / `party`), **computed** (date arithmetic from another placeholder), **positional** (same text disambiguated by role), and **bundled** (fill multiple templates with one set of values).
13
15
 
14
- ## What it does
16
+ **The asymmetry is the architecture**: every step is deterministic and machine-driven except the values themselves — which can come from a flag, a params file, a parties registry, or an LLM extracting them from a prose deal description that a human wrote.
15
17
 
16
- You have a template. You have a deal. You want a draft you can review and
17
- send. The middle step finding every `[Party A]`, `[Effective Date]`, and
18
- `[State of California]` and replacing them with real values — is mechanical,
19
- deterministic work that doesn't need an LLM and shouldn't need to leave your
20
- machine.
18
+ <p align="center">
19
+ <img src="assets/demo.svg" alt="draft-cli demo: list placeholders then substitute against the Common Paper NDA cover page" width="900">
20
+ </p>
21
21
 
22
- ```
23
- template-vault get nda/house-mutual | draft - \
24
- --party-a "Acme Corporation" \
25
- --party-b "Vendor Inc." \
26
- --effective-date 2026-06-01 \
27
- --output draft.md
22
+ ## Run this
23
+
24
+ ```bash
25
+ npx @drbaher/draft-cli@latest --demo
28
26
  ```
29
27
 
30
- Or via a params file:
28
+ 30 seconds, no file authoring required. Walks through a bracketed-template NDA with three placeholders, demoing the full cascade end-to-end. Or if you want to dive into a real template:
31
29
 
32
- ```
33
- draft nda/house-mutual --params deal-acme.json --output draft.md
30
+ ```bash
31
+ npm i -g @drbaher/draft-cli
32
+ draft --list-placeholders examples/cp-mutual-nda-coverpage.md
34
33
  ```
35
34
 
36
- `draft` does **only** that step. Templates come from `template-vault-cli` or
37
- any markdown / .docx / stdin source. Review and red-line happens in
38
- `nda-review-cli`. Conversion to PDF goes through `docx2pdf-cli`. Signing
39
- goes through `sign-cli`. Each tool stays small and composable.
35
+ ## Where to go next
40
36
 
41
- ---
37
+ | If you are… | Start here |
38
+ |---|---|
39
+ | **A new user** evaluating the tool | This README's [Quick start](#quick-start) and [What this gives you](#what-this-gives-you) |
40
+ | **A drafter** filling your first template | [GETTING_STARTED.md](GETTING_STARTED.md) — 10-minute walkthrough of the main flows |
41
+ | **An LLM agent** driving the CLI | [AGENTS.md](AGENTS.md) → `draft --list-placeholders --json` → [PARAM_SCHEMA.md](PARAM_SCHEMA.md) for the locked contract |
42
+ | **A schema author** declaring typed / computed / positional placeholders | [PARAM_SCHEMA.md](PARAM_SCHEMA.md) §5 |
43
+ | **A contributor** | [ARCHITECTURE.md](ARCHITECTURE.md), [CONTRIBUTING.md](CONTRIBUTING.md) |
42
44
 
43
- ## Install
45
+ Concept deep-dives live in [PARAM_SCHEMA.md](PARAM_SCHEMA.md) (the v1 + v2 contract); architecture in [ARCHITECTURE.md](ARCHITECTURE.md); FAQ in [FAQ.md](FAQ.md).
44
46
 
45
- ```sh
46
- npm install -g @drbaher/draft-cli
47
- ```
47
+ ## Quick start
48
48
 
49
- Or run without installing:
49
+ ```bash
50
+ # Install
51
+ npm i -g @drbaher/draft-cli
50
52
 
51
- ```sh
53
+ # Or run without installing
52
54
  npx @drbaher/draft-cli@latest --demo
55
+
56
+ # After install, the binary is named `draft`
57
+ draft --version
58
+ draft --demo
53
59
  ```
54
60
 
55
61
  Requires Node.js ≥ 18. Tested on Ubuntu and macOS, Node 18 / 20 / 22.
56
62
 
57
63
  ### Shell completion
58
64
 
59
- ```sh
65
+ ```bash
60
66
  # bash
61
67
  draft --completion bash >> ~/.bashrc
62
68
 
@@ -65,40 +71,22 @@ draft --completion zsh > ~/.zsh/completions/_draft
65
71
  # ensure ~/.zsh/completions is in fpath, then: autoload -U compinit && compinit
66
72
  ```
67
73
 
68
- Completes flags, the `--syntax bracket|mustache` value, `--completion bash|zsh`,
69
- and file paths for `--params`, `--output`, and `--dictionary`.
70
-
71
- ---
74
+ Completes flags, the `--syntax bracket|mustache` value, `--completion bash|zsh`, and file paths for `--params`, `--output`, `--dictionary`, `--parties`, `--bundle`, `--from-deal`.
72
75
 
73
- ## 30-second first run
76
+ ## What this gives you
74
77
 
75
- No file authoring required. The bundled demo runs end-to-end:
76
-
77
- ```sh
78
- npx @drbaher/draft-cli@latest --demo
79
- ```
80
-
81
- ```
82
- demo: substituting [Party A], [Party B], [Effective Date]
83
- # Mutual Non-Disclosure Agreement (demo)
84
-
85
- This Agreement is entered into on 2026-06-01 between Acme Corporation
86
- and Vendor Inc. (collectively, the "Parties").
87
-
88
- 1. Confidentiality. Acme Corporation and Vendor Inc. agree to keep confidential
89
- any information disclosed under this Agreement.
90
-
91
- 2. Term. This Agreement remains in effect for two years from the
92
- 2026-06-01.
93
- ```
94
-
95
- What just happened: `draft-cli` detected three bracketed placeholders
96
- (`[Party A]`, `[Party B]`, `[Effective Date]`), mapped them to the
97
- canonical keys `party_a`, `party_b`, `effective_date`, and substituted
98
- in pre-canned demo values. Real runs use your own template and your own
99
- values.
100
-
101
- ---
78
+ - **Five-tier detection cascade** — `[Title Case]` brackets / `{{mustache}}` / `.docx` highlights (yellow/green/cyan/magenta) / heuristic dictionary / optional LLM. First tier with hits wins; the rest are skipped. Deterministic through tier 4.
79
+ - **`.docx` round-trip** — read a `.docx` template, fill placeholders, write `<basename>-filled.docx` with runs/styles/paragraph-breaks preserved. T3 highlight detection works against real templates (Common Paper, YC SAFE).
80
+ - **Schema file** for canonical keys, alias phrases, defaults, required-ness, and the v2 fields below (`type`, `format`, `currency`, `computed`, `positions`). Without a schema, every detected bracketed phrase is treated as a required parameter.
81
+ - **Typed parameters** — `type: date | money | party` validates and normalizes inputs before substitution. `"01/15/2027"` → `"January 15, 2027"`; `"$5M"` → `"$5,000,000.00"`. Bad inputs exit 4 with per-key error.
82
+ - **Computed placeholders** — derive one placeholder's value from another via date arithmetic: `{ "from": "effective_date", "op": "+", "value": "2 years" }`. Cycle detection at schema parse time.
83
+ - **Positional addressing** — same placeholder text with different semantic roles, addressed by position. Validated against the YC SAFE `$[_____________] × 2` case.
84
+ - **`parties.json` registry** — declare known parties once; schemas reference `ref:parties.<key>.<field>`. Eliminates duplicating party metadata across templates.
85
+ - **Multi-document bundles** — fill multiple templates with one shared set of values: `draft --bundle deal.bundle.json --params deal.json`. Abort-all on any pre-write error.
86
+ - **LLM-from-deal inference** — `--from-deal PATH` reads a free-form deal description and asks the configured T5 provider (Anthropic / OpenAI / `DRAFT_LLM_*`) to fill the schema's parameters. CLI / `--params` still win over inferred values.
87
+ - **Composable I/O** — stdin (`-`), stdout default, `--output PATH`, `template-vault get` integration for `<category>/<name>[@version]` template refs.
88
+ - **Three modes** `draft` (substitute and emit), `--list-placeholders` (enumerate), `--validate` (completeness check). All support `--json` and `--why`.
89
+ - **Single file, stdlib + `jszip`**, no telemetry, local-first. Network only when the LLM tier is explicitly configured.
102
90
 
103
91
  ## End-to-end transcript
104
92
 
@@ -139,12 +127,9 @@ ok: 3 parameter(s) resolved
139
127
  ok
140
128
  ```
141
129
 
142
- ---
143
-
144
130
  ## Detection cascade
145
131
 
146
- `draft-cli` finds placeholders by trying five strategies in order. The
147
- **first non-empty tier wins** and the others are skipped.
132
+ `draft-cli` finds placeholders by trying five strategies in order. The **first non-empty tier wins** and the others are skipped.
148
133
 
149
134
  | Tier | Strategy | When |
150
135
  | ---- | -------------------- | ----------------------------------------- |
@@ -154,45 +139,32 @@ ok
154
139
  | 4 | Heuristic dictionary | Bundled list of generic names (`Acme Corporation`, `John Doe`, `example@example.com`, etc.). Warn-only by default. |
155
140
  | 5 | LLM | Last resort. Runs only when `.env` or process env configures `ANTHROPIC_API_KEY`, `OPENAI_API_KEY`, or `DRAFT_LLM_*`. |
156
141
 
157
- The cascade is **deterministic through tier 4**. Tier 5 is the only
158
- non-deterministic step and runs only when you've explicitly configured a
159
- provider key. Pass `--no-llm` to disable it even when configured. Pass
160
- `--no-heuristic` to skip tier 4.
142
+ The cascade is **deterministic through tier 4**. Tier 5 is the only non-deterministic step and runs only when you've explicitly configured a provider key. Pass `--no-llm` to disable it even when configured. Pass `--no-heuristic` to skip tier 4.
161
143
 
162
144
  See [PARAM_SCHEMA.md](PARAM_SCHEMA.md) for the full contract.
163
145
 
164
- ---
165
-
166
146
  ## Schema file (optional)
167
147
 
168
- A sibling `<template>.params.json` lets you declare canonical keys, alias
169
- phrases, defaults, and whether each parameter is required.
170
-
171
- **Short form:**
172
-
173
- ```json
174
- {
175
- "party_a": ["Party A", "Disclosing Party"],
176
- "party_b": ["Party B", "Receiving Party"],
177
- "effective_date": ["Effective Date"]
178
- }
179
- ```
180
-
181
- **Long form** (gates on `_meta`):
148
+ A sibling `<template>.params.json` lets you declare canonical keys, alias phrases, defaults, and required-ness. The **long form** (gated on `_meta`) unlocks the v2 fields:
182
149
 
183
150
  ```json
184
151
  {
185
152
  "_meta": { "schema_version": 1 },
186
- "party_a": { "aliases": ["Party A"], "required": true },
187
- "effective_date": { "aliases": ["Effective Date"], "required": false, "default": "the date first written above" }
153
+ "party_a": { "aliases": ["Party A"], "required": true, "type": "party" },
154
+ "effective_date": { "aliases": ["Effective Date"], "type": "date", "format": "MMMM d, yyyy" },
155
+ "term_end": { "aliases": ["Term End"], "type": "date",
156
+ "computed": { "from": "effective_date", "op": "+", "value": "2 years" } },
157
+ "purchase_amount": { "aliases": ["Purchase Amount"], "type": "money", "currency": "USD" },
158
+ "blank": { "aliases": ["_____________"], "type": "money", "currency": "USD",
159
+ "positions": [{ "role": "valuation_cap" }, { "role": "purchase_amount" }] }
188
160
  }
189
161
  ```
190
162
 
191
- With a schema, `draft-cli` substitutes **only** declared parameters and
192
- leaves other bracketed text untouched. Without one, every detected
193
- bracketed phrase is treated as a required parameter.
163
+ With a schema, `draft-cli` substitutes **only** declared parameters and leaves other bracketed text untouched. Without one, every detected bracketed phrase is treated as a required parameter.
164
+
165
+ The **short form** is just an aliases map: `{ "party_a": ["Party A"] }`.
194
166
 
195
- ---
167
+ See [PARAM_SCHEMA.md](PARAM_SCHEMA.md) §5 for the full schema contract and the locked design decisions per v2 feature.
196
168
 
197
169
  ## Command reference
198
170
 
@@ -203,10 +175,15 @@ draft - template body on stdin
203
175
  draft --demo bundled demo, no file needed
204
176
  draft --list-placeholders <t> enumerate placeholders and exit
205
177
  draft --validate <t> --params completeness check, no output
178
+ draft --bundle <bundle.json> multi-doc bundle mode (v0.7.0)
206
179
 
207
180
  OPTIONS
208
181
  --params FILE JSON file of param values (snake_case keys)
209
- -o, --output PATH write to PATH (default: stdout)
182
+ --parties PATH parties.json registry for ref:parties.<key>.<field> (v0.6.0)
183
+ --bundle PATH fill multiple templates in one invocation (v0.7.0)
184
+ --from-deal PATH LLM-extract values from a free-form deal description (v0.8.0)
185
+ -o, --output PATH write to PATH (default: stdout). `-` forces stdout.
186
+ For .docx input, default is <basename>-filled.docx (v0.2.0)
210
187
  --syntax bracket|mustache
211
188
  -i, --interactive prompt for missing required parameters
212
189
  --why structured explanation to stderr
@@ -214,7 +191,7 @@ OPTIONS
214
191
  -q, --silent suppress all stderr (warnings, --why, notes)
215
192
  --no-heuristic disable tier 4
216
193
  --yes-heuristic substitute tier-4 matches without confirmation
217
- --no-llm disable tier 5 even when env is configured
194
+ --no-llm disable tier 5 + --from-deal even when env is configured
218
195
  --llm assert that env is configured (fail-fast if not)
219
196
  --check-llm one-token roundtrip to verify provider config
220
197
  --diff show substitution table without writing output
@@ -224,81 +201,46 @@ OPTIONS
224
201
  -V, --version show version
225
202
  ```
226
203
 
227
- Exit codes: `0` ok · `1` i/o · `2` validation · `3` template-vault failure
228
- · `4` llm failure.
229
-
230
- ---
204
+ Exit codes: `0` ok · `1` i/o · `2` validation · `3` template-vault failure · `4` schema validation / typed parameter / computed / ref / positional · `5` llm failure.
231
205
 
232
206
  ## LLM tier (env-gated, opt-in)
233
207
 
234
- When tiers 1–4 all find nothing, `draft-cli` falls back to a language model
235
- **only if** a provider key is in the environment. Read order: `.env` in
236
- the working directory, then `process.env` (process wins).
208
+ When tiers 1–4 all find nothing, `draft-cli` falls back to a language model **only if** a provider key is in the environment. Read order: `.env` in the working directory, then `process.env` (process wins).
237
209
 
238
210
  ```sh
239
211
  echo 'ANTHROPIC_API_KEY=sk-ant-…' >> .env
240
212
  draft some-freeform-draft.md # tier 5 auto-runs when 1-4 empty
241
213
  ```
242
214
 
243
- Supported providers: Anthropic (`ANTHROPIC_API_KEY`), OpenAI
244
- (`OPENAI_API_KEY`), or explicit (`DRAFT_LLM_PROVIDER` + `DRAFT_LLM_API_KEY`
245
- + optional `DRAFT_LLM_MODEL`). The LLM receives template text only — no
246
- params file, no `.env` contents, no other data. Pass `--no-llm` to disable
247
- even when configured.
215
+ Supported providers: Anthropic (`ANTHROPIC_API_KEY`), OpenAI (`OPENAI_API_KEY`), or explicit (`DRAFT_LLM_PROVIDER` + `DRAFT_LLM_API_KEY` + optional `DRAFT_LLM_MODEL`). The LLM receives template text only — no params file, no `.env` contents, no other data. Pass `--no-llm` to disable even when configured.
248
216
 
249
- ---
217
+ **v0.8.0 inverse direction — `--from-deal PATH`:** feed prose deal notes and the LLM extracts values for the schema's placeholders (instead of inferring where placeholders are). Uses the same provider config. Errors on provider missing, network failure, or non-JSON response. CLI / `--params` values always win over LLM-inferred ones. See [PARAM_SCHEMA.md](PARAM_SCHEMA.md) §5.
250
218
 
251
219
  ## Composability
252
220
 
253
- `draft-cli` reads from stdin, writes to stdout by default, and exits with
254
- distinct codes for each failure class. It composes with `template-vault-cli`
255
- on the read side and `nda-review-cli` / `docx2pdf-cli` / `sign-cli` on
256
- the write side:
221
+ `draft-cli` reads from stdin, writes to stdout by default, and exits with distinct codes for each failure class. It composes with `template-vault-cli` on the read side and `nda-review-cli` / `docx2pdf-cli` / `sign-cli` on the write side:
257
222
 
258
- ```sh
259
- template-vault get nda/house-mutual \
260
- | draft - --params deal-acme.json \
261
- | nda-review review - --playbook house \
223
+ ```bash
224
+ # Pull a versioned template, fill it, hand it to review, convert to PDF, sign.
225
+ template-vault get nda/house-mutual@v3 \
226
+ | draft - --from-deal deal-notes.txt --parties parties.json \
227
+ | nda-review --redline \
262
228
  | docx2pdf - draft.pdf
229
+ sign-cli send draft.pdf --signer counsel@counterparty.com
263
230
  ```
264
231
 
265
- The `--why` and `--json` flags make every step inspectable by agents and
266
- shell pipelines.
267
-
268
- ---
269
-
270
- ## Part of the contract-operations suite
271
-
272
- `draft-cli` is one of a small set of single-purpose CLIs for contract
273
- operations. See [cli.drbaher.com](https://cli.drbaher.com) for the suite
274
- landing page.
275
-
276
- - **[nda-review-cli](https://github.com/DrBaher/nda-review-cli)** —
277
- draft, review, and negotiate NDAs against your own house playbook.
278
- Deterministic by default; opt-in LLM augmentation.
279
- - **[docx2pdf-cli](https://github.com/DrBaher/docx2pdf-cli)** —
280
- honest DOCX → PDF conversion with batch processing, parallel runs,
281
- font validation.
282
- - **[sign-cli](https://github.com/DrBaher/sign-cli)** —
283
- fully-offline PAdES e-signature with hash-chained audit events,
284
- RFC 3161 timestamps.
285
-
286
- `template-vault-cli` (a Git-backed, clause-aware package manager for
287
- legal-document templates) is the natural upstream of `draft-cli` and
288
- will join the suite when it ships.
289
-
290
- ---
232
+ Each tool stays small and replaceable. None of them know about each other beyond the standard `stdin / stdout / argv / exit codes` contract.
291
233
 
292
234
  ## Documentation
293
235
 
294
- - [GETTING_STARTED.md](GETTING_STARTED.md) — 10-minute walk-through of every flow.
236
+ - [GETTING_STARTED.md](GETTING_STARTED.md) — 10-minute walkthrough of the main flows.
295
237
  - [AGENTS.md](AGENTS.md) — JSON shapes, exit codes, library use; everything an LLM agent driving `draft-cli` needs.
296
- - [PARAM_SCHEMA.md](PARAM_SCHEMA.md) — locked v1 contract: cascade, schema file, precedence.
297
- - [ARCHITECTURE.md](ARCHITECTURE.md) — single-file rationale, substitution model, .docx parsing.
298
- - [FAQ.md](FAQ.md) — design questions and trade-offs.
299
- - [SECURITY.md](SECURITY.md) — threat model and how to report a vulnerability.
300
- - [CHANGELOG.md](CHANGELOG.md) — release notes and the v2 "Deferred" list.
301
- - [CONTRIBUTING.md](CONTRIBUTING.md) — scope rules and release flow.
238
+ - [ARCHITECTURE.md](ARCHITECTURE.md) — how the cascade, schema, and substitution pipeline fit together.
239
+ - [PARAM_SCHEMA.md](PARAM_SCHEMA.md) — v1 + v2 schema contract; locked decisions per feature.
240
+ - [FAQ.md](FAQ.md) — common questions about detection rules, T4 heuristics, and the LLM tier.
241
+ - [V2_BRIEFS_REMAINING.md](V2_BRIEFS_REMAINING.md) — design briefs for the four v2 items shipped after v0.1.x; historical now that all four have landed.
242
+ - [SECURITY.md](SECURITY.md) — reporting vulnerabilities.
243
+ - [CHANGELOG.md](CHANGELOG.md) — every shipped version with locked design decisions.
302
244
 
303
245
  ## License
304
246
 
package/draft-cli.mjs CHANGED
@@ -70,7 +70,7 @@ import { fileURLToPath } from "node:url";
70
70
  */
71
71
 
72
72
  /** @type {string} */
73
- export const VERSION = "0.8.0";
73
+ export const VERSION = "0.8.2";
74
74
 
75
75
  // ─── EXIT CODES ─────────────────────────────────────────────────────────────
76
76
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@drbaher/draft-cli",
3
- "version": "0.8.0",
3
+ "version": "0.8.2",
4
4
  "description": "Fill placeholders in a legal-document template with parameter values. Part of the contract-operations suite.",
5
5
  "type": "module",
6
6
  "bin": {