aurigin-protos 0.2.0__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.
@@ -0,0 +1,36 @@
1
+ # Generated TypeScript code & build artifacts
2
+ gen/ts/src/
3
+ gen/ts/dist/
4
+ gen/ts/node_modules/
5
+ gen/ts/package-lock.json
6
+ gen/ts/*.tgz
7
+
8
+ # Generated Python code & build artifacts
9
+ gen/py/aurigin/
10
+ gen/py/twilio/
11
+ gen/py/dist/
12
+ gen/py/build/
13
+ gen/py/*.egg-info/
14
+
15
+ # Example caches
16
+ examples/typescript/node_modules/
17
+ examples/typescript/package-lock.json
18
+ examples/python/.venv/
19
+
20
+ # Local audio fixtures (shared between python + typescript examples;
21
+ # consumers drop their own .wavs here, not committed)
22
+ examples/audio/*.wav
23
+
24
+ # Local virtualenvs created during ad-hoc testing
25
+ .venv*/
26
+
27
+ # CodeArtifact / npm credentials (created by `aws codeartifact login`)
28
+ .npmrc
29
+ .pypirc
30
+
31
+ # Misc
32
+ __pycache__/
33
+ *.pyc
34
+ .DS_Store
35
+ .idea/
36
+ .vscode/
@@ -0,0 +1,52 @@
1
+ Metadata-Version: 2.4
2
+ Name: aurigin-protos
3
+ Version: 0.2.0
4
+ Summary: Generated gRPC Python stubs for Aurigin services
5
+ Requires-Python: >=3.10
6
+ Requires-Dist: grpcio>=1.62
7
+ Requires-Dist: protobuf>=4.25
8
+ Description-Content-Type: text/markdown
9
+
10
+ # aurigin-protos
11
+
12
+ Generated gRPC Python stubs for Aurigin services. Built from [`aurigin-protos`](https://github.com/Aurigin-ai/aurigin-protos) using buf's `protocolbuffers/python` and `grpc/python` remote plugins (standard `protoc-gen-python` + `grpc_python_plugin`).
13
+
14
+ ## Install (with `uv`)
15
+
16
+ ```bash
17
+ uv pip install aurigin-protos
18
+ ```
19
+
20
+ Ships with PEP 740 sigstore attestations — `pip 24.2+` verifies them automatically against the tagged commit on the repository's `publish-public.yml` workflow.
21
+
22
+ Aurigin services that need a pre-promotion (release-candidate) version can install from the internal AWS CodeArtifact mirror under the same name; see the [`infra/aws/`](https://github.com/Aurigin-ai/aurigin-protos/tree/main/infra/aws) runbook in the repo for the connection details.
23
+
24
+ ## Usage
25
+
26
+ ```python
27
+ import grpc
28
+ from aurigin.deepfake_detection.v1 import deepfake_detection_pb2 as pb
29
+ from aurigin.deepfake_detection.v1 import deepfake_detection_pb2_grpc as pb_grpc
30
+
31
+ with grpc.insecure_channel("localhost:50051") as channel:
32
+ stub = pb_grpc.DeepfakeDetectionStub(channel)
33
+ # DetectDeepfake is bidi-streaming — see examples/python/client.py for a runnable demo.
34
+ ```
35
+
36
+ Server-side: subclass `pb_grpc.DeepfakeDetectionServicer` and register with `add_DeepfakeDetectionServicer_to_server`.
37
+
38
+ ## Layout
39
+
40
+ Proto packages map 1:1 to Python import paths. Each `.proto` file produces two modules:
41
+
42
+ - `<package_path>.<file>_pb2` — message classes
43
+ - `<package_path>.<file>_pb2_grpc` — service stub + servicer base class
44
+
45
+ Currently published modules:
46
+
47
+ - `aurigin.deepfake_detection.v1.deepfake_detection_pb2[_grpc]`
48
+ - `twilio.tme.extensions.common.v1.audio_buffer_pb2` (vendored Twilio Media Extensions message — no service)
49
+
50
+ ## Source
51
+
52
+ This package is generated. To add or change a service, edit the `.proto` files in [aurigin-protos](https://github.com/Aurigin-ai/aurigin-protos), tag a release (`git tag v<x.y.z> && git push --tags`); `publish-codeartifact.yml` ships to the internal CodeArtifact channel automatically, and `publish-public.yml` promotes the same version to public pypi.org on manual dispatch. For local dry-runs, `make publish-py-codeartifact`.
@@ -0,0 +1,43 @@
1
+ # aurigin-protos
2
+
3
+ Generated gRPC Python stubs for Aurigin services. Built from [`aurigin-protos`](https://github.com/Aurigin-ai/aurigin-protos) using buf's `protocolbuffers/python` and `grpc/python` remote plugins (standard `protoc-gen-python` + `grpc_python_plugin`).
4
+
5
+ ## Install (with `uv`)
6
+
7
+ ```bash
8
+ uv pip install aurigin-protos
9
+ ```
10
+
11
+ Ships with PEP 740 sigstore attestations — `pip 24.2+` verifies them automatically against the tagged commit on the repository's `publish-public.yml` workflow.
12
+
13
+ Aurigin services that need a pre-promotion (release-candidate) version can install from the internal AWS CodeArtifact mirror under the same name; see the [`infra/aws/`](https://github.com/Aurigin-ai/aurigin-protos/tree/main/infra/aws) runbook in the repo for the connection details.
14
+
15
+ ## Usage
16
+
17
+ ```python
18
+ import grpc
19
+ from aurigin.deepfake_detection.v1 import deepfake_detection_pb2 as pb
20
+ from aurigin.deepfake_detection.v1 import deepfake_detection_pb2_grpc as pb_grpc
21
+
22
+ with grpc.insecure_channel("localhost:50051") as channel:
23
+ stub = pb_grpc.DeepfakeDetectionStub(channel)
24
+ # DetectDeepfake is bidi-streaming — see examples/python/client.py for a runnable demo.
25
+ ```
26
+
27
+ Server-side: subclass `pb_grpc.DeepfakeDetectionServicer` and register with `add_DeepfakeDetectionServicer_to_server`.
28
+
29
+ ## Layout
30
+
31
+ Proto packages map 1:1 to Python import paths. Each `.proto` file produces two modules:
32
+
33
+ - `<package_path>.<file>_pb2` — message classes
34
+ - `<package_path>.<file>_pb2_grpc` — service stub + servicer base class
35
+
36
+ Currently published modules:
37
+
38
+ - `aurigin.deepfake_detection.v1.deepfake_detection_pb2[_grpc]`
39
+ - `twilio.tme.extensions.common.v1.audio_buffer_pb2` (vendored Twilio Media Extensions message — no service)
40
+
41
+ ## Source
42
+
43
+ This package is generated. To add or change a service, edit the `.proto` files in [aurigin-protos](https://github.com/Aurigin-ai/aurigin-protos), tag a release (`git tag v<x.y.z> && git push --tags`); `publish-codeartifact.yml` ships to the internal CodeArtifact channel automatically, and `publish-public.yml` promotes the same version to public pypi.org on manual dispatch. For local dry-runs, `make publish-py-codeartifact`.
File without changes
@@ -0,0 +1,51 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # NO CHECKED-IN PROTOBUF GENCODE
4
+ # source: aurigin/deepfake_detection/v1/deepfake_detection.proto
5
+ # Protobuf Python Version: 7.35.1
6
+ """Generated protocol buffer code."""
7
+ from google.protobuf import descriptor as _descriptor
8
+ from google.protobuf import descriptor_pool as _descriptor_pool
9
+ from google.protobuf import runtime_version as _runtime_version
10
+ from google.protobuf import symbol_database as _symbol_database
11
+ from google.protobuf.internal import builder as _builder
12
+ _runtime_version.ValidateProtobufRuntimeVersion(
13
+ _runtime_version.Domain.PUBLIC,
14
+ 7,
15
+ 35,
16
+ 1,
17
+ '',
18
+ 'aurigin/deepfake_detection/v1/deepfake_detection.proto'
19
+ )
20
+ # @@protoc_insertion_point(imports)
21
+
22
+ _sym_db = _symbol_database.Default()
23
+
24
+
25
+ from twilio.tme.extensions.common.v1 import audio_buffer_pb2 as twilio_dot_tme_dot_extensions_dot_common_dot_v1_dot_audio__buffer__pb2
26
+
27
+
28
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n6aurigin/deepfake_detection/v1/deepfake_detection.proto\x12\x1d\x61urigin.deepfake_detection.v1\x1a\x32twilio/tme/extensions/common/v1/audio_buffer.proto\"n\n\x14\x43reateSessionRequest\x12K\n\x06\x63onfig\x18\x01 \x01(\x0b\x32..aurigin.deepfake_detection.v1.DetectionConfigH\x00R\x06\x63onfig\x88\x01\x01\x42\t\n\x07_config\"\xd5\x01\n\x15\x44\x65tectDeepfakeRequest\x12k\n\x16\x63reate_session_request\x18\x01 \x01(\x0b\x32\x33.aurigin.deepfake_detection.v1.CreateSessionRequestH\x00R\x14\x63reateSessionRequest\x12\x44\n\x05\x61udio\x18\x02 \x01(\x0b\x32,.twilio.tme.extensions.common.v1.AudioBufferH\x00R\x05\x61udioB\t\n\x07request\"\xbf\x02\n\x16\x44\x65tectDeepfakeResponse\x12n\n\x17\x63reate_session_response\x18\x01 \x01(\x0b\x32\x34.aurigin.deepfake_detection.v1.CreateSessionResponseH\x00R\x15\x63reateSessionResponse\x12X\n\x0f\x61nalysis_result\x18\x02 \x01(\x0b\x32-.aurigin.deepfake_detection.v1.AnalysisResultH\x00R\x0e\x61nalysisResult\x12O\n\x0c\x66inal_result\x18\x03 \x01(\x0b\x32*.aurigin.deepfake_detection.v1.FinalResultH\x00R\x0b\x66inalResultB\n\n\x08response\"6\n\x15\x43reateSessionResponse\x12\x1d\n\nsession_id\x18\x01 \x01(\tR\tsessionId\"\x9a\x01\n\x0f\x44\x65tectionConfig\x12\x33\n\x13\x61nalysis_interval_s\x18\x01 \x01(\x02H\x00R\x11\x61nalysisIntervalS\x88\x01\x01\x12(\n\rmodel_version\x18\x02 \x01(\tH\x01R\x0cmodelVersion\x88\x01\x01\x42\x16\n\x14_analysis_interval_sB\x10\n\x0e_model_version\"\xa5\x01\n\x0e\x41nalysisResult\x12&\n\x0f\x61udio_offset_ms\x18\x01 \x01(\x03R\raudioOffsetMs\x12\x1f\n\x0b\x64uration_ms\x18\x02 \x01(\x03R\ndurationMs\x12\x14\n\x05score\x18\x03 \x01(\x02R\x05score\x12\x14\n\x05label\x18\x04 \x01(\tR\x05label\x12\x1e\n\nconfidence\x18\x05 \x01(\x02R\nconfidence\"\xa4\x01\n\x0b\x46inalResult\x12$\n\x0etotal_audio_ms\x18\x01 \x01(\x03R\x0ctotalAudioMs\x12#\n\roverall_score\x18\x02 \x01(\x02R\x0coverallScore\x12#\n\roverall_label\x18\x03 \x01(\tR\x0coverallLabel\x12%\n\x0e\x61nalysis_count\x18\x04 \x01(\x05R\ranalysisCount2\x97\x01\n\x11\x44\x65\x65pfakeDetection\x12\x81\x01\n\x0e\x44\x65tectDeepfake\x12\x34.aurigin.deepfake_detection.v1.DetectDeepfakeRequest\x1a\x35.aurigin.deepfake_detection.v1.DetectDeepfakeResponse(\x01\x30\x01\x62\x06proto3')
29
+
30
+ _globals = globals()
31
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
32
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'aurigin.deepfake_detection.v1.deepfake_detection_pb2', _globals)
33
+ if not _descriptor._USE_C_DESCRIPTORS:
34
+ DESCRIPTOR._loaded_options = None
35
+ _globals['_CREATESESSIONREQUEST']._serialized_start=141
36
+ _globals['_CREATESESSIONREQUEST']._serialized_end=251
37
+ _globals['_DETECTDEEPFAKEREQUEST']._serialized_start=254
38
+ _globals['_DETECTDEEPFAKEREQUEST']._serialized_end=467
39
+ _globals['_DETECTDEEPFAKERESPONSE']._serialized_start=470
40
+ _globals['_DETECTDEEPFAKERESPONSE']._serialized_end=789
41
+ _globals['_CREATESESSIONRESPONSE']._serialized_start=791
42
+ _globals['_CREATESESSIONRESPONSE']._serialized_end=845
43
+ _globals['_DETECTIONCONFIG']._serialized_start=848
44
+ _globals['_DETECTIONCONFIG']._serialized_end=1002
45
+ _globals['_ANALYSISRESULT']._serialized_start=1005
46
+ _globals['_ANALYSISRESULT']._serialized_end=1170
47
+ _globals['_FINALRESULT']._serialized_start=1173
48
+ _globals['_FINALRESULT']._serialized_end=1337
49
+ _globals['_DEEPFAKEDETECTION']._serialized_start=1340
50
+ _globals['_DEEPFAKEDETECTION']._serialized_end=1491
51
+ # @@protoc_insertion_point(module_scope)
@@ -0,0 +1,114 @@
1
+ # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
2
+ """Client and server classes corresponding to protobuf-defined services."""
3
+ import grpc
4
+
5
+ from aurigin.deepfake_detection.v1 import deepfake_detection_pb2 as aurigin_dot_deepfake__detection_dot_v1_dot_deepfake__detection__pb2
6
+
7
+
8
+ class DeepfakeDetectionStub:
9
+ """Deepfake Detection Service.
10
+
11
+ Analyzes a continuous audio stream and emits deepfake detection results.
12
+ Audio is sent as raw PCM buffers and analyzed in rolling windows.
13
+
14
+ Session Lifecycle:
15
+ 1. Client sends CreateSessionRequest with optional configuration
16
+ 2. Server responds with CreateSessionResponse containing session_id
17
+ 3. Client streams AudioBuffer messages continuously
18
+ 4. Server emits AnalysisResult events as each window is analyzed
19
+ 5. On stream end, server emits a FinalResult with aggregate stats
20
+
21
+ """
22
+
23
+ def __init__(self, channel):
24
+ """Constructor.
25
+
26
+ Args:
27
+ channel: A grpc.Channel.
28
+ """
29
+ self.DetectDeepfake = channel.stream_stream(
30
+ '/aurigin.deepfake_detection.v1.DeepfakeDetection/DetectDeepfake',
31
+ request_serializer=aurigin_dot_deepfake__detection_dot_v1_dot_deepfake__detection__pb2.DetectDeepfakeRequest.SerializeToString,
32
+ response_deserializer=aurigin_dot_deepfake__detection_dot_v1_dot_deepfake__detection__pb2.DetectDeepfakeResponse.FromString,
33
+ _registered_method=True)
34
+
35
+
36
+ class DeepfakeDetectionServicer:
37
+ """Deepfake Detection Service.
38
+
39
+ Analyzes a continuous audio stream and emits deepfake detection results.
40
+ Audio is sent as raw PCM buffers and analyzed in rolling windows.
41
+
42
+ Session Lifecycle:
43
+ 1. Client sends CreateSessionRequest with optional configuration
44
+ 2. Server responds with CreateSessionResponse containing session_id
45
+ 3. Client streams AudioBuffer messages continuously
46
+ 4. Server emits AnalysisResult events as each window is analyzed
47
+ 5. On stream end, server emits a FinalResult with aggregate stats
48
+
49
+ """
50
+
51
+ def DetectDeepfake(self, request_iterator, context):
52
+ """Bidirectional streaming RPC for real-time deepfake detection.
53
+ """
54
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
55
+ context.set_details('Method not implemented!')
56
+ raise NotImplementedError('Method not implemented!')
57
+
58
+
59
+ def add_DeepfakeDetectionServicer_to_server(servicer, server):
60
+ rpc_method_handlers = {
61
+ 'DetectDeepfake': grpc.stream_stream_rpc_method_handler(
62
+ servicer.DetectDeepfake,
63
+ request_deserializer=aurigin_dot_deepfake__detection_dot_v1_dot_deepfake__detection__pb2.DetectDeepfakeRequest.FromString,
64
+ response_serializer=aurigin_dot_deepfake__detection_dot_v1_dot_deepfake__detection__pb2.DetectDeepfakeResponse.SerializeToString,
65
+ ),
66
+ }
67
+ generic_handler = grpc.method_handlers_generic_handler(
68
+ 'aurigin.deepfake_detection.v1.DeepfakeDetection', rpc_method_handlers)
69
+ server.add_generic_rpc_handlers((generic_handler,))
70
+ server.add_registered_method_handlers('aurigin.deepfake_detection.v1.DeepfakeDetection', rpc_method_handlers)
71
+
72
+
73
+ # This class is part of an EXPERIMENTAL API.
74
+ class DeepfakeDetection:
75
+ """Deepfake Detection Service.
76
+
77
+ Analyzes a continuous audio stream and emits deepfake detection results.
78
+ Audio is sent as raw PCM buffers and analyzed in rolling windows.
79
+
80
+ Session Lifecycle:
81
+ 1. Client sends CreateSessionRequest with optional configuration
82
+ 2. Server responds with CreateSessionResponse containing session_id
83
+ 3. Client streams AudioBuffer messages continuously
84
+ 4. Server emits AnalysisResult events as each window is analyzed
85
+ 5. On stream end, server emits a FinalResult with aggregate stats
86
+
87
+ """
88
+
89
+ @staticmethod
90
+ def DetectDeepfake(request_iterator,
91
+ target,
92
+ options=(),
93
+ channel_credentials=None,
94
+ call_credentials=None,
95
+ insecure=False,
96
+ compression=None,
97
+ wait_for_ready=None,
98
+ timeout=None,
99
+ metadata=None):
100
+ return grpc.experimental.stream_stream(
101
+ request_iterator,
102
+ target,
103
+ '/aurigin.deepfake_detection.v1.DeepfakeDetection/DetectDeepfake',
104
+ aurigin_dot_deepfake__detection_dot_v1_dot_deepfake__detection__pb2.DetectDeepfakeRequest.SerializeToString,
105
+ aurigin_dot_deepfake__detection_dot_v1_dot_deepfake__detection__pb2.DetectDeepfakeResponse.FromString,
106
+ options,
107
+ channel_credentials,
108
+ insecure,
109
+ call_credentials,
110
+ compression,
111
+ wait_for_ready,
112
+ timeout,
113
+ metadata,
114
+ _registered_method=True)
@@ -0,0 +1,17 @@
1
+ [build-system]
2
+ requires = ["hatchling"]
3
+ build-backend = "hatchling.build"
4
+
5
+ [project]
6
+ name = "aurigin-protos"
7
+ version = "0.2.0"
8
+ description = "Generated gRPC Python stubs for Aurigin services"
9
+ readme = "README.md"
10
+ requires-python = ">=3.10"
11
+ dependencies = [
12
+ "grpcio>=1.62",
13
+ "protobuf>=4.25",
14
+ ]
15
+
16
+ [tool.hatch.build.targets.wheel]
17
+ packages = ["aurigin", "twilio"]
File without changes
File without changes
File without changes
@@ -0,0 +1,37 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # NO CHECKED-IN PROTOBUF GENCODE
4
+ # source: twilio/tme/extensions/common/v1/audio_buffer.proto
5
+ # Protobuf Python Version: 7.35.1
6
+ """Generated protocol buffer code."""
7
+ from google.protobuf import descriptor as _descriptor
8
+ from google.protobuf import descriptor_pool as _descriptor_pool
9
+ from google.protobuf import runtime_version as _runtime_version
10
+ from google.protobuf import symbol_database as _symbol_database
11
+ from google.protobuf.internal import builder as _builder
12
+ _runtime_version.ValidateProtobufRuntimeVersion(
13
+ _runtime_version.Domain.PUBLIC,
14
+ 7,
15
+ 35,
16
+ 1,
17
+ '',
18
+ 'twilio/tme/extensions/common/v1/audio_buffer.proto'
19
+ )
20
+ # @@protoc_insertion_point(imports)
21
+
22
+ _sym_db = _symbol_database.Default()
23
+
24
+
25
+
26
+
27
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n2twilio/tme/extensions/common/v1/audio_buffer.proto\x12\x1ftwilio.tme.extensions.common.v1\"\xcd\x01\n\x0b\x41udioBuffer\x12\x12\n\x04type\x18\x01 \x01(\tR\x04type\x12\x16\n\x06\x66ormat\x18\x02 \x01(\tR\x06\x66ormat\x12\x1a\n\x08\x63hannels\x18\x03 \x01(\x05R\x08\x63hannels\x12\x12\n\x04rate\x18\x04 \x01(\x05R\x04rate\x12\x1f\n\x0b\x64uration_ns\x18\x05 \x01(\x04R\ndurationNs\x12\x15\n\x06pts_ns\x18\x06 \x01(\x04R\x05ptsNs\x12\x12\n\x04size\x18\x07 \x01(\x04R\x04size\x12\x16\n\x06\x62uffer\x18\x08 \x01(\x0cR\x06\x62ufferB9\n#com.twilio.tme.extensions.common.v1B\x10\x41udioBufferProtoP\x01\x62\x06proto3')
28
+
29
+ _globals = globals()
30
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
31
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'twilio.tme.extensions.common.v1.audio_buffer_pb2', _globals)
32
+ if not _descriptor._USE_C_DESCRIPTORS:
33
+ _globals['DESCRIPTOR']._loaded_options = None
34
+ _globals['DESCRIPTOR']._serialized_options = b'\n#com.twilio.tme.extensions.common.v1B\020AudioBufferProtoP\001'
35
+ _globals['_AUDIOBUFFER']._serialized_start=88
36
+ _globals['_AUDIOBUFFER']._serialized_end=293
37
+ # @@protoc_insertion_point(module_scope)
@@ -0,0 +1,4 @@
1
+ # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
2
+ """Client and server classes corresponding to protobuf-defined services."""
3
+ import grpc
4
+