diff --git a/kittycad/__init__.py b/kittycad/__init__.py index 8ac1f7c34..16c683416 100644 --- a/kittycad/__init__.py +++ b/kittycad/__init__.py @@ -663,7 +663,9 @@ def create_text_to_cad( *, kcl: Optional[bool] = None, ) -> TextToCad: - """Because our source of truth for the resulting model is a STEP file, you will always have STEP file contents when you list your generated parts. Any other formats you request here will also be returned when you list your generated parts. + """Prefer the ML copilot websocket (`/ws/ml/copilot`) for new integrations. This REST endpoint is kept for existing Text-to-CAD clients, but it is no longer the recommended way to generate CAD models from a prompt. + + Because our source of truth for the resulting model is a STEP file, you will always have STEP file contents when you list your generated parts. Any other formats you request here will also be returned when you list your generated parts. This operation is performed asynchronously, the `id` of the operation will be returned. You can use the `id` returned from the request to get status information about the async operation from the `/async/operations/{id}` endpoint. @@ -989,13 +991,15 @@ def create_text_to_cad_iteration( self, body: TextToCadIterationBody, ) -> TextToCadIteration: - """Even if you give specific ranges to edit, the model might change more than just those in order to make the changes you requested without breaking the code. + """Prefer the ML copilot websocket (`/ws/ml/copilot`) for new prompt-to-edit integrations. This REST endpoint is kept for existing clients, but it is no longer the recommended way to edit KCL or CAD models from a prompt. + + Even if you give specific ranges to edit, the model might change more than just those in order to make the changes you requested without breaking the code. You always get the whole code back, even if you only changed a small part of it. This operation is performed asynchronously, the `id` of the operation will be returned. You can use the `id` returned from the request to get status information about the async operation from the `/async/operations/{id}` endpoint. - This endpoint will soon be deprecated in favor of the `/ml/text-to-cad/multi-file/iteration` endpoint. In that the endpoint path will remain but it will have the same behavior as `ml/text-to-cad/multi-file/iteration`.""" + This endpoint is deprecated in favor of `/ws/ml/copilot`.""" url = "{}/ml/text-to-cad/iteration".format(self.client.base_url) @@ -1025,7 +1029,9 @@ def create_text_to_cad_multi_file_iteration( body: TextToCadMultiFileIterationBody, file_attachments: Dict[str, SyncUpload], ) -> TextToCadMultiFileIteration: - """This endpoint can iterate on multi-file projects. + """Prefer the ML copilot websocket (`/ws/ml/copilot`) for new prompt-to-edit integrations. This REST endpoint is kept for existing multi-file iteration clients, but it is no longer the recommended way to edit KCL or CAD models from a prompt. + + This endpoint can iterate on multi-file projects. Even if you give specific ranges to edit, the model might change more than just those in order to make the changes you requested without breaking the code. @@ -1337,7 +1343,9 @@ async def create_text_to_cad( *, kcl: Optional[bool] = None, ) -> TextToCad: - """Because our source of truth for the resulting model is a STEP file, you will always have STEP file contents when you list your generated parts. Any other formats you request here will also be returned when you list your generated parts. + """Prefer the ML copilot websocket (`/ws/ml/copilot`) for new integrations. This REST endpoint is kept for existing Text-to-CAD clients, but it is no longer the recommended way to generate CAD models from a prompt. + + Because our source of truth for the resulting model is a STEP file, you will always have STEP file contents when you list your generated parts. Any other formats you request here will also be returned when you list your generated parts. This operation is performed asynchronously, the `id` of the operation will be returned. You can use the `id` returned from the request to get status information about the async operation from the `/async/operations/{id}` endpoint. @@ -1663,13 +1671,15 @@ async def create_text_to_cad_iteration( self, body: TextToCadIterationBody, ) -> TextToCadIteration: - """Even if you give specific ranges to edit, the model might change more than just those in order to make the changes you requested without breaking the code. + """Prefer the ML copilot websocket (`/ws/ml/copilot`) for new prompt-to-edit integrations. This REST endpoint is kept for existing clients, but it is no longer the recommended way to edit KCL or CAD models from a prompt. + + Even if you give specific ranges to edit, the model might change more than just those in order to make the changes you requested without breaking the code. You always get the whole code back, even if you only changed a small part of it. This operation is performed asynchronously, the `id` of the operation will be returned. You can use the `id` returned from the request to get status information about the async operation from the `/async/operations/{id}` endpoint. - This endpoint will soon be deprecated in favor of the `/ml/text-to-cad/multi-file/iteration` endpoint. In that the endpoint path will remain but it will have the same behavior as `ml/text-to-cad/multi-file/iteration`.""" + This endpoint is deprecated in favor of `/ws/ml/copilot`.""" url = "{}/ml/text-to-cad/iteration".format(self.client.base_url) @@ -1699,7 +1709,9 @@ async def create_text_to_cad_multi_file_iteration( body: TextToCadMultiFileIterationBody, file_attachments: Dict[str, SyncUpload], ) -> TextToCadMultiFileIteration: - """This endpoint can iterate on multi-file projects. + """Prefer the ML copilot websocket (`/ws/ml/copilot`) for new prompt-to-edit integrations. This REST endpoint is kept for existing multi-file iteration clients, but it is no longer the recommended way to edit KCL or CAD models from a prompt. + + This endpoint can iterate on multi-file projects. Even if you give specific ranges to edit, the model might change more than just those in order to make the changes you requested without breaking the code. diff --git a/kittycad/models/user_feature.py b/kittycad/models/user_feature.py index d3aac76c1..99d904fff 100644 --- a/kittycad/models/user_feature.py +++ b/kittycad/models/user_feature.py @@ -12,6 +12,8 @@ class UserFeature(str, Enum): PROPRIETARY_TO_KCL_CONVERSION_BETA = "proprietary_to_kcl_conversion_beta" + SEGMENTS_BASED_REGIONS = "segments_based_regions" + SKETCH_EXPERIMENTAL_FEATURES = "sketch_experimental_features" WEB_APP_FILE_BROWSER = "web_app_file_browser" diff --git a/spec.json b/spec.json index 377a60fd1..fbc1c5413 100644 --- a/spec.json +++ b/spec.json @@ -201,7 +201,7 @@ "ml" ], "summary": "Generate a CAD model from text.", - "description": "Because our source of truth for the resulting model is a STEP file, you will always have STEP file contents when you list your generated parts. Any other formats you request here will also be returned when you list your generated parts.\n\nThis operation is performed asynchronously, the `id` of the operation will be returned. You can use the `id` returned from the request to get status information about the async operation from the `/async/operations/{id}` endpoint.\n\nOne thing to note, if you hit the cache, this endpoint will return right away. So you only have to wait if the status is not `Completed` or `Failed`.", + "description": "Prefer the ML copilot websocket (`/ws/ml/copilot`) for new integrations. This REST endpoint is kept for existing Text-to-CAD clients, but it is no longer the recommended way to generate CAD models from a prompt.\n\nBecause our source of truth for the resulting model is a STEP file, you will always have STEP file contents when you list your generated parts. Any other formats you request here will also be returned when you list your generated parts.\n\nThis operation is performed asynchronously, the `id` of the operation will be returned. You can use the `id` returned from the request to get status information about the async operation from the `/async/operations/{id}` endpoint.\n\nOne thing to note, if you hit the cache, this endpoint will return right away. So you only have to wait if the status is not `Completed` or `Failed`.", "operationId": "create_text_to_cad", "parameters": [ { @@ -316,7 +316,8 @@ "5XX": { "$ref": "#/components/responses/Error" } - } + }, + "deprecated": true }, "options": { "tags": [ @@ -5414,7 +5415,7 @@ "ml" ], "summary": "Iterate on a CAD model with a prompt.", - "description": "Even if you give specific ranges to edit, the model might change more than just those in order to make the changes you requested without breaking the code.\n\nYou always get the whole code back, even if you only changed a small part of it.\n\nThis operation is performed asynchronously, the `id` of the operation will be returned. You can use the `id` returned from the request to get status information about the async operation from the `/async/operations/{id}` endpoint.\n\nThis endpoint will soon be deprecated in favor of the `/ml/text-to-cad/multi-file/iteration` endpoint. In that the endpoint path will remain but it will have the same behavior as `ml/text-to-cad/multi-file/iteration`.", + "description": "Prefer the ML copilot websocket (`/ws/ml/copilot`) for new prompt-to-edit integrations. This REST endpoint is kept for existing clients, but it is no longer the recommended way to edit KCL or CAD models from a prompt.\n\nEven if you give specific ranges to edit, the model might change more than just those in order to make the changes you requested without breaking the code.\n\nYou always get the whole code back, even if you only changed a small part of it.\n\nThis operation is performed asynchronously, the `id` of the operation will be returned. You can use the `id` returned from the request to get status information about the async operation from the `/async/operations/{id}` endpoint.\n\nThis endpoint is deprecated in favor of `/ws/ml/copilot`.", "operationId": "create_text_to_cad_iteration", "requestBody": { "content": { @@ -5604,7 +5605,7 @@ "ml" ], "summary": "Iterate on a multi-file CAD model with a prompt.", - "description": "This endpoint can iterate on multi-file projects.\n\nEven if you give specific ranges to edit, the model might change more than just those in order to make the changes you requested without breaking the code.\n\nYou always get the whole code back, even if you only changed a small part of it. This endpoint will always return all the code back, including files that were not changed. If your original source code imported a stl/gltf/step/etc file, the output will not include that file since the model will never change non-kcl files. The endpoint will only return the kcl files that were changed.\n\nThis operation is performed asynchronously, the `id` of the operation will be returned. You can use the `id` returned from the request to get status information about the async operation from the `/async/operations/{id}` endpoint.\n\nInput filepaths will be normalized and re-canonicalized to be under the current working directory -- so returned paths may differ from provided paths, and care must be taken when handling user provided paths.", + "description": "Prefer the ML copilot websocket (`/ws/ml/copilot`) for new prompt-to-edit integrations. This REST endpoint is kept for existing multi-file iteration clients, but it is no longer the recommended way to edit KCL or CAD models from a prompt.\n\nThis endpoint can iterate on multi-file projects.\n\nEven if you give specific ranges to edit, the model might change more than just those in order to make the changes you requested without breaking the code.\n\nYou always get the whole code back, even if you only changed a small part of it. This endpoint will always return all the code back, including files that were not changed. If your original source code imported a stl/gltf/step/etc file, the output will not include that file since the model will never change non-kcl files. The endpoint will only return the kcl files that were changed.\n\nThis operation is performed asynchronously, the `id` of the operation will be returned. You can use the `id` returned from the request to get status information about the async operation from the `/async/operations/{id}` endpoint.\n\nInput filepaths will be normalized and re-canonicalized to be under the current working directory -- so returned paths may differ from provided paths, and care must be taken when handling user provided paths.", "operationId": "create_text_to_cad_multi_file_iteration", "requestBody": { "description": "Iteration on a multi-file CAD model", @@ -5700,7 +5701,8 @@ "5XX": { "$ref": "#/components/responses/Error" } - } + }, + "deprecated": true }, "options": { "tags": [ @@ -60171,6 +60173,7 @@ "modeling_dialogs", "plugins", "proprietary_to_kcl_conversion_beta", + "segments_based_regions", "sketch_experimental_features", "web_app_file_browser" ]