@pcircle/footprint 1.3.0 → 1.5.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 +136 -160
- package/SKILL.md +7 -7
- package/dist/src/analyzers/content-analyzer.d.ts.map +1 -1
- package/dist/src/analyzers/content-analyzer.js +20 -4
- package/dist/src/analyzers/content-analyzer.js.map +1 -1
- package/dist/src/cli/index.js +0 -0
- package/dist/src/cli/setup.d.ts.map +1 -1
- package/dist/src/cli/setup.js +34 -12
- package/dist/src/cli/setup.js.map +1 -1
- package/dist/src/cli/utils/env.d.ts +7 -2
- package/dist/src/cli/utils/env.d.ts.map +1 -1
- package/dist/src/cli/utils/env.js +37 -6
- package/dist/src/cli/utils/env.js.map +1 -1
- package/dist/src/index.d.ts +0 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +41 -28
- package/dist/src/index.js.map +1 -1
- package/dist/src/lib/crypto/decrypt.d.ts.map +1 -1
- package/dist/src/lib/crypto/decrypt.js +12 -8
- package/dist/src/lib/crypto/decrypt.js.map +1 -1
- package/dist/src/lib/crypto/encrypt.d.ts.map +1 -1
- package/dist/src/lib/crypto/encrypt.js +6 -3
- package/dist/src/lib/crypto/encrypt.js.map +1 -1
- package/dist/src/lib/crypto/key-derivation.d.ts +1 -1
- package/dist/src/lib/crypto/key-derivation.d.ts.map +1 -1
- package/dist/src/lib/crypto/key-derivation.js +11 -11
- package/dist/src/lib/crypto/key-derivation.js.map +1 -1
- package/dist/src/lib/storage/database.d.ts +46 -3
- package/dist/src/lib/storage/database.d.ts.map +1 -1
- package/dist/src/lib/storage/database.js +175 -80
- package/dist/src/lib/storage/database.js.map +1 -1
- package/dist/src/lib/storage/export.d.ts +1 -2
- package/dist/src/lib/storage/export.d.ts.map +1 -1
- package/dist/src/lib/storage/export.js +46 -33
- package/dist/src/lib/storage/export.js.map +1 -1
- package/dist/src/lib/storage/salt-storage.d.ts +1 -1
- package/dist/src/lib/storage/salt-storage.d.ts.map +1 -1
- package/dist/src/lib/storage/salt-storage.js +26 -18
- package/dist/src/lib/storage/salt-storage.js.map +1 -1
- package/dist/src/lib/storage/schema.d.ts +1 -1
- package/dist/src/lib/storage/schema.d.ts.map +1 -1
- package/dist/src/lib/storage/schema.js +29 -47
- package/dist/src/lib/storage/schema.js.map +1 -1
- package/dist/src/lib/tool-wrapper.d.ts.map +1 -1
- package/dist/src/lib/tool-wrapper.js +2 -2
- package/dist/src/lib/tool-wrapper.js.map +1 -1
- package/dist/src/prompts/skill-prompt.d.ts +6 -0
- package/dist/src/prompts/skill-prompt.d.ts.map +1 -0
- package/dist/src/prompts/skill-prompt.js +125 -0
- package/dist/src/prompts/skill-prompt.js.map +1 -0
- package/dist/src/tools/capture-footprint.d.ts +2 -2
- package/dist/src/tools/capture-footprint.d.ts.map +1 -1
- package/dist/src/tools/capture-footprint.js +52 -11
- package/dist/src/tools/capture-footprint.js.map +1 -1
- package/dist/src/tools/delete-footprints.d.ts +18 -1
- package/dist/src/tools/delete-footprints.d.ts.map +1 -1
- package/dist/src/tools/delete-footprints.js +53 -5
- package/dist/src/tools/delete-footprints.js.map +1 -1
- package/dist/src/tools/export-footprints.d.ts +11 -3
- package/dist/src/tools/export-footprints.d.ts.map +1 -1
- package/dist/src/tools/export-footprints.js +48 -9
- package/dist/src/tools/export-footprints.js.map +1 -1
- package/dist/src/tools/get-footprint.d.ts +1 -7
- package/dist/src/tools/get-footprint.d.ts.map +1 -1
- package/dist/src/tools/get-footprint.js +7 -3
- package/dist/src/tools/get-footprint.js.map +1 -1
- package/dist/src/tools/index.d.ts +1 -3
- package/dist/src/tools/index.d.ts.map +1 -1
- package/dist/src/tools/index.js +1 -3
- package/dist/src/tools/index.js.map +1 -1
- package/dist/src/tools/list-footprints.d.ts +1 -15
- package/dist/src/tools/list-footprints.d.ts.map +1 -1
- package/dist/src/tools/list-footprints.js +17 -6
- package/dist/src/tools/list-footprints.js.map +1 -1
- package/dist/src/tools/manage-tags.d.ts +47 -0
- package/dist/src/tools/manage-tags.d.ts.map +1 -0
- package/dist/src/tools/manage-tags.js +109 -0
- package/dist/src/tools/manage-tags.js.map +1 -0
- package/dist/src/tools/search-footprints.d.ts +2 -16
- package/dist/src/tools/search-footprints.d.ts.map +1 -1
- package/dist/src/tools/search-footprints.js +23 -7
- package/dist/src/tools/search-footprints.js.map +1 -1
- package/dist/src/tools/suggest-capture.d.ts +1 -1
- package/dist/src/tools/suggest-capture.d.ts.map +1 -1
- package/dist/src/tools/suggest-capture.js +6 -2
- package/dist/src/tools/suggest-capture.js.map +1 -1
- package/dist/src/tools/verify-footprint.d.ts +7 -54
- package/dist/src/tools/verify-footprint.d.ts.map +1 -1
- package/dist/src/tools/verify-footprint.js +11 -8
- package/dist/src/tools/verify-footprint.js.map +1 -1
- package/dist/src/types.d.ts +4 -4
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/ui/register.js +1 -1
- package/dist/src/ui/register.js.map +1 -1
- package/dist/ui/dashboard.html +80 -67
- package/dist/ui/detail.html +62 -49
- package/dist/ui/export.html +64 -51
- package/package.json +18 -13
- package/dist/src/lib/errors/base-error.d.ts +0 -15
- package/dist/src/lib/errors/base-error.d.ts.map +0 -1
- package/dist/src/lib/errors/base-error.js +0 -34
- package/dist/src/lib/errors/base-error.js.map +0 -1
- package/dist/src/lib/errors/crypto-error.d.ts +0 -29
- package/dist/src/lib/errors/crypto-error.d.ts.map +0 -1
- package/dist/src/lib/errors/crypto-error.js +0 -43
- package/dist/src/lib/errors/crypto-error.js.map +0 -1
- package/dist/src/lib/errors/index.d.ts +0 -26
- package/dist/src/lib/errors/index.d.ts.map +0 -1
- package/dist/src/lib/errors/index.js +0 -26
- package/dist/src/lib/errors/index.js.map +0 -1
- package/dist/src/lib/errors/storage-error.d.ts +0 -25
- package/dist/src/lib/errors/storage-error.d.ts.map +0 -1
- package/dist/src/lib/errors/storage-error.js +0 -38
- package/dist/src/lib/errors/storage-error.js.map +0 -1
- package/dist/src/lib/errors/validation-error.d.ts +0 -21
- package/dist/src/lib/errors/validation-error.d.ts.map +0 -1
- package/dist/src/lib/errors/validation-error.js +0 -29
- package/dist/src/lib/errors/validation-error.js.map +0 -1
- package/dist/src/test-helpers.d.ts +0 -33
- package/dist/src/test-helpers.d.ts.map +0 -1
- package/dist/src/test-helpers.js +0 -108
- package/dist/src/test-helpers.js.map +0 -1
- package/dist/src/tools/get-tag-stats.d.ts +0 -30
- package/dist/src/tools/get-tag-stats.d.ts.map +0 -1
- package/dist/src/tools/get-tag-stats.js +0 -33
- package/dist/src/tools/get-tag-stats.js.map +0 -1
- package/dist/src/tools/remove-tag.d.ts +0 -22
- package/dist/src/tools/remove-tag.d.ts.map +0 -1
- package/dist/src/tools/remove-tag.js +0 -30
- package/dist/src/tools/remove-tag.js.map +0 -1
- package/dist/src/tools/rename-tag.d.ts +0 -24
- package/dist/src/tools/rename-tag.d.ts.map +0 -1
- package/dist/src/tools/rename-tag.js +0 -34
- package/dist/src/tools/rename-tag.js.map +0 -1
package/README.md
CHANGED
|
@@ -3,219 +3,195 @@
|
|
|
3
3
|
[](https://www.npmjs.com/package/@pcircle/footprint)
|
|
4
4
|
[](LICENSE)
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
MCP server that automatically captures and encrypts AI conversations as verifiable records with Git timestamps and end-to-end encryption.
|
|
7
7
|
|
|
8
8
|
## Why Footprint?
|
|
9
9
|
|
|
10
|
-
- **Prove IP Ownership**
|
|
11
|
-
- **Zero Effort**
|
|
12
|
-
- **Privacy First**
|
|
13
|
-
- **Legally Valid**
|
|
10
|
+
- **Prove IP Ownership** — Timestamped evidence of AI-assisted work
|
|
11
|
+
- **Zero Effort** — Automatic capture via MCP protocol
|
|
12
|
+
- **Privacy First** — End-to-end encrypted, locally stored
|
|
13
|
+
- **Legally Valid** — Git timestamps + SHA-256 checksums
|
|
14
14
|
|
|
15
15
|
## Quick Start
|
|
16
16
|
|
|
17
|
-
**One command to set up everything:**
|
|
18
|
-
|
|
19
17
|
```bash
|
|
20
18
|
npx @pcircle/footprint setup
|
|
21
19
|
```
|
|
22
20
|
|
|
23
|
-
The interactive wizard
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
- 🔍 Search and retrieve evidence
|
|
43
|
-
- 🤖 AI-powered capture suggestions
|
|
44
|
-
- ✅ Integrity verification
|
|
45
|
-
- 🏷️ Tag management
|
|
46
|
-
- 📊 Interactive UI dashboard
|
|
47
|
-
|
|
48
|
-
## Architecture
|
|
49
|
-
|
|
50
|
-
The Footprint MCP server follows a modular, layered architecture:
|
|
51
|
-
|
|
21
|
+
The interactive wizard auto-detects your system, validates your encryption password, and configures Claude Desktop automatically.
|
|
22
|
+
|
|
23
|
+
### Manual Configuration
|
|
24
|
+
|
|
25
|
+
Add to Claude Desktop config (`~/Library/Application Support/Claude/claude_desktop_config.json`):
|
|
26
|
+
|
|
27
|
+
```json
|
|
28
|
+
{
|
|
29
|
+
"mcpServers": {
|
|
30
|
+
"footprint": {
|
|
31
|
+
"command": "npx",
|
|
32
|
+
"args": ["@pcircle/footprint"],
|
|
33
|
+
"env": {
|
|
34
|
+
"FOOTPRINT_DATA_DIR": "/path/to/footprint-data",
|
|
35
|
+
"FOOTPRINT_PASSPHRASE": "your-secure-passphrase"
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
52
40
|
```
|
|
53
|
-
src/
|
|
54
|
-
├── index.ts # Main MCP server
|
|
55
|
-
├── tools/ # MCP tool handlers (11 tools)
|
|
56
|
-
│ ├── capture-footprint.ts
|
|
57
|
-
│ ├── list-footprints.ts
|
|
58
|
-
│ ├── get-footprint.ts
|
|
59
|
-
│ ├── export-footprints.ts
|
|
60
|
-
│ ├── search-footprints.ts
|
|
61
|
-
│ ├── verify-footprint.ts
|
|
62
|
-
│ ├── suggest-capture.ts
|
|
63
|
-
│ ├── delete-footprints.ts
|
|
64
|
-
│ ├── rename-tag.ts
|
|
65
|
-
│ ├── remove-tag.ts
|
|
66
|
-
│ └── get-tag-stats.ts
|
|
67
|
-
├── analyzers/ # Content analysis modules
|
|
68
|
-
│ └── content-analyzer.ts
|
|
69
|
-
├── lib/
|
|
70
|
-
│ ├── crypto/ # Encryption & key derivation
|
|
71
|
-
│ ├── storage/ # Database & export
|
|
72
|
-
│ ├── tool-wrapper.ts # Error handling wrapper
|
|
73
|
-
│ └── tool-response.ts # Response formatters
|
|
74
|
-
└── ui/ # Interactive dashboards
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
### Design Principles
|
|
78
|
-
|
|
79
|
-
- **Modular**: Each tool is self-contained with schema, metadata, and handler
|
|
80
|
-
- **Type-Safe**: Full TypeScript with Zod schema validation
|
|
81
|
-
- **Testable**: Dependency injection enables isolated testing
|
|
82
|
-
- **Secure**: Encrypted storage with integrity verification
|
|
83
|
-
- **Maintainable**: Clear separation of concerns across layers
|
|
84
|
-
|
|
85
|
-
## MCP Tools
|
|
86
|
-
|
|
87
|
-
### Core Tools
|
|
88
|
-
|
|
89
|
-
#### capture-footprint
|
|
90
|
-
|
|
91
|
-
Captures and encrypts an LLM conversation as evidence.
|
|
92
|
-
|
|
93
|
-
**Parameters:**
|
|
94
|
-
|
|
95
|
-
- `conversationId` - Unique identifier for the conversation
|
|
96
|
-
- `llmProvider` - LLM provider name (e.g., "Claude Sonnet 4.5")
|
|
97
|
-
- `content` - Full conversation content
|
|
98
|
-
- `messageCount` - Number of messages in conversation
|
|
99
|
-
- `tags` (optional) - Comma-separated tags
|
|
100
|
-
|
|
101
|
-
#### list-footprints
|
|
102
41
|
|
|
103
|
-
|
|
42
|
+
For Claude Code, add to `~/.claude/mcp_settings.json` with the same structure.
|
|
104
43
|
|
|
105
|
-
|
|
44
|
+
## MCP Tools (9 tools)
|
|
106
45
|
|
|
107
|
-
|
|
108
|
-
- `offset` (optional) - Pagination offset
|
|
46
|
+
### capture-footprint
|
|
109
47
|
|
|
110
|
-
|
|
48
|
+
Capture and encrypt an LLM conversation. Use when: user explicitly asks to save, or high-value content (IP, legal, business, research, compliance).
|
|
111
49
|
|
|
112
|
-
|
|
50
|
+
| Parameter | Required | Description |
|
|
51
|
+
| ---------------- | -------- | ------------------------------------------------------------------ |
|
|
52
|
+
| `conversationId` | Yes | Unique ID, format: `{topic}-{descriptor}-{YYYY-MM-DD}` |
|
|
53
|
+
| `content` | Yes | Full conversation text including both human and assistant messages |
|
|
54
|
+
| `tags` | No | Comma-separated tags |
|
|
55
|
+
| `llmProvider` | No | Provider name (default: `"unknown"`) |
|
|
56
|
+
| `messageCount` | No | Number of messages (auto-calculated from content if omitted) |
|
|
113
57
|
|
|
114
|
-
|
|
58
|
+
### list-footprints
|
|
115
59
|
|
|
116
|
-
|
|
60
|
+
List all captured evidence with pagination.
|
|
117
61
|
|
|
118
|
-
|
|
62
|
+
| Parameter | Required | Description |
|
|
63
|
+
| --------- | -------- | ------------------------------ |
|
|
64
|
+
| `limit` | No | Results per page (default: 10) |
|
|
65
|
+
| `offset` | No | Pagination offset |
|
|
66
|
+
| `tags` | No | Filter by tags |
|
|
119
67
|
|
|
120
|
-
|
|
68
|
+
### get-footprint
|
|
121
69
|
|
|
122
|
-
|
|
70
|
+
Retrieve and decrypt specific evidence by ID.
|
|
123
71
|
|
|
124
|
-
|
|
125
|
-
|
|
72
|
+
| Parameter | Required | Description |
|
|
73
|
+
| --------- | -------- | ----------- |
|
|
74
|
+
| `id` | Yes | Evidence ID |
|
|
126
75
|
|
|
127
|
-
###
|
|
76
|
+
### search-footprints
|
|
128
77
|
|
|
129
|
-
|
|
78
|
+
Search conversations by query, tags, and date range. Query matches conversationId and tags (LIKE). Tags filter uses AND logic.
|
|
130
79
|
|
|
131
|
-
|
|
80
|
+
| Parameter | Required | Description |
|
|
81
|
+
| ---------- | -------- | ------------------------------ |
|
|
82
|
+
| `query` | No | Search text |
|
|
83
|
+
| `tags` | No | Array of tags (AND logic) |
|
|
84
|
+
| `dateFrom` | No | Start date (ISO 8601) |
|
|
85
|
+
| `dateTo` | No | End date (ISO 8601) |
|
|
86
|
+
| `limit` | No | Results per page (default: 10) |
|
|
87
|
+
| `offset` | No | Pagination offset |
|
|
132
88
|
|
|
133
|
-
|
|
89
|
+
### export-footprints
|
|
134
90
|
|
|
135
|
-
|
|
136
|
-
- `tags` (optional) - Array of tags to filter by
|
|
137
|
-
- `dateFrom` (optional) - Start date (ISO format)
|
|
138
|
-
- `dateTo` (optional) - End date (ISO format)
|
|
139
|
-
- `limit` (optional) - Maximum results
|
|
140
|
-
- `offset` (optional) - Pagination offset
|
|
91
|
+
Export evidence to encrypted ZIP archive.
|
|
141
92
|
|
|
142
|
-
|
|
93
|
+
| Parameter | Required | Description |
|
|
94
|
+
| ------------- | -------- | ----------------------------------------------------- |
|
|
95
|
+
| `evidenceIds` | No | Specific IDs to export (all if omitted) |
|
|
96
|
+
| `outputMode` | No | `"file"`, `"base64"`, or `"both"` (default: `"both"`) |
|
|
143
97
|
|
|
144
|
-
|
|
98
|
+
### verify-footprint
|
|
145
99
|
|
|
146
|
-
|
|
100
|
+
Verify evidence integrity using stored checksums and Git timestamps.
|
|
147
101
|
|
|
148
|
-
|
|
102
|
+
| Parameter | Required | Description |
|
|
103
|
+
| --------- | -------- | ----------- |
|
|
104
|
+
| `id` | Yes | Evidence ID |
|
|
149
105
|
|
|
150
|
-
|
|
106
|
+
Returns: `integrityVerified`, `checksumValid`, `gitTimestamp`
|
|
151
107
|
|
|
152
|
-
|
|
153
|
-
- `reason` - Human-readable explanation
|
|
154
|
-
- `suggestedTags` - Recommended tags
|
|
155
|
-
- `suggestedConversationId` - Recommended ID
|
|
156
|
-
- `confidence` - Confidence score (0-1)
|
|
108
|
+
### delete-footprints
|
|
157
109
|
|
|
158
|
-
|
|
110
|
+
Permanently delete evidence records. Uses two-step confirmation.
|
|
159
111
|
|
|
160
|
-
|
|
112
|
+
| Parameter | Required | Description |
|
|
113
|
+
| --------------- | -------- | ---------------------------------------------------- |
|
|
114
|
+
| `evidenceIds` | Yes | Array of evidence IDs |
|
|
115
|
+
| `confirmDelete` | No | Set `true` to confirm (default: `false` for preview) |
|
|
161
116
|
|
|
162
|
-
|
|
117
|
+
### suggest-capture
|
|
163
118
|
|
|
164
|
-
|
|
119
|
+
AI-powered capture suggestion based on keyword analysis.
|
|
165
120
|
|
|
166
|
-
|
|
121
|
+
| Parameter | Required | Description |
|
|
122
|
+
| --------- | -------- | ------------------------------- |
|
|
123
|
+
| `content` | Yes | Conversation content to analyze |
|
|
167
124
|
|
|
168
|
-
|
|
125
|
+
### manage-tags
|
|
169
126
|
|
|
170
|
-
|
|
171
|
-
- `checks` - Detailed checks (content integrity, git timestamp, encryption)
|
|
172
|
-
- `legalReadiness` - Whether evidence meets legal standards
|
|
127
|
+
Unified tag management with three actions: `stats`, `rename`, `remove`.
|
|
173
128
|
|
|
174
|
-
|
|
129
|
+
| Parameter | Required | Description |
|
|
130
|
+
| --------- | ---------- | ------------------------------------- |
|
|
131
|
+
| `action` | Yes | `"stats"` \| `"rename"` \| `"remove"` |
|
|
132
|
+
| `tag` | For remove | Tag to remove |
|
|
133
|
+
| `oldTag` | For rename | Current tag name |
|
|
134
|
+
| `newTag` | For rename | New tag name |
|
|
175
135
|
|
|
176
|
-
|
|
136
|
+
## MCP Prompts (3 prompts)
|
|
177
137
|
|
|
178
|
-
|
|
138
|
+
- **`footprint-skill`** — Full agent behavior guide (decision tree, triggers, workflows, error recovery)
|
|
139
|
+
- **`footprint-quick-ref`** — Condensed quick reference for tool selection and tag conventions
|
|
140
|
+
- **`footprint-should-capture`** — Semantic decision framework for evaluating capture worthiness (takes `conversationSummary` argument)
|
|
179
141
|
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
- `evidenceIds` - Array of evidence IDs to delete
|
|
183
|
-
|
|
184
|
-
#### rename-tag
|
|
185
|
-
|
|
186
|
-
Rename a tag across all evidence.
|
|
187
|
-
|
|
188
|
-
**Parameters:**
|
|
189
|
-
|
|
190
|
-
- `oldTag` - Current tag name
|
|
191
|
-
- `newTag` - New tag name
|
|
192
|
-
|
|
193
|
-
#### remove-tag
|
|
194
|
-
|
|
195
|
-
Remove a tag from all evidence.
|
|
196
|
-
|
|
197
|
-
**Parameters:**
|
|
198
|
-
|
|
199
|
-
- `tag` - Tag name to remove
|
|
200
|
-
|
|
201
|
-
#### get-tag-stats
|
|
202
|
-
|
|
203
|
-
Get statistics about tag usage.
|
|
204
|
-
|
|
205
|
-
**Returns:**
|
|
142
|
+
## Architecture
|
|
206
143
|
|
|
207
|
-
|
|
144
|
+
```
|
|
145
|
+
packages/mcp-server/
|
|
146
|
+
├── src/
|
|
147
|
+
│ ├── index.ts # Main MCP server
|
|
148
|
+
│ ├── prompts/ # MCP prompt handlers
|
|
149
|
+
│ │ └── skill-prompt.ts
|
|
150
|
+
│ ├── tools/ # MCP tool handlers (9 tools)
|
|
151
|
+
│ │ ├── capture-footprint.ts
|
|
152
|
+
│ │ ├── list-footprints.ts
|
|
153
|
+
│ │ ├── get-footprint.ts
|
|
154
|
+
│ │ ├── search-footprints.ts
|
|
155
|
+
│ │ ├── export-footprints.ts
|
|
156
|
+
│ │ ├── verify-footprint.ts
|
|
157
|
+
│ │ ├── delete-footprints.ts
|
|
158
|
+
│ │ ├── suggest-capture.ts
|
|
159
|
+
│ │ └── manage-tags.ts
|
|
160
|
+
│ ├── analyzers/ # Content analysis
|
|
161
|
+
│ ├── cli/ # Setup wizard
|
|
162
|
+
│ ├── lib/
|
|
163
|
+
│ │ ├── crypto/ # XChaCha20-Poly1305 + Argon2id
|
|
164
|
+
│ │ └── storage/ # SQLite + Git timestamps
|
|
165
|
+
│ └── ui/ # Interactive dashboards
|
|
166
|
+
└── tests/
|
|
167
|
+
```
|
|
208
168
|
|
|
209
169
|
## Security
|
|
210
170
|
|
|
211
171
|
- **Encryption**: XChaCha20-Poly1305 (256-bit)
|
|
212
172
|
- **Key Derivation**: Argon2id (OWASP recommended)
|
|
213
173
|
- **Storage**: Local SQLite with encrypted BLOBs
|
|
174
|
+
- **No cloud, no tracking, no data collection**
|
|
175
|
+
|
|
176
|
+
> **Store your password securely** — loss means permanent data loss.
|
|
214
177
|
|
|
215
|
-
|
|
178
|
+
## Development
|
|
179
|
+
|
|
180
|
+
```bash
|
|
181
|
+
git clone https://github.com/PCIRCLE-AI/footprint.git
|
|
182
|
+
cd footprint
|
|
183
|
+
pnpm install
|
|
184
|
+
pnpm build
|
|
185
|
+
pnpm test
|
|
186
|
+
```
|
|
216
187
|
|
|
217
188
|
## Support
|
|
218
189
|
|
|
219
|
-
- [
|
|
190
|
+
- [GitHub](https://github.com/PCIRCLE-AI/footprint)
|
|
220
191
|
- [Issues](https://github.com/PCIRCLE-AI/footprint/issues)
|
|
221
|
-
- [
|
|
192
|
+
- [npm](https://www.npmjs.com/package/@pcircle/footprint)
|
|
193
|
+
- [Website](https://footprint.memesh.ai)
|
|
194
|
+
|
|
195
|
+
## License
|
|
196
|
+
|
|
197
|
+
MIT License — see [LICENSE](./LICENSE) for details.
|
package/SKILL.md
CHANGED
|
@@ -287,10 +287,10 @@ Tags: {tags}
|
|
|
287
287
|
|
|
288
288
|
| Error | Likely Cause | Recovery Action |
|
|
289
289
|
|-------|--------------|-----------------|
|
|
290
|
-
| "Password required" |
|
|
290
|
+
| "Password required" | FOOTPRINT_PASSPHRASE not set | 1. Check env config<br>2. Restart MCP server<br>3. Verify passphrase in env |
|
|
291
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
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 |
|
|
293
|
-
| "Database error" | DB path/permissions issues | 1. Check
|
|
293
|
+
| "Database error" | DB path/permissions issues | 1. Check FOOTPRINT_DATA_DIR exists<br>2. Verify file permissions<br>3. Create directory if missing |
|
|
294
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 |
|
|
295
295
|
| "Capture timeout" | Large conversation size | 1. Split into smaller chunks<br>2. Reduce messageCount<br>3. Compress content before capture |
|
|
296
296
|
|
|
@@ -347,7 +347,7 @@ Agent:
|
|
|
347
347
|
|
|
348
348
|
## Security & Verification
|
|
349
349
|
|
|
350
|
-
- **Password**: Set via `
|
|
350
|
+
- **Password**: Set via `FOOTPRINT_PASSPHRASE` env var (never ask user in chat)
|
|
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
|
|
@@ -389,8 +389,8 @@ npx @pcircle/footprint
|
|
|
389
389
|
"command": "npx",
|
|
390
390
|
"args": ["@pcircle/footprint"],
|
|
391
391
|
"env": {
|
|
392
|
-
"
|
|
393
|
-
"
|
|
392
|
+
"FOOTPRINT_DATA_DIR": "/path/to/data",
|
|
393
|
+
"FOOTPRINT_PASSPHRASE": "your-secure-password-here"
|
|
394
394
|
}
|
|
395
395
|
}
|
|
396
396
|
}
|
|
@@ -398,8 +398,8 @@ npx @pcircle/footprint
|
|
|
398
398
|
```
|
|
399
399
|
|
|
400
400
|
**Environment Variables:**
|
|
401
|
-
- `
|
|
402
|
-
- `
|
|
401
|
+
- `FOOTPRINT_PASSPHRASE` (required): Encryption passphrase
|
|
402
|
+
- `FOOTPRINT_DATA_DIR` (optional): Directory for data storage (default: `~/.footprint`)
|
|
403
403
|
|
|
404
404
|
## Performance Notes
|
|
405
405
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content-analyzer.d.ts","sourceRoot":"","sources":["../../../src/analyzers/content-analyzer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,OAAO,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,uBAAuB,EAAE,MAAM,CAAC;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;
|
|
1
|
+
{"version":3,"file":"content-analyzer.d.ts","sourceRoot":"","sources":["../../../src/analyzers/content-analyzer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,OAAO,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,uBAAuB,EAAE,MAAM,CAAC;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAsMD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,CAwB9D"}
|
|
@@ -55,11 +55,26 @@ const KEYWORD_CATEGORIES = {
|
|
|
55
55
|
"requirement",
|
|
56
56
|
],
|
|
57
57
|
};
|
|
58
|
+
/**
|
|
59
|
+
* Pre-compiled word-boundary regexes for each keyword to avoid
|
|
60
|
+
* creating RegExp objects on every call to matchesWord.
|
|
61
|
+
*/
|
|
62
|
+
const WORD_PATTERNS = new Map();
|
|
63
|
+
for (const keywords of Object.values(KEYWORD_CATEGORIES)) {
|
|
64
|
+
for (const word of keywords) {
|
|
65
|
+
WORD_PATTERNS.set(word, new RegExp(`\\b${word.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")}\\b`, "i"));
|
|
66
|
+
}
|
|
67
|
+
}
|
|
58
68
|
/**
|
|
59
69
|
* Match whole words only to avoid false positives
|
|
60
70
|
* (e.g., "logarithm" should not match "algorithm")
|
|
61
71
|
*/
|
|
62
72
|
function matchesWord(text, word) {
|
|
73
|
+
const cached = WORD_PATTERNS.get(word);
|
|
74
|
+
if (cached) {
|
|
75
|
+
return cached.test(text);
|
|
76
|
+
}
|
|
77
|
+
// Fallback for dynamic words not in KEYWORD_CATEGORIES
|
|
63
78
|
const regex = new RegExp(`\\b${word.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")}\\b`, "i");
|
|
64
79
|
return regex.test(text);
|
|
65
80
|
}
|
|
@@ -127,8 +142,9 @@ function generateTags(matches) {
|
|
|
127
142
|
*/
|
|
128
143
|
function generateConversationId(matches) {
|
|
129
144
|
const currentDate = new Date().toISOString().slice(0, 10);
|
|
145
|
+
const suffix = Math.random().toString(36).slice(2, 6);
|
|
130
146
|
if (matches.length === 0) {
|
|
131
|
-
return `conversation-${currentDate}`;
|
|
147
|
+
return `conversation-${currentDate}-${suffix}`;
|
|
132
148
|
}
|
|
133
149
|
// Extract key terms for ID generation
|
|
134
150
|
const primaryKeywords = matches[0].keywords.slice(0, 2);
|
|
@@ -136,9 +152,9 @@ function generateConversationId(matches) {
|
|
|
136
152
|
.map((k) => k.replace(/\s+/g, "-").replace(/[^a-z0-9-]/g, ""))
|
|
137
153
|
.filter((k) => k.length > 0);
|
|
138
154
|
if (cleanKeywords.length > 0) {
|
|
139
|
-
return `${cleanKeywords.join("-")}-${currentDate}`;
|
|
155
|
+
return `${cleanKeywords.join("-")}-${currentDate}-${suffix}`;
|
|
140
156
|
}
|
|
141
|
-
return `${matches[0].category}-discussion-${currentDate}`;
|
|
157
|
+
return `${matches[0].category}-discussion-${currentDate}-${suffix}`;
|
|
142
158
|
}
|
|
143
159
|
/**
|
|
144
160
|
* Analyze conversation content and determine if it should be captured as evidence
|
|
@@ -148,7 +164,7 @@ function generateConversationId(matches) {
|
|
|
148
164
|
*/
|
|
149
165
|
export function analyzeContent(summary) {
|
|
150
166
|
const normalizedText = summary.toLowerCase();
|
|
151
|
-
const wordCount = normalizedText.split(/\s+/).length;
|
|
167
|
+
const wordCount = normalizedText.split(/\s+/).filter((w) => w.length > 0).length || 1;
|
|
152
168
|
// Find keyword matches
|
|
153
169
|
const matches = findKeywordMatches(normalizedText);
|
|
154
170
|
const shouldCapture = matches.length > 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content-analyzer.js","sourceRoot":"","sources":["../../../src/analyzers/content-analyzer.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"content-analyzer.js","sourceRoot":"","sources":["../../../src/analyzers/content-analyzer.ts"],"names":[],"mappings":"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"}
|
package/dist/src/cli/index.js
CHANGED
|
File without changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../../src/cli/setup.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../../src/cli/setup.ts"],"names":[],"mappings":";AAqZA;;GAEG;AACH,wBAAsB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CA4E9C"}
|
package/dist/src/cli/setup.js
CHANGED
|
@@ -8,7 +8,7 @@ import * as path from "path";
|
|
|
8
8
|
import { detectSystem } from "./utils/detect.js";
|
|
9
9
|
import { validatePassword, validatePath } from "./utils/validation.js";
|
|
10
10
|
import { readClaudeConfig, writeClaudeConfig, backupConfig, addFootprintToConfig, } from "./utils/config.js";
|
|
11
|
-
import { generateEnvExport, appendToShellRc } from "./utils/env.js";
|
|
11
|
+
import { generateEnvExport, appendToShellRc, removeFootprintFromRc, } from "./utils/env.js";
|
|
12
12
|
import { DEFAULT_DATA_DIR } from "./constants.js";
|
|
13
13
|
import * as fs from "fs";
|
|
14
14
|
/**
|
|
@@ -21,12 +21,14 @@ function getErrorMessage(error) {
|
|
|
21
21
|
* Timing-safe string comparison to prevent timing attacks
|
|
22
22
|
*/
|
|
23
23
|
function safeCompare(a, b) {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
const
|
|
28
|
-
const
|
|
29
|
-
|
|
24
|
+
const bufA = Buffer.from(a);
|
|
25
|
+
const bufB = Buffer.from(b);
|
|
26
|
+
const maxLen = Math.max(bufA.length, bufB.length);
|
|
27
|
+
const paddedA = Buffer.alloc(maxLen);
|
|
28
|
+
const paddedB = Buffer.alloc(maxLen);
|
|
29
|
+
bufA.copy(paddedA);
|
|
30
|
+
bufB.copy(paddedB);
|
|
31
|
+
return bufA.length === bufB.length && timingSafeEqual(paddedA, paddedB);
|
|
30
32
|
}
|
|
31
33
|
/**
|
|
32
34
|
* Welcome message
|
|
@@ -143,7 +145,7 @@ async function setupEnvironment(system, config) {
|
|
|
143
145
|
if (!system.shellRcPath) {
|
|
144
146
|
console.log(chalk.yellow("\n⚠️ Shell RC file not found. Manual setup required:"));
|
|
145
147
|
console.log(chalk.gray(generateEnvExport(system.shell, config.dataDir, config.passphrase)));
|
|
146
|
-
return;
|
|
148
|
+
return false;
|
|
147
149
|
}
|
|
148
150
|
const { setupEnv } = await prompts({
|
|
149
151
|
type: "confirm",
|
|
@@ -152,12 +154,13 @@ async function setupEnvironment(system, config) {
|
|
|
152
154
|
initial: true,
|
|
153
155
|
});
|
|
154
156
|
if (!setupEnv)
|
|
155
|
-
return;
|
|
157
|
+
return false;
|
|
156
158
|
const spinner = ora("Setting up environment variables...").start();
|
|
157
159
|
try {
|
|
158
160
|
const envExport = generateEnvExport(system.shell, config.dataDir, config.passphrase);
|
|
159
161
|
appendToShellRc(system.shellRcPath, envExport);
|
|
160
162
|
spinner.succeed(chalk.green("Environment variables configured!"));
|
|
163
|
+
return true;
|
|
161
164
|
}
|
|
162
165
|
catch (error) {
|
|
163
166
|
spinner.fail(chalk.red(`Failed to setup environment: ${getErrorMessage(error)}`));
|
|
@@ -254,6 +257,21 @@ function createConfigRollback(backupPath, configPath) {
|
|
|
254
257
|
}
|
|
255
258
|
};
|
|
256
259
|
}
|
|
260
|
+
/**
|
|
261
|
+
* Create rollback action for shell RC file modification
|
|
262
|
+
*/
|
|
263
|
+
function createShellRcRollback(rcPath) {
|
|
264
|
+
return () => {
|
|
265
|
+
try {
|
|
266
|
+
if (removeFootprintFromRc(rcPath)) {
|
|
267
|
+
console.log(chalk.gray(` Rolled back: Removed Footprint config from ${rcPath}`));
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
catch (error) {
|
|
271
|
+
console.warn(chalk.yellow(` Warning: Failed to clean ${rcPath}: ${getErrorMessage(error)}`));
|
|
272
|
+
}
|
|
273
|
+
};
|
|
274
|
+
}
|
|
257
275
|
/**
|
|
258
276
|
* Find the most recent backup file for a config
|
|
259
277
|
*/
|
|
@@ -262,7 +280,8 @@ function findLatestBackup(configPath) {
|
|
|
262
280
|
const basename = path.basename(configPath);
|
|
263
281
|
const backupFiles = fs
|
|
264
282
|
.readdirSync(dir)
|
|
265
|
-
.filter((f) => f.startsWith(`${basename}.backup`))
|
|
283
|
+
.filter((f) => f.startsWith(`${basename}.backup`))
|
|
284
|
+
.sort();
|
|
266
285
|
if (backupFiles.length === 0)
|
|
267
286
|
return null;
|
|
268
287
|
return path.join(dir, backupFiles[backupFiles.length - 1]);
|
|
@@ -303,8 +322,11 @@ export async function runSetup() {
|
|
|
303
322
|
else if (!system.claudeConfigPath) {
|
|
304
323
|
printManualConfigInstructions(config);
|
|
305
324
|
}
|
|
306
|
-
// Setup environment variables (tracked for rollback)
|
|
307
|
-
await setupEnvironment(system, config);
|
|
325
|
+
// Setup environment variables (tracked for rollback only if modified)
|
|
326
|
+
const envModified = await setupEnvironment(system, config);
|
|
327
|
+
if (envModified && system.shellRcPath) {
|
|
328
|
+
rollbackActions.push(createShellRcRollback(system.shellRcPath));
|
|
329
|
+
}
|
|
308
330
|
// If we get here, setup succeeded - discard rollback actions
|
|
309
331
|
rollbackActions.length = 0;
|
|
310
332
|
printNextSteps(config);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../src/cli/setup.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../src/cli/setup.ts"],"names":[],"mappings":"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"}
|