@tyroneross/bookmark 0.1.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.
Files changed (79) hide show
  1. package/.claude-plugin/marketplace.json +15 -0
  2. package/.claude-plugin/plugin.json +13 -0
  3. package/CLAUDE.md +69 -0
  4. package/LICENSE +21 -0
  5. package/README.md +178 -0
  6. package/agents/snapshot-analyst.md +41 -0
  7. package/commands/activate.md +20 -0
  8. package/commands/list.md +15 -0
  9. package/commands/restore.md +30 -0
  10. package/commands/snapshot.md +26 -0
  11. package/commands/status.md +19 -0
  12. package/dist/cli/index.d.ts +3 -0
  13. package/dist/cli/index.d.ts.map +1 -0
  14. package/dist/cli/index.js +437 -0
  15. package/dist/cli/index.js.map +1 -0
  16. package/dist/config.d.ts +5 -0
  17. package/dist/config.d.ts.map +1 -0
  18. package/dist/config.js +86 -0
  19. package/dist/config.js.map +1 -0
  20. package/dist/index.d.ts +13 -0
  21. package/dist/index.d.ts.map +1 -0
  22. package/dist/index.js +13 -0
  23. package/dist/index.js.map +1 -0
  24. package/dist/restore/index.d.ts +13 -0
  25. package/dist/restore/index.d.ts.map +1 -0
  26. package/dist/restore/index.js +94 -0
  27. package/dist/restore/index.js.map +1 -0
  28. package/dist/setup/auto-setup.d.ts +16 -0
  29. package/dist/setup/auto-setup.d.ts.map +1 -0
  30. package/dist/setup/auto-setup.js +192 -0
  31. package/dist/setup/auto-setup.js.map +1 -0
  32. package/dist/setup/configure-hooks.d.ts +10 -0
  33. package/dist/setup/configure-hooks.d.ts.map +1 -0
  34. package/dist/setup/configure-hooks.js +97 -0
  35. package/dist/setup/configure-hooks.js.map +1 -0
  36. package/dist/snapshot/capture.d.ts +21 -0
  37. package/dist/snapshot/capture.d.ts.map +1 -0
  38. package/dist/snapshot/capture.js +134 -0
  39. package/dist/snapshot/capture.js.map +1 -0
  40. package/dist/snapshot/compress.d.ts +8 -0
  41. package/dist/snapshot/compress.d.ts.map +1 -0
  42. package/dist/snapshot/compress.js +93 -0
  43. package/dist/snapshot/compress.js.map +1 -0
  44. package/dist/snapshot/storage.d.ts +13 -0
  45. package/dist/snapshot/storage.d.ts.map +1 -0
  46. package/dist/snapshot/storage.js +151 -0
  47. package/dist/snapshot/storage.js.map +1 -0
  48. package/dist/threshold/adaptive.d.ts +23 -0
  49. package/dist/threshold/adaptive.d.ts.map +1 -0
  50. package/dist/threshold/adaptive.js +29 -0
  51. package/dist/threshold/adaptive.js.map +1 -0
  52. package/dist/threshold/state.d.ts +8 -0
  53. package/dist/threshold/state.d.ts.map +1 -0
  54. package/dist/threshold/state.js +83 -0
  55. package/dist/threshold/state.js.map +1 -0
  56. package/dist/threshold/time-based.d.ts +13 -0
  57. package/dist/threshold/time-based.d.ts.map +1 -0
  58. package/dist/threshold/time-based.js +24 -0
  59. package/dist/threshold/time-based.js.map +1 -0
  60. package/dist/transcript/estimator.d.ts +20 -0
  61. package/dist/transcript/estimator.d.ts.map +1 -0
  62. package/dist/transcript/estimator.js +95 -0
  63. package/dist/transcript/estimator.js.map +1 -0
  64. package/dist/transcript/extractor.d.ts +7 -0
  65. package/dist/transcript/extractor.d.ts.map +1 -0
  66. package/dist/transcript/extractor.js +237 -0
  67. package/dist/transcript/extractor.js.map +1 -0
  68. package/dist/transcript/parser.d.ts +16 -0
  69. package/dist/transcript/parser.d.ts.map +1 -0
  70. package/dist/transcript/parser.js +120 -0
  71. package/dist/transcript/parser.js.map +1 -0
  72. package/dist/types.d.ts +156 -0
  73. package/dist/types.d.ts.map +1 -0
  74. package/dist/types.js +3 -0
  75. package/dist/types.js.map +1 -0
  76. package/hooks/hooks.json +54 -0
  77. package/package.json +77 -0
  78. package/scripts/install-plugin.sh +38 -0
  79. package/skills/context-continuity/SKILL.md +49 -0
package/package.json ADDED
@@ -0,0 +1,77 @@
1
+ {
2
+ "name": "@tyroneross/bookmark",
3
+ "version": "0.1.0",
4
+ "description": "Context snapshots for Claude Code — session continuity across compactions and terminals",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "bin": {
9
+ "bookmark": "./dist/cli/index.js"
10
+ },
11
+ "exports": {
12
+ ".": {
13
+ "types": "./dist/index.d.ts",
14
+ "import": "./dist/index.js"
15
+ },
16
+ "./setup": {
17
+ "types": "./dist/setup/auto-setup.d.ts",
18
+ "import": "./dist/setup/auto-setup.js"
19
+ }
20
+ },
21
+ "files": [
22
+ "dist",
23
+ "commands",
24
+ "skills",
25
+ "hooks",
26
+ "agents",
27
+ ".claude-plugin",
28
+ "scripts/install-plugin.sh",
29
+ "CLAUDE.md",
30
+ "README.md"
31
+ ],
32
+ "scripts": {
33
+ "build": "tsc && npm run build:fixshebang",
34
+ "build:fixshebang": "node -e \"const fs=require('fs');const f='dist/cli/index.js';let c=fs.readFileSync(f,'utf8');if(!c.startsWith('#!')){c='#!/usr/bin/env node\\n'+c;fs.writeFileSync(f,c);}\"",
35
+ "dev": "tsc --watch",
36
+ "start": "node dist/cli/index.js",
37
+ "test": "vitest run",
38
+ "clean": "rm -rf dist",
39
+ "prepublishOnly": "npm run clean && npm run build",
40
+ "postinstall": "node dist/setup/auto-setup.js || true",
41
+ "install-plugin": "bash scripts/install-plugin.sh --global"
42
+ },
43
+ "keywords": [
44
+ "claude-code",
45
+ "context",
46
+ "snapshots",
47
+ "session-continuity",
48
+ "compaction",
49
+ "memory",
50
+ "devtools"
51
+ ],
52
+ "author": "Tyrone Ross",
53
+ "license": "MIT",
54
+ "repository": {
55
+ "type": "git",
56
+ "url": "https://github.com/tyroneross/bookmark"
57
+ },
58
+ "homepage": "https://github.com/tyroneross/bookmark#readme",
59
+ "bugs": {
60
+ "url": "https://github.com/tyroneross/bookmark/issues"
61
+ },
62
+ "engines": {
63
+ "node": ">=20.0.0"
64
+ },
65
+ "dependencies": {
66
+ "commander": "^14.0.0",
67
+ "glob": "^13.0.0"
68
+ },
69
+ "optionalDependencies": {
70
+ "@anthropic-ai/sdk": "^0.39.0"
71
+ },
72
+ "devDependencies": {
73
+ "@types/node": "^22.0.0",
74
+ "typescript": "^5.3.0",
75
+ "vitest": "^4.0.0"
76
+ }
77
+ }
@@ -0,0 +1,38 @@
1
+ #!/bin/bash
2
+ # Install Bookmark as a Claude Code plugin
3
+ # Usage: bash scripts/install-plugin.sh [--global]
4
+
5
+ set -e
6
+
7
+ SCRIPT_DIR="$(cd "$(dirname "$0")/.." && pwd)"
8
+ PLUGIN_DIR="$SCRIPT_DIR"
9
+
10
+ if [[ "$1" == "--global" ]]; then
11
+ # Global install — link plugin for all projects
12
+ CLAUDE_PLUGINS_DIR="$HOME/.claude/plugins"
13
+ mkdir -p "$CLAUDE_PLUGINS_DIR"
14
+
15
+ # Create symlink
16
+ LINK_PATH="$CLAUDE_PLUGINS_DIR/bookmark"
17
+ if [ -L "$LINK_PATH" ]; then
18
+ rm "$LINK_PATH"
19
+ fi
20
+ ln -sf "$PLUGIN_DIR" "$LINK_PATH"
21
+ echo "Bookmark plugin linked globally: $LINK_PATH -> $PLUGIN_DIR"
22
+ else
23
+ # Project-level install
24
+ CWD="${2:-$(pwd)}"
25
+ CLAUDE_DIR="$CWD/.claude"
26
+ mkdir -p "$CLAUDE_DIR"
27
+
28
+ echo "Bookmark plugin installed for project: $CWD"
29
+ echo ""
30
+ echo "Commands available:"
31
+ echo " /bookmark:snapshot — Take a manual snapshot"
32
+ echo " /bookmark:restore — Restore from a snapshot"
33
+ echo " /bookmark:status — Show snapshot stats"
34
+ echo " /bookmark:list — List all snapshots"
35
+ fi
36
+
37
+ echo ""
38
+ echo "Done. Restart your Claude Code session to activate hooks."
@@ -0,0 +1,49 @@
1
+ ---
2
+ name: context-continuity
3
+ description: This skill activates when the user mentions "what was I working on", "continue from last session", "restore context", "what did we decide", "pick up where I left off", "compaction happened", "lost context", "session context", or when resuming work after a break. Provides session continuity by accessing bookmark snapshots.
4
+ version: 0.1.0
5
+ ---
6
+
7
+ # Context Continuity Workflow
8
+
9
+ This skill helps restore and maintain context across Claude Code sessions and compactions.
10
+
11
+ ## When to Activate
12
+
13
+ - User asks about prior session work
14
+ - User wants to continue a previous task
15
+ - After compaction when context was compressed
16
+ - User reports "losing" context or decisions
17
+
18
+ ## Restoration Flow
19
+
20
+ 1. Check for existing snapshots:
21
+ ```bash
22
+ npx @tyroneross/bookmark status
23
+ ```
24
+
25
+ 2. If snapshots exist, read the hot context:
26
+ ```bash
27
+ npx @tyroneross/bookmark show --latest
28
+ ```
29
+
30
+ 3. Present the restored context to the user:
31
+ - **Current Status**: What was being worked on
32
+ - **Decisions Made**: Key choices with rationale
33
+ - **Open Items**: What still needs doing
34
+ - **Unknowns**: Blockers or questions
35
+
36
+ 4. Ask the user which open item to continue with.
37
+
38
+ ## After Restoration
39
+
40
+ Once context is restored, continue working normally. The automatic hooks handle future snapshots.
41
+
42
+ ## Manual Snapshot
43
+
44
+ If the user wants to explicitly save context before a break:
45
+ ```bash
46
+ npx @tyroneross/bookmark snapshot --trigger manual
47
+ ```
48
+
49
+ *bookmark — context snapshot*