Files
zeekay 1b367e2b62 chore: rebase the tree onto upstream master
The tree was a debranded snapshot of upstream taken around 2026-02-20, and
upstream has moved about five months since. This replaces it with upstream
master, mechanically re-derived: bin/debrand does the rename, and the
pipeline and squashed migrations are restored from the shipped tree.

Not a merge. The previous import replaced the tree wholesale in a single
commit, so there is no shared content history to merge against. Reproducing
the rename on the new tree is what actually converges.

What survives: .hanzo/workflows, the Dockerfiles and bin/docker* entrypoints,
compose files, LLM.md, and insights/migrations. The squashed initial
migration is load-bearing — the live database records it by name, so
upstream's ~918 individual migrations cannot come back.

Nine products are dropped as unreferenced. Twenty-one more that we do not run
are kept anyway because the core app still imports them; unpicking those is a
refactor and does not belong in a rebase.

This base does not build yet, and the reasons are not in the rename:
upstream now wants Python 3.13.13 against our 3.12.12 and Django 5.2 against
our 4.2, and the dependency manifests still name upstream packages that we
republish under our own names. Those are decisions, not renames.
2026-08-01 15:44:40 -07:00

248 lines
8.1 KiB
YAML

# MCP tool definition — tool entries are scaffolded from the OpenAPI schema.
# The tool list and operation IDs are kept in sync automatically:
# pnpm --filter=@hanzo/mcp run scaffold-yaml -- --sync-all
#
# To enable a tool, set enabled: true and add required scopes + annotations.
# All other fields (title, description, enrich_url, etc.) are yours to configure.
category: Tracing
feature: tracing
url_prefix: /tracing
ui_apps:
trace-span:
type: detail
view_prop: data
trace-span-list:
type: list
detail_tool: apm-trace-get
detail_args: '{ trace_id: item.trace_id }'
item_name_field: name
click_prop: onSpanClick
tools:
apm-attribute-breakdown:
operation: tracing_spans_attribute_breakdown_create
enabled: true
scopes:
- tracing:read
annotations:
readOnly: true
destructive: false
idempotent: true
title: Break down spans by attribute value
description_file: ./prompts/apm-attribute-breakdown.md
feature_flag: tracing
response:
include:
- results
- compare
apm-attribute-values-list:
operation: tracing_spans_values_retrieve
enabled: true
scopes:
- tracing:read
annotations:
readOnly: true
destructive: false
idempotent: true
title: List tracing attribute values
description: >
List values for a specific span or resource attribute key. Use to discover what values exist for a given
attribute before building filters.
feature_flag: tracing
response:
include:
- results
apm-attributes-list:
operation: tracing_spans_attributes_retrieve
enabled: true
scopes:
- tracing:read
annotations:
readOnly: true
destructive: false
idempotent: true
title: List tracing span attributes
description: >
List available span or resource attribute names. Use attribute_type "span_attribute" for span-level
attributes or "span_resource_attribute" for resource-level attributes (e.g. k8s labels). Use this to
discover available attribute keys before building filters.
feature_flag: tracing
response:
include:
- results
- count
apm-services-list:
operation: tracing_spans_service_names_retrieve
enabled: true
scopes:
- tracing:read
annotations:
readOnly: true
destructive: false
idempotent: true
title: List tracing service names
description: >
List distinct service names that have emitted trace spans. Use to discover available services before
filtering spans by service name.
feature_flag: tracing
response:
include:
- results
apm-spans-aggregate:
operation: tracing_spans_aggregate_create
enabled: true
scopes:
- tracing:read
annotations:
readOnly: true
destructive: false
idempotent: true
title: Aggregate span statistics
description_file: ./prompts/apm-spans-aggregate.md
feature_flag: tracing
response:
include:
- results
- compare
- has_more
- next_offset
apm-spans-count:
operation: tracing_spans_count_create
enabled: true
scopes:
- tracing:read
annotations:
readOnly: true
destructive: false
idempotent: true
title: Count spans
description_file: ./prompts/apm-spans-count.md
feature_flag: tracing
response:
include:
- count
apm-spans-duration-histogram:
operation: tracing_spans_duration_histogram_create
enabled: true
scopes:
- tracing:read
annotations:
readOnly: true
destructive: false
idempotent: true
title: Trace duration distribution (histogram)
description_file: ./prompts/apm-spans-duration-histogram.md
feature_flag: tracing
response:
include:
- results
apm-spans-latency-heatmap:
operation: tracing_spans_latency_heatmap_create
enabled: true
scopes:
- tracing:read
annotations:
readOnly: true
destructive: false
idempotent: true
title: Latency over time (heatmap)
description_file: ./prompts/apm-spans-latency-heatmap.md
feature_flag: tracing
response:
include:
- results
apm-spans-sparkline:
operation: tracing_spans_sparkline_create
enabled: true
scopes:
- tracing:read
annotations:
readOnly: true
destructive: false
idempotent: true
title: Span counts over time (sparkline)
description_file: ./prompts/apm-spans-sparkline.md
feature_flag: tracing
response:
include:
- results
apm-spans-tree:
operation: tracing_spans_tree_create
enabled: true
scopes:
- tracing:read
annotations:
readOnly: true
destructive: false
idempotent: true
title: Aggregate span call tree
description_file: ./prompts/apm-spans-tree.md
feature_flag: tracing
response:
include:
- results
- compare
apm-trace-get:
operation: tracing_spans_trace_create
enabled: true
scopes:
- tracing:read
annotations:
readOnly: true
destructive: false
idempotent: true
enrich_url: ?trace={params.trace_id}
title: Retrieve trace spans
description: >
Fetch all spans for a specific trace by its hex trace ID. Returns the full span tree for the trace including
parent-child relationships, timing, status information, and each span's attributes map. Each span carries
self_time_nano — its duration not covered by child spans — so "where did the wall-clock go" is answered by
sorting on it: a large self_time_nano on a parent span is an uninstrumented gap, not time in any child. Use
this to inspect a specific trace in detail after discovering it via the query tool. Set excludeAttributes to
true to drop the per-span attributes map (which can hold multi-KB values like db.statement) and keep the
payload compact.
ui_app: trace-span-list
feature_flag: tracing
response:
include:
- results
query-apm-spans:
operation: tracing_spans_query_create
enabled: true
scopes:
- tracing:read
annotations:
readOnly: true
destructive: false
idempotent: true
title: Query tracing spans
description_file: ./prompts/query-apm-spans.md
ui_app: trace-span-list
feature_flag: tracing
response:
include:
- results
tracing-spans-has-spans-retrieve:
operation: tracing_spans_has_spans_retrieve
enabled: false
tracing-spans-symbol-stats-create:
operation: tracing_spans_symbol_stats_create
enabled: false
tracing-views-create:
operation: tracing_views_create
enabled: false
tracing-views-destroy:
operation: tracing_views_destroy
enabled: false
tracing-views-list:
operation: tracing_views_list
enabled: false
tracing-views-partial-update:
operation: tracing_views_partial_update
enabled: false
tracing-views-retrieve:
operation: tracing_views_retrieve
enabled: false
tracing-views-update:
operation: tracing_views_update
enabled: false