htmlgraph 0.24.1__py3-none-any.whl → 0.25.0__py3-none-any.whl

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 (103) hide show
  1. htmlgraph/__init__.py +20 -1
  2. htmlgraph/agent_detection.py +26 -10
  3. htmlgraph/analytics/cross_session.py +4 -3
  4. htmlgraph/analytics/work_type.py +52 -16
  5. htmlgraph/analytics_index.py +51 -19
  6. htmlgraph/api/__init__.py +3 -0
  7. htmlgraph/api/main.py +2115 -0
  8. htmlgraph/api/static/htmx.min.js +1 -0
  9. htmlgraph/api/static/style-redesign.css +1344 -0
  10. htmlgraph/api/static/style.css +1079 -0
  11. htmlgraph/api/templates/dashboard-redesign.html +812 -0
  12. htmlgraph/api/templates/dashboard.html +783 -0
  13. htmlgraph/api/templates/partials/activity-feed-hierarchical.html +326 -0
  14. htmlgraph/api/templates/partials/activity-feed.html +570 -0
  15. htmlgraph/api/templates/partials/agents-redesign.html +317 -0
  16. htmlgraph/api/templates/partials/agents.html +317 -0
  17. htmlgraph/api/templates/partials/event-traces.html +373 -0
  18. htmlgraph/api/templates/partials/features-kanban-redesign.html +509 -0
  19. htmlgraph/api/templates/partials/features.html +509 -0
  20. htmlgraph/api/templates/partials/metrics-redesign.html +346 -0
  21. htmlgraph/api/templates/partials/metrics.html +346 -0
  22. htmlgraph/api/templates/partials/orchestration-redesign.html +443 -0
  23. htmlgraph/api/templates/partials/orchestration.html +163 -0
  24. htmlgraph/api/templates/partials/spawners.html +375 -0
  25. htmlgraph/atomic_ops.py +560 -0
  26. htmlgraph/builders/base.py +55 -1
  27. htmlgraph/builders/bug.py +17 -2
  28. htmlgraph/builders/chore.py +17 -2
  29. htmlgraph/builders/epic.py +17 -2
  30. htmlgraph/builders/feature.py +25 -2
  31. htmlgraph/builders/phase.py +17 -2
  32. htmlgraph/builders/spike.py +27 -2
  33. htmlgraph/builders/track.py +14 -0
  34. htmlgraph/cigs/__init__.py +4 -0
  35. htmlgraph/cigs/reporter.py +818 -0
  36. htmlgraph/cli.py +1427 -401
  37. htmlgraph/cli_commands/__init__.py +1 -0
  38. htmlgraph/cli_commands/feature.py +195 -0
  39. htmlgraph/cli_framework.py +115 -0
  40. htmlgraph/collections/__init__.py +2 -0
  41. htmlgraph/collections/base.py +21 -0
  42. htmlgraph/collections/session.py +189 -0
  43. htmlgraph/collections/spike.py +7 -1
  44. htmlgraph/collections/task_delegation.py +236 -0
  45. htmlgraph/collections/traces.py +482 -0
  46. htmlgraph/config.py +113 -0
  47. htmlgraph/converter.py +41 -0
  48. htmlgraph/cost_analysis/__init__.py +5 -0
  49. htmlgraph/cost_analysis/analyzer.py +438 -0
  50. htmlgraph/dashboard.html +3315 -492
  51. htmlgraph-0.24.1.data/data/htmlgraph/dashboard.html → htmlgraph/dashboard.html.backup +2246 -248
  52. htmlgraph/dashboard.html.bak +7181 -0
  53. htmlgraph/dashboard.html.bak2 +7231 -0
  54. htmlgraph/dashboard.html.bak3 +7232 -0
  55. htmlgraph/db/__init__.py +38 -0
  56. htmlgraph/db/queries.py +790 -0
  57. htmlgraph/db/schema.py +1334 -0
  58. htmlgraph/deploy.py +26 -27
  59. htmlgraph/docs/API_REFERENCE.md +841 -0
  60. htmlgraph/docs/HTTP_API.md +750 -0
  61. htmlgraph/docs/INTEGRATION_GUIDE.md +752 -0
  62. htmlgraph/docs/ORCHESTRATION_PATTERNS.md +710 -0
  63. htmlgraph/docs/README.md +533 -0
  64. htmlgraph/docs/version_check.py +3 -1
  65. htmlgraph/error_handler.py +544 -0
  66. htmlgraph/event_log.py +2 -0
  67. htmlgraph/hooks/__init__.py +8 -0
  68. htmlgraph/hooks/bootstrap.py +169 -0
  69. htmlgraph/hooks/context.py +271 -0
  70. htmlgraph/hooks/drift_handler.py +521 -0
  71. htmlgraph/hooks/event_tracker.py +405 -15
  72. htmlgraph/hooks/post_tool_use_handler.py +257 -0
  73. htmlgraph/hooks/pretooluse.py +476 -6
  74. htmlgraph/hooks/prompt_analyzer.py +648 -0
  75. htmlgraph/hooks/session_handler.py +583 -0
  76. htmlgraph/hooks/state_manager.py +501 -0
  77. htmlgraph/hooks/subagent_stop.py +309 -0
  78. htmlgraph/hooks/task_enforcer.py +39 -0
  79. htmlgraph/models.py +111 -15
  80. htmlgraph/operations/fastapi_server.py +230 -0
  81. htmlgraph/orchestration/headless_spawner.py +22 -14
  82. htmlgraph/pydantic_models.py +476 -0
  83. htmlgraph/quality_gates.py +350 -0
  84. htmlgraph/repo_hash.py +511 -0
  85. htmlgraph/sdk.py +348 -10
  86. htmlgraph/server.py +194 -0
  87. htmlgraph/session_hooks.py +300 -0
  88. htmlgraph/session_manager.py +131 -1
  89. htmlgraph/session_registry.py +587 -0
  90. htmlgraph/session_state.py +436 -0
  91. htmlgraph/system_prompts.py +449 -0
  92. htmlgraph/templates/orchestration-view.html +350 -0
  93. htmlgraph/track_builder.py +19 -0
  94. htmlgraph/validation.py +115 -0
  95. htmlgraph-0.25.0.data/data/htmlgraph/dashboard.html +7417 -0
  96. {htmlgraph-0.24.1.dist-info → htmlgraph-0.25.0.dist-info}/METADATA +91 -64
  97. {htmlgraph-0.24.1.dist-info → htmlgraph-0.25.0.dist-info}/RECORD +103 -42
  98. {htmlgraph-0.24.1.data → htmlgraph-0.25.0.data}/data/htmlgraph/styles.css +0 -0
  99. {htmlgraph-0.24.1.data → htmlgraph-0.25.0.data}/data/htmlgraph/templates/AGENTS.md.template +0 -0
  100. {htmlgraph-0.24.1.data → htmlgraph-0.25.0.data}/data/htmlgraph/templates/CLAUDE.md.template +0 -0
  101. {htmlgraph-0.24.1.data → htmlgraph-0.25.0.data}/data/htmlgraph/templates/GEMINI.md.template +0 -0
  102. {htmlgraph-0.24.1.dist-info → htmlgraph-0.25.0.dist-info}/WHEEL +0 -0
  103. {htmlgraph-0.24.1.dist-info → htmlgraph-0.25.0.dist-info}/entry_points.txt +0 -0
@@ -0,0 +1,533 @@
1
+ # HtmlGraph API Documentation
2
+
3
+ Complete developer documentation for HtmlGraph SDK, HTTP API, and orchestration patterns.
4
+
5
+ ## Quick Navigation
6
+
7
+ ### For First-Time Users
8
+ Start here for a quick introduction and working examples.
9
+
10
+ **→ [Integration Guide](INTEGRATION_GUIDE.md)** - 5-minute quick start
11
+ - Installation and setup
12
+ - Common patterns (5 minutes to first feature)
13
+ - Complete example applications
14
+ - Troubleshooting guide
15
+
16
+ ### For SDK Developers
17
+ Complete reference for Python SDK with code examples for every method.
18
+
19
+ **→ [SDK API Reference](API_REFERENCE.md)** - Comprehensive Python API
20
+ - SDK initialization
21
+ - All collection methods (create, get, all, where, edit, delete)
22
+ - Builder pattern for fluent API
23
+ - Query builder for complex searches
24
+ - Analytics and dependency analysis
25
+ - System prompt management
26
+ - Task delegation
27
+ - Error handling patterns
28
+ - 800+ lines of examples
29
+
30
+ ### For HTTP Integration
31
+ REST API documentation for external service integration.
32
+
33
+ **→ [HTTP API Reference](HTTP_API.md)** - REST endpoint documentation
34
+ - Server startup
35
+ - All endpoints (/api/features, /api/bugs, /api/tasks, etc.)
36
+ - Request/response formats with examples
37
+ - Query parameters and filtering
38
+ - Status codes and error responses
39
+ - Pagination
40
+ - Complete curl examples
41
+
42
+ ### For Multi-Agent Workflows
43
+ Guide to spawning agents, delegating tasks, and coordinating work.
44
+
45
+ **→ [Orchestration Patterns](ORCHESTRATION_PATTERNS.md)** - Agent coordination guide
46
+ - Agent spawning (Claude, Gemini, Codex, Copilot)
47
+ - Task delegation and tracking
48
+ - Model selection strategy
49
+ - Cost optimization
50
+ - Advanced patterns (chain-of-thought, feedback loops, consensus)
51
+ - Error recovery and fallback patterns
52
+
53
+ ---
54
+
55
+ ## Documentation Overview
56
+
57
+ | Document | Purpose | Audience | Time |
58
+ |----------|---------|----------|------|
59
+ | [Integration Guide](INTEGRATION_GUIDE.md) | Quick start and common patterns | All developers | 5 min |
60
+ | [SDK API Reference](API_REFERENCE.md) | Complete Python SDK documentation | Python developers | 30 min |
61
+ | [HTTP API Reference](HTTP_API.md) | REST endpoint reference | Integration engineers | 20 min |
62
+ | [Orchestration Patterns](ORCHESTRATION_PATTERNS.md) | Multi-agent workflows | Advanced users | 30 min |
63
+
64
+ **Total Documentation:** ~3,000 lines of comprehensive guides with 150+ code examples
65
+
66
+ ---
67
+
68
+ ## Key Features Documented
69
+
70
+ ### SDK Features
71
+ - Auto-discovery of .htmlgraph directory
72
+ - Fluent builder interface for all work items
73
+ - Collections: Features, Bugs, Spikes, Chores, Epics, Phases, Sessions, Tracks
74
+ - Query builder for complex searches
75
+ - Analytics: Work distribution, bottleneck analysis, parallelizable work
76
+ - Dependency analysis: Blocking relationships, impact analysis
77
+ - Task delegation and result tracking
78
+ - System prompt management
79
+ - Context analytics and efficiency scoring
80
+
81
+ ### HTTP API
82
+ - REST endpoints for all work items
83
+ - Advanced query API
84
+ - Agent statistics and analytics endpoints
85
+ - Task delegation tracking
86
+ - Status endpoint with collection counts
87
+
88
+ ### Orchestration
89
+ - Agent spawning: Claude, Gemini, Codex, Copilot
90
+ - Task delegation with result tracking
91
+ - Model selection based on task type and complexity
92
+ - Cost optimization strategies
93
+ - Parallel task coordination
94
+ - Error recovery and fallback patterns
95
+ - Advanced patterns: chain-of-thought, feedback loops, multi-agent consensus
96
+
97
+ ---
98
+
99
+ ## Common Tasks
100
+
101
+ ### Create Work Items
102
+
103
+ ```python
104
+ from htmlgraph import SDK
105
+
106
+ sdk = SDK(agent="claude")
107
+
108
+ # Create feature with builder
109
+ feature = sdk.features.create("User Auth") \
110
+ .set_priority("high") \
111
+ .add_steps(["Design", "Implement", "Test"]) \
112
+ .save()
113
+
114
+ # Create bug
115
+ bug = sdk.bugs.create("Login bug").save()
116
+
117
+ # Create spike
118
+ spike = sdk.spikes.create("Investigate caching").save()
119
+ ```
120
+
121
+ See: [Integration Guide - Creating Work Items](INTEGRATION_GUIDE.md#creating-work-items)
122
+
123
+ ---
124
+
125
+ ### Query and Filter
126
+
127
+ ```python
128
+ # Get all features
129
+ all_features = sdk.features.all()
130
+
131
+ # Filter by status and priority
132
+ high_priority = sdk.features.where(
133
+ status="todo",
134
+ priority="high"
135
+ )
136
+
137
+ # Complex query
138
+ results = graph.query_builder() \
139
+ .where("status", "todo") \
140
+ .and_("priority").in_(["high", "critical"]) \
141
+ .execute()
142
+ ```
143
+
144
+ See: [SDK API Reference - Collections](API_REFERENCE.md#collections)
145
+
146
+ ---
147
+
148
+ ### Analytics and Insights
149
+
150
+ ```python
151
+ # Work distribution
152
+ distribution = sdk.analytics.get_work_type_distribution()
153
+
154
+ # Find bottlenecks
155
+ bottlenecks = sdk.dep_analytics.find_bottlenecks(top_n=5)
156
+
157
+ # Get parallelizable work
158
+ parallel = sdk.dep_analytics.get_parallel_work(max_agents=3)
159
+ ```
160
+
161
+ See: [SDK API Reference - Analytics](API_REFERENCE.md#analytics)
162
+
163
+ ---
164
+
165
+ ### Delegate Tasks
166
+
167
+ ```python
168
+ from htmlgraph import delegate_with_id, parallel_delegate
169
+
170
+ # Single task
171
+ task_id = delegate_with_id(
172
+ prompt="Implement feature",
173
+ agent="coder",
174
+ task_id="task-001"
175
+ )
176
+
177
+ # Multiple parallel tasks
178
+ results = parallel_delegate([
179
+ {"prompt": "Task 1", "agent": "coder", "task_id": "t1"},
180
+ {"prompt": "Task 2", "agent": "tester", "task_id": "t2"}
181
+ ])
182
+ ```
183
+
184
+ See: [Orchestration Patterns - Task Delegation](ORCHESTRATION_PATTERNS.md#task-delegation)
185
+
186
+ ---
187
+
188
+ ### Spawn Agents
189
+
190
+ ```python
191
+ from htmlgraph.orchestration import HeadlessSpawner
192
+
193
+ spawner = HeadlessSpawner()
194
+
195
+ # Spawn Claude
196
+ result = spawner.spawn_claude(
197
+ prompt="Write authentication code",
198
+ approval="auto"
199
+ )
200
+
201
+ # Spawn Gemini
202
+ result = spawner.spawn_gemini(
203
+ prompt="Analyze performance",
204
+ model="gemini-2.0-flash"
205
+ )
206
+
207
+ # Spawn Codex
208
+ result = spawner.spawn_codex(
209
+ prompt="Generate API",
210
+ sandbox="workspace-write"
211
+ )
212
+ ```
213
+
214
+ See: [Orchestration Patterns - Agent Selection](ORCHESTRATION_PATTERNS.md#agent-selection)
215
+
216
+ ---
217
+
218
+ ### Start HTTP Server
219
+
220
+ ```bash
221
+ # CLI
222
+ htmlgraph serve --port 8080
223
+
224
+ # Python
225
+ from htmlgraph import serve
226
+ serve(port=8080, directory=".htmlgraph")
227
+ ```
228
+
229
+ Then access API:
230
+ ```bash
231
+ curl http://localhost:8080/api/status
232
+ curl http://localhost:8080/api/features
233
+ ```
234
+
235
+ See: [HTTP API Reference](HTTP_API.md)
236
+
237
+ ---
238
+
239
+ ## Error Handling
240
+
241
+ HtmlGraph uses consistent error handling patterns:
242
+
243
+ | Operation | Error Behavior | Example |
244
+ |-----------|----------------|---------|
245
+ | Lookup (`get`) | Returns `None` | `feature = sdk.features.get("id")` |
246
+ | Query (`where`, `all`) | Returns `[]` | `items = sdk.features.where(...)` |
247
+ | Edit | Raises `NodeNotFoundError` | `with sdk.features.edit("id")` |
248
+ | Create | Raises `ValidationError` | `sdk.features.create(title)` |
249
+ | Batch | Returns results dict | `sdk.features.mark_done([ids])` |
250
+
251
+ See: [SDK API Reference - Error Handling](API_REFERENCE.md#error-handling)
252
+
253
+ ---
254
+
255
+ ## Installation
256
+
257
+ ### Quick Install
258
+
259
+ ```bash
260
+ pip install htmlgraph
261
+ ```
262
+
263
+ ### With uv (Recommended)
264
+
265
+ ```bash
266
+ uv pip install htmlgraph
267
+ ```
268
+
269
+ ### Development
270
+
271
+ ```bash
272
+ git clone https://github.com/anthropics/htmlgraph.git
273
+ cd htmlgraph
274
+ uv pip install -e .
275
+ ```
276
+
277
+ ---
278
+
279
+ ## Project Structure
280
+
281
+ ```
282
+ .htmlgraph/
283
+ ├── features/ # Feature work items
284
+ ├── bugs/ # Bug reports
285
+ ├── spikes/ # Investigation spikes
286
+ ├── chores/ # Maintenance tasks
287
+ ├── epics/ # Large work bodies
288
+ ├── phases/ # Project phases
289
+ ├── sessions/ # Agent sessions
290
+ ├── tracks/ # Work tracks
291
+ ├── task-delegations/ # Delegated task tracking
292
+ ├── patterns/ # Learned patterns
293
+ ├── insights/ # Session insights
294
+ └── metrics/ # Aggregated metrics
295
+ ```
296
+
297
+ ---
298
+
299
+ ## API Overview
300
+
301
+ ### SDK Collections
302
+
303
+ ```python
304
+ sdk.features # Feature work items
305
+ sdk.bugs # Bug reports
306
+ sdk.spikes # Investigation spikes
307
+ sdk.chores # Maintenance tasks
308
+ sdk.epics # Large work bodies
309
+ sdk.phases # Project phases
310
+ sdk.sessions # Agent sessions
311
+ sdk.tracks # Work tracks
312
+ sdk.todos # Persistent task tracking
313
+ sdk.patterns # Learned patterns
314
+ sdk.insights # Session insights
315
+ sdk.metrics # Aggregated metrics
316
+ sdk.task_delegations # Task delegation tracking
317
+ sdk.agents # Agent information
318
+ ```
319
+
320
+ ### HTTP Endpoints
321
+
322
+ ```
323
+ GET /api/status - Server status
324
+ GET /api/features - List features
325
+ POST /api/features - Create feature
326
+ GET /api/features/{id} - Get feature
327
+ PUT /api/features/{id} - Update feature
328
+ DELETE /api/features/{id} - Delete feature
329
+
330
+ GET /api/bugs - List bugs (same pattern as features)
331
+ GET /api/spikes - List spikes
332
+ GET /api/tasks - List delegations
333
+ GET /api/analytics/* - Analytics endpoints
334
+ GET /api/query - Advanced query
335
+ ```
336
+
337
+ ---
338
+
339
+ ## Version Information
340
+
341
+ - **Current Version:** 0.24.1
342
+ - **Documentation Updated:** 2025-01-06
343
+ - **Tested with:** Python 3.8+
344
+ - **Dependencies:** Zero (standard library only)
345
+
346
+ ---
347
+
348
+ ## Common Patterns
349
+
350
+ ### Pattern 1: Create and Update
351
+
352
+ ```python
353
+ feature = sdk.features.create("My Feature") \
354
+ .set_priority("high") \
355
+ .add_steps(["Step 1", "Step 2"]) \
356
+ .save()
357
+
358
+ with sdk.features.edit(feature.id) as f:
359
+ f.status = "done"
360
+ ```
361
+
362
+ ### Pattern 2: Query and Analyze
363
+
364
+ ```python
365
+ todos = sdk.features.where(status="todo")
366
+ bottlenecks = sdk.dep_analytics.find_bottlenecks()
367
+ distribution = sdk.analytics.get_work_type_distribution()
368
+ ```
369
+
370
+ ### Pattern 3: Delegate Work
371
+
372
+ ```python
373
+ task_id = delegate_with_id(
374
+ prompt="Your task",
375
+ agent="coder",
376
+ task_id="task-001"
377
+ )
378
+
379
+ # Check results later
380
+ results = get_results_by_task_id("task-001")
381
+ ```
382
+
383
+ ### Pattern 4: Batch Operations
384
+
385
+ ```python
386
+ # Create multiple
387
+ items = [sdk.features.create(title).save() for title in titles]
388
+
389
+ # Update multiple
390
+ sdk.features.batch_update({
391
+ "feat-1": {"status": "done"},
392
+ "feat-2": {"priority": "high"}
393
+ })
394
+
395
+ # Mark multiple done
396
+ sdk.features.mark_done([id1, id2, id3])
397
+ ```
398
+
399
+ ---
400
+
401
+ ## Troubleshooting
402
+
403
+ ### SDK Issues
404
+
405
+ **"Agent identifier is required"**
406
+ ```python
407
+ # Fix: Always provide agent
408
+ sdk = SDK(agent="claude") # ✓ Correct
409
+ ```
410
+
411
+ **".htmlgraph directory not found"**
412
+ ```python
413
+ # Fix: Create directory structure
414
+ from pathlib import Path
415
+ Path(".htmlgraph/features").mkdir(parents=True, exist_ok=True)
416
+ ```
417
+
418
+ **"NodeNotFoundError"**
419
+ ```python
420
+ # Fix: Check if exists or handle exception
421
+ try:
422
+ with sdk.features.edit("id") as f:
423
+ f.status = "done"
424
+ except NodeNotFoundError:
425
+ print("Not found")
426
+ ```
427
+
428
+ See: [Integration Guide - Troubleshooting](INTEGRATION_GUIDE.md#troubleshooting)
429
+
430
+ ---
431
+
432
+ ### HTTP API Issues
433
+
434
+ **"Connection refused"**
435
+ ```bash
436
+ # Start server
437
+ htmlgraph serve --port 8080
438
+
439
+ # Verify it's running
440
+ curl http://localhost:8080/api/status
441
+ ```
442
+
443
+ **"404 Not Found"**
444
+ ```bash
445
+ # Verify item exists
446
+ curl http://localhost:8080/api/features
447
+
448
+ # Check specific item
449
+ curl http://localhost:8080/api/features/feat-abc123
450
+ ```
451
+
452
+ See: [HTTP API Reference - Error Responses](HTTP_API.md#error-responses)
453
+
454
+ ---
455
+
456
+ ### Orchestration Issues
457
+
458
+ **"Agent spawn failed"**
459
+ ```python
460
+ # Check API key
461
+ import os
462
+ if not os.getenv("ANTHROPIC_API_KEY"):
463
+ print("Set ANTHROPIC_API_KEY")
464
+
465
+ # Use fallback
466
+ try:
467
+ result = spawner.spawn_claude(prompt="...")
468
+ except Exception as e:
469
+ print(f"Claude failed: {e}")
470
+ result = spawner.spawn_gemini(prompt="...")
471
+ ```
472
+
473
+ See: [Orchestration Patterns - Troubleshooting](ORCHESTRATION_PATTERNS.md#troubleshooting)
474
+
475
+ ---
476
+
477
+ ## Learning Paths
478
+
479
+ ### Path 1: Quick Start (15 minutes)
480
+ 1. Read [Integration Guide](INTEGRATION_GUIDE.md) intro
481
+ 2. Run the quick start examples
482
+ 3. Create first feature
483
+ 4. Done!
484
+
485
+ ### Path 2: Python Developer (1 hour)
486
+ 1. [Integration Guide](INTEGRATION_GUIDE.md) - Patterns
487
+ 2. [SDK API Reference](API_REFERENCE.md) - All methods
488
+ 3. Try common patterns from your project
489
+ 4. Explore analytics
490
+
491
+ ### Path 3: Integration Engineer (1 hour)
492
+ 1. [Integration Guide](INTEGRATION_GUIDE.md) - Basics
493
+ 2. [HTTP API Reference](HTTP_API.md) - All endpoints
494
+ 3. Set up HTTP server
495
+ 4. Integrate with external services
496
+
497
+ ### Path 4: Multi-Agent Workflows (2 hours)
498
+ 1. [Integration Guide](INTEGRATION_GUIDE.md) - Task delegation
499
+ 2. [Orchestration Patterns](ORCHESTRATION_PATTERNS.md) - All patterns
500
+ 3. Explore agent spawning
501
+ 4. Build multi-agent workflows
502
+
503
+ ---
504
+
505
+ ## Next Steps
506
+
507
+ 1. **Get started** - Read [Integration Guide](INTEGRATION_GUIDE.md)
508
+ 2. **Deep dive** - Explore [SDK API Reference](API_REFERENCE.md)
509
+ 3. **Build APIs** - Check [HTTP API Reference](HTTP_API.md)
510
+ 4. **Multi-agent** - Learn [Orchestration Patterns](ORCHESTRATION_PATTERNS.md)
511
+ 5. **Get help** - Check troubleshooting sections
512
+ 6. **See examples** - Look for `examples/` directory in repo
513
+
514
+ ---
515
+
516
+ ## Contributing
517
+
518
+ Found a documentation issue? Have a great example? Contribute!
519
+
520
+ - Report issues on GitHub
521
+ - Submit documentation PRs
522
+ - Share your patterns
523
+
524
+ ---
525
+
526
+ ## License
527
+
528
+ HtmlGraph documentation is part of the HtmlGraph project.
529
+ See LICENSE file in repository for details.
530
+
531
+ ---
532
+
533
+ **Version:** 0.24.1 | **Last Updated:** 2025-01-06 | **Maintainer:** HtmlGraph Team
@@ -5,6 +5,8 @@ Version checking and interactive upgrade workflows.
5
5
  from pathlib import Path
6
6
  from typing import TYPE_CHECKING
7
7
 
8
+ from rich.prompt import Prompt
9
+
8
10
  from htmlgraph.docs.docs_version import get_current_doc_version, is_compatible
9
11
  from htmlgraph.docs.metadata import DocsMetadata
10
12
  from htmlgraph.docs.migrations import get_migration
@@ -78,7 +80,7 @@ def upgrade_docs_interactive(htmlgraph_dir: Path) -> None:
78
80
  """
79
81
  )
80
82
 
81
- choice = input("Choose option (1-4): ").strip()
83
+ choice = Prompt.ask("Choose option", choices=["1", "2", "3", "4"], default="4")
82
84
 
83
85
  if choice == "1":
84
86
  _auto_migrate(htmlgraph_dir, migration)