@ghostpaw/questlog 0.6.2 → 0.8.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 CHANGED
@@ -1,12 +1,14 @@
1
+ <a href="https://questlog.ghostpaw.dev/"><img src="https://raw.githubusercontent.com/GhostPawJS/questlog/main/.github/social-preview.png" alt="GhostPaw questlog: Your agent said it was done. Was it?" width="100%"></a>
2
+
1
3
  # @ghostpaw/questlog
2
4
 
3
- [![npm](https://img.shields.io/npm/v/@ghostpaw/questlog)](https://www.npmjs.com/package/@ghostpaw/questlog)
4
- [![node](https://img.shields.io/node/v/@ghostpaw/questlog)](https://nodejs.org)
5
- [![license](https://img.shields.io/npm/l/@ghostpaw/questlog)](LICENSE)
6
- [![dependencies](https://img.shields.io/badge/dependencies-0-brightgreen)](package.json)
7
- [![TypeScript](https://img.shields.io/badge/TypeScript-5.9-blue?logo=typescript&logoColor=white)](https://www.typescriptlang.org)
8
- [![Live Demo](https://img.shields.io/badge/demo-live-06d6a0?style=flat&logo=github)](https://ghostpawjs.github.io/questlog)
9
- [![MCP Registry](https://img.shields.io/badge/MCP_Registry-io.github.GhostPawJS%2Fquestlog-06d6a0)](https://registry.modelcontextprotocol.io/v0.1/servers/io.github.GhostPawJS%2Fquestlog/versions/latest)
5
+ [![npm](https://img.shields.io/npm/v/@ghostpaw/questlog?style=flat-square&labelColor=0a1119&color=62e6f2&label=npm)](https://www.npmjs.com/package/@ghostpaw/questlog) [![CI](https://img.shields.io/github/actions/workflow/status/GhostPawJS/questlog/ci.yml?branch=main&style=flat-square&labelColor=0a1119&label=CI)](https://github.com/GhostPawJS/questlog/actions/workflows/ci.yml) [![site](https://img.shields.io/badge/site-questlog.ghostpaw.dev-62e6f2?style=flat-square&labelColor=0a1119)](https://questlog.ghostpaw.dev/) [![runtime deps](https://img.shields.io/badge/runtime_deps-0-7af0b4?style=flat-square&labelColor=0a1119)](package.json) [![MCP Registry](https://img.shields.io/badge/MCP_Registry-io.github.GhostPawJS%2Fquestlog-b39dff?style=flat-square&labelColor=0a1119)](https://registry.modelcontextprotocol.io/v0.1/servers/io.github.GhostPawJS%2Fquestlog/versions/latest) [![node](https://img.shields.io/badge/node-%E2%89%A524-93a5b9?style=flat-square&labelColor=0a1119)](https://nodejs.org) [![license](https://img.shields.io/npm/l/@ghostpaw/questlog?style=flat-square&labelColor=0a1119&color=93a5b9)](LICENSE)
6
+
7
+ **Agent tasks as quests that finish only with a written outcome.**
8
+
9
+ ```bash
10
+ npm install @ghostpaw/questlog
11
+ ```
10
12
 
11
13
  A unified task and calendar model for Node.js, built on SQLite.
12
14
 
@@ -63,13 +65,37 @@ initialize-based revisions 2025-11-25, 2025-06-18, 2025-03-26 and 2024-11-05.
63
65
 
64
66
  ## CLI
65
67
 
68
+ Install globally for the `ghostpaw-questlog` binary: `npm i -g @ghostpaw/questlog`.
69
+
66
70
  ```bash
67
- npx -y @ghostpaw/questlog tools
68
- npx -y @ghostpaw/questlog call capture_rumor '{"title":"Review release notes"}'
69
- npx -y @ghostpaw/questlog call search_questlog '{"query":"release notes"}'
71
+ ghostpaw-questlog add --title "Review release notes" --tag release --due 2030-01-02
72
+ ghostpaw-questlog list --limit 10
73
+ ghostpaw-questlog search release notes --limit 5
74
+ ghostpaw-questlog show 1
75
+ ghostpaw-questlog done 1 --outcome "Reviewed changes"
76
+ ghostpaw-questlog list --view quests.resolved --json
77
+ ```
78
+
79
+ `add` accepts repeated `--tag` flags, `--objective` (defaults to the title),
80
+ `--questline <id>`, and `--due` as an ISO date or milliseconds since epoch.
81
+ `list` defaults to available quests; `list --help` lists all supported views.
82
+ Its `--limit` caps text output; JSON preserves the full review tool result.
83
+ `search --limit` caps matches in both formats. `show` inspects a quest id.
84
+ `done` stores `--outcome` with the finished quest; without it the command asks for one and exits 3.
85
+
86
+ Plain commands print short text by default. Use `--json` for the full tool result
87
+ and `--compact` for compact JSON. `--db path` works before or after the command.
88
+ Each command accepts `--help`. Exit codes are 0 for success, 1 for invalid input
89
+ or a tool error, 2 for usage errors, and 3 when clarification is needed.
90
+
91
+ The `call` command and the per-tool form still reach every tool and parameter:
92
+
93
+ ```bash
94
+ ghostpaw-questlog tools
95
+ ghostpaw-questlog call capture_rumor '{"title":"Review release notes"}'
96
+ ghostpaw-questlog search_questlog --query "release notes"
70
97
  ```
71
98
 
72
- Install globally for the `ghostpaw-questlog` binary: `npm i -g @ghostpaw/questlog`.
73
99
  `ghostpaw-questlog mcp` starts the stdio server.
74
100
 
75
101
  ## Agent Skill
@@ -84,11 +110,79 @@ npx -y @ghostpaw/questlog skill > SKILL.md
84
110
 
85
111
  ## Install
86
112
 
87
- ```bash
88
- npm install @ghostpaw/questlog
113
+ The [npm package](https://www.npmjs.com/package/@ghostpaw/questlog) requires Node 24+:
114
+
115
+ ```sh
116
+ npm install -g @ghostpaw/questlog
117
+ npx -y @ghostpaw/questlog --help
89
118
  ```
90
119
 
91
- Requires **Node.js 24+** (uses the built-in `node:sqlite` module).
120
+ As a library dependency: `npm install @ghostpaw/questlog`. It uses the built-in
121
+ `node:sqlite` module, so there are no runtime dependencies.
122
+
123
+ Standalone binaries are available from [GitHub Releases](https://github.com/GhostPawJS/questlog/releases)
124
+ for linux-x64, linux-arm64, darwin-arm64, darwin-x64 and windows-x64.
125
+
126
+ ```sh
127
+ curl -fsSL https://raw.githubusercontent.com/GhostPawJS/questlog/main/install.sh | sh
128
+ ```
129
+
130
+ ```powershell
131
+ irm https://raw.githubusercontent.com/GhostPawJS/questlog/main/install.ps1 | iex
132
+ ```
133
+
134
+ Other release installers:
135
+
136
+ ```sh
137
+ mise use -g github:GhostPawJS/questlog
138
+ ubi --project GhostPawJS/questlog --exe ghostpaw-questlog --in ~/.local/bin
139
+ eget GhostPawJS/questlog
140
+ ```
141
+
142
+ For [aqua](https://aquaproj.github.io/docs/reference/registry-config/), define a
143
+ `github_release` package in `aqua.yaml`:
144
+
145
+ ```yaml
146
+ registries:
147
+ - name: questlog
148
+ type: local
149
+ path: questlog-registry.yaml
150
+ packages:
151
+ - name: GhostPawJS/questlog@v0.8.0
152
+ registry: questlog
153
+ ```
154
+
155
+ `questlog-registry.yaml`:
156
+
157
+ ```yaml
158
+ packages:
159
+ - type: github_release
160
+ repo_owner: GhostPawJS
161
+ repo_name: questlog
162
+ asset: ghostpaw-questlog-{{trimV .Version}}-{{.OS}}-{{.Arch}}.tar.gz
163
+ format: tar.gz
164
+ replacements: { amd64: x64 }
165
+ overrides:
166
+ - goos: windows
167
+ asset: ghostpaw-questlog-{{trimV .Version}}-windows-{{.Arch}}.zip
168
+ format: zip
169
+ files:
170
+ - name: ghostpaw-questlog
171
+ ```
172
+
173
+ Install scripts verify SHA256SUMS. To verify a downloaded archive's
174
+ [build attestation](https://cli.github.com/manual/gh_attestation_verify):
175
+
176
+ ```sh
177
+ gh attestation verify <archive> -R GhostPawJS/questlog
178
+ ```
179
+
180
+ Set `GHOSTPAW_VERIFY=attestation` for attestation verification in `install.sh`.
181
+ Binaries are unsigned; macOS binaries carry an ad-hoc signature. For a browser
182
+ download on macOS, remove quarantine with
183
+ `xattr -d com.apple.quarantine /path/to/ghostpaw-questlog`.
184
+ Linux binaries require glibc 2.28+; use npx on Alpine.
185
+ See the [binary build workflow](.github/workflows/release-binaries.yml).
92
186
 
93
187
  ## Quick Start
94
188
 
@@ -124,6 +218,16 @@ const dueSoon = read.listDueSoonQuests(db, 7 * 24 * 60 * 60 * 1000);
124
218
  const results = read.searchQuestlog(db, 'vendor');
125
219
  ```
126
220
 
221
+ ## Docs
222
+
223
+ The live demo runs the library in your browser against an in-memory SQLite database. Each view below opens a different part of it:
224
+
225
+ - [Dashboard](https://questlog.ghostpaw.dev/docs/): open, available, overdue and pending work
226
+ - [Intake](https://questlog.ghostpaw.dev/docs/#/intake): capture rumors and triage them into quests
227
+ - [Quests](https://questlog.ghostpaw.dev/docs/#/quests): start, block and finish quests with an outcome
228
+ - [Planning](https://questlog.ghostpaw.dev/docs/#/planning): questlines and scheduling
229
+ - [Search](https://questlog.ghostpaw.dev/docs/#/search): full-text search across the log
230
+
127
231
  ## The Model
128
232
 
129
233
  Seven concepts, strict separation of concerns: