draftcat 0.9.0 → 0.10.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/README.md +8 -4
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
<p align="center"><b>Governed AI pipelines where the LLM can't fire actions — one Go binary, self-hosted, human-in-the-loop.</b></p>
|
|
6
6
|
|
|
7
7
|
<p align="center">
|
|
8
|
-
<a href="https://github.com/renezander030/draftcat
|
|
8
|
+
<a href="https://github.com/renezander030/draftcat"><img src="https://img.shields.io/github/stars/renezander030/draftcat?style=flat-square" alt="Stars"></a>
|
|
9
9
|
<a href="LICENSE"><img src="https://img.shields.io/github/license/renezander030/draftcat?style=flat-square" alt="License"></a>
|
|
10
10
|
<img src="https://img.shields.io/badge/Go-1.25-00ADD8?style=flat-square&logo=go" alt="Go 1.25">
|
|
11
11
|
<a href="docs/voice.md"><img src="https://img.shields.io/badge/voice%20AI-EU%20residency%20%C2%B7%20Dograh-00D4AA?style=flat-square" alt="Voice AI plugin"></a>
|
|
@@ -164,7 +164,7 @@ cp secrets.yaml.example secrets.yaml
|
|
|
164
164
|
docker compose up
|
|
165
165
|
```
|
|
166
166
|
|
|
167
|
-
Pipelines live in `config.yaml`, prompts in `skills/`. A SQLite store opens at `./state.db` on first boot. To add the EU-resident **voice AI** plugin: `go build -tags voice -o draftcat .` — the lean binary is unchanged when the tag is off.
|
|
167
|
+
Pipelines live in `config.yaml`, prompts in `skills/`. Run `draftcat doctor` to check credentials, operators, the state store and schedules before the first start. A SQLite store opens at `./state.db` on first boot. To add the EU-resident **voice AI** plugin: `go build -tags voice -o draftcat .` — the lean binary is unchanged when the tag is off.
|
|
168
168
|
|
|
169
169
|
## Deploy — where it runs
|
|
170
170
|
|
|
@@ -282,6 +282,7 @@ budgets:
|
|
|
282
282
|
per_day_tokens: 100000
|
|
283
283
|
per_day_cost: 5.00 # money cap, same unit as your model rates (0 = off)
|
|
284
284
|
per_pipeline_cost: 0.50
|
|
285
|
+
alert_at: [0.5, 0.8] # tell the operator at 50% and 80% of a daily cap
|
|
285
286
|
|
|
286
287
|
observability: {spans: false} # or DRAFTCAT_TRACE=1
|
|
287
288
|
state: {path: ./state.db}
|
|
@@ -357,6 +358,7 @@ Skills are YAML prompt templates in `skills/` with an `output_schema` the engine
|
|
|
357
358
|
```bash
|
|
358
359
|
draftcat # run the engine (validates config first; refuses to start on errors)
|
|
359
360
|
draftcat validate [--strict] # lint config + skills
|
|
361
|
+
draftcat doctor [--json] # read-only preflight: credentials, operators, state, ports, schedules
|
|
360
362
|
draftcat test <pipeline> # dry-run against fixtures/<pipeline>/ (never touches real APIs)
|
|
361
363
|
draftcat runs [pipeline] # recent runs + the approval decisions in each (--json to archive)
|
|
362
364
|
draftcat pending # approval gates waiting on a human right now (--json)
|
|
@@ -387,7 +389,9 @@ Approval rows can be made tamper-evident with signed receipts, so a later audit
|
|
|
387
389
|
can verify which operator approved which payload hash. See
|
|
388
390
|
[`docs/action-receipts.md`](docs/action-receipts.md).
|
|
389
391
|
|
|
390
|
-
A pipeline's `schedule` decides when it runs — an interval (`1h`), `manual` (operator `/run` only), or `webhook`.
|
|
392
|
+
A pipeline's `schedule` decides when it runs — an interval (`1h`), a cron expression in the pipeline's time zone (`"0 8 * * 1-5"` with `timezone: Europe/Berlin`), `@daily`-style shortcuts, `manual` (operator `/run` only), or `webhook`. Schedules continue from the recorded run history across restarts, `pause_after_failures` stops a pipeline that keeps failing, and `SIGTERM` lets running pipelines finish within `timeouts.shutdown_grace`. See [running Draftcat unattended](docs/operations.md).
|
|
393
|
+
|
|
394
|
+
The `webhook` server is opt-in and opens no port unless enabled:
|
|
391
395
|
|
|
392
396
|
```yaml
|
|
393
397
|
webhook: {enabled: true, addr: 127.0.0.1:8088, secret_env: DRAFTCAT_WEBHOOK_SECRET}
|
|
@@ -437,7 +441,7 @@ The deterministic-boundary architecture is documented in the **Production AI Aut
|
|
|
437
441
|
- [#12 LLM Skills as YAML](https://gist.github.com/renezander030/a28f118dec07d275ccc825aa833aba92) — prompt + output_schema + role in versioned YAML, validated by a linter
|
|
438
442
|
- [#13 Inbound Agent Webhook Auth](https://gist.github.com/renezander030/26d46d4c7fb9ab1b43fe19bc5bad6d07) — constant-time bearer token, fail-closed on empty secret, async 202 dispatch
|
|
439
443
|
- [#14 Self-Improving Voice Agent](https://gist.github.com/renezander030/262d8b8c44b4cddf51b3b84c40f3f669) — harvest Learning-Items, group, propose a minimal workflow diff, two approval gates, git commit + auto-versioned Dograh publish
|
|
440
|
-
- [#15 AI Action Audit Trail](https://gist.github.com/renezander030/ad81c7a805a09a844983f881e2c487e5) —
|
|
444
|
+
- [#15 AI Action Audit Trail](https://gist.github.com/renezander030/ad81c7a805a09a844983f881e2c487e5) — versioned action-bound `action_approvals` receipts: who approved which payload, when; action-level receipt binding, expiry and fail-closed audit persistence
|
|
441
445
|
|
|
442
446
|
## Related projects
|
|
443
447
|
|