@pcircle/footprint 1.2.1 → 1.2.2

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.
Files changed (48) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +21 -21
  3. package/SKILL.md +45 -45
  4. package/dist/src/index.js +8 -8
  5. package/dist/src/index.js.map +1 -1
  6. package/dist/src/lib/storage/export.d.ts +2 -2
  7. package/dist/src/lib/storage/export.d.ts.map +1 -1
  8. package/dist/src/lib/storage/export.js +39 -39
  9. package/dist/src/lib/storage/export.js.map +1 -1
  10. package/dist/src/tools/capture-footprint.js +1 -1
  11. package/dist/src/tools/capture-footprint.js.map +1 -1
  12. package/dist/src/tools/delete-footprints.d.ts +2 -2
  13. package/dist/src/tools/delete-footprints.d.ts.map +1 -1
  14. package/dist/src/tools/delete-footprints.js +4 -4
  15. package/dist/src/tools/delete-footprints.js.map +1 -1
  16. package/dist/src/tools/export-footprints.d.ts +4 -4
  17. package/dist/src/tools/export-footprints.d.ts.map +1 -1
  18. package/dist/src/tools/export-footprints.js +6 -6
  19. package/dist/src/tools/export-footprints.js.map +1 -1
  20. package/dist/src/tools/get-footprint.js +19 -19
  21. package/dist/src/tools/get-footprint.js.map +1 -1
  22. package/dist/src/tools/list-footprints.d.ts +2 -2
  23. package/dist/src/tools/list-footprints.js +11 -11
  24. package/dist/src/tools/list-footprints.js.map +1 -1
  25. package/dist/src/tools/search-footprints.d.ts +2 -2
  26. package/dist/src/tools/search-footprints.js +11 -11
  27. package/dist/src/tools/search-footprints.js.map +1 -1
  28. package/dist/src/tools/suggest-capture.js +1 -1
  29. package/dist/src/tools/suggest-capture.js.map +1 -1
  30. package/dist/src/tools/verify-footprint.js +11 -11
  31. package/dist/src/tools/verify-footprint.js.map +1 -1
  32. package/dist/src/ui/register.js +2 -2
  33. package/dist/src/ui/register.js.map +1 -1
  34. package/dist/tests/error-handling.test.js +2 -2
  35. package/dist/tests/error-handling.test.js.map +1 -1
  36. package/dist/tests/fixtures.js +2 -2
  37. package/dist/tests/fixtures.js.map +1 -1
  38. package/dist/tests/integration.test.js +12 -12
  39. package/dist/tests/integration.test.js.map +1 -1
  40. package/dist/tests/resources.test.js +14 -14
  41. package/dist/tests/resources.test.js.map +1 -1
  42. package/dist/tests/tools.test.js +4 -4
  43. package/dist/tests/tools.test.js.map +1 -1
  44. package/dist/ui/dashboard.html +49 -49
  45. package/dist/ui/detail.html +9 -9
  46. package/dist/ui/export.html +17 -17
  47. package/dist/ui-tmp/ui/export.html +17 -17
  48. package/package.json +3 -3
package/LICENSE CHANGED
@@ -18,4 +18,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
18
  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
19
  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
20
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
21
+ SOFTWARE.
package/README.md CHANGED
@@ -3,11 +3,11 @@
3
3
  [![npm version](https://img.shields.io/npm/v/@pcircle/footprint)](https://www.npmjs.com/package/@pcircle/footprint)
4
4
  [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
5
5
 
6
- Model Context Protocol (MCP) server that automatically captures and encrypts LLM conversations as legal evidence.
6
+ Model Context Protocol (MCP) server that automatically captures and encrypts LLM conversations as timestamped footprints.
7
7
 
8
8
  ## Why Footprint?
9
9
 
10
- - **Prove IP Ownership** - Timestamped evidence of LLM-assisted work
10
+ - **Prove IP Ownership** - Timestamped footprints of LLM-assisted work
11
11
  - **Zero Effort** - Automatic capture via MCP protocol
12
12
  - **Privacy First** - End-to-end encrypted, locally stored
13
13
  - **Legally Valid** - Git timestamps + SHA-256 checksums
@@ -23,7 +23,7 @@ npm install -g @pcircle/footprint
23
23
  1. **Set environment variables:**
24
24
 
25
25
  ```bash
26
- export FOOTPRINT_DB_PATH="./evidence.db"
26
+ export FOOTPRINT_DB_PATH="./footprints.db"
27
27
  export FOOTPRINT_PASSWORD="your-secure-password"
28
28
  ```
29
29
 
@@ -36,7 +36,7 @@ export FOOTPRINT_PASSWORD="your-secure-password"
36
36
  "command": "npx",
37
37
  "args": ["footprint"],
38
38
  "env": {
39
- "FOOTPRINT_DB_PATH": "/path/to/evidence.db",
39
+ "FOOTPRINT_DB_PATH": "/path/to/footprints.db",
40
40
  "FOOTPRINT_PASSWORD": "your-password"
41
41
  }
42
42
  }
@@ -44,14 +44,14 @@ export FOOTPRINT_PASSWORD="your-secure-password"
44
44
  }
45
45
  ```
46
46
 
47
- 3. **Restart Claude Desktop** - Evidence collection starts automatically
47
+ 3. **Restart Claude Desktop** - Footprint collection starts automatically
48
48
 
49
49
  ## Features
50
50
 
51
51
  - 🔐 XChaCha20-Poly1305 encryption
52
52
  - 🕒 Git commit timestamps
53
53
  - 📦 Tamper-proof ZIP exports
54
- - 🔍 Search and retrieve evidence
54
+ - 🔍 Search and retrieve footprints
55
55
  - 🤖 AI-powered capture suggestions
56
56
  - ✅ Integrity verification
57
57
  - 🏷️ Tag management
@@ -100,7 +100,7 @@ src/
100
100
 
101
101
  #### capture-footprint
102
102
 
103
- Captures and encrypts an LLM conversation as evidence.
103
+ Captures and encrypts an LLM conversation as a footprint.
104
104
 
105
105
  **Parameters:**
106
106
 
@@ -112,7 +112,7 @@ Captures and encrypts an LLM conversation as evidence.
112
112
 
113
113
  #### list-footprints
114
114
 
115
- Lists all captured evidence with pagination support.
115
+ Lists all captured footprints with pagination support.
116
116
 
117
117
  **Parameters:**
118
118
 
@@ -121,26 +121,26 @@ Lists all captured evidence with pagination support.
121
121
 
122
122
  #### get-footprint
123
123
 
124
- Retrieves and decrypts specific evidence by ID.
124
+ Retrieves and decrypts a specific footprint by ID.
125
125
 
126
126
  **Parameters:**
127
127
 
128
- - `id` - Evidence ID
128
+ - `id` - Footprint ID
129
129
 
130
130
  #### export-footprints
131
131
 
132
- Exports evidence to tamper-proof encrypted ZIP archive.
132
+ Exports footprints to tamper-proof encrypted ZIP archive.
133
133
 
134
134
  **Parameters:**
135
135
 
136
- - `evidenceIds` - Array of evidence IDs to export
136
+ - `ids` - Array of footprint IDs to export
137
137
  - `includeGitInfo` (optional) - Include git metadata
138
138
 
139
139
  ### Search & Discovery
140
140
 
141
141
  #### search-footprints
142
142
 
143
- Search and filter evidence by query, tags, or date range.
143
+ Search and filter footprints by query, tags, or date range.
144
144
 
145
145
  **Parameters:**
146
146
 
@@ -153,7 +153,7 @@ Search and filter evidence by query, tags, or date range.
153
153
 
154
154
  #### suggest-capture
155
155
 
156
- Analyze conversation content and suggest whether to capture it as evidence.
156
+ Analyze conversation content and suggest whether to capture it as a footprint.
157
157
 
158
158
  **Parameters:**
159
159
 
@@ -171,31 +171,31 @@ Analyze conversation content and suggest whether to capture it as evidence.
171
171
 
172
172
  #### verify-footprint
173
173
 
174
- Verify the integrity and authenticity of captured evidence.
174
+ Verify the integrity and authenticity of a captured footprint.
175
175
 
176
176
  **Parameters:**
177
177
 
178
- - `id` - Evidence ID to verify
178
+ - `id` - Footprint ID to verify
179
179
 
180
180
  **Returns:**
181
181
 
182
182
  - `verified` - Overall verification status
183
183
  - `checks` - Detailed checks (content integrity, git timestamp, encryption)
184
- - `legalReadiness` - Whether evidence meets legal standards
184
+ - `legalReadiness` - Whether footprint meets legal standards
185
185
 
186
186
  ### Management
187
187
 
188
188
  #### delete-footprints
189
189
 
190
- Delete evidence records permanently.
190
+ Delete footprint records permanently.
191
191
 
192
192
  **Parameters:**
193
193
 
194
- - `evidenceIds` - Array of evidence IDs to delete
194
+ - `ids` - Array of footprint IDs to delete
195
195
 
196
196
  #### rename-tag
197
197
 
198
- Rename a tag across all evidence.
198
+ Rename a tag across all footprints.
199
199
 
200
200
  **Parameters:**
201
201
 
@@ -204,7 +204,7 @@ Rename a tag across all evidence.
204
204
 
205
205
  #### remove-tag
206
206
 
207
- Remove a tag from all evidence.
207
+ Remove a tag from all footprints.
208
208
 
209
209
  **Parameters:**
210
210
 
package/SKILL.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  > MCP server for capturing and encrypting AI conversations as verifiable records with Git timestamps.
4
4
 
5
- **Package:** `@pcircle/footprint` (v1.1.1)
5
+ **Package:** `@pcircle/footprint` (v1.2.1)
6
6
  **Protocol:** Model Context Protocol (MCP)
7
7
  **License:** MIT
8
8
 
@@ -26,7 +26,7 @@ Should I capture this conversation?
26
26
  │ ├─ Basic troubleshooting
27
27
  │ └─ Draft/brainstorming sessions (unless finalized)
28
28
  └─ Uncertain content → ASK user
29
- └─ "Would you like me to save this conversation as evidence?"
29
+ └─ "Would you like me to save this conversation as a footprint?"
30
30
  ```
31
31
 
32
32
  ## Specific Trigger Patterns
@@ -53,7 +53,7 @@ Should I capture this conversation?
53
53
  ## Available Tools
54
54
 
55
55
  ### 1. `capture-footprint`
56
- Save a conversation as encrypted evidence.
56
+ Save a conversation as encrypted footprint.
57
57
 
58
58
  **Input Parameters:**
59
59
  ```json
@@ -68,22 +68,22 @@ Save a conversation as encrypted evidence.
68
68
 
69
69
  **Expected Output (text):**
70
70
  ```
71
- Evidence captured successfully
72
- - Evidence ID: `550e8400-e29b-41d4-a716-446655440000`
71
+ Footprint captured successfully
72
+ - Footprint ID: `550e8400-e29b-41d4-a716-446655440000`
73
73
  - Conversation ID: `api-auth-decision-2026-01-28`
74
74
  - Messages: 15
75
75
  - Tags: api,oauth,security,decision,approved
76
76
  - Git hash: `a1b2c3d4e5f6789...`
77
77
  - Created: 2026-01-28T14:30:45Z
78
78
 
79
- Keep this Evidence ID safe for future reference.
79
+ Keep this Footprint ID safe for future reference.
80
80
  ```
81
81
 
82
82
  **Expected Output (structuredContent):**
83
83
  ```json
84
84
  {
85
- "type": "evidence_created",
86
- "evidenceId": "550e8400-e29b-41d4-a716-446655440000",
85
+ "type": "footprint_created",
86
+ "footprintId": "550e8400-e29b-41d4-a716-446655440000",
87
87
  "conversationId": "api-auth-decision-2026-01-28",
88
88
  "messageCount": 15,
89
89
  "tags": ["api", "oauth", "security", "decision", "approved"],
@@ -94,7 +94,7 @@ Keep this Evidence ID safe for future reference.
94
94
  ```
95
95
 
96
96
  ### 2. `list-footprints`
97
- List all captured evidence (metadata only).
97
+ List all captured footprints (metadata only).
98
98
 
99
99
  **Input Parameters:**
100
100
  ```json
@@ -106,7 +106,7 @@ List all captured evidence (metadata only).
106
106
 
107
107
  **Expected Output (text):**
108
108
  ```
109
- 📋 Evidence Archive (10 most recent)
109
+ 📋 Footprint Archive (10 most recent)
110
110
  1. api-auth-decision-2026-01-28 | 15 msgs | api,oauth,security
111
111
  2. patent-algorithm-2026-01-27 | 32 msgs | ip,patent,algorithm
112
112
  3. contract-review-2026-01-26 | 8 msgs | legal,contract
@@ -116,9 +116,9 @@ List all captured evidence (metadata only).
116
116
  **Expected Output (structuredContent):**
117
117
  ```json
118
118
  {
119
- "type": "evidence_list",
119
+ "type": "footprint_list",
120
120
  "total": 25,
121
- "evidences": [
121
+ "footprints": [
122
122
  {
123
123
  "id": "550e8400-e29b-41d4-a716-446655440000",
124
124
  "conversationId": "api-auth-decision-2026-01-28",
@@ -131,7 +131,7 @@ List all captured evidence (metadata only).
131
131
  ```
132
132
 
133
133
  ### 3. `get-footprint`
134
- Retrieve and decrypt specific evidence.
134
+ Retrieve and decrypt a specific footprint.
135
135
 
136
136
  **Input Parameters:**
137
137
  ```json
@@ -142,7 +142,7 @@ Retrieve and decrypt specific evidence.
142
142
 
143
143
  **Expected Output (text):**
144
144
  ```
145
- 📄 Evidence Retrieved
145
+ 📄 Footprint Retrieved
146
146
  - ID: 550e8400-e29b-41d4-a716-446655440000
147
147
  - Created: 2026-01-28T14:30:45Z
148
148
  - Provider: Claude Sonnet 4.5
@@ -154,7 +154,7 @@ Assistant: I recommend using PKCE flow...
154
154
  ```
155
155
 
156
156
  ### 4. `search-footprints`
157
- Find evidence by content or tags.
157
+ Find footprints by content or tags.
158
158
 
159
159
  **Input Parameters:**
160
160
  ```json
@@ -166,7 +166,7 @@ Find evidence by content or tags.
166
166
  ```
167
167
 
168
168
  ### 5. `export-footprints`
169
- Export evidence as encrypted archive.
169
+ Export footprints as encrypted archive.
170
170
 
171
171
  **Input Parameters:**
172
172
  ```json
@@ -179,8 +179,8 @@ Export evidence as encrypted archive.
179
179
  **Expected Output (structuredContent):**
180
180
  ```json
181
181
  {
182
- "type": "evidence_export",
183
- "filename": "evidence-550e8400-export.zip",
182
+ "type": "footprint_export",
183
+ "filename": "footprint-550e8400-export.zip",
184
184
  "base64Data": "UEsDBBQAAAAIAL...",
185
185
  "size": 2048,
186
186
  "checksum": "sha256:a1b2c3d4..."
@@ -188,7 +188,7 @@ Export evidence as encrypted archive.
188
188
  ```
189
189
 
190
190
  ### 6. `verify-footprint`
191
- Verify evidence integrity (checksum + Git timestamp).
191
+ Verify footprint integrity (checksum + Git timestamp).
192
192
 
193
193
  **Input Parameters:**
194
194
  ```json
@@ -199,7 +199,7 @@ Verify evidence integrity (checksum + Git timestamp).
199
199
 
200
200
  **Expected Output (text):**
201
201
  ```
202
- 🔐 Evidence Verification Report
202
+ 🔐 Footprint Verification Report
203
203
  - ID: 550e8400-e29b-41d4-a716-446655440000
204
204
  - Content Hash: ✅ Valid (SHA-256 matches)
205
205
  - Git Timestamp: ✅ Verified (2026-01-28T14:30:45Z)
@@ -252,29 +252,29 @@ Verify evidence integrity (checksum + Git timestamp).
252
252
 
253
253
  ### When to Use Each Tool
254
254
  - **capture-footprint**: Primary tool for saving conversations
255
- - **list-footprints**: Browse/overview existing evidence
256
- - **search-footprints**: Find specific content across evidence
257
- - **get-footprint**: Retrieve full content of specific evidence
255
+ - **list-footprints**: Browse/overview existing footprints
256
+ - **search-footprints**: Find specific content across footprints
257
+ - **get-footprint**: Retrieve full content of a specific footprint
258
258
  - **export-footprints**: Legal/audit export needs
259
- - **verify-footprint**: Verify evidence integrity and checksums
259
+ - **verify-footprint**: Verify footprint integrity and checksums
260
260
 
261
261
  ## Token-Efficient Agent Responses
262
262
 
263
- **After capturing evidence (keep it brief):**
263
+ **After capturing a footprint (keep it brief):**
264
264
  ```
265
- Evidence saved as `{conversationId}`
265
+ Footprint saved as `{conversationId}`
266
266
  ID: `{first-8-chars-of-id}`...
267
267
  Tags: {tags}
268
268
  ```
269
269
 
270
270
  **When suggesting capture:**
271
271
  ```
272
- 💡 This looks like valuable evidence (contains {trigger}). Save it?
272
+ 💡 This looks like valuable content (contains {trigger}). Save it as a footprint?
273
273
  ```
274
274
 
275
275
  **When declining to capture:**
276
276
  ```
277
- ℹ️ Skipping evidence capture (casual conversation)
277
+ ℹ️ Skipping footprint capture (casual conversation)
278
278
  ```
279
279
 
280
280
  **For retrieval:**
@@ -288,10 +288,10 @@ Tags: {tags}
288
288
  | Error | Likely Cause | Recovery Action |
289
289
  |-------|--------------|-----------------|
290
290
  | "Password required" | FOOTPRINT_PASSWORD not set | 1. Check env config<br>2. Restart MCP server<br>3. Verify password in env |
291
- | "Evidence not found" | Invalid/wrong ID | 1. Use `list-footprints` to find correct ID<br>2. Search by conversationId<br>3. Check if user meant different evidence |
292
- | "Decryption failed" | Password changed/wrong | 1. Verify current password matches<br>2. Check if evidence pre-dates password change<br>3. Try with backup password if available |
291
+ | "Footprint not found" | Invalid/wrong ID | 1. Use `list-footprints` to find correct ID<br>2. Search by conversationId<br>3. Check if user meant different footprint |
292
+ | "Decryption failed" | Password changed/wrong | 1. Verify current password matches<br>2. Check if footprint pre-dates password change<br>3. Try with backup password if available |
293
293
  | "Database error" | DB path/permissions issues | 1. Check FOOTPRINT_DB_PATH exists<br>2. Verify file permissions<br>3. Create directory if missing |
294
- | "Git repository error" | Git not initialized | 1. Initialize git in evidence directory<br>2. Set git user.name/user.email<br>3. Make initial commit |
294
+ | "Git repository error" | Git not initialized | 1. Initialize git in footprint directory<br>2. Set git user.name/user.email<br>3. Make initial commit |
295
295
  | "Capture timeout" | Large conversation size | 1. Split into smaller chunks<br>2. Reduce messageCount<br>3. Compress content before capture |
296
296
 
297
297
  **Agent Recovery Protocol:**
@@ -311,7 +311,7 @@ Agent:
311
311
  1. ✅ Capture immediately (explicit request)
312
312
  2. Use conversationId: "api-design-discussion-2026-01-28"
313
313
  3. Tags: "api,design,architecture"
314
- 4. Report success with Evidence ID
314
+ 4. Report success with Footprint ID
315
315
  ```
316
316
 
317
317
  ### 2. High-Value Content Detection
@@ -320,27 +320,27 @@ User: "We've decided to patent this algorithm approach."
320
320
 
321
321
  Agent:
322
322
  1. 🔍 Detect trigger: "patent" + "decided"
323
- 2. 💡 Suggest: "This looks like valuable evidence (contains patent decision). Save it?"
323
+ 2. 💡 Suggest: "This looks like valuable content (contains patent decision). Save it as a footprint?"
324
324
  3. ✅ If user agrees, capture with tags: "patent,algorithm,decision,ip"
325
325
  ```
326
326
 
327
- ### 3. Evidence Retrieval
327
+ ### 3. Footprint Retrieval
328
328
  ```
329
329
  User: "Find the conversation about OAuth implementation"
330
330
 
331
331
  Agent:
332
- 1. 🔍 Search: list-footprints or search-evidence with "OAuth"
332
+ 1. 🔍 Search: list-footprints or search-footprints with "OAuth"
333
333
  2. 📄 Present matches with conversationId and brief summary
334
334
  3. 🎯 If user selects one, get-footprint to show full content
335
335
  ```
336
336
 
337
337
  ### 4. Legal Export
338
338
  ```
339
- User: "Export the patent evidence for filing"
339
+ User: "Export the patent footprints for filing"
340
340
 
341
- Agent:
342
- 1. 🔍 Help identify relevant evidence (search by "patent" tag)
343
- 2. 📦 Export each evidence as encrypted ZIP
341
+ Agent:
342
+ 1. 🔍 Help identify relevant footprints (search by "patent" tag)
343
+ 2. 📦 Export each footprint as encrypted ZIP
344
344
  3. ✅ Provide files with verification instructions
345
345
  4. 📋 Remind about Git hash verification for legal proof
346
346
  ```
@@ -351,11 +351,11 @@ Agent:
351
351
  - **Encryption**: XChaCha20-Poly1305 (256-bit) with Argon2id key derivation
352
352
  - **Git Timestamps**: Cryptographic proof of creation time
353
353
  - **SHA-256 Checksums**: Detect any content tampering
354
- - **Evidence Chain**: Each capture creates immutable Git commit
354
+ - **Footprint Chain**: Each capture creates immutable Git commit
355
355
  - **Storage**: Local SQLite with encrypted BLOBs (no cloud, no tracking)
356
356
 
357
357
  **For legal proceedings:**
358
- 1. Export evidence with `export-evidence`
358
+ 1. Export footprint with `export-footprints`
359
359
  2. Verify Git hash against repository
360
360
  3. Check SHA-256 checksum matches
361
361
  4. Git log shows creation timestamp
@@ -389,7 +389,7 @@ npx @pcircle/footprint
389
389
  "command": "npx",
390
390
  "args": ["@pcircle/footprint"],
391
391
  "env": {
392
- "FOOTPRINT_DB_PATH": "/path/to/evidence.db",
392
+ "FOOTPRINT_DB_PATH": "/path/to/footprints.db",
393
393
  "FOOTPRINT_PASSWORD": "your-secure-password-here"
394
394
  }
395
395
  }
@@ -399,14 +399,14 @@ npx @pcircle/footprint
399
399
 
400
400
  **Environment Variables:**
401
401
  - `FOOTPRINT_PASSWORD` (required): Encryption passphrase
402
- - `FOOTPRINT_DB_PATH` (optional): Path to SQLite database (default: `./evidence.db` in current directory)
402
+ - `FOOTPRINT_DB_PATH` (optional): Path to SQLite database (default: `./footprints.db` in current directory)
403
403
 
404
404
  ## Performance Notes
405
405
 
406
406
  - **Capture time**: ~1-3 seconds per conversation
407
407
  - **Database size**: ~1KB per message on average
408
- - **Git overhead**: ~100 bytes per evidence commit
409
- - **Search speed**: Sub-second for <1000 evidence records
408
+ - **Git overhead**: ~100 bytes per footprint commit
409
+ - **Search speed**: Sub-second for <1000 footprint records
410
410
  - **Export time**: ~5-15 seconds depending on content size
411
411
 
412
412
  Large conversations (>100 messages) may take longer to encrypt and commit.
package/dist/src/index.js CHANGED
@@ -157,18 +157,18 @@ export class FootprintServer {
157
157
  }, createGetTagStatsHandler(this.db));
158
158
  }
159
159
  registerResources() {
160
- this.server.registerResource("evidence", new ResourceTemplate("evidence://{id}", { list: undefined }), {
161
- title: "Evidence Content",
160
+ this.server.registerResource("footprint", new ResourceTemplate("footprint://{id}", { list: undefined }), {
161
+ title: "Footprint Content",
162
162
  description: "Access encrypted footprint record by ID",
163
163
  mimeType: "text/plain",
164
164
  }, async (uri, { id }) => {
165
165
  try {
166
- const evidence = this.db.findById(id);
167
- if (!evidence) {
168
- throw new Error(`Evidence with ID ${id} not found`);
166
+ const footprint = this.db.findById(id);
167
+ if (!footprint) {
168
+ throw new Error(`Footprint with ID ${id} not found`);
169
169
  }
170
170
  const key = await this.getDerivedKey();
171
- const decrypted = decrypt(evidence.encryptedContent, evidence.nonce, key);
171
+ const decrypted = decrypt(footprint.encryptedContent, footprint.nonce, key);
172
172
  return {
173
173
  contents: [
174
174
  { uri: uri.href, mimeType: "text/plain", text: decrypted },
@@ -176,7 +176,7 @@ export class FootprintServer {
176
176
  };
177
177
  }
178
178
  catch (error) {
179
- throw new Error(`Failed to access evidence resource: ${getErrorMessage(error)}`);
179
+ throw new Error(`Failed to access footprint resource: ${getErrorMessage(error)}`);
180
180
  }
181
181
  });
182
182
  }
@@ -195,7 +195,7 @@ export class FootprintServer {
195
195
  }
196
196
  async function main() {
197
197
  const config = {
198
- dbPath: process.env.FOOTPRINT_DB_PATH || "./evidence.db",
198
+ dbPath: process.env.FOOTPRINT_DB_PATH || "./footprints.db",
199
199
  password: process.env.FOOTPRINT_PASSWORD || "",
200
200
  };
201
201
  if (!config.password) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import type { EvidenceDatabase } from './database.js';
2
2
  export interface ExportOptions {
3
- evidenceIds?: string[];
3
+ ids?: string[];
4
4
  includeGitInfo?: boolean;
5
5
  password?: string;
6
6
  }
@@ -8,7 +8,7 @@ export interface ExportResult {
8
8
  filename: string;
9
9
  zipData: Uint8Array;
10
10
  checksum: string;
11
- evidenceCount: number;
11
+ footprintCount: number;
12
12
  }
13
13
  /**
14
14
  * Export evidences to a ZIP archive with encrypted data and metadata.
@@ -1 +1 @@
1
- {"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../../../src/lib/storage/export.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEtD,MAAM,WAAW,aAAa;IAC5B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,UAAU,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;CACvB;AAeD;;;;;;;;;;;GAWG;AACH,wBAAsB,eAAe,CACnC,EAAE,EAAE,gBAAgB,EACpB,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,YAAY,CAAC,CAqIvB"}
1
+ {"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../../../src/lib/storage/export.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEtD,MAAM,WAAW,aAAa;IAC5B,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;IACf,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,UAAU,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;CACxB;AAeD;;;;;;;;;;;GAWG;AACH,wBAAsB,eAAe,CACnC,EAAE,EAAE,gBAAgB,EACpB,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,YAAY,CAAC,CAqIvB"}