gibson-cli 0.7.7__tar.gz → 0.7.8__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 (144) hide show
  1. {gibson_cli-0.7.7/gibson_cli.egg-info → gibson_cli-0.7.8}/PKG-INFO +24 -19
  2. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/command/Help.py +6 -2
  3. gibson_cli-0.7.8/gibson/command/mcp/McpServer.py +25 -0
  4. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/core/CommandRouter.py +3 -0
  5. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/core/Completions.py +2 -2
  6. gibson_cli-0.7.8/gibson/services/mcp/server.py +13 -0
  7. {gibson_cli-0.7.7 → gibson_cli-0.7.8/gibson_cli.egg-info}/PKG-INFO +24 -19
  8. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson_cli.egg-info/SOURCES.txt +4 -1
  9. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson_cli.egg-info/requires.txt +20 -15
  10. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson_cli.egg-info/top_level.txt +1 -0
  11. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/pyproject.toml +4 -4
  12. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/requirements.txt +20 -15
  13. gibson_cli-0.7.8/venv/bin/activate_this.py +59 -0
  14. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/.gitignore +0 -0
  15. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/.pre-commit-config.yaml +0 -0
  16. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/README.md +0 -0
  17. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/bin/build.sh +0 -0
  18. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/bin/clean.sh +0 -0
  19. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/bin/gibson +0 -0
  20. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/bin/release.sh +0 -0
  21. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/api/BaseApi.py +0 -0
  22. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/api/Cli.py +0 -0
  23. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/api/ProjectApi.py +0 -0
  24. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/bin/gibson.py +0 -0
  25. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/command/BaseCommand.py +0 -0
  26. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/command/Build.py +0 -0
  27. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/command/Conf.py +0 -0
  28. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/command/Count.py +0 -0
  29. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/command/Dev.py +0 -0
  30. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/command/Forget.py +0 -0
  31. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/command/Merge.py +0 -0
  32. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/command/Modify.py +0 -0
  33. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/command/Question.py +0 -0
  34. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/command/Remove.py +0 -0
  35. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/command/Show.py +0 -0
  36. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/command/Tree.py +0 -0
  37. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/command/Version.py +0 -0
  38. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/command/auth/Auth.py +0 -0
  39. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/command/auth/Login.py +0 -0
  40. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/command/auth/Logout.py +0 -0
  41. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/command/code/Api.py +0 -0
  42. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/command/code/Base.py +0 -0
  43. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/command/code/Code.py +0 -0
  44. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/command/code/Entity.py +0 -0
  45. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/command/code/Model.py +0 -0
  46. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/command/code/Models.py +0 -0
  47. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/command/code/Schema.py +0 -0
  48. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/command/code/Schemas.py +0 -0
  49. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/command/code/Test.py +0 -0
  50. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/command/code/Tests.py +0 -0
  51. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/command/importer/Import.py +0 -0
  52. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/command/importer/OpenApi.py +0 -0
  53. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/command/list/Entities.py +0 -0
  54. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/command/list/List.py +0 -0
  55. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/command/list/Projects.py +0 -0
  56. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/command/new/Module.py +0 -0
  57. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/command/new/New.py +0 -0
  58. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/command/new/Project.py +0 -0
  59. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/command/rename/Entity.py +0 -0
  60. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/command/rename/Rename.py +0 -0
  61. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/command/rewrite/Rewrite.py +0 -0
  62. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/command/tests/test_command_BaseCommand.py +0 -0
  63. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/command/tests/test_command_Conf.py +0 -0
  64. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/conf/Api.py +0 -0
  65. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/conf/Code.py +0 -0
  66. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/conf/Custom.py +0 -0
  67. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/conf/Datastore.py +0 -0
  68. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/conf/Dependencies.py +0 -0
  69. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/conf/Dev.py +0 -0
  70. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/conf/Frameworks.py +0 -0
  71. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/conf/Modeler.py +0 -0
  72. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/conf/Paths.py +0 -0
  73. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/conf/Platform.py +0 -0
  74. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/conf/Project.py +0 -0
  75. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/conf/Version.py +0 -0
  76. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/conf/dev/Api.py +0 -0
  77. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/conf/dev/Base.py +0 -0
  78. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/conf/dev/Model.py +0 -0
  79. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/conf/dev/Schema.py +0 -0
  80. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/conf/tests/test_conf_Dependencies.py +0 -0
  81. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/conf/tests/test_conf_Platform.py +0 -0
  82. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/core/Colors.py +0 -0
  83. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/core/Configuration.py +0 -0
  84. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/core/Conversation.py +0 -0
  85. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/core/Diff.py +0 -0
  86. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/core/Env.py +0 -0
  87. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/core/Memory.py +0 -0
  88. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/core/PythonPath.py +0 -0
  89. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/core/Spinner.py +0 -0
  90. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/core/TimeKeeper.py +0 -0
  91. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/core/utils.py +0 -0
  92. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/data/bash-completion.tmpl +0 -0
  93. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/data/mysql/default-ref-table.tmpl +0 -0
  94. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/data/mysql/default-table.tmpl +0 -0
  95. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/data/postgresql/default-ref-table.tmpl +0 -0
  96. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/data/postgresql/default-table.tmpl +0 -0
  97. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/db/TableExceptions.py +0 -0
  98. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/db/tests/test_db_TableExceptions.py +0 -0
  99. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/dev/Dev.py +0 -0
  100. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/display/Header.py +0 -0
  101. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/display/WorkspaceFooter.py +0 -0
  102. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/display/WorkspaceHeader.py +0 -0
  103. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/display/tests/test_display_Header.py +0 -0
  104. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/display/tests/test_display_WorkspaceFooter.py +0 -0
  105. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/display/tests/test_display_WorkspaceHeader.py +0 -0
  106. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/lang/Python.py +0 -0
  107. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/lang/tests/test_lang_Python.py +0 -0
  108. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/services/auth/Server.py +0 -0
  109. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/services/code/context/schema/DataDictionary.py +0 -0
  110. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/services/code/context/schema/EntityKeys.py +0 -0
  111. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/services/code/context/schema/Manager.py +0 -0
  112. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/services/code/context/schema/tests/test_code_context_schema_DataDictionary.py +0 -0
  113. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/services/code/context/schema/tests/test_code_context_schema_EntityKeys.py +0 -0
  114. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/services/code/context/schema/tests/test_code_context_schema_Manager.py +0 -0
  115. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/services/code/customization/Authenticator.py +0 -0
  116. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/services/code/customization/BaseCustomization.py +0 -0
  117. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/services/code/customization/CustomizationManager.py +0 -0
  118. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/services/code/customization/Index.py +0 -0
  119. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/services/code/customization/tests/test_code_customization_Authenticator.py +0 -0
  120. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/services/code/customization/tests/test_code_customization_BaseCustomization.py +0 -0
  121. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/structure/Entity.py +0 -0
  122. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/structure/mysql/Entity.py +0 -0
  123. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/structure/mysql/constraints/ReferenceConstraint.py +0 -0
  124. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/structure/mysql/keys/ForeignKey.py +0 -0
  125. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/structure/mysql/keys/Index.py +0 -0
  126. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/structure/mysql/keys/IndexAttribute.py +0 -0
  127. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/structure/mysql/keys/tests/test_structure_mysql_keys_ForeignKey.py +0 -0
  128. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/structure/mysql/keys/tests/test_structure_mysql_keys_Index.py +0 -0
  129. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/structure/mysql/keys/tests/test_structure_mysql_keys_IndexAttribute.py +0 -0
  130. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/structure/mysql/testing.py +0 -0
  131. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/structure/mysql/tests/test_structure_mysql_Entity.py +0 -0
  132. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/structure/postgresql/Entity.py +0 -0
  133. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/structure/postgresql/References.py +0 -0
  134. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/structure/postgresql/table/ForeignKey.py +0 -0
  135. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/structure/postgresql/table/tests/test_structure_postgresql_table_ForeignKey.py +0 -0
  136. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/structure/postgresql/testing.py +0 -0
  137. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/structure/postgresql/tests/test_structure_postgresql_Entity.py +0 -0
  138. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/structure/tests/test_structure_Entity.py +0 -0
  139. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/tests/test_Env.py +0 -0
  140. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/tests/test_Memory.py +0 -0
  141. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson/tests/test_utils.py +0 -0
  142. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson_cli.egg-info/dependency_links.txt +0 -0
  143. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/gibson_cli.egg-info/entry_points.txt +0 -0
  144. {gibson_cli-0.7.7 → gibson_cli-0.7.8}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.2
1
+ Metadata-Version: 2.4
2
2
  Name: gibson-cli
3
- Version: 0.7.7
3
+ Version: 0.7.8
4
4
  Summary: Gibson Command Line Interface
5
5
  Author-email: GibsonAI <noc@gibsonai.com>
6
6
  Project-URL: Homepage, https://gibsonai.com/
@@ -11,55 +11,60 @@ Project-URL: Changelog, https://github.com/gibsonai/cli/releases
11
11
  Classifier: Operating System :: OS Independent
12
12
  Classifier: Development Status :: 4 - Beta
13
13
  Classifier: Intended Audience :: Developers
14
- Classifier: Programming Language :: Python :: 3.9
15
- Requires-Python: >=3.9
14
+ Classifier: Programming Language :: Python :: 3.10
15
+ Requires-Python: >=3.10
16
16
  Description-Content-Type: text/markdown
17
17
  Requires-Dist: annotated-types==0.6.0
18
- Requires-Dist: anyio==4.3.0
18
+ Requires-Dist: anyio==4.9.0
19
19
  Requires-Dist: certifi==2024.2.2
20
20
  Requires-Dist: charset-normalizer==3.3.2
21
21
  Requires-Dist: click==8.1.7
22
22
  Requires-Dist: dnspython==2.6.1
23
- Requires-Dist: email_validator==2.1.1
23
+ Requires-Dist: email-validator==2.1.1
24
24
  Requires-Dist: exceptiongroup==1.2.0
25
- Requires-Dist: Faker==24.0.0
26
- Requires-Dist: faker_sqlalchemy==0.10.2208140
27
- Requires-Dist: fastapi==0.111.0
25
+ Requires-Dist: faker==24.0.0
26
+ Requires-Dist: faker-sqlalchemy==0.10.2208140
27
+ Requires-Dist: fastapi==0.115.12
28
28
  Requires-Dist: fastapi-cli==0.0.2
29
29
  Requires-Dist: h11==0.14.0
30
30
  Requires-Dist: httpcore==1.0.5
31
31
  Requires-Dist: httptools==0.6.1
32
32
  Requires-Dist: httpx==0.27.0
33
+ Requires-Dist: httpx-sse==0.4.0
33
34
  Requires-Dist: idna==3.6
34
35
  Requires-Dist: iniconfig==2.0.0
35
- Requires-Dist: Jinja2==3.1.4
36
+ Requires-Dist: jinja2==3.1.4
36
37
  Requires-Dist: markdown-it-py==3.0.0
37
- Requires-Dist: MarkupSafe==2.1.5
38
+ Requires-Dist: markupsafe==2.1.5
39
+ Requires-Dist: mcp==1.6.0
38
40
  Requires-Dist: mdurl==0.1.2
39
41
  Requires-Dist: orjson==3.10.3
40
42
  Requires-Dist: packaging==23.2
41
43
  Requires-Dist: pluggy==1.4.0
42
- Requires-Dist: pydantic==2.6.1
43
- Requires-Dist: pydantic_core==2.16.2
44
+ Requires-Dist: pydantic==2.11.0
45
+ Requires-Dist: pydantic-core==2.33.0
46
+ Requires-Dist: pydantic-settings==2.8.1
44
47
  Requires-Dist: pyfiglet==1.0.2
45
- Requires-Dist: Pygments==2.18.0
46
- Requires-Dist: PyMySQL==1.1.0
48
+ Requires-Dist: pygments==2.18.0
49
+ Requires-Dist: pymysql==1.1.0
47
50
  Requires-Dist: pytest==8.0.1
48
51
  Requires-Dist: python-dateutil==2.9.0.post0
49
52
  Requires-Dist: python-dotenv==1.0.1
50
53
  Requires-Dist: python-multipart==0.0.9
51
- Requires-Dist: PyYAML==6.0.1
54
+ Requires-Dist: pyyaml==6.0.1
52
55
  Requires-Dist: requests==2.31.0
53
56
  Requires-Dist: rich==13.9.2
54
57
  Requires-Dist: shellingham==1.5.4
55
58
  Requires-Dist: six==1.16.0
56
59
  Requires-Dist: sniffio==1.3.1
57
- Requires-Dist: SQLAlchemy==1.4.41
58
- Requires-Dist: starlette==0.37.2
60
+ Requires-Dist: sqlalchemy==1.4.41
61
+ Requires-Dist: sse-starlette==2.2.1
62
+ Requires-Dist: starlette==0.46.1
59
63
  Requires-Dist: textual==0.83.0
60
64
  Requires-Dist: tomli==2.0.1
61
65
  Requires-Dist: typer==0.12.3
62
- Requires-Dist: typing_extensions==4.9.0
66
+ Requires-Dist: typing-extensions==4.13.0
67
+ Requires-Dist: typing-inspection==0.4.0
63
68
  Requires-Dist: ujson==5.9.0
64
69
  Requires-Dist: urllib3==1.26.6
65
70
  Requires-Dist: uvicorn==0.29.0
@@ -3,7 +3,6 @@ from rich.console import Console
3
3
  from rich.table import Table
4
4
  from rich.text import Text
5
5
 
6
- import gibson.core.Colors as Colors
7
6
  from gibson.command.BaseCommand import BaseCommand
8
7
  from gibson.core.Memory import Memory
9
8
 
@@ -57,7 +56,7 @@ class Help(BaseCommand):
57
56
  "memory": None,
58
57
  },
59
58
  "forget": {
60
- "description": f"delete entities from memory",
59
+ "description": "delete entities from memory",
61
60
  "subcommands": ["all", "last", "stored"],
62
61
  "memory": "based on user selection",
63
62
  },
@@ -72,6 +71,11 @@ class Help(BaseCommand):
72
71
  "subcommands": ["entities", "projects"],
73
72
  "memory": None,
74
73
  },
74
+ "mcp": {
75
+ "description": "allows tools like Cursor to interact with your gibson project",
76
+ "subcommands": ["run"],
77
+ "memory": None,
78
+ },
75
79
  "merge": {
76
80
  "description": "merge last memory (recent changes) into stored project memory",
77
81
  "subcommands": None,
@@ -0,0 +1,25 @@
1
+ import signal
2
+ import sys
3
+
4
+ import gibson.core.Colors as Colors
5
+ from gibson.command.BaseCommand import BaseCommand
6
+ from gibson.services.mcp.server import mcp
7
+
8
+
9
+ class McpServer(BaseCommand):
10
+ def execute(self):
11
+ if len(sys.argv) == 3 and sys.argv[2] == "run":
12
+ # Setup signal handlers to exit the server
13
+ signal.signal(signal.SIGTERM, lambda signo, frame: sys.exit(0))
14
+ signal.signal(signal.SIGINT, lambda signo, frame: sys.exit(0))
15
+ mcp.run()
16
+ else:
17
+ self.usage()
18
+
19
+ def usage(self):
20
+ self.configuration.display_project()
21
+ self.conversation.type(
22
+ f"usage: {Colors.command(self.configuration.command, 'mcp', args='run', hint='run the mcp server')}\n"
23
+ )
24
+ self.conversation.newline()
25
+ exit(1)
@@ -10,6 +10,7 @@ from gibson.command.Forget import Forget
10
10
  from gibson.command.Help import Help
11
11
  from gibson.command.importer.Import import Import
12
12
  from gibson.command.list.List import List
13
+ from gibson.command.mcp.McpServer import McpServer
13
14
  from gibson.command.Merge import Merge
14
15
  from gibson.command.Modify import Modify
15
16
  from gibson.command.new.New import New
@@ -58,6 +59,8 @@ class CommandRouter:
58
59
  command = Import(self.configuration)
59
60
  elif sys.argv[1] == "list":
60
61
  command = List(self.configuration)
62
+ elif sys.argv[1] == "mcp":
63
+ command = McpServer(self.configuration)
61
64
  elif sys.argv[1] == "merge":
62
65
  command = Merge(self.configuration)
63
66
  elif sys.argv[1] == "modify":
@@ -8,7 +8,7 @@ class Completions:
8
8
  self.file_name = "bash_completion"
9
9
 
10
10
  def install(self):
11
- completions_location = f"$HOME/{self.gibson_config}/{self.file_name}"
11
+ completions_location = f"{self.user_home}/{self.gibson_config}/{self.file_name}"
12
12
  installation = f"""\n[ -s "{completions_location}" ] && \\. "{completions_location}" # Load gibson auto completion\n"""
13
13
 
14
14
  for file in [f"{self.user_home}/.bashrc", f"{self.user_home}/.zshrc"]:
@@ -21,7 +21,7 @@ class Completions:
21
21
 
22
22
  def write(self):
23
23
  try:
24
- file = os.path.dirname(__file__) + f"/../data/bash-completion.tmpl"
24
+ file = os.path.dirname(__file__) + "/../data/bash-completion.tmpl"
25
25
  with open(file, "r") as f:
26
26
  contents = f.read()
27
27
  except FileNotFoundError:
@@ -0,0 +1,13 @@
1
+ import os
2
+
3
+ from mcp.server.fastmcp import FastMCP
4
+
5
+ mcp = FastMCP("GibsonAI")
6
+
7
+ # Note: Resources are not yet supported by Cursor, everything must be implemented as a tool
8
+
9
+
10
+ @mcp.tool()
11
+ def get_project_name() -> str:
12
+ """Get the gibson project name"""
13
+ return os.environ.get("GIBSONAI_PROJECT")
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.2
1
+ Metadata-Version: 2.4
2
2
  Name: gibson-cli
3
- Version: 0.7.7
3
+ Version: 0.7.8
4
4
  Summary: Gibson Command Line Interface
5
5
  Author-email: GibsonAI <noc@gibsonai.com>
6
6
  Project-URL: Homepage, https://gibsonai.com/
@@ -11,55 +11,60 @@ Project-URL: Changelog, https://github.com/gibsonai/cli/releases
11
11
  Classifier: Operating System :: OS Independent
12
12
  Classifier: Development Status :: 4 - Beta
13
13
  Classifier: Intended Audience :: Developers
14
- Classifier: Programming Language :: Python :: 3.9
15
- Requires-Python: >=3.9
14
+ Classifier: Programming Language :: Python :: 3.10
15
+ Requires-Python: >=3.10
16
16
  Description-Content-Type: text/markdown
17
17
  Requires-Dist: annotated-types==0.6.0
18
- Requires-Dist: anyio==4.3.0
18
+ Requires-Dist: anyio==4.9.0
19
19
  Requires-Dist: certifi==2024.2.2
20
20
  Requires-Dist: charset-normalizer==3.3.2
21
21
  Requires-Dist: click==8.1.7
22
22
  Requires-Dist: dnspython==2.6.1
23
- Requires-Dist: email_validator==2.1.1
23
+ Requires-Dist: email-validator==2.1.1
24
24
  Requires-Dist: exceptiongroup==1.2.0
25
- Requires-Dist: Faker==24.0.0
26
- Requires-Dist: faker_sqlalchemy==0.10.2208140
27
- Requires-Dist: fastapi==0.111.0
25
+ Requires-Dist: faker==24.0.0
26
+ Requires-Dist: faker-sqlalchemy==0.10.2208140
27
+ Requires-Dist: fastapi==0.115.12
28
28
  Requires-Dist: fastapi-cli==0.0.2
29
29
  Requires-Dist: h11==0.14.0
30
30
  Requires-Dist: httpcore==1.0.5
31
31
  Requires-Dist: httptools==0.6.1
32
32
  Requires-Dist: httpx==0.27.0
33
+ Requires-Dist: httpx-sse==0.4.0
33
34
  Requires-Dist: idna==3.6
34
35
  Requires-Dist: iniconfig==2.0.0
35
- Requires-Dist: Jinja2==3.1.4
36
+ Requires-Dist: jinja2==3.1.4
36
37
  Requires-Dist: markdown-it-py==3.0.0
37
- Requires-Dist: MarkupSafe==2.1.5
38
+ Requires-Dist: markupsafe==2.1.5
39
+ Requires-Dist: mcp==1.6.0
38
40
  Requires-Dist: mdurl==0.1.2
39
41
  Requires-Dist: orjson==3.10.3
40
42
  Requires-Dist: packaging==23.2
41
43
  Requires-Dist: pluggy==1.4.0
42
- Requires-Dist: pydantic==2.6.1
43
- Requires-Dist: pydantic_core==2.16.2
44
+ Requires-Dist: pydantic==2.11.0
45
+ Requires-Dist: pydantic-core==2.33.0
46
+ Requires-Dist: pydantic-settings==2.8.1
44
47
  Requires-Dist: pyfiglet==1.0.2
45
- Requires-Dist: Pygments==2.18.0
46
- Requires-Dist: PyMySQL==1.1.0
48
+ Requires-Dist: pygments==2.18.0
49
+ Requires-Dist: pymysql==1.1.0
47
50
  Requires-Dist: pytest==8.0.1
48
51
  Requires-Dist: python-dateutil==2.9.0.post0
49
52
  Requires-Dist: python-dotenv==1.0.1
50
53
  Requires-Dist: python-multipart==0.0.9
51
- Requires-Dist: PyYAML==6.0.1
54
+ Requires-Dist: pyyaml==6.0.1
52
55
  Requires-Dist: requests==2.31.0
53
56
  Requires-Dist: rich==13.9.2
54
57
  Requires-Dist: shellingham==1.5.4
55
58
  Requires-Dist: six==1.16.0
56
59
  Requires-Dist: sniffio==1.3.1
57
- Requires-Dist: SQLAlchemy==1.4.41
58
- Requires-Dist: starlette==0.37.2
60
+ Requires-Dist: sqlalchemy==1.4.41
61
+ Requires-Dist: sse-starlette==2.2.1
62
+ Requires-Dist: starlette==0.46.1
59
63
  Requires-Dist: textual==0.83.0
60
64
  Requires-Dist: tomli==2.0.1
61
65
  Requires-Dist: typer==0.12.3
62
- Requires-Dist: typing_extensions==4.9.0
66
+ Requires-Dist: typing-extensions==4.13.0
67
+ Requires-Dist: typing-inspection==0.4.0
63
68
  Requires-Dist: ujson==5.9.0
64
69
  Requires-Dist: urllib3==1.26.6
65
70
  Requires-Dist: uvicorn==0.29.0
@@ -43,6 +43,7 @@ gibson/command/importer/OpenApi.py
43
43
  gibson/command/list/Entities.py
44
44
  gibson/command/list/List.py
45
45
  gibson/command/list/Projects.py
46
+ gibson/command/mcp/McpServer.py
46
47
  gibson/command/new/Module.py
47
48
  gibson/command/new/New.py
48
49
  gibson/command/new/Project.py
@@ -110,6 +111,7 @@ gibson/services/code/customization/CustomizationManager.py
110
111
  gibson/services/code/customization/Index.py
111
112
  gibson/services/code/customization/tests/test_code_customization_Authenticator.py
112
113
  gibson/services/code/customization/tests/test_code_customization_BaseCustomization.py
114
+ gibson/services/mcp/server.py
113
115
  gibson/structure/Entity.py
114
116
  gibson/structure/mysql/Entity.py
115
117
  gibson/structure/mysql/testing.py
@@ -136,4 +138,5 @@ gibson_cli.egg-info/SOURCES.txt
136
138
  gibson_cli.egg-info/dependency_links.txt
137
139
  gibson_cli.egg-info/entry_points.txt
138
140
  gibson_cli.egg-info/requires.txt
139
- gibson_cli.egg-info/top_level.txt
141
+ gibson_cli.egg-info/top_level.txt
142
+ venv/bin/activate_this.py
@@ -1,49 +1,54 @@
1
1
  annotated-types==0.6.0
2
- anyio==4.3.0
2
+ anyio==4.9.0
3
3
  certifi==2024.2.2
4
4
  charset-normalizer==3.3.2
5
5
  click==8.1.7
6
6
  dnspython==2.6.1
7
- email_validator==2.1.1
7
+ email-validator==2.1.1
8
8
  exceptiongroup==1.2.0
9
- Faker==24.0.0
10
- faker_sqlalchemy==0.10.2208140
11
- fastapi==0.111.0
9
+ faker==24.0.0
10
+ faker-sqlalchemy==0.10.2208140
11
+ fastapi==0.115.12
12
12
  fastapi-cli==0.0.2
13
13
  h11==0.14.0
14
14
  httpcore==1.0.5
15
15
  httptools==0.6.1
16
16
  httpx==0.27.0
17
+ httpx-sse==0.4.0
17
18
  idna==3.6
18
19
  iniconfig==2.0.0
19
- Jinja2==3.1.4
20
+ jinja2==3.1.4
20
21
  markdown-it-py==3.0.0
21
- MarkupSafe==2.1.5
22
+ markupsafe==2.1.5
23
+ mcp==1.6.0
22
24
  mdurl==0.1.2
23
25
  orjson==3.10.3
24
26
  packaging==23.2
25
27
  pluggy==1.4.0
26
- pydantic==2.6.1
27
- pydantic_core==2.16.2
28
+ pydantic==2.11.0
29
+ pydantic-core==2.33.0
30
+ pydantic-settings==2.8.1
28
31
  pyfiglet==1.0.2
29
- Pygments==2.18.0
30
- PyMySQL==1.1.0
32
+ pygments==2.18.0
33
+ pymysql==1.1.0
31
34
  pytest==8.0.1
32
35
  python-dateutil==2.9.0.post0
33
36
  python-dotenv==1.0.1
34
37
  python-multipart==0.0.9
35
- PyYAML==6.0.1
38
+ pyyaml==6.0.1
36
39
  requests==2.31.0
37
40
  rich==13.9.2
38
41
  shellingham==1.5.4
39
42
  six==1.16.0
40
43
  sniffio==1.3.1
41
- SQLAlchemy==1.4.41
42
- starlette==0.37.2
44
+ sqlalchemy==1.4.41
45
+ sse-starlette==2.2.1
46
+ starlette==0.46.1
43
47
  textual==0.83.0
44
48
  tomli==2.0.1
45
49
  typer==0.12.3
46
- typing_extensions==4.9.0
50
+ typing-extensions==4.13.0
51
+ typing-inspection==0.4.0
47
52
  ujson==5.9.0
48
53
  urllib3==1.26.6
49
54
  uvicorn==0.29.0
@@ -1,4 +1,5 @@
1
1
  bin
2
+ build
2
3
  dist
3
4
  gibson
4
5
  venv
@@ -8,14 +8,14 @@ authors = [{ name = "GibsonAI", email = "noc@gibsonai.com" }]
8
8
  description = "Gibson Command Line Interface"
9
9
  dynamic = ["dependencies"]
10
10
  readme = "README.md"
11
- requires-python = ">=3.9"
11
+ requires-python = ">=3.10"
12
12
  classifiers = [
13
13
  "Operating System :: OS Independent",
14
14
  "Development Status :: 4 - Beta",
15
15
  "Intended Audience :: Developers",
16
- "Programming Language :: Python :: 3.9",
16
+ "Programming Language :: Python :: 3.10",
17
17
  ]
18
- version = "0.7.7"
18
+ version = "0.7.8"
19
19
 
20
20
  [tool.setuptools.packages.find]
21
21
  where = ["."]
@@ -40,7 +40,7 @@ gibson = "gibson.bin.gibson:main"
40
40
 
41
41
  [tool.black]
42
42
  line-length = 88
43
- target-version = ['py39']
43
+ target-version = ['py310']
44
44
 
45
45
  [tool.isort]
46
46
  profile = "black"
@@ -1,49 +1,54 @@
1
1
  annotated-types==0.6.0
2
- anyio==4.3.0
2
+ anyio==4.9.0
3
3
  certifi==2024.2.2
4
4
  charset-normalizer==3.3.2
5
5
  click==8.1.7
6
6
  dnspython==2.6.1
7
- email_validator==2.1.1
7
+ email-validator==2.1.1
8
8
  exceptiongroup==1.2.0
9
- Faker==24.0.0
10
- faker_sqlalchemy==0.10.2208140
11
- fastapi==0.111.0
9
+ faker==24.0.0
10
+ faker-sqlalchemy==0.10.2208140
11
+ fastapi==0.115.12
12
12
  fastapi-cli==0.0.2
13
13
  h11==0.14.0
14
14
  httpcore==1.0.5
15
15
  httptools==0.6.1
16
16
  httpx==0.27.0
17
+ httpx-sse==0.4.0
17
18
  idna==3.6
18
19
  iniconfig==2.0.0
19
- Jinja2==3.1.4
20
+ jinja2==3.1.4
20
21
  markdown-it-py==3.0.0
21
- MarkupSafe==2.1.5
22
+ markupsafe==2.1.5
23
+ mcp==1.6.0
22
24
  mdurl==0.1.2
23
25
  orjson==3.10.3
24
26
  packaging==23.2
25
27
  pluggy==1.4.0
26
- pydantic==2.6.1
27
- pydantic_core==2.16.2
28
+ pydantic==2.11.0
29
+ pydantic-core==2.33.0
30
+ pydantic-settings==2.8.1
28
31
  pyfiglet==1.0.2
29
- Pygments==2.18.0
30
- PyMySQL==1.1.0
32
+ pygments==2.18.0
33
+ pymysql==1.1.0
31
34
  pytest==8.0.1
32
35
  python-dateutil==2.9.0.post0
33
36
  python-dotenv==1.0.1
34
37
  python-multipart==0.0.9
35
- PyYAML==6.0.1
38
+ pyyaml==6.0.1
36
39
  requests==2.31.0
37
40
  rich==13.9.2
38
41
  shellingham==1.5.4
39
42
  six==1.16.0
40
43
  sniffio==1.3.1
41
- SQLAlchemy==1.4.41
42
- starlette==0.37.2
44
+ sqlalchemy==1.4.41
45
+ sse-starlette==2.2.1
46
+ starlette==0.46.1
43
47
  textual==0.83.0
44
48
  tomli==2.0.1
45
49
  typer==0.12.3
46
- typing_extensions==4.9.0
50
+ typing-extensions==4.13.0
51
+ typing-inspection==0.4.0
47
52
  ujson==5.9.0
48
53
  urllib3==1.26.6
49
54
  uvicorn==0.29.0
@@ -0,0 +1,59 @@
1
+ # Copyright (c) 2020-202x The virtualenv developers
2
+ #
3
+ # Permission is hereby granted, free of charge, to any person obtaining
4
+ # a copy of this software and associated documentation files (the
5
+ # "Software"), to deal in the Software without restriction, including
6
+ # without limitation the rights to use, copy, modify, merge, publish,
7
+ # distribute, sublicense, and/or sell copies of the Software, and to
8
+ # permit persons to whom the Software is furnished to do so, subject to
9
+ # the following conditions:
10
+ #
11
+ # The above copyright notice and this permission notice shall be
12
+ # included in all copies or substantial portions of the Software.
13
+ #
14
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21
+
22
+ """
23
+ Activate virtualenv for current interpreter:
24
+
25
+ import runpy
26
+ runpy.run_path(this_file)
27
+
28
+ This can be used when you must use an existing Python interpreter, not the virtualenv bin/python.
29
+ """ # noqa: D415
30
+
31
+ from __future__ import annotations
32
+
33
+ import os
34
+ import site
35
+ import sys
36
+
37
+ try:
38
+ abs_file = os.path.abspath(__file__)
39
+ except NameError as exc:
40
+ msg = "You must use import runpy; runpy.run_path(this_file)"
41
+ raise AssertionError(msg) from exc
42
+
43
+ bin_dir = os.path.dirname(abs_file)
44
+ base = bin_dir[: -len("bin") - 1] # strip away the bin part from the __file__, plus the path separator
45
+
46
+ # prepend bin to PATH (this file is inside the bin directory)
47
+ os.environ["PATH"] = os.pathsep.join([bin_dir, *os.environ.get("PATH", "").split(os.pathsep)])
48
+ os.environ["VIRTUAL_ENV"] = base # virtual env is right above bin directory
49
+ os.environ["VIRTUAL_ENV_PROMPT"] = "" or os.path.basename(base) # noqa: SIM222
50
+
51
+ # add the virtual environments libraries to the host python import mechanism
52
+ prev_length = len(sys.path)
53
+ for lib in "../lib/python3.10/site-packages".split(os.pathsep):
54
+ path = os.path.realpath(os.path.join(bin_dir, lib))
55
+ site.addsitedir(path)
56
+ sys.path[:] = sys.path[prev_length:] + sys.path[0:prev_length]
57
+
58
+ sys.real_prefix = sys.prefix
59
+ sys.prefix = base
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes