@ycniuqton/devlens 0.1.16 → 0.1.23
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 +29 -9
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/init.js +241 -17
- package/dist/init.js.map +1 -1
- package/dist/server.d.ts +2 -2
- package/dist/server.js +2 -2
- package/dist/server.js.map +1 -1
- package/dist/services/taskStore.d.ts +1 -1
- package/dist/services/taskStore.js +139 -180
- package/dist/services/taskStore.js.map +1 -1
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -183,6 +183,31 @@ When you have a "no commit without approval" rule active:
|
|
|
183
183
|
4. Devlens writes `.devlens/commit-approved.md`
|
|
184
184
|
5. Claude proceeds with the commit
|
|
185
185
|
|
|
186
|
+
## Authentication
|
|
187
|
+
|
|
188
|
+
Devlens requires a password to access the dashboard. A login page is shown on first visit.
|
|
189
|
+
|
|
190
|
+
**Default credentials:**
|
|
191
|
+
|
|
192
|
+
| Username | Password |
|
|
193
|
+
|----------|----------|
|
|
194
|
+
| `admin` | `devlens` |
|
|
195
|
+
|
|
196
|
+
> Change your password immediately after first login via the user icon in the bottom-left of the sidebar.
|
|
197
|
+
|
|
198
|
+
### Change Password
|
|
199
|
+
|
|
200
|
+
1. Open the dashboard and sign in
|
|
201
|
+
2. Click the **user icon** (bottom-left sidebar) → **Change Password**
|
|
202
|
+
3. Enter your current password and a new password (min 4 characters)
|
|
203
|
+
4. Click **Update Password**
|
|
204
|
+
|
|
205
|
+
Credentials are stored as a bcrypt hash in `.devlens/auth.json` (never committed — add to `.gitignore` if needed).
|
|
206
|
+
|
|
207
|
+
### Session
|
|
208
|
+
|
|
209
|
+
Sessions last 7 days. Closing the browser does not log you out. Click the **sign out** button (→ icon, bottom-left) to end the session.
|
|
210
|
+
|
|
186
211
|
## Configuration
|
|
187
212
|
|
|
188
213
|
### Environment Variables
|
|
@@ -207,17 +232,12 @@ In the **Integrations** tab, configure:
|
|
|
207
232
|
|
|
208
233
|
### Tunnel (remote access)
|
|
209
234
|
|
|
210
|
-
From the Integrations tab, click **
|
|
235
|
+
From the Integrations tab, click **Cloudflare Tunnel** or **ngrok**.
|
|
211
236
|
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
brew install cloudflared # macOS
|
|
215
|
-
# https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/downloads/
|
|
237
|
+
- **Cloudflare** — works out of the box, no account needed. The `cloudflared` binary is bundled with Devlens.
|
|
238
|
+
- **ngrok** — requires a free account. Click the ngrok button and paste your auth token when prompted. Get your token at [dashboard.ngrok.com](https://dashboard.ngrok.com/get-started/your-authtoken).
|
|
216
239
|
|
|
217
|
-
|
|
218
|
-
brew install ngrok # macOS
|
|
219
|
-
# https://ngrok.com/download
|
|
220
|
-
```
|
|
240
|
+
**Direct IP Access toggle** — disable to restrict access to the tunnel URL only (re-enabled automatically on server restart so you're never locked out).
|
|
221
241
|
|
|
222
242
|
## API Reference
|
|
223
243
|
|
package/dist/index.js
CHANGED
|
@@ -65,7 +65,7 @@ program
|
|
|
65
65
|
openBrowser: opts.open !== false,
|
|
66
66
|
tunnel: opts.tunnel || false,
|
|
67
67
|
};
|
|
68
|
-
const { httpServer } = (0, server_1.createServer)(options);
|
|
68
|
+
const { httpServer } = await (0, server_1.createServer)(options);
|
|
69
69
|
httpServer.listen(options.port, '0.0.0.0', () => {
|
|
70
70
|
const url = `http://localhost:${options.port}`;
|
|
71
71
|
console.log(`\n Devlens running at ${url}`);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAAoC;AACpC,gDAAwB;AACxB,4CAAoB;AACpB,4CAAoB;AACpB,qCAAwC;AAExC,iCAAoE;AAEpE,MAAM,GAAG,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAEvC,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,SAAS,CAAC;KACf,WAAW,CAAC,6DAA6D,CAAC;KAC1E,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAExB,kCAAkC;AAClC,OAAO;KACJ,OAAO,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;KACrC,WAAW,CAAC,6BAA6B,CAAC;KAC1C,MAAM,CAAC,qBAAqB,EAAE,wDAAwD,CAAC;KACvF,MAAM,CAAC,WAAW,EAAE,mCAAmC,CAAC;KACxD,MAAM,CAAC,UAAU,EAAE,4CAA4C,CAAC;KAChE,MAAM,CAAC,kBAAkB,EAAE,8BAA8B,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;KACzE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACrB,MAAM,UAAU,GAAG,cAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAA,kBAAW,EAAC,UAAU,CAAC,CAAC;IAE3E,MAAM,OAAO,GAAkB;QAC7B,IAAI;QACJ,UAAU;QACV,WAAW,EAAE,IAAI,CAAC,IAAI,KAAK,KAAK;QAChC,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,KAAK;KAC7B,CAAC;IAEF,MAAM,EAAE,UAAU,EAAE,GAAG,IAAA,qBAAY,EAAC,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAAoC;AACpC,gDAAwB;AACxB,4CAAoB;AACpB,4CAAoB;AACpB,qCAAwC;AAExC,iCAAoE;AAEpE,MAAM,GAAG,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAEvC,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,SAAS,CAAC;KACf,WAAW,CAAC,6DAA6D,CAAC;KAC1E,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAExB,kCAAkC;AAClC,OAAO;KACJ,OAAO,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;KACrC,WAAW,CAAC,6BAA6B,CAAC;KAC1C,MAAM,CAAC,qBAAqB,EAAE,wDAAwD,CAAC;KACvF,MAAM,CAAC,WAAW,EAAE,mCAAmC,CAAC;KACxD,MAAM,CAAC,UAAU,EAAE,4CAA4C,CAAC;KAChE,MAAM,CAAC,kBAAkB,EAAE,8BAA8B,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;KACzE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACrB,MAAM,UAAU,GAAG,cAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAA,kBAAW,EAAC,UAAU,CAAC,CAAC;IAE3E,MAAM,OAAO,GAAkB;QAC7B,IAAI;QACJ,UAAU;QACV,WAAW,EAAE,IAAI,CAAC,IAAI,KAAK,KAAK;QAChC,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,KAAK;KAC7B,CAAC;IAEF,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,IAAA,qBAAY,EAAC,OAAO,CAAC,CAAC;IAEnD,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE;QAC9C,MAAM,GAAG,GAAG,oBAAoB,OAAO,CAAC,IAAI,EAAE,CAAC;QAC/C,OAAO,CAAC,GAAG,CAAC,0BAA0B,GAAG,EAAE,CAAC,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,eAAe,OAAO,CAAC,UAAU,IAAI,CAAC,CAAC;QAEnD,+DAA+D;QAC/D,gBAAgB,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QAEnD,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACxB,kDAAO,MAAM,IAAE,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACjE,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,kDAAO,mBAAmB,IAAE,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;gBACvC,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE;oBAC/C,OAAO,CAAC,GAAG,CAAC,aAAa,SAAS,IAAI,CAAC,CAAC;gBAC1C,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACf,OAAO,CAAC,GAAG,CAAC,oBAAoB,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC;YACnD,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEL,2CAA2C;AAC3C,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,yDAAyD,CAAC;KACtE,MAAM,CAAC,qBAAqB,EAAE,oDAAoD,CAAC;KACnF,MAAM,CAAC,kBAAkB,EAAE,mBAAmB,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;KAC9D,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;IACf,MAAM,UAAU,GAAG,cAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7D,OAAO,CAAC,GAAG,CAAC,mCAAmC,UAAU,KAAK,CAAC,CAAC;IAChE,IAAA,kBAAW,EAAC,UAAU,EAAE,IAAI,CAAC,CAAC;AAChC,CAAC,CAAC,CAAC;AAEL,+CAA+C;AAC/C,OAAO;KACJ,OAAO,CAAC,WAAW,CAAC;KACpB,WAAW,CAAC,4CAA4C,CAAC;KACzD,MAAM,CAAC,kBAAkB,EAAE,mBAAmB,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;KAC9D,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;IACf,MAAM,UAAU,GAAG,cAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1C,OAAO,CAAC,GAAG,CAAC,mCAAmC,UAAU,KAAK,CAAC,CAAC;IAChE,IAAA,uBAAgB,EAAC,UAAU,CAAC,CAAC;AAC/B,CAAC,CAAC,CAAC;AAEL,iDAAiD;AACjD,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,uCAAuC,CAAC;KACpD,MAAM,CAAC,kBAAkB,EAAE,mBAAmB,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;KAC9D,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;IACf,MAAM,UAAU,GAAG,cAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;IAEzC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,CAAC,GAAG,CAAC,kCAAkC,UAAU,IAAI,CAAC,CAAC;QAC9D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChB,OAAO;IACT,CAAC;IAED,0BAA0B;IAC1B,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,oBAAoB,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,GAAQ,EAAE,EAAE;QACjE,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;YAC9D,OAAO,CAAC,GAAG,CAAC,4DAA4D,IAAI,CAAC,IAAI,SAAS,CAAC,CAAC;YAC5F,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC;gBAChC,OAAO,CAAC,GAAG,CAAC,kDAAkD,EAAE,IAAI,IAAI,CAAC,IAAI,SAAS,CAAC,CAAC;YAC1F,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,4BAA4B,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YACpD,OAAO,CAAC,GAAG,CAAC,4BAA4B,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC;QAC9D,CAAC;aAAM,CAAC;YACN,gBAAgB,CAAC,UAAU,CAAC,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;YACjE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IACH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QACnB,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;QACjE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IACH,GAAG,CAAC,GAAG,EAAE,CAAC;AACZ,CAAC,CAAC,CAAC;AAEL,uBAAuB;AACvB,SAAS,kBAAkB,CAAC,UAAkB;IAC5C,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IACrD,OAAO,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,gBAAgB,CAAC,UAAkB,EAAE,IAAY;IACxD,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IACrD,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,YAAE,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,UAAU,GAAG,YAAE,CAAC,iBAAiB,EAAE,CAAC;IAC1C,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3C,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YAC3C,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;gBAC/C,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,IAAI,GAAG;QACX,IAAI;QACJ,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,GAAG;QACH,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,UAAU;KACX,CAAC;IAEF,YAAE,CAAC,aAAa,CAAC,kBAAkB,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAEhF,mBAAmB;IACnB,MAAM,OAAO,GAAG,GAAG,EAAE;QACnB,IAAI,CAAC;YAAC,YAAE,CAAC,UAAU,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACjE,CAAC,CAAC;IACF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5D,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7D,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC9B,CAAC;AAED,SAAS,eAAe,CAAC,UAAkB;IACzC,MAAM,QAAQ,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAChD,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1C,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,YAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;IACxD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,UAAkB;IAC1C,IAAI,CAAC;QAAC,YAAE,CAAC,UAAU,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;AACjE,CAAC;AAED,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
package/dist/init.js
CHANGED
|
@@ -144,6 +144,213 @@ done
|
|
|
144
144
|
emit_context "starting-in-background"
|
|
145
145
|
exit 0
|
|
146
146
|
`;
|
|
147
|
+
const SHORT_SKILLS = [
|
|
148
|
+
{ name: 'ss', lines: 50 },
|
|
149
|
+
{ name: 'ss20', lines: 20 },
|
|
150
|
+
{ name: 'ss30', lines: 30 },
|
|
151
|
+
];
|
|
152
|
+
function shortSkillContent(name, lines) {
|
|
153
|
+
return `---
|
|
154
|
+
name: ${name}
|
|
155
|
+
description: Short response mode — answer/explain only, no code, output ≤ ${lines} lines
|
|
156
|
+
---
|
|
157
|
+
|
|
158
|
+
This prompt uses /${name} short-response mode. Follow these constraints for your entire reply:
|
|
159
|
+
- Answer or explain only — do not write, generate, or suggest any code
|
|
160
|
+
- Output must be ≤ ${lines} lines total
|
|
161
|
+
- Be concise and direct; omit preamble and trailing summaries
|
|
162
|
+
`;
|
|
163
|
+
}
|
|
164
|
+
function writeShortResponseSkills(claudeDir) {
|
|
165
|
+
for (const skill of SHORT_SKILLS) {
|
|
166
|
+
const dir = path_1.default.join(claudeDir, 'skills', skill.name);
|
|
167
|
+
if (!fs_1.default.existsSync(dir)) {
|
|
168
|
+
fs_1.default.mkdirSync(dir, { recursive: true });
|
|
169
|
+
}
|
|
170
|
+
fs_1.default.writeFileSync(path_1.default.join(dir, 'SKILL.md'), shortSkillContent(skill.name, skill.lines));
|
|
171
|
+
console.log(` Created skill: .claude/skills/${skill.name} (use /${skill.name} in Claude)`);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
const DOC_SKILLS = {
|
|
175
|
+
sumu: `---
|
|
176
|
+
name: sumu
|
|
177
|
+
description: Merge all version docs of a feature or system into one consolidated version, then delete old sub-versions
|
|
178
|
+
---
|
|
179
|
+
|
|
180
|
+
The user wants to consolidate a feature or system's documentation history into a single up-to-date version.
|
|
181
|
+
|
|
182
|
+
## Steps
|
|
183
|
+
|
|
184
|
+
1. **Identify the domain and feature.**
|
|
185
|
+
- Scan \`/docs/features/\` and \`/docs/systems/\` and list what exists.
|
|
186
|
+
- Cross-reference with the current conversation context to infer which feature is being discussed.
|
|
187
|
+
- Only ask the user if 2 or more candidates are equally likely.
|
|
188
|
+
- If domain is still unclear, ask: \`/docs/features/\` or \`/docs/systems/\`?
|
|
189
|
+
|
|
190
|
+
2. **Read all version folders** under the chosen path, sorted numerically ascending. Read every file inside each version.
|
|
191
|
+
|
|
192
|
+
3. **Synthesize one consolidated doc set** from all versions:
|
|
193
|
+
- \`01-requirements.md\` — final, current requirements only. No history duplication. Max 100 lines.
|
|
194
|
+
- \`02-design.md\` — complete current design, absorbing all changes across versions. No line limit.
|
|
195
|
+
- \`03-plan.md\` — current execution state only (pending/in-progress steps). Max 100 lines.
|
|
196
|
+
|
|
197
|
+
4. **Determine the new version folder name:**
|
|
198
|
+
- Find the highest numeric version folder name
|
|
199
|
+
- New version = highest + 1 (zero-padded to 5 digits, e.g. \`00004\` → \`00005\`)
|
|
200
|
+
- Always use a plain numeric name — no reset naming, no special suffix, no cycle tracking
|
|
201
|
+
|
|
202
|
+
5. **Print the list of folders that will be deleted**, e.g.:
|
|
203
|
+
\`\`\`
|
|
204
|
+
Deleting: 00000-init, 00001, 00002, 00003, 00004
|
|
205
|
+
Creating: 00005
|
|
206
|
+
\`\`\`
|
|
207
|
+
|
|
208
|
+
6. **Write the new version folder** with the 3 consolidated files.
|
|
209
|
+
|
|
210
|
+
7. **Delete all old version folders** — no confirmation needed, just proceed.
|
|
211
|
+
|
|
212
|
+
8. **Report** the new active version and confirm old versions were removed.
|
|
213
|
+
|
|
214
|
+
## Constraints
|
|
215
|
+
- Follow all Feature & System Documentation rules from \`.devlens/rules.md\`
|
|
216
|
+
- Never create more than 3 files per version folder
|
|
217
|
+
- Requirements and plan must stay ≤ 100 lines after consolidation — summarize if needed
|
|
218
|
+
- Do not keep any CURRENT/active marker files
|
|
219
|
+
- After sumu, version count resets to 1 — the new folder is the only version remaining
|
|
220
|
+
`,
|
|
221
|
+
newv: `---
|
|
222
|
+
name: newv
|
|
223
|
+
description: Create a new version for an existing feature or system under /docs/features/ or /docs/systems/, following versioning and line-limit rules
|
|
224
|
+
---
|
|
225
|
+
|
|
226
|
+
The user wants to add a new version to an existing feature or system's documentation.
|
|
227
|
+
|
|
228
|
+
## Steps
|
|
229
|
+
|
|
230
|
+
1. **Identify the domain and feature.**
|
|
231
|
+
- Scan \`/docs/features/\` and \`/docs/systems/\` and list what exists.
|
|
232
|
+
- Cross-reference with the current conversation context to infer which feature is being discussed.
|
|
233
|
+
- Only ask the user if 2 or more candidates are equally likely.
|
|
234
|
+
|
|
235
|
+
2. **Run the pre-write checklist** (from \`.devlens/rules.md\`):
|
|
236
|
+
- Confirm the folder exists under the correct domain
|
|
237
|
+
- List all version folders, find the highest numeric one — that is the active version
|
|
238
|
+
- Count total versions
|
|
239
|
+
- If any check fails → stop and ask the user before proceeding
|
|
240
|
+
|
|
241
|
+
3. **Determine the new version folder name:**
|
|
242
|
+
- If total versions < 5: next increment (e.g. active is \`00002\` → new is \`00003\`)
|
|
243
|
+
- If total versions == 5: do not add another version. Tell the user to run \`/sumu\` first to consolidate, then \`/newv\` again.
|
|
244
|
+
|
|
245
|
+
4. **Ask the user** what changed in this version (if not already described in the prompt).
|
|
246
|
+
|
|
247
|
+
5. **Write the new version folder** with only the changed content:
|
|
248
|
+
- \`01-requirements.md\` — only what changed + explicit statement of what remains unchanged. Max 100 lines.
|
|
249
|
+
- \`02-design.md\` — only design changes. No line limit.
|
|
250
|
+
- \`03-plan.md\` — updated execution steps for this version. Max 100 lines.
|
|
251
|
+
- For a reset version, all 3 files must be fully self-contained.
|
|
252
|
+
|
|
253
|
+
6. **Report** the new version folder name and confirm the active version.
|
|
254
|
+
|
|
255
|
+
## Constraints
|
|
256
|
+
- Follow all Feature & System Documentation rules from \`.devlens/rules.md\`
|
|
257
|
+
- Never create more than 3 files per version folder
|
|
258
|
+
- Never skip version numbers unless user explicitly instructs
|
|
259
|
+
- If any pre-write check fails, stop and ask the user
|
|
260
|
+
`,
|
|
261
|
+
newf: `---
|
|
262
|
+
name: newf
|
|
263
|
+
description: Create a new feature or system documentation folder under /docs/features/ or /docs/systems/ with the initial version
|
|
264
|
+
---
|
|
265
|
+
|
|
266
|
+
The user wants to start documentation for a new feature or system.
|
|
267
|
+
|
|
268
|
+
## Steps
|
|
269
|
+
|
|
270
|
+
1. **Identify the domain.**
|
|
271
|
+
- If not specified in the prompt, ask: is this a feature (\`/docs/features/\`) or a system (\`/docs/systems/\`)?
|
|
272
|
+
|
|
273
|
+
2. **Generate the feature name from the user's description** — do not wait for the user to provide a name.
|
|
274
|
+
- Name must be broad and generic — a top-level domain concept, not an implementation detail.
|
|
275
|
+
- Think: "what is the big topic this belongs to?" not "what is this specific thing?"
|
|
276
|
+
- Good: \`user-auth\`, \`payments\`, \`notifications\`, \`task-management\`
|
|
277
|
+
- Bad: \`password-reset-flow\`, \`stripe-webhook-handler\`, \`email-notification-template\`
|
|
278
|
+
- Use kebab-case.
|
|
279
|
+
|
|
280
|
+
3. **Before creating, scan existing features** under both \`/docs/features/\` and \`/docs/systems/\`.
|
|
281
|
+
- If the description fits naturally under an existing feature, stop and suggest \`/newv\` on that feature instead.
|
|
282
|
+
- Only create a new folder if the domain is genuinely new.
|
|
283
|
+
|
|
284
|
+
4. **Create the initial version folder:** \`<domain>/<feature-name>/00000-init/\`
|
|
285
|
+
|
|
286
|
+
5. **Write the 3 required files** based on the description from the prompt:
|
|
287
|
+
- \`01-requirements.md\` — business intent, functional requirements, constraints. Max 100 lines.
|
|
288
|
+
- \`02-design.md\` — initial design, architecture, flows. No line limit.
|
|
289
|
+
- \`03-plan.md\` — initial execution steps / checklist. Max 100 lines.
|
|
290
|
+
- If detail is thin, write minimal stubs and note what needs to be filled in.
|
|
291
|
+
|
|
292
|
+
6. **Report** the generated name, the created path, and confirm the active version is \`00000-init\`.
|
|
293
|
+
|
|
294
|
+
## Constraints
|
|
295
|
+
- Follow all Feature & System Documentation rules from \`.devlens/rules.md\`
|
|
296
|
+
- Never wait for the user to name the feature — always derive it from context
|
|
297
|
+
- Names must be broad/generic — avoid narrow sub-feature folders
|
|
298
|
+
- Never create more than 3 files in the version folder
|
|
299
|
+
- Requirements and plan must stay ≤ 100 lines
|
|
300
|
+
- If any check fails → stop and ask the user before proceeding
|
|
301
|
+
`,
|
|
302
|
+
};
|
|
303
|
+
function writeDocManagementSkills(claudeDir) {
|
|
304
|
+
for (const [name, content] of Object.entries(DOC_SKILLS)) {
|
|
305
|
+
const dir = path_1.default.join(claudeDir, 'skills', name);
|
|
306
|
+
if (!fs_1.default.existsSync(dir)) {
|
|
307
|
+
fs_1.default.mkdirSync(dir, { recursive: true });
|
|
308
|
+
}
|
|
309
|
+
fs_1.default.writeFileSync(path_1.default.join(dir, 'SKILL.md'), content);
|
|
310
|
+
console.log(` Created skill: .claude/skills/${name} (use /${name} in Claude)`);
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
const DEFAULT_RULES = `# Devlens Rules
|
|
314
|
+
|
|
315
|
+
## Commit Guard (protected)
|
|
316
|
+
- Do not run git commit or git push under any circumstances. Only proceed after receiving an explicit user instruction, and clearly indicate before performing the commit.
|
|
317
|
+
|
|
318
|
+
## Coding Rules
|
|
319
|
+
- Rule 1: Functions ≤ 50 lines, decompose into business steps
|
|
320
|
+
- Rule 2: Max 3 levels of if/else/switch nesting per function
|
|
321
|
+
- Rule 3: Max 3 levels of loop nesting; no helper functions — extract into domain-based classes only
|
|
322
|
+
- Rule 4: Body of any if/else/loop ≤ 15 lines
|
|
323
|
+
- Rule 5: Divide logic by business/processing steps; one step = one domain method
|
|
324
|
+
- Rule 6: Business logic reachable within 3 trace steps (no long forwarding chains)
|
|
325
|
+
- Rule 7: Max 3 levels of class inheritance
|
|
326
|
+
- Rule 8: Comments only at function/class/module top — never inside function bodies
|
|
327
|
+
- Rule 9: Function docs max 3 lines, describe intent not implementation
|
|
328
|
+
- Rule 10: Fix structure instead of adding inline comments
|
|
329
|
+
- Rule 11: Design classes for future features, not just current requirements
|
|
330
|
+
- Rule 12: Concrete implementations must not be entry points; business logic never depends on concrete classes
|
|
331
|
+
- Rule 13: Every extensible domain needs a base class; all implementations inherit from it
|
|
332
|
+
- Rule 14: Each extensible domain needs a Manager service; business logic talks only to Manager
|
|
333
|
+
- Rule 15: Implementation selection must be configurable — no if/switch on concrete types
|
|
334
|
+
- Rule 16: Prefer class-based handlers over functions
|
|
335
|
+
- Rule 17: No magic strings or numbers — all values belong to a domain
|
|
336
|
+
- Rule 18: Use enums or domain constant classes — no standalone constants
|
|
337
|
+
- Rule 19: Always ask "what business concept does this belong to?"
|
|
338
|
+
- Rule 20: Follow modern language conventions; these rules extend/override them
|
|
339
|
+
- Rule 0 (override): Business requirements have absolute priority — ask user if any rule conflicts
|
|
340
|
+
|
|
341
|
+
## Feature & System Documentation
|
|
342
|
+
- Docs live under /docs/features/<name>/<version>/ or /docs/systems/<name>/<version>/
|
|
343
|
+
- Active version = highest numeric folder (no CURRENT/active marker files)
|
|
344
|
+
- First version named 00000-init; increments 00001, 00002 … max 5 versions total
|
|
345
|
+
- At 5 versions, run /sumu to consolidate all into one new version (next plain increment) and delete old ones — count resets to 1
|
|
346
|
+
- Each version folder contains ONLY: 01-requirements.md (≤100 lines), 02-design.md (no limit), 03-plan.md (≤100 lines)
|
|
347
|
+
- Incremental versions write only what changed; state what is unchanged; do not copy full previous content
|
|
348
|
+
- If active version cannot be understood alone, reset is required
|
|
349
|
+
- Feature names must be broad and generic (top-level domain concepts): user-auth, payments, notifications — not narrow sub-feature names like password-reset-flow
|
|
350
|
+
- Before creating a new feature, check if an existing feature could absorb it — prefer /newv over /newf when in doubt
|
|
351
|
+
- When no feature name is given, infer from conversation context + existing folder list — only ask if genuinely ambiguous
|
|
352
|
+
- Before writing docs run checklist: correct domain, correct name, active = max folder, versions ≤ 5, files ≤ 3, line limits respected — if any check fails → stop and ask the user before proceeding
|
|
353
|
+
`;
|
|
147
354
|
// Find and kill any existing devlens server process for this project dir
|
|
148
355
|
function killExistingDevlens(projectDir) {
|
|
149
356
|
try {
|
|
@@ -301,19 +508,33 @@ function initDevlens(projectDir, port) {
|
|
|
301
508
|
}
|
|
302
509
|
const skillContent = `---
|
|
303
510
|
name: devlens
|
|
304
|
-
description: Show the Devlens dashboard URL and status for the current project
|
|
511
|
+
description: Show the Devlens dashboard URL and status for the current project, auto-starting if not running
|
|
305
512
|
---
|
|
306
513
|
|
|
307
514
|
Show the Devlens dashboard URLs for the current project by inspecting running processes (no AI reasoning needed — just print whatever the script returns):
|
|
308
515
|
|
|
309
516
|
\`\`\`!
|
|
310
517
|
DIR="\${CLAUDE_PROJECT_DIR:-$PWD}"
|
|
311
|
-
# Match any node process running devlens (binary, dist/index.js, or symlink) for this dir
|
|
312
518
|
PROC=$(ps -eo pid,args 2>/dev/null | grep -E "node.*(devlens|dist/index\\.js).*start.*--dir[= ]?\${DIR}([ /]|$)" | grep -v grep | head -1)
|
|
313
519
|
|
|
314
520
|
if [ -z "$PROC" ]; then
|
|
315
|
-
|
|
316
|
-
|
|
521
|
+
PORT=$(grep -oE '"port"[[:space:]]*:[[:space:]]*[0-9]+' "\${DIR}/.devlens/runtime.json" 2>/dev/null | grep -oE "[0-9]+" | head -1)
|
|
522
|
+
BIN=""
|
|
523
|
+
command -v devlens &>/dev/null && BIN="devlens"
|
|
524
|
+
[ -z "$BIN" ] && [ -f "\${DIR}/dist/index.js" ] && BIN="node \${DIR}/dist/index.js"
|
|
525
|
+
[ -z "$BIN" ] && [ -f "\${DIR}/node_modules/.bin/devlens" ] && BIN="\${DIR}/node_modules/.bin/devlens"
|
|
526
|
+
if [ -n "$BIN" ] && [ -n "$PORT" ]; then
|
|
527
|
+
echo "DEVLENS_NOT_RUNNING — starting..."
|
|
528
|
+
nohup \$BIN start --dir "\$DIR" --port \$PORT --no-open > /tmp/devlens-\$PORT.log 2>&1 &
|
|
529
|
+
for i in 1 2 3 4 5; do
|
|
530
|
+
sleep 1
|
|
531
|
+
PROC=$(ps -eo pid,args 2>/dev/null | grep -E "node.*(devlens|dist/index\\.js).*start.*--dir[= ]?\${DIR}([ /]|$)" | grep -v grep | head -1)
|
|
532
|
+
[ -n "$PROC" ] && break
|
|
533
|
+
done
|
|
534
|
+
else
|
|
535
|
+
echo "DEVLENS_NOT_RUNNING for \${DIR}"
|
|
536
|
+
exit 0
|
|
537
|
+
fi
|
|
317
538
|
fi
|
|
318
539
|
|
|
319
540
|
PID=$(echo "$PROC" | awk '{print $1}')
|
|
@@ -329,18 +550,22 @@ echo "DEVLENS_RUNNING"
|
|
|
329
550
|
echo " PID: $PID"
|
|
330
551
|
echo " Project: \${DIR}"
|
|
331
552
|
echo " Local: http://localhost:\${PORT}"
|
|
332
|
-
for ip in
|
|
333
|
-
case "
|
|
553
|
+
for ip in \$(hostname -I 2>/dev/null || true); do
|
|
554
|
+
case "\$ip" in
|
|
334
555
|
127.*|::1|fe80*|*:*) continue ;;
|
|
335
556
|
*) echo " Network: http://\${ip}:\${PORT}" ;;
|
|
336
557
|
esac
|
|
337
558
|
done
|
|
338
559
|
\`\`\`
|
|
339
560
|
|
|
340
|
-
|
|
561
|
+
Print the script output verbatim. If it shows \`DEVLENS_NOT_RUNNING — starting...\` followed by a running status, tell the user it was just started. If it ends with \`DEVLENS_NOT_RUNNING for ...\` (no binary found), tell the user Devlens could not be started and suggest running \`devlens init\` first.
|
|
341
562
|
`;
|
|
342
563
|
fs_1.default.writeFileSync(path_1.default.join(skillDir, 'SKILL.md'), skillContent);
|
|
343
564
|
console.log(` Created skill: .claude/skills/devlens (use /devlens in Claude)`);
|
|
565
|
+
// Create /ss, /ss20, /ss30 short-response skills
|
|
566
|
+
writeShortResponseSkills(claudeDir);
|
|
567
|
+
// Create /sumu, /newv, /newf doc management skills
|
|
568
|
+
writeDocManagementSkills(claudeDir);
|
|
344
569
|
// 6. Append the Devlens block to CLAUDE.md (idempotent)
|
|
345
570
|
const claudeMdPath = path_1.default.join(resolvedDir, 'CLAUDE.md');
|
|
346
571
|
const devlensBlock = '## Devlens\nRead and follow all rules in `.devlens/rules.md` before every action.\n';
|
|
@@ -353,17 +578,14 @@ Just print the script output verbatim. If it starts with \`DEVLENS_NOT_RUNNING\`
|
|
|
353
578
|
fs_1.default.writeFileSync(claudeMdPath, existing + sep + devlensBlock);
|
|
354
579
|
console.log(` Updated CLAUDE.md with Devlens rules reference`);
|
|
355
580
|
}
|
|
356
|
-
// 7. Create .devlens/rules.md with default
|
|
581
|
+
// 7. Create .devlens/rules.md with default rules
|
|
357
582
|
const devlensProjectDir = path_1.default.join(resolvedDir, '.devlens');
|
|
358
583
|
if (!fs_1.default.existsSync(devlensProjectDir)) {
|
|
359
584
|
fs_1.default.mkdirSync(devlensProjectDir, { recursive: true });
|
|
360
585
|
}
|
|
361
586
|
const rulesPath = path_1.default.join(devlensProjectDir, 'rules.md');
|
|
362
587
|
if (!fs_1.default.existsSync(rulesPath)) {
|
|
363
|
-
|
|
364
|
-
- Do not run git commit or git push under any circumstances. Only proceed after receiving an explicit user instruction, and clearly indicate before performing the commit.
|
|
365
|
-
`;
|
|
366
|
-
fs_1.default.writeFileSync(rulesPath, defaultRules);
|
|
588
|
+
fs_1.default.writeFileSync(rulesPath, DEFAULT_RULES);
|
|
367
589
|
console.log(` Created .devlens/rules.md with default rules`);
|
|
368
590
|
}
|
|
369
591
|
// Get network IPs for display
|
|
@@ -389,11 +611,13 @@ function uninstallDevlens(projectDir) {
|
|
|
389
611
|
const claudeDir = path_1.default.join(projectDir, '.claude');
|
|
390
612
|
const hooksDir = path_1.default.join(claudeDir, 'hooks');
|
|
391
613
|
const settingsFile = path_1.default.join(claudeDir, 'settings.json');
|
|
392
|
-
// Remove
|
|
393
|
-
const
|
|
394
|
-
|
|
395
|
-
fs_1.default.
|
|
396
|
-
|
|
614
|
+
// Remove skills
|
|
615
|
+
for (const skillName of ['devlens', ...SHORT_SKILLS.map((s) => s.name), ...Object.keys(DOC_SKILLS)]) {
|
|
616
|
+
const skillDir = path_1.default.join(claudeDir, 'skills', skillName);
|
|
617
|
+
if (fs_1.default.existsSync(skillDir)) {
|
|
618
|
+
fs_1.default.rmSync(skillDir, { recursive: true });
|
|
619
|
+
console.log(` Removed: .claude/skills/${skillName}`);
|
|
620
|
+
}
|
|
397
621
|
}
|
|
398
622
|
for (const script of ['devlens-sync.sh', 'devlens-startup.sh', 'devlens-shutdown.sh']) {
|
|
399
623
|
const scriptPath = path_1.default.join(hooksDir, script);
|
package/dist/init.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"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"}
|
package/dist/server.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import http from 'http';
|
|
2
2
|
import { ServerOptions } from './types';
|
|
3
|
-
export declare function createServer(options: ServerOptions): {
|
|
3
|
+
export declare function createServer(options: ServerOptions): Promise<{
|
|
4
4
|
app: import("express-serve-static-core").Express;
|
|
5
5
|
httpServer: http.Server<typeof http.IncomingMessage, typeof http.ServerResponse>;
|
|
6
6
|
wss: import("ws").Server<typeof import("ws"), typeof http.IncomingMessage>;
|
|
7
|
-
}
|
|
7
|
+
}>;
|
package/dist/server.js
CHANGED
|
@@ -23,7 +23,7 @@ const rules_2 = require("./routes/rules");
|
|
|
23
23
|
const browser_1 = require("./routes/browser");
|
|
24
24
|
const settings_2 = require("./routes/settings");
|
|
25
25
|
const auth_2 = require("./routes/auth");
|
|
26
|
-
function createServer(options) {
|
|
26
|
+
async function createServer(options) {
|
|
27
27
|
const app = (0, express_1.default)();
|
|
28
28
|
const httpServer = http_1.default.createServer(app);
|
|
29
29
|
const wss = new ws_1.WebSocketServer({ server: httpServer, path: '/ws' });
|
|
@@ -37,7 +37,7 @@ function createServer(options) {
|
|
|
37
37
|
}));
|
|
38
38
|
// Services
|
|
39
39
|
const gitService = (0, git_1.createGitService)(options.projectDir);
|
|
40
|
-
const taskStore = (0, taskStore_1.createTaskStore)(options.projectDir);
|
|
40
|
+
const taskStore = await (0, taskStore_1.createTaskStore)(options.projectDir);
|
|
41
41
|
const rulesService = (0, rules_1.createRulesService)(options.projectDir);
|
|
42
42
|
const settingsService = (0, settings_1.createSettingsService)(options.projectDir);
|
|
43
43
|
const authService = (0, auth_1.createAuthService)(options.projectDir);
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";;;;;AAqBA,oCAwLC;AA7MD,sDAA8B;AAC9B,gDAAwB;AACxB,gDAAwB;AACxB,sEAAsC;AACtC,2BAAgD;AAEhD,wDAAgC;AAChC,wCAAkD;AAClD,gDAAmD;AACnD,oDAAuD;AACvD,4CAAsD;AACtD,kDAA4D;AAC5D,0CAAoD;AACpD,wCAA2C;AAC3C,0CAAmE;AACnE,wDAA2D;AAC3D,0CAA6C;AAC7C,8CAAiD;AACjD,gDAAmD;AACnD,wCAA2C;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";;;;;AAqBA,oCAwLC;AA7MD,sDAA8B;AAC9B,gDAAwB;AACxB,gDAAwB;AACxB,sEAAsC;AACtC,2BAAgD;AAEhD,wDAAgC;AAChC,wCAAkD;AAClD,gDAAmD;AACnD,oDAAuD;AACvD,4CAAsD;AACtD,kDAA4D;AAC5D,0CAAoD;AACpD,wCAA2C;AAC3C,0CAAmE;AACnE,wDAA2D;AAC3D,0CAA6C;AAC7C,8CAAiD;AACjD,gDAAmD;AACnD,wCAA2C;AAEpC,KAAK,UAAU,YAAY,CAAC,OAAsB;IACvD,MAAM,GAAG,GAAG,IAAA,iBAAO,GAAE,CAAC;IACtB,MAAM,UAAU,GAAG,cAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IAC1C,MAAM,GAAG,GAAG,IAAI,oBAAe,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAErE,aAAa;IACb,GAAG,CAAC,GAAG,CAAC,iBAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACxB,GAAG,CAAC,GAAG,CAAC,IAAA,yBAAO,EAAC;QACd,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;QACzD,MAAM,EAAE,KAAK;QACb,iBAAiB,EAAE,KAAK;QACxB,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE;KAC5D,CAAC,CAAC,CAAC;IAEJ,WAAW;IACX,MAAM,UAAU,GAAG,IAAA,sBAAgB,EAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACxD,MAAM,SAAS,GAAG,MAAM,IAAA,2BAAe,EAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC5D,MAAM,YAAY,GAAG,IAAA,0BAAkB,EAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC5D,MAAM,eAAe,GAAG,IAAA,gCAAqB,EAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAClE,MAAM,WAAW,GAAG,IAAA,wBAAiB,EAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC1D,YAAY,CAAC,aAAa,EAAE,CAAC;IAC7B,kFAAkF;IAClF,eAAe,CAAC,cAAc,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;IAEzD,wCAAwC;IACxC,GAAG,CAAC,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC;IACnC,GAAG,CAAC,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC;IACjC,GAAG,CAAC,MAAM,CAAC,YAAY,GAAG,YAAY,CAAC;IACvC,GAAG,CAAC,MAAM,CAAC,eAAe,GAAG,eAAe,CAAC;IAC7C,GAAG,CAAC,MAAM,CAAC,WAAW,GAAG,WAAW,CAAC;IACrC,GAAG,CAAC,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IAC3C,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAE/B,+DAA+D;IAC/D,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QACzB,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,aAAa,IAAI,EAAE,CAAC;QAC1C,MAAM,OAAO,GAAG,EAAE,KAAK,WAAW,IAAI,EAAE,KAAK,KAAK,IAAI,EAAE,KAAK,kBAAkB,CAAC;QAChF,IAAI,CAAC,OAAO,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC,cAAc,EAAE,CAAC;YAC9D,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;QACnF,CAAC;QACD,IAAI,EAAE,CAAC;IACT,CAAC,CAAC,CAAC;IAEH,0CAA0C;IAC1C,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,iBAAU,CAAC,CAAC;IAEjC,wDAAwD;IACxD,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QACzB,MAAM,eAAe,GAAG,CAAC,CAAE,GAAG,CAAC,OAAe,CAAC,aAAa,CAAC;QAC7D,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAExI,IAAI,CAAC,eAAe,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClC,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;gBAAE,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC,CAAC;YAC9F,OAAO,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAChC,CAAC;QACD,IAAI,EAAE,CAAC;IACT,CAAC,CAAC,CAAC;IAEH,aAAa;IACb,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;QACjC,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QACzB,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,iBAAiB,EAAS,CAAC,EAAE,CAAC;YAClE,KAAK,MAAM,KAAK,IAAI,MAAe,EAAE,CAAC;gBACpC,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ;oBAAE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACjF,CAAC;QACH,CAAC;QACD,GAAG,CAAC,IAAI,CAAC;YACP,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,WAAW,EAAE,cAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC;YAC9C,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,QAAQ,EAAE,oBAAoB,OAAO,CAAC,IAAI,EAAE;YAC5C,WAAW,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,EAAE,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;SAClE,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,iBAAU,CAAC,CAAC;IAC5B,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,mBAAW,CAAC,CAAC;IACnC,GAAG,CAAC,GAAG,CAAC,mBAAmB,EAAE,iCAAkB,CAAC,CAAC;IACjD,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,mBAAW,CAAC,CAAC;IACnC,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,uBAAa,CAAC,CAAC;IACvC,GAAG,CAAC,GAAG,CAAC,eAAe,EAAE,yBAAc,CAAC,CAAC;IAEzC,eAAe;IACf,MAAM,SAAS,GAAG,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACvD,GAAG,CAAC,GAAG,CAAC,iBAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;IAEnC,sBAAsB;IACtB,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;QAC9B,GAAG,CAAC,QAAQ,CAAC,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,eAAe;IACf,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;QACzB,GAAG,CAAC,QAAQ,CAAC,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,6BAA6B;IAC7B,SAAS,SAAS,CAAC,OAAkB;QACnC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACrC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YAC7B,IAAI,MAAM,CAAC,UAAU,KAAK,cAAS,CAAC,IAAI,EAAE,CAAC;gBACzC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,yEAAyE;IACzE,IAAI,OAAO,GAA4C,IAAI,CAAC;IAE5D,MAAM,eAAe,GAAG,KAAK,IAAI,EAAE;QACjC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,CAAC;YACxC,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,SAAS,EAAE,CAAC;YAC5C,SAAS,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;YACtD,SAAS,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QAC5D,CAAC;QAAC,MAAM,CAAC;YACP,yCAAyC;QAC3C,CAAC;IACH,CAAC,CAAC;IAEF,SAAS,YAAY;QACnB,OAAO,GAAG,IAAA,uBAAa,EACrB,OAAO,CAAC,UAAU,EAClB,eAAe,EACf,eAAe,CAAC,sBAAsB,EAAE,CACzC,CAAC;IACJ,CAAC;IAED,YAAY,EAAE,CAAC;IAEf,SAAS,aAAa;QACpB,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAClC,CAAC;QACD,YAAY,EAAE,CAAC;IACjB,CAAC;IAED,GAAG,CAAC,MAAM,CAAC,aAAa,GAAG,aAAa,CAAC;IAEzC,sCAAsC;IACtC,MAAM,SAAS,GAAG,cAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IACxE,MAAM,YAAY,GAAG,kBAAQ,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IACxE,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;QAC7B,SAAS,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,YAAY,CAAC,QAAQ,EAAE,EAAE,EAAS,CAAC,CAAC;IAC1F,CAAC,CAAC,CAAC;IAEH,8BAA8B;IAC9B,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAC7D,MAAM,eAAe,GAAG,kBAAQ,CAAC,KAAK,CAAC;QACrC,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,mBAAmB,CAAC;QAC1C,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,oBAAoB,CAAC;KAC5C,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC;IAE7B,SAAS,sBAAsB;QAC7B,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QACzB,MAAM,WAAW,GAAG,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAC;QAC/D,MAAM,YAAY,GAAG,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,oBAAoB,CAAC,CAAC;QACjE,IAAI,OAAO,GAAkB,IAAI,CAAC;QAClC,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,IAAI,UAAU,GAAkB,IAAI,CAAC;QACrC,IAAI,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC;YAAE,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;QACvF,IAAI,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YAChC,QAAQ,GAAG,IAAI,CAAC;YAChB,MAAM,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;YAC5E,IAAI,CAAC;gBAAE,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAClC,CAAC;QACD,SAAS,CAAC,EAAE,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAS,CAAC,CAAC;IACnG,CAAC;IAED,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,sBAAsB,CAAC,CAAC;IAClD,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,sBAAsB,CAAC,CAAC;IACrD,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,sBAAsB,CAAC,CAAC;IAErD,0CAA0C;IAC1C,MAAM,gBAAgB,GAAG,WAAW,CAAC,GAAG,EAAE;QACxC,IAAA,4BAAoB,EAAC,SAAS,CAAC,CAAC;IAClC,CAAC,EAAE,KAAK,CAAC,CAAC;IAEV,2CAA2C;IAC3C,GAAG,CAAC,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC;IACjC,GAAG,CAAC,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;IAC7B,GAAG,CAAC,MAAM,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;IAE/C,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC;AAClC,CAAC"}
|
|
@@ -24,4 +24,4 @@ export interface TaskStoreService {
|
|
|
24
24
|
getSessions(): SessionInfo[];
|
|
25
25
|
updateSessionStatus(sessionId: string, status: 'active' | 'ended'): void;
|
|
26
26
|
}
|
|
27
|
-
export declare function createTaskStore(projectDir: string): TaskStoreService
|
|
27
|
+
export declare function createTaskStore(projectDir: string): Promise<TaskStoreService>;
|
|
@@ -4,92 +4,84 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.createTaskStore = createTaskStore;
|
|
7
|
-
const
|
|
7
|
+
const sql_js_1 = __importDefault(require("sql.js"));
|
|
8
8
|
const path_1 = __importDefault(require("path"));
|
|
9
9
|
const fs_1 = __importDefault(require("fs"));
|
|
10
10
|
const crypto_1 = __importDefault(require("crypto"));
|
|
11
|
-
const ARCHIVE_AFTER_MS = 60 * 60 * 1000;
|
|
12
|
-
|
|
11
|
+
const ARCHIVE_AFTER_MS = 60 * 60 * 1000;
|
|
12
|
+
const SCHEMA = `
|
|
13
|
+
CREATE TABLE IF NOT EXISTS tasks (
|
|
14
|
+
id TEXT PRIMARY KEY,
|
|
15
|
+
title TEXT NOT NULL,
|
|
16
|
+
description TEXT DEFAULT '',
|
|
17
|
+
status TEXT DEFAULT 'pending',
|
|
18
|
+
priority TEXT DEFAULT 'medium',
|
|
19
|
+
tags TEXT DEFAULT '[]',
|
|
20
|
+
dependencies TEXT DEFAULT '[]',
|
|
21
|
+
created_at TEXT NOT NULL,
|
|
22
|
+
updated_at TEXT NOT NULL,
|
|
23
|
+
completed_at TEXT,
|
|
24
|
+
source TEXT DEFAULT 'local',
|
|
25
|
+
claude_session_id TEXT,
|
|
26
|
+
claude_task_id TEXT,
|
|
27
|
+
active_form TEXT,
|
|
28
|
+
owner TEXT,
|
|
29
|
+
metadata TEXT,
|
|
30
|
+
context TEXT,
|
|
31
|
+
completion_context TEXT
|
|
32
|
+
);
|
|
33
|
+
CREATE TABLE IF NOT EXISTS sessions (
|
|
34
|
+
session_id TEXT PRIMARY KEY,
|
|
35
|
+
name TEXT,
|
|
36
|
+
cwd TEXT,
|
|
37
|
+
pid INTEGER,
|
|
38
|
+
started_at TEXT,
|
|
39
|
+
last_seen_at TEXT,
|
|
40
|
+
status TEXT DEFAULT 'active',
|
|
41
|
+
task_count INTEGER DEFAULT 0
|
|
42
|
+
);
|
|
43
|
+
`;
|
|
44
|
+
async function createTaskStore(projectDir) {
|
|
13
45
|
const devlensDir = path_1.default.join(projectDir, '.devlens');
|
|
14
46
|
if (!fs_1.default.existsSync(devlensDir)) {
|
|
15
47
|
fs_1.default.mkdirSync(devlensDir, { recursive: true });
|
|
16
48
|
}
|
|
17
49
|
const dbPath = path_1.default.join(devlensDir, 'devlens.db');
|
|
18
|
-
const
|
|
19
|
-
|
|
20
|
-
db
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
title TEXT NOT NULL,
|
|
26
|
-
description TEXT DEFAULT '',
|
|
27
|
-
status TEXT DEFAULT 'pending',
|
|
28
|
-
priority TEXT DEFAULT 'medium',
|
|
29
|
-
tags TEXT DEFAULT '[]',
|
|
30
|
-
dependencies TEXT DEFAULT '[]',
|
|
31
|
-
created_at TEXT NOT NULL,
|
|
32
|
-
updated_at TEXT NOT NULL,
|
|
33
|
-
completed_at TEXT,
|
|
34
|
-
source TEXT DEFAULT 'local',
|
|
35
|
-
claude_session_id TEXT,
|
|
36
|
-
claude_task_id TEXT,
|
|
37
|
-
active_form TEXT,
|
|
38
|
-
owner TEXT,
|
|
39
|
-
metadata TEXT,
|
|
40
|
-
context TEXT,
|
|
41
|
-
completion_context TEXT
|
|
42
|
-
)
|
|
43
|
-
`);
|
|
44
|
-
// Migration: add column if missing (for existing DBs)
|
|
50
|
+
const sqlJsDistDir = path_1.default.dirname(require.resolve('sql.js/dist/sql-wasm.js'));
|
|
51
|
+
const SQL = await (0, sql_js_1.default)({ locateFile: (f) => path_1.default.join(sqlJsDistDir, f) });
|
|
52
|
+
const db = fs_1.default.existsSync(dbPath)
|
|
53
|
+
? new SQL.Database(fs_1.default.readFileSync(dbPath))
|
|
54
|
+
: new SQL.Database();
|
|
55
|
+
const persist = () => fs_1.default.writeFileSync(dbPath, Buffer.from(db.export()));
|
|
56
|
+
db.exec(SCHEMA);
|
|
45
57
|
try {
|
|
46
|
-
db.
|
|
58
|
+
db.run('ALTER TABLE tasks ADD COLUMN completion_context TEXT');
|
|
47
59
|
}
|
|
48
60
|
catch { }
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
const upsertSessionStmt = db.prepare(`
|
|
74
|
-
INSERT INTO sessions (session_id, name, cwd, pid, started_at, last_seen_at, status, task_count)
|
|
75
|
-
VALUES (@session_id, @name, @cwd, @pid, @started_at, @last_seen_at, @status, @task_count)
|
|
76
|
-
ON CONFLICT(session_id) DO UPDATE SET
|
|
77
|
-
name = COALESCE(@name, sessions.name),
|
|
78
|
-
cwd = COALESCE(@cwd, sessions.cwd),
|
|
79
|
-
pid = COALESCE(@pid, sessions.pid),
|
|
80
|
-
started_at = COALESCE(@started_at, sessions.started_at),
|
|
81
|
-
last_seen_at = @last_seen_at,
|
|
82
|
-
status = @status,
|
|
83
|
-
task_count = (SELECT COUNT(*) FROM tasks WHERE claude_session_id = @session_id)
|
|
84
|
-
`);
|
|
85
|
-
const selectAllSessionsStmt = db.prepare('SELECT * FROM sessions ORDER BY last_seen_at DESC');
|
|
86
|
-
const updateSessionStatusStmt = db.prepare('UPDATE sessions SET status = ?, last_seen_at = ? WHERE session_id = ?');
|
|
87
|
-
// Auto-archive completed tasks older than 1 hour
|
|
88
|
-
const archiveStmt = db.prepare(`
|
|
89
|
-
UPDATE tasks SET status = 'archived', updated_at = ?
|
|
90
|
-
WHERE status = 'completed' AND completed_at IS NOT NULL
|
|
91
|
-
AND (julianday(?) - julianday(completed_at)) * 86400000 > ?
|
|
92
|
-
`);
|
|
61
|
+
persist();
|
|
62
|
+
function all(sql, params) {
|
|
63
|
+
const stmt = db.prepare(sql);
|
|
64
|
+
const rows = [];
|
|
65
|
+
if (params)
|
|
66
|
+
stmt.bind(params);
|
|
67
|
+
while (stmt.step())
|
|
68
|
+
rows.push(stmt.getAsObject());
|
|
69
|
+
stmt.free();
|
|
70
|
+
return rows;
|
|
71
|
+
}
|
|
72
|
+
function first(sql, params) {
|
|
73
|
+
const stmt = db.prepare(sql);
|
|
74
|
+
if (params)
|
|
75
|
+
stmt.bind(params);
|
|
76
|
+
const row = stmt.step() ? stmt.getAsObject() : undefined;
|
|
77
|
+
stmt.free();
|
|
78
|
+
return row;
|
|
79
|
+
}
|
|
80
|
+
function run(sql, params) {
|
|
81
|
+
const stmt = db.prepare(sql);
|
|
82
|
+
stmt.run(params || {});
|
|
83
|
+
stmt.free();
|
|
84
|
+
}
|
|
93
85
|
function rowToTask(row) {
|
|
94
86
|
return {
|
|
95
87
|
id: row.id,
|
|
@@ -112,137 +104,103 @@ function createTaskStore(projectDir) {
|
|
|
112
104
|
completionContext: row.completion_context || undefined,
|
|
113
105
|
};
|
|
114
106
|
}
|
|
107
|
+
function buildUpdate(id, input) {
|
|
108
|
+
const sets = [];
|
|
109
|
+
const params = { '@id': id };
|
|
110
|
+
const field = (col, val) => { sets.push(`${col} = @${col}`); params[`@${col}`] = val; };
|
|
111
|
+
if (input.title !== undefined)
|
|
112
|
+
field('title', input.title);
|
|
113
|
+
if (input.description !== undefined)
|
|
114
|
+
field('description', input.description);
|
|
115
|
+
if (input.status !== undefined)
|
|
116
|
+
field('status', input.status);
|
|
117
|
+
if (input.priority !== undefined)
|
|
118
|
+
field('priority', input.priority);
|
|
119
|
+
if (input.tags !== undefined)
|
|
120
|
+
field('tags', JSON.stringify(input.tags));
|
|
121
|
+
if (input.dependencies !== undefined)
|
|
122
|
+
field('dependencies', JSON.stringify(input.dependencies));
|
|
123
|
+
if (input.claudeSessionId !== undefined)
|
|
124
|
+
field('claude_session_id', input.claudeSessionId);
|
|
125
|
+
if (input.claudeTaskId !== undefined)
|
|
126
|
+
field('claude_task_id', input.claudeTaskId);
|
|
127
|
+
if (input.activeForm !== undefined)
|
|
128
|
+
field('active_form', input.activeForm);
|
|
129
|
+
if (input.owner !== undefined)
|
|
130
|
+
field('owner', input.owner);
|
|
131
|
+
if (input.metadata !== undefined)
|
|
132
|
+
field('metadata', JSON.stringify(input.metadata));
|
|
133
|
+
if (input.context !== undefined)
|
|
134
|
+
field('context', input.context);
|
|
135
|
+
if (input.completionContext !== undefined)
|
|
136
|
+
field('completion_context', input.completionContext);
|
|
137
|
+
field('updated_at', new Date().toISOString());
|
|
138
|
+
return { sets, params };
|
|
139
|
+
}
|
|
115
140
|
return {
|
|
116
141
|
async getTasks(filter) {
|
|
117
|
-
// Auto-archive old completed tasks
|
|
118
142
|
const now = new Date().toISOString();
|
|
119
|
-
|
|
120
|
-
|
|
143
|
+
run(`UPDATE tasks SET status = 'archived', updated_at = @now
|
|
144
|
+
WHERE status = 'completed' AND completed_at IS NOT NULL
|
|
145
|
+
AND (julianday(@now) - julianday(completed_at)) * 86400000 > @ms`, { '@now': now, '@ms': ARCHIVE_AFTER_MS });
|
|
121
146
|
if (filter?.status && filter?.sessionId) {
|
|
122
|
-
|
|
123
|
-
}
|
|
124
|
-
else if (filter?.sessionId) {
|
|
125
|
-
rows = selectBySessionStmt.all(filter.sessionId);
|
|
147
|
+
return all('SELECT * FROM tasks WHERE status = @s AND claude_session_id = @sid ORDER BY created_at DESC', { '@s': filter.status, '@sid': filter.sessionId }).map(rowToTask);
|
|
126
148
|
}
|
|
127
|
-
|
|
128
|
-
|
|
149
|
+
if (filter?.sessionId) {
|
|
150
|
+
return all('SELECT * FROM tasks WHERE claude_session_id = @sid ORDER BY created_at DESC', { '@sid': filter.sessionId }).map(rowToTask);
|
|
129
151
|
}
|
|
130
|
-
|
|
131
|
-
|
|
152
|
+
if (filter?.status) {
|
|
153
|
+
return all('SELECT * FROM tasks WHERE status = @s ORDER BY created_at DESC', { '@s': filter.status }).map(rowToTask);
|
|
132
154
|
}
|
|
133
|
-
return
|
|
155
|
+
return all('SELECT * FROM tasks ORDER BY created_at DESC').map(rowToTask);
|
|
134
156
|
},
|
|
135
157
|
async getTask(id) {
|
|
136
|
-
const row =
|
|
158
|
+
const row = first('SELECT * FROM tasks WHERE id = @id', { '@id': id });
|
|
137
159
|
return row ? rowToTask(row) : null;
|
|
138
160
|
},
|
|
139
161
|
async createTask(input) {
|
|
140
162
|
const now = new Date().toISOString();
|
|
141
163
|
const id = crypto_1.default.randomUUID();
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
status: input.status || 'pending',
|
|
147
|
-
priority: input.priority || 'medium',
|
|
148
|
-
tags: JSON.stringify(input.tags || []),
|
|
149
|
-
dependencies: JSON.stringify(input.dependencies || []),
|
|
150
|
-
created_at: now,
|
|
151
|
-
updated_at: now,
|
|
152
|
-
source: 'local',
|
|
153
|
-
});
|
|
154
|
-
return rowToTask(selectByIdStmt.get(id));
|
|
164
|
+
run(`INSERT INTO tasks (id, title, description, status, priority, tags, dependencies, created_at, updated_at, source)
|
|
165
|
+
VALUES (@id, @title, @desc, @status, @priority, @tags, @deps, @now, @now, @source)`, { '@id': id, '@title': input.title, '@desc': input.description || '', '@status': input.status || 'pending', '@priority': input.priority || 'medium', '@tags': JSON.stringify(input.tags || []), '@deps': JSON.stringify(input.dependencies || []), '@now': now, '@source': 'local' });
|
|
166
|
+
persist();
|
|
167
|
+
return rowToTask(first('SELECT * FROM tasks WHERE id = @id', { '@id': id }));
|
|
155
168
|
},
|
|
156
169
|
async updateTask(id, input) {
|
|
157
|
-
const existing =
|
|
170
|
+
const existing = first('SELECT * FROM tasks WHERE id = @id', { '@id': id });
|
|
158
171
|
if (!existing)
|
|
159
172
|
throw new Error('Task not found');
|
|
160
|
-
const
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
values.title = input.title;
|
|
165
|
-
}
|
|
166
|
-
if (input.description !== undefined) {
|
|
167
|
-
updates.push('description = @description');
|
|
168
|
-
values.description = input.description;
|
|
169
|
-
}
|
|
170
|
-
if (input.status !== undefined) {
|
|
171
|
-
updates.push('status = @status');
|
|
172
|
-
values.status = input.status;
|
|
173
|
-
// Track completion time
|
|
174
|
-
if (input.status === 'completed' && existing.status !== 'completed') {
|
|
175
|
-
updates.push('completed_at = @completed_at');
|
|
176
|
-
values.completed_at = new Date().toISOString();
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
if (input.priority !== undefined) {
|
|
180
|
-
updates.push('priority = @priority');
|
|
181
|
-
values.priority = input.priority;
|
|
182
|
-
}
|
|
183
|
-
if (input.tags !== undefined) {
|
|
184
|
-
updates.push('tags = @tags');
|
|
185
|
-
values.tags = JSON.stringify(input.tags);
|
|
186
|
-
}
|
|
187
|
-
if (input.dependencies !== undefined) {
|
|
188
|
-
updates.push('dependencies = @dependencies');
|
|
189
|
-
values.dependencies = JSON.stringify(input.dependencies);
|
|
190
|
-
}
|
|
191
|
-
// Claude-specific fields
|
|
192
|
-
if (input.claudeSessionId !== undefined) {
|
|
193
|
-
updates.push('claude_session_id = @claude_session_id');
|
|
194
|
-
values.claude_session_id = input.claudeSessionId;
|
|
195
|
-
}
|
|
196
|
-
if (input.claudeTaskId !== undefined) {
|
|
197
|
-
updates.push('claude_task_id = @claude_task_id');
|
|
198
|
-
values.claude_task_id = input.claudeTaskId;
|
|
199
|
-
}
|
|
200
|
-
if (input.activeForm !== undefined) {
|
|
201
|
-
updates.push('active_form = @active_form');
|
|
202
|
-
values.active_form = input.activeForm;
|
|
203
|
-
}
|
|
204
|
-
if (input.owner !== undefined) {
|
|
205
|
-
updates.push('owner = @owner');
|
|
206
|
-
values.owner = input.owner;
|
|
207
|
-
}
|
|
208
|
-
if (input.metadata !== undefined) {
|
|
209
|
-
updates.push('metadata = @metadata');
|
|
210
|
-
values.metadata = JSON.stringify(input.metadata);
|
|
211
|
-
}
|
|
212
|
-
if (input.context !== undefined) {
|
|
213
|
-
updates.push('context = @context');
|
|
214
|
-
values.context = input.context;
|
|
215
|
-
}
|
|
216
|
-
if (input.completionContext !== undefined) {
|
|
217
|
-
updates.push('completion_context = @completion_context');
|
|
218
|
-
values.completion_context = input.completionContext;
|
|
173
|
+
const { sets, params } = buildUpdate(id, input);
|
|
174
|
+
if (input.status === 'completed' && existing.status !== 'completed') {
|
|
175
|
+
sets.splice(sets.indexOf('updated_at = @updated_at'), 0, 'completed_at = @completed_at');
|
|
176
|
+
params['@completed_at'] = new Date().toISOString();
|
|
219
177
|
}
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
db.prepare(`UPDATE tasks SET ${updates.join(', ')} WHERE id = @id`).run(values);
|
|
178
|
+
if (sets.length > 1) {
|
|
179
|
+
run(`UPDATE tasks SET ${sets.join(', ')} WHERE id = @id`, params);
|
|
180
|
+
persist();
|
|
224
181
|
}
|
|
225
|
-
return rowToTask(
|
|
182
|
+
return rowToTask(first('SELECT * FROM tasks WHERE id = @id', { '@id': id }));
|
|
226
183
|
},
|
|
227
184
|
async deleteTask(id) {
|
|
228
|
-
|
|
185
|
+
run('DELETE FROM tasks WHERE id = @id', { '@id': id });
|
|
186
|
+
persist();
|
|
229
187
|
},
|
|
230
188
|
upsertSession(info) {
|
|
231
189
|
const now = new Date().toISOString();
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
190
|
+
run(`INSERT INTO sessions (session_id, name, cwd, pid, started_at, last_seen_at, status, task_count)
|
|
191
|
+
VALUES (@session_id, @name, @cwd, @pid, @started_at, @last_seen_at, @status, 0)
|
|
192
|
+
ON CONFLICT(session_id) DO UPDATE SET
|
|
193
|
+
name = COALESCE(@name, sessions.name),
|
|
194
|
+
cwd = COALESCE(@cwd, sessions.cwd),
|
|
195
|
+
pid = COALESCE(@pid, sessions.pid),
|
|
196
|
+
started_at = COALESCE(@started_at, sessions.started_at),
|
|
197
|
+
last_seen_at = @last_seen_at,
|
|
198
|
+
status = @status,
|
|
199
|
+
task_count = (SELECT COUNT(*) FROM tasks WHERE claude_session_id = @session_id)`, { '@session_id': info.sessionId, '@name': info.name || null, '@cwd': info.cwd || null, '@pid': info.pid || null, '@started_at': info.startedAt || null, '@last_seen_at': now, '@status': info.status || 'active' });
|
|
200
|
+
persist();
|
|
242
201
|
},
|
|
243
202
|
getSessions() {
|
|
244
|
-
|
|
245
|
-
return rows.map(r => ({
|
|
203
|
+
return all('SELECT * FROM sessions ORDER BY last_seen_at DESC').map(r => ({
|
|
246
204
|
sessionId: r.session_id,
|
|
247
205
|
name: r.name || undefined,
|
|
248
206
|
cwd: r.cwd || undefined,
|
|
@@ -254,7 +212,8 @@ function createTaskStore(projectDir) {
|
|
|
254
212
|
}));
|
|
255
213
|
},
|
|
256
214
|
updateSessionStatus(sessionId, status) {
|
|
257
|
-
|
|
215
|
+
run('UPDATE sessions SET status = @status, last_seen_at = @now WHERE session_id = @id', { '@status': status, '@now': new Date().toISOString(), '@id': sessionId });
|
|
216
|
+
persist();
|
|
258
217
|
},
|
|
259
218
|
};
|
|
260
219
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taskStore.js","sourceRoot":"","sources":["../../src/services/taskStore.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"taskStore.js","sourceRoot":"","sources":["../../src/services/taskStore.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ycniuqton/devlens",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.23",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"dependencies": {
|
|
32
32
|
"@ycniuqton/devlens": "^0.1.13",
|
|
33
33
|
"bcryptjs": "^3.0.3",
|
|
34
|
-
"
|
|
34
|
+
"sql.js": "^1.12.0",
|
|
35
35
|
"chokidar": "^3.6.0",
|
|
36
36
|
"cloudflared": "^0.7.1",
|
|
37
37
|
"commander": "^12.0.0",
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
},
|
|
47
47
|
"devDependencies": {
|
|
48
48
|
"@types/bcryptjs": "^2.4.6",
|
|
49
|
-
"@types/
|
|
49
|
+
"@types/sql.js": "^1.4.9",
|
|
50
50
|
"@types/cookie-parser": "^1.4.10",
|
|
51
51
|
"@types/express": "^4.17.21",
|
|
52
52
|
"@types/express-session": "^1.19.0",
|