@hasna/todos 0.11.45 → 0.11.46
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 +125 -3
- package/dist/cli/commands/config-serve-commands.d.ts.map +1 -1
- package/dist/cli/commands/help-commands.d.ts +3 -0
- package/dist/cli/commands/help-commands.d.ts.map +1 -0
- package/dist/cli/commands/local-backup-commands.d.ts +3 -0
- package/dist/cli/commands/local-backup-commands.d.ts.map +1 -0
- package/dist/cli/commands/mcp-hooks-commands.d.ts.map +1 -1
- package/dist/cli/commands/query-commands.d.ts.map +1 -1
- package/dist/cli/commands/scale-hardening-commands.d.ts +3 -0
- package/dist/cli/commands/scale-hardening-commands.d.ts.map +1 -0
- package/dist/cli/commands/usage-ledger-commands.d.ts +3 -0
- package/dist/cli/commands/usage-ledger-commands.d.ts.map +1 -0
- package/dist/cli/components/Dashboard.d.ts.map +1 -1
- package/dist/cli/index.js +3822 -547
- package/dist/cli-mcp-parity.d.ts +1 -1
- package/dist/cli-mcp-parity.d.ts.map +1 -1
- package/dist/contracts.d.ts +6 -0
- package/dist/contracts.d.ts.map +1 -1
- package/dist/contracts.js +1506 -24
- package/dist/db/agent-names.d.ts +2 -1
- package/dist/db/agent-names.d.ts.map +1 -1
- package/dist/db/schema.d.ts.map +1 -1
- package/dist/db/task-runs.d.ts +3 -0
- package/dist/db/task-runs.d.ts.map +1 -1
- package/dist/index.d.ts +16 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2822 -282
- package/dist/json-contracts.d.ts.map +1 -1
- package/dist/lib/cli-help.d.ts +38 -0
- package/dist/lib/cli-help.d.ts.map +1 -0
- package/dist/lib/config.d.ts +38 -0
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/local-backups.d.ts +129 -0
- package/dist/lib/local-backups.d.ts.map +1 -0
- package/dist/lib/local-extensions.d.ts +18 -1
- package/dist/lib/local-extensions.d.ts.map +1 -1
- package/dist/lib/local-reports.d.ts +149 -0
- package/dist/lib/local-reports.d.ts.map +1 -0
- package/dist/lib/redaction.d.ts.map +1 -1
- package/dist/lib/scale-hardening.d.ts +74 -0
- package/dist/lib/scale-hardening.d.ts.map +1 -0
- package/dist/lib/tui-dashboard.d.ts +49 -0
- package/dist/lib/tui-dashboard.d.ts.map +1 -0
- package/dist/lib/usage-ledger.d.ts +82 -0
- package/dist/lib/usage-ledger.d.ts.map +1 -0
- package/dist/lib/workflow-states.d.ts +70 -0
- package/dist/lib/workflow-states.d.ts.map +1 -0
- package/dist/mcp/index.js +8245 -6445
- package/dist/mcp/token-utils.d.ts.map +1 -1
- package/dist/mcp/tools/task-project-tools.d.ts.map +1 -1
- package/dist/mcp/tools/task-resources.d.ts.map +1 -1
- package/dist/mcp.js +12 -0
- package/dist/registry.js +1487 -24
- package/dist/server/index.js +152 -20
- package/dist/storage.js +164 -21
- package/package.json +1 -1
- package/dist/release-provenance.json +0 -7
package/README.md
CHANGED
|
@@ -17,6 +17,38 @@ bun install -g @hasna/todos
|
|
|
17
17
|
todos --help
|
|
18
18
|
```
|
|
19
19
|
|
|
20
|
+
Generate shell completions directly from the registered CLI command tree:
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
todos completions bash > ~/.local/share/bash-completion/completions/todos
|
|
24
|
+
todos completions zsh > ~/.zsh/completions/_todos
|
|
25
|
+
todos completions fish > ~/.config/fish/completions/todos.fish
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Print the local CLI manual when you need install/update commands, examples,
|
|
29
|
+
JSON output contracts, error behavior, and the command catalog:
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
todos manual
|
|
33
|
+
todos manual --json
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Terminal Dashboard
|
|
37
|
+
|
|
38
|
+
`todos dashboard` launches a local Ink TUI with keyboard tabs for overview,
|
|
39
|
+
projects, tasks, plans, runs, dependencies, inbox, and search. It reads only the
|
|
40
|
+
local SQLite database and can also print deterministic snapshots for scripts or
|
|
41
|
+
tests:
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
todos dashboard
|
|
45
|
+
todos dashboard --snapshot --view tasks --search "release" --json
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Keyboard hints are shown in the interface: `h`/left and `l`/right move between
|
|
49
|
+
tabs, `1`-`8` jumps to a tab, `/` opens local search, `r` refreshes, and `q`
|
|
50
|
+
quits.
|
|
51
|
+
|
|
20
52
|
## Local Project Bootstrap
|
|
21
53
|
|
|
22
54
|
Bootstrap discovers the current local workspace, registers a project identity,
|
|
@@ -138,11 +170,13 @@ and `todos://knowledge/decisions` resources for agent context refreshes.
|
|
|
138
170
|
Extensions are installed from local manifests, directories with
|
|
139
171
|
`todos.extension.json`, or offline JSON bundles. The registry validates the
|
|
140
172
|
manifest shape, checks `@hasna/todos` compatibility ranges, records requested
|
|
141
|
-
permissions,
|
|
142
|
-
|
|
143
|
-
|
|
173
|
+
permissions, supports custom commands, MCP tool declarations, templates, hooks,
|
|
174
|
+
and renderers, runs CLI/MCP compatibility checks, dry-runs declared commands and
|
|
175
|
+
renderer commands through the local runner sandbox, verifies optional source
|
|
176
|
+
checksums or detached signatures, and stores trust state in local config only:
|
|
144
177
|
|
|
145
178
|
```bash
|
|
179
|
+
todos extensions discover . --json
|
|
146
180
|
todos extensions inspect ./todos.extension.json --json
|
|
147
181
|
todos extensions compat ./todos.extension.json --json
|
|
148
182
|
todos extensions install ./todos.extension.json --checksum sha256:... --trust --json
|
|
@@ -494,6 +528,22 @@ MCP clients get the same summaries through `get_agent_reliability_scorecard`,
|
|
|
494
528
|
`export_agent_reliability_scorecards`, and the `todos://agents/reliability`
|
|
495
529
|
resource.
|
|
496
530
|
|
|
531
|
+
## Local Agent Reports
|
|
532
|
+
|
|
533
|
+
Agent reports compose the local planning surfaces into one report for standups,
|
|
534
|
+
handoffs, and agent run planning: ready tasks, blocked tasks, overdue work,
|
|
535
|
+
plan progress, run outcomes, verification evidence, and per-agent summaries.
|
|
536
|
+
|
|
537
|
+
```bash
|
|
538
|
+
todos reports local --agent codex --format markdown
|
|
539
|
+
todos reports local --project <project-id> --json
|
|
540
|
+
```
|
|
541
|
+
|
|
542
|
+
MCP clients can list sections with `list_local_report_types` and build the
|
|
543
|
+
same local-only `local_report` contract with `build_local_report`. The report
|
|
544
|
+
uses the local SQLite store only and does not call hosted analytics or external
|
|
545
|
+
services.
|
|
546
|
+
|
|
497
547
|
## Local Agent Locking
|
|
498
548
|
|
|
499
549
|
Task claims and locks are local SQLite leases. Agents can claim the next ready
|
|
@@ -760,6 +810,37 @@ The report also includes changelog surfaces and rollback commands. MCP clients
|
|
|
760
810
|
use `check_release_compatibility` for the same `release_compatibility_report`
|
|
761
811
|
JSON contract.
|
|
762
812
|
|
|
813
|
+
## Local Usage Ledger
|
|
814
|
+
|
|
815
|
+
Usage reports summarize local tasks, projects, runs, commands, durations,
|
|
816
|
+
agent-provided token and cost metadata, and run artifact storage. Quota flags
|
|
817
|
+
are simulated locally so agents can check free/pro limits or project budgets
|
|
818
|
+
without sending data anywhere:
|
|
819
|
+
|
|
820
|
+
```bash
|
|
821
|
+
todos usage report --agent codex --max-tasks 1000 --max-projects 10 --json
|
|
822
|
+
todos usage report --project <project-id> --format markdown
|
|
823
|
+
```
|
|
824
|
+
|
|
825
|
+
The report is aggregate-only: raw command strings and artifact paths are not
|
|
826
|
+
included. MCP clients use `get_usage_ledger` for the same
|
|
827
|
+
`local_usage_ledger` JSON contract.
|
|
828
|
+
|
|
829
|
+
## Local Scale Hardening
|
|
830
|
+
|
|
831
|
+
Scale reports benchmark common local queries, count archive-ready terminal
|
|
832
|
+
tasks, check expected SQLite indexes, run integrity diagnostics, and preview
|
|
833
|
+
database compaction without network access:
|
|
834
|
+
|
|
835
|
+
```bash
|
|
836
|
+
todos scale report --older-than-days 30 --json
|
|
837
|
+
todos scale report --format markdown
|
|
838
|
+
todos scale compact --json
|
|
839
|
+
```
|
|
840
|
+
|
|
841
|
+
`todos scale compact --apply` runs `PRAGMA optimize` and `VACUUM` against the
|
|
842
|
+
local SQLite database. The default is a dry run.
|
|
843
|
+
|
|
763
844
|
## Local Activity Timeline
|
|
764
845
|
|
|
765
846
|
The timeline command gives agents one ordered, redacted view of local comments,
|
|
@@ -818,6 +899,26 @@ for existing filters, and the metadata is included in local bridge exports.
|
|
|
818
899
|
MCP clients use `get_task_fields`, `set_task_fields`, and
|
|
819
900
|
`query_tasks_by_fields` for the same local-only workflow.
|
|
820
901
|
|
|
902
|
+
## Local Workflow States
|
|
903
|
+
|
|
904
|
+
Projects can define local workflow states such as review, blocked, verifying,
|
|
905
|
+
failed, or released while keeping storage compatible with the canonical task
|
|
906
|
+
statuses:
|
|
907
|
+
|
|
908
|
+
```bash
|
|
909
|
+
todos workflow states --json
|
|
910
|
+
todos workflow set <task-id> review --json
|
|
911
|
+
todos workflow tasks review --json
|
|
912
|
+
todos workflow migrate --apply --json
|
|
913
|
+
```
|
|
914
|
+
|
|
915
|
+
Workflow states live in local config under `workflow_states.states`. Each state
|
|
916
|
+
maps to a canonical `canonical_status`, can declare aliases, and can restrict
|
|
917
|
+
allowed transitions. The selected local state is stored in task metadata and is
|
|
918
|
+
included in local bridge exports. MCP clients use `list_workflow_states`,
|
|
919
|
+
`set_task_workflow_state`, `query_tasks_by_workflow_state`, and
|
|
920
|
+
`migrate_workflow_states`.
|
|
921
|
+
|
|
821
922
|
## Local Calendar And ICS
|
|
822
923
|
|
|
823
924
|
Calendar events are derived from local tasks, SLA thresholds, run ledgers, and
|
|
@@ -1049,6 +1150,27 @@ unresolved divergent fields in `metadata.sync_conflicts` for manual review.
|
|
|
1049
1150
|
Local non-empty title, status, priority, and metadata values win when both sides
|
|
1050
1151
|
changed.
|
|
1051
1152
|
|
|
1153
|
+
## Local Backups and Integrity
|
|
1154
|
+
|
|
1155
|
+
Create a checksum-protected local backup wrapper around the bridge bundle when
|
|
1156
|
+
you need a restorable snapshot with manifest counts and SQLite integrity
|
|
1157
|
+
metadata:
|
|
1158
|
+
|
|
1159
|
+
```bash
|
|
1160
|
+
todos backup create --output todos-backup.json
|
|
1161
|
+
todos backup verify todos-backup.json --json
|
|
1162
|
+
todos backup restore todos-backup.json --json
|
|
1163
|
+
todos backup restore todos-backup.json --apply --resolve-conflicts
|
|
1164
|
+
todos backup integrity --json
|
|
1165
|
+
```
|
|
1166
|
+
|
|
1167
|
+
Backups include the same local projects, task lists, plans, tasks, comments,
|
|
1168
|
+
runs, commands, files, commits, refs, verification records, saved views, boards,
|
|
1169
|
+
calendar items, and stored artifact contents as bridge exports. The backup
|
|
1170
|
+
manifest adds SHA-256 checksums for the full payload, embedded bridge bundle,
|
|
1171
|
+
and each bridge section. Restore defaults to dry-run mode and refuses corrupted
|
|
1172
|
+
or schema-incompatible bundles before importing.
|
|
1173
|
+
|
|
1052
1174
|
## todos.md Markdown Import/Export
|
|
1053
1175
|
|
|
1054
1176
|
`todos.md` files are readable Markdown checklists with an embedded local bridge
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-serve-commands.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/config-serve-commands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASzC,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"config-serve-commands.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/config-serve-commands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASzC,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,OAAO,QAq0C3D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"help-commands.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/help-commands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAczC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,QAkCpD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-backup-commands.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/local-backup-commands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkBzC,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,OAAO,QAoH3D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-hooks-commands.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/mcp-hooks-commands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAwMzC,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"mcp-hooks-commands.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/mcp-hooks-commands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAwMzC,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,QAghCxD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-commands.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/query-commands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"query-commands.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/query-commands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkNzC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,QA6lFrD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scale-hardening-commands.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/scale-hardening-commands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkBzC,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,OAAO,QAwD9D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usage-ledger-commands.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/usage-ledger-commands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA8BzC,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,OAAO,QAiE3D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dashboard.d.ts","sourceRoot":"","sources":["../../../src/cli/components/Dashboard.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Dashboard.d.ts","sourceRoot":"","sources":["../../../src/cli/components/Dashboard.tsx"],"names":[],"mappings":"AAIA,UAAU,cAAc;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,SAAS,CAAC,EAAE,SAAS,EAAE,SAAgB,EAAE,EAAE,cAAc,2CAqHxE"}
|