buildai-cli 0.3.96__tar.gz → 0.3.97__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.
- {buildai_cli-0.3.96 → buildai_cli-0.3.97}/PKG-INFO +1 -1
- {buildai_cli-0.3.96 → buildai_cli-0.3.97}/cli/commands/ego_frame_search.py +59 -0
- {buildai_cli-0.3.96 → buildai_cli-0.3.97}/pyproject.toml +1 -1
- {buildai_cli-0.3.96 → buildai_cli-0.3.97}/.gitignore +0 -0
- {buildai_cli-0.3.96 → buildai_cli-0.3.97}/AGENTS.md +0 -0
- {buildai_cli-0.3.96 → buildai_cli-0.3.97}/CLAUDE.md +0 -0
- {buildai_cli-0.3.96 → buildai_cli-0.3.97}/buildai_bootstrap.py +0 -0
- {buildai_cli-0.3.96 → buildai_cli-0.3.97}/cli/__init__.py +0 -0
- {buildai_cli-0.3.96 → buildai_cli-0.3.97}/cli/_has_core.py +0 -0
- {buildai_cli-0.3.96 → buildai_cli-0.3.97}/cli/auth_local.py +0 -0
- {buildai_cli-0.3.96 → buildai_cli-0.3.97}/cli/commands/__init__.py +0 -0
- {buildai_cli-0.3.96 → buildai_cli-0.3.97}/cli/commands/api_proxy.py +0 -0
- {buildai_cli-0.3.96 → buildai_cli-0.3.97}/cli/commands/auth.py +0 -0
- {buildai_cli-0.3.96 → buildai_cli-0.3.97}/cli/commands/db/__init__.py +0 -0
- {buildai_cli-0.3.96 → buildai_cli-0.3.97}/cli/commands/db/broker.py +0 -0
- {buildai_cli-0.3.96 → buildai_cli-0.3.97}/cli/commands/db/common.py +0 -0
- {buildai_cli-0.3.96 → buildai_cli-0.3.97}/cli/commands/db/migrate.py +0 -0
- {buildai_cli-0.3.96 → buildai_cli-0.3.97}/cli/commands/db/query.py +0 -0
- {buildai_cli-0.3.96 → buildai_cli-0.3.97}/cli/commands/db/schema.py +0 -0
- {buildai_cli-0.3.96 → buildai_cli-0.3.97}/cli/commands/db/status.py +0 -0
- {buildai_cli-0.3.96 → buildai_cli-0.3.97}/cli/commands/db/tunnel.py +0 -0
- {buildai_cli-0.3.96 → buildai_cli-0.3.97}/cli/commands/dev.py +0 -0
- {buildai_cli-0.3.96 → buildai_cli-0.3.97}/cli/commands/doctor.py +0 -0
- {buildai_cli-0.3.96 → buildai_cli-0.3.97}/cli/commands/egoexo.py +0 -0
- {buildai_cli-0.3.96 → buildai_cli-0.3.97}/cli/commands/gigcamera.py +0 -0
- {buildai_cli-0.3.96 → buildai_cli-0.3.97}/cli/commands/grid.py +0 -0
- {buildai_cli-0.3.96 → buildai_cli-0.3.97}/cli/commands/ingest.py +0 -0
- {buildai_cli-0.3.96 → buildai_cli-0.3.97}/cli/commands/ingest_docs.py +0 -0
- {buildai_cli-0.3.96 → buildai_cli-0.3.97}/cli/commands/processing.py +0 -0
- {buildai_cli-0.3.96 → buildai_cli-0.3.97}/cli/commands/spec.py +0 -0
- {buildai_cli-0.3.96 → buildai_cli-0.3.97}/cli/commands/spec_pr.py +0 -0
- {buildai_cli-0.3.96 → buildai_cli-0.3.97}/cli/config.py +0 -0
- {buildai_cli-0.3.96 → buildai_cli-0.3.97}/cli/console.py +0 -0
- {buildai_cli-0.3.96 → buildai_cli-0.3.97}/cli/context.py +0 -0
- {buildai_cli-0.3.96 → buildai_cli-0.3.97}/cli/db_broker.py +0 -0
- {buildai_cli-0.3.96 → buildai_cli-0.3.97}/cli/guard.py +0 -0
- {buildai_cli-0.3.96 → buildai_cli-0.3.97}/cli/internal_api.py +0 -0
- {buildai_cli-0.3.96 → buildai_cli-0.3.97}/cli/main.py +0 -0
- {buildai_cli-0.3.96 → buildai_cli-0.3.97}/cli/nl_query/__init__.py +0 -0
- {buildai_cli-0.3.96 → buildai_cli-0.3.97}/cli/nl_query/dataset_tools.py +0 -0
- {buildai_cli-0.3.96 → buildai_cli-0.3.97}/cli/ops_init.py +0 -0
- {buildai_cli-0.3.96 → buildai_cli-0.3.97}/cli/output.py +0 -0
- {buildai_cli-0.3.96 → buildai_cli-0.3.97}/cli/pagination.py +0 -0
|
@@ -1008,6 +1008,65 @@ def membership_gigcamera(
|
|
|
1008
1008
|
asyncio.run(run())
|
|
1009
1009
|
|
|
1010
1010
|
|
|
1011
|
+
@app.command("sampled-frames-from-vectors")
|
|
1012
|
+
def sampled_frames_from_vectors(
|
|
1013
|
+
ctx: typer.Context,
|
|
1014
|
+
frame_uri_prefix: str = typer.Option(
|
|
1015
|
+
...,
|
|
1016
|
+
"--frame-uri-prefix",
|
|
1017
|
+
help="Frame-jpg GCS URI prefix to materialize as sampled frames.",
|
|
1018
|
+
),
|
|
1019
|
+
clip_id: list[UUID] = typer.Option(
|
|
1020
|
+
[],
|
|
1021
|
+
"--clip-id",
|
|
1022
|
+
help="Core clip id to include. Repeatable.",
|
|
1023
|
+
),
|
|
1024
|
+
clip_id_file: Path | None = typer.Option(
|
|
1025
|
+
None,
|
|
1026
|
+
"--clip-id-file",
|
|
1027
|
+
exists=True,
|
|
1028
|
+
file_okay=True,
|
|
1029
|
+
dir_okay=False,
|
|
1030
|
+
readable=True,
|
|
1031
|
+
help="Newline-delimited core clip ids to include.",
|
|
1032
|
+
),
|
|
1033
|
+
space_id: int | None = typer.Option(None, "--space-id", help="Target embedding space id."),
|
|
1034
|
+
space_key: str | None = typer.Option(None, "--space-key"),
|
|
1035
|
+
selection_kind: str = typer.Option("near_90s", "--selection-kind"),
|
|
1036
|
+
limit: int | None = typer.Option(None, "--limit", min=1, help="Cap candidate clips."),
|
|
1037
|
+
write: bool = typer.Option(False, "--write", help="Insert missing sampled-frame rows."),
|
|
1038
|
+
format: Format = format_option(),
|
|
1039
|
+
) -> None:
|
|
1040
|
+
"""Dry-run or materialize sampled-frame anchors from existing frame vectors."""
|
|
1041
|
+
_require_internal_admin_for_write(ctx, write=write)
|
|
1042
|
+
settings = _settings_for_command(ctx, write=write)
|
|
1043
|
+
|
|
1044
|
+
async def run() -> None:
|
|
1045
|
+
from dal.embeddings import ego_frame_search as ego_search_dal
|
|
1046
|
+
|
|
1047
|
+
async with get_cli_context(settings, profile=(ctx.obj or {}).get("cli_profile")) as (
|
|
1048
|
+
_db,
|
|
1049
|
+
dal_ctx,
|
|
1050
|
+
):
|
|
1051
|
+
target_space_id = await _resolve_space_id(
|
|
1052
|
+
dal_ctx,
|
|
1053
|
+
space_id=space_id,
|
|
1054
|
+
space_key=space_key,
|
|
1055
|
+
)
|
|
1056
|
+
summary = await ego_search_dal.materialize_sampled_frames_from_existing_vectors(
|
|
1057
|
+
dal_ctx,
|
|
1058
|
+
target_space_id=target_space_id,
|
|
1059
|
+
frame_uri_prefix=frame_uri_prefix,
|
|
1060
|
+
clip_ids=_clip_ids_from_options(clip_id, clip_id_file, limit=None),
|
|
1061
|
+
selection_kind=selection_kind,
|
|
1062
|
+
limit=limit,
|
|
1063
|
+
write=write,
|
|
1064
|
+
)
|
|
1065
|
+
render(_plain(summary), format=format)
|
|
1066
|
+
|
|
1067
|
+
asyncio.run(run())
|
|
1068
|
+
|
|
1069
|
+
|
|
1011
1070
|
@app.command("membership-dataset")
|
|
1012
1071
|
def membership_dataset(
|
|
1013
1072
|
ctx: typer.Context,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|