griptape-nodes 0.61.0__py3-none-any.whl → 0.62.0__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.
- griptape_nodes/common/macro_parser/core.py +4 -4
- griptape_nodes/common/macro_parser/exceptions.py +3 -3
- griptape_nodes/common/macro_parser/resolution.py +2 -2
- griptape_nodes/common/project_templates/default_project_template.py +5 -10
- griptape_nodes/common/project_templates/directory.py +5 -5
- griptape_nodes/common/project_templates/loader.py +8 -7
- griptape_nodes/common/project_templates/project.py +1 -1
- griptape_nodes/common/project_templates/situation.py +5 -17
- griptape_nodes/common/project_templates/validation.py +3 -3
- griptape_nodes/node_library/workflow_registry.py +1 -1
- griptape_nodes/retained_mode/events/project_events.py +208 -93
- griptape_nodes/retained_mode/managers/os_manager.py +54 -6
- griptape_nodes/retained_mode/managers/project_manager.py +709 -259
- griptape_nodes/retained_mode/managers/sync_manager.py +4 -1
- griptape_nodes/retained_mode/managers/workflow_manager.py +2 -10
- griptape_nodes/traits/button.py +2 -1
- {griptape_nodes-0.61.0.dist-info → griptape_nodes-0.62.0.dist-info}/METADATA +1 -1
- {griptape_nodes-0.61.0.dist-info → griptape_nodes-0.62.0.dist-info}/RECORD +20 -21
- griptape_nodes/common/project_templates/defaults/project_template.yml +0 -89
- {griptape_nodes-0.61.0.dist-info → griptape_nodes-0.62.0.dist-info}/WHEEL +0 -0
- {griptape_nodes-0.61.0.dist-info → griptape_nodes-0.62.0.dist-info}/entry_points.txt +0 -0
|
@@ -76,7 +76,10 @@ class SyncManager:
|
|
|
76
76
|
path: Path to the file that will be written
|
|
77
77
|
content: The exact bytes that will be written to the file
|
|
78
78
|
"""
|
|
79
|
-
|
|
79
|
+
from griptape_nodes.retained_mode.griptape_nodes import GriptapeNodes
|
|
80
|
+
|
|
81
|
+
os_manager = GriptapeNodes.OSManager()
|
|
82
|
+
path_str = str(os_manager.resolve_path_safely(Path(path)))
|
|
80
83
|
file_hash = hashlib.sha256(content).hexdigest()
|
|
81
84
|
with self._hash_lock:
|
|
82
85
|
self._file_hashes[path_str] = file_hash
|
|
@@ -2399,16 +2399,8 @@ class WorkflowManager:
|
|
|
2399
2399
|
targets=[ast.Name(id="response", ctx=ast.Store())],
|
|
2400
2400
|
value=ast.Call(
|
|
2401
2401
|
func=ast.Attribute(
|
|
2402
|
-
value=ast.
|
|
2403
|
-
|
|
2404
|
-
value=ast.Name(id="GriptapeNodes", ctx=ast.Load()),
|
|
2405
|
-
attr="LibraryManager",
|
|
2406
|
-
ctx=ast.Load(),
|
|
2407
|
-
),
|
|
2408
|
-
args=[],
|
|
2409
|
-
keywords=[],
|
|
2410
|
-
),
|
|
2411
|
-
attr="get_all_info_for_all_libraries_request",
|
|
2402
|
+
value=ast.Name(id="GriptapeNodes", ctx=ast.Load()),
|
|
2403
|
+
attr="handle_request",
|
|
2412
2404
|
ctx=ast.Load(),
|
|
2413
2405
|
),
|
|
2414
2406
|
args=[
|
griptape_nodes/traits/button.py
CHANGED
|
@@ -61,7 +61,8 @@ class ButtonDetailsMessagePayload(NodeMessagePayload):
|
|
|
61
61
|
class ModalContentPayload(NodeMessagePayload):
|
|
62
62
|
"""Payload containing content to be displayed in a modal dialog."""
|
|
63
63
|
|
|
64
|
-
clipboard_copyable_content: str
|
|
64
|
+
clipboard_copyable_content: str | None = None
|
|
65
|
+
render_url: str | None = None
|
|
65
66
|
title: str | None = None
|
|
66
67
|
|
|
67
68
|
|
|
@@ -35,23 +35,22 @@ griptape_nodes/cli/shared.py,sha256=ciuqFxls18HXxNOaqK6QObmb3i7OLbw_DkUxX2g0rL0,
|
|
|
35
35
|
griptape_nodes/common/__init__.py,sha256=HTbJfTpu6-nU91zFCZW2qUNeW6bitNWNDayWqH6fpbA,22
|
|
36
36
|
griptape_nodes/common/directed_graph.py,sha256=hk3C_S4GiG4FZOmufjebb-6_2SwQrbyTidYTSbCDWMU,2361
|
|
37
37
|
griptape_nodes/common/macro_parser/__init__.py,sha256=Hpot5-igotQ-h-jZ7TuZG7uNCEgNrH6oD8sA3pXQubE,1153
|
|
38
|
-
griptape_nodes/common/macro_parser/core.py,sha256=
|
|
39
|
-
griptape_nodes/common/macro_parser/exceptions.py,sha256=
|
|
38
|
+
griptape_nodes/common/macro_parser/core.py,sha256=d6fOjovbCL276M9K_LkluYP_SlHRDx0cyrHZntj2IjQ,11701
|
|
39
|
+
griptape_nodes/common/macro_parser/exceptions.py,sha256=fUFxDcIwrFCFadn1o63sksSdfabluRGdt1fmrUr39Vg,3867
|
|
40
40
|
griptape_nodes/common/macro_parser/formats.py,sha256=JpcGCjvZbxX8GauuQ2tvwBfFEa_pSPECtBBjSeFLJ6s,5355
|
|
41
41
|
griptape_nodes/common/macro_parser/matching.py,sha256=hnlPIihz8W1TGnfq4anbBGciwghFbFyAHUpbte6M4Bg,4543
|
|
42
42
|
griptape_nodes/common/macro_parser/parsing.py,sha256=_37L3lCQFeetamWIiHT0C7eW1E3Wyx5V8y8OWzIUw_g,7428
|
|
43
|
-
griptape_nodes/common/macro_parser/resolution.py,sha256=
|
|
43
|
+
griptape_nodes/common/macro_parser/resolution.py,sha256=30_bAIRMKWw-kM3E1ne-my16xT1Wd734JMmZSOZtNPA,6937
|
|
44
44
|
griptape_nodes/common/macro_parser/segments.py,sha256=r-WbZas1nSc-PlEdAZ7DycNoD6IUf3R_nhGo3T9vIa8,1010
|
|
45
45
|
griptape_nodes/common/node_executor.py,sha256=d96vYMMpdvGK-ol3priQjveYs7kTcz0A6WXhgnyQttE,29204
|
|
46
46
|
griptape_nodes/common/project_templates/__init__.py,sha256=5DP6Sa6ClsdDcjD30pkK0iTTysTgGdRKEkeY7ztHZyc,1541
|
|
47
|
-
griptape_nodes/common/project_templates/default_project_template.py,sha256=
|
|
47
|
+
griptape_nodes/common/project_templates/default_project_template.py,sha256=PJFPfziH0EOGVxU5L0wZnc21bVVweW4S7wcnGPF45Co,3120
|
|
48
48
|
griptape_nodes/common/project_templates/defaults/README.md,sha256=1ou6_OFi7-t86nj-7tulW1vxNMtsvkJmNxr6SseG8hA,1080
|
|
49
|
-
griptape_nodes/common/project_templates/
|
|
50
|
-
griptape_nodes/common/project_templates/
|
|
51
|
-
griptape_nodes/common/project_templates/
|
|
52
|
-
griptape_nodes/common/project_templates/
|
|
53
|
-
griptape_nodes/common/project_templates/
|
|
54
|
-
griptape_nodes/common/project_templates/validation.py,sha256=JbKJY0_uKD8bIsJR0HhGV3Fe_CzqxEoG2o8s-6lg2Bc,4398
|
|
49
|
+
griptape_nodes/common/project_templates/directory.py,sha256=zbfBmfsfs5LrCkDtU4Gtq11OK_gxCqo2LVccObsj3DY,2418
|
|
50
|
+
griptape_nodes/common/project_templates/loader.py,sha256=2H0T3SLgx-Bb90Q_A0drTULw4BA80QUj1ziYbOLaLP4,12470
|
|
51
|
+
griptape_nodes/common/project_templates/project.py,sha256=X5llrgpBS47bsE6De_uW1GQaXoqy3dWsmhqxvlvdAks,10545
|
|
52
|
+
griptape_nodes/common/project_templates/situation.py,sha256=MlpBYrtPvkzIa_j_1NFeDb_V6wXdmixMH3U4eKDBMzw,5567
|
|
53
|
+
griptape_nodes/common/project_templates/validation.py,sha256=LPm0gri05ZIbSfCqOM4duuaXPIeAk3YWMstM5w5O8ho,4399
|
|
55
54
|
griptape_nodes/drivers/__init__.py,sha256=tHmiFQn6uJyFVhC2PrqHgRUH3d3yDsqMQpWqRasmaqA,42
|
|
56
55
|
griptape_nodes/drivers/storage/__init__.py,sha256=_7p8vJt3YnnF6sD3Uxxw38c-gazuMIHSS-m3G6sa2Qk,208
|
|
57
56
|
griptape_nodes/drivers/storage/base_storage_driver.py,sha256=47PrMzxOuJhV2ee4CbPT7YOqR2MjlHr3VxhGON_ygio,3945
|
|
@@ -94,7 +93,7 @@ griptape_nodes/mcp_server/__init__.py,sha256=GSpJWqE4lICaryhsQR1okeMH2x6j1bBL0HV
|
|
|
94
93
|
griptape_nodes/node_library/__init__.py,sha256=U3FcSdmq6UW7qt6E3Up3NWKvUEn5_5lqL-u5qbzfxMQ,28
|
|
95
94
|
griptape_nodes/node_library/advanced_node_library.py,sha256=B1ZaxuFIzQ6tx_3MLIxlsHuahthEC1Hw_t6K_ByIdzs,2104
|
|
96
95
|
griptape_nodes/node_library/library_registry.py,sha256=0PCofxvPh8r1r-me8Y04aIQvVjeO55hvvv7uj5QC9Dw,13951
|
|
97
|
-
griptape_nodes/node_library/workflow_registry.py,sha256=
|
|
96
|
+
griptape_nodes/node_library/workflow_registry.py,sha256=dOsaOypfHTjWO0e5RDlsrvXsEsVJKfcOhYkH5EuuUos,10523
|
|
98
97
|
griptape_nodes/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
99
98
|
griptape_nodes/retained_mode/__init__.py,sha256=X12DKL6KhLsiRTPIlrPj2h76_sJ0q0eH4r0kMQkodm0,29
|
|
100
99
|
griptape_nodes/retained_mode/events/__init__.py,sha256=7B1C-c0jVvnShtHJ2lfX6BZPE0U1DgQwg1e4DorhKG0,22
|
|
@@ -117,7 +116,7 @@ griptape_nodes/retained_mode/events/object_events.py,sha256=cJaqEU73Lzf1RRxJrFqE
|
|
|
117
116
|
griptape_nodes/retained_mode/events/os_events.py,sha256=uKa0lI-RKq_a3WBf7Rqo1c02qCqjaVbnuRAa1Ck25-I,15916
|
|
118
117
|
griptape_nodes/retained_mode/events/parameter_events.py,sha256=2s3U_cc45LjSmq2pZyTEnjD6yAlc207wAYY633z4zO4,23938
|
|
119
118
|
griptape_nodes/retained_mode/events/payload_registry.py,sha256=q-wxUqp63vhNj-Pl1JGJHnBkhUefcCArPoMN3KBREEI,1691
|
|
120
|
-
griptape_nodes/retained_mode/events/project_events.py,sha256=
|
|
119
|
+
griptape_nodes/retained_mode/events/project_events.py,sha256=f92z6jvYNuVAGmkFcd1VUO6K503pZOBNtR3B1NY4M8g,16717
|
|
121
120
|
griptape_nodes/retained_mode/events/resource_events.py,sha256=K47UK92wvaRtHu3ByfhkQEMyorrV0ArGewrFSJuVMiI,9015
|
|
122
121
|
griptape_nodes/retained_mode/events/secrets_events.py,sha256=fCw3OMFfxB8FTZs4ybojm1nqNvhcjtoNylQhX75-jkM,4156
|
|
123
122
|
griptape_nodes/retained_mode/events/static_file_events.py,sha256=c8kKkrxAPZxrE9fsldpWtweK1C4T-1-dHWw_76SRehM,3764
|
|
@@ -152,8 +151,8 @@ griptape_nodes/retained_mode/managers/model_manager.py,sha256=Qc_FiqIJQ_ZuL5Yb7W
|
|
|
152
151
|
griptape_nodes/retained_mode/managers/node_manager.py,sha256=7LQF3pWpTsGnQlgDu-CCeAmMk4E2VC-Ti-HiUELCkjE,196136
|
|
153
152
|
griptape_nodes/retained_mode/managers/object_manager.py,sha256=w6T5UPUJRcYF90F1MuWhZVDgRrMc1uQ-6wt84Oz8OQA,12827
|
|
154
153
|
griptape_nodes/retained_mode/managers/operation_manager.py,sha256=lTkMZlaacTgtV5oV-YF6HG8xsx9V_LwX1eg074WTs2k,20137
|
|
155
|
-
griptape_nodes/retained_mode/managers/os_manager.py,sha256=
|
|
156
|
-
griptape_nodes/retained_mode/managers/project_manager.py,sha256
|
|
154
|
+
griptape_nodes/retained_mode/managers/os_manager.py,sha256=CcP112VBHhhf-2uHXWOs9BWDoaiRUtXaq_up0Hd2lSY,71692
|
|
155
|
+
griptape_nodes/retained_mode/managers/project_manager.py,sha256=-K-anrxEVKInFMPLY-cV3ipqEh8hMELGHKbecJJJVa8,49035
|
|
157
156
|
griptape_nodes/retained_mode/managers/resource_components/__init__.py,sha256=2FHpZFw2N1-oHfMCfrnB_XpF8_-2aSNtAZWh5zQTGL0,35
|
|
158
157
|
griptape_nodes/retained_mode/managers/resource_components/capability_field.py,sha256=jZ5ONfdYVd5_MKlSKvUch1X2n1oHzMSeZW8UZ1a_RsU,1504
|
|
159
158
|
griptape_nodes/retained_mode/managers/resource_components/comparator.py,sha256=02SiAiOatEnCgZOoMvpDhLsMpiOeNdtg9_HbrW4gS2k,609
|
|
@@ -167,11 +166,11 @@ griptape_nodes/retained_mode/managers/secrets_manager.py,sha256=2DU2002dgr3XipnA
|
|
|
167
166
|
griptape_nodes/retained_mode/managers/session_manager.py,sha256=u3OEir9rjwG7GFM4MA5crKwcwq6F-lCUKlFzxlFU4co,14085
|
|
168
167
|
griptape_nodes/retained_mode/managers/settings.py,sha256=rvWjqt82_k6fLFXXbLS_cAKNqb57_iHoVOkgZG9mnPU,9626
|
|
169
168
|
griptape_nodes/retained_mode/managers/static_files_manager.py,sha256=dDeX1Z5cmviNPkEBkF2MWYryLacJOh0TTpu-t7oCHps,11283
|
|
170
|
-
griptape_nodes/retained_mode/managers/sync_manager.py,sha256
|
|
169
|
+
griptape_nodes/retained_mode/managers/sync_manager.py,sha256=quKrg3pGEmPcoQDm5IqLHEFW64UmS4OT6o27dD57pFg,21395
|
|
171
170
|
griptape_nodes/retained_mode/managers/user_manager.py,sha256=JAOOKDhUfIbj0CJ5EHRBcplmxheQTzeogbvGO23VqXQ,4508
|
|
172
171
|
griptape_nodes/retained_mode/managers/variable_manager.py,sha256=TnuqHSRK9Yiu_EtKxQksF9SyyQb72lbFQuTQZdpBxeE,24116
|
|
173
172
|
griptape_nodes/retained_mode/managers/version_compatibility_manager.py,sha256=3GEsJs1yNub8NP_ZNBgUEbaqHJXte8-u3Uapim_x0OU,14709
|
|
174
|
-
griptape_nodes/retained_mode/managers/workflow_manager.py,sha256=
|
|
173
|
+
griptape_nodes/retained_mode/managers/workflow_manager.py,sha256=ZC2MAsg61h0oNRZPp9VT4sEDI7xduy2nbMa9U4pfCmw,197567
|
|
175
174
|
griptape_nodes/retained_mode/retained_mode.py,sha256=nBjLGz1y6ZEtAL5g81_gA93Y0r5va-Hdq4Rbqdk2XqM,71749
|
|
176
175
|
griptape_nodes/retained_mode/utils/__init__.py,sha256=W5dvv8YwvVVq_8eVTgMd3Z_VB_Dtq1sIIVq8745QH_I,52
|
|
177
176
|
griptape_nodes/retained_mode/utils/name_generator.py,sha256=IZLahtfP3XC79XApLdGoZ0IKKUkgiITpd16RK7NbyEs,2524
|
|
@@ -181,7 +180,7 @@ griptape_nodes/servers/mcp.py,sha256=pCtBFfPKZuhU2tWguorOnmV33fYmF7NN-c9gu4MQFEk
|
|
|
181
180
|
griptape_nodes/servers/static.py,sha256=j-RiY10i8OhQRYi22eeq5rZ7I2An-DzIPA96rF5Tm4o,6975
|
|
182
181
|
griptape_nodes/traits/__init__.py,sha256=bTLXTiZTJz2z15RRLoPI4nvLnNW9FiLcKL_2pT4E10g,32
|
|
183
182
|
griptape_nodes/traits/add_param_button.py,sha256=27RZDVLMD0HmRF6hjfz7iV7LBau92vMc_d2eD2Ey8fA,649
|
|
184
|
-
griptape_nodes/traits/button.py,sha256
|
|
183
|
+
griptape_nodes/traits/button.py,sha256=tTOgY-AQ7VbG97JzOletb7lFaGj48nFX67Qp_QA45M4,14012
|
|
185
184
|
griptape_nodes/traits/clamp.py,sha256=BZVHiWfBNePWaPMaLyOgtcWzkM7Ls4hcPlm_afmGiIs,1030
|
|
186
185
|
griptape_nodes/traits/color_picker.py,sha256=ySKaoZw319yfuTSEtkVT2vSR6Goy9pBm4rusjx95F0c,3024
|
|
187
186
|
griptape_nodes/traits/compare.py,sha256=X-BXGemRDxQV4EX8X24LdtcwMWwfQ1jGqDvH2bSiSuc,521
|
|
@@ -211,7 +210,7 @@ griptape_nodes/version_compatibility/versions/v0_39_0/modified_parameters_set_re
|
|
|
211
210
|
griptape_nodes/version_compatibility/workflow_versions/__init__.py,sha256=z5XDgkizoNByCXpyo34hfsJKFsWlOHbD6hgzfYH9ubc,52
|
|
212
211
|
griptape_nodes/version_compatibility/workflow_versions/v0_7_0/__init__.py,sha256=IzPPmGK86h2swfGGTOHyVcBIlOng6SjgWQzlbf3ngmo,51
|
|
213
212
|
griptape_nodes/version_compatibility/workflow_versions/v0_7_0/local_executor_argument_addition.py,sha256=Y8n1wzI5a-ZCHK5eiwtnnD3zF5lN-52R67rxYn0hxyI,2069
|
|
214
|
-
griptape_nodes-0.
|
|
215
|
-
griptape_nodes-0.
|
|
216
|
-
griptape_nodes-0.
|
|
217
|
-
griptape_nodes-0.
|
|
213
|
+
griptape_nodes-0.62.0.dist-info/WHEEL,sha256=5w2T7AS2mz1-rW9CNagNYWRCaB0iQqBMYLwKdlgiR4Q,78
|
|
214
|
+
griptape_nodes-0.62.0.dist-info/entry_points.txt,sha256=qvevqd3BVbAV5TcantnAm0ouqaqYKhsRO3pkFymWLWM,82
|
|
215
|
+
griptape_nodes-0.62.0.dist-info/METADATA,sha256=5z55_o8pWHcrNCr-maOqq4snyiRkv8r0JBzxu65jiVg,5178
|
|
216
|
+
griptape_nodes-0.62.0.dist-info/RECORD,,
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
# System Default Project Template
|
|
2
|
-
# Version: 0.1.0
|
|
3
|
-
#
|
|
4
|
-
# This is the default configuration used when no project.yml exists.
|
|
5
|
-
# You can copy this file to your project root and customize it.
|
|
6
|
-
|
|
7
|
-
project_template_schema_version: "0.1.0"
|
|
8
|
-
name: "Default Project"
|
|
9
|
-
description: "System default configuration"
|
|
10
|
-
|
|
11
|
-
# Directory Definitions
|
|
12
|
-
#
|
|
13
|
-
# Define logical directories used in situation schemas.
|
|
14
|
-
# Paths can be:
|
|
15
|
-
# - Relative: "inputs", "outputs/renders"
|
|
16
|
-
# - Absolute: "/tmp/cache", "C:/Projects/assets"
|
|
17
|
-
# - With macros: Path schemas will be resolved by ProjectManager
|
|
18
|
-
directories:
|
|
19
|
-
inputs:
|
|
20
|
-
path_schema: "inputs"
|
|
21
|
-
outputs:
|
|
22
|
-
path_schema: "outputs"
|
|
23
|
-
temp:
|
|
24
|
-
path_schema: "temp"
|
|
25
|
-
previews:
|
|
26
|
-
path_schema: "previews"
|
|
27
|
-
|
|
28
|
-
# Environment Variables (Optional)
|
|
29
|
-
#
|
|
30
|
-
# Define project-specific variables or document which system env vars are used.
|
|
31
|
-
# System automatically detects all env vars - this section is for documentation
|
|
32
|
-
# and project-specific overrides.
|
|
33
|
-
environment: {}
|
|
34
|
-
|
|
35
|
-
# Situation Configurations
|
|
36
|
-
#
|
|
37
|
-
# Each situation defines how files are saved in a specific scenario.
|
|
38
|
-
# The schema uses macro syntax: {variable_name} or {variable_name?} for optional
|
|
39
|
-
situations:
|
|
40
|
-
|
|
41
|
-
# Base situation - others fall back to this
|
|
42
|
-
save_file:
|
|
43
|
-
situation_template_schema_version: "0.1.0"
|
|
44
|
-
description: "Generic file save operation"
|
|
45
|
-
schema: "{file_name_base}{_index:03?}.{file_extension}"
|
|
46
|
-
policy:
|
|
47
|
-
on_collision: "create_new" # Increment {_index}: file_001.jpg, file_002.jpg
|
|
48
|
-
create_dirs: true
|
|
49
|
-
fallback: null
|
|
50
|
-
|
|
51
|
-
# User copies external file to project
|
|
52
|
-
copy_external_file:
|
|
53
|
-
situation_template_schema_version: "0.1.0"
|
|
54
|
-
description: "User copies external file to project"
|
|
55
|
-
schema: "{inputs}/{node_name?:_}{parameter_name?:_}{file_name_base}{_index:03?}.{file_extension}"
|
|
56
|
-
policy:
|
|
57
|
-
on_collision: "create_new"
|
|
58
|
-
create_dirs: true
|
|
59
|
-
fallback: "save_file"
|
|
60
|
-
|
|
61
|
-
# Download file from URL
|
|
62
|
-
download_url:
|
|
63
|
-
situation_template_schema_version: "0.1.0"
|
|
64
|
-
description: "Download file from URL"
|
|
65
|
-
schema: "{inputs}/{sanitized_url}"
|
|
66
|
-
policy:
|
|
67
|
-
on_collision: "overwrite" # Same URL = same content, safe to replace
|
|
68
|
-
create_dirs: true
|
|
69
|
-
fallback: "save_file"
|
|
70
|
-
|
|
71
|
-
# Node generates and saves output
|
|
72
|
-
save_node_output:
|
|
73
|
-
situation_template_schema_version: "0.1.0"
|
|
74
|
-
description: "Node generates and saves output"
|
|
75
|
-
schema: "{outputs}/{node_name?:_}{file_name_base}{_index:03?}.{file_extension}"
|
|
76
|
-
policy:
|
|
77
|
-
on_collision: "create_new"
|
|
78
|
-
create_dirs: true
|
|
79
|
-
fallback: "save_file"
|
|
80
|
-
|
|
81
|
-
# Generate preview/thumbnail
|
|
82
|
-
save_preview:
|
|
83
|
-
situation_template_schema_version: "0.1.0"
|
|
84
|
-
description: "Generate preview/thumbnail"
|
|
85
|
-
schema: "{previews}/{original_file_path}"
|
|
86
|
-
policy:
|
|
87
|
-
on_collision: "overwrite" # Preview should match source, safe to replace
|
|
88
|
-
create_dirs: true
|
|
89
|
-
fallback: "save_file"
|
|
File without changes
|
|
File without changes
|