blue-assistant 4.380.1__py3-none-any.whl → 4.399.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.
@@ -0,0 +1,30 @@
1
+ #! /usr/bin/env bash
2
+
3
+ function blue_assistant_RAG_query_pdf() {
4
+ local options=$1
5
+ local do_dryrun=$(abcli_option_int "$options" dryrun 0)
6
+ local do_download=$(abcli_option_int "$options" download $(abcli_not $do_dryrun))
7
+ local filename=$(abcli_option "$options" filename document.pdf)
8
+ local do_upload=$(abcli_option_int "$options" upload $(abcli_not $do_dryrun))
9
+
10
+ local object_name=$(abcli_clarify_object $2 .)
11
+ [[ "$do_download" == 1 ]] &&
12
+ abcli_download - $object_name
13
+
14
+ local question=${3:-void}
15
+ local encoded_question=${question// /__}
16
+
17
+ abcli_eval dryrun=$do_dryrun \
18
+ python3 -m blue_assistant.RAG \
19
+ query_pdf \
20
+ --object_name $object_name \
21
+ --filename $filename \
22
+ --encoded_question $encoded_question \
23
+ "${@:4}"
24
+ [[ $? -ne 0 ]] && return 1
25
+
26
+ [[ "$do_upload" == 1 ]] &&
27
+ abcli_upload - $object_name
28
+
29
+ return 0
30
+ }
@@ -0,0 +1,15 @@
1
+ #! /usr/bin/env bash
2
+
3
+ function blue_assistant_RAG() {
4
+ local task=$(abcli_unpack_keyword $1 help)
5
+
6
+ local function_name=blue_assistant_RAG_$task
7
+ if [[ $(type -t $function_name) == "function" ]]; then
8
+ $function_name "${@:2}"
9
+ return
10
+ fi
11
+
12
+ python3 -m blue_assistant.RAG "$@"
13
+ }
14
+
15
+ abcli_source_caller_suffix_path /RAG
@@ -4,4 +4,6 @@ alias @assistant=blue_assistant
4
4
 
5
5
  alias @hue=blue_assistant_hue
6
6
 
7
+ alias @RAG=blue_assistant_RAG
8
+
7
9
  alias @web=blue_assistant_web
@@ -0,0 +1,16 @@
1
+ #! /usr/bin/env bash
2
+
3
+ function test_blue_assistant_RAG_query_pdf() {
4
+ local options=$1
5
+
6
+ local object_name=$(abcli_mlflow_tags_search \
7
+ contains=latest-giza \
8
+ --log 0 \
9
+ --count 1)
10
+ abcli_assert $object_name - non-empty
11
+
12
+ blue_assistant_RAG_query_pdf \
13
+ ~upload,filename=giza,$options \
14
+ $object_name \
15
+ "What is the importance of Bash in AI? in less than 20 words."
16
+ }
@@ -29,6 +29,9 @@ function test_blue_assistant_help() {
29
29
  "@hue set" \
30
30
  "@hue test" \
31
31
  \
32
+ "@RAG" \
33
+ "@RAG query_pdf" \
34
+ \
32
35
  "@web" \
33
36
  "@web crawl" \
34
37
  "@web fetch" \
blue_assistant/README.py CHANGED
@@ -33,7 +33,12 @@ items = README.Items(
33
33
  "description": "A minimal AI DAG interface.",
34
34
  "url": "./blue_assistant/script/",
35
35
  },
36
- {},
36
+ {
37
+ "name": "`@RAG`",
38
+ "marquee": "https://github.com/kamangir/assets/raw/main/orbital-data-explorer-2025-03-16-xoo5vc/thumbnail-workflow.png?raw=true",
39
+ "description": " RAG on a DAG. 🔥",
40
+ "url": "./blue_assistant/RAG/",
41
+ },
37
42
  {
38
43
  "name": "`@web`",
39
44
  "marquee": "https://github.com/kamangir/assets/raw/main/blue-plugin/marquee.png?raw=true",
@@ -74,6 +79,11 @@ def build():
74
79
  {"path": "script/repository/hue/docs/round-1.md"},
75
80
  {"path": "script/repository/hue/docs"},
76
81
  #
82
+ {"path": "RAG/docs/round-1.md"},
83
+ {"path": "RAG/docs/round-2.md"},
84
+ {"path": "RAG/docs/round-3.md"},
85
+ {"path": "RAG/docs"},
86
+ #
77
87
  {"path": "script/"},
78
88
  {"path": "web/"},
79
89
  ]
@@ -4,7 +4,7 @@ ICON = "🧠"
4
4
 
5
5
  DESCRIPTION = f"{ICON} An AI Assistant."
6
6
 
7
- VERSION = "4.380.1"
7
+ VERSION = "4.399.1"
8
8
 
9
9
  REPO_NAME = "blue-assistant"
10
10
 
blue_assistant/config.env CHANGED
@@ -7,4 +7,6 @@ BLUE_ASSISTANT_IMAGE_DEFAULT_SIZE=1024x1024
7
7
 
8
8
  HUE_BRIDGE_IP_ADDRESS=192.168.1.95
9
9
  HUE_TEST_DEFAULT_INTERVAL=0.01
10
- HUE_MAX_SATURATION=254
10
+ HUE_MAX_SATURATION=254
11
+
12
+ RAG_DEFAULT_DOCUMENTS_OBJECT_NAME=orbital-data-explorer-2025-03-16-xoo5vc-copy
blue_assistant/env.py CHANGED
@@ -19,3 +19,7 @@ HUE_BRIDGE_IP_ADDRESS = get_env("HUE_BRIDGE_IP_ADDRESS")
19
19
  HUE_BRIDGE_USERNAME = get_env("HUE_BRIDGE_USERNAME")
20
20
  HUE_TEST_DEFAULT_INTERVAL = get_env("HUE_TEST_DEFAULT_INTERVAL", 0.01)
21
21
  HUE_MAX_SATURATION = get_env("HUE_MAX_SATURATION", 254)
22
+
23
+ RAG_DEFAULT_DOCUMENTS_OBJECT_NAME = get_env("RAG_DEFAULT_DOCUMENTS_OBJECT_NAME")
24
+
25
+ HUGGINGFACEHUB_API_TOKEN = get_env("HUGGINGFACEHUB_API_TOKEN")
@@ -0,0 +1,33 @@
1
+ from typing import List
2
+
3
+ from blue_options.terminal import show_usage, xtra
4
+
5
+
6
+ def help_query_pdf(
7
+ tokens: List[str],
8
+ mono: bool,
9
+ ) -> str:
10
+ options = "".join(
11
+ [
12
+ xtra("~download,dryrun,", mono=mono),
13
+ "filename=<filename.pdf>",
14
+ xtra(",~upload", mono=mono),
15
+ ]
16
+ )
17
+
18
+ return show_usage(
19
+ [
20
+ "@RAG",
21
+ "query_pdf",
22
+ f"[{options}]",
23
+ "[.|<object-name>]",
24
+ "<question>",
25
+ ],
26
+ "query <question> in <object-name>/<filename.pdf>.",
27
+ mono=mono,
28
+ )
29
+
30
+
31
+ help_functions = {
32
+ "query_pdf": help_query_pdf,
33
+ }
@@ -5,6 +5,7 @@ from abcli.help.generic import help_functions as generic_help_functions
5
5
 
6
6
  from blue_assistant import ALIAS
7
7
  from blue_assistant.help.hue import help_functions as help_hue
8
+ from blue_assistant.help.RAG import help_functions as help_RAG
8
9
  from blue_assistant.help.script import help_functions as help_script
9
10
  from blue_assistant.help.web import help_functions as help_web
10
11
 
@@ -32,6 +33,7 @@ help_functions.update(
32
33
  {
33
34
  "browse": help_browse,
34
35
  "hue": help_hue,
36
+ "RAG": help_RAG,
35
37
  "script": help_script,
36
38
  "web": help_web,
37
39
  }
blue_assistant/sample.env CHANGED
@@ -1 +1,3 @@
1
- HUE_BRIDGE_USERNAME=
1
+ HUE_BRIDGE_USERNAME=
2
+
3
+ HUGGINGFACEHUB_API_TOKEN=
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.2
1
+ Metadata-Version: 2.4
2
2
  Name: blue_assistant
3
- Version: 4.380.1
3
+ Version: 4.399.1
4
4
  Summary: 🧠 An AI Assistant.
5
5
  Home-page: https://github.com/kamangir/blue-assistant
6
6
  Author: Arash Abadpour (Kamangir)
@@ -33,6 +33,13 @@ Requires-Dist: tqdm
33
33
  Requires-Dist: beautifulsoup4
34
34
  Requires-Dist: networkx
35
35
  Requires-Dist: pydot
36
+ Requires-Dist: openai
37
+ Requires-Dist: faiss-cpu
38
+ Requires-Dist: langchain
39
+ Requires-Dist: pypdf2
40
+ Requires-Dist: langchain_openai
41
+ Requires-Dist: sentence-transformers
42
+ Requires-Dist: langchain_community
36
43
  Dynamic: author
37
44
  Dynamic: author-email
38
45
  Dynamic: classifier
@@ -40,6 +47,7 @@ Dynamic: description
40
47
  Dynamic: description-content-type
41
48
  Dynamic: home-page
42
49
  Dynamic: license
50
+ Dynamic: license-file
43
51
  Dynamic: requires-dist
44
52
  Dynamic: summary
45
53
 
@@ -56,13 +64,13 @@ pip install blue-assistant
56
64
  | | | |
57
65
  | --- | --- | --- |
58
66
  | [`orbital-data-explorer`](https://github.com/kamangir/blue-assistant/blob/main/blue_assistant/script/repository/orbital_data_explorer) [![image](https://github.com/kamangir/assets/raw/main/blue-assistant/PDS/uahirise-ESP_086795_1970.png?raw=true)](https://github.com/kamangir/blue-assistant/blob/main/blue_assistant/script/repository/orbital_data_explorer) Poking around [Orbital Data Explorer](https://ode.rsl.wustl.edu/) with an [AI DAG](https://github.com/kamangir/blue-assistant/blob/main/blue_assistant/script/repository/orbital_data_explorer/metadata.yaml). ⏸️ | [`@hue`](https://github.com/kamangir/blue-assistant/blob/main/blue_assistant/script/repository/hue) [![image](https://github.com/kamangir/assets/raw/main/blue-assistant/20250314_143702-2.png?raw=true)](https://github.com/kamangir/blue-assistant/blob/main/blue_assistant/script/repository/hue) "[Hey AI](https://github.com/kamangir/blue-assistant/blob/main/blue_assistant/script/repository/hue/metadata.yaml), help me write code to send color commands to the [Hue LED lights](https://www.philips-hue.com/en-ca) in my apartment." | [`blue-amo`](https://github.com/kamangir/blue-assistant/blob/main/blue_assistant/script/repository/blue_amo/README.md) [![image](https://github.com/kamangir/assets/blob/main/test_blue_assistant_script_run-2025-03-15-06pbpf/generating_frame_007.png?raw=true)](https://github.com/kamangir/blue-assistant/blob/main/blue_assistant/script/repository/blue_amo/README.md) Story development and visualization, with an [AI DAG](https://github.com/kamangir/blue-assistant/blob/main/blue_assistant/script/repository/blue_amo/metadata.yaml). |
59
- | [`🌀 blue script`](https://github.com/kamangir/blue-assistant/blob/main/blue_assistant/script/) [![image](https://github.com/kamangir/assets/raw/main/blue-plugin/marquee.png?raw=true)](https://github.com/kamangir/blue-assistant/blob/main/blue_assistant/script/) A minimal AI DAG interface. | | [``@web``](https://github.com/kamangir/blue-assistant/blob/main/blue_assistant/web/) [![image](https://github.com/kamangir/assets/raw/main/blue-plugin/marquee.png?raw=true)](https://github.com/kamangir/blue-assistant/blob/main/blue_assistant/web/) A minimal web interface for an AI agent. |
67
+ | [`🌀 blue script`](https://github.com/kamangir/blue-assistant/blob/main/blue_assistant/script/) [![image](https://github.com/kamangir/assets/raw/main/blue-plugin/marquee.png?raw=true)](https://github.com/kamangir/blue-assistant/blob/main/blue_assistant/script/) A minimal AI DAG interface. | [``@RAG``](https://github.com/kamangir/blue-assistant/blob/main/blue_assistant/RAG/) [![image](https://github.com/kamangir/assets/raw/main/orbital-data-explorer-2025-03-16-xoo5vc/thumbnail-workflow.png?raw=true)](https://github.com/kamangir/blue-assistant/blob/main/blue_assistant/RAG/) RAG on a DAG. 🔥 | [``@web``](https://github.com/kamangir/blue-assistant/blob/main/blue_assistant/web/) [![image](https://github.com/kamangir/assets/raw/main/blue-plugin/marquee.png?raw=true)](https://github.com/kamangir/blue-assistant/blob/main/blue_assistant/web/) A minimal web interface for an AI agent. |
60
68
 
61
69
  ---
62
70
 
63
71
 
64
72
  [![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)
65
73
 
66
- built by 🌀 [`blue_options-4.240.1`](https://github.com/kamangir/awesome-bash-cli), based on 🧠 [`blue_assistant-4.380.1`](https://github.com/kamangir/blue-assistant).
74
+ built by 🌀 [`blue_options-4.240.1`](https://github.com/kamangir/awesome-bash-cli), based on 🧠 [`blue_assistant-4.399.1`](https://github.com/kamangir/blue-assistant).
67
75
 
68
76
  built by 🌀 [`blueness-3.96.1`](https://github.com/kamangir/blueness).
@@ -1,28 +1,31 @@
1
- blue_assistant/README.py,sha256=xbgeAUdfLEHMM_N6buDwDcIDk0SorzYvbT-KIJFV2Ps,3186
2
- blue_assistant/__init__.py,sha256=cjaSIHwyy2Qpw-0-g8tAm9mPz0HMOCG4XNIJhsHLajI,311
1
+ blue_assistant/README.py,sha256=0P2L_0c0Bf3QjA2mvNbAbw1H6LJDIjxD1l61x9nFCzY,3644
2
+ blue_assistant/__init__.py,sha256=LsMmLawanSZVO8g5Yz9RPDijntLe4pFn44pvJzdZNwg,311
3
3
  blue_assistant/__main__.py,sha256=URtal70XZc0--3FDTYWcLtnGOqBYjMX9gt-L1k8hDXI,361
4
- blue_assistant/config.env,sha256=npodyuuhkZUHUv9FnEiQQZkKxFbg8nQb1YpOCURqV3Y,301
5
- blue_assistant/env.py,sha256=FTSdJ8-J4jAyI0-h3MBgOweQBWd3YEFIibBHSXpClrY,760
4
+ blue_assistant/config.env,sha256=AVP4IKDonuIq_lbm97x34-VJhjrVJ4jzSQrqsWYc9Qc,381
5
+ blue_assistant/env.py,sha256=0FmnnaKvfF5pt0ud7r0PiYinDUxD5S6MuJ-YubgCvks,906
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
9
- blue_assistant/sample.env,sha256=rFfaN3lwiVm1CW28Pi0ZPwJPuu7_r3QWL54jIgHK_fY,20
9
+ blue_assistant/sample.env,sha256=MCsLkAh9E1mgkLpvdfNe5TFhZy6QAU7bNYMZI3qI1Ls,47
10
10
  blue_assistant/urls.py,sha256=59Op4CwgZeo1ZtFouisZxMk07zJNBOqlVAi8tXpsidM,20
11
+ blue_assistant/.abcli/RAG.sh,sha256=YgnxuJyKs1mdoVNpSa860eoXMOUeeeQutWiZBtp9yKE,344
11
12
  blue_assistant/.abcli/abcli.sh,sha256=56ZicaXpbZ4zuaGPZJTEgfajokNUWTklzl38vENGzz0,198
12
13
  blue_assistant/.abcli/actions.sh,sha256=vW1hNMuhjghvqib0775kDzDwqGnqPo3mqLTUkPCd8z4,236
13
- blue_assistant/.abcli/alias.sh,sha256=C9AzxECPt1FaBmJIt3JPR9BcSzkoZS1w_1gaInvcBdw,116
14
+ blue_assistant/.abcli/alias.sh,sha256=JgBbJ0dKOaK2dOq2nphWc9aN28DKeEg4tX0Hoipj0fM,147
14
15
  blue_assistant/.abcli/blue_assistant.sh,sha256=plLTQQerVmfb_SNlOkv0MEaQCF7YdsOHzCq0M3FWT4c,239
15
16
  blue_assistant/.abcli/browse.sh,sha256=qZ_RK_WnsjmF-hfWKiMEOnnv22QtZh9HQ0VFJUbP6aI,294
16
17
  blue_assistant/.abcli/hue.sh,sha256=avQT49SlA2ZPDvSdme1vWqDAYtAOHJQI8-3LdqXvBZc,362
17
18
  blue_assistant/.abcli/script.sh,sha256=XIkY4eZyFPKLi_mLoPMbnq76E4K1GG3xxha8VYJC2zI,356
18
19
  blue_assistant/.abcli/web.sh,sha256=1HA3u6umxwZro_CnxD2H9_WABypeSfMU-X2ncFMnU8c,344
20
+ blue_assistant/.abcli/RAG/query_pdf.sh,sha256=ViBlWGXTBnX_XDLZWqCcM0YdPbV93RMEyWHxjJqJrIo,923
19
21
  blue_assistant/.abcli/hue/create_user.sh,sha256=Nh8FhnGweB2JZB7SVh-6jp8ud5YHeJSaCe_0MdkgsxI,282
20
22
  blue_assistant/.abcli/hue/list.sh,sha256=ynptjPo6jZnwm-7wAVgGx-mZvyPKZ9b5JaJoY0xidCg,268
21
23
  blue_assistant/.abcli/hue/set.sh,sha256=VcADsfbjjbrxIMX9cVVHeK0MH649ZRY29V8YDTgflms,266
22
24
  blue_assistant/.abcli/script/list.sh,sha256=2lcVfqDfZP50NszF8o5YCo3TrJKeDc_qo7MTAF3XTGw,131
23
25
  blue_assistant/.abcli/script/run.sh,sha256=CJIaTMAM7zAxzNicz19y1-6ICRy1-FQkoDcsejHCSiQ,1061
26
+ blue_assistant/.abcli/tests/RAG_query_pdf.sh,sha256=-5DwmohftiutoHBeaxGGj-DNHnP0hsFw23XooxPyTH4,425
24
27
  blue_assistant/.abcli/tests/README.sh,sha256=Qs0YUxVB1OZZ70Nqw2kT1LKXeUnC5-XfQRMfqb8Cbwg,152
25
- blue_assistant/.abcli/tests/help.sh,sha256=7AAZzCEo5vZ1cBAMfj4virDClabaUMdOV-NqXSJQVUM,918
28
+ blue_assistant/.abcli/tests/help.sh,sha256=6KTPmIGHz3ZmEExd2DwERLcQjX7cE0rggjy5oEWpJ8k,972
26
29
  blue_assistant/.abcli/tests/script_list.sh,sha256=OVOwWO9wR0eeDZTM6uub-eTKbz3eswU3vEUPWXcK-gQ,178
27
30
  blue_assistant/.abcli/tests/script_run.sh,sha256=N0sg5j5a60x5v4V8PCEVjyjPP8xO-uC9JduSCBU0EyE,809
28
31
  blue_assistant/.abcli/tests/version.sh,sha256=oR2rvYR8zi-0VDPIdPJsmsmWwYaamT8dmNTqUh3-8Gw,154
@@ -30,9 +33,10 @@ blue_assistant/.abcli/tests/web_crawl.sh,sha256=sz3LbpidWvjG7kQoWxQBtdBe5yntm14y
30
33
  blue_assistant/.abcli/tests/web_fetch.sh,sha256=C8PFWlmRa9heNdP9yhshriCBKG1uUlps-oxhAM70AZI,312
31
34
  blue_assistant/.abcli/web/crawl.sh,sha256=63B-f0jckL6vHmtHI0twOateVTyL2qVNcfttJh7iiRM,855
32
35
  blue_assistant/.abcli/web/fetch.sh,sha256=9SggFZTtpff-gnCd987zP6UqzG4So5D4px2jMg2Vicc,674
36
+ blue_assistant/help/RAG.py,sha256=jbrhvEmzVSuJg6X9vaMFDqyGUWxFbIDDYHeKRh8pE58,645
33
37
  blue_assistant/help/__init__.py,sha256=ajz1GSNU9xYVrFEDSz6Xwg7amWQ_yvW75tQa1ZvRIWc,3
34
38
  blue_assistant/help/__main__.py,sha256=cVejR7OpoWPg0qLbm-PZf5TuJS27x49jzfiyCLyzEns,241
35
- blue_assistant/help/functions.py,sha256=O85zVEMtnm32O7KB6W6uQRoFXnE_4dW5pwYZtMakYDg,865
39
+ blue_assistant/help/functions.py,sha256=lVwmzIwKHlFBSivf6zHFNmY6U3M-QOc8V_Mhh8V2XWs,953
36
40
  blue_assistant/help/hue.py,sha256=ZElPG24ekiS7eIGLVrP2gB_womlGUuwln2cded4Li-c,2319
37
41
  blue_assistant/help/script.py,sha256=LEinJ9FTx7PPTIKbriGbbvn_e0Sn2Z5u-YHkGrvYXA0,1930
38
42
  blue_assistant/help/web.py,sha256=LNJRbMXipXUojJmmTghY9YAxFqPDLTCvcRCfpJrfgvk,918
@@ -68,8 +72,8 @@ blue_assistant/web/__main__.py,sha256=aLkMmUpeWSOxa7YQVbtL90ZNbOcr1OeT0rymw90jx7
68
72
  blue_assistant/web/crawl.py,sha256=w77MNqVSLDE6nm7XuwWU7JMOcm26ISdA_fjT7Ec2bi8,3343
69
73
  blue_assistant/web/fetch.py,sha256=WihKsEdF4q8SVMa1IJa-O2BnYbNSr3uzNykJnVuSyrQ,2566
70
74
  blue_assistant/web/functions.py,sha256=TVsQbgtkWg4Hy6E2hLJ1bJqjrL6rcmGAxmYuqLUFeSw,882
71
- blue_assistant-4.380.1.dist-info/LICENSE,sha256=ogEPNDSH0_dhiv_lT3ifVIdgIzHAqNA_SemnxUfPBJk,7048
72
- blue_assistant-4.380.1.dist-info/METADATA,sha256=4pcjDIE3XWJx155Qc6LyznXNxiqPHFMQ824263fieEw,4645
73
- blue_assistant-4.380.1.dist-info/WHEEL,sha256=52BFRY2Up02UkjOa29eZOS2VxUrpPORXg1pkohGGUS8,91
74
- blue_assistant-4.380.1.dist-info/top_level.txt,sha256=ud0BkBbdOVze13bNqHuhZj1rwCztaBtDf5ChEYzASOs,15
75
- blue_assistant-4.380.1.dist-info/RECORD,,
75
+ blue_assistant-4.399.1.dist-info/licenses/LICENSE,sha256=ogEPNDSH0_dhiv_lT3ifVIdgIzHAqNA_SemnxUfPBJk,7048
76
+ blue_assistant-4.399.1.dist-info/METADATA,sha256=a5QUExT-57Sc41vh7rfPcawzi2mWCeI5WZU8PD56I-E,5171
77
+ blue_assistant-4.399.1.dist-info/WHEEL,sha256=1tXe9gY0PYatrMPMDd6jXqjfpz_B-Wqm32CPfRC58XU,91
78
+ blue_assistant-4.399.1.dist-info/top_level.txt,sha256=ud0BkBbdOVze13bNqHuhZj1rwCztaBtDf5ChEYzASOs,15
79
+ blue_assistant-4.399.1.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (76.0.0)
2
+ Generator: setuptools (77.0.3)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5