htmlgraph 0.9.3__py3-none-any.whl → 0.27.5__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- htmlgraph/.htmlgraph/.session-warning-state.json +6 -0
- htmlgraph/.htmlgraph/agents.json +72 -0
- htmlgraph/.htmlgraph/htmlgraph.db +0 -0
- htmlgraph/__init__.py +173 -17
- htmlgraph/__init__.pyi +123 -0
- htmlgraph/agent_detection.py +127 -0
- htmlgraph/agent_registry.py +45 -30
- htmlgraph/agents.py +160 -107
- htmlgraph/analytics/__init__.py +9 -2
- htmlgraph/analytics/cli.py +190 -51
- htmlgraph/analytics/cost_analyzer.py +391 -0
- htmlgraph/analytics/cost_monitor.py +664 -0
- htmlgraph/analytics/cost_reporter.py +675 -0
- htmlgraph/analytics/cross_session.py +617 -0
- htmlgraph/analytics/dependency.py +192 -100
- htmlgraph/analytics/pattern_learning.py +771 -0
- htmlgraph/analytics/session_graph.py +707 -0
- htmlgraph/analytics/strategic/__init__.py +80 -0
- htmlgraph/analytics/strategic/cost_optimizer.py +611 -0
- htmlgraph/analytics/strategic/pattern_detector.py +876 -0
- htmlgraph/analytics/strategic/preference_manager.py +709 -0
- htmlgraph/analytics/strategic/suggestion_engine.py +747 -0
- htmlgraph/analytics/work_type.py +190 -14
- htmlgraph/analytics_index.py +135 -51
- htmlgraph/api/__init__.py +3 -0
- htmlgraph/api/cost_alerts_websocket.py +416 -0
- htmlgraph/api/main.py +2498 -0
- htmlgraph/api/static/htmx.min.js +1 -0
- htmlgraph/api/static/style-redesign.css +1344 -0
- htmlgraph/api/static/style.css +1079 -0
- htmlgraph/api/templates/dashboard-redesign.html +1366 -0
- htmlgraph/api/templates/dashboard.html +794 -0
- htmlgraph/api/templates/partials/activity-feed-hierarchical.html +326 -0
- htmlgraph/api/templates/partials/activity-feed.html +1100 -0
- htmlgraph/api/templates/partials/agents-redesign.html +317 -0
- htmlgraph/api/templates/partials/agents.html +317 -0
- htmlgraph/api/templates/partials/event-traces.html +373 -0
- htmlgraph/api/templates/partials/features-kanban-redesign.html +509 -0
- htmlgraph/api/templates/partials/features.html +578 -0
- htmlgraph/api/templates/partials/metrics-redesign.html +346 -0
- htmlgraph/api/templates/partials/metrics.html +346 -0
- htmlgraph/api/templates/partials/orchestration-redesign.html +443 -0
- htmlgraph/api/templates/partials/orchestration.html +198 -0
- htmlgraph/api/templates/partials/spawners.html +375 -0
- htmlgraph/api/templates/partials/work-items.html +613 -0
- htmlgraph/api/websocket.py +538 -0
- htmlgraph/archive/__init__.py +24 -0
- htmlgraph/archive/bloom.py +234 -0
- htmlgraph/archive/fts.py +297 -0
- htmlgraph/archive/manager.py +583 -0
- htmlgraph/archive/search.py +244 -0
- htmlgraph/atomic_ops.py +560 -0
- htmlgraph/attribute_index.py +208 -0
- htmlgraph/bounded_paths.py +539 -0
- htmlgraph/builders/__init__.py +14 -0
- htmlgraph/builders/base.py +118 -29
- htmlgraph/builders/bug.py +150 -0
- htmlgraph/builders/chore.py +119 -0
- htmlgraph/builders/epic.py +150 -0
- htmlgraph/builders/feature.py +31 -6
- htmlgraph/builders/insight.py +195 -0
- htmlgraph/builders/metric.py +217 -0
- htmlgraph/builders/pattern.py +202 -0
- htmlgraph/builders/phase.py +162 -0
- htmlgraph/builders/spike.py +52 -19
- htmlgraph/builders/track.py +148 -72
- htmlgraph/cigs/__init__.py +81 -0
- htmlgraph/cigs/autonomy.py +385 -0
- htmlgraph/cigs/cost.py +475 -0
- htmlgraph/cigs/messages_basic.py +472 -0
- htmlgraph/cigs/messaging.py +365 -0
- htmlgraph/cigs/models.py +771 -0
- htmlgraph/cigs/pattern_storage.py +427 -0
- htmlgraph/cigs/patterns.py +503 -0
- htmlgraph/cigs/posttool_analyzer.py +234 -0
- htmlgraph/cigs/reporter.py +818 -0
- htmlgraph/cigs/tracker.py +317 -0
- htmlgraph/cli/.htmlgraph/.session-warning-state.json +6 -0
- htmlgraph/cli/.htmlgraph/agents.json +72 -0
- htmlgraph/cli/.htmlgraph/htmlgraph.db +0 -0
- htmlgraph/cli/__init__.py +42 -0
- htmlgraph/cli/__main__.py +6 -0
- htmlgraph/cli/analytics.py +1424 -0
- htmlgraph/cli/base.py +685 -0
- htmlgraph/cli/constants.py +206 -0
- htmlgraph/cli/core.py +954 -0
- htmlgraph/cli/main.py +147 -0
- htmlgraph/cli/models.py +475 -0
- htmlgraph/cli/templates/__init__.py +1 -0
- htmlgraph/cli/templates/cost_dashboard.py +399 -0
- htmlgraph/cli/work/__init__.py +239 -0
- htmlgraph/cli/work/browse.py +115 -0
- htmlgraph/cli/work/features.py +568 -0
- htmlgraph/cli/work/orchestration.py +676 -0
- htmlgraph/cli/work/report.py +728 -0
- htmlgraph/cli/work/sessions.py +466 -0
- htmlgraph/cli/work/snapshot.py +559 -0
- htmlgraph/cli/work/tracks.py +486 -0
- htmlgraph/cli_commands/__init__.py +1 -0
- htmlgraph/cli_commands/feature.py +195 -0
- htmlgraph/cli_framework.py +115 -0
- htmlgraph/collections/__init__.py +18 -0
- htmlgraph/collections/base.py +415 -98
- htmlgraph/collections/bug.py +53 -0
- htmlgraph/collections/chore.py +53 -0
- htmlgraph/collections/epic.py +53 -0
- htmlgraph/collections/feature.py +12 -26
- htmlgraph/collections/insight.py +100 -0
- htmlgraph/collections/metric.py +92 -0
- htmlgraph/collections/pattern.py +97 -0
- htmlgraph/collections/phase.py +53 -0
- htmlgraph/collections/session.py +194 -0
- htmlgraph/collections/spike.py +56 -16
- htmlgraph/collections/task_delegation.py +241 -0
- htmlgraph/collections/todo.py +511 -0
- htmlgraph/collections/traces.py +487 -0
- htmlgraph/config/cost_models.json +56 -0
- htmlgraph/config.py +190 -0
- htmlgraph/context_analytics.py +344 -0
- htmlgraph/converter.py +216 -28
- htmlgraph/cost_analysis/__init__.py +5 -0
- htmlgraph/cost_analysis/analyzer.py +438 -0
- htmlgraph/dashboard.html +2406 -307
- htmlgraph/dashboard.html.backup +6592 -0
- htmlgraph/dashboard.html.bak +7181 -0
- htmlgraph/dashboard.html.bak2 +7231 -0
- htmlgraph/dashboard.html.bak3 +7232 -0
- htmlgraph/db/__init__.py +38 -0
- htmlgraph/db/queries.py +790 -0
- htmlgraph/db/schema.py +1788 -0
- htmlgraph/decorators.py +317 -0
- htmlgraph/dependency_models.py +19 -2
- htmlgraph/deploy.py +142 -125
- htmlgraph/deployment_models.py +474 -0
- htmlgraph/docs/API_REFERENCE.md +841 -0
- htmlgraph/docs/HTTP_API.md +750 -0
- htmlgraph/docs/INTEGRATION_GUIDE.md +752 -0
- htmlgraph/docs/ORCHESTRATION_PATTERNS.md +717 -0
- htmlgraph/docs/README.md +532 -0
- htmlgraph/docs/__init__.py +77 -0
- htmlgraph/docs/docs_version.py +55 -0
- htmlgraph/docs/metadata.py +93 -0
- htmlgraph/docs/migrations.py +232 -0
- htmlgraph/docs/template_engine.py +143 -0
- htmlgraph/docs/templates/_sections/cli_reference.md.j2 +52 -0
- htmlgraph/docs/templates/_sections/core_concepts.md.j2 +29 -0
- htmlgraph/docs/templates/_sections/sdk_basics.md.j2 +69 -0
- htmlgraph/docs/templates/base_agents.md.j2 +78 -0
- htmlgraph/docs/templates/example_user_override.md.j2 +47 -0
- htmlgraph/docs/version_check.py +163 -0
- htmlgraph/edge_index.py +182 -27
- htmlgraph/error_handler.py +544 -0
- htmlgraph/event_log.py +100 -52
- htmlgraph/event_migration.py +13 -4
- htmlgraph/exceptions.py +49 -0
- htmlgraph/file_watcher.py +101 -28
- htmlgraph/find_api.py +75 -63
- htmlgraph/git_events.py +145 -63
- htmlgraph/graph.py +1122 -106
- htmlgraph/hooks/.htmlgraph/.session-warning-state.json +6 -0
- htmlgraph/hooks/.htmlgraph/agents.json +72 -0
- htmlgraph/hooks/.htmlgraph/index.sqlite +0 -0
- htmlgraph/hooks/__init__.py +45 -0
- htmlgraph/hooks/bootstrap.py +169 -0
- htmlgraph/hooks/cigs_pretool_enforcer.py +354 -0
- htmlgraph/hooks/concurrent_sessions.py +208 -0
- htmlgraph/hooks/context.py +350 -0
- htmlgraph/hooks/drift_handler.py +525 -0
- htmlgraph/hooks/event_tracker.py +1314 -0
- htmlgraph/hooks/git_commands.py +175 -0
- htmlgraph/hooks/hooks-config.example.json +12 -0
- htmlgraph/hooks/installer.py +343 -0
- htmlgraph/hooks/orchestrator.py +674 -0
- htmlgraph/hooks/orchestrator_reflector.py +223 -0
- htmlgraph/hooks/post-checkout.sh +28 -0
- htmlgraph/hooks/post-commit.sh +24 -0
- htmlgraph/hooks/post-merge.sh +26 -0
- htmlgraph/hooks/post_tool_use_failure.py +273 -0
- htmlgraph/hooks/post_tool_use_handler.py +257 -0
- htmlgraph/hooks/posttooluse.py +408 -0
- htmlgraph/hooks/pre-commit.sh +94 -0
- htmlgraph/hooks/pre-push.sh +28 -0
- htmlgraph/hooks/pretooluse.py +819 -0
- htmlgraph/hooks/prompt_analyzer.py +637 -0
- htmlgraph/hooks/session_handler.py +668 -0
- htmlgraph/hooks/session_summary.py +395 -0
- htmlgraph/hooks/state_manager.py +504 -0
- htmlgraph/hooks/subagent_detection.py +202 -0
- htmlgraph/hooks/subagent_stop.py +369 -0
- htmlgraph/hooks/task_enforcer.py +255 -0
- htmlgraph/hooks/task_validator.py +177 -0
- htmlgraph/hooks/validator.py +628 -0
- htmlgraph/ids.py +41 -27
- htmlgraph/index.d.ts +286 -0
- htmlgraph/learning.py +767 -0
- htmlgraph/mcp_server.py +69 -23
- htmlgraph/models.py +1586 -87
- htmlgraph/operations/README.md +62 -0
- htmlgraph/operations/__init__.py +79 -0
- htmlgraph/operations/analytics.py +339 -0
- htmlgraph/operations/bootstrap.py +289 -0
- htmlgraph/operations/events.py +244 -0
- htmlgraph/operations/fastapi_server.py +231 -0
- htmlgraph/operations/hooks.py +350 -0
- htmlgraph/operations/initialization.py +597 -0
- htmlgraph/operations/initialization.py.backup +228 -0
- htmlgraph/operations/server.py +303 -0
- htmlgraph/orchestration/__init__.py +58 -0
- htmlgraph/orchestration/claude_launcher.py +179 -0
- htmlgraph/orchestration/command_builder.py +72 -0
- htmlgraph/orchestration/headless_spawner.py +281 -0
- htmlgraph/orchestration/live_events.py +377 -0
- htmlgraph/orchestration/model_selection.py +327 -0
- htmlgraph/orchestration/plugin_manager.py +140 -0
- htmlgraph/orchestration/prompts.py +137 -0
- htmlgraph/orchestration/spawner_event_tracker.py +383 -0
- htmlgraph/orchestration/spawners/__init__.py +16 -0
- htmlgraph/orchestration/spawners/base.py +194 -0
- htmlgraph/orchestration/spawners/claude.py +173 -0
- htmlgraph/orchestration/spawners/codex.py +435 -0
- htmlgraph/orchestration/spawners/copilot.py +294 -0
- htmlgraph/orchestration/spawners/gemini.py +471 -0
- htmlgraph/orchestration/subprocess_runner.py +36 -0
- htmlgraph/orchestration/task_coordination.py +343 -0
- htmlgraph/orchestration.md +563 -0
- htmlgraph/orchestrator-system-prompt-optimized.txt +863 -0
- htmlgraph/orchestrator.py +669 -0
- htmlgraph/orchestrator_config.py +357 -0
- htmlgraph/orchestrator_mode.py +328 -0
- htmlgraph/orchestrator_validator.py +133 -0
- htmlgraph/parallel.py +646 -0
- htmlgraph/parser.py +160 -35
- htmlgraph/path_query.py +608 -0
- htmlgraph/pattern_matcher.py +636 -0
- htmlgraph/planning.py +147 -52
- htmlgraph/pydantic_models.py +476 -0
- htmlgraph/quality_gates.py +350 -0
- htmlgraph/query_builder.py +109 -72
- htmlgraph/query_composer.py +509 -0
- htmlgraph/reflection.py +443 -0
- htmlgraph/refs.py +344 -0
- htmlgraph/repo_hash.py +512 -0
- htmlgraph/repositories/__init__.py +292 -0
- htmlgraph/repositories/analytics_repository.py +455 -0
- htmlgraph/repositories/analytics_repository_standard.py +628 -0
- htmlgraph/repositories/feature_repository.py +581 -0
- htmlgraph/repositories/feature_repository_htmlfile.py +668 -0
- htmlgraph/repositories/feature_repository_memory.py +607 -0
- htmlgraph/repositories/feature_repository_sqlite.py +858 -0
- htmlgraph/repositories/filter_service.py +620 -0
- htmlgraph/repositories/filter_service_standard.py +445 -0
- htmlgraph/repositories/shared_cache.py +621 -0
- htmlgraph/repositories/shared_cache_memory.py +395 -0
- htmlgraph/repositories/track_repository.py +552 -0
- htmlgraph/repositories/track_repository_htmlfile.py +619 -0
- htmlgraph/repositories/track_repository_memory.py +508 -0
- htmlgraph/repositories/track_repository_sqlite.py +711 -0
- htmlgraph/routing.py +8 -19
- htmlgraph/scripts/deploy.py +1 -2
- htmlgraph/sdk/__init__.py +398 -0
- htmlgraph/sdk/__init__.pyi +14 -0
- htmlgraph/sdk/analytics/__init__.py +19 -0
- htmlgraph/sdk/analytics/engine.py +155 -0
- htmlgraph/sdk/analytics/helpers.py +178 -0
- htmlgraph/sdk/analytics/registry.py +109 -0
- htmlgraph/sdk/base.py +484 -0
- htmlgraph/sdk/constants.py +216 -0
- htmlgraph/sdk/core.pyi +308 -0
- htmlgraph/sdk/discovery.py +120 -0
- htmlgraph/sdk/help/__init__.py +12 -0
- htmlgraph/sdk/help/mixin.py +699 -0
- htmlgraph/sdk/mixins/__init__.py +15 -0
- htmlgraph/sdk/mixins/attribution.py +113 -0
- htmlgraph/sdk/mixins/mixin.py +410 -0
- htmlgraph/sdk/operations/__init__.py +12 -0
- htmlgraph/sdk/operations/mixin.py +427 -0
- htmlgraph/sdk/orchestration/__init__.py +17 -0
- htmlgraph/sdk/orchestration/coordinator.py +203 -0
- htmlgraph/sdk/orchestration/spawner.py +204 -0
- htmlgraph/sdk/planning/__init__.py +19 -0
- htmlgraph/sdk/planning/bottlenecks.py +93 -0
- htmlgraph/sdk/planning/mixin.py +211 -0
- htmlgraph/sdk/planning/parallel.py +186 -0
- htmlgraph/sdk/planning/queue.py +210 -0
- htmlgraph/sdk/planning/recommendations.py +87 -0
- htmlgraph/sdk/planning/smart_planning.py +319 -0
- htmlgraph/sdk/session/__init__.py +19 -0
- htmlgraph/sdk/session/continuity.py +57 -0
- htmlgraph/sdk/session/handoff.py +110 -0
- htmlgraph/sdk/session/info.py +309 -0
- htmlgraph/sdk/session/manager.py +103 -0
- htmlgraph/sdk/strategic/__init__.py +26 -0
- htmlgraph/sdk/strategic/mixin.py +563 -0
- htmlgraph/server.py +685 -180
- htmlgraph/services/__init__.py +10 -0
- htmlgraph/services/claiming.py +199 -0
- htmlgraph/session_hooks.py +300 -0
- htmlgraph/session_manager.py +1392 -175
- htmlgraph/session_registry.py +587 -0
- htmlgraph/session_state.py +436 -0
- htmlgraph/session_warning.py +201 -0
- htmlgraph/sessions/__init__.py +23 -0
- htmlgraph/sessions/handoff.py +756 -0
- htmlgraph/setup.py +34 -17
- htmlgraph/spike_index.py +143 -0
- htmlgraph/sync_docs.py +12 -15
- htmlgraph/system_prompts.py +450 -0
- htmlgraph/templates/AGENTS.md.template +366 -0
- htmlgraph/templates/CLAUDE.md.template +97 -0
- htmlgraph/templates/GEMINI.md.template +87 -0
- htmlgraph/templates/orchestration-view.html +350 -0
- htmlgraph/track_builder.py +146 -15
- htmlgraph/track_manager.py +69 -21
- htmlgraph/transcript.py +890 -0
- htmlgraph/transcript_analytics.py +699 -0
- htmlgraph/types.py +323 -0
- htmlgraph/validation.py +115 -0
- htmlgraph/watch.py +8 -5
- htmlgraph/work_type_utils.py +3 -2
- {htmlgraph-0.9.3.data → htmlgraph-0.27.5.data}/data/htmlgraph/dashboard.html +2406 -307
- htmlgraph-0.27.5.data/data/htmlgraph/templates/AGENTS.md.template +366 -0
- htmlgraph-0.27.5.data/data/htmlgraph/templates/CLAUDE.md.template +97 -0
- htmlgraph-0.27.5.data/data/htmlgraph/templates/GEMINI.md.template +87 -0
- {htmlgraph-0.9.3.dist-info → htmlgraph-0.27.5.dist-info}/METADATA +97 -64
- htmlgraph-0.27.5.dist-info/RECORD +337 -0
- {htmlgraph-0.9.3.dist-info → htmlgraph-0.27.5.dist-info}/entry_points.txt +1 -1
- htmlgraph/cli.py +0 -2688
- htmlgraph/sdk.py +0 -709
- htmlgraph-0.9.3.dist-info/RECORD +0 -61
- {htmlgraph-0.9.3.data → htmlgraph-0.27.5.data}/data/htmlgraph/styles.css +0 -0
- {htmlgraph-0.9.3.dist-info → htmlgraph-0.27.5.dist-info}/WHEEL +0 -0
|
@@ -0,0 +1,750 @@
|
|
|
1
|
+
# HtmlGraph HTTP API Reference
|
|
2
|
+
|
|
3
|
+
REST API for HtmlGraph server. Use this when integrating HtmlGraph with external services or accessing the graph database over HTTP.
|
|
4
|
+
|
|
5
|
+
## Base URL
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
http://localhost:8080/api
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Starting the Server
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
# Via CLI
|
|
15
|
+
htmlgraph serve --port 8080
|
|
16
|
+
|
|
17
|
+
# Via Python
|
|
18
|
+
from htmlgraph import serve
|
|
19
|
+
serve(port=8080, directory=".htmlgraph")
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Response Format
|
|
23
|
+
|
|
24
|
+
All responses are JSON with consistent structure:
|
|
25
|
+
|
|
26
|
+
**Success Response:**
|
|
27
|
+
```json
|
|
28
|
+
{
|
|
29
|
+
"success": true,
|
|
30
|
+
"data": { ... },
|
|
31
|
+
"timestamp": "2025-01-06T10:30:45.123Z"
|
|
32
|
+
}
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
**Error Response:**
|
|
36
|
+
```json
|
|
37
|
+
{
|
|
38
|
+
"success": false,
|
|
39
|
+
"error": "Resource not found",
|
|
40
|
+
"error_code": "NOT_FOUND",
|
|
41
|
+
"timestamp": "2025-01-06T10:30:45.123Z"
|
|
42
|
+
}
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## Status Codes
|
|
46
|
+
|
|
47
|
+
| Code | Meaning | Use Case |
|
|
48
|
+
|------|---------|----------|
|
|
49
|
+
| 200 | OK | Successful request |
|
|
50
|
+
| 201 | Created | Resource created successfully |
|
|
51
|
+
| 400 | Bad Request | Invalid parameters |
|
|
52
|
+
| 404 | Not Found | Resource doesn't exist |
|
|
53
|
+
| 409 | Conflict | Resource already exists or claim conflict |
|
|
54
|
+
| 500 | Server Error | Internal error |
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## Endpoints
|
|
59
|
+
|
|
60
|
+
### `/api/status` - Server Status
|
|
61
|
+
|
|
62
|
+
**GET** `/api/status`
|
|
63
|
+
|
|
64
|
+
Get server status and basic information.
|
|
65
|
+
|
|
66
|
+
**Response:**
|
|
67
|
+
```json
|
|
68
|
+
{
|
|
69
|
+
"success": true,
|
|
70
|
+
"data": {
|
|
71
|
+
"status": "running",
|
|
72
|
+
"version": "0.24.1",
|
|
73
|
+
"collections": {
|
|
74
|
+
"features": 42,
|
|
75
|
+
"bugs": 8,
|
|
76
|
+
"spikes": 5,
|
|
77
|
+
"chores": 12,
|
|
78
|
+
"epics": 3,
|
|
79
|
+
"sessions": 156,
|
|
80
|
+
"agents": 12,
|
|
81
|
+
"tracks": 4
|
|
82
|
+
},
|
|
83
|
+
"uptime_seconds": 3600,
|
|
84
|
+
"timestamp": "2025-01-06T10:30:45.123Z"
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
### `/api/features` - Feature Operations
|
|
92
|
+
|
|
93
|
+
**POST** `/api/features` - Create Feature
|
|
94
|
+
|
|
95
|
+
Create a new feature.
|
|
96
|
+
|
|
97
|
+
**Request Body:**
|
|
98
|
+
```json
|
|
99
|
+
{
|
|
100
|
+
"title": "User Authentication System",
|
|
101
|
+
"priority": "high",
|
|
102
|
+
"status": "todo",
|
|
103
|
+
"description": "Implement JWT-based auth",
|
|
104
|
+
"steps": [
|
|
105
|
+
"Design schema",
|
|
106
|
+
"Implement API",
|
|
107
|
+
"Add tests"
|
|
108
|
+
],
|
|
109
|
+
"track": "auth",
|
|
110
|
+
"agent": "claude"
|
|
111
|
+
}
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
**Response:**
|
|
115
|
+
```json
|
|
116
|
+
{
|
|
117
|
+
"success": true,
|
|
118
|
+
"data": {
|
|
119
|
+
"id": "feat-abc123",
|
|
120
|
+
"title": "User Authentication System",
|
|
121
|
+
"type": "feature",
|
|
122
|
+
"status": "todo",
|
|
123
|
+
"priority": "high",
|
|
124
|
+
"created_at": "2025-01-06T10:30:45.123Z",
|
|
125
|
+
"updated_at": "2025-01-06T10:30:45.123Z",
|
|
126
|
+
"steps": [...],
|
|
127
|
+
"agent": "claude"
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
**Parameters:**
|
|
133
|
+
- `title` (required, string): Feature title
|
|
134
|
+
- `priority` (optional, string): "low", "medium", "high", "critical" (default: "medium")
|
|
135
|
+
- `status` (optional, string): "todo", "in-progress", "blocked", "done" (default: "todo")
|
|
136
|
+
- `description` (optional, string): Feature description
|
|
137
|
+
- `steps` (optional, array): Implementation steps
|
|
138
|
+
- `track` (optional, string): Track identifier
|
|
139
|
+
- `agent` (optional, string): Agent identifier
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
**GET** `/api/features` - List Features
|
|
144
|
+
|
|
145
|
+
Retrieve features with optional filtering.
|
|
146
|
+
|
|
147
|
+
**Query Parameters:**
|
|
148
|
+
- `status` (optional): Filter by status
|
|
149
|
+
- `priority` (optional): Filter by priority
|
|
150
|
+
- `agent` (optional): Filter by assigned agent
|
|
151
|
+
- `track` (optional): Filter by track
|
|
152
|
+
- `limit` (optional): Max results (default: 100)
|
|
153
|
+
- `offset` (optional): Pagination offset (default: 0)
|
|
154
|
+
|
|
155
|
+
**Request:**
|
|
156
|
+
```bash
|
|
157
|
+
GET /api/features?status=todo&priority=high&limit=50
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
**Response:**
|
|
161
|
+
```json
|
|
162
|
+
{
|
|
163
|
+
"success": true,
|
|
164
|
+
"data": {
|
|
165
|
+
"items": [
|
|
166
|
+
{
|
|
167
|
+
"id": "feat-abc123",
|
|
168
|
+
"title": "User Auth",
|
|
169
|
+
"status": "todo",
|
|
170
|
+
"priority": "high",
|
|
171
|
+
...
|
|
172
|
+
}
|
|
173
|
+
],
|
|
174
|
+
"total": 247,
|
|
175
|
+
"limit": 50,
|
|
176
|
+
"offset": 0
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
---
|
|
182
|
+
|
|
183
|
+
**GET** `/api/features/{id}` - Get Feature
|
|
184
|
+
|
|
185
|
+
Retrieve a specific feature.
|
|
186
|
+
|
|
187
|
+
**Request:**
|
|
188
|
+
```bash
|
|
189
|
+
GET /api/features/feat-abc123
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
**Response:**
|
|
193
|
+
```json
|
|
194
|
+
{
|
|
195
|
+
"success": true,
|
|
196
|
+
"data": {
|
|
197
|
+
"id": "feat-abc123",
|
|
198
|
+
"title": "User Authentication System",
|
|
199
|
+
"type": "feature",
|
|
200
|
+
"status": "todo",
|
|
201
|
+
"priority": "high",
|
|
202
|
+
"created_at": "2025-01-06T10:30:45.123Z",
|
|
203
|
+
"updated_at": "2025-01-06T10:30:45.123Z",
|
|
204
|
+
"steps": [
|
|
205
|
+
{
|
|
206
|
+
"description": "Design schema",
|
|
207
|
+
"completed": false,
|
|
208
|
+
"completed_at": null
|
|
209
|
+
},
|
|
210
|
+
{
|
|
211
|
+
"description": "Implement API",
|
|
212
|
+
"completed": false,
|
|
213
|
+
"completed_at": null
|
|
214
|
+
}
|
|
215
|
+
],
|
|
216
|
+
"agent": "claude",
|
|
217
|
+
"edges": {
|
|
218
|
+
"blocks": ["feat-xyz789"],
|
|
219
|
+
"blocked_by": ["feat-def456"]
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
---
|
|
226
|
+
|
|
227
|
+
**PUT** `/api/features/{id}` - Update Feature
|
|
228
|
+
|
|
229
|
+
Update a feature.
|
|
230
|
+
|
|
231
|
+
**Request Body:**
|
|
232
|
+
```json
|
|
233
|
+
{
|
|
234
|
+
"status": "in-progress",
|
|
235
|
+
"priority": "critical",
|
|
236
|
+
"steps": [
|
|
237
|
+
{
|
|
238
|
+
"description": "Design schema",
|
|
239
|
+
"completed": true,
|
|
240
|
+
"completed_at": "2025-01-06T10:30:45.123Z"
|
|
241
|
+
}
|
|
242
|
+
]
|
|
243
|
+
}
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
**Response:**
|
|
247
|
+
```json
|
|
248
|
+
{
|
|
249
|
+
"success": true,
|
|
250
|
+
"data": {
|
|
251
|
+
"id": "feat-abc123",
|
|
252
|
+
"status": "in-progress",
|
|
253
|
+
"priority": "critical",
|
|
254
|
+
"updated_at": "2025-01-06T10:31:15.456Z",
|
|
255
|
+
...
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
---
|
|
261
|
+
|
|
262
|
+
**DELETE** `/api/features/{id}` - Delete Feature
|
|
263
|
+
|
|
264
|
+
Delete a feature.
|
|
265
|
+
|
|
266
|
+
**Request:**
|
|
267
|
+
```bash
|
|
268
|
+
DELETE /api/features/feat-abc123
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
**Response:**
|
|
272
|
+
```json
|
|
273
|
+
{
|
|
274
|
+
"success": true,
|
|
275
|
+
"data": {
|
|
276
|
+
"deleted": true,
|
|
277
|
+
"id": "feat-abc123"
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
```
|
|
281
|
+
|
|
282
|
+
---
|
|
283
|
+
|
|
284
|
+
### `/api/bugs` - Bug Operations
|
|
285
|
+
|
|
286
|
+
Same interface as features. Endpoints:
|
|
287
|
+
- `POST /api/bugs` - Create bug
|
|
288
|
+
- `GET /api/bugs` - List bugs
|
|
289
|
+
- `GET /api/bugs/{id}` - Get bug
|
|
290
|
+
- `PUT /api/bugs/{id}` - Update bug
|
|
291
|
+
- `DELETE /api/bugs/{id}` - Delete bug
|
|
292
|
+
|
|
293
|
+
---
|
|
294
|
+
|
|
295
|
+
### `/api/spikes` - Spike Operations
|
|
296
|
+
|
|
297
|
+
Same interface as features. Endpoints:
|
|
298
|
+
- `POST /api/spikes` - Create spike
|
|
299
|
+
- `GET /api/spikes` - List spikes
|
|
300
|
+
- `GET /api/spikes/{id}` - Get spike
|
|
301
|
+
- `PUT /api/spikes/{id}` - Update spike
|
|
302
|
+
- `DELETE /api/spikes/{id}` - Delete spike
|
|
303
|
+
|
|
304
|
+
---
|
|
305
|
+
|
|
306
|
+
### `/api/chores` - Chore Operations
|
|
307
|
+
|
|
308
|
+
Same interface as features. Endpoints:
|
|
309
|
+
- `POST /api/chores` - Create chore
|
|
310
|
+
- `GET /api/chores` - List chores
|
|
311
|
+
- `GET /api/chores/{id}` - Get chore
|
|
312
|
+
- `PUT /api/chores/{id}` - Update chore
|
|
313
|
+
- `DELETE /api/chores/{id}` - Delete chore
|
|
314
|
+
|
|
315
|
+
---
|
|
316
|
+
|
|
317
|
+
### `/api/tasks` - Task Delegation
|
|
318
|
+
|
|
319
|
+
**POST** `/api/tasks` - Create Task Delegation
|
|
320
|
+
|
|
321
|
+
```json
|
|
322
|
+
{
|
|
323
|
+
"prompt": "Implement user authentication",
|
|
324
|
+
"agent": "coder",
|
|
325
|
+
"task_id": "task-auth-001",
|
|
326
|
+
"status": "pending",
|
|
327
|
+
"priority": "high"
|
|
328
|
+
}
|
|
329
|
+
```
|
|
330
|
+
|
|
331
|
+
**Response:**
|
|
332
|
+
```json
|
|
333
|
+
{
|
|
334
|
+
"success": true,
|
|
335
|
+
"data": {
|
|
336
|
+
"task_id": "task-auth-001",
|
|
337
|
+
"status": "pending",
|
|
338
|
+
"created_at": "2025-01-06T10:30:45.123Z",
|
|
339
|
+
...
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
```
|
|
343
|
+
|
|
344
|
+
---
|
|
345
|
+
|
|
346
|
+
**GET** `/api/tasks` - List Task Delegations
|
|
347
|
+
|
|
348
|
+
**Query Parameters:**
|
|
349
|
+
- `status` (optional): "pending", "in-progress", "completed", "failed"
|
|
350
|
+
- `agent` (optional): Filter by assigned agent
|
|
351
|
+
- `limit` (optional): Max results
|
|
352
|
+
|
|
353
|
+
---
|
|
354
|
+
|
|
355
|
+
**GET** `/api/tasks/{task_id}` - Get Task
|
|
356
|
+
|
|
357
|
+
Retrieve specific task delegation with results.
|
|
358
|
+
|
|
359
|
+
**Response:**
|
|
360
|
+
```json
|
|
361
|
+
{
|
|
362
|
+
"success": true,
|
|
363
|
+
"data": {
|
|
364
|
+
"task_id": "task-auth-001",
|
|
365
|
+
"prompt": "Implement user authentication",
|
|
366
|
+
"agent": "coder",
|
|
367
|
+
"status": "completed",
|
|
368
|
+
"result": {
|
|
369
|
+
"output": "Authentication module implemented...",
|
|
370
|
+
"success": true,
|
|
371
|
+
"tokens_used": 8432
|
|
372
|
+
},
|
|
373
|
+
"created_at": "2025-01-06T10:30:45.123Z",
|
|
374
|
+
"completed_at": "2025-01-06T11:30:45.123Z"
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
```
|
|
378
|
+
|
|
379
|
+
---
|
|
380
|
+
|
|
381
|
+
**PUT** `/api/tasks/{task_id}` - Update Task Status
|
|
382
|
+
|
|
383
|
+
```json
|
|
384
|
+
{
|
|
385
|
+
"status": "in-progress"
|
|
386
|
+
}
|
|
387
|
+
```
|
|
388
|
+
|
|
389
|
+
---
|
|
390
|
+
|
|
391
|
+
### `/api/query` - Advanced Query
|
|
392
|
+
|
|
393
|
+
**POST** `/api/query` - Execute Complex Query
|
|
394
|
+
|
|
395
|
+
For queries beyond simple filtering, use the query endpoint.
|
|
396
|
+
|
|
397
|
+
**Request Body:**
|
|
398
|
+
```json
|
|
399
|
+
{
|
|
400
|
+
"collection": "features",
|
|
401
|
+
"conditions": [
|
|
402
|
+
{
|
|
403
|
+
"field": "status",
|
|
404
|
+
"operator": "eq",
|
|
405
|
+
"value": "todo"
|
|
406
|
+
},
|
|
407
|
+
{
|
|
408
|
+
"field": "priority",
|
|
409
|
+
"operator": "in",
|
|
410
|
+
"value": ["high", "critical"]
|
|
411
|
+
},
|
|
412
|
+
{
|
|
413
|
+
"field": "completion",
|
|
414
|
+
"operator": "lt",
|
|
415
|
+
"value": 50
|
|
416
|
+
}
|
|
417
|
+
],
|
|
418
|
+
"logical_op": "and"
|
|
419
|
+
}
|
|
420
|
+
```
|
|
421
|
+
|
|
422
|
+
**Response:**
|
|
423
|
+
```json
|
|
424
|
+
{
|
|
425
|
+
"success": true,
|
|
426
|
+
"data": {
|
|
427
|
+
"results": [
|
|
428
|
+
{ "id": "feat-001", "title": "...", ... }
|
|
429
|
+
],
|
|
430
|
+
"count": 12
|
|
431
|
+
}
|
|
432
|
+
}
|
|
433
|
+
```
|
|
434
|
+
|
|
435
|
+
**Operators:**
|
|
436
|
+
- `eq` - Equal
|
|
437
|
+
- `ne` - Not equal
|
|
438
|
+
- `gt` - Greater than
|
|
439
|
+
- `gte` - Greater than or equal
|
|
440
|
+
- `lt` - Less than
|
|
441
|
+
- `lte` - Less than or equal
|
|
442
|
+
- `in` - In list
|
|
443
|
+
- `not_in` - Not in list
|
|
444
|
+
- `contains` - String contains
|
|
445
|
+
- `starts_with` - Starts with
|
|
446
|
+
- `ends_with` - Ends with
|
|
447
|
+
- `matches` - Regex match
|
|
448
|
+
|
|
449
|
+
---
|
|
450
|
+
|
|
451
|
+
### `/api/agent-stats` - Agent Statistics
|
|
452
|
+
|
|
453
|
+
**GET** `/api/agent-stats` - Get Agent Statistics
|
|
454
|
+
|
|
455
|
+
Get statistics for all agents.
|
|
456
|
+
|
|
457
|
+
**Response:**
|
|
458
|
+
```json
|
|
459
|
+
{
|
|
460
|
+
"success": true,
|
|
461
|
+
"data": {
|
|
462
|
+
"agents": [
|
|
463
|
+
{
|
|
464
|
+
"agent_id": "claude",
|
|
465
|
+
"total_tasks": 156,
|
|
466
|
+
"completed": 142,
|
|
467
|
+
"in_progress": 8,
|
|
468
|
+
"blocked": 6,
|
|
469
|
+
"completion_rate": 0.91,
|
|
470
|
+
"avg_completion_time_seconds": 3600,
|
|
471
|
+
"specialties": ["python", "architecture", "testing"]
|
|
472
|
+
}
|
|
473
|
+
]
|
|
474
|
+
}
|
|
475
|
+
}
|
|
476
|
+
```
|
|
477
|
+
|
|
478
|
+
---
|
|
479
|
+
|
|
480
|
+
**GET** `/api/agent-stats/{agent_id}` - Get Agent Details
|
|
481
|
+
|
|
482
|
+
Get detailed statistics for specific agent.
|
|
483
|
+
|
|
484
|
+
**Response:**
|
|
485
|
+
```json
|
|
486
|
+
{
|
|
487
|
+
"success": true,
|
|
488
|
+
"data": {
|
|
489
|
+
"agent_id": "claude",
|
|
490
|
+
"total_tasks": 156,
|
|
491
|
+
"by_status": {
|
|
492
|
+
"completed": 142,
|
|
493
|
+
"in_progress": 8,
|
|
494
|
+
"blocked": 6
|
|
495
|
+
},
|
|
496
|
+
"by_priority": {
|
|
497
|
+
"low": 24,
|
|
498
|
+
"medium": 89,
|
|
499
|
+
"high": 35,
|
|
500
|
+
"critical": 8
|
|
501
|
+
},
|
|
502
|
+
"completion_rate": 0.91,
|
|
503
|
+
"avg_completion_time_seconds": 3600,
|
|
504
|
+
"error_rate": 0.03,
|
|
505
|
+
"last_active": "2025-01-06T10:30:45.123Z"
|
|
506
|
+
}
|
|
507
|
+
}
|
|
508
|
+
```
|
|
509
|
+
|
|
510
|
+
---
|
|
511
|
+
|
|
512
|
+
### `/api/analytics` - Analytics
|
|
513
|
+
|
|
514
|
+
**GET** `/api/analytics/work-distribution` - Work Type Distribution
|
|
515
|
+
|
|
516
|
+
```json
|
|
517
|
+
{
|
|
518
|
+
"success": true,
|
|
519
|
+
"data": {
|
|
520
|
+
"feature": 42,
|
|
521
|
+
"bug": 18,
|
|
522
|
+
"spike": 5,
|
|
523
|
+
"chore": 12,
|
|
524
|
+
"epic": 3,
|
|
525
|
+
"total": 80
|
|
526
|
+
}
|
|
527
|
+
}
|
|
528
|
+
```
|
|
529
|
+
|
|
530
|
+
---
|
|
531
|
+
|
|
532
|
+
**GET** `/api/analytics/bottlenecks` - Find Bottlenecks
|
|
533
|
+
|
|
534
|
+
Query Parameters:
|
|
535
|
+
- `limit` (optional): Number of bottlenecks to return (default: 5)
|
|
536
|
+
|
|
537
|
+
```json
|
|
538
|
+
{
|
|
539
|
+
"success": true,
|
|
540
|
+
"data": {
|
|
541
|
+
"bottlenecks": [
|
|
542
|
+
{
|
|
543
|
+
"node_id": "feat-001",
|
|
544
|
+
"title": "Database Schema",
|
|
545
|
+
"blocking_count": 8,
|
|
546
|
+
"blocker_ids": ["feat-002", "feat-003", ...],
|
|
547
|
+
"priority": "critical"
|
|
548
|
+
}
|
|
549
|
+
]
|
|
550
|
+
}
|
|
551
|
+
}
|
|
552
|
+
```
|
|
553
|
+
|
|
554
|
+
---
|
|
555
|
+
|
|
556
|
+
**GET** `/api/analytics/parallel-work` - Get Parallelizable Work
|
|
557
|
+
|
|
558
|
+
Query Parameters:
|
|
559
|
+
- `max_agents` (optional): Max agents to plan for (default: 3)
|
|
560
|
+
|
|
561
|
+
```json
|
|
562
|
+
{
|
|
563
|
+
"success": true,
|
|
564
|
+
"data": {
|
|
565
|
+
"parallel_work": {
|
|
566
|
+
"agent_1": ["feat-001", "feat-002"],
|
|
567
|
+
"agent_2": ["feat-003", "feat-004"],
|
|
568
|
+
"agent_3": ["feat-005"]
|
|
569
|
+
},
|
|
570
|
+
"total_parallelizable": 5,
|
|
571
|
+
"estimated_time_reduction": "33%"
|
|
572
|
+
}
|
|
573
|
+
}
|
|
574
|
+
```
|
|
575
|
+
|
|
576
|
+
---
|
|
577
|
+
|
|
578
|
+
## Error Responses
|
|
579
|
+
|
|
580
|
+
### 400 Bad Request
|
|
581
|
+
|
|
582
|
+
Missing or invalid parameters.
|
|
583
|
+
|
|
584
|
+
```json
|
|
585
|
+
{
|
|
586
|
+
"success": false,
|
|
587
|
+
"error": "Invalid priority value. Must be one of: low, medium, high, critical",
|
|
588
|
+
"error_code": "INVALID_PARAMETER",
|
|
589
|
+
"field": "priority",
|
|
590
|
+
"timestamp": "2025-01-06T10:30:45.123Z"
|
|
591
|
+
}
|
|
592
|
+
```
|
|
593
|
+
|
|
594
|
+
---
|
|
595
|
+
|
|
596
|
+
### 404 Not Found
|
|
597
|
+
|
|
598
|
+
Resource doesn't exist.
|
|
599
|
+
|
|
600
|
+
```json
|
|
601
|
+
{
|
|
602
|
+
"success": false,
|
|
603
|
+
"error": "Feature not found",
|
|
604
|
+
"error_code": "NOT_FOUND",
|
|
605
|
+
"resource": "feature",
|
|
606
|
+
"id": "feat-missing",
|
|
607
|
+
"timestamp": "2025-01-06T10:30:45.123Z"
|
|
608
|
+
}
|
|
609
|
+
```
|
|
610
|
+
|
|
611
|
+
---
|
|
612
|
+
|
|
613
|
+
### 409 Conflict
|
|
614
|
+
|
|
615
|
+
Resource already exists or claim conflict.
|
|
616
|
+
|
|
617
|
+
```json
|
|
618
|
+
{
|
|
619
|
+
"success": false,
|
|
620
|
+
"error": "Feature already claimed by another agent",
|
|
621
|
+
"error_code": "CLAIM_CONFLICT",
|
|
622
|
+
"resource": "feature",
|
|
623
|
+
"id": "feat-abc123",
|
|
624
|
+
"claimed_by": "claude",
|
|
625
|
+
"timestamp": "2025-01-06T10:30:45.123Z"
|
|
626
|
+
}
|
|
627
|
+
```
|
|
628
|
+
|
|
629
|
+
---
|
|
630
|
+
|
|
631
|
+
### 500 Server Error
|
|
632
|
+
|
|
633
|
+
Internal server error.
|
|
634
|
+
|
|
635
|
+
```json
|
|
636
|
+
{
|
|
637
|
+
"success": false,
|
|
638
|
+
"error": "Internal server error",
|
|
639
|
+
"error_code": "INTERNAL_ERROR",
|
|
640
|
+
"details": "Optional error details for debugging",
|
|
641
|
+
"timestamp": "2025-01-06T10:30:45.123Z"
|
|
642
|
+
}
|
|
643
|
+
```
|
|
644
|
+
|
|
645
|
+
---
|
|
646
|
+
|
|
647
|
+
## Pagination
|
|
648
|
+
|
|
649
|
+
List endpoints support pagination via query parameters:
|
|
650
|
+
|
|
651
|
+
```bash
|
|
652
|
+
# Get items 50-99
|
|
653
|
+
GET /api/features?limit=50&offset=50
|
|
654
|
+
|
|
655
|
+
# Get first 10
|
|
656
|
+
GET /api/features?limit=10
|
|
657
|
+
```
|
|
658
|
+
|
|
659
|
+
**Response includes:**
|
|
660
|
+
```json
|
|
661
|
+
{
|
|
662
|
+
"data": {
|
|
663
|
+
"items": [...],
|
|
664
|
+
"total": 247,
|
|
665
|
+
"limit": 50,
|
|
666
|
+
"offset": 50,
|
|
667
|
+
"has_next": true,
|
|
668
|
+
"has_previous": true
|
|
669
|
+
}
|
|
670
|
+
}
|
|
671
|
+
```
|
|
672
|
+
|
|
673
|
+
---
|
|
674
|
+
|
|
675
|
+
## Rate Limiting
|
|
676
|
+
|
|
677
|
+
No rate limiting currently implemented. Clients should implement backoff strategies for large batch operations.
|
|
678
|
+
|
|
679
|
+
---
|
|
680
|
+
|
|
681
|
+
## Authentication
|
|
682
|
+
|
|
683
|
+
Currently no authentication required. In production environments, use a reverse proxy with authentication (e.g., nginx with OAuth2).
|
|
684
|
+
|
|
685
|
+
---
|
|
686
|
+
|
|
687
|
+
## CORS Headers
|
|
688
|
+
|
|
689
|
+
Server includes standard CORS headers:
|
|
690
|
+
```
|
|
691
|
+
Access-Control-Allow-Origin: *
|
|
692
|
+
Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS
|
|
693
|
+
Access-Control-Allow-Headers: Content-Type, Authorization
|
|
694
|
+
```
|
|
695
|
+
|
|
696
|
+
---
|
|
697
|
+
|
|
698
|
+
## Content Type
|
|
699
|
+
|
|
700
|
+
All requests and responses use:
|
|
701
|
+
```
|
|
702
|
+
Content-Type: application/json; charset=utf-8
|
|
703
|
+
```
|
|
704
|
+
|
|
705
|
+
---
|
|
706
|
+
|
|
707
|
+
## Complete Example
|
|
708
|
+
|
|
709
|
+
```bash
|
|
710
|
+
# Create a feature
|
|
711
|
+
curl -X POST http://localhost:8080/api/features \
|
|
712
|
+
-H "Content-Type: application/json" \
|
|
713
|
+
-d '{
|
|
714
|
+
"title": "User Authentication",
|
|
715
|
+
"priority": "high",
|
|
716
|
+
"steps": ["Design", "Implement", "Test"]
|
|
717
|
+
}'
|
|
718
|
+
|
|
719
|
+
# Response:
|
|
720
|
+
# {
|
|
721
|
+
# "success": true,
|
|
722
|
+
# "data": {
|
|
723
|
+
# "id": "feat-abc123",
|
|
724
|
+
# "title": "User Authentication",
|
|
725
|
+
# ...
|
|
726
|
+
# }
|
|
727
|
+
# }
|
|
728
|
+
|
|
729
|
+
# List high priority features
|
|
730
|
+
curl http://localhost:8080/api/features?priority=high
|
|
731
|
+
|
|
732
|
+
# Get specific feature
|
|
733
|
+
curl http://localhost:8080/api/features/feat-abc123
|
|
734
|
+
|
|
735
|
+
# Update feature status
|
|
736
|
+
curl -X PUT http://localhost:8080/api/features/feat-abc123 \
|
|
737
|
+
-H "Content-Type: application/json" \
|
|
738
|
+
-d '{"status": "in-progress"}'
|
|
739
|
+
|
|
740
|
+
# Delete feature
|
|
741
|
+
curl -X DELETE http://localhost:8080/api/features/feat-abc123
|
|
742
|
+
```
|
|
743
|
+
|
|
744
|
+
---
|
|
745
|
+
|
|
746
|
+
## See Also
|
|
747
|
+
|
|
748
|
+
- [SDK API Reference](API_REFERENCE.md) - Python SDK documentation
|
|
749
|
+
- [Orchestration Patterns](ORCHESTRATION_PATTERNS.md) - Multi-agent patterns
|
|
750
|
+
- [Integration Guide](INTEGRATION_GUIDE.md) - Quick start guide
|