blue-assistant 4.178.1__py3-none-any.whl → 4.194.1__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.
@@ -2,5 +2,4 @@
2
2
 
3
3
  alias @assistant=blue_assistant
4
4
 
5
-
6
-
5
+ alias @hue=blue_assistant_hue
@@ -0,0 +1,11 @@
1
+ #! /usr/bin/env bash
2
+
3
+ function blue_assistant_hue_set() {
4
+ local options=$1
5
+ local do_dryrun=$(abcli_option_int "$options" dryrun 0)
6
+
7
+ abcli_eval dryrun=$do_dryrun \
8
+ python3 -m blue_assistant.script.repository.hue \
9
+ set \
10
+ "${@:2}"
11
+ }
@@ -0,0 +1,15 @@
1
+ #! /usr/bin/env bash
2
+
3
+ function blue_assistant_hue() {
4
+ local task=$(abcli_unpack_keyword $1 help)
5
+
6
+ local function_name=blue_assistant_hue_$task
7
+ if [[ $(type -t $function_name) == "function" ]]; then
8
+ $function_name "${@:2}"
9
+ return
10
+ fi
11
+
12
+ python3 -m blue_assistant.hue "$@"
13
+ }
14
+
15
+ abcli_source_caller_suffix_path /hue
@@ -26,6 +26,9 @@ function test_blue_assistant_help() {
26
26
  "@assistant web" \
27
27
  "@assistant web crawl" \
28
28
  \
29
+ "@hue" \
30
+ "@hue set" \
31
+ \
29
32
  "blue_assistant"; do
30
33
  abcli_eval ,$options \
31
34
  abcli_help $module
@@ -4,7 +4,7 @@ ICON = "🧠"
4
4
 
5
5
  DESCRIPTION = f"{ICON} An AI Assistant."
6
6
 
7
- VERSION = "4.178.1"
7
+ VERSION = "4.194.1"
8
8
 
9
9
  REPO_NAME = "blue-assistant"
10
10
 
blue_assistant/config.env CHANGED
@@ -3,4 +3,6 @@ BLUE_ASSISTANT_TEXT_MAX_TOKENS=2000
3
3
 
4
4
  BLUE_ASSISTANT_IMAGE_DEFAULT_MODEL=dall-e-3
5
5
  BLUE_ASSISTANT_IMAGE_DEFAULT_QUALITY=standard
6
- BLUE_ASSISTANT_IMAGE_DEFAULT_SIZE=1024x1024
6
+ BLUE_ASSISTANT_IMAGE_DEFAULT_SIZE=1024x1024
7
+
8
+ HUE_BRIDGE_IP_ADDRESS=192.168.1.95
blue_assistant/env.py CHANGED
@@ -1,33 +1,17 @@
1
- import os
2
- from blue_options.env import load_config, load_env
1
+ from blue_options.env import load_config, load_env, get_env
3
2
 
4
3
  load_env(__name__)
5
4
  load_config(__name__)
6
5
 
7
6
 
8
- BLUE_ASSISTANT_TEXT_DEFAULT_MODEL = os.getenv(
9
- "BLUE_ASSISTANT_TEXT_DEFAULT_MODEL",
10
- "",
11
- )
7
+ BLUE_ASSISTANT_TEXT_DEFAULT_MODEL = get_env("BLUE_ASSISTANT_TEXT_DEFAULT_MODEL")
12
8
 
13
- BLUE_ASSISTANT_TEXT_MAX_TOKENS_str = os.getenv("BLUE_ASSISTANT_TEXT_MAX_TOKENS", "")
14
- try:
15
- BLUE_ASSISTANT_TEXT_MAX_TOKENS = int(BLUE_ASSISTANT_TEXT_MAX_TOKENS_str)
16
- except Exception:
17
- BLUE_ASSISTANT_TEXT_MAX_TOKENS = 2000
9
+ BLUE_ASSISTANT_TEXT_MAX_TOKENS = get_env("BLUE_ASSISTANT_TEXT_MAX_TOKENS", 2000)
18
10
 
11
+ BLUE_ASSISTANT_IMAGE_DEFAULT_MODEL = get_env("BLUE_ASSISTANT_IMAGE_DEFAULT_MODEL")
19
12
 
20
- BLUE_ASSISTANT_IMAGE_DEFAULT_MODEL = os.getenv(
21
- "BLUE_ASSISTANT_IMAGE_DEFAULT_MODEL",
22
- "",
23
- )
13
+ BLUE_ASSISTANT_IMAGE_DEFAULT_QUALITY = get_env("BLUE_ASSISTANT_IMAGE_DEFAULT_QUALITY")
24
14
 
25
- BLUE_ASSISTANT_IMAGE_DEFAULT_QUALITY = os.getenv(
26
- "BLUE_ASSISTANT_IMAGE_DEFAULT_QUALITY",
27
- "",
28
- )
15
+ BLUE_ASSISTANT_IMAGE_DEFAULT_SIZE = get_env("BLUE_ASSISTANT_IMAGE_DEFAULT_SIZE")
29
16
 
30
- BLUE_ASSISTANT_IMAGE_DEFAULT_SIZE = os.getenv(
31
- "BLUE_ASSISTANT_IMAGE_DEFAULT_SIZE",
32
- "",
33
- )
17
+ HUE_BRIDGE_IP_ADDRESS = get_env("HUE_BRIDGE_IP_ADDRESS")
@@ -4,6 +4,7 @@ from blue_options.terminal import show_usage, xtra
4
4
  from abcli.help.generic import help_functions as generic_help_functions
5
5
 
6
6
  from blue_assistant import ALIAS
7
+ from blue_assistant.help.hue import help_functions as help_hue
7
8
  from blue_assistant.help.script import help_functions as help_script
8
9
  from blue_assistant.help.web import help_functions as help_web
9
10
 
@@ -30,6 +31,7 @@ help_functions = generic_help_functions(plugin_name=ALIAS)
30
31
  help_functions.update(
31
32
  {
32
33
  "browse": help_browse,
34
+ "hue": help_hue,
33
35
  "script": help_script,
34
36
  "web": help_web,
35
37
  }
@@ -0,0 +1,36 @@
1
+ from typing import List
2
+
3
+ from blue_options.terminal import show_usage, xtra
4
+
5
+ from blue_assistant import env
6
+
7
+
8
+ def help_set(
9
+ tokens: List[str],
10
+ mono: bool,
11
+ ) -> str:
12
+ options = xtra("dryrun", mono=mono)
13
+
14
+ args = [
15
+ f"[--bridge_ip <{env.HUE_BRIDGE_IP_ADDRESS}>]",
16
+ "[--username <username>]",
17
+ "[--light_id <light_id>]",
18
+ "[--hue <65535>]",
19
+ "[--saturation <254>]",
20
+ "[--verbose 1]",
21
+ ]
22
+ return show_usage(
23
+ [
24
+ "@hue",
25
+ "set",
26
+ f"[{options}]",
27
+ ]
28
+ + args,
29
+ "set hue lights.",
30
+ mono=mono,
31
+ )
32
+
33
+
34
+ help_functions = {
35
+ "set": help_set,
36
+ }
@@ -44,7 +44,7 @@ def generate_text(
44
44
  "content": [
45
45
  {
46
46
  "type": "text",
47
- "text": script.nodes[context_node]["output"],
47
+ "text": script.nodes[context_node].get("output", ""),
48
48
  }
49
49
  ],
50
50
  }
@@ -0,0 +1,66 @@
1
+ import argparse
2
+
3
+ from blueness import module
4
+ from blueness.argparse.generic import sys_exit
5
+
6
+ from blue_assistant import NAME
7
+ from blue_assistant import env
8
+ from blue_assistant.script.repository.hue.functions import set_light_color
9
+ from blue_assistant.logger import logger
10
+
11
+ NAME = module.name(__file__, NAME)
12
+
13
+ parser = argparse.ArgumentParser(NAME)
14
+ parser.add_argument(
15
+ "task",
16
+ type=str,
17
+ help="set",
18
+ )
19
+ parser.add_argument(
20
+ "--bridge_ip",
21
+ type=str,
22
+ default=env.HUE_BRIDGE_IP_ADDRESS,
23
+ )
24
+ parser.add_argument(
25
+ "--username",
26
+ type=str,
27
+ help="aka API key",
28
+ )
29
+ parser.add_argument(
30
+ "--light_id",
31
+ type=str,
32
+ )
33
+ parser.add_argument(
34
+ "--hue",
35
+ type=int,
36
+ default=65535,
37
+ help="0 to 65535",
38
+ )
39
+ parser.add_argument(
40
+ "--saturation",
41
+ type=int,
42
+ default=254,
43
+ help="0 to 254",
44
+ )
45
+ parser.add_argument(
46
+ "--verbose",
47
+ type=int,
48
+ default=0,
49
+ help="0 | 1",
50
+ )
51
+ args = parser.parse_args()
52
+
53
+ success = False
54
+ if args.task == "set":
55
+ success = set_light_color(
56
+ bridge_ip=args.bridge_ip,
57
+ username=args.username,
58
+ light_id=args.light_id,
59
+ hue=args.hue,
60
+ saturation=args.saturation,
61
+ verbose=args.verbose == 1,
62
+ )
63
+ else:
64
+ success = None
65
+
66
+ sys_exit(logger, NAME, args.task, success)
@@ -0,0 +1,53 @@
1
+ import requests
2
+
3
+ from blueness import module
4
+
5
+ from blue_assistant import NAME
6
+ from blue_assistant import env
7
+ from blue_assistant.logger import logger
8
+
9
+ NAME = module.name(__file__, NAME)
10
+
11
+
12
+ def set_light_color(
13
+ username: str,
14
+ light_id: str,
15
+ hue: int, # 0 to 65535
16
+ saturation: int, # 0 to 254
17
+ bridge_ip: str = env.HUE_BRIDGE_IP_ADDRESS,
18
+ verbose: bool = False,
19
+ ) -> bool:
20
+ logger.info(
21
+ "{}.set_light_color({}@{}:{}) -> hue=0x{:x}, saturation=0x{:x}".format(
22
+ NAME,
23
+ username,
24
+ bridge_ip,
25
+ light_id,
26
+ hue,
27
+ saturation,
28
+ )
29
+ )
30
+
31
+ # hue-2025-03-13-1xjr1z
32
+
33
+ # Construct the API endpoint URL
34
+ url = f"http://{bridge_ip}/api/{username}/lights/{light_id}/state"
35
+
36
+ # Prepare the payload with the desired hue and saturation
37
+ payload = {
38
+ "hue": hue,
39
+ "sat": saturation,
40
+ }
41
+
42
+ response = requests.put(url, json=payload)
43
+
44
+ # https://chat.openai.com/c/6deb94d0-826a-48de-b5ef-f7d8da416c82
45
+ # response.raise_for_status()
46
+ if response.status_code // 100 != 2:
47
+ logger.error(response)
48
+ return False
49
+
50
+ if verbose:
51
+ logger.info(response.json())
52
+
53
+ return True
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: blue_assistant
3
- Version: 4.178.1
3
+ Version: 4.194.1
4
4
  Summary: 🧠 An AI Assistant.
5
5
  Home-page: https://github.com/kamangir/blue-assistant
6
6
  Author: Arash Abadpour (Kamangir)
@@ -84,4 +84,4 @@ graph LR
84
84
 
85
85
  [![pylint](https://github.com/kamangir/blue-assistant/actions/workflows/pylint.yml/badge.svg)](https://github.com/kamangir/blue-assistant/actions/workflows/pylint.yml) [![pytest](https://github.com/kamangir/blue-assistant/actions/workflows/pytest.yml/badge.svg)](https://github.com/kamangir/blue-assistant/actions/workflows/pytest.yml) [![bashtest](https://github.com/kamangir/blue-assistant/actions/workflows/bashtest.yml/badge.svg)](https://github.com/kamangir/blue-assistant/actions/workflows/bashtest.yml) [![PyPI version](https://img.shields.io/pypi/v/blue-assistant.svg)](https://pypi.org/project/blue-assistant/) [![PyPI - Downloads](https://img.shields.io/pypi/dd/blue-assistant)](https://pypistats.org/packages/blue-assistant)
86
86
 
87
- built by 🌀 [`blue_options-4.234.1`](https://github.com/kamangir/awesome-bash-cli), based on 🧠 [`blue_assistant-4.178.1`](https://github.com/kamangir/blue-assistant).
87
+ built by 🌀 [`blue_options-4.234.1`](https://github.com/kamangir/awesome-bash-cli), based on 🧠 [`blue_assistant-4.194.1`](https://github.com/kamangir/blue-assistant).
@@ -1,8 +1,8 @@
1
1
  blue_assistant/README.py,sha256=CfWGCgzrRjJYsTzb54xEN8wMcd4i07uiXMexPXNIZPM,1892
2
- blue_assistant/__init__.py,sha256=8yfQVOGfGfPqaXQjqOBlBoQ66rIUg0878FEVowq0dH8,311
2
+ blue_assistant/__init__.py,sha256=pguwP78L_PIpppm8r4yKoUl5NaCDWsugNTfBiFi4U0Y,311
3
3
  blue_assistant/__main__.py,sha256=URtal70XZc0--3FDTYWcLtnGOqBYjMX9gt-L1k8hDXI,361
4
- blue_assistant/config.env,sha256=PUR0GHwzmpm7xNdWHjIv8DzlMAesOAa1NEnYDsIUTs8,211
5
- blue_assistant/env.py,sha256=e3YPPpMCrKoTcOX8QmzndEwDnM-nC-hFTSUvhnaKpSc,737
4
+ blue_assistant/config.env,sha256=hH4mWFF8fQaBscocDiHLsJ3tstoLSq0MvNRqTTCscww,247
5
+ blue_assistant/env.py,sha256=ruMvPEthUs1rS7RtoKcSO6WY8u8UqVkItkgZaU8yMGU,579
6
6
  blue_assistant/functions.py,sha256=ajz1GSNU9xYVrFEDSz6Xwg7amWQ_yvW75tQa1ZvRIWc,3
7
7
  blue_assistant/host.py,sha256=SapEe4s9J-7gV3F9JuWEmSfslCeWuJ5f7a-nFObFBrI,208
8
8
  blue_assistant/logger.py,sha256=3MfsXwivdRfVPjAjqdQld3iOg9JB6olbACL8t8gIRgI,105
@@ -10,15 +10,17 @@ blue_assistant/sample.env,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
10
  blue_assistant/urls.py,sha256=59Op4CwgZeo1ZtFouisZxMk07zJNBOqlVAi8tXpsidM,20
11
11
  blue_assistant/.abcli/abcli.sh,sha256=56ZicaXpbZ4zuaGPZJTEgfajokNUWTklzl38vENGzz0,198
12
12
  blue_assistant/.abcli/actions.sh,sha256=vW1hNMuhjghvqib0775kDzDwqGnqPo3mqLTUkPCd8z4,236
13
- blue_assistant/.abcli/alias.sh,sha256=MCJzXaDnX1QMllWsZJJkDePBYt1nY9ZWa3o4msfGD28,57
13
+ blue_assistant/.abcli/alias.sh,sha256=UOAS8mrAr-kKx0QQpfPf-nYBKL7lkR8tSF6bWviA09Y,85
14
14
  blue_assistant/.abcli/blue_assistant.sh,sha256=plLTQQerVmfb_SNlOkv0MEaQCF7YdsOHzCq0M3FWT4c,239
15
15
  blue_assistant/.abcli/browse.sh,sha256=qZ_RK_WnsjmF-hfWKiMEOnnv22QtZh9HQ0VFJUbP6aI,294
16
+ blue_assistant/.abcli/hue.sh,sha256=Sgph5Wm-Gm9ajfXF19jft-Wr04vB2oPN-KcO1sn3M4Y,344
16
17
  blue_assistant/.abcli/script.sh,sha256=XIkY4eZyFPKLi_mLoPMbnq76E4K1GG3xxha8VYJC2zI,356
17
18
  blue_assistant/.abcli/web.sh,sha256=1HA3u6umxwZro_CnxD2H9_WABypeSfMU-X2ncFMnU8c,344
19
+ blue_assistant/.abcli/hue/set.sh,sha256=VcADsfbjjbrxIMX9cVVHeK0MH649ZRY29V8YDTgflms,266
18
20
  blue_assistant/.abcli/script/list.sh,sha256=2lcVfqDfZP50NszF8o5YCo3TrJKeDc_qo7MTAF3XTGw,131
19
21
  blue_assistant/.abcli/script/run.sh,sha256=kSXmyM9NUj2X2orSGyu5t_P5frG-gyumbRq-xqF692c,911
20
22
  blue_assistant/.abcli/tests/README.sh,sha256=Qs0YUxVB1OZZ70Nqw2kT1LKXeUnC5-XfQRMfqb8Cbwg,152
21
- blue_assistant/.abcli/tests/help.sh,sha256=h7_Z8yIp7-twQugKxdmsn9g77aHRgj8hj1ZA7jY5jns,794
23
+ blue_assistant/.abcli/tests/help.sh,sha256=VKcritMf2q4KxLDTACOV0CocwqNnUu-oprcnDeSLgvk,842
22
24
  blue_assistant/.abcli/tests/script_list.sh,sha256=OVOwWO9wR0eeDZTM6uub-eTKbz3eswU3vEUPWXcK-gQ,178
23
25
  blue_assistant/.abcli/tests/script_run.sh,sha256=vfmK8sjkMfSQPwCacQppiL6inMbvQP7nci7qLppFSL0,769
24
26
  blue_assistant/.abcli/tests/version.sh,sha256=oR2rvYR8zi-0VDPIdPJsmsmWwYaamT8dmNTqUh3-8Gw,154
@@ -26,7 +28,8 @@ blue_assistant/.abcli/tests/web_crawl.sh,sha256=nQkynpAA0rthCpEmuMAwYrEuBuBBFQ7B
26
28
  blue_assistant/.abcli/web/crawl.sh,sha256=M9YoKKJBKZT2OtmFPvRCSSKpiAq0zyacRAVZ6s7i3FM,698
27
29
  blue_assistant/help/__init__.py,sha256=ajz1GSNU9xYVrFEDSz6Xwg7amWQ_yvW75tQa1ZvRIWc,3
28
30
  blue_assistant/help/__main__.py,sha256=cVejR7OpoWPg0qLbm-PZf5TuJS27x49jzfiyCLyzEns,241
29
- blue_assistant/help/functions.py,sha256=6WgIQr4pGZZ_ljNvW0PAnj8QmqoX5hoKgIY2dk2M59U,777
31
+ blue_assistant/help/functions.py,sha256=O85zVEMtnm32O7KB6W6uQRoFXnE_4dW5pwYZtMakYDg,865
32
+ blue_assistant/help/hue.py,sha256=2c7yvUXQ5D15nVyKM8bGKxqlVoJjrZWdVOwFBFNqCTw,665
30
33
  blue_assistant/help/script.py,sha256=tofv49tIBqoH8ed9hDCFHqzWaXmyyPofvqElk2n976w,1121
31
34
  blue_assistant/help/web.py,sha256=yOtA1IdQLBbhx_0Q1xLNwzdHozXdpALMYtwS5X3889o,575
32
35
  blue_assistant/script/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -34,7 +37,7 @@ blue_assistant/script/__main__.py,sha256=eOSOo5yYTPMwIXZ0GkuWkmOcsDWrZtHvClyJizX
34
37
  blue_assistant/script/load.py,sha256=JsDY9T3HTM9vXngvKsA0Mt_erxAnRR_jI62-JhrOBMU,831
35
38
  blue_assistant/script/actions/__init__.py,sha256=tiNL9HT1ql-Ut6CPYuj6B29PXQPuf-B-z8dJcksWACY,534
36
39
  blue_assistant/script/actions/generate_image.py,sha256=PgvOspDV8n2M7ZmgVOdZzJwQ1tnJNJ6V8gV94P74ksA,1336
37
- blue_assistant/script/actions/generate_text.py,sha256=nD30y8hoFbYoDT2QsrhKCvUfJUrOubiiLl3OjabtASg,1881
40
+ blue_assistant/script/actions/generate_text.py,sha256=SSyII0QPqiD538hveaN3RSyEHOt_lJ7Q-AVUg6fmlaM,1889
38
41
  blue_assistant/script/actions/generic.py,sha256=ET1RaKcUABM8HdIv8JecSpUFasYqmwHacL-5LjF-8NM,355
39
42
  blue_assistant/script/repository/__init__.py,sha256=zVI3cubRqM9H6WgF0EUP9idILVLCumPFmJgKPM7iVlM,604
40
43
  blue_assistant/script/repository/base/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -47,7 +50,9 @@ blue_assistant/script/repository/blue_amo/actions/stitching_the_frames.py,sha256
47
50
  blue_assistant/script/repository/generic/__init__.py,sha256=kLffGsQMQAFJTw6IZBE5eBxvshP1x9wwHHR4hsDJblo,75
48
51
  blue_assistant/script/repository/generic/classes.py,sha256=LqxQGRbakikvGwdQB8jjqlpsjt-PGKC9BcHMSO9wN-E,2318
49
52
  blue_assistant/script/repository/hue/__init__.py,sha256=WjL9GIlN-DBnbUMJ8O_FxTp0rcVGlsIS3H9YtXEefTk,76
53
+ blue_assistant/script/repository/hue/__main__.py,sha256=_OMa721WQ6Q3zCabrPfD9OEwktyzxy6Wi2sE22PqwqI,1280
50
54
  blue_assistant/script/repository/hue/classes.py,sha256=YhifmcuylnZuI0_BjBPmwrSbsO-BOHDHNJ0pSLIExiE,188
55
+ blue_assistant/script/repository/hue/functions.py,sha256=lpOBqQ2udUy53u8x-M32Dvfvo7kNmpNbFhJ7BAeDPNU,1219
51
56
  blue_assistant/script/repository/orbital_data_explorer/__init__.py,sha256=yy5FtCeHlr9dRfqxw4QYWr7_yRjnQpwVyuAY2vLrh4Q,110
52
57
  blue_assistant/script/repository/orbital_data_explorer/classes.py,sha256=NEJeud6UPXarnAIEvAX_ZKFoRnyK1tiEIORSsrixLxQ,1024
53
58
  blue_assistant/script/repository/orbital_data_explorer/actions/__init__.py,sha256=RcrFUAwnvhuwNh3gC65w9G26vd_cIa7LV1lFvGFcigk,370
@@ -55,8 +60,8 @@ blue_assistant/script/repository/orbital_data_explorer/actions/researching_the_q
55
60
  blue_assistant/web/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
56
61
  blue_assistant/web/__main__.py,sha256=wriAODGqb_WRaXxq5KF5ZJp1pOzuTMlVElDafgZo5f0,1258
57
62
  blue_assistant/web/crawl.py,sha256=Sxkxg9b0IsQxL0ecEAcb13JwPOmwkwUie8XUeDChf1c,2249
58
- blue_assistant-4.178.1.dist-info/LICENSE,sha256=ogEPNDSH0_dhiv_lT3ifVIdgIzHAqNA_SemnxUfPBJk,7048
59
- blue_assistant-4.178.1.dist-info/METADATA,sha256=n90TofM7cyipJiah3uwDfDM4TXU09B7yAOgUcznKLTY,4213
60
- blue_assistant-4.178.1.dist-info/WHEEL,sha256=52BFRY2Up02UkjOa29eZOS2VxUrpPORXg1pkohGGUS8,91
61
- blue_assistant-4.178.1.dist-info/top_level.txt,sha256=ud0BkBbdOVze13bNqHuhZj1rwCztaBtDf5ChEYzASOs,15
62
- blue_assistant-4.178.1.dist-info/RECORD,,
63
+ blue_assistant-4.194.1.dist-info/LICENSE,sha256=ogEPNDSH0_dhiv_lT3ifVIdgIzHAqNA_SemnxUfPBJk,7048
64
+ blue_assistant-4.194.1.dist-info/METADATA,sha256=gSMvACrGOz8uFIx0nDjAbp2WBnKmh4qGtHeEUFw9-2A,4213
65
+ blue_assistant-4.194.1.dist-info/WHEEL,sha256=52BFRY2Up02UkjOa29eZOS2VxUrpPORXg1pkohGGUS8,91
66
+ blue_assistant-4.194.1.dist-info/top_level.txt,sha256=ud0BkBbdOVze13bNqHuhZj1rwCztaBtDf5ChEYzASOs,15
67
+ blue_assistant-4.194.1.dist-info/RECORD,,