know-cli 0.4.2__tar.gz → 0.5.0__tar.gz

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 (68) hide show
  1. {know_cli-0.4.2 → know_cli-0.5.0}/PKG-INFO +1 -1
  2. {know_cli-0.4.2 → know_cli-0.5.0}/docs/arc.md +7 -7
  3. {know_cli-0.4.2 → know_cli-0.5.0}/docs/architecture.md +54 -21
  4. {know_cli-0.4.2 → know_cli-0.5.0}/docs/digest-llm.md +13 -13
  5. {know_cli-0.4.2 → know_cli-0.5.0}/docs/onboarding-new-devs.md +3 -3
  6. know_cli-0.5.0/docs/plans/2026-02-16-feat-10x-agent-search-ranking-plan.md +698 -0
  7. {know_cli-0.4.2 → know_cli-0.5.0}/pyproject.toml +1 -1
  8. {know_cli-0.4.2 → know_cli-0.5.0}/src/know/__init__.py +1 -1
  9. {know_cli-0.4.2 → know_cli-0.5.0}/src/know/cli/agent.py +9 -4
  10. {know_cli-0.4.2 → know_cli-0.5.0}/src/know/cli/search.py +40 -0
  11. {know_cli-0.4.2 → know_cli-0.5.0}/src/know/context_engine.py +436 -145
  12. {know_cli-0.4.2 → know_cli-0.5.0}/src/know/daemon.py +15 -0
  13. {know_cli-0.4.2 → know_cli-0.5.0}/src/know/daemon_db.py +259 -21
  14. know_cli-0.5.0/src/know/file_categories.py +90 -0
  15. know_cli-0.5.0/src/know/ranking.py +42 -0
  16. know_cli-0.5.0/tests/test_v3_search.py +332 -0
  17. {know_cli-0.4.2 → know_cli-0.5.0}/.github/actions/know-cli/action.yml +0 -0
  18. {know_cli-0.4.2 → know_cli-0.5.0}/.github/workflows/example-advanced.yml +0 -0
  19. {know_cli-0.4.2 → know_cli-0.5.0}/.github/workflows/example-basic.yml +0 -0
  20. {know_cli-0.4.2 → know_cli-0.5.0}/.gitignore +0 -0
  21. {know_cli-0.4.2 → know_cli-0.5.0}/AGENTS.md +0 -0
  22. {know_cli-0.4.2 → know_cli-0.5.0}/KNOW_SKILL.md +0 -0
  23. {know_cli-0.4.2 → know_cli-0.5.0}/README.md +0 -0
  24. {know_cli-0.4.2 → know_cli-0.5.0}/docs/architecture-diff.md +0 -0
  25. {know_cli-0.4.2 → know_cli-0.5.0}/docs/dependencies.md +0 -0
  26. {know_cli-0.4.2 → know_cli-0.5.0}/docs/digest-compact.md +0 -0
  27. {know_cli-0.4.2 → know_cli-0.5.0}/docs/onboarding-new_devs.md +0 -0
  28. {know_cli-0.4.2 → know_cli-0.5.0}/docs/plans/2026-02-15-refactor-know-cli-v2-daemon-architecture-plan.md +0 -0
  29. {know_cli-0.4.2 → know_cli-0.5.0}/docs/plans/2026-02-16-fix-testing-issues-search-graph-performance-plan.md +0 -0
  30. {know_cli-0.4.2 → know_cli-0.5.0}/docs/solutions/architecture/p2-p3-architectural-improvements.md +0 -0
  31. {know_cli-0.4.2 → know_cli-0.5.0}/src/know/IMPROVEMENTS.md +0 -0
  32. {know_cli-0.4.2 → know_cli-0.5.0}/src/know/ai.py +0 -0
  33. {know_cli-0.4.2 → know_cli-0.5.0}/src/know/cli/__init__.py +0 -0
  34. {know_cli-0.4.2 → know_cli-0.5.0}/src/know/cli/core.py +0 -0
  35. {know_cli-0.4.2 → know_cli-0.5.0}/src/know/cli/diff.py +0 -0
  36. {know_cli-0.4.2 → know_cli-0.5.0}/src/know/cli/hooks.py +0 -0
  37. {know_cli-0.4.2 → know_cli-0.5.0}/src/know/cli/knowledge.py +0 -0
  38. {know_cli-0.4.2 → know_cli-0.5.0}/src/know/cli/mcp.py +0 -0
  39. {know_cli-0.4.2 → know_cli-0.5.0}/src/know/cli/stats.py +0 -0
  40. {know_cli-0.4.2 → know_cli-0.5.0}/src/know/config.py +0 -0
  41. {know_cli-0.4.2 → know_cli-0.5.0}/src/know/diff.py +0 -0
  42. {know_cli-0.4.2 → know_cli-0.5.0}/src/know/embeddings.py +0 -0
  43. {know_cli-0.4.2 → know_cli-0.5.0}/src/know/exceptions.py +0 -0
  44. {know_cli-0.4.2 → know_cli-0.5.0}/src/know/generator.py +0 -0
  45. {know_cli-0.4.2 → know_cli-0.5.0}/src/know/git_hooks.py +0 -0
  46. {know_cli-0.4.2 → know_cli-0.5.0}/src/know/import_graph.py +0 -0
  47. {know_cli-0.4.2 → know_cli-0.5.0}/src/know/index.py +0 -0
  48. {know_cli-0.4.2 → know_cli-0.5.0}/src/know/knowledge_base.py +0 -0
  49. {know_cli-0.4.2 → know_cli-0.5.0}/src/know/logger.py +0 -0
  50. {know_cli-0.4.2 → know_cli-0.5.0}/src/know/mcp_server.py +0 -0
  51. {know_cli-0.4.2 → know_cli-0.5.0}/src/know/models.py +0 -0
  52. {know_cli-0.4.2 → know_cli-0.5.0}/src/know/parsers.py +0 -0
  53. {know_cli-0.4.2 → know_cli-0.5.0}/src/know/quality.py +0 -0
  54. {know_cli-0.4.2 → know_cli-0.5.0}/src/know/scanner.py +0 -0
  55. {know_cli-0.4.2 → know_cli-0.5.0}/src/know/semantic_search.py +0 -0
  56. {know_cli-0.4.2 → know_cli-0.5.0}/src/know/stats.py +0 -0
  57. {know_cli-0.4.2 → know_cli-0.5.0}/src/know/token_counter.py +0 -0
  58. {know_cli-0.4.2 → know_cli-0.5.0}/src/know/watcher.py +0 -0
  59. {know_cli-0.4.2 → know_cli-0.5.0}/tests/README.md +0 -0
  60. {know_cli-0.4.2 → know_cli-0.5.0}/tests/conftest.py +0 -0
  61. {know_cli-0.4.2 → know_cli-0.5.0}/tests/test_efficiency.py +0 -0
  62. {know_cli-0.4.2 → know_cli-0.5.0}/tests/test_know.py +0 -0
  63. {know_cli-0.4.2 → know_cli-0.5.0}/tests/test_token_features.py +0 -0
  64. {know_cli-0.4.2 → know_cli-0.5.0}/tests/test_unit.py +0 -0
  65. {know_cli-0.4.2 → know_cli-0.5.0}/tests/test_v2_features.py +0 -0
  66. {know_cli-0.4.2 → know_cli-0.5.0}/tests/test_week2.py +0 -0
  67. {know_cli-0.4.2 → know_cli-0.5.0}/tests/test_week3.py +0 -0
  68. {know_cli-0.4.2 → know_cli-0.5.0}/tests/test_week4.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: know-cli
3
- Version: 0.4.2
3
+ Version: 0.5.0
4
4
  Summary: Context Intelligence for AI Coding Agents — smart, token-budgeted code context
5
5
  Project-URL: Homepage, https://github.com/sushilk1991/know-cli
6
6
  Project-URL: Repository, https://github.com/sushilk1991/know-cli
@@ -7,29 +7,29 @@
7
7
 
8
8
  ## 📁 Project Structure
9
9
 
10
+ - **[src.know.daemon](src/know/daemon.py)** - Background daemon for maintaining hot indexes.
10
11
  - **[src.know.ai](src/know/ai.py)** - AI integration for intelligent code understanding with advanced token optimization.
11
12
  - **[src.know.diff](src/know/diff.py)** - Diff mode for tracking architectural changes safely using git worktrees.
12
13
  - **[src.know.knowledge_base](src/know/knowledge_base.py)** - Knowledge base: cross-session memory for AI agents.
13
14
  - **[src.know.index](src/know/index.py)** - Index management for incremental code scanning.
14
15
  - **[src.know.logger](src/know/logger.py)** - Logging configuration for know.
15
16
  - **[src.know.watcher](src/know/watcher.py)** - File system watcher for auto-updating documentation.
17
+ - **[src.know.embeddings](src/know/embeddings.py)** - Centralized embedding model management.
16
18
  - **[src.know.models](src/know/models.py)** - Data models for know-cli.
17
19
  - **[src.know.token_counter](src/know/token_counter.py)** - Token counting for context budget management.
18
- - **[src.know.model_router](src/know/model_router.py)** - Smart model router for cost-optimized AI interactions.
19
20
  - **[src.know.stats](src/know/stats.py)** - Usage statistics tracker for know-cli.
20
21
  - **[src.know.semantic_search](src/know/semantic_search.py)** - Semantic code search using real embeddings and vector similarity.
21
22
  - **[src.know.__init__](src/know/__init__.py)** - know - Living documentation generator for codebases.
22
- - **[src.know.cli](src/know/cli.py)** - CLI entry point for know.
23
23
  - **[src.know.generator](src/know/generator.py)** - Documentation generator.
24
24
  - **[src.know.config](src/know/config.py)** - Configuration management for know.
25
- - ... and 8 more modules
25
+ - ... and 18 more modules
26
26
 
27
27
  ## 📊 Statistics
28
28
 
29
- - **Files:** 23
30
- - **Modules:** 23
31
- - **Functions:** 57
32
- - **Classes:** 47
29
+ - **Files:** 33
30
+ - **Modules:** 33
31
+ - **Functions:** 74
32
+ - **Classes:** 55
33
33
 
34
34
  ---
35
35
 
@@ -2,33 +2,41 @@
2
2
 
3
3
  ```mermaid
4
4
  graph TB
5
+ daemon["daemon\n(9f, 2c)"]
5
6
  ai["ai\n(0f, 4c)"]
6
7
  diff["diff\n(0f, 1c)"]
7
8
  knowledge_base["knowledge_base\n(0f, 2c)"]
8
9
  index["index\n(1f, 1c)"]
9
10
  logger["logger\n(2f, 0c)"]
10
11
  watcher["watcher\n(0f, 2c)"]
12
+ embeddings["embeddings\n(3f, 0c)"]
11
13
  models["models\n(0f, 4c)"]
12
14
  token_counter["token_counter\n(4f, 0c)"]
13
- model_router["model_router\n(0f, 2c)"]
14
- stats["stats\n(0f, 2c)"]
15
+ stats["stats\n(0f, 1c)"]
15
16
  semantic_search["semantic_search\n(0f, 2c)"]
16
17
  __init__["__init__"]
17
- cli["cli\n(35f, 0c)"]
18
18
  generator["generator\n(0f, 1c)"]
19
19
  config["config\n(1f, 6c)"]
20
20
  import_graph["import_graph\n(0f, 1c)"]
21
21
  exceptions["exceptions\n(0f, 8c)"]
22
22
  git_hooks["git_hooks\n(0f, 1c)"]
23
+ daemon_db["daemon_db\n(0f, 1c)"]
23
24
  mcp_server["mcp_server\n(5f, 0c)"]
24
- scanner["scanner\n(1f, 1c)"]
25
25
 
26
+ daemon --> config
27
+ daemon --> daemon_db
28
+ daemon --> logger
29
+ daemon --> parsers
30
+ daemon --> scanner
31
+ daemon --> import_graph
26
32
  ai --> config
27
33
  diff --> config
28
34
  diff --> scanner
29
35
  knowledge_base --> logger
30
36
  knowledge_base --> config
37
+ knowledge_base --> daemon_db
31
38
  knowledge_base --> token_counter
39
+ knowledge_base --> embeddings
32
40
  index --> exceptions
33
41
  index --> logger
34
42
  index --> config
@@ -36,32 +44,20 @@ graph TB
36
44
  watcher --> config
37
45
  watcher --> scanner
38
46
  watcher --> generator
47
+ embeddings --> logger
39
48
  stats --> logger
40
49
  stats --> config
50
+ semantic_search --> embeddings
41
51
  semantic_search --> context_engine
42
- __init__ --> cli
43
- cli --> config
44
- cli --> scanner
45
- cli --> generator
46
- cli --> watcher
47
- cli --> ai
48
- cli --> git_hooks
49
- cli --> logger
50
- cli --> exceptions
51
- cli --> semantic_search
52
- cli --> context_engine
53
- cli --> import_graph
54
- cli --> diff
55
- cli --> knowledge_base
56
- cli --> stats
57
- cli --> model_router
58
- cli --> mcp_server
59
52
  generator --> config
60
53
  generator --> scanner
61
54
  generator --> ai
62
55
  import_graph --> logger
63
56
  import_graph --> config
57
+ import_graph --> daemon_db
64
58
  git_hooks --> config
59
+ daemon_db --> logger
60
+ daemon_db --> token_counter
65
61
  mcp_server --> logger
66
62
  mcp_server --> config
67
63
  mcp_server --> context_engine
@@ -79,11 +75,48 @@ graph TB
79
75
  scanner --> index
80
76
  parsers --> exceptions
81
77
  parsers --> models
78
+ parsers --> logger
82
79
  context_engine --> token_counter
83
80
  context_engine --> logger
81
+ context_engine --> embeddings
84
82
  context_engine --> config
85
83
  context_engine --> scanner
86
84
  context_engine --> import_graph
85
+ hooks --> git_hooks
86
+ core --> config
87
+ core --> scanner
88
+ core --> generator
89
+ core --> ai
90
+ core --> watcher
91
+ core --> knowledge_base
92
+ search --> scanner
93
+ search --> agent
94
+ search --> context_engine
95
+ search --> import_graph
96
+ search --> semantic_search
97
+ search --> stats
98
+ search --> knowledge_base
99
+ stats --> scanner
100
+ stats --> knowledge_base
101
+ __init__ --> config
102
+ __init__ --> logger
103
+ __init__ --> exceptions
104
+ __init__ --> core
105
+ __init__ --> search
106
+ __init__ --> knowledge
107
+ __init__ --> stats
108
+ __init__ --> hooks
109
+ __init__ --> mcp
110
+ __init__ --> agent
111
+ __init__ --> diff
112
+ knowledge --> knowledge_base
113
+ knowledge --> stats
114
+ agent --> daemon_db
115
+ agent --> token_counter
116
+ agent --> daemon
117
+ agent --> import_graph
118
+ agent --> scanner
119
+ mcp --> mcp_server
87
120
  ```
88
121
 
89
122
  *Generated by know*
@@ -1,27 +1,27 @@
1
1
  # Codebase Digest
2
2
 
3
- - {'name': 'src.know.diff', 'path': 'src/know/diff.py', 'description': 'Diff mode for tracking architectural changes safely using git worktrees.', 'function_count': 0, 'class_count': 1}
4
- - {'name': 'src.know.index', 'path': 'src/know/index.py', 'description': 'Index management for incremental code scanning.', 'function_count': 1, 'class_count': 1}
5
- - {'name': 'src.know.knowledge_base', 'path': 'src/know/knowledge_base.py', 'description': 'Knowledge base: cross-session memory for AI agents.\n\nPersists codebase understanding in a project-local SQLite database.\nSupports semantic recall (fastembed) with text-match fallback.\nEach memory is p', 'function_count': 0, 'class_count': 2}
3
+ - {'name': 'src.know.knowledge_base', 'path': 'src/know/knowledge_base.py', 'description': 'Knowledge base: cross-session memory for AI agents.\n\nThin wrapper around DaemonDB the single source of truth for all\nproject data. Translates between integer display IDs (used by CLI)\nand text UUIDs', 'function_count': 0, 'class_count': 2}
4
+ - {'name': 'src.know.daemon', 'path': 'src/know/daemon.py', 'description': 'Background daemon for maintaining hot indexes.\n\nLifecycle:\n- Auto-started on first CLI call (no explicit `know start` needed)\n- Listens on Unix socket at ~/.know/sockets/<project-hash>.sock\n- PID file', 'function_count': 9, 'class_count': 2}
6
5
  - {'name': 'src.know.logger', 'path': 'src/know/logger.py', 'description': 'Logging configuration for know.', 'function_count': 2, 'class_count': 0}
7
- - {'name': 'src.know.models', 'path': 'src/know/models.py', 'description': 'Data models for know-cli.', 'function_count': 0, 'class_count': 4}
8
- - {'name': 'src.know.token_counter', 'path': 'src/know/token_counter.py', 'description': "Token counting for context budget management.\n\nUses tiktoken when available for accurate counting, falls back to\na simple word-based estimation that's fast and dependency-free.\nRoughly approximates GP", 'function_count': 4, 'class_count': 0}
9
6
  - {'name': 'src.know.ai', 'path': 'src/know/ai.py', 'description': 'AI integration for intelligent code understanding with advanced token optimization.', 'function_count': 0, 'class_count': 4}
7
+ - {'name': 'src.know.embeddings', 'path': 'src/know/embeddings.py', 'description': 'Centralized embedding model management.\n\nSingle process-wide cache for fastembed models. All consumers\n(context_engine, semantic_search, knowledge_base) use this instead\nof maintaining separate caches', 'function_count': 3, 'class_count': 0}
8
+ - {'name': 'src.know.diff', 'path': 'src/know/diff.py', 'description': 'Diff mode for tracking architectural changes safely using git worktrees.', 'function_count': 0, 'class_count': 1}
9
+ - {'name': 'src.know.models', 'path': 'src/know/models.py', 'description': 'Data models for know-cli.', 'function_count': 0, 'class_count': 4}
10
10
  - {'name': 'src.know.watcher', 'path': 'src/know/watcher.py', 'description': 'File system watcher for auto-updating documentation.', 'function_count': 0, 'class_count': 2}
11
+ - {'name': 'src.know.token_counter', 'path': 'src/know/token_counter.py', 'description': "Token counting for context budget management.\n\nUses tiktoken (cl100k_base) for accurate counting. Applies a calibration\nfactor for Anthropic models since Claude uses a different tokenizer than\nOpenAI'", 'function_count': 4, 'class_count': 0}
11
12
  - {'name': 'src.know.__init__', 'path': 'src/know/__init__.py', 'description': 'know - Living documentation generator for codebases.', 'function_count': 0, 'class_count': 0}
12
- - {'name': 'src.know.model_router', 'path': 'src/know/model_router.py', 'description': 'Smart model router for cost-optimized AI interactions.\n\nRoutes tasks to the cheapest model that meets quality requirements,\nenabling significant cost savings while maintaining output quality.', 'function_count': 0, 'class_count': 2}
13
- - {'name': 'src.know.stats', 'path': 'src/know/stats.py', 'description': 'Usage statistics tracker for know-cli.\n\nTracks every query, search, and memory operation in a project-local\nSQLite database (`.know/stats.db`). Powers the `know stats` command.', 'function_count': 0, 'class_count': 2}
13
+ - {'name': 'src.know.stats', 'path': 'src/know/stats.py', 'description': 'Usage statistics tracker for know-cli.\n\nTracks every query, search, and memory operation in a project-local\nSQLite database (`.know/stats.db`). Powers the `know stats` command.', 'function_count': 0, 'class_count': 1}
14
+ - {'name': 'src.know.index', 'path': 'src/know/index.py', 'description': 'Index management for incremental code scanning.', 'function_count': 1, 'class_count': 1}
14
15
  - {'name': 'src.know.config', 'path': 'src/know/config.py', 'description': 'Configuration management for know.', 'function_count': 1, 'class_count': 6}
15
- - {'name': 'src.know.generator', 'path': 'src/know/generator.py', 'description': 'Documentation generator.', 'function_count': 0, 'class_count': 1}
16
- - {'name': 'src.know.import_graph', 'path': 'src/know/import_graph.py', 'description': "Import graph: tracks dependencies between project modules.\n\nStores import relationships as an adjacency list in index.db.\nProvides queries for 'what does X import?' and 'what imports X?'.", 'function_count': 0, 'class_count': 1}
17
16
  - {'name': 'src.know.exceptions', 'path': 'src/know/exceptions.py', 'description': 'Custom exceptions for know-cli.', 'function_count': 0, 'class_count': 8}
18
17
  - {'name': 'src.know.git_hooks', 'path': 'src/know/git_hooks.py', 'description': 'Git hook management.', 'function_count': 0, 'class_count': 1}
19
- - {'name': 'src.know.mcp_server', 'path': 'src/know/mcp_server.py', 'description': "MCP (Model Context Protocol) server for know-cli.\n\nExposes know-cli's context engine, search, memory, and graph features\nas MCP tools and resources. Works with Claude Desktop, Cursor, and any\nMCP-com", 'function_count': 5, 'class_count': 0}
18
+ - {'name': 'src.know.import_graph', 'path': 'src/know/import_graph.py', 'description': "Import graph: tracks dependencies between project modules.\n\nDelegates storage to DaemonDB (the single source of truth).\nProvides queries for 'what does X import?' and 'what imports X?'.\n\nUses fully-qu", 'function_count': 0, 'class_count': 1}
19
+ - {'name': 'src.know.generator', 'path': 'src/know/generator.py', 'description': 'Documentation generator.', 'function_count': 0, 'class_count': 1}
20
+ - {'name': 'src.know.daemon_db', 'path': 'src/know/daemon_db.py', 'description': 'Unified daemon database — SQLite with FTS5 for search.\n\nStores code chunks, import graph, and cross-session memories in a\nsingle database. FTS5 provides BM25 keyword search as the default;\nvector embe', 'function_count': 0, 'class_count': 1}
20
21
  - {'name': 'src.know.semantic_search', 'path': 'src/know/semantic_search.py', 'description': 'Semantic code search using real embeddings and vector similarity.\n\nSupports both file-level (v1) and function-level (v2) embeddings.\nFunction-level uses AST to split Python files into individual chunk', 'function_count': 0, 'class_count': 2}
21
22
  - {'name': 'src.know.scanner', 'path': 'src/know/scanner.py', 'description': 'Codebase scanner for AST analysis.', 'function_count': 1, 'class_count': 1}
22
- - {'name': 'src.know.parsers', 'path': 'src/know/parsers.py', 'description': 'Parser strategy pattern for language-specific parsing.', 'function_count': 0, 'class_count': 5}
23
23
 
24
- Files: 23
25
- Modules: 23
24
+ Files: 33
25
+ Modules: 33
26
26
 
27
27
  *Set ANTHROPIC_API_KEY for AI digests*
@@ -1,13 +1,13 @@
1
1
  # Onboarding: new team members
2
2
 
3
3
  ## Structure
4
+ - {'name': 'src.know.daemon', 'path': 'src/know/daemon.py', 'description': 'Background daemon for maintaining hot indexes.\n\nLifecycle:\n- Auto-started on first CLI call (no explicit `know start` needed)\n- Listens on Unix socket at ~/.know/sockets/<project-hash>.sock\n- PID file', 'function_count': 9, 'class_count': 2}
4
5
  - {'name': 'src.know.ai', 'path': 'src/know/ai.py', 'description': 'AI integration for intelligent code understanding with advanced token optimization.', 'function_count': 0, 'class_count': 4}
5
6
  - {'name': 'src.know.diff', 'path': 'src/know/diff.py', 'description': 'Diff mode for tracking architectural changes safely using git worktrees.', 'function_count': 0, 'class_count': 1}
6
- - {'name': 'src.know.knowledge_base', 'path': 'src/know/knowledge_base.py', 'description': 'Knowledge base: cross-session memory for AI agents.\n\nPersists codebase understanding in a project-local SQLite database.\nSupports semantic recall (fastembed) with text-match fallback.\nEach memory is p', 'function_count': 0, 'class_count': 2}
7
+ - {'name': 'src.know.knowledge_base', 'path': 'src/know/knowledge_base.py', 'description': 'Knowledge base: cross-session memory for AI agents.\n\nThin wrapper around DaemonDB the single source of truth for all\nproject data. Translates between integer display IDs (used by CLI)\nand text UUIDs', 'function_count': 0, 'class_count': 2}
7
8
  - {'name': 'src.know.index', 'path': 'src/know/index.py', 'description': 'Index management for incremental code scanning.', 'function_count': 1, 'class_count': 1}
8
9
  - {'name': 'src.know.logger', 'path': 'src/know/logger.py', 'description': 'Logging configuration for know.', 'function_count': 2, 'class_count': 0}
9
10
  - {'name': 'src.know.watcher', 'path': 'src/know/watcher.py', 'description': 'File system watcher for auto-updating documentation.', 'function_count': 0, 'class_count': 2}
10
- - {'name': 'src.know.models', 'path': 'src/know/models.py', 'description': 'Data models for know-cli.', 'function_count': 0, 'class_count': 4}
11
- - {'name': 'src.know.token_counter', 'path': 'src/know/token_counter.py', 'description': "Token counting for context budget management.\n\nUses tiktoken when available for accurate counting, falls back to\na simple word-based estimation that's fast and dependency-free.\nRoughly approximates GP", 'function_count': 4, 'class_count': 0}
11
+ - {'name': 'src.know.embeddings', 'path': 'src/know/embeddings.py', 'description': 'Centralized embedding model management.\n\nSingle process-wide cache for fastembed models. All consumers\n(context_engine, semantic_search, knowledge_base) use this instead\nof maintaining separate caches', 'function_count': 3, 'class_count': 0}
12
12
 
13
13
  *Set ANTHROPIC_API_KEY for AI-powered guides*