@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 +118 -14
- package/dist/cli.js +2935 -2649
- package/dist/index.cjs +10 -0
- package/dist/index.js +10 -0
- package/dist/mcp-server.js +11 -1
- package/dist/mcp.cjs +11 -1
- package/dist/mcp.js +11 -1
- package/package.json +12 -4
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
|
-
[](https://www.npmjs.com/package/@ghostpaw/questlog)
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
5
|
+
[](https://www.npmjs.com/package/@ghostpaw/questlog) [](https://github.com/GhostPawJS/questlog/actions/workflows/ci.yml) [](https://questlog.ghostpaw.dev/) [](package.json) [](https://registry.modelcontextprotocol.io/v0.1/servers/io.github.GhostPawJS%2Fquestlog/versions/latest) [](https://nodejs.org) [](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
|
-
|
|
68
|
-
|
|
69
|
-
|
|
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
|
-
|
|
88
|
-
|
|
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
|
-
|
|
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:
|