htmlgraph 0.24.2__tar.gz → 0.26.1__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.
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/PKG-INFO +91 -64
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/README.md +85 -63
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/packages/gemini-extension/gemini-extension.json +1 -1
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/pyproject.toml +17 -1
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/__init__.py +20 -1
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/agent_detection.py +26 -10
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/analytics/cross_session.py +4 -3
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/analytics/work_type.py +52 -16
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/analytics_index.py +51 -19
- htmlgraph-0.26.1/src/python/htmlgraph/api/__init__.py +3 -0
- htmlgraph-0.26.1/src/python/htmlgraph/api/main.py +2263 -0
- htmlgraph-0.26.1/src/python/htmlgraph/api/static/htmx.min.js +1 -0
- htmlgraph-0.26.1/src/python/htmlgraph/api/static/style-redesign.css +1344 -0
- htmlgraph-0.26.1/src/python/htmlgraph/api/static/style.css +1079 -0
- htmlgraph-0.26.1/src/python/htmlgraph/api/templates/dashboard-redesign.html +812 -0
- htmlgraph-0.26.1/src/python/htmlgraph/api/templates/dashboard.html +794 -0
- htmlgraph-0.26.1/src/python/htmlgraph/api/templates/partials/activity-feed-hierarchical.html +326 -0
- htmlgraph-0.26.1/src/python/htmlgraph/api/templates/partials/activity-feed.html +1020 -0
- htmlgraph-0.26.1/src/python/htmlgraph/api/templates/partials/agents-redesign.html +317 -0
- htmlgraph-0.26.1/src/python/htmlgraph/api/templates/partials/agents.html +317 -0
- htmlgraph-0.26.1/src/python/htmlgraph/api/templates/partials/event-traces.html +373 -0
- htmlgraph-0.26.1/src/python/htmlgraph/api/templates/partials/features-kanban-redesign.html +509 -0
- htmlgraph-0.26.1/src/python/htmlgraph/api/templates/partials/features.html +509 -0
- htmlgraph-0.26.1/src/python/htmlgraph/api/templates/partials/metrics-redesign.html +346 -0
- htmlgraph-0.26.1/src/python/htmlgraph/api/templates/partials/metrics.html +346 -0
- htmlgraph-0.26.1/src/python/htmlgraph/api/templates/partials/orchestration-redesign.html +443 -0
- htmlgraph-0.26.1/src/python/htmlgraph/api/templates/partials/orchestration.html +163 -0
- htmlgraph-0.26.1/src/python/htmlgraph/api/templates/partials/spawners.html +375 -0
- htmlgraph-0.26.1/src/python/htmlgraph/atomic_ops.py +560 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/builders/base.py +55 -1
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/builders/bug.py +17 -2
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/builders/chore.py +17 -2
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/builders/epic.py +17 -2
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/builders/feature.py +25 -2
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/builders/phase.py +17 -2
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/builders/spike.py +27 -2
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/builders/track.py +14 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/cigs/__init__.py +4 -0
- htmlgraph-0.26.1/src/python/htmlgraph/cigs/reporter.py +818 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/cli.py +1427 -401
- htmlgraph-0.26.1/src/python/htmlgraph/cli_commands/__init__.py +1 -0
- htmlgraph-0.26.1/src/python/htmlgraph/cli_commands/feature.py +195 -0
- htmlgraph-0.26.1/src/python/htmlgraph/cli_framework.py +115 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/collections/__init__.py +2 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/collections/base.py +21 -0
- htmlgraph-0.26.1/src/python/htmlgraph/collections/session.py +189 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/collections/spike.py +7 -1
- htmlgraph-0.26.1/src/python/htmlgraph/collections/task_delegation.py +236 -0
- htmlgraph-0.26.1/src/python/htmlgraph/collections/traces.py +482 -0
- htmlgraph-0.26.1/src/python/htmlgraph/config.py +113 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/converter.py +41 -0
- htmlgraph-0.26.1/src/python/htmlgraph/cost_analysis/__init__.py +5 -0
- htmlgraph-0.26.1/src/python/htmlgraph/cost_analysis/analyzer.py +438 -0
- htmlgraph-0.26.1/src/python/htmlgraph/dashboard.html +7458 -0
- htmlgraph-0.24.2/src/python/htmlgraph/dashboard.html → htmlgraph-0.26.1/src/python/htmlgraph/dashboard.html.backup +2246 -248
- htmlgraph-0.26.1/src/python/htmlgraph/dashboard.html.bak +7181 -0
- htmlgraph-0.26.1/src/python/htmlgraph/dashboard.html.bak2 +7231 -0
- htmlgraph-0.26.1/src/python/htmlgraph/dashboard.html.bak3 +7232 -0
- htmlgraph-0.26.1/src/python/htmlgraph/db/__init__.py +38 -0
- htmlgraph-0.26.1/src/python/htmlgraph/db/queries.py +790 -0
- htmlgraph-0.26.1/src/python/htmlgraph/db/schema.py +1584 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/deploy.py +26 -27
- htmlgraph-0.26.1/src/python/htmlgraph/docs/API_REFERENCE.md +841 -0
- htmlgraph-0.26.1/src/python/htmlgraph/docs/HTTP_API.md +750 -0
- htmlgraph-0.26.1/src/python/htmlgraph/docs/INTEGRATION_GUIDE.md +752 -0
- htmlgraph-0.26.1/src/python/htmlgraph/docs/ORCHESTRATION_PATTERNS.md +710 -0
- htmlgraph-0.26.1/src/python/htmlgraph/docs/README.md +533 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/docs/version_check.py +3 -1
- htmlgraph-0.26.1/src/python/htmlgraph/error_handler.py +544 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/event_log.py +2 -0
- htmlgraph-0.26.1/src/python/htmlgraph/hooks/.htmlgraph/.session-warning-state.json +6 -0
- htmlgraph-0.26.1/src/python/htmlgraph/hooks/.htmlgraph/agents.json +72 -0
- htmlgraph-0.26.1/src/python/htmlgraph/hooks/.htmlgraph/index.sqlite +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/hooks/__init__.py +8 -0
- htmlgraph-0.26.1/src/python/htmlgraph/hooks/bootstrap.py +169 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/hooks/cigs_pretool_enforcer.py +2 -2
- htmlgraph-0.26.1/src/python/htmlgraph/hooks/concurrent_sessions.py +208 -0
- htmlgraph-0.26.1/src/python/htmlgraph/hooks/context.py +318 -0
- htmlgraph-0.26.1/src/python/htmlgraph/hooks/drift_handler.py +525 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/hooks/event_tracker.py +496 -79
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/hooks/orchestrator.py +6 -4
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/hooks/orchestrator_reflector.py +4 -4
- htmlgraph-0.26.1/src/python/htmlgraph/hooks/post_tool_use_handler.py +257 -0
- htmlgraph-0.26.1/src/python/htmlgraph/hooks/pretooluse.py +766 -0
- htmlgraph-0.26.1/src/python/htmlgraph/hooks/prompt_analyzer.py +637 -0
- htmlgraph-0.26.1/src/python/htmlgraph/hooks/session_handler.py +637 -0
- htmlgraph-0.26.1/src/python/htmlgraph/hooks/state_manager.py +504 -0
- htmlgraph-0.26.1/src/python/htmlgraph/hooks/subagent_stop.py +309 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/hooks/task_enforcer.py +39 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/hooks/validator.py +15 -11
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/models.py +111 -15
- htmlgraph-0.26.1/src/python/htmlgraph/operations/fastapi_server.py +230 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/orchestration/headless_spawner.py +344 -29
- htmlgraph-0.26.1/src/python/htmlgraph/orchestration/live_events.py +377 -0
- htmlgraph-0.26.1/src/python/htmlgraph/pydantic_models.py +476 -0
- htmlgraph-0.26.1/src/python/htmlgraph/quality_gates.py +350 -0
- htmlgraph-0.26.1/src/python/htmlgraph/repo_hash.py +511 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/sdk.py +348 -10
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/server.py +194 -0
- htmlgraph-0.26.1/src/python/htmlgraph/session_hooks.py +300 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/session_manager.py +131 -1
- htmlgraph-0.26.1/src/python/htmlgraph/session_registry.py +587 -0
- htmlgraph-0.26.1/src/python/htmlgraph/session_state.py +436 -0
- htmlgraph-0.26.1/src/python/htmlgraph/system_prompts.py +449 -0
- htmlgraph-0.26.1/src/python/htmlgraph/templates/orchestration-view.html +350 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/track_builder.py +19 -0
- htmlgraph-0.26.1/src/python/htmlgraph/validation.py +115 -0
- htmlgraph-0.26.1/tests/hooks/__init__.py +1 -0
- htmlgraph-0.26.1/tests/hooks/test_bootstrap.py +586 -0
- htmlgraph-0.26.1/tests/hooks/test_concurrent_sessions.py +758 -0
- htmlgraph-0.26.1/tests/hooks/test_context.py +490 -0
- htmlgraph-0.26.1/tests/hooks/test_event_tracker.py +1343 -0
- htmlgraph-0.26.1/tests/hooks/test_hybrid_event_capture.py +481 -0
- htmlgraph-0.26.1/tests/hooks/test_prompt_analyzer.py +1257 -0
- htmlgraph-0.26.1/tests/hooks/test_session_handler.py +1097 -0
- htmlgraph-0.26.1/tests/hooks/test_state_manager.py +1126 -0
- htmlgraph-0.26.1/tests/hooks/test_system_prompt_persistence.py +913 -0
- htmlgraph-0.26.1/tests/hooks/test_system_prompt_persistence_integration.py +758 -0
- htmlgraph-0.26.1/tests/integration/test_dashboard_spawner_display.py +505 -0
- htmlgraph-0.26.1/tests/integration/test_orchestrator_spawner_delegation.py +645 -0
- htmlgraph-0.26.1/tests/integration/test_post_compact_delegation.py +644 -0
- htmlgraph-0.26.1/tests/integration/test_spawner_integration.py +538 -0
- htmlgraph-0.26.1/tests/integration/test_spawner_observability_e2e.py +593 -0
- htmlgraph-0.26.1/tests/integration/test_spawner_tool_tracking.py +434 -0
- htmlgraph-0.26.1/tests/python/conftest.py +60 -0
- htmlgraph-0.26.1/tests/python/test_activity_feed_ui.py +356 -0
- htmlgraph-0.26.1/tests/python/test_agent_attribution.py +244 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/python/test_agent_detection.py +18 -7
- htmlgraph-0.26.1/tests/python/test_atomic_ops.py +599 -0
- htmlgraph-0.26.1/tests/python/test_cli_pydantic_models.py +361 -0
- htmlgraph-0.26.1/tests/python/test_cli_rich_output.py +463 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/python/test_collection_filter.py +47 -26
- htmlgraph-0.26.1/tests/python/test_cost_analyzer.py +761 -0
- htmlgraph-0.26.1/tests/python/test_dashboard_attribution.py +597 -0
- htmlgraph-0.26.1/tests/python/test_delegation_fk_fix.py +256 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/python/test_delete.py +19 -5
- htmlgraph-0.26.1/tests/python/test_error_handling.py +215 -0
- htmlgraph-0.26.1/tests/python/test_event_tracing.py +673 -0
- htmlgraph-0.26.1/tests/python/test_feature_track_linkage_phase1.py +376 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/python/test_handoff.py +4 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/python/test_lifecycle.py +2 -1
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/python/test_orchestration.py +8 -4
- htmlgraph-0.26.1/tests/python/test_parent_child_event_linking.py +367 -0
- htmlgraph-0.26.1/tests/python/test_parent_child_linking.py +287 -0
- htmlgraph-0.26.1/tests/python/test_parent_linking_integration.py +322 -0
- htmlgraph-0.26.1/tests/python/test_post_tool_use_handler.py +273 -0
- htmlgraph-0.26.1/tests/python/test_pre_commit_hooks.py +333 -0
- htmlgraph-0.26.1/tests/python/test_quality_gates.py +432 -0
- htmlgraph-0.26.1/tests/python/test_repo_hash.py +647 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/python/test_sdk_get_active_work_item.py +10 -2
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/python/test_sdk_parent_session.py +9 -5
- htmlgraph-0.26.1/tests/python/test_sdk_sqlite_integration.py +347 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/python/test_session_continuity.py +30 -11
- htmlgraph-0.26.1/tests/python/test_session_integration.py +667 -0
- htmlgraph-0.26.1/tests/python/test_session_registry.py +662 -0
- htmlgraph-0.26.1/tests/python/test_session_state_manager.py +337 -0
- htmlgraph-0.26.1/tests/python/test_spawner_agents.py +558 -0
- htmlgraph-0.26.1/tests/python/test_spawner_routing.py +482 -0
- htmlgraph-0.26.1/tests/python/test_sqlite_schema.py +596 -0
- htmlgraph-0.26.1/tests/python/test_traces_collection.py +499 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/python/test_transcript_linking.py +7 -4
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/python/test_work_queue.py +12 -3
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/test_cigs_cli.py +2 -2
- htmlgraph-0.26.1/tests/test_cigs_cost_reporter.py +607 -0
- htmlgraph-0.26.1/tests/test_hybrid_event_capture.py +710 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/test_sdk_api_surface.py +9 -2
- htmlgraph-0.24.2/src/python/htmlgraph/hooks/pretooluse.py +0 -299
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/.gitignore +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/examples/agent-coordination/README.md +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/examples/agent-coordination/demo.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/examples/create_auth_track_demo.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/examples/create_htmlgraph_dev_track.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/examples/documentation-site/README.md +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/examples/documentation-site/agents.json +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/examples/documentation-site/demo.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/examples/documentation-site/features/doc-api-graph.html +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/examples/documentation-site/features/doc-api-overview.html +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/examples/documentation-site/features/doc-api-sdk.html +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/examples/documentation-site/features/doc-example-advanced.html +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/examples/documentation-site/features/doc-example-basic.html +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/examples/documentation-site/features/doc-index.html +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/examples/documentation-site/features/doc-installation.html +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/examples/documentation-site/features/doc-quickstart.html +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/examples/handoff-demo.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/examples/knowledge-base/README.md +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/examples/knowledge-base/agents.json +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/examples/knowledge-base/demo.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/examples/knowledge-base/features/feat-276c615f.html +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/examples/knowledge-base/features/feat-7a6f797d.html +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/examples/knowledge-base/features/note-ai-agents.html +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/examples/knowledge-base/features/note-graph-db.html +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/examples/knowledge-base/features/note-htmlgraph.html +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/examples/knowledge-base/features/note-web-standards.html +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/examples/parallel_task_coordination.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/examples/routing-demo.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/examples/sdk_demo.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/examples/todo-list/README.md +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/examples/todo-list/demo.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/examples/todo-list/index.html +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/examples/todo-list/styles.css +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/examples/todo-list/task-001.html +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/examples/todo-list/task-002.html +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/examples/todo-list/task-003.html +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/examples/todo-list/task-004.html +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/examples/todo-list/task-005.html +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/examples/todo-list/task-006.html +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/packages/gemini-extension/GEMINI.md +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/packages/gemini-extension/README.md +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/packages/gemini-extension/command_deploy.md +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/packages/gemini-extension/command_end.md +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/packages/gemini-extension/command_feature-add.md +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/packages/gemini-extension/command_feature-complete.md +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/packages/gemini-extension/command_feature-primary.md +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/packages/gemini-extension/command_feature-start.md +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/packages/gemini-extension/command_git-commit.md +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/packages/gemini-extension/command_help.md +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/packages/gemini-extension/command_init.md +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/packages/gemini-extension/command_plan.md +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/packages/gemini-extension/command_recommend.md +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/packages/gemini-extension/command_serve.md +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/packages/gemini-extension/command_spike.md +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/packages/gemini-extension/command_start.md +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/packages/gemini-extension/command_status.md +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/packages/gemini-extension/command_track.md +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/packages/gemini-extension/hooks/hooks.json +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/packages/gemini-extension/hooks/scripts/post-tool.sh +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/packages/gemini-extension/hooks/scripts/session-end.sh +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/packages/gemini-extension/hooks/scripts/session-start.sh +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/js/htmlgraph.js +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/agent_registry.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/agents.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/analytics/__init__.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/analytics/cli.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/analytics/dependency.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/archive/__init__.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/archive/bloom.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/archive/fts.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/archive/manager.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/archive/search.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/attribute_index.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/builders/__init__.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/builders/insight.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/builders/metric.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/builders/pattern.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/cigs/autonomy.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/cigs/cost.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/cigs/messages_basic.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/cigs/messaging.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/cigs/models.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/cigs/pattern_storage.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/cigs/patterns.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/cigs/posttool_analyzer.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/cigs/tracker.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/collections/bug.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/collections/chore.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/collections/epic.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/collections/feature.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/collections/insight.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/collections/metric.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/collections/pattern.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/collections/phase.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/collections/todo.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/context_analytics.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/dependency_models.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/deployment_models.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/docs/__init__.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/docs/docs_version.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/docs/metadata.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/docs/migrations.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/docs/template_engine.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/docs/templates/_sections/cli_reference.md.j2 +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/docs/templates/_sections/core_concepts.md.j2 +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/docs/templates/_sections/sdk_basics.md.j2 +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/docs/templates/base_agents.md.j2 +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/docs/templates/example_user_override.md.j2 +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/edge_index.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/event_migration.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/exceptions.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/extensions/gemini/GEMINI.md +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/extensions/gemini/README.md +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/extensions/gemini/gemini-extension.json +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/extensions/gemini/hooks/hooks.json +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/extensions/gemini/hooks/scripts/post-tool.sh +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/extensions/gemini/hooks/scripts/session-end.sh +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/extensions/gemini/hooks/scripts/session-start.sh +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/file_watcher.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/find_api.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/git_events.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/graph.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/hooks/hooks-config.example.json +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/hooks/installer.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/hooks/post-checkout.sh +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/hooks/post-commit.sh +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/hooks/post-merge.sh +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/hooks/post_tool_use_failure.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/hooks/posttooluse.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/hooks/pre-commit.sh +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/hooks/pre-push.sh +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/hooks/task_validator.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/ids.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/index.d.ts +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/learning.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/mcp_server.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/operations/README.md +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/operations/__init__.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/operations/analytics.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/operations/events.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/operations/hooks.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/operations/server.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/orchestration/__init__.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/orchestration/model_selection.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/orchestration/task_coordination.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/orchestrator-system-prompt-optimized.txt +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/orchestrator.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/orchestrator_mode.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/orchestrator_validator.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/parallel.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/parser.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/planning.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/query_builder.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/reflection.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/routing.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/scripts/__init__.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/scripts/deploy.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/services/__init__.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/services/claiming.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/session_warning.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/setup.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/spike_index.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/styles.css +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/sync_docs.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/templates/AGENTS.md.template +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/templates/CLAUDE.md.template +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/templates/GEMINI.md.template +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/track_manager.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/transcript.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/transcript_analytics.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/types.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/watch.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/src/python/htmlgraph/work_type_utils.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/benchmarks/README.md +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/benchmarks/__init__.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/benchmarks/bench_graph.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/benchmarks/conftest.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/integration/multi_agent/README.md +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/integration/multi_agent/__init__.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/integration/multi_agent/test_agent_quirks.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/integration/multi_agent/test_git_continuity_spine.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/integration/test_cigs_hook_flow.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/integration/test_cigs_integration.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/integration/test_cigs_learning.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/integration/test_deployment_workflow.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/integration/test_handoff_routing.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/integration/test_multi_agent_coordination.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/js/README.md +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/js/test_htmlgraph.html +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/operations/__init__.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/operations/test_hooks.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/operations/test_server.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/python/__init__.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/python/test_analytics.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/python/test_archive_manager.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/python/test_archive_search.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/python/test_auto_spike.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/python/test_cigs_pretool_enforcer.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/python/test_claiming.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/python/test_cli_commands.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/python/test_cross_agent_attribution.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/python/test_cross_session_analytics.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/python/test_dashboard_ui.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/python/test_deploy.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/python/test_drift_parent_activity.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/python/test_drift_queue_cleanup.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/python/test_edge_index.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/python/test_event_index.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/python/test_event_query.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/python/test_find_api.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/python/test_git_events.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/python/test_graph_traversal.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/python/test_headless_spawner.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/python/test_headless_spawner_parent_session.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/python/test_ids.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/python/test_install_hooks.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/python/test_mcp_server.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/python/test_mcp_stdio_transport.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/python/test_models.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/python/test_orchestrator_circuit_breaker.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/python/test_orchestrator_cli.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/python/test_orchestrator_enforce_hook.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/python/test_orchestrator_mode.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/python/test_pattern_storage.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/python/test_plugin_update_preservation.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/python/test_post_tool_use_failure.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/python/test_posttooluse_cigs.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/python/test_pre_work_validation_integration.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/python/test_query_builder.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/python/test_query_cache.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/python/test_query_compilation.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/python/test_reflection.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/python/test_routing.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/python/test_sdk_discoverability.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/python/test_session_cleanup.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/python/test_session_start_cigs.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/python/test_session_start_info_validation.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/python/test_stop_cigs.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/python/test_system_overhead_drift.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/python/test_template_system.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/python/test_todo_collection.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/python/test_track_loading.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/python/test_update_preserves_incoming_edges.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/python/test_user_prompt_submit_cigs.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/python/test_validate_work_hook.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/python/test_version_migration.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/python/test_violation_tracker.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/python/test_work_type.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/test_agent_routing.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/test_autonomy_recommender.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/test_cigs_cost_calculator.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/test_cigs_imperative_messages.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/test_cigs_messages_basic.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/test_cli_output_snapshots.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/test_cli_sdk_parity.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/test_deployment_models.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/test_event_log.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/test_orchestrator_validator.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/test_pattern_detector.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/test_sdk_operations.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/test_transaction_snapshot.py +0 -0
- {htmlgraph-0.24.2 → htmlgraph-0.26.1}/tests/test_transcript.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: htmlgraph
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.26.1
|
|
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
|
|
@@ -19,11 +19,14 @@ Classifier: Programming Language :: Python :: 3.12
|
|
|
19
19
|
Classifier: Topic :: Database
|
|
20
20
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
21
21
|
Requires-Python: >=3.10
|
|
22
|
+
Requires-Dist: aiosqlite>=0.19.0
|
|
23
|
+
Requires-Dist: fastapi>=0.104.0
|
|
22
24
|
Requires-Dist: jinja2>=3.1.0
|
|
23
25
|
Requires-Dist: justhtml>=0.6.0
|
|
24
26
|
Requires-Dist: pydantic>=2.0.0
|
|
25
27
|
Requires-Dist: rich>=13.0.0
|
|
26
28
|
Requires-Dist: typing-extensions>=4.0.0; python_version < '3.11'
|
|
29
|
+
Requires-Dist: uvicorn>=0.24.0
|
|
27
30
|
Requires-Dist: watchdog>=3.0.0
|
|
28
31
|
Provides-Extra: deploy
|
|
29
32
|
Requires-Dist: invoke>=2.2.0; extra == 'deploy'
|
|
@@ -35,7 +38,9 @@ Requires-Dist: pdoc>=14.0.0; extra == 'dev'
|
|
|
35
38
|
Requires-Dist: pytest-asyncio>=0.23.0; extra == 'dev'
|
|
36
39
|
Requires-Dist: pytest-cov>=4.0.0; extra == 'dev'
|
|
37
40
|
Requires-Dist: pytest>=7.0.0; extra == 'dev'
|
|
41
|
+
Requires-Dist: pyyaml>=6.0; extra == 'dev'
|
|
38
42
|
Requires-Dist: ruff>=0.1.0; extra == 'dev'
|
|
43
|
+
Requires-Dist: tomli>=2.0.0; (python_version < '3.11') and extra == 'dev'
|
|
39
44
|
Provides-Extra: sqlite
|
|
40
45
|
Requires-Dist: aiosqlite>=0.19.0; extra == 'sqlite'
|
|
41
46
|
Description-Content-Type: text/markdown
|
|
@@ -81,71 +86,47 @@ This bootstraps:
|
|
|
81
86
|
- `.htmlgraph/index.sqlite` analytics cache (rebuildable; gitignored via `.gitignore`)
|
|
82
87
|
- versioned hook scripts under `.htmlgraph/hooks/` (installed into `.git/hooks/` with `--install-hooks`)
|
|
83
88
|
|
|
84
|
-
### Python
|
|
89
|
+
### Python (SDK - Recommended)
|
|
85
90
|
|
|
86
91
|
```python
|
|
87
|
-
from htmlgraph import
|
|
88
|
-
|
|
89
|
-
# Initialize
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
# Create a
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
#
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
# Status: in-progress | Priority: high
|
|
126
|
-
# Progress: 0/3 steps (0%)
|
|
127
|
-
# ⚠️ Blocked by: Database Schema
|
|
128
|
-
# Next: Create auth routes
|
|
129
|
-
```
|
|
130
|
-
|
|
131
|
-
### Agent Interface
|
|
132
|
-
|
|
133
|
-
```python
|
|
134
|
-
from htmlgraph.agents import AgentInterface
|
|
135
|
-
|
|
136
|
-
agent = AgentInterface("features/", agent_id="claude")
|
|
137
|
-
|
|
138
|
-
# Get next available task
|
|
139
|
-
task = agent.get_next_task(priority="high")
|
|
140
|
-
|
|
141
|
-
# Get lightweight context
|
|
142
|
-
context = agent.get_context(task.id)
|
|
143
|
-
|
|
144
|
-
# Update progress
|
|
145
|
-
agent.complete_step(task.id, step_index=0)
|
|
146
|
-
|
|
147
|
-
# Complete task
|
|
148
|
-
agent.complete_task(task.id)
|
|
92
|
+
from htmlgraph import SDK
|
|
93
|
+
|
|
94
|
+
# Initialize (auto-discovers .htmlgraph directory)
|
|
95
|
+
sdk = SDK(agent="claude")
|
|
96
|
+
|
|
97
|
+
# Create and configure a feature with fluent API
|
|
98
|
+
feature = sdk.features.create("User Authentication") \
|
|
99
|
+
.set_priority("high") \
|
|
100
|
+
.set_description("Implement OAuth 2.0 login") \
|
|
101
|
+
.add_steps([
|
|
102
|
+
"Create login endpoint",
|
|
103
|
+
"Add JWT middleware",
|
|
104
|
+
"Write integration tests"
|
|
105
|
+
]) \
|
|
106
|
+
.save()
|
|
107
|
+
|
|
108
|
+
print(f"Created: {feature.id}")
|
|
109
|
+
|
|
110
|
+
# Work on features
|
|
111
|
+
with sdk.features.edit(feature.id) as f:
|
|
112
|
+
f.status = "in-progress"
|
|
113
|
+
f.agent_assigned = "claude"
|
|
114
|
+
f.steps[0].completed = True
|
|
115
|
+
|
|
116
|
+
# Query features
|
|
117
|
+
high_priority_todos = sdk.features.where(status="todo", priority="high")
|
|
118
|
+
for feat in high_priority_todos:
|
|
119
|
+
print(f"- {feat.id}: {feat.title}")
|
|
120
|
+
|
|
121
|
+
# Create and configure a track with TrackBuilder
|
|
122
|
+
track = sdk.tracks.builder() \
|
|
123
|
+
.title("Q1 Security Initiative") \
|
|
124
|
+
.priority("high") \
|
|
125
|
+
.add_feature("feature-001") \
|
|
126
|
+
.add_feature("feature-002") \
|
|
127
|
+
.create()
|
|
128
|
+
|
|
129
|
+
print(f"Created track: {track.id}")
|
|
149
130
|
```
|
|
150
131
|
|
|
151
132
|
### HTML File Format
|
|
@@ -203,6 +184,43 @@ HtmlGraph nodes are standard HTML files:
|
|
|
203
184
|
- **Deployment Automation** - One-command releases with version management
|
|
204
185
|
- **Unified Backend** - Operations layer shared by CLI and SDK for consistency
|
|
205
186
|
|
|
187
|
+
## Orchestrator Architecture: Flexible Multi-Agent Coordination
|
|
188
|
+
|
|
189
|
+
HtmlGraph implements an orchestrator pattern that coordinates multiple AI agents in parallel, preserving context efficiency while maintaining complete flexibility in model selection. Instead of rigid rules, the pattern uses **capability-first thinking** to choose the right tool (and model) for each task.
|
|
190
|
+
|
|
191
|
+
**Key Principles:**
|
|
192
|
+
- ✅ **Flexible model selection** - Any model can do any work; choose based on task fit and cost
|
|
193
|
+
- ✅ **Dynamic spawner composition** - Mix and match spawner types (Gemini, Copilot, Codex, Claude) within the same workflow
|
|
194
|
+
- ✅ **Cost optimization** - Use cheaper models for exploratory work, expensive models only for reasoning
|
|
195
|
+
- ✅ **Parallel execution** - Independent tasks run simultaneously, reducing total time
|
|
196
|
+
|
|
197
|
+
**Example: Parallel Exploration with Multiple Spawners**
|
|
198
|
+
|
|
199
|
+
```python
|
|
200
|
+
# All run in parallel - each uses the best tool for the job
|
|
201
|
+
Task(subagent_type="gemini-spawner", # FREE exploration
|
|
202
|
+
prompt="Find all authentication patterns in src/auth/")
|
|
203
|
+
|
|
204
|
+
Task(subagent_type="copilot-spawner", # GitHub integration
|
|
205
|
+
prompt="Check GitHub issues related to auth",
|
|
206
|
+
allow_tools=["github(*)"])
|
|
207
|
+
|
|
208
|
+
Task(subagent_type="claude-spawner", # Deep reasoning
|
|
209
|
+
prompt="Analyze auth patterns for security issues")
|
|
210
|
+
|
|
211
|
+
# Orchestrator coordinates, subagents work in parallel
|
|
212
|
+
# Total time = slowest task (not sum of all)
|
|
213
|
+
# Cost = optimized (cheap exploration + expensive reasoning only)
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
**Spawner Types:**
|
|
217
|
+
- **Gemini Spawner** - FREE exploratory research, batch analysis (2M tokens/min)
|
|
218
|
+
- **Copilot Spawner** - GitHub-integrated workflows, git operations
|
|
219
|
+
- **Codex Spawner** - Code generation, coding completions
|
|
220
|
+
- **Claude Spawner** - Deep reasoning, analysis, strategic planning (any Claude model)
|
|
221
|
+
|
|
222
|
+
→ [Complete Orchestrator Architecture Guide](docs/orchestrator-architecture.md) - Detailed patterns, cost optimization, decision framework, and advanced examples
|
|
223
|
+
|
|
206
224
|
## Comparison
|
|
207
225
|
|
|
208
226
|
| Feature | Neo4j | JSON | HtmlGraph |
|
|
@@ -257,6 +275,15 @@ uv run python
|
|
|
257
275
|
|
|
258
276
|
MIT
|
|
259
277
|
|
|
278
|
+
## System Prompt & Delegation Documentation
|
|
279
|
+
|
|
280
|
+
For Claude Code users and teams using HtmlGraph for AI agent coordination:
|
|
281
|
+
|
|
282
|
+
- **[System Prompt Quick Start](docs/SYSTEM_PROMPT_QUICK_START.md)** - Setup your system prompt in 5 minutes (start here!)
|
|
283
|
+
- **[System Prompt Architecture](docs/SYSTEM_PROMPT_ARCHITECTURE.md)** - Technical deep dive + troubleshooting
|
|
284
|
+
- **[Delegation Enforcement Admin Guide](docs/DELEGATION_ENFORCEMENT_ADMIN_GUIDE.md)** - Setup cost-optimal delegation for your team
|
|
285
|
+
- **[System Prompt Developer Guide](docs/SYSTEM_PROMPT_DEVELOPER_GUIDE.md)** - Extend with custom layers, hooks, and skills
|
|
286
|
+
|
|
260
287
|
## Links
|
|
261
288
|
|
|
262
289
|
- [GitHub](https://github.com/Shakes-tzd/htmlgraph)
|
|
@@ -39,71 +39,47 @@ This bootstraps:
|
|
|
39
39
|
- `.htmlgraph/index.sqlite` analytics cache (rebuildable; gitignored via `.gitignore`)
|
|
40
40
|
- versioned hook scripts under `.htmlgraph/hooks/` (installed into `.git/hooks/` with `--install-hooks`)
|
|
41
41
|
|
|
42
|
-
### Python
|
|
42
|
+
### Python (SDK - Recommended)
|
|
43
43
|
|
|
44
44
|
```python
|
|
45
|
-
from htmlgraph import
|
|
46
|
-
|
|
47
|
-
# Initialize
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
# Create a
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
#
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
# Status: in-progress | Priority: high
|
|
84
|
-
# Progress: 0/3 steps (0%)
|
|
85
|
-
# ⚠️ Blocked by: Database Schema
|
|
86
|
-
# Next: Create auth routes
|
|
87
|
-
```
|
|
88
|
-
|
|
89
|
-
### Agent Interface
|
|
90
|
-
|
|
91
|
-
```python
|
|
92
|
-
from htmlgraph.agents import AgentInterface
|
|
93
|
-
|
|
94
|
-
agent = AgentInterface("features/", agent_id="claude")
|
|
95
|
-
|
|
96
|
-
# Get next available task
|
|
97
|
-
task = agent.get_next_task(priority="high")
|
|
98
|
-
|
|
99
|
-
# Get lightweight context
|
|
100
|
-
context = agent.get_context(task.id)
|
|
101
|
-
|
|
102
|
-
# Update progress
|
|
103
|
-
agent.complete_step(task.id, step_index=0)
|
|
104
|
-
|
|
105
|
-
# Complete task
|
|
106
|
-
agent.complete_task(task.id)
|
|
45
|
+
from htmlgraph import SDK
|
|
46
|
+
|
|
47
|
+
# Initialize (auto-discovers .htmlgraph directory)
|
|
48
|
+
sdk = SDK(agent="claude")
|
|
49
|
+
|
|
50
|
+
# Create and configure a feature with fluent API
|
|
51
|
+
feature = sdk.features.create("User Authentication") \
|
|
52
|
+
.set_priority("high") \
|
|
53
|
+
.set_description("Implement OAuth 2.0 login") \
|
|
54
|
+
.add_steps([
|
|
55
|
+
"Create login endpoint",
|
|
56
|
+
"Add JWT middleware",
|
|
57
|
+
"Write integration tests"
|
|
58
|
+
]) \
|
|
59
|
+
.save()
|
|
60
|
+
|
|
61
|
+
print(f"Created: {feature.id}")
|
|
62
|
+
|
|
63
|
+
# Work on features
|
|
64
|
+
with sdk.features.edit(feature.id) as f:
|
|
65
|
+
f.status = "in-progress"
|
|
66
|
+
f.agent_assigned = "claude"
|
|
67
|
+
f.steps[0].completed = True
|
|
68
|
+
|
|
69
|
+
# Query features
|
|
70
|
+
high_priority_todos = sdk.features.where(status="todo", priority="high")
|
|
71
|
+
for feat in high_priority_todos:
|
|
72
|
+
print(f"- {feat.id}: {feat.title}")
|
|
73
|
+
|
|
74
|
+
# Create and configure a track with TrackBuilder
|
|
75
|
+
track = sdk.tracks.builder() \
|
|
76
|
+
.title("Q1 Security Initiative") \
|
|
77
|
+
.priority("high") \
|
|
78
|
+
.add_feature("feature-001") \
|
|
79
|
+
.add_feature("feature-002") \
|
|
80
|
+
.create()
|
|
81
|
+
|
|
82
|
+
print(f"Created track: {track.id}")
|
|
107
83
|
```
|
|
108
84
|
|
|
109
85
|
### HTML File Format
|
|
@@ -161,6 +137,43 @@ HtmlGraph nodes are standard HTML files:
|
|
|
161
137
|
- **Deployment Automation** - One-command releases with version management
|
|
162
138
|
- **Unified Backend** - Operations layer shared by CLI and SDK for consistency
|
|
163
139
|
|
|
140
|
+
## Orchestrator Architecture: Flexible Multi-Agent Coordination
|
|
141
|
+
|
|
142
|
+
HtmlGraph implements an orchestrator pattern that coordinates multiple AI agents in parallel, preserving context efficiency while maintaining complete flexibility in model selection. Instead of rigid rules, the pattern uses **capability-first thinking** to choose the right tool (and model) for each task.
|
|
143
|
+
|
|
144
|
+
**Key Principles:**
|
|
145
|
+
- ✅ **Flexible model selection** - Any model can do any work; choose based on task fit and cost
|
|
146
|
+
- ✅ **Dynamic spawner composition** - Mix and match spawner types (Gemini, Copilot, Codex, Claude) within the same workflow
|
|
147
|
+
- ✅ **Cost optimization** - Use cheaper models for exploratory work, expensive models only for reasoning
|
|
148
|
+
- ✅ **Parallel execution** - Independent tasks run simultaneously, reducing total time
|
|
149
|
+
|
|
150
|
+
**Example: Parallel Exploration with Multiple Spawners**
|
|
151
|
+
|
|
152
|
+
```python
|
|
153
|
+
# All run in parallel - each uses the best tool for the job
|
|
154
|
+
Task(subagent_type="gemini-spawner", # FREE exploration
|
|
155
|
+
prompt="Find all authentication patterns in src/auth/")
|
|
156
|
+
|
|
157
|
+
Task(subagent_type="copilot-spawner", # GitHub integration
|
|
158
|
+
prompt="Check GitHub issues related to auth",
|
|
159
|
+
allow_tools=["github(*)"])
|
|
160
|
+
|
|
161
|
+
Task(subagent_type="claude-spawner", # Deep reasoning
|
|
162
|
+
prompt="Analyze auth patterns for security issues")
|
|
163
|
+
|
|
164
|
+
# Orchestrator coordinates, subagents work in parallel
|
|
165
|
+
# Total time = slowest task (not sum of all)
|
|
166
|
+
# Cost = optimized (cheap exploration + expensive reasoning only)
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
**Spawner Types:**
|
|
170
|
+
- **Gemini Spawner** - FREE exploratory research, batch analysis (2M tokens/min)
|
|
171
|
+
- **Copilot Spawner** - GitHub-integrated workflows, git operations
|
|
172
|
+
- **Codex Spawner** - Code generation, coding completions
|
|
173
|
+
- **Claude Spawner** - Deep reasoning, analysis, strategic planning (any Claude model)
|
|
174
|
+
|
|
175
|
+
→ [Complete Orchestrator Architecture Guide](docs/orchestrator-architecture.md) - Detailed patterns, cost optimization, decision framework, and advanced examples
|
|
176
|
+
|
|
164
177
|
## Comparison
|
|
165
178
|
|
|
166
179
|
| Feature | Neo4j | JSON | HtmlGraph |
|
|
@@ -215,6 +228,15 @@ uv run python
|
|
|
215
228
|
|
|
216
229
|
MIT
|
|
217
230
|
|
|
231
|
+
## System Prompt & Delegation Documentation
|
|
232
|
+
|
|
233
|
+
For Claude Code users and teams using HtmlGraph for AI agent coordination:
|
|
234
|
+
|
|
235
|
+
- **[System Prompt Quick Start](docs/SYSTEM_PROMPT_QUICK_START.md)** - Setup your system prompt in 5 minutes (start here!)
|
|
236
|
+
- **[System Prompt Architecture](docs/SYSTEM_PROMPT_ARCHITECTURE.md)** - Technical deep dive + troubleshooting
|
|
237
|
+
- **[Delegation Enforcement Admin Guide](docs/DELEGATION_ENFORCEMENT_ADMIN_GUIDE.md)** - Setup cost-optimal delegation for your team
|
|
238
|
+
- **[System Prompt Developer Guide](docs/SYSTEM_PROMPT_DEVELOPER_GUIDE.md)** - Extend with custom layers, hooks, and skills
|
|
239
|
+
|
|
218
240
|
## Links
|
|
219
241
|
|
|
220
242
|
- [GitHub](https://github.com/Shakes-tzd/htmlgraph)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "htmlgraph",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.26.1",
|
|
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.
|
|
3
|
+
version = "0.26.1"
|
|
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"
|
|
@@ -26,6 +26,9 @@ dependencies = [
|
|
|
26
26
|
"rich>=13.0.0",
|
|
27
27
|
"jinja2>=3.1.0",
|
|
28
28
|
"typing_extensions>=4.0.0; python_version < '3.11'",
|
|
29
|
+
"fastapi>=0.104.0",
|
|
30
|
+
"uvicorn>=0.24.0",
|
|
31
|
+
"aiosqlite>=0.19.0",
|
|
29
32
|
]
|
|
30
33
|
|
|
31
34
|
[project.optional-dependencies]
|
|
@@ -38,6 +41,8 @@ dev = [
|
|
|
38
41
|
"ruff>=0.1.0",
|
|
39
42
|
"invoke>=2.2.0",
|
|
40
43
|
"pdoc>=14.0.0",
|
|
44
|
+
"tomli>=2.0.0; python_version < '3.11'",
|
|
45
|
+
"pyyaml>=6.0",
|
|
41
46
|
]
|
|
42
47
|
sqlite = [
|
|
43
48
|
"aiosqlite>=0.19.0",
|
|
@@ -105,8 +110,19 @@ python_version = "3.10"
|
|
|
105
110
|
warn_return_any = true
|
|
106
111
|
warn_unused_ignores = false # Disabled due to environment differences between local and CI
|
|
107
112
|
disallow_untyped_defs = true
|
|
113
|
+
disallow_any_unimported = false # Allow untyped third-party libraries
|
|
108
114
|
ignore_missing_imports = true
|
|
109
115
|
|
|
116
|
+
# Per-module options for strict checking
|
|
117
|
+
[[tool.mypy.overrides]]
|
|
118
|
+
module = "htmlgraph.collections.task_delegation"
|
|
119
|
+
disallow_untyped_defs = true
|
|
120
|
+
disallow_incomplete_defs = true
|
|
121
|
+
|
|
122
|
+
[[tool.mypy.overrides]]
|
|
123
|
+
module = "htmlgraph.server"
|
|
124
|
+
disallow_incomplete_defs = true
|
|
125
|
+
|
|
110
126
|
[tool.pdoc]
|
|
111
127
|
output-directory = "docs/api-pdoc"
|
|
112
128
|
docformat = "google"
|
|
@@ -8,6 +8,14 @@ hyperlinks as edges, and CSS selectors as the query language.
|
|
|
8
8
|
from htmlgraph.agent_detection import detect_agent_name, get_agent_display_name
|
|
9
9
|
from htmlgraph.agents import AgentInterface
|
|
10
10
|
from htmlgraph.analytics import Analytics, DependencyAnalytics
|
|
11
|
+
from htmlgraph.atomic_ops import (
|
|
12
|
+
AtomicFileWriter,
|
|
13
|
+
DirectoryLocker,
|
|
14
|
+
atomic_rename,
|
|
15
|
+
cleanup_orphaned_temp_files,
|
|
16
|
+
safe_temp_file,
|
|
17
|
+
validate_atomic_write,
|
|
18
|
+
)
|
|
11
19
|
from htmlgraph.builders import BaseBuilder, FeatureBuilder, SpikeBuilder
|
|
12
20
|
from htmlgraph.collections import BaseCollection, FeatureCollection, SpikeCollection
|
|
13
21
|
from htmlgraph.context_analytics import ContextAnalytics, ContextUsage
|
|
@@ -56,9 +64,11 @@ from htmlgraph.orchestrator_mode import OrchestratorMode, OrchestratorModeManage
|
|
|
56
64
|
from htmlgraph.parallel import AggregateResult, ParallelAnalysis, ParallelWorkflow
|
|
57
65
|
from htmlgraph.query_builder import Condition, Operator, QueryBuilder
|
|
58
66
|
from htmlgraph.reflection import ComputationalReflection, get_reflection_context
|
|
67
|
+
from htmlgraph.repo_hash import RepoHash
|
|
59
68
|
from htmlgraph.sdk import SDK
|
|
60
69
|
from htmlgraph.server import serve
|
|
61
70
|
from htmlgraph.session_manager import SessionManager
|
|
71
|
+
from htmlgraph.session_registry import SessionRegistry
|
|
62
72
|
from htmlgraph.types import (
|
|
63
73
|
ActiveWorkItem,
|
|
64
74
|
AggregateResultsDict,
|
|
@@ -85,7 +95,7 @@ from htmlgraph.types import (
|
|
|
85
95
|
)
|
|
86
96
|
from htmlgraph.work_type_utils import infer_work_type, infer_work_type_from_id
|
|
87
97
|
|
|
88
|
-
__version__ = "0.
|
|
98
|
+
__version__ = "0.26.1"
|
|
89
99
|
__all__ = [
|
|
90
100
|
# Exceptions
|
|
91
101
|
"HtmlGraphError",
|
|
@@ -123,6 +133,8 @@ __all__ = [
|
|
|
123
133
|
"find_all",
|
|
124
134
|
"AgentInterface",
|
|
125
135
|
"SessionManager",
|
|
136
|
+
"SessionRegistry",
|
|
137
|
+
"RepoHash",
|
|
126
138
|
"SDK",
|
|
127
139
|
"Analytics", # Phase 2: Work Type Analytics
|
|
128
140
|
"DependencyAnalytics", # Advanced dependency-aware analytics
|
|
@@ -190,4 +202,11 @@ __all__ = [
|
|
|
190
202
|
"get_results_by_task_id",
|
|
191
203
|
"parallel_delegate",
|
|
192
204
|
"generate_task_id",
|
|
205
|
+
# Atomic file operations (Phase 1.3: Session File Tracking)
|
|
206
|
+
"AtomicFileWriter",
|
|
207
|
+
"DirectoryLocker",
|
|
208
|
+
"atomic_rename",
|
|
209
|
+
"cleanup_orphaned_temp_files",
|
|
210
|
+
"safe_temp_file",
|
|
211
|
+
"validate_atomic_write",
|
|
193
212
|
]
|
|
@@ -14,34 +14,48 @@ def detect_agent_name() -> str:
|
|
|
14
14
|
Detect the current agent/interface name based on environment.
|
|
15
15
|
|
|
16
16
|
Returns:
|
|
17
|
-
Agent name (e.g., "claude", "gemini", "cli")
|
|
17
|
+
Agent name (e.g., "claude-code", "gemini", "cli")
|
|
18
18
|
|
|
19
19
|
Detection order:
|
|
20
20
|
1. HTMLGRAPH_AGENT environment variable (explicit override)
|
|
21
|
-
2.
|
|
22
|
-
3. Gemini detection (GEMINI environment markers)
|
|
23
|
-
4.
|
|
21
|
+
2. HTMLGRAPH_PARENT_AGENT (set by hooks for session context)
|
|
22
|
+
3. Gemini detection (GEMINI environment markers) - checked before Claude to allow override
|
|
23
|
+
4. Claude Code detection (CLAUDECODE env var, parent process)
|
|
24
|
+
5. Fall back to "cli" only if no AI agent detected
|
|
24
25
|
"""
|
|
25
26
|
# 1. Explicit override
|
|
26
27
|
explicit = os.environ.get("HTMLGRAPH_AGENT")
|
|
27
28
|
if explicit:
|
|
28
29
|
return explicit.strip()
|
|
29
30
|
|
|
30
|
-
# 2.
|
|
31
|
-
|
|
32
|
-
|
|
31
|
+
# 2. Parent agent context (set by HtmlGraph hooks)
|
|
32
|
+
parent_agent = os.environ.get("HTMLGRAPH_PARENT_AGENT")
|
|
33
|
+
if parent_agent:
|
|
34
|
+
return parent_agent.strip()
|
|
33
35
|
|
|
34
|
-
# 3. Gemini detection
|
|
36
|
+
# 3. Gemini detection (checked before Claude to allow explicit override)
|
|
35
37
|
if _is_gemini():
|
|
36
38
|
return "gemini"
|
|
37
39
|
|
|
38
|
-
# 4.
|
|
40
|
+
# 4. Claude Code detection
|
|
41
|
+
if _is_claude_code():
|
|
42
|
+
return "claude-code"
|
|
43
|
+
|
|
44
|
+
# 5. Default to CLI only if no AI agent detected
|
|
39
45
|
return "cli"
|
|
40
46
|
|
|
41
47
|
|
|
42
48
|
def _is_claude_code() -> bool:
|
|
43
49
|
"""Check if running in Claude Code environment."""
|
|
44
50
|
# Check for Claude Code environment variables
|
|
51
|
+
# CLAUDECODE=1 is set by Claude Code CLI
|
|
52
|
+
if os.environ.get("CLAUDECODE"):
|
|
53
|
+
return True
|
|
54
|
+
|
|
55
|
+
# CLAUDE_CODE_ENTRYPOINT indicates the entry point (cli, api, etc.)
|
|
56
|
+
if os.environ.get("CLAUDE_CODE_ENTRYPOINT"):
|
|
57
|
+
return True
|
|
58
|
+
|
|
45
59
|
if os.environ.get("CLAUDE_CODE_VERSION"):
|
|
46
60
|
return True
|
|
47
61
|
|
|
@@ -100,12 +114,14 @@ def get_agent_display_name(agent: str) -> str:
|
|
|
100
114
|
"""
|
|
101
115
|
display_names = {
|
|
102
116
|
"claude": "Claude",
|
|
103
|
-
"claude-code": "Claude",
|
|
117
|
+
"claude-code": "Claude Code",
|
|
104
118
|
"gemini": "Gemini",
|
|
105
119
|
"cli": "CLI",
|
|
106
120
|
"haiku": "Haiku",
|
|
107
121
|
"opus": "Opus",
|
|
108
122
|
"sonnet": "Sonnet",
|
|
123
|
+
"claude-opus-4-5-20251101": "Claude Opus 4.5",
|
|
124
|
+
"claude-sonnet-4-20250514": "Claude Sonnet 4",
|
|
109
125
|
}
|
|
110
126
|
|
|
111
127
|
return display_names.get(agent.lower(), agent.title())
|
|
@@ -51,6 +51,7 @@ if TYPE_CHECKING:
|
|
|
51
51
|
from htmlgraph import SDK
|
|
52
52
|
|
|
53
53
|
from htmlgraph.event_log import JsonlEventLog
|
|
54
|
+
from htmlgraph.models import utc_now
|
|
54
55
|
|
|
55
56
|
|
|
56
57
|
@dataclass
|
|
@@ -598,7 +599,7 @@ class CrossSessionAnalytics:
|
|
|
598
599
|
def _parse_timestamp(self, timestamp: str | datetime | None) -> datetime:
|
|
599
600
|
"""Parse timestamp from various formats."""
|
|
600
601
|
if timestamp is None:
|
|
601
|
-
return
|
|
602
|
+
return utc_now()
|
|
602
603
|
|
|
603
604
|
if isinstance(timestamp, datetime):
|
|
604
605
|
return timestamp
|
|
@@ -607,6 +608,6 @@ class CrossSessionAnalytics:
|
|
|
607
608
|
try:
|
|
608
609
|
return datetime.fromisoformat(timestamp.replace("Z", "+00:00"))
|
|
609
610
|
except (ValueError, AttributeError):
|
|
610
|
-
return
|
|
611
|
+
return utc_now()
|
|
611
612
|
|
|
612
|
-
return
|
|
613
|
+
return utc_now()
|