htmlgraph 0.28.8__tar.gz → 0.28.9__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 (629) hide show
  1. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/PKG-INFO +1 -1
  2. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/packages/gemini-extension/gemini-extension.json +1 -1
  3. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/pyproject.toml +1 -1
  4. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/__init__.py +27 -1
  5. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/operations/initialization.py +17 -2
  6. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/sdk/__init__.py +8 -0
  7. htmlgraph-0.28.9/src/python/htmlgraph/sdk/auto_help.py +183 -0
  8. htmlgraph-0.28.9/src/python/htmlgraph/sdk/delegation_warnings.py +232 -0
  9. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/.gitignore +0 -0
  10. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/README.md +0 -0
  11. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/examples/agent-coordination/README.md +0 -0
  12. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/examples/agent-coordination/demo.py +0 -0
  13. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/examples/create_auth_track_demo.py +0 -0
  14. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/examples/create_htmlgraph_dev_track.py +0 -0
  15. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/examples/demo_agent_planning.py +0 -0
  16. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/examples/demo_real_project_analytics.py +0 -0
  17. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/examples/demo_sdk_operations.py +0 -0
  18. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/examples/documentation-site/README.md +0 -0
  19. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/examples/documentation-site/agents.json +0 -0
  20. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/examples/documentation-site/demo.py +0 -0
  21. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/examples/documentation-site/features/doc-api-graph.html +0 -0
  22. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/examples/documentation-site/features/doc-api-overview.html +0 -0
  23. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/examples/documentation-site/features/doc-api-sdk.html +0 -0
  24. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/examples/documentation-site/features/doc-example-advanced.html +0 -0
  25. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/examples/documentation-site/features/doc-example-basic.html +0 -0
  26. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/examples/documentation-site/features/doc-index.html +0 -0
  27. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/examples/documentation-site/features/doc-installation.html +0 -0
  28. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/examples/documentation-site/features/doc-quickstart.html +0 -0
  29. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/examples/example_query_compilation.py +0 -0
  30. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/examples/handoff-demo.py +0 -0
  31. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/examples/knowledge-base/README.md +0 -0
  32. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/examples/knowledge-base/agents.json +0 -0
  33. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/examples/knowledge-base/demo.py +0 -0
  34. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/examples/knowledge-base/features/feat-276c615f.html +0 -0
  35. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/examples/knowledge-base/features/feat-7a6f797d.html +0 -0
  36. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/examples/knowledge-base/features/note-ai-agents.html +0 -0
  37. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/examples/knowledge-base/features/note-graph-db.html +0 -0
  38. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/examples/knowledge-base/features/note-htmlgraph.html +0 -0
  39. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/examples/knowledge-base/features/note-web-standards.html +0 -0
  40. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/examples/parallel_task_coordination.py +0 -0
  41. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/examples/pattern_learning_demo.py +0 -0
  42. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/examples/retry_decorator_examples.py +0 -0
  43. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/examples/routing-demo.py +0 -0
  44. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/examples/sdk_demo.py +0 -0
  45. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/examples/todo-list/README.md +0 -0
  46. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/examples/todo-list/demo.py +0 -0
  47. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/examples/todo-list/index.html +0 -0
  48. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/examples/todo-list/styles.css +0 -0
  49. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/examples/todo-list/task-001.html +0 -0
  50. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/examples/todo-list/task-002.html +0 -0
  51. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/examples/todo-list/task-003.html +0 -0
  52. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/examples/todo-list/task-004.html +0 -0
  53. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/examples/todo-list/task-005.html +0 -0
  54. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/examples/todo-list/task-006.html +0 -0
  55. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/packages/gemini-extension/GEMINI.md +0 -0
  56. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/packages/gemini-extension/README.md +0 -0
  57. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/packages/gemini-extension/command_deploy.md +0 -0
  58. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/packages/gemini-extension/command_end.md +0 -0
  59. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/packages/gemini-extension/command_feature-add.md +0 -0
  60. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/packages/gemini-extension/command_feature-complete.md +0 -0
  61. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/packages/gemini-extension/command_feature-primary.md +0 -0
  62. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/packages/gemini-extension/command_feature-start.md +0 -0
  63. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/packages/gemini-extension/command_git-commit.md +0 -0
  64. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/packages/gemini-extension/command_help.md +0 -0
  65. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/packages/gemini-extension/command_init.md +0 -0
  66. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/packages/gemini-extension/command_plan.md +0 -0
  67. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/packages/gemini-extension/command_recommend.md +0 -0
  68. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/packages/gemini-extension/command_serve.md +0 -0
  69. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/packages/gemini-extension/command_spike.md +0 -0
  70. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/packages/gemini-extension/command_start.md +0 -0
  71. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/packages/gemini-extension/command_status.md +0 -0
  72. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/packages/gemini-extension/command_track.md +0 -0
  73. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/packages/gemini-extension/hooks/hooks.json +0 -0
  74. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/packages/gemini-extension/hooks/scripts/post-tool.sh +0 -0
  75. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/packages/gemini-extension/hooks/scripts/session-end.sh +0 -0
  76. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/packages/gemini-extension/hooks/scripts/session-start.sh +0 -0
  77. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/js/htmlgraph.js +0 -0
  78. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/.htmlgraph/.session-warning-state.json +0 -0
  79. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/.htmlgraph/agents.json +0 -0
  80. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/.htmlgraph/htmlgraph.db +0 -0
  81. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/__init__.pyi +0 -0
  82. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/agent_detection.py +0 -0
  83. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/agent_registry.py +0 -0
  84. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/agents.py +0 -0
  85. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/analytics/__init__.py +0 -0
  86. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/analytics/cli.py +0 -0
  87. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/analytics/cost_analyzer.py +0 -0
  88. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/analytics/cost_monitor.py +0 -0
  89. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/analytics/cost_reporter.py +0 -0
  90. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/analytics/cross_session.py +0 -0
  91. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/analytics/dependency.py +0 -0
  92. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/analytics/pattern_learning.py +0 -0
  93. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/analytics/session_graph.py +0 -0
  94. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/analytics/strategic/__init__.py +0 -0
  95. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/analytics/strategic/cost_optimizer.py +0 -0
  96. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/analytics/strategic/pattern_detector.py +0 -0
  97. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/analytics/strategic/preference_manager.py +0 -0
  98. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/analytics/strategic/suggestion_engine.py +0 -0
  99. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/analytics/work_type.py +0 -0
  100. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/analytics_index.py +0 -0
  101. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/api/__init__.py +0 -0
  102. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/api/broadcast.py +0 -0
  103. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/api/broadcast_routes.py +0 -0
  104. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/api/broadcast_websocket.py +0 -0
  105. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/api/cost_alerts_websocket.py +0 -0
  106. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/api/main.py +0 -0
  107. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/api/offline.py +0 -0
  108. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/api/presence.py +0 -0
  109. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/api/reactive.py +0 -0
  110. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/api/reactive_routes.py +0 -0
  111. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/api/static/broadcast-demo.html +0 -0
  112. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/api/static/htmx.min.js +0 -0
  113. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/api/static/presence-widget-demo.html +0 -0
  114. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/api/static/style-redesign.css +0 -0
  115. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/api/static/style.css +0 -0
  116. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/api/sync_routes.py +0 -0
  117. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/api/templates/dashboard-redesign.html +0 -0
  118. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/api/templates/dashboard.html +0 -0
  119. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/api/templates/partials/activity-feed-hierarchical.html +0 -0
  120. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/api/templates/partials/activity-feed.html +0 -0
  121. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/api/templates/partials/agents-redesign.html +0 -0
  122. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/api/templates/partials/agents.html +0 -0
  123. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/api/templates/partials/event-traces.html +0 -0
  124. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/api/templates/partials/features-kanban-redesign.html +0 -0
  125. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/api/templates/partials/features.html +0 -0
  126. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/api/templates/partials/metrics-redesign.html +0 -0
  127. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/api/templates/partials/metrics.html +0 -0
  128. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/api/templates/partials/orchestration-redesign.html +0 -0
  129. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/api/templates/partials/orchestration.html +0 -0
  130. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/api/templates/partials/spawners.html +0 -0
  131. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/api/templates/partials/work-items.html +0 -0
  132. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/api/websocket.py +0 -0
  133. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/archive/__init__.py +0 -0
  134. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/archive/bloom.py +0 -0
  135. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/archive/fts.py +0 -0
  136. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/archive/manager.py +0 -0
  137. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/archive/search.py +0 -0
  138. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/atomic_ops.py +0 -0
  139. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/attribute_index.py +0 -0
  140. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/bounded_paths.py +0 -0
  141. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/broadcast_integration.py +0 -0
  142. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/builders/__init__.py +0 -0
  143. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/builders/base.py +0 -0
  144. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/builders/bug.py +0 -0
  145. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/builders/chore.py +0 -0
  146. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/builders/epic.py +0 -0
  147. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/builders/feature.py +0 -0
  148. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/builders/insight.py +0 -0
  149. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/builders/metric.py +0 -0
  150. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/builders/pattern.py +0 -0
  151. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/builders/phase.py +0 -0
  152. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/builders/spike.py +0 -0
  153. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/builders/track.py +0 -0
  154. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/cigs/__init__.py +0 -0
  155. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/cigs/autonomy.py +0 -0
  156. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/cigs/cost.py +0 -0
  157. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/cigs/messages_basic.py +0 -0
  158. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/cigs/messaging.py +0 -0
  159. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/cigs/models.py +0 -0
  160. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/cigs/pattern_storage.py +0 -0
  161. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/cigs/patterns.py +0 -0
  162. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/cigs/posttool_analyzer.py +0 -0
  163. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/cigs/reporter.py +0 -0
  164. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/cigs/tracker.py +0 -0
  165. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/cli/.htmlgraph/.session-warning-state.json +0 -0
  166. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/cli/.htmlgraph/agents.json +0 -0
  167. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/cli/.htmlgraph/htmlgraph.db +0 -0
  168. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/cli/__init__.py +0 -0
  169. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/cli/__main__.py +0 -0
  170. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/cli/analytics.py +0 -0
  171. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/cli/base.py +0 -0
  172. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/cli/constants.py +0 -0
  173. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/cli/core.py +0 -0
  174. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/cli/main.py +0 -0
  175. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/cli/models.py +0 -0
  176. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/cli/templates/__init__.py +0 -0
  177. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/cli/templates/cost_dashboard.py +0 -0
  178. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/cli/work/__init__.py +0 -0
  179. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/cli/work/browse.py +0 -0
  180. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/cli/work/features.py +0 -0
  181. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/cli/work/orchestration.py +0 -0
  182. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/cli/work/report.py +0 -0
  183. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/cli/work/sessions.py +0 -0
  184. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/cli/work/snapshot.py +0 -0
  185. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/cli/work/tracks.py +0 -0
  186. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/cli_commands/__init__.py +0 -0
  187. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/cli_commands/feature.py +0 -0
  188. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/cli_commands/sync.py +0 -0
  189. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/cli_framework.py +0 -0
  190. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/collections/__init__.py +0 -0
  191. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/collections/base.py +0 -0
  192. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/collections/bug.py +0 -0
  193. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/collections/chore.py +0 -0
  194. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/collections/epic.py +0 -0
  195. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/collections/feature.py +0 -0
  196. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/collections/insight.py +0 -0
  197. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/collections/metric.py +0 -0
  198. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/collections/pattern.py +0 -0
  199. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/collections/phase.py +0 -0
  200. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/collections/session.py +0 -0
  201. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/collections/spike.py +0 -0
  202. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/collections/task_delegation.py +0 -0
  203. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/collections/todo.py +0 -0
  204. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/collections/traces.py +0 -0
  205. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/config/cost_models.json +0 -0
  206. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/config.py +0 -0
  207. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/context_analytics.py +0 -0
  208. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/converter.py +0 -0
  209. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/cost_analysis/__init__.py +0 -0
  210. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/cost_analysis/analyzer.py +0 -0
  211. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/dashboard.html.backup +0 -0
  212. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/dashboard.html.bak +0 -0
  213. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/dashboard.html.bak2 +0 -0
  214. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/dashboard.html.bak3 +0 -0
  215. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/db/__init__.py +0 -0
  216. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/db/queries.py +0 -0
  217. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/db/schema.py +0 -0
  218. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/decorators.py +0 -0
  219. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/dependency_models.py +0 -0
  220. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/deploy.py +0 -0
  221. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/deployment_models.py +0 -0
  222. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/docs/API_REFERENCE.md +0 -0
  223. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/docs/HTTP_API.md +0 -0
  224. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/docs/INTEGRATION_GUIDE.md +0 -0
  225. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/docs/ORCHESTRATION_PATTERNS.md +0 -0
  226. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/docs/README.md +0 -0
  227. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/docs/__init__.py +0 -0
  228. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/docs/docs_version.py +0 -0
  229. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/docs/metadata.py +0 -0
  230. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/docs/migrations.py +0 -0
  231. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/docs/template_engine.py +0 -0
  232. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/docs/templates/_sections/cli_reference.md.j2 +0 -0
  233. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/docs/templates/_sections/core_concepts.md.j2 +0 -0
  234. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/docs/templates/_sections/sdk_basics.md.j2 +0 -0
  235. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/docs/templates/base_agents.md.j2 +0 -0
  236. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/docs/templates/example_user_override.md.j2 +0 -0
  237. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/docs/version_check.py +0 -0
  238. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/edge_index.py +0 -0
  239. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/error_handler.py +0 -0
  240. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/event_log.py +0 -0
  241. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/event_migration.py +0 -0
  242. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/exceptions.py +0 -0
  243. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/extensions/gemini/GEMINI.md +0 -0
  244. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/extensions/gemini/README.md +0 -0
  245. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/extensions/gemini/gemini-extension.json +0 -0
  246. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/extensions/gemini/hooks/hooks.json +0 -0
  247. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/extensions/gemini/hooks/scripts/post-tool.sh +0 -0
  248. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/extensions/gemini/hooks/scripts/session-end.sh +0 -0
  249. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/extensions/gemini/hooks/scripts/session-start.sh +0 -0
  250. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/file_watcher.py +0 -0
  251. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/find_api.py +0 -0
  252. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/git_events.py +0 -0
  253. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/graph.py +0 -0
  254. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/hooks/.htmlgraph/.session-warning-state.json +0 -0
  255. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/hooks/.htmlgraph/agents.json +0 -0
  256. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/hooks/.htmlgraph/index.sqlite +0 -0
  257. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/hooks/__init__.py +0 -0
  258. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/hooks/bootstrap.py +0 -0
  259. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/hooks/cigs_pretool_enforcer.py +0 -0
  260. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/hooks/concurrent_sessions.py +0 -0
  261. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/hooks/context.py +0 -0
  262. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/hooks/drift_handler.py +0 -0
  263. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/hooks/event_tracker.py +0 -0
  264. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/hooks/git_commands.py +0 -0
  265. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/hooks/hooks-config.example.json +0 -0
  266. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/hooks/installer.py +0 -0
  267. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/hooks/orchestrator.py +0 -0
  268. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/hooks/orchestrator_reflector.py +0 -0
  269. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/hooks/post-checkout.sh +0 -0
  270. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/hooks/post-commit.sh +0 -0
  271. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/hooks/post-merge.sh +0 -0
  272. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/hooks/post_tool_use_failure.py +0 -0
  273. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/hooks/post_tool_use_handler.py +0 -0
  274. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/hooks/posttooluse.py +0 -0
  275. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/hooks/pre-commit.sh +0 -0
  276. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/hooks/pre-push.sh +0 -0
  277. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/hooks/pretooluse.py +0 -0
  278. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/hooks/prompt_analyzer.py +0 -0
  279. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/hooks/session_handler.py +0 -0
  280. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/hooks/session_summary.py +0 -0
  281. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/hooks/state_manager.py +0 -0
  282. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/hooks/subagent_detection.py +0 -0
  283. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/hooks/subagent_stop.py +0 -0
  284. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/hooks/task_enforcer.py +0 -0
  285. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/hooks/task_validator.py +0 -0
  286. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/hooks/validator.py +0 -0
  287. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/ids.py +0 -0
  288. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/index.d.ts +0 -0
  289. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/learning.py +0 -0
  290. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/mcp_server.py +0 -0
  291. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/models.py +0 -0
  292. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/operations/README.md +0 -0
  293. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/operations/__init__.py +0 -0
  294. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/operations/analytics.py +0 -0
  295. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/operations/bootstrap.py +0 -0
  296. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/operations/events.py +0 -0
  297. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/operations/fastapi_server.py +0 -0
  298. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/operations/hooks.py +0 -0
  299. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/operations/initialization.py.backup +0 -0
  300. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/operations/server.py +0 -0
  301. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/orchestration/__init__.py +0 -0
  302. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/orchestration/claude_launcher.py +0 -0
  303. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/orchestration/command_builder.py +0 -0
  304. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/orchestration/headless_spawner.py +0 -0
  305. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/orchestration/live_events.py +0 -0
  306. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/orchestration/model_selection.py +0 -0
  307. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/orchestration/plugin_manager.py +0 -0
  308. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/orchestration/prompts.py +0 -0
  309. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/orchestration/spawner_event_tracker.py +0 -0
  310. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/orchestration/spawners/__init__.py +0 -0
  311. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/orchestration/spawners/base.py +0 -0
  312. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/orchestration/spawners/claude.py +0 -0
  313. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/orchestration/spawners/codex.py +0 -0
  314. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/orchestration/spawners/copilot.py +0 -0
  315. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/orchestration/spawners/gemini.py +0 -0
  316. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/orchestration/subprocess_runner.py +0 -0
  317. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/orchestration/task_coordination.py +0 -0
  318. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/orchestration.md +0 -0
  319. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/orchestrator-system-prompt-optimized.txt +0 -0
  320. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/orchestrator.py +0 -0
  321. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/orchestrator_config.py +0 -0
  322. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/orchestrator_mode.py +0 -0
  323. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/orchestrator_validator.py +0 -0
  324. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/parallel.py +0 -0
  325. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/parser.py +0 -0
  326. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/path_query.py +0 -0
  327. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/pattern_matcher.py +0 -0
  328. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/planning.py +0 -0
  329. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/pydantic_models.py +0 -0
  330. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/quality_gates.py +0 -0
  331. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/query_builder.py +0 -0
  332. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/query_composer.py +0 -0
  333. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/reactive_integration.py +0 -0
  334. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/reflection.py +0 -0
  335. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/refs.py +0 -0
  336. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/repo_hash.py +0 -0
  337. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/repositories/__init__.py +0 -0
  338. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/repositories/analytics_repository.py +0 -0
  339. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/repositories/analytics_repository_standard.py +0 -0
  340. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/repositories/feature_repository.py +0 -0
  341. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/repositories/feature_repository_htmlfile.py +0 -0
  342. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/repositories/feature_repository_memory.py +0 -0
  343. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/repositories/feature_repository_sqlite.py +0 -0
  344. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/repositories/filter_service.py +0 -0
  345. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/repositories/filter_service_standard.py +0 -0
  346. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/repositories/shared_cache.py +0 -0
  347. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/repositories/shared_cache_memory.py +0 -0
  348. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/repositories/track_repository.py +0 -0
  349. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/repositories/track_repository_htmlfile.py +0 -0
  350. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/repositories/track_repository_memory.py +0 -0
  351. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/repositories/track_repository_sqlite.py +0 -0
  352. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/routing.py +0 -0
  353. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/scripts/__init__.py +0 -0
  354. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/scripts/deploy.py +0 -0
  355. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/sdk/__init__.pyi +0 -0
  356. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/sdk/analytics/__init__.py +0 -0
  357. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/sdk/analytics/engine.py +0 -0
  358. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/sdk/analytics/helpers.py +0 -0
  359. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/sdk/analytics/registry.py +0 -0
  360. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/sdk/base.py +0 -0
  361. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/sdk/constants.py +0 -0
  362. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/sdk/core.pyi +0 -0
  363. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/sdk/discovery.py +0 -0
  364. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/sdk/help/__init__.py +0 -0
  365. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/sdk/help/mixin.py +0 -0
  366. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/sdk/mixins/__init__.py +0 -0
  367. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/sdk/mixins/attribution.py +0 -0
  368. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/sdk/mixins/mixin.py +0 -0
  369. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/sdk/operations/__init__.py +0 -0
  370. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/sdk/operations/mixin.py +0 -0
  371. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/sdk/orchestration/__init__.py +0 -0
  372. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/sdk/orchestration/coordinator.py +0 -0
  373. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/sdk/orchestration/spawner.py +0 -0
  374. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/sdk/planning/__init__.py +0 -0
  375. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/sdk/planning/bottlenecks.py +0 -0
  376. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/sdk/planning/mixin.py +0 -0
  377. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/sdk/planning/parallel.py +0 -0
  378. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/sdk/planning/queue.py +0 -0
  379. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/sdk/planning/recommendations.py +0 -0
  380. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/sdk/planning/smart_planning.py +0 -0
  381. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/sdk/session/__init__.py +0 -0
  382. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/sdk/session/continuity.py +0 -0
  383. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/sdk/session/handoff.py +0 -0
  384. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/sdk/session/info.py +0 -0
  385. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/sdk/session/manager.py +0 -0
  386. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/sdk/strategic/__init__.py +0 -0
  387. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/sdk/strategic/mixin.py +0 -0
  388. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/server.py +0 -0
  389. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/services/__init__.py +0 -0
  390. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/services/claiming.py +0 -0
  391. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/session_context.py +0 -0
  392. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/session_hooks.py +0 -0
  393. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/session_manager.py +0 -0
  394. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/session_registry.py +0 -0
  395. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/session_state.py +0 -0
  396. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/session_warning.py +0 -0
  397. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/sessions/__init__.py +0 -0
  398. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/sessions/handoff.py +0 -0
  399. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/setup.py +0 -0
  400. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/spike_index.py +0 -0
  401. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/styles.css +0 -0
  402. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/sync/__init__.py +0 -0
  403. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/sync/git_sync.py +0 -0
  404. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/sync_docs.py +0 -0
  405. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/system_prompts.py +0 -0
  406. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/templates/AGENTS.md.template +0 -0
  407. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/templates/CLAUDE.md.template +0 -0
  408. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/templates/GEMINI.md.template +0 -0
  409. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/templates/orchestration-view.html +0 -0
  410. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/track_builder.py +0 -0
  411. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/track_manager.py +0 -0
  412. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/transcript.py +0 -0
  413. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/transcript_analytics.py +0 -0
  414. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/types.py +0 -0
  415. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/validation.py +0 -0
  416. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/watch.py +0 -0
  417. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/src/python/htmlgraph/work_type_utils.py +0 -0
  418. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/__init__.py +0 -0
  419. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/benchmarks/README.md +0 -0
  420. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/benchmarks/__init__.py +0 -0
  421. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/benchmarks/bench_graph.py +0 -0
  422. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/benchmarks/conftest.py +0 -0
  423. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/benchmarks/test_websocket_performance.py +0 -0
  424. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/cli/test_bootstrap_command.py +0 -0
  425. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/hooks/__init__.py +0 -0
  426. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/hooks/test_bootstrap.py +0 -0
  427. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/hooks/test_concurrent_sessions.py +0 -0
  428. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/hooks/test_context.py +0 -0
  429. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/hooks/test_event_tracker.py +0 -0
  430. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/hooks/test_git_commands.py +0 -0
  431. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/hooks/test_hybrid_event_capture.py +0 -0
  432. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/hooks/test_prompt_analyzer.py +0 -0
  433. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/hooks/test_session_handler.py +0 -0
  434. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/hooks/test_state_manager.py +0 -0
  435. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/hooks/test_system_prompt_persistence.py +0 -0
  436. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/hooks/test_system_prompt_persistence_integration.py +0 -0
  437. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/integration/conftest.py +0 -0
  438. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/integration/multi_agent/README.md +0 -0
  439. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/integration/multi_agent/__init__.py +0 -0
  440. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/integration/multi_agent/test_agent_quirks.py +0 -0
  441. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/integration/multi_agent/test_git_continuity_spine.py +0 -0
  442. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/integration/test_broadcast.py +0 -0
  443. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/integration/test_cigs_hook_flow.py +0 -0
  444. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/integration/test_cigs_integration.py +0 -0
  445. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/integration/test_cigs_learning.py +0 -0
  446. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/integration/test_codex_spawner.py +0 -0
  447. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/integration/test_complexity_assessment.py +0 -0
  448. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/integration/test_copilot_spawner_tracking.py +0 -0
  449. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/integration/test_cost_alerts_websocket.py +0 -0
  450. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/integration/test_dashboard_spawner_display.py +0 -0
  451. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/integration/test_delegation_events.py +0 -0
  452. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/integration/test_deployment_workflow.py +0 -0
  453. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/integration/test_discoverability.py +0 -0
  454. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/integration/test_edge_index_bug.py +0 -0
  455. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/integration/test_features.py +0 -0
  456. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/integration/test_gemini_spawner_diagnosis.py +0 -0
  457. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/integration/test_git_sync.py +0 -0
  458. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/integration/test_handoff_routing.py +0 -0
  459. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/integration/test_multi_agent_coordination.py +0 -0
  460. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/integration/test_new_features.py +0 -0
  461. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/integration/test_offline.py +0 -0
  462. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/integration/test_orchestration_tab.py +0 -0
  463. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/integration/test_orchestration_with_playwright.py +0 -0
  464. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/integration/test_orchestrator_pattern.py +0 -0
  465. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/integration/test_orchestrator_spawner_delegation.py +0 -0
  466. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/integration/test_phase4_delegation_events.py +0 -0
  467. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/integration/test_post_compact_delegation.py +0 -0
  468. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/integration/test_presence.py +0 -0
  469. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/integration/test_presence_widget.py +0 -0
  470. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/integration/test_reactive_queries.py +0 -0
  471. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/integration/test_real_workitem_integration.py +0 -0
  472. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/integration/test_redesigned_dashboard.py +0 -0
  473. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/integration/test_spawner_integration.py +0 -0
  474. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/integration/test_spawner_live_events.py +0 -0
  475. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/integration/test_spawner_observability_e2e.py +0 -0
  476. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/integration/test_spawner_routing_live.py +0 -0
  477. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/integration/test_spawner_tool_tracking.py +0 -0
  478. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/integration/test_task_delegation.py +0 -0
  479. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/integration/test_user_query_events.py +0 -0
  480. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/integration/test_websocket_integration.py +0 -0
  481. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/integration/test_websocket_realtime.py +0 -0
  482. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/integration/test_websocket_streaming.py +0 -0
  483. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/integration/verify_phase1_userquery.py +0 -0
  484. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/js/README.md +0 -0
  485. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/js/test_htmlgraph.html +0 -0
  486. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/manual/test-hook-input.py +0 -0
  487. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/operations/__init__.py +0 -0
  488. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/operations/test_hooks.py +0 -0
  489. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/operations/test_server.py +0 -0
  490. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/__init__.py +0 -0
  491. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/conftest.py +0 -0
  492. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_activity_feed_ui.py +0 -0
  493. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_agent_attribution.py +0 -0
  494. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_agent_detection.py +0 -0
  495. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_analytics.py +0 -0
  496. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_archive_manager.py +0 -0
  497. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_archive_search.py +0 -0
  498. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_atomic_ops.py +0 -0
  499. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_auto_spike.py +0 -0
  500. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_browse.py +0 -0
  501. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_cigs_pretool_enforcer.py +0 -0
  502. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_claiming.py +0 -0
  503. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_cli_commands.py +0 -0
  504. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_cli_pydantic_models.py +0 -0
  505. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_cli_rich_output.py +0 -0
  506. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_collection_filter.py +0 -0
  507. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_cost_analyzer.py +0 -0
  508. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_cost_monitor.py +0 -0
  509. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_costs_command.py +0 -0
  510. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_cross_agent_attribution.py +0 -0
  511. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_cross_session_analytics.py +0 -0
  512. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_dashboard_attribution.py +0 -0
  513. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_dashboard_ui.py +0 -0
  514. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_decorators.py +0 -0
  515. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_delegation_fk_fix.py +0 -0
  516. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_delete.py +0 -0
  517. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_deploy.py +0 -0
  518. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_drift_parent_activity.py +0 -0
  519. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_drift_queue_cleanup.py +0 -0
  520. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_edge_index.py +0 -0
  521. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_error_handling.py +0 -0
  522. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_event_index.py +0 -0
  523. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_event_query.py +0 -0
  524. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_event_tracing.py +0 -0
  525. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_feature_track_linkage_phase1.py +0 -0
  526. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_find_api.py +0 -0
  527. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_fixtures.py +0 -0
  528. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_git_events.py +0 -0
  529. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_graph_traversal.py +0 -0
  530. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_handoff.py +0 -0
  531. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_headless_spawner.py +0 -0
  532. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_headless_spawner_parent_session.py +0 -0
  533. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_ids.py +0 -0
  534. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_install_hooks.py +0 -0
  535. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_lifecycle.py +0 -0
  536. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_mcp_server.py +0 -0
  537. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_mcp_stdio_transport.py +0 -0
  538. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_models.py +0 -0
  539. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_orchestration.py +0 -0
  540. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_orchestrator_circuit_breaker.py +0 -0
  541. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_orchestrator_cli.py +0 -0
  542. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_orchestrator_mode.py +0 -0
  543. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_parent_child_event_linking.py +0 -0
  544. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_parent_child_linking.py +0 -0
  545. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_parent_linking_integration.py +0 -0
  546. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_pattern_learning.py +0 -0
  547. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_pattern_storage.py +0 -0
  548. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_plugin_update_preservation.py +0 -0
  549. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_post_tool_use_failure.py +0 -0
  550. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_post_tool_use_handler.py +0 -0
  551. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_posttooluse_cigs.py +0 -0
  552. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_pre_commit_hooks.py +0 -0
  553. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_pretooluse_event_hierarchy.py +0 -0
  554. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_quality_gates.py +0 -0
  555. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_query_builder.py +0 -0
  556. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_query_cache.py +0 -0
  557. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_query_compilation.py +0 -0
  558. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_reflection.py +0 -0
  559. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_refs.py +0 -0
  560. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_repo_hash.py +0 -0
  561. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_routing.py +0 -0
  562. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_sdk_discoverability.py +0 -0
  563. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_sdk_get_active_work_item.py +0 -0
  564. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_sdk_modularization_phase1.py +0 -0
  565. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_sdk_parent_session.py +0 -0
  566. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_sdk_sqlite_integration.py +0 -0
  567. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_session_cleanup.py +0 -0
  568. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_session_context.py +0 -0
  569. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_session_continuity.py +0 -0
  570. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_session_graph.py +0 -0
  571. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_session_handoff_continuity.py +0 -0
  572. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_session_integration.py +0 -0
  573. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_session_registry.py +0 -0
  574. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_session_start_cigs.py +0 -0
  575. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_session_start_info_validation.py +0 -0
  576. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_session_state_manager.py +0 -0
  577. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_snapshot.py +0 -0
  578. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_snapshot_refs_integration.py +0 -0
  579. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_spawner_agents.py +0 -0
  580. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_spawner_routing.py +0 -0
  581. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_sqlite_schema.py +0 -0
  582. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_stop_cigs.py +0 -0
  583. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_system_overhead_drift.py +0 -0
  584. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_template_system.py +0 -0
  585. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_todo_collection.py +0 -0
  586. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_traces_collection.py +0 -0
  587. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_track_loading.py +0 -0
  588. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_transcript_linking.py +0 -0
  589. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_update_preserves_incoming_edges.py +0 -0
  590. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_user_prompt_submit_cigs.py +0 -0
  591. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_version_migration.py +0 -0
  592. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_violation_tracker.py +0 -0
  593. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_websocket_manager.py +0 -0
  594. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_work_queue.py +0 -0
  595. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/python/test_work_type.py +0 -0
  596. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/test_agent_routing.py +0 -0
  597. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/test_autonomy_recommender.py +0 -0
  598. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/test_bounded_paths.py +0 -0
  599. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/test_cigs_cli.py +0 -0
  600. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/test_cigs_cost_calculator.py +0 -0
  601. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/test_cigs_cost_reporter.py +0 -0
  602. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/test_cigs_imperative_messages.py +0 -0
  603. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/test_cigs_messages_basic.py +0 -0
  604. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/test_cli_output_snapshots.py +0 -0
  605. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/test_cli_sdk_parity.py +0 -0
  606. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/test_deployment_models.py +0 -0
  607. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/test_event_log.py +0 -0
  608. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/test_hybrid_event_capture.py +0 -0
  609. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/test_orchestrator_config.py +0 -0
  610. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/test_orchestrator_validator.py +0 -0
  611. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/test_path_query.py +0 -0
  612. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/test_pattern_detector.py +0 -0
  613. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/test_pattern_matcher.py +0 -0
  614. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/test_query_composer.py +0 -0
  615. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/test_sdk_api_surface.py +0 -0
  616. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/test_sdk_operations.py +0 -0
  617. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/test_transaction_snapshot.py +0 -0
  618. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/test_transcript.py +0 -0
  619. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/unit/__init__.py +0 -0
  620. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/unit/repositories/__init__.py +0 -0
  621. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/unit/repositories/test_analytics_repository_compliance.py +0 -0
  622. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/unit/repositories/test_feature_repository_compliance.py +0 -0
  623. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/unit/repositories/test_filter_service_compliance.py +0 -0
  624. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/unit/repositories/test_htmlfile_feature_repository.py +0 -0
  625. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/unit/repositories/test_memory_feature_repository.py +0 -0
  626. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/unit/repositories/test_shared_cache_compliance.py +0 -0
  627. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/unit/repositories/test_sqlite_feature_repository.py +0 -0
  628. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/unit/repositories/test_track_repositories.py +0 -0
  629. {htmlgraph-0.28.8 → htmlgraph-0.28.9}/tests/unit/repositories/test_track_repository_compliance.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: htmlgraph
3
- Version: 0.28.8
3
+ Version: 0.28.9
4
4
  Summary: HTML is All You Need - Graph database on web standards
5
5
  Project-URL: Homepage, https://github.com/Shakes-tzd/htmlgraph
6
6
  Project-URL: Documentation, https://github.com/Shakes-tzd/htmlgraph#readme
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "htmlgraph",
3
- "version": "0.28.8",
3
+ "version": "0.28.9",
4
4
  "description": "HtmlGraph session tracking and documentation for Gemini CLI. Ensures proper activity attribution, feature awareness, and continuous work tracking.",
5
5
  "author": "Shakes",
6
6
  "license": "MIT",
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "htmlgraph"
3
- version = "0.28.8"
3
+ version = "0.28.9"
4
4
  description = "HTML is All You Need - Graph database on web standards"
5
5
  authors = [{name = "Shakes", email = "shakestzd@gmail.com"}]
6
6
  readme = "README.md"
@@ -89,6 +89,20 @@ from htmlgraph.query_builder import Condition, Operator, QueryBuilder
89
89
  from htmlgraph.reflection import ComputationalReflection, get_reflection_context
90
90
  from htmlgraph.repo_hash import RepoHash
91
91
  from htmlgraph.sdk import SDK
92
+ from htmlgraph.sdk.auto_help import (
93
+ AutoHelpWrapper,
94
+ enable_auto_help,
95
+ get_help_for_exception,
96
+ show_help_on_error,
97
+ )
98
+ from htmlgraph.sdk.delegation_warnings import (
99
+ get_delegation_warning,
100
+ is_in_subagent_context,
101
+ is_orchestrator_mode_active,
102
+ should_show_delegation_warning,
103
+ show_delegation_warning,
104
+ track_tool_execution,
105
+ )
92
106
  from htmlgraph.server import serve
93
107
  from htmlgraph.session_context import (
94
108
  GitHooksInstaller,
@@ -123,7 +137,7 @@ from htmlgraph.types import (
123
137
  )
124
138
  from htmlgraph.work_type_utils import infer_work_type, infer_work_type_from_id
125
139
 
126
- __version__ = "0.28.8"
140
+ __version__ = "0.28.9"
127
141
  __all__ = [
128
142
  # Exceptions
129
143
  "HtmlGraphError",
@@ -244,4 +258,16 @@ __all__ = [
244
258
  "cleanup_orphaned_temp_files",
245
259
  "safe_temp_file",
246
260
  "validate_atomic_write",
261
+ # Auto-help system (Feature 1: Auto-Help on Failure)
262
+ "AutoHelpWrapper",
263
+ "enable_auto_help",
264
+ "get_help_for_exception",
265
+ "show_help_on_error",
266
+ # Delegation warnings (Feature 2: Orchestrator Mode Warnings)
267
+ "get_delegation_warning",
268
+ "is_in_subagent_context",
269
+ "is_orchestrator_mode_active",
270
+ "should_show_delegation_warning",
271
+ "show_delegation_warning",
272
+ "track_tool_execution",
247
273
  ]
@@ -484,9 +484,24 @@ def create_dashboard_index(base_dir: Path) -> str | None:
484
484
  import htmlgraph
485
485
 
486
486
  htmlgraph_dir = Path(htmlgraph.__file__).parent
487
- dashboard_path = htmlgraph_dir / "dashboard.html"
488
487
 
489
- if not dashboard_path.exists():
488
+ # Try multiple possible locations for dashboard.html
489
+ # Try archive first (preferred, has COLOR SYSTEM & THEME), then API templates, then package root
490
+ possible_paths = [
491
+ htmlgraph_dir.parent.parent.parent
492
+ / "_archive"
493
+ / "dashboard.html", # In project archive (preferred)
494
+ htmlgraph_dir / "dashboard.html", # In package root
495
+ htmlgraph_dir / "api" / "templates" / "dashboard.html", # In API templates
496
+ ]
497
+
498
+ dashboard_path = None
499
+ for path in possible_paths:
500
+ if path.exists():
501
+ dashboard_path = path
502
+ break
503
+
504
+ if dashboard_path is None:
490
505
  return None
491
506
 
492
507
  # Copy to root as index.html
@@ -148,6 +148,7 @@ class SDK(
148
148
  agent: str | None = None,
149
149
  parent_session: str | None = None,
150
150
  db_path: str | None = None,
151
+ auto_help: bool = True,
151
152
  ):
152
153
  """
153
154
  Initialize SDK.
@@ -162,6 +163,7 @@ class SDK(
162
163
  Raises ValueError if not provided and cannot be detected
163
164
  parent_session: Parent session ID to log activities to (for nested contexts)
164
165
  db_path: Path to SQLite database file (optional, defaults to ~/.htmlgraph/htmlgraph.db)
166
+ auto_help: Enable automatic help display on operation failures (default: True)
165
167
  """
166
168
  if directory is None:
167
169
  directory = self._discover_htmlgraph()
@@ -283,6 +285,12 @@ class SDK(
283
285
  session_id=None, # Will be set by session manager if available
284
286
  )
285
287
 
288
+ # Enable auto-help on operation failures (Feature 1)
289
+ if auto_help:
290
+ from htmlgraph.sdk.auto_help import enable_auto_help
291
+
292
+ enable_auto_help(self)
293
+
286
294
  @staticmethod
287
295
  def _discover_htmlgraph() -> Path:
288
296
  """
@@ -0,0 +1,183 @@
1
+ """
2
+ Auto-help system for SDK operations.
3
+
4
+ Provides automatic help display when SDK operations fail,
5
+ showing relevant documentation for the failed operation.
6
+ """
7
+
8
+ from __future__ import annotations
9
+
10
+ import logging
11
+ from typing import TYPE_CHECKING, Any
12
+
13
+ if TYPE_CHECKING:
14
+ from htmlgraph.sdk import SDK
15
+
16
+ logger = logging.getLogger(__name__)
17
+
18
+
19
+ def get_help_for_exception(sdk: SDK, exception: Exception, context: str = "") -> str:
20
+ """
21
+ Generate helpful error message with SDK documentation.
22
+
23
+ Args:
24
+ sdk: SDK instance to get help from
25
+ exception: The exception that was raised
26
+ context: Context string (e.g., "features.create", "bugs.where")
27
+
28
+ Returns:
29
+ Formatted help text with error and relevant documentation
30
+ """
31
+ # Extract topic from context (e.g., "features" from "features.create")
32
+ topic = context.split(".")[0] if "." in context else context
33
+
34
+ # Get base error message
35
+ error_msg = str(exception)
36
+
37
+ # Get relevant help
38
+ help_text = ""
39
+ if topic:
40
+ try:
41
+ help_text = sdk.help(topic)
42
+ except Exception:
43
+ # Fallback to general help if topic-specific help fails
44
+ help_text = sdk.help()
45
+
46
+ # Format combined message
47
+ output = f"""
48
+ ❌ SDK Operation Failed: {error_msg}
49
+
50
+ {"=" * 60}
51
+ 📚 RELEVANT DOCUMENTATION
52
+ {"=" * 60}
53
+
54
+ {help_text}
55
+
56
+ 💡 TIP: Use sdk.help('{topic}') for more details on this collection.
57
+ """
58
+ return output
59
+
60
+
61
+ def show_help_on_error(sdk: SDK, exception: Exception, context: str = "") -> None:
62
+ """
63
+ Display help message for exception to stderr.
64
+
65
+ Args:
66
+ sdk: SDK instance
67
+ exception: The exception that occurred
68
+ context: Context string for the operation
69
+ """
70
+ help_msg = get_help_for_exception(sdk, exception, context)
71
+ # Use logger to output to stderr (configured with Rich in __init__.py)
72
+ logger.error(help_msg)
73
+
74
+
75
+ class AutoHelpWrapper:
76
+ """
77
+ Wrapper for collection methods that automatically shows help on errors.
78
+
79
+ This wrapper catches exceptions from collection operations and displays
80
+ relevant SDK documentation to help users understand what went wrong.
81
+ """
82
+
83
+ def __init__(self, sdk: SDK, collection_name: str):
84
+ """
85
+ Initialize wrapper.
86
+
87
+ Args:
88
+ sdk: Parent SDK instance
89
+ collection_name: Name of the collection (e.g., "features", "bugs")
90
+ """
91
+ self._sdk = sdk
92
+ self._collection_name = collection_name
93
+
94
+ def wrap_method(self, method: Any, method_name: str) -> Any:
95
+ """
96
+ Wrap a method to show help on exceptions.
97
+
98
+ Args:
99
+ method: The method to wrap
100
+ method_name: Name of the method
101
+
102
+ Returns:
103
+ Wrapped method
104
+ """
105
+
106
+ def wrapped(*args: Any, **kwargs: Any) -> Any:
107
+ try:
108
+ return method(*args, **kwargs)
109
+ except Exception as e:
110
+ # Show help automatically
111
+ context = f"{self._collection_name}.{method_name}"
112
+ show_help_on_error(self._sdk, e, context)
113
+ # Re-raise the original exception
114
+ raise
115
+
116
+ return wrapped
117
+
118
+
119
+ def enable_auto_help(sdk: SDK) -> None:
120
+ """
121
+ Enable auto-help for all SDK collections.
122
+
123
+ This wraps common collection methods to automatically show help on errors.
124
+
125
+ Args:
126
+ sdk: SDK instance to enable auto-help for
127
+ """
128
+ # Collections to wrap
129
+ collections = [
130
+ "features",
131
+ "bugs",
132
+ "spikes",
133
+ "chores",
134
+ "epics",
135
+ "phases",
136
+ "tracks",
137
+ "sessions",
138
+ "patterns",
139
+ "insights",
140
+ "metrics",
141
+ "todos",
142
+ ]
143
+
144
+ # Methods to wrap (common operations that might fail)
145
+ methods_to_wrap = [
146
+ "create",
147
+ "get",
148
+ "edit",
149
+ "where",
150
+ "claim",
151
+ "release",
152
+ "mark_done",
153
+ "assign",
154
+ "batch_update",
155
+ "batch_delete",
156
+ ]
157
+
158
+ for collection_name in collections:
159
+ if not hasattr(sdk, collection_name):
160
+ continue
161
+
162
+ collection = getattr(sdk, collection_name)
163
+ wrapper = AutoHelpWrapper(sdk, collection_name)
164
+
165
+ for method_name in methods_to_wrap:
166
+ if not hasattr(collection, method_name):
167
+ continue
168
+
169
+ original_method = getattr(collection, method_name)
170
+ wrapped_method = wrapper.wrap_method(original_method, method_name)
171
+
172
+ # Store original method for testing
173
+ setattr(collection, f"_{method_name}_original", original_method)
174
+ # Replace with wrapped version
175
+ setattr(collection, method_name, wrapped_method)
176
+
177
+
178
+ __all__ = [
179
+ "get_help_for_exception",
180
+ "show_help_on_error",
181
+ "AutoHelpWrapper",
182
+ "enable_auto_help",
183
+ ]
@@ -0,0 +1,232 @@
1
+ """
2
+ Delegation warnings for orchestrator mode.
3
+
4
+ Provides warnings when orchestrators execute tools directly instead of delegating,
5
+ with automatic suppression when running in subagent contexts.
6
+ """
7
+
8
+ from __future__ import annotations
9
+
10
+ import logging
11
+ import os
12
+ from typing import Any
13
+
14
+ logger = logging.getLogger(__name__)
15
+
16
+
17
+ def is_orchestrator_mode_active() -> bool:
18
+ """
19
+ Check if orchestrator mode is active.
20
+
21
+ Returns:
22
+ True if orchestrator mode is enabled
23
+ """
24
+ # Check environment variable override
25
+ if os.environ.get("HTMLGRAPH_ORCHESTRATOR_DISABLED") == "1":
26
+ return False
27
+
28
+ # Check orchestrator mode file
29
+ try:
30
+ from pathlib import Path
31
+
32
+ from htmlgraph.orchestrator_mode import OrchestratorModeManager
33
+
34
+ # Find .htmlgraph directory
35
+ cwd = Path.cwd()
36
+ graph_dir = cwd / ".htmlgraph"
37
+
38
+ if not graph_dir.exists():
39
+ for parent in [cwd.parent, cwd.parent.parent, cwd.parent.parent.parent]:
40
+ candidate = parent / ".htmlgraph"
41
+ if candidate.exists():
42
+ graph_dir = candidate
43
+ break
44
+
45
+ if not graph_dir.exists():
46
+ return False
47
+
48
+ manager = OrchestratorModeManager(graph_dir)
49
+ return manager.is_enabled()
50
+ except Exception:
51
+ return False
52
+
53
+
54
+ def is_in_subagent_context() -> bool:
55
+ """
56
+ Check if running in a subagent context.
57
+
58
+ Subagents are spawned via Task() and should be allowed to execute
59
+ tools directly without delegation warnings.
60
+
61
+ Returns:
62
+ True if in subagent context
63
+ """
64
+ # Check for subagent environment variable
65
+ subagent_type = os.environ.get("HTMLGRAPH_SUBAGENT_TYPE")
66
+ if subagent_type:
67
+ return True
68
+
69
+ # Check for general subagent marker
70
+ if os.environ.get("HTMLGRAPH_IS_SUBAGENT") == "1":
71
+ return True
72
+
73
+ # Check if spawned by Task tool (Claude Code sets this)
74
+ if os.environ.get("CLAUDE_SPAWNED_BY_TASK") == "1":
75
+ return True
76
+
77
+ return False
78
+
79
+
80
+ def should_show_delegation_warning() -> bool:
81
+ """
82
+ Determine if delegation warnings should be shown.
83
+
84
+ Warnings are shown when:
85
+ - Orchestrator mode is active
86
+ - NOT running in subagent context
87
+ - Warnings are not explicitly disabled
88
+
89
+ Returns:
90
+ True if warnings should be shown
91
+ """
92
+ # Check explicit disable
93
+ if os.environ.get("HTMLGRAPH_DISABLE_DELEGATION_WARNINGS") == "1":
94
+ return False
95
+
96
+ # Don't warn in subagent contexts
97
+ if is_in_subagent_context():
98
+ return False
99
+
100
+ # Only warn if orchestrator mode is active
101
+ return is_orchestrator_mode_active()
102
+
103
+
104
+ def get_delegation_warning(tool_name: str, context: str = "") -> str:
105
+ """
106
+ Generate delegation warning message.
107
+
108
+ Args:
109
+ tool_name: Name of the tool being executed directly
110
+ context: Additional context about the operation
111
+
112
+ Returns:
113
+ Formatted warning message
114
+ """
115
+ # Map tools to suggested subagent types
116
+ tool_to_agent = {
117
+ "Read": "Explore",
118
+ "Grep": "Explore",
119
+ "Glob": "Explore",
120
+ "Edit": "general-purpose",
121
+ "Write": "general-purpose",
122
+ "NotebookEdit": "general-purpose",
123
+ "Bash": "general-purpose",
124
+ }
125
+
126
+ suggested_agent = tool_to_agent.get(tool_name, "general-purpose")
127
+
128
+ warning = f"""
129
+ ⚠️ ORCHESTRATOR MODE: Direct tool execution detected
130
+
131
+ Tool: {tool_name}
132
+ Suggestion: Delegate to subagent using Task()
133
+
134
+ Recommended subagent type: {suggested_agent}
135
+
136
+ Example delegation:
137
+ Task(
138
+ prompt='''<describe task>
139
+
140
+ 🔴 CRITICAL - Report Results:
141
+ from htmlgraph import SDK
142
+ sdk = SDK(agent='subagent')
143
+ sdk.spikes.create('Task Results') \\
144
+ .set_findings('...') \\
145
+ .save()
146
+ ''',
147
+ subagent_type='{suggested_agent}'
148
+ )
149
+
150
+ Why delegate?
151
+ - Reduces orchestrator context usage
152
+ - Enables parallel execution
153
+ - Improves cost efficiency
154
+ - Follows delegation pattern
155
+
156
+ To disable warnings:
157
+ - Set HTMLGRAPH_DISABLE_DELEGATION_WARNINGS=1
158
+ - Or: uv run htmlgraph orchestrator disable
159
+ """
160
+
161
+ if context:
162
+ warning += f"\nContext: {context}\n"
163
+
164
+ return warning
165
+
166
+
167
+ def show_delegation_warning(
168
+ tool_name: str, params: dict[str, Any] | None = None
169
+ ) -> None:
170
+ """
171
+ Display delegation warning if appropriate.
172
+
173
+ Args:
174
+ tool_name: Name of the tool being executed
175
+ params: Tool parameters (optional, for context)
176
+ """
177
+ if not should_show_delegation_warning():
178
+ return
179
+
180
+ # Extract context from params
181
+ context = ""
182
+ if params:
183
+ if "file_path" in params:
184
+ context = f"File: {params['file_path']}"
185
+ elif "pattern" in params:
186
+ context = f"Pattern: {params['pattern']}"
187
+ elif "command" in params:
188
+ cmd = params["command"]
189
+ if len(cmd) > 80:
190
+ cmd = cmd[:77] + "..."
191
+ context = f"Command: {cmd}"
192
+
193
+ warning = get_delegation_warning(tool_name, context)
194
+ # Use logger to output to stderr
195
+ logger.warning(warning)
196
+
197
+
198
+ def track_tool_execution(tool_name: str, params: dict[str, Any] | None = None) -> None:
199
+ """
200
+ Track tool execution and show delegation warning if needed.
201
+
202
+ This is the main entry point for tracking tool usage in orchestrator mode.
203
+
204
+ Args:
205
+ tool_name: Name of the tool being executed
206
+ params: Tool parameters (optional)
207
+ """
208
+ # Only track direct tool execution, not SDK operations
209
+ tracked_tools = [
210
+ "Read",
211
+ "Write",
212
+ "Edit",
213
+ "NotebookEdit",
214
+ "Grep",
215
+ "Glob",
216
+ "Bash",
217
+ ]
218
+
219
+ if tool_name not in tracked_tools:
220
+ return
221
+
222
+ show_delegation_warning(tool_name, params)
223
+
224
+
225
+ __all__ = [
226
+ "is_orchestrator_mode_active",
227
+ "is_in_subagent_context",
228
+ "should_show_delegation_warning",
229
+ "get_delegation_warning",
230
+ "show_delegation_warning",
231
+ "track_tool_execution",
232
+ ]
File without changes
File without changes