#!/usr/bin/env perl

use strict;
use warnings;

use FindBin qw($Bin);
use lib "$Bin/../lib";

use Developer::Dashboard::CLI::Query qw(run_query_command);

# main(@ARGV)
# Runs the JSON query command for Developer Dashboard.
# Input: command-line arguments from @ARGV and optional STDIN.
# Output: prints the selected JSON value, then exits.
run_query_command( command => 'jq', args => \@ARGV );

__END__

=pod

=head1 NAME

jq - JSON query command for Developer Dashboard

=head1 SYNOPSIS

  dashboard jq [path] [file]

=head1 DESCRIPTION

This command provides JSON path extraction for Developer Dashboard.

=for comment FULL-POD-DOC START

=head1 PURPOSE

This staged helper owns the public C<dashboard jq> command. It accepts an
optional dotted JSON path plus an optional input file, then hands the request
to the shared query runtime so parsing, file-vs-STDIN handling, and output
formatting stay consistent with the rest of the dashboard toolchain.

=head1 WHY IT EXISTS

It exists because the dashboard ships a private, repo-local JSON inspection tool instead of depending on a globally installed parser binary. Keeping C<jq> as a staged helper also preserves the thin-switchboard contract in C<bin/dashboard>.

=head1 WHEN TO USE

Use this file when you are changing how C<dashboard jq> chooses between STDIN and files, how it reports parse errors, or how the staged helper is wired into the shared query implementation.

=head1 HOW TO USE

Users run C<dashboard jq [path] [file]>. The staged helper under
F<~/.developer-dashboard/cli/dd/jq> re-enters the shared query runtime, which
parses JSON, accepts the file and path in either order, reads STDIN when no
file is given, prints scalar hits as plain text, and prints the whole parsed
document when the path is C<$d> or C<.>.

=head1 WHAT USES IT

It is used by the public C<dashboard jq> command, by shell snippets that want a runtime-local JSON query tool, by integration smoke runs, and by the focused query-helper coverage under C<t/>.

=head1 EXAMPLES

  printf '{"alpha":{"beta":2}}' | dashboard jq alpha.beta
  dashboard jq response.json '$d'
  dashboard jq '$d' response.json
  printf '{"ok":true}' | dashboard jq ok

=for comment FULL-POD-DOC END

=cut
