wingman-ai 1.0.0__py3-none-any.whl → 1.0.2__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.
- share/wingman/node_listener/package-lock.json +2 -2
- share/wingman/node_listener/package.json +4 -1
- wingman/cli/wizard.py +14 -9
- wingman/installer/node_installer.py +14 -17
- {wingman_ai-1.0.0.dist-info → wingman_ai-1.0.2.dist-info}/METADATA +1 -1
- {wingman_ai-1.0.0.dist-info → wingman_ai-1.0.2.dist-info}/RECORD +9 -9
- {wingman_ai-1.0.0.dist-info → wingman_ai-1.0.2.dist-info}/WHEEL +0 -0
- {wingman_ai-1.0.0.dist-info → wingman_ai-1.0.2.dist-info}/entry_points.txt +0 -0
- {wingman_ai-1.0.0.dist-info → wingman_ai-1.0.2.dist-info}/licenses/LICENSE +0 -0
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "wingman-ai",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.2",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "wingman-ai",
|
|
9
|
-
"version": "1.0.
|
|
9
|
+
"version": "1.0.2",
|
|
10
10
|
"license": "MIT",
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@whiskeysockets/baileys": "^6.7.16",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "wingman-ai",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.2",
|
|
4
4
|
"description": "WhatsApp listener component for Wingman AI - connects to WhatsApp Web using Baileys",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -46,5 +46,8 @@
|
|
|
46
46
|
"devDependencies": {
|
|
47
47
|
"@types/node": "^20.10.0",
|
|
48
48
|
"typescript": "^5.3.2"
|
|
49
|
+
},
|
|
50
|
+
"publishConfig": {
|
|
51
|
+
"access": "public"
|
|
49
52
|
}
|
|
50
53
|
}
|
wingman/cli/wizard.py
CHANGED
|
@@ -111,14 +111,15 @@ class SetupWizard:
|
|
|
111
111
|
console=self.console,
|
|
112
112
|
) as progress:
|
|
113
113
|
progress.add_task("Testing API key...", total=None)
|
|
114
|
+
test_result = self._test_api_key(api_key)
|
|
114
115
|
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
116
|
+
if test_result:
|
|
117
|
+
self.console.print(" [green]✓[/green] API key is valid")
|
|
118
|
+
else:
|
|
119
|
+
self.console.print(" [red]✗[/red] API key test failed")
|
|
120
|
+
proceed = questionary.confirm("Continue anyway?", default=False).ask()
|
|
121
|
+
if not proceed:
|
|
122
|
+
return None
|
|
122
123
|
|
|
123
124
|
self.console.print()
|
|
124
125
|
return api_key
|
|
@@ -129,8 +130,12 @@ class SetupWizard:
|
|
|
129
130
|
from openai import OpenAI
|
|
130
131
|
|
|
131
132
|
client = OpenAI(api_key=api_key)
|
|
132
|
-
#
|
|
133
|
-
client.
|
|
133
|
+
# Use a minimal chat completion to verify the key works
|
|
134
|
+
client.chat.completions.create(
|
|
135
|
+
model="gpt-4o-mini",
|
|
136
|
+
messages=[{"role": "user", "content": "hi"}],
|
|
137
|
+
max_tokens=1,
|
|
138
|
+
)
|
|
134
139
|
return True
|
|
135
140
|
except Exception:
|
|
136
141
|
return False
|
|
@@ -94,26 +94,23 @@ class NodeInstaller:
|
|
|
94
94
|
"""
|
|
95
95
|
Find the bundled node_listener source.
|
|
96
96
|
|
|
97
|
-
Checks:
|
|
98
|
-
1.
|
|
99
|
-
2.
|
|
97
|
+
Checks (in order):
|
|
98
|
+
1. Wheel force-include location (site-packages/share/wingman/node_listener)
|
|
99
|
+
2. System shared data locations
|
|
100
|
+
3. Development location (running from source)
|
|
100
101
|
"""
|
|
101
|
-
import
|
|
102
|
+
import sys
|
|
102
103
|
|
|
103
|
-
|
|
104
|
-
try:
|
|
105
|
-
# Python 3.9+
|
|
106
|
-
with importlib.resources.as_file(
|
|
107
|
-
importlib.resources.files("wingman").joinpath("../../../node_listener")
|
|
108
|
-
) as path:
|
|
109
|
-
if path.exists() and (path / "package.json").exists():
|
|
110
|
-
return path
|
|
111
|
-
except (TypeError, FileNotFoundError):
|
|
112
|
-
pass
|
|
104
|
+
import wingman
|
|
113
105
|
|
|
114
|
-
#
|
|
115
|
-
|
|
106
|
+
# 1. Check within installed wheel (force-include puts files at
|
|
107
|
+
# site-packages/share/wingman/node_listener/)
|
|
108
|
+
site_packages = Path(wingman.__file__).parent.parent
|
|
109
|
+
wheel_path = site_packages / "share" / "wingman" / "node_listener"
|
|
110
|
+
if wheel_path.exists() and (wheel_path / "package.json").exists():
|
|
111
|
+
return wheel_path
|
|
116
112
|
|
|
113
|
+
# 2. Check system shared data locations
|
|
117
114
|
for path in [
|
|
118
115
|
Path(sys.prefix) / "share" / "wingman" / "node_listener",
|
|
119
116
|
Path.home() / ".local" / "share" / "wingman" / "node_listener",
|
|
@@ -121,7 +118,7 @@ class NodeInstaller:
|
|
|
121
118
|
if path.exists() and (path / "package.json").exists():
|
|
122
119
|
return path
|
|
123
120
|
|
|
124
|
-
#
|
|
121
|
+
# 3. Development location (running from source)
|
|
125
122
|
dev_path = Path(__file__).parent.parent.parent.parent.parent / "node_listener"
|
|
126
123
|
if dev_path.exists() and (dev_path / "package.json").exists():
|
|
127
124
|
return dev_path
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: wingman-ai
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.2
|
|
4
4
|
Summary: An AI-powered personal chat agent for WhatsApp and iMessage with configurable personality and policy-driven responses
|
|
5
5
|
Project-URL: Homepage, https://github.com/metanoia-oss/wingman
|
|
6
6
|
Project-URL: Repository, https://github.com/metanoia-oss/wingman
|
|
@@ -2,7 +2,7 @@ wingman/__init__.py,sha256=8WTGssI3JFCaRT_VHOkNWufGbl1WXqq8Ac0BxWZpCpo,123
|
|
|
2
2
|
wingman/__main__.py,sha256=kREwLHRdnMOQCSrbE0m-vhzn9OddUoybMU7YX4kMsJg,113
|
|
3
3
|
wingman/cli/__init__.py,sha256=458Lb8-IJpD4FJFM6iuG0zrCHDf-DBuSkv467oSLm5I,72
|
|
4
4
|
wingman/cli/main.py,sha256=jWty_TfukNcaa-bAIil8pO953WTFs8TECdMWKuAjnMk,1112
|
|
5
|
-
wingman/cli/wizard.py,sha256=
|
|
5
|
+
wingman/cli/wizard.py,sha256=67zscthF-DwkpDAxQ2RolaX14Qhf38B-5v-OCyt62o8,12277
|
|
6
6
|
wingman/cli/commands/__init__.py,sha256=MTFQxPeJOd67WzBSy9T5XogDhXtQwvmcCfK7R2jrRRY,32
|
|
7
7
|
wingman/cli/commands/auth.py,sha256=Gdy3a61QlsRiWor4kcWpHT5nwaOD9-5Hfi8dTRBbi3U,2802
|
|
8
8
|
wingman/cli/commands/config.py,sha256=saHLAWBCesbSA7nGHQLK8WxSLP0oOKISfNRtyR0xCKc,3022
|
|
@@ -44,17 +44,17 @@ wingman/core/transports/imessage/transport.py,sha256=wf84e764gtUpeybTcdwWYg7mzEe
|
|
|
44
44
|
wingman/daemon/__init__.py,sha256=2rjbJ14j1jzAOFYRc-Mm4amYEL1SPrUZ4pnXye94u84,109
|
|
45
45
|
wingman/daemon/manager.py,sha256=kYwj0e0Q1NMPVKkhFD2El6Q9ZcBVSEXn568T5dOvvFU,8743
|
|
46
46
|
wingman/installer/__init__.py,sha256=WwidNCn2YHB5lsjReuvGEB63QM2-tbgM1hwyND9dZH0,108
|
|
47
|
-
wingman/installer/node_installer.py,sha256=
|
|
48
|
-
share/wingman/node_listener/package-lock.json,sha256=
|
|
49
|
-
share/wingman/node_listener/package.json,sha256=
|
|
47
|
+
wingman/installer/node_installer.py,sha256=SUWtqEiAaiY_FqOvT2zoZGj0V-cHyolfpiQIP-Is6H4,8744
|
|
48
|
+
share/wingman/node_listener/package-lock.json,sha256=y2U0aQ3wakGczKpQ4FskDXbdpeHDgDjxcu8jJa09ERA,63694
|
|
49
|
+
share/wingman/node_listener/package.json,sha256=jLQbTvQKIpTN8RMMalSIgCtKXNMEQ4vK7Qvo8z3wNLw,1197
|
|
50
50
|
share/wingman/node_listener/src/index.ts,sha256=H4gUz7AhErbu1jwt1lV_Vtu4Ii-ZAfCvL54kq5oexE4,3284
|
|
51
51
|
share/wingman/node_listener/src/ipc.ts,sha256=ISPNn6ojmtkMrXHqioudWuUJFy10GL2z_MDR1Op7gQA,1862
|
|
52
52
|
share/wingman/node_listener/src/messageHandler.ts,sha256=rQ3FwhLtVM_W9fkjo82eyCJMXJjuxNneHBFSd-6nLw8,3524
|
|
53
53
|
share/wingman/node_listener/src/socket.ts,sha256=p084U-qoNGOjPvWqDsm5qFNenJTrGuWd9L7V5ZV3nfA,7893
|
|
54
54
|
share/wingman/node_listener/src/types.d.ts,sha256=dUrJiqohfMu1kW_OS2k-4HObXPnlGhFkE_fi2oANo4I,298
|
|
55
55
|
share/wingman/node_listener/tsconfig.json,sha256=1JvbZY8iK_NpSI21p-9_cZO2kqMfxPjU_JeRIt8oDK8,445
|
|
56
|
-
wingman_ai-1.0.
|
|
57
|
-
wingman_ai-1.0.
|
|
58
|
-
wingman_ai-1.0.
|
|
59
|
-
wingman_ai-1.0.
|
|
60
|
-
wingman_ai-1.0.
|
|
56
|
+
wingman_ai-1.0.2.dist-info/METADATA,sha256=K1yOdEWHhH3z3cIGMkqk2FIyb4cmrDInjB499wjsK-c,16306
|
|
57
|
+
wingman_ai-1.0.2.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
58
|
+
wingman_ai-1.0.2.dist-info/entry_points.txt,sha256=N_G9HZ5d_Km1JNGmhU5WFsLSc4VMGwaQFQ5aNNzLxxE,49
|
|
59
|
+
wingman_ai-1.0.2.dist-info/licenses/LICENSE,sha256=DCe1o-4lfg-dJZAo0nPu_PpenYX3eFz_xteB5Dq5rfw,1072
|
|
60
|
+
wingman_ai-1.0.2.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|