wingman-ai 1.0.0__tar.gz → 1.0.1__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.
Files changed (62) hide show
  1. {wingman_ai-1.0.0 → wingman_ai-1.0.1}/PKG-INFO +1 -1
  2. {wingman_ai-1.0.0 → wingman_ai-1.0.1}/node_listener/package-lock.json +2 -2
  3. {wingman_ai-1.0.0 → wingman_ai-1.0.1}/node_listener/package.json +4 -1
  4. {wingman_ai-1.0.0 → wingman_ai-1.0.1}/pyproject.toml +1 -1
  5. {wingman_ai-1.0.0 → wingman_ai-1.0.1}/src/wingman/cli/wizard.py +9 -8
  6. {wingman_ai-1.0.0 → wingman_ai-1.0.1}/src/wingman/installer/node_installer.py +14 -17
  7. {wingman_ai-1.0.0 → wingman_ai-1.0.1}/.gitignore +0 -0
  8. {wingman_ai-1.0.0 → wingman_ai-1.0.1}/LICENSE +0 -0
  9. {wingman_ai-1.0.0 → wingman_ai-1.0.1}/README.md +0 -0
  10. {wingman_ai-1.0.0 → wingman_ai-1.0.1}/node_listener/.npmignore +0 -0
  11. {wingman_ai-1.0.0 → wingman_ai-1.0.1}/node_listener/README.md +0 -0
  12. {wingman_ai-1.0.0 → wingman_ai-1.0.1}/node_listener/src/index.ts +0 -0
  13. {wingman_ai-1.0.0 → wingman_ai-1.0.1}/node_listener/src/ipc.ts +0 -0
  14. {wingman_ai-1.0.0 → wingman_ai-1.0.1}/node_listener/src/messageHandler.ts +0 -0
  15. {wingman_ai-1.0.0 → wingman_ai-1.0.1}/node_listener/src/socket.ts +0 -0
  16. {wingman_ai-1.0.0 → wingman_ai-1.0.1}/node_listener/src/types.d.ts +0 -0
  17. {wingman_ai-1.0.0 → wingman_ai-1.0.1}/node_listener/tsconfig.json +0 -0
  18. {wingman_ai-1.0.0 → wingman_ai-1.0.1}/src/wingman/__init__.py +0 -0
  19. {wingman_ai-1.0.0 → wingman_ai-1.0.1}/src/wingman/__main__.py +0 -0
  20. {wingman_ai-1.0.0 → wingman_ai-1.0.1}/src/wingman/cli/__init__.py +0 -0
  21. {wingman_ai-1.0.0 → wingman_ai-1.0.1}/src/wingman/cli/commands/__init__.py +0 -0
  22. {wingman_ai-1.0.0 → wingman_ai-1.0.1}/src/wingman/cli/commands/auth.py +0 -0
  23. {wingman_ai-1.0.0 → wingman_ai-1.0.1}/src/wingman/cli/commands/config.py +0 -0
  24. {wingman_ai-1.0.0 → wingman_ai-1.0.1}/src/wingman/cli/commands/init.py +0 -0
  25. {wingman_ai-1.0.0 → wingman_ai-1.0.1}/src/wingman/cli/commands/logs.py +0 -0
  26. {wingman_ai-1.0.0 → wingman_ai-1.0.1}/src/wingman/cli/commands/start.py +0 -0
  27. {wingman_ai-1.0.0 → wingman_ai-1.0.1}/src/wingman/cli/commands/status.py +0 -0
  28. {wingman_ai-1.0.0 → wingman_ai-1.0.1}/src/wingman/cli/commands/stop.py +0 -0
  29. {wingman_ai-1.0.0 → wingman_ai-1.0.1}/src/wingman/cli/commands/uninstall.py +0 -0
  30. {wingman_ai-1.0.0 → wingman_ai-1.0.1}/src/wingman/cli/main.py +0 -0
  31. {wingman_ai-1.0.0 → wingman_ai-1.0.1}/src/wingman/config/__init__.py +0 -0
  32. {wingman_ai-1.0.0 → wingman_ai-1.0.1}/src/wingman/config/paths.py +0 -0
  33. {wingman_ai-1.0.0 → wingman_ai-1.0.1}/src/wingman/config/personality.py +0 -0
  34. {wingman_ai-1.0.0 → wingman_ai-1.0.1}/src/wingman/config/registry.py +0 -0
  35. {wingman_ai-1.0.0 → wingman_ai-1.0.1}/src/wingman/config/settings.py +0 -0
  36. {wingman_ai-1.0.0 → wingman_ai-1.0.1}/src/wingman/core/__init__.py +0 -0
  37. {wingman_ai-1.0.0 → wingman_ai-1.0.1}/src/wingman/core/agent.py +0 -0
  38. {wingman_ai-1.0.0 → wingman_ai-1.0.1}/src/wingman/core/ipc_handler.py +0 -0
  39. {wingman_ai-1.0.0 → wingman_ai-1.0.1}/src/wingman/core/llm/__init__.py +0 -0
  40. {wingman_ai-1.0.0 → wingman_ai-1.0.1}/src/wingman/core/llm/client.py +0 -0
  41. {wingman_ai-1.0.0 → wingman_ai-1.0.1}/src/wingman/core/memory/__init__.py +0 -0
  42. {wingman_ai-1.0.0 → wingman_ai-1.0.1}/src/wingman/core/memory/context.py +0 -0
  43. {wingman_ai-1.0.0 → wingman_ai-1.0.1}/src/wingman/core/memory/models.py +0 -0
  44. {wingman_ai-1.0.0 → wingman_ai-1.0.1}/src/wingman/core/message_processor.py +0 -0
  45. {wingman_ai-1.0.0 → wingman_ai-1.0.1}/src/wingman/core/policy/__init__.py +0 -0
  46. {wingman_ai-1.0.0 → wingman_ai-1.0.1}/src/wingman/core/policy/evaluator.py +0 -0
  47. {wingman_ai-1.0.0 → wingman_ai-1.0.1}/src/wingman/core/process_manager.py +0 -0
  48. {wingman_ai-1.0.0 → wingman_ai-1.0.1}/src/wingman/core/safety/__init__.py +0 -0
  49. {wingman_ai-1.0.0 → wingman_ai-1.0.1}/src/wingman/core/safety/cooldown.py +0 -0
  50. {wingman_ai-1.0.0 → wingman_ai-1.0.1}/src/wingman/core/safety/quiet_hours.py +0 -0
  51. {wingman_ai-1.0.0 → wingman_ai-1.0.1}/src/wingman/core/safety/rate_limiter.py +0 -0
  52. {wingman_ai-1.0.0 → wingman_ai-1.0.1}/src/wingman/core/safety/triggers.py +0 -0
  53. {wingman_ai-1.0.0 → wingman_ai-1.0.1}/src/wingman/core/transports/__init__.py +0 -0
  54. {wingman_ai-1.0.0 → wingman_ai-1.0.1}/src/wingman/core/transports/base.py +0 -0
  55. {wingman_ai-1.0.0 → wingman_ai-1.0.1}/src/wingman/core/transports/imessage/__init__.py +0 -0
  56. {wingman_ai-1.0.0 → wingman_ai-1.0.1}/src/wingman/core/transports/imessage/db_listener.py +0 -0
  57. {wingman_ai-1.0.0 → wingman_ai-1.0.1}/src/wingman/core/transports/imessage/sender.py +0 -0
  58. {wingman_ai-1.0.0 → wingman_ai-1.0.1}/src/wingman/core/transports/imessage/transport.py +0 -0
  59. {wingman_ai-1.0.0 → wingman_ai-1.0.1}/src/wingman/core/transports/whatsapp.py +0 -0
  60. {wingman_ai-1.0.0 → wingman_ai-1.0.1}/src/wingman/daemon/__init__.py +0 -0
  61. {wingman_ai-1.0.0 → wingman_ai-1.0.1}/src/wingman/daemon/manager.py +0 -0
  62. {wingman_ai-1.0.0 → wingman_ai-1.0.1}/src/wingman/installer/__init__.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: wingman-ai
3
- Version: 1.0.0
3
+ Version: 1.0.1
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
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "wingman-ai",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "wingman-ai",
9
- "version": "1.0.0",
9
+ "version": "1.0.1",
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.0",
3
+ "version": "1.0.1",
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
  }
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "wingman-ai"
7
- version = "1.0.0"
7
+ version = "1.0.1"
8
8
  description = "An AI-powered personal chat agent for WhatsApp and iMessage with configurable personality and policy-driven responses"
9
9
  readme = "README.md"
10
10
  license = "MIT"
@@ -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
-
115
- if self._test_api_key(api_key):
116
- self.console.print(" [green]✓[/green] API key is valid")
117
- else:
118
- self.console.print(" [red]✗[/red] API key test failed")
119
- proceed = questionary.confirm("Continue anyway?", default=False).ask()
120
- if not proceed:
121
- return None
114
+ test_result = self._test_api_key(api_key)
115
+
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
@@ -94,26 +94,23 @@ class NodeInstaller:
94
94
  """
95
95
  Find the bundled node_listener source.
96
96
 
97
- Checks:
98
- 1. Package data location (pip installed)
99
- 2. Development location (running from source)
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 importlib.resources
102
+ import sys
102
103
 
103
- # Try package data location first
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
- # Try shared data location (pip installed with pyproject.toml shared-data)
115
- import sys
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
- # Try development location (relative to this file)
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
File without changes
File without changes
File without changes