truefoundry 0.2.2rc3__tar.gz → 0.2.3rc1__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.
Potentially problematic release.
This version of truefoundry might be problematic. Click here for more details.
- {truefoundry-0.2.2rc3 → truefoundry-0.2.3rc1}/PKG-INFO +2 -2
- {truefoundry-0.2.2rc3 → truefoundry-0.2.3rc1}/pyproject.toml +2 -2
- {truefoundry-0.2.2rc3 → truefoundry-0.2.3rc1}/truefoundry/autodeploy/cli.py +12 -7
- {truefoundry-0.2.2rc3 → truefoundry-0.2.3rc1}/truefoundry/autodeploy/constants.py +3 -9
- {truefoundry-0.2.2rc3 → truefoundry-0.2.3rc1}/truefoundry/autodeploy/tools/file_type_counts.py +1 -1
- {truefoundry-0.2.2rc3 → truefoundry-0.2.3rc1}/truefoundry/autodeploy/tools/list_files.py +1 -1
- {truefoundry-0.2.2rc3 → truefoundry-0.2.3rc1}/truefoundry/autodeploy/tools/send_request.py +1 -1
- {truefoundry-0.2.2rc3 → truefoundry-0.2.3rc1}/truefoundry/deploy/cli/deploy.py +0 -7
- {truefoundry-0.2.2rc3 → truefoundry-0.2.3rc1}/README.md +0 -0
- {truefoundry-0.2.2rc3 → truefoundry-0.2.3rc1}/truefoundry/__init__.py +0 -0
- {truefoundry-0.2.2rc3 → truefoundry-0.2.3rc1}/truefoundry/autodeploy/__init__.py +0 -0
- {truefoundry-0.2.2rc3 → truefoundry-0.2.3rc1}/truefoundry/autodeploy/agents/__init__.py +0 -0
- {truefoundry-0.2.2rc3 → truefoundry-0.2.3rc1}/truefoundry/autodeploy/agents/base.py +0 -0
- {truefoundry-0.2.2rc3 → truefoundry-0.2.3rc1}/truefoundry/autodeploy/agents/developer.py +0 -0
- {truefoundry-0.2.2rc3 → truefoundry-0.2.3rc1}/truefoundry/autodeploy/agents/project_identifier.py +0 -0
- {truefoundry-0.2.2rc3 → truefoundry-0.2.3rc1}/truefoundry/autodeploy/agents/tester.py +0 -0
- {truefoundry-0.2.2rc3 → truefoundry-0.2.3rc1}/truefoundry/autodeploy/exception.py +0 -0
- {truefoundry-0.2.2rc3 → truefoundry-0.2.3rc1}/truefoundry/autodeploy/logger.py +0 -0
- {truefoundry-0.2.2rc3 → truefoundry-0.2.3rc1}/truefoundry/autodeploy/tools/__init__.py +0 -0
- {truefoundry-0.2.2rc3 → truefoundry-0.2.3rc1}/truefoundry/autodeploy/tools/ask.py +0 -0
- {truefoundry-0.2.2rc3 → truefoundry-0.2.3rc1}/truefoundry/autodeploy/tools/base.py +0 -0
- {truefoundry-0.2.2rc3 → truefoundry-0.2.3rc1}/truefoundry/autodeploy/tools/commit.py +0 -0
- {truefoundry-0.2.2rc3 → truefoundry-0.2.3rc1}/truefoundry/autodeploy/tools/docker_build.py +0 -0
- {truefoundry-0.2.2rc3 → truefoundry-0.2.3rc1}/truefoundry/autodeploy/tools/docker_run.py +0 -0
- {truefoundry-0.2.2rc3 → truefoundry-0.2.3rc1}/truefoundry/autodeploy/tools/read_file.py +0 -0
- {truefoundry-0.2.2rc3 → truefoundry-0.2.3rc1}/truefoundry/autodeploy/tools/write_file.py +0 -0
- {truefoundry-0.2.2rc3 → truefoundry-0.2.3rc1}/truefoundry/autodeploy/utils/client.py +0 -0
- {truefoundry-0.2.2rc3 → truefoundry-0.2.3rc1}/truefoundry/autodeploy/utils/diff.py +0 -0
- {truefoundry-0.2.2rc3 → truefoundry-0.2.3rc1}/truefoundry/autodeploy/utils/pydantic_compat.py +0 -0
- {truefoundry-0.2.2rc3 → truefoundry-0.2.3rc1}/truefoundry/cli/__init__.py +0 -0
- {truefoundry-0.2.2rc3 → truefoundry-0.2.3rc1}/truefoundry/cli/__main__.py +0 -0
- {truefoundry-0.2.2rc3 → truefoundry-0.2.3rc1}/truefoundry/deploy/__init__.py +0 -0
- {truefoundry-0.2.2rc3 → truefoundry-0.2.3rc1}/truefoundry/deploy/cli/__init__.py +0 -0
- {truefoundry-0.2.2rc3 → truefoundry-0.2.3rc1}/truefoundry/deploy/cli/cli.py +0 -0
- {truefoundry-0.2.2rc3 → truefoundry-0.2.3rc1}/truefoundry/deploy/cli/version.py +0 -0
- {truefoundry-0.2.2rc3 → truefoundry-0.2.3rc1}/truefoundry/langchain/__init__.py +0 -0
- {truefoundry-0.2.2rc3 → truefoundry-0.2.3rc1}/truefoundry/ml/__init__.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: truefoundry
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.3rc1
|
|
4
4
|
Summary: Truefoundry CLI
|
|
5
5
|
Author: Abhishek Choudhary
|
|
6
6
|
Author-email: abhichoudhary06@gmail.com
|
|
@@ -21,7 +21,7 @@ Requires-Dist: pydantic (>=1.10.0,<3)
|
|
|
21
21
|
Requires-Dist: python-dotenv (>=1.0.1,<2.0.0)
|
|
22
22
|
Requires-Dist: requests (>=2.31.0,<3.0.0)
|
|
23
23
|
Requires-Dist: rich (>=13.7.1,<14.0.0)
|
|
24
|
-
Requires-Dist: servicefoundry (==0.10.
|
|
24
|
+
Requires-Dist: servicefoundry (==0.10.12)
|
|
25
25
|
Description-Content-Type: text/markdown
|
|
26
26
|
|
|
27
27
|
# Truefoundry
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
[tool.poetry]
|
|
2
2
|
name = "truefoundry"
|
|
3
|
-
version = "0.2.
|
|
3
|
+
version = "0.2.3rc1"
|
|
4
4
|
description = "Truefoundry CLI"
|
|
5
5
|
authors = ["Abhishek Choudhary <abhichoudhary06@gmail.com>"]
|
|
6
6
|
readme = "README.md"
|
|
7
7
|
|
|
8
8
|
[tool.poetry.dependencies]
|
|
9
9
|
python = "^3.8,<3.13"
|
|
10
|
-
servicefoundry = "0.10.
|
|
10
|
+
servicefoundry = "0.10.12"
|
|
11
11
|
mlfoundry = { version = "0.10.9", optional = true }
|
|
12
12
|
openai = "^1.16.2"
|
|
13
13
|
docker = "^7.0.0"
|
|
@@ -28,7 +28,6 @@ from truefoundry.autodeploy.agents.project_identifier import (
|
|
|
28
28
|
from truefoundry.autodeploy.agents.tester import Tester
|
|
29
29
|
from truefoundry.autodeploy.constants import (
|
|
30
30
|
ABOUT_AUTODEPLOY,
|
|
31
|
-
AUTODEPLOY_INTRO_MESSAGE,
|
|
32
31
|
AUTODEPLOY_OPENAI_API_KEY,
|
|
33
32
|
AUTODEPLOY_OPENAI_BASE_URL,
|
|
34
33
|
AUTODEPLOY_TFY_BASE_URL,
|
|
@@ -188,7 +187,7 @@ def _check_repo(project_root_path: str, console: Console):
|
|
|
188
187
|
sys.exit(1)
|
|
189
188
|
|
|
190
189
|
|
|
191
|
-
def _update_status(event, status: Status):
|
|
190
|
+
def _update_status(event, status: Status, component_type: ComponentType):
|
|
192
191
|
if isinstance(event, (AskQuestion, CommitConfirmation)):
|
|
193
192
|
status.stop()
|
|
194
193
|
|
|
@@ -210,9 +209,14 @@ def _update_status(event, status: Status):
|
|
|
210
209
|
)
|
|
211
210
|
|
|
212
211
|
if isinstance(event, DockerRunLog):
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
212
|
+
if component_type == ComponentType.SERVICE:
|
|
213
|
+
status.update(
|
|
214
|
+
"[bold cyan]Running:[/] [bold magenta]TrueFoundry[/] is running your app in a Docker container. Press ctrl+c once your app is ready for testing."
|
|
215
|
+
)
|
|
216
|
+
else:
|
|
217
|
+
status.update(
|
|
218
|
+
"[bold cyan]Running:[/] [bold magenta]TrueFoundry[/] is running your app in a Docker container and waiting for completion."
|
|
219
|
+
)
|
|
216
220
|
|
|
217
221
|
|
|
218
222
|
def _get_default_project_name(project_root_path: str):
|
|
@@ -238,7 +242,6 @@ def cli(project_root_path: str, deploy: bool, workspace_fqn: str = None):
|
|
|
238
242
|
docker_client = _get_docker(console)
|
|
239
243
|
project_root_path = os.path.abspath(project_root_path)
|
|
240
244
|
console.print(ABOUT_AUTODEPLOY)
|
|
241
|
-
console.print(AUTODEPLOY_INTRO_MESSAGE)
|
|
242
245
|
console.print(
|
|
243
246
|
"[bold reverse]You will need to have Docker and Git installed on your machine for this to work[/]"
|
|
244
247
|
)
|
|
@@ -328,7 +331,9 @@ def cli(project_root_path: str, deploy: bool, workspace_fqn: str = None):
|
|
|
328
331
|
try:
|
|
329
332
|
status.start()
|
|
330
333
|
event = developer_run.send(inp)
|
|
331
|
-
_update_status(
|
|
334
|
+
_update_status(
|
|
335
|
+
event=event, status=status, component_type=component_type
|
|
336
|
+
)
|
|
332
337
|
inp = event.render(console)
|
|
333
338
|
except StopIteration as ex:
|
|
334
339
|
response = ex.value
|
|
@@ -10,15 +10,9 @@ AUTODEPLOY_OPENAI_API_KEY = os.environ.get("AUTODEPLOY_OPENAI_API_KEY")
|
|
|
10
10
|
AUTODEPLOY_MODEL_NAME = os.environ.get(
|
|
11
11
|
"AUTODEPLOY_MODEL_NAME", "auto-deploy-openai/gpt-4-turbo-2024-04-09"
|
|
12
12
|
)
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
If any issues are encountered during this process, Truefoundry will attempt to automatically fix them.
|
|
17
|
-
Finally, it will run the application to verify that everything is set up correctly.
|
|
18
|
-
"""
|
|
19
|
-
ABOUT_AUTODEPLOY = """To deploy your project, we will generate the deployment configuration using AI.
|
|
20
|
-
We will analyze your codebase using our AI agent and make the required changes so that we can build and deploy the code.
|
|
21
|
-
We will confirm all the changes with you.
|
|
13
|
+
ABOUT_AUTODEPLOY = """We'll use AI to build and deploy your project automatically.
|
|
14
|
+
Our AI Agent analyzes your codebase, checks for a Dockerfile, creates one if missing, builds a Docker image, fixes any issues, and runs the application to ensure we have built it correctly.
|
|
15
|
+
If you don't want to use our AI Agent to deploy automatically, create a [green]truefoundry.yaml[/] file in your project's root.
|
|
22
16
|
"""
|
|
23
17
|
# The maximum file size to read is set to 10KB.
|
|
24
18
|
# This limit is determined by the token limit of the LLM used, which is 128,000 tokens.
|
{truefoundry-0.2.2rc3 → truefoundry-0.2.3rc1}/truefoundry/autodeploy/tools/file_type_counts.py
RENAMED
|
@@ -54,7 +54,7 @@ Get counts of different types of file present.
|
|
|
54
54
|
self, request: FileTypeCounts.Request
|
|
55
55
|
) -> Generator[Event, Any, ResponseEvent]:
|
|
56
56
|
counter = Counter()
|
|
57
|
-
yield Rule(message="
|
|
57
|
+
yield Rule(message="[bold green]File Counts[/]")
|
|
58
58
|
yield Message(
|
|
59
59
|
message="[bold cyan]Processing:[/] Scanning for various file types..."
|
|
60
60
|
)
|
|
@@ -42,7 +42,7 @@ the subdir should be . and pattern will be *.json
|
|
|
42
42
|
self.project_root_path = project_root_path
|
|
43
43
|
|
|
44
44
|
def run(self, request: ListFiles.Request) -> Generator[Event, Any, ResponseEvent]:
|
|
45
|
-
yield Rule(message="[bold green]
|
|
45
|
+
yield Rule(message="[bold green]List Files[/]")
|
|
46
46
|
yield Message(
|
|
47
47
|
message=f"[bold cyan]Searching:[/] 🔍 Looking for files matching the pattern [magenta]{request.pattern}[/]"
|
|
48
48
|
)
|
|
@@ -34,7 +34,7 @@ Send an HTTP request.
|
|
|
34
34
|
|
|
35
35
|
def run(self, request: SendRequest.Request) -> Generator[Event, Any, ResponseEvent]:
|
|
36
36
|
self.call_count += 1
|
|
37
|
-
yield Rule(message="[bold green]
|
|
37
|
+
yield Rule(message="[bold green]Endpoint Verification[/]")
|
|
38
38
|
yield Message(
|
|
39
39
|
message=f"[bold cyan]Testing:[/] Sending a [magenta]{request.method.upper()}[/] request to [magenta]{request.url}[/]"
|
|
40
40
|
)
|
|
@@ -89,13 +89,6 @@ def deploy_v2_command(file: str, workspace_fqn: str, wait: bool):
|
|
|
89
89
|
)
|
|
90
90
|
sys.exit(1)
|
|
91
91
|
|
|
92
|
-
click.echo(
|
|
93
|
-
click.style(
|
|
94
|
-
'We will be using TrueFoundry AI to build your project.\nIf you wish to proceed without TrueFoundry AI,\nyou need to either have a truefoundry.yaml file in your project root or\npass the path to a yaml file using the "--file file_name" option.',
|
|
95
|
-
fg="yellow",
|
|
96
|
-
),
|
|
97
|
-
)
|
|
98
|
-
|
|
99
92
|
try:
|
|
100
93
|
autodeploy_cli(project_root_path=".", deploy=True, workspace_fqn=workspace_fqn)
|
|
101
94
|
except InvalidRequirementsException as e:
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{truefoundry-0.2.2rc3 → truefoundry-0.2.3rc1}/truefoundry/autodeploy/agents/project_identifier.py
RENAMED
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{truefoundry-0.2.2rc3 → truefoundry-0.2.3rc1}/truefoundry/autodeploy/utils/pydantic_compat.py
RENAMED
|
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
|