shortcutkit 2.0.0__tar.gz → 3.0.0__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.
- {shortcutkit-2.0.0/src/shortcutkit.egg-info → shortcutkit-3.0.0}/PKG-INFO +31 -15
- {shortcutkit-2.0.0 → shortcutkit-3.0.0}/README.md +29 -13
- {shortcutkit-2.0.0 → shortcutkit-3.0.0}/pyproject.toml +2 -2
- {shortcutkit-2.0.0 → shortcutkit-3.0.0}/src/shortcutkit/__init__.py +92 -11
- {shortcutkit-2.0.0 → shortcutkit-3.0.0}/src/shortcutkit/actions.py +0 -172
- {shortcutkit-2.0.0 → shortcutkit-3.0.0}/src/shortcutkit/data/provenance.json +2 -2
- {shortcutkit-2.0.0 → shortcutkit-3.0.0}/src/shortcutkit/entities.py +3 -0
- {shortcutkit-2.0.0 → shortcutkit-3.0.0/src/shortcutkit.egg-info}/PKG-INFO +31 -15
- {shortcutkit-2.0.0 → shortcutkit-3.0.0}/LICENSE +0 -0
- {shortcutkit-2.0.0 → shortcutkit-3.0.0}/setup.cfg +0 -0
- {shortcutkit-2.0.0 → shortcutkit-3.0.0}/src/shortcutkit/__main__.py +0 -0
- {shortcutkit-2.0.0 → shortcutkit-3.0.0}/src/shortcutkit/data/builtin-actions.json +0 -0
- {shortcutkit-2.0.0 → shortcutkit-3.0.0}/src/shortcutkit.egg-info/SOURCES.txt +0 -0
- {shortcutkit-2.0.0 → shortcutkit-3.0.0}/src/shortcutkit.egg-info/dependency_links.txt +0 -0
- {shortcutkit-2.0.0 → shortcutkit-3.0.0}/src/shortcutkit.egg-info/top_level.txt +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: shortcutkit
|
|
3
|
-
Version:
|
|
4
|
-
Summary: Build, validate, and sign Apple Shortcuts files from Python. All 449 built-in actions and 1,
|
|
3
|
+
Version: 3.0.0
|
|
4
|
+
Summary: Build, validate, and sign Apple Shortcuts files from Python. All 449 built-in actions and 1,265 Apple app actions, extracted from the Shortcuts engine.
|
|
5
5
|
Author: frontboat
|
|
6
6
|
License-Expression: MIT
|
|
7
7
|
Project-URL: Homepage, https://github.com/frontboat/shortcutkit
|
|
@@ -51,9 +51,9 @@ are archived ([python-shortcuts](https://github.com/alexander-akhmetov/python-sh
|
|
|
51
51
|
[Cherri](https://github.com/electrikmilk/cherri) is a separate language with its own compiler.
|
|
52
52
|
|
|
53
53
|
- All 449 built-in actions as constants, so a typo is an `AttributeError`.
|
|
54
|
-
- 1,
|
|
54
|
+
- 1,265 actions from Apple's apps: Reminders, Notes, Messages, Settings, and 70 more. Only
|
|
55
55
|
actions the Shortcuts editor offers: the Siri-only intents the app refuses to import are left out.
|
|
56
|
-
- Third-party app actions,
|
|
56
|
+
- Third-party app actions, named by app and intent.
|
|
57
57
|
- Checked conditions for 150 Find actions, the 14 built-in ones (Filter Files, Find Photos, Find
|
|
58
58
|
Contacts, ...) and 136 in Apple's apps (Find Messages, Find Notes, ...), from the engine's own
|
|
59
59
|
rules, and the properties of what they find.
|
|
@@ -114,20 +114,33 @@ found = s.action(actions.MESSAGES_FIND_MESSAGE,
|
|
|
114
114
|
s.action(actions.SHOWRESULT, Text=text(property_(found, "body")))
|
|
115
115
|
```
|
|
116
116
|
|
|
117
|
+
### Dictionaries and types
|
|
118
|
+
|
|
119
|
+
A dictionary parameter takes a plain dict: strings, `text()` and references are text items, and
|
|
120
|
+
numbers, booleans, lists and nested dicts keep their type, as the editor's item type menu sets it.
|
|
121
|
+
`coerce()` reads a value as one content type, as the variable "Type" menu does.
|
|
122
|
+
|
|
123
|
+
```python
|
|
124
|
+
from shortcutkit import coerce
|
|
125
|
+
|
|
126
|
+
d = s.action(actions.DICTIONARY, WFItems={"name": ref(name), "greeted": True, "tags": ["a", "b"]})
|
|
127
|
+
gid = s.if_(coerce(d, "WFStringContentItem"), "contains", "a")
|
|
128
|
+
s.end_if(gid)
|
|
129
|
+
```
|
|
130
|
+
|
|
117
131
|
### Other apps
|
|
118
132
|
|
|
119
|
-
|
|
133
|
+
Name the app and the intent: the identifier is the bundle identifier followed by the intent name, as
|
|
134
|
+
the catalogue identifies an app's own intents, and the descriptor is written as the catalogue's are.
|
|
135
|
+
The parameters are not checked: their keys are the intent's parameter names, from
|
|
136
|
+
`Metadata.appintents/extract.actionsdata` in the app bundle.
|
|
120
137
|
|
|
121
138
|
```python
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
},
|
|
128
|
-
title=text("Hello"),
|
|
129
|
-
body=ref(name),
|
|
130
|
-
)
|
|
139
|
+
from shortcutkit import app_intent
|
|
140
|
+
|
|
141
|
+
app = {"BundleIdentifier": "com.example.app", "Name": "Example", "TeamIdentifier": "ABCDE12345"}
|
|
142
|
+
note = s.action(app_intent(app, "CreateNoteIntent", "Note"), title=text("Hello"), body=ref(name))
|
|
143
|
+
s.action(actions.SHOWRESULT, Text=ref(note))
|
|
131
144
|
```
|
|
132
145
|
|
|
133
146
|
## API
|
|
@@ -149,7 +162,10 @@ s.action(
|
|
|
149
162
|
| `shortcut_input()`, `clipboard()`, `current_date()`, `ask()`, `device_details()`, `current_app()` | Special variables. |
|
|
150
163
|
| `where(*rows)`, `where_any(*rows)` | Conditions for a Find action's `WFContentItemFilter`. |
|
|
151
164
|
| `property_(source, name)` | One property of an action's output or a variable. |
|
|
152
|
-
| `
|
|
165
|
+
| `coerce(source, class)` | A value read as one content type (`CONTENT_ITEM_CLASSES`). |
|
|
166
|
+
| `dictionary(items)` | A dictionary parameter's items; `action()` encodes a plain dict itself. |
|
|
167
|
+
| `app_intent(app, intent, output=None)` | Another app's action, for `s.action()`. |
|
|
168
|
+
| `FILTERS`, `ENTITY_PROPERTIES`, `FILTER_OPERATORS`, `CALENDAR_UNITS`, `CONTENT_ITEM_CLASSES` | What each Find action can filter on, each entity type's properties, and the content types a coercion can name. |
|
|
153
169
|
| `actions`, `ACTIONS`, `get_action(id)` | Action identifiers and their catalog entries. |
|
|
154
170
|
| `PARAM_KINDS`, `PARAM_CHOICES`, `PARAM_VARIABLE_TYPES` | What each parameter accepts. |
|
|
155
171
|
| `CONDITION`, `ICON_COLORS`, `PROVENANCE` | If conditions, icon colors, and the build the data came from. |
|
|
@@ -30,9 +30,9 @@ are archived ([python-shortcuts](https://github.com/alexander-akhmetov/python-sh
|
|
|
30
30
|
[Cherri](https://github.com/electrikmilk/cherri) is a separate language with its own compiler.
|
|
31
31
|
|
|
32
32
|
- All 449 built-in actions as constants, so a typo is an `AttributeError`.
|
|
33
|
-
- 1,
|
|
33
|
+
- 1,265 actions from Apple's apps: Reminders, Notes, Messages, Settings, and 70 more. Only
|
|
34
34
|
actions the Shortcuts editor offers: the Siri-only intents the app refuses to import are left out.
|
|
35
|
-
- Third-party app actions,
|
|
35
|
+
- Third-party app actions, named by app and intent.
|
|
36
36
|
- Checked conditions for 150 Find actions, the 14 built-in ones (Filter Files, Find Photos, Find
|
|
37
37
|
Contacts, ...) and 136 in Apple's apps (Find Messages, Find Notes, ...), from the engine's own
|
|
38
38
|
rules, and the properties of what they find.
|
|
@@ -93,20 +93,33 @@ found = s.action(actions.MESSAGES_FIND_MESSAGE,
|
|
|
93
93
|
s.action(actions.SHOWRESULT, Text=text(property_(found, "body")))
|
|
94
94
|
```
|
|
95
95
|
|
|
96
|
+
### Dictionaries and types
|
|
97
|
+
|
|
98
|
+
A dictionary parameter takes a plain dict: strings, `text()` and references are text items, and
|
|
99
|
+
numbers, booleans, lists and nested dicts keep their type, as the editor's item type menu sets it.
|
|
100
|
+
`coerce()` reads a value as one content type, as the variable "Type" menu does.
|
|
101
|
+
|
|
102
|
+
```python
|
|
103
|
+
from shortcutkit import coerce
|
|
104
|
+
|
|
105
|
+
d = s.action(actions.DICTIONARY, WFItems={"name": ref(name), "greeted": True, "tags": ["a", "b"]})
|
|
106
|
+
gid = s.if_(coerce(d, "WFStringContentItem"), "contains", "a")
|
|
107
|
+
s.end_if(gid)
|
|
108
|
+
```
|
|
109
|
+
|
|
96
110
|
### Other apps
|
|
97
111
|
|
|
98
|
-
|
|
112
|
+
Name the app and the intent: the identifier is the bundle identifier followed by the intent name, as
|
|
113
|
+
the catalogue identifies an app's own intents, and the descriptor is written as the catalogue's are.
|
|
114
|
+
The parameters are not checked: their keys are the intent's parameter names, from
|
|
115
|
+
`Metadata.appintents/extract.actionsdata` in the app bundle.
|
|
99
116
|
|
|
100
117
|
```python
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
},
|
|
107
|
-
title=text("Hello"),
|
|
108
|
-
body=ref(name),
|
|
109
|
-
)
|
|
118
|
+
from shortcutkit import app_intent
|
|
119
|
+
|
|
120
|
+
app = {"BundleIdentifier": "com.example.app", "Name": "Example", "TeamIdentifier": "ABCDE12345"}
|
|
121
|
+
note = s.action(app_intent(app, "CreateNoteIntent", "Note"), title=text("Hello"), body=ref(name))
|
|
122
|
+
s.action(actions.SHOWRESULT, Text=ref(note))
|
|
110
123
|
```
|
|
111
124
|
|
|
112
125
|
## API
|
|
@@ -128,7 +141,10 @@ s.action(
|
|
|
128
141
|
| `shortcut_input()`, `clipboard()`, `current_date()`, `ask()`, `device_details()`, `current_app()` | Special variables. |
|
|
129
142
|
| `where(*rows)`, `where_any(*rows)` | Conditions for a Find action's `WFContentItemFilter`. |
|
|
130
143
|
| `property_(source, name)` | One property of an action's output or a variable. |
|
|
131
|
-
| `
|
|
144
|
+
| `coerce(source, class)` | A value read as one content type (`CONTENT_ITEM_CLASSES`). |
|
|
145
|
+
| `dictionary(items)` | A dictionary parameter's items; `action()` encodes a plain dict itself. |
|
|
146
|
+
| `app_intent(app, intent, output=None)` | Another app's action, for `s.action()`. |
|
|
147
|
+
| `FILTERS`, `ENTITY_PROPERTIES`, `FILTER_OPERATORS`, `CALENDAR_UNITS`, `CONTENT_ITEM_CLASSES` | What each Find action can filter on, each entity type's properties, and the content types a coercion can name. |
|
|
132
148
|
| `actions`, `ACTIONS`, `get_action(id)` | Action identifiers and their catalog entries. |
|
|
133
149
|
| `PARAM_KINDS`, `PARAM_CHOICES`, `PARAM_VARIABLE_TYPES` | What each parameter accepts. |
|
|
134
150
|
| `CONDITION`, `ICON_COLORS`, `PROVENANCE` | If conditions, icon colors, and the build the data came from. |
|
|
@@ -4,8 +4,8 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "shortcutkit"
|
|
7
|
-
version = "
|
|
8
|
-
description = "Build, validate, and sign Apple Shortcuts files from Python. All 449 built-in actions and 1,
|
|
7
|
+
version = "3.0.0"
|
|
8
|
+
description = "Build, validate, and sign Apple Shortcuts files from Python. All 449 built-in actions and 1,265 Apple app actions, extracted from the Shortcuts engine."
|
|
9
9
|
requires-python = ">=3.9"
|
|
10
10
|
readme = "README.md"
|
|
11
11
|
license = "MIT"
|
|
@@ -27,6 +27,9 @@ Value helpers return the exact structures WorkflowKit's state classes serialize:
|
|
|
27
27
|
text("a ", ref(x)) WFTextTokenString -> text with embedded references
|
|
28
28
|
subject(att) {"Type": "Variable", "Variable": att} (the If condition's subject; pickers take the bare attachment)
|
|
29
29
|
property_(x, "body") a reference to one property of x (a WFPropertyVariableAggrandizement)
|
|
30
|
+
coerce(x, "WFStringContentItem") x read as one content type (a WFCoercionVariableAggrandizement; CONTENT_ITEM_CLASSES)
|
|
31
|
+
dictionary({...}) WFDictionaryFieldValue -> a dictionary parameter's items, typed as the editor types them
|
|
32
|
+
app_intent(app, "CreateNoteIntent") another app's action, for action(): its identifier and descriptor
|
|
30
33
|
where(row, ...) Find conditions, encoded by action() for the Find action's entity
|
|
31
34
|
Plain str / int / float / bool / list / datetime are written as-is.
|
|
32
35
|
"""
|
|
@@ -196,8 +199,81 @@ def property_(source, name):
|
|
|
196
199
|
if entities and name not in known:
|
|
197
200
|
raise ValueError(f"{' / '.join(entities)} has no property {name}; it has {', '.join(sorted(known))}")
|
|
198
201
|
source = ref(source)
|
|
202
|
+
return _aggrandize(source, {"Type": "WFPropertyVariableAggrandizement", "PropertyName": name})
|
|
203
|
+
|
|
204
|
+
|
|
205
|
+
def _aggrandize(source, aggrandizement):
|
|
206
|
+
"""`source` with one more aggrandizement; an action stands for its output."""
|
|
207
|
+
if not _is_reference(source):
|
|
208
|
+
source = ref(source)
|
|
199
209
|
prior = source["Value"].get("Aggrandizements")
|
|
200
|
-
return _attachment({**source["Value"], "Aggrandizements": [*(prior if isinstance(prior, list) else []),
|
|
210
|
+
return _attachment({**source["Value"], "Aggrandizements": [*(prior if isinstance(prior, list) else []), aggrandizement]})
|
|
211
|
+
|
|
212
|
+
|
|
213
|
+
def coerce(source, to):
|
|
214
|
+
"""`source` read as one content type, as the editor's variable "Type" menu writes it (a
|
|
215
|
+
WFCoercionVariableAggrandizement): coerce(ref(json), "WFDictionaryContentItem"), coerce(repeat_item(), "WFStringContentItem").
|
|
216
|
+
The classes are the engine's own list (CONTENT_ITEM_CLASSES, each with the name the editor shows). An If whose
|
|
217
|
+
subject's type the engine cannot tell (a dictionary value, a repeat item) needs one: without it "is" has nothing
|
|
218
|
+
to compare against and the run fails (a downstream user's observation; docs/extraction.md, run-time observations)."""
|
|
219
|
+
if to not in CONTENT_ITEM_CLASSES:
|
|
220
|
+
raise ValueError(f"no content item class {to}; the engine coerces to {', '.join(CONTENT_ITEM_CLASSES)}")
|
|
221
|
+
return _aggrandize(source, {"Type": "WFCoercionVariableAggrandizement", "CoercionItemClass": to})
|
|
222
|
+
|
|
223
|
+
|
|
224
|
+
def dictionary(items):
|
|
225
|
+
"""A dictionary parameter: Dictionary's items, Get Contents of URL's headers, form and JSON bodies. Strings,
|
|
226
|
+
text() and references are text items; numbers, booleans, lists and nested dicts keep their type, as the editor's
|
|
227
|
+
item type menu sets it: dictionary({"apikey": variable("Key"), "count": 5, "nested": {"ok": True}, "tags": ["a", "b"]}).
|
|
228
|
+
action() encodes a plain dict given for a dictionary key itself, so the call is needed only where the key is untyped."""
|
|
229
|
+
return {"WFSerializationType": "WFDictionaryFieldValue",
|
|
230
|
+
"Value": {"WFDictionaryFieldValueItems": [{"WFKey": text(k), **_dictionary_item(v)} for k, v in items.items()]}}
|
|
231
|
+
|
|
232
|
+
|
|
233
|
+
def _is_dictionary_items(v):
|
|
234
|
+
"""A plain dict of items for a dictionary parameter (not an encoded value)."""
|
|
235
|
+
return isinstance(v, dict) and "WFSerializationType" not in v and not (v.get("Type") == "Variable" and "Variable" in v)
|
|
236
|
+
|
|
237
|
+
|
|
238
|
+
def _dictionary_item(v):
|
|
239
|
+
"""One item's type code and value, as the dictionary state class writes them back (docs/shortcut-file-format.md §3)."""
|
|
240
|
+
if isinstance(v, str):
|
|
241
|
+
return {"WFItemType": 0, "WFValue": text(v)}
|
|
242
|
+
if isinstance(v, dict) and v.get("WFSerializationType") == "WFTextTokenString":
|
|
243
|
+
return {"WFItemType": 0, "WFValue": v}
|
|
244
|
+
if isinstance(v, dict) and v.get("WFSerializationType") == "WFTextTokenAttachment":
|
|
245
|
+
return {"WFItemType": 0, "WFValue": text(v)}
|
|
246
|
+
if isinstance(v, bool):
|
|
247
|
+
return {"WFItemType": 4, "WFValue": {"WFSerializationType": "WFNumberSubstitutableState", "Value": v}}
|
|
248
|
+
if isinstance(v, (int, float)):
|
|
249
|
+
return {"WFItemType": 3, "WFValue": text(_number_text(v))}
|
|
250
|
+
# Array items carry no key; plain text is the bare string, as the engine writes it back.
|
|
251
|
+
if isinstance(v, (list, tuple)):
|
|
252
|
+
return {"WFItemType": 2, "WFValue": {"WFSerializationType": "WFArrayParameterState", "Value": [x if isinstance(x, str) else _dictionary_item(x) for x in v]}}
|
|
253
|
+
# A nested dictionary is wrapped once more than the outer one (the engine serializes it so, and reads the unwrapped form into that).
|
|
254
|
+
if isinstance(v, dict) and v.get("WFSerializationType") == "WFDictionaryFieldValue":
|
|
255
|
+
return {"WFItemType": 1, "WFValue": {"WFSerializationType": "WFDictionaryFieldValue", "Value": v}}
|
|
256
|
+
if _is_dictionary_items(v):
|
|
257
|
+
return {"WFItemType": 1, "WFValue": {"WFSerializationType": "WFDictionaryFieldValue", "Value": dictionary(v)}}
|
|
258
|
+
raise ValueError(f"dictionary(): a value must be a str, text(), a reference, a number, a bool, a list or a dict, got {v!r}")
|
|
259
|
+
|
|
260
|
+
|
|
261
|
+
def _number_text(n):
|
|
262
|
+
"""A number as JavaScript's String() writes it, so both packages write the same item (5, not 5.0)."""
|
|
263
|
+
if isinstance(n, float) and n.is_integer():
|
|
264
|
+
return str(int(n))
|
|
265
|
+
return repr(n) if isinstance(n, float) else str(n)
|
|
266
|
+
|
|
267
|
+
|
|
268
|
+
def app_intent(app, intent, output=None):
|
|
269
|
+
"""Name an App Intents action of an app the catalogue does not cover, for action():
|
|
270
|
+
s.action(app_intent(app, "CreateNoteIntent", "Note"), title=text("Hi")). `app` holds BundleIdentifier, Name and
|
|
271
|
+
TeamIdentifier (the bundle's Info.plist and `codesign -dv`); the identifier is the bundle identifier followed by the
|
|
272
|
+
intent's name, as the catalogue identifies an app's own intents, and the descriptor is written as the catalogue's are
|
|
273
|
+
(an intent hosted in a framework or extension has another identifier, which action() still takes by hand with an
|
|
274
|
+
AppIntentDescriptor). `output` names the result for ref() ("Output" when left out). The parameters are not checked: their keys are the intent's parameter names, as
|
|
275
|
+
Metadata.appintents/extract.actionsdata in the app bundle lists them."""
|
|
276
|
+
return {"identifier": f"{app['BundleIdentifier']}.{intent}", "descriptor": {**app, "AppIntentIdentifier": intent}, "output": output}
|
|
201
277
|
|
|
202
278
|
|
|
203
279
|
def where(*rows):
|
|
@@ -322,7 +398,6 @@ def _utc(d):
|
|
|
322
398
|
|
|
323
399
|
def picker(attachment):
|
|
324
400
|
"""Deprecated, misnamed: this is the If-subject form. Pass a bare reference to picker parameters."""
|
|
325
|
-
"""Wrap an attachment for WFVariablePickerParameter keys (e.g. WFInput on Repeat with Each)."""
|
|
326
401
|
return {"Type": "Variable", "Variable": attachment}
|
|
327
402
|
|
|
328
403
|
|
|
@@ -360,14 +435,17 @@ class Shortcut:
|
|
|
360
435
|
def action(self, identifier, /, **params):
|
|
361
436
|
"""Append an action and return it; ref() it to use its output. Catalog identifiers are
|
|
362
437
|
checked: unknown keys, wrong value kinds, and unreadable references raise ValueError. Other
|
|
363
|
-
identifiers pass through unchecked
|
|
364
|
-
have that name."""
|
|
438
|
+
identifiers pass through unchecked; app_intent() names another app's action with its descriptor.
|
|
439
|
+
`identifier` is positional-only, so a parameter can have that name."""
|
|
440
|
+
intent = identifier if isinstance(identifier, dict) else None
|
|
441
|
+
if intent:
|
|
442
|
+
identifier = intent["identifier"]
|
|
365
443
|
definition = self.defs.get(identifier)
|
|
366
444
|
catalog = ACTIONS.get(identifier) or {}
|
|
367
|
-
descriptor = catalog.get("descriptor")
|
|
445
|
+
descriptor = catalog.get("descriptor") or (intent or {}).get("descriptor")
|
|
368
446
|
if self.defs and definition is None and not catalog and identifier.startswith("is.workflow."):
|
|
369
447
|
raise ValueError(f"unknown built-in action {identifier}")
|
|
370
|
-
if definition or descriptor:
|
|
448
|
+
if definition or catalog.get("descriptor"):
|
|
371
449
|
known = {p.get("Key") for p in (definition or {}).get("Parameters", []) if isinstance(p, dict)}
|
|
372
450
|
known |= {"UUID", "GroupingIdentifier", "WFControlFlowMode", "CustomOutputName"}
|
|
373
451
|
known |= LEGACY_KEYS.get(identifier, set())
|
|
@@ -383,7 +461,9 @@ class Shortcut:
|
|
|
383
461
|
kinds = PARAM_KINDS.get(identifier, {})
|
|
384
462
|
restricted = PARAM_VARIABLE_TYPES.get(identifier, {})
|
|
385
463
|
for key, value in params.items():
|
|
386
|
-
|
|
464
|
+
# where() rows belong to a Find action's filter key; an untyped action (another app's Find) is refused by
|
|
465
|
+
# _encode_filter(), which names the missing FILTERS entry.
|
|
466
|
+
if _is_where(value) and key in kinds and kinds[key] != "filter":
|
|
387
467
|
raise ValueError(f"{identifier}.{key}: where() rows go only in a Find action's WFContentItemFilter")
|
|
388
468
|
problem = _check_kind(kinds.get(key, "any"), value)
|
|
389
469
|
if problem:
|
|
@@ -397,6 +477,7 @@ class Shortcut:
|
|
|
397
477
|
# token string with one placeholder. Wrap it so ref() works for text keys too.
|
|
398
478
|
params = {k: (text(v) if kinds.get(k) == "text" and _is_reference(v) and v.get("WFSerializationType") == "WFTextTokenAttachment"
|
|
399
479
|
else subject(v) if kinds.get(k) == "subject" and _is_reference(v) and v.get("WFSerializationType") == "WFTextTokenAttachment"
|
|
480
|
+
else dictionary(v) if kinds.get(k) == "dictionary" and _is_dictionary_items(v)
|
|
400
481
|
else _encode_filter(identifier, v) if _is_where(v) else v)
|
|
401
482
|
for k, v in params.items()}
|
|
402
483
|
# App Intents actions carry a descriptor naming the app that provides them.
|
|
@@ -406,7 +487,7 @@ class Shortcut:
|
|
|
406
487
|
entry = {"WFWorkflowActionIdentifier": identifier,
|
|
407
488
|
"WFWorkflowActionParameters": {**head, **params}}
|
|
408
489
|
output = (definition or {}).get("Output", {})
|
|
409
|
-
entry["_outputName"] = (output.get("OutputName") if isinstance(output, dict) else None) or catalog.get("output")
|
|
490
|
+
entry["_outputName"] = (output.get("OutputName") if isinstance(output, dict) else None) or catalog.get("output") or (intent or {}).get("output")
|
|
410
491
|
entry["_outputTypes"] = list(catalog.get("outputTypes") or (output.get("Types") if isinstance(output, dict) else []) or [])
|
|
411
492
|
if isinstance(entry["_outputName"], dict):
|
|
412
493
|
entry["_outputName"] = entry["_outputName"].get("format")
|
|
@@ -551,12 +632,12 @@ def demo(out):
|
|
|
551
632
|
|
|
552
633
|
from . import actions # noqa: E402 (generated identifier constants and ACTIONS metadata)
|
|
553
634
|
from .actions import ACTIONS, PARAM_KINDS, PARAM_CHOICES, PARAM_VARIABLE_TYPES # noqa: E402
|
|
554
|
-
from .entities import FILTERS, FILTER_OPERATORS, CALENDAR_UNITS, BYTE_COUNT_UNITS, BOUNDED_FILTERS, ENTITY_PROPERTIES # noqa: E402 (generated Find filters and
|
|
635
|
+
from .entities import FILTERS, FILTER_OPERATORS, CALENDAR_UNITS, BYTE_COUNT_UNITS, BOUNDED_FILTERS, ENTITY_PROPERTIES, CONTENT_ITEM_CLASSES # noqa: E402 (generated Find filters, entity properties and content item classes)
|
|
555
636
|
|
|
556
637
|
PROVENANCE = json.load(open(HERE / "data" / "provenance.json")) if (HERE / "data" / "provenance.json").exists() else {}
|
|
557
638
|
"""Which macOS and Shortcuts build the bundled data was extracted from."""
|
|
558
639
|
|
|
559
640
|
__all__ = ["actions", "ACTIONS", "PARAM_KINDS", "PARAM_CHOICES", "PARAM_VARIABLE_TYPES", "PROVENANCE", "get_action", "repeat_item", "repeat_index", "subject", "Shortcut", "ref", "variable", "shortcut_input", "clipboard", "current_date", "ask", "device_details", "current_app", "picker", "text",
|
|
560
|
-
"property_", "where", "where_any", "FILTERS", "FILTER_OPERATORS", "CALENDAR_UNITS", "BYTE_COUNT_UNITS", "BOUNDED_FILTERS", "ENTITY_PROPERTIES",
|
|
641
|
+
"property_", "coerce", "dictionary", "app_intent", "where", "where_any", "FILTERS", "FILTER_OPERATORS", "CALENDAR_UNITS", "BYTE_COUNT_UNITS", "BOUNDED_FILTERS", "ENTITY_PROPERTIES", "CONTENT_ITEM_CLASSES",
|
|
561
642
|
"ICON_COLORS", "CONDITION", "DEFAULT_GLYPH", "LEGACY_KEYS", "demo"]
|
|
562
|
-
__version__ = "
|
|
643
|
+
__version__ = "3.0.0"
|
|
@@ -1063,9 +1063,6 @@ COM_APPLE_I_WORK_NUMBERS_EXPORT_SPREADSHEET_IN_BACKGROUND = "com.apple.iWork.Num
|
|
|
1063
1063
|
COM_APPLE_I_WORK_NUMBERS_CREATE_NEW_SPREADSHEET = "com.apple.iWork.Numbers.TNNewDocumentIntent" # Create New Spreadsheet
|
|
1064
1064
|
COM_APPLE_I_WORK_PAGES_EXPORT_DOCUMENT_IN_BACKGROUND = "com.apple.iWork.Pages.TPDocumentBackgroundExportIntent" # Export Document in Background
|
|
1065
1065
|
COM_APPLE_I_WORK_PAGES_CREATE_NEW_DOCUMENT = "com.apple.iWork.Pages.TPNewDocumentIntent" # Create New Document
|
|
1066
|
-
COM_APPLE_INTELLIGENCEFLOW_GEOFLOWTOOLS_GEOFLOWTOOLS_STARTNAVIGATIONFLOWTOOL_COM_APPLE_MAPS = "com.apple.intelligenceflow.GeoFlowTools.GeoFlowTools.StartNavigationFlowTool|com.apple.Maps" # Start Navigation
|
|
1067
|
-
COM_APPLE_INTELLIGENCEFLOW_GEOFLOWTOOLS_GEOFLOWTOOLS_UPDATEWAYPOINTSFLOWTOOL_COM_APPLE_MAPS = "com.apple.intelligenceflow.GeoFlowTools.GeoFlowTools.UpdateWayPointsFlowTool|com.apple.Maps" # Update Navigation Waypoints
|
|
1068
|
-
COM_APPLE_INTELLIGENCEFLOW_GETCURRENTLOCATIONFLOWTOOLPLUGIN_GETCURRENTLOCATIONFLOWTOOLPLUGIN_GETCURRENTLOCATIONTOOL = "com.apple.intelligenceflow.GetCurrentLocationFlowToolPlugin.GetCurrentLocationFlowToolPlugin.GetCurrentLocationTool" # GetCurrentLocationTool
|
|
1069
1066
|
COM_APPLE_INTELLIGENCEFLOW_INTELLIGENCE_FLOW_APP_INTENTS_EXTENSION_OPEN_APPLICATION = "com.apple.intelligenceflow.IntelligenceFlowAppIntentsExtension.OpenApplication" # Open Application
|
|
1070
1067
|
COM_APPLE_INTELLIGENCEFLOW_INTELLIGENCE_FLOW_APP_INTENTS_EXTENSION_OPEN_FILE = "com.apple.intelligenceflow.IntelligenceFlowAppIntentsExtension.OpenFile" # Open File
|
|
1071
1068
|
COM_APPLE_INTELLIGENCEFLOW_INTELLIGENCE_FLOW_APP_INTENTS_EXTENSION_OPEN_URL = "com.apple.intelligenceflow.IntelligenceFlowAppIntentsExtension.OpenURL" # Open URL
|
|
@@ -1233,72 +1230,22 @@ COM_APPLE_SIRI_AUDIO_APP_INTENTS_EXTENSION_ADD_AUDIO_ITEM_TO_LIBRARY = "com.appl
|
|
|
1233
1230
|
COM_APPLE_SIRI_AUDIO_APP_INTENTS_EXTENSION_ADD_AUDIO_ITEM_TO_PLAYLIST = "com.apple.siri.AudioAppIntentsExtension.SiriKitAddAudioToPlaylistIntent" # Add Audio Item to Playlist
|
|
1234
1231
|
COM_APPLE_SIRI_AUDIO_APP_INTENTS_EXTENSION_LIKE_AUDIO_ITEM = "com.apple.siri.AudioAppIntentsExtension.SiriKitUpdateAudioAffinityIntent" # Like Audio Item
|
|
1235
1232
|
COM_APPLE_SIRI_AUDIO_APP_INTENTS_EXTENSION_WHOLE_HOUSE_AUDIO_PLACEHOLDER_INTENT = "com.apple.siri.AudioAppIntentsExtension.WholeHouseAudioPlaceholderIntent" # Whole House Audio Placeholder Intent
|
|
1236
|
-
COM_APPLE_SIRI_PHOTOSFLOWTOOLS_SIRIPHOTOSFLOWTOOLS_EDITPHOTOWARMTH_COM_APPLE_PHOTOS = "com.apple.siri.PhotosFlowTools.SiriPhotosFlowTools.EditPhotoWarmth|com.apple.Photos" # EditPhotoWarmth
|
|
1237
|
-
COM_APPLE_SIRI_SIRIAUDIOTOOLS_SIRIAUDIOTOOLS_ADDAUDIOTOLIBRARYTOOL_COM_APPLE_MUSIC = "com.apple.siri.SiriAudioTools.SiriAudioTools.AddAudioToLibraryTool|com.apple.Music" # AddAudioToLibrary
|
|
1238
|
-
COM_APPLE_SIRI_SIRIAUDIOTOOLS_SIRIAUDIOTOOLS_ADDAUDIOTOLIBRARYTOOL_COM_APPLE_PODCASTS = "com.apple.siri.SiriAudioTools.SiriAudioTools.AddAudioToLibraryTool|com.apple.podcasts" # AddAudioToLibrary
|
|
1239
|
-
COM_APPLE_SIRI_SIRIAUDIOTOOLS_SIRIAUDIOTOOLS_ADDAUDIOTOPLAYLISTTOOL_COM_APPLE_MUSIC = "com.apple.siri.SiriAudioTools.SiriAudioTools.AddAudioToPlaylistTool|com.apple.Music" # AddAudioToPlaylist
|
|
1240
|
-
COM_APPLE_SIRI_SIRIAUDIOTOOLS_SIRIAUDIOTOOLS_PLAYAUDIOTOOL_COM_APPLE_MUSIC = "com.apple.siri.SiriAudioTools.SiriAudioTools.PlayAudioTool|com.apple.Music" # PlayAudio
|
|
1241
|
-
COM_APPLE_SIRI_SIRIAUDIOTOOLS_SIRIAUDIOTOOLS_PLAYAUDIOTOOL_COM_APPLE_IBOOKSX = "com.apple.siri.SiriAudioTools.SiriAudioTools.PlayAudioTool|com.apple.iBooksX" # PlayAudio
|
|
1242
|
-
COM_APPLE_SIRI_SIRIAUDIOTOOLS_SIRIAUDIOTOOLS_PLAYAUDIOTOOL_COM_APPLE_PODCASTS = "com.apple.siri.SiriAudioTools.SiriAudioTools.PlayAudioTool|com.apple.podcasts" # PlayAudio
|
|
1243
|
-
COM_APPLE_SIRI_SIRIAUDIOTOOLS_SIRIAUDIOTOOLS_UPDATEAUDIOAFFINITYTOOL_COM_APPLE_MUSIC = "com.apple.siri.SiriAudioTools.SiriAudioTools.UpdateAudioAffinityTool|com.apple.Music" # UpdateAudioAffinity
|
|
1244
|
-
COM_APPLE_SIRI_SIRICRISISFLOWTOOLS_SIRICRISISFLOWTOOLS_GETCRISISRESOURCESFLOWTOOL = "com.apple.siri.SiriCrisisFlowTools.SiriCrisisFlowTools.GetCrisisResourcesFlowTool" # Get Crisis Resources
|
|
1245
1233
|
COM_APPLE_SIRI_SIRI_GEO_SIRI_GEO_APP_INTENT_EXTENSION_GET_CURRENT_LOCATION = "com.apple.siri.SiriGeo.SiriGeoAppIntentExtension.CurrentLocationEntity" # Get Current Location
|
|
1246
1234
|
COM_APPLE_SIRI_SIRI_GEO_SIRI_GEO_APP_INTENT_EXTENSION_GET_CURRENT_ROUTE = "com.apple.siri.SiriGeo.SiriGeoAppIntentExtension.NavigationSessionEntity" # Get Current Route
|
|
1247
1235
|
COM_APPLE_SIRI_SIRI_GEO_SIRI_GEO_APP_INTENT_EXTENSION_SIRI_GEO_APP_INTENT = "com.apple.siri.SiriGeo.SiriGeoAppIntentExtension.SiriGeoAppIntent" # SiriGeoAppIntent
|
|
1248
1236
|
COM_APPLE_SIRI_SIRI_GEO_SIRI_GEO_APP_INTENT_EXTENSION_START_NAVIGATION_FOR_THIRD_PARTY_APPS = "com.apple.siri.SiriGeo.SiriGeoAppIntentExtension.ThirdPartyStartNavigationIntent" # Start Navigation for Third Party Apps
|
|
1249
|
-
COM_APPLE_SIRI_SIRIIDENTITYINTERNAL_SIRIIDENTITYINTERNAL_WHOAMITOOL = "com.apple.siri.SiriIdentityInternal.SiriIdentityInternal.WhoAmITool" # WhoAmITool
|
|
1250
|
-
COM_APPLE_SIRI_SIRIMAILFLOWTOOLS_SIRIMAILFLOWTOOLS_CREATEDRAFTMAILTOOL_COM_APPLE_MAIL = "com.apple.siri.SiriMailFlowTools.SiriMailFlowTools.CreateDraftMailTool|com.apple.mail" # CreateDraftMailTool
|
|
1251
|
-
COM_APPLE_SIRI_SIRIMAILFLOWTOOLS_SIRIMAILFLOWTOOLS_FORWARDDRAFTMAILTOOL_COM_APPLE_MAIL = "com.apple.siri.SiriMailFlowTools.SiriMailFlowTools.ForwardDraftMailTool|com.apple.mail" # ForwardDraftMailTool
|
|
1252
|
-
COM_APPLE_SIRI_SIRIMAILFLOWTOOLS_SIRIMAILFLOWTOOLS_REPLYDRAFTMAILTOOL_COM_APPLE_MAIL = "com.apple.siri.SiriMailFlowTools.SiriMailFlowTools.ReplyDraftMailTool|com.apple.mail" # ReplyDraftMailTool
|
|
1253
|
-
COM_APPLE_SIRI_SIRIMAILFLOWTOOLS_SIRIMAILFLOWTOOLS_SENDDRAFTMAILTOOL_COM_APPLE_MAIL = "com.apple.siri.SiriMailFlowTools.SiriMailFlowTools.SendDraftMailTool|com.apple.mail" # SendDraftMailTool
|
|
1254
|
-
COM_APPLE_SIRI_SIRIMAILFLOWTOOLS_SIRIMAILFLOWTOOLS_UPDATEDRAFTMAILTOOL_COM_APPLE_MAIL = "com.apple.siri.SiriMailFlowTools.SiriMailFlowTools.UpdateDraftMailTool|com.apple.mail" # UpdateDraftMailTool
|
|
1255
1237
|
COM_APPLE_SIRI_SIRI_NOTIFICATIONS_APP_INTENTS_EXTENSION_PREPARE_NOTIFICATIONS = "com.apple.siri.SiriNotificationsAppIntentsExtension.PrepareNotificationsIntent" # Prepare notifications
|
|
1256
1238
|
COM_APPLE_SIRI_SIRI_NOTIFICATIONS_APP_INTENTS_EXTENSION_SIRI_NOTIFICATIONS_APP_INTENTS_EXTENSION = "com.apple.siri.SiriNotificationsAppIntentsExtension.SiriNotificationsAppIntentsExtension" # SiriNotificationsAppIntentsExtension
|
|
1257
|
-
COM_APPLE_SIRI_SIRINOTIFICATIONSFLOWTOOLS_SIRINOTIFICATIONSFLOWTOOLS_PREPARENOTIFICATIONSTOOL = "com.apple.siri.SiriNotificationsFlowTools.SiriNotificationsFlowTools.PrepareNotificationsTool" # Prepare Notifications
|
|
1258
1239
|
PHONE_SIRIPHONE_PUNCHOUT_INTENT = "com.apple.siri.SiriPhoneAppIntentsExtension.SiriPhonePunchoutIntent" # SiriPhonePunchoutIntent
|
|
1259
|
-
COM_APPLE_SIRI_SIRIPHONEFLOWTOOLS_SIRIPHONEFLOWTOOLS_ANSWERCALLFLOWTOOL_COM_APPLE_CALLS_PHONEAPPINTENTSEXTENSION = "com.apple.siri.SiriPhoneFlowTools.SiriPhoneFlowTools.AnswerCallFlowTool|com.apple.calls.PhoneAppIntentsExtension" # Answer an incoming call
|
|
1260
|
-
COM_APPLE_SIRI_SIRIPHONEFLOWTOOLS_SIRIPHONEFLOWTOOLS_CALLEMERGENCYCONTACTFLOWTOOL = "com.apple.siri.SiriPhoneFlowTools.SiriPhoneFlowTools.CallEmergencyContactFlowTool" # Call Emergency Contact Flow Tool
|
|
1261
|
-
COM_APPLE_SIRI_SIRIPHONEFLOWTOOLS_SIRIPHONEFLOWTOOLS_CALLBACKFLOWTOOL = "com.apple.siri.SiriPhoneFlowTools.SiriPhoneFlowTools.CallbackFlowTool" # Callback Flow Tool
|
|
1262
|
-
COM_APPLE_SIRI_SIRIPHONEFLOWTOOLS_SIRIPHONEFLOWTOOLS_PREPARECALLMESSAGESFLOWTOOL = "com.apple.siri.SiriPhoneFlowTools.SiriPhoneFlowTools.PrepareCallMessagesFlowTool" # Prepare Call Messages Flow Tool
|
|
1263
|
-
COM_APPLE_SIRI_SIRIPHONEFLOWTOOLS_SIRIPHONEFLOWTOOLS_PREPAREREADCALLRECORDSFLOWTOOL = "com.apple.siri.SiriPhoneFlowTools.SiriPhoneFlowTools.PrepareReadCallRecordsFlowTool" # Prepare Read Call Records
|
|
1264
|
-
COM_APPLE_SIRI_SIRIPHONEFLOWTOOLS_SIRIPHONEFLOWTOOLS_READCALLMESSAGEFLOWTOOL = "com.apple.siri.SiriPhoneFlowTools.SiriPhoneFlowTools.ReadCallMessageFlowTool" # Read Call Message Flow Tool
|
|
1265
|
-
COM_APPLE_SIRI_SIRIPHONEFLOWTOOLS_SIRIPHONEFLOWTOOLS_REDIALFLOWTOOL = "com.apple.siri.SiriPhoneFlowTools.SiriPhoneFlowTools.RedialFlowTool" # Redial Flow Tool
|
|
1266
|
-
COM_APPLE_SIRI_SIRIPHONEFLOWTOOLS_SIRIPHONEFLOWTOOLS_STARTCALLFLOWTOOL_COM_APPLE_FACETIME = "com.apple.siri.SiriPhoneFlowTools.SiriPhoneFlowTools.StartCallFlowTool|com.apple.FaceTime" # Start a call
|
|
1267
|
-
COM_APPLE_SIRI_SIRIPHONEFLOWTOOLS_SIRIPHONEFLOWTOOLS_STARTCALLFLOWTOOL_COM_APPLE_MOBILEPHONE = "com.apple.siri.SiriPhoneFlowTools.SiriPhoneFlowTools.StartCallFlowTool|com.apple.mobilephone" # Start a call
|
|
1268
|
-
COM_APPLE_SIRI_SIRIPHONEFLOWTOOLS_SIRIPHONEFLOWTOOLS_STARTCRISISHELPLINECALLFLOWTOOL = "com.apple.siri.SiriPhoneFlowTools.SiriPhoneFlowTools.StartCrisisHelplineCallFlowTool" # Start Crisis Helpline Call Flow Tool
|
|
1269
|
-
COM_APPLE_SIRI_SIRIPHONEFLOWTOOLS_SIRIPHONEFLOWTOOLS_STARTEMERGENCYCALLFLOWTOOL_COM_APPLE_CALLS_PHONEAPPINTENTSEXTENSION = "com.apple.siri.SiriPhoneFlowTools.SiriPhoneFlowTools.StartEmergencyCallFlowTool|com.apple.calls.PhoneAppIntentsExtension" # Start Emergency Call
|
|
1270
1240
|
COM_APPLE_SIRI_SIRI_PHOTOS_APP_INTENTS_EXTENSION_SIRI_PHOTOS_APP_INTENTS_EXTENSION = "com.apple.siri.SiriPhotosAppIntentsExtension.SiriPhotosAppIntentsExtension" # SiriPhotosAppIntentsExtension
|
|
1271
1241
|
COM_APPLE_SIRI_SIRI_PHOTOS_APP_INTENTS_EXTENSION_UPDATE_PHOTO_WARMTH = "com.apple.siri.SiriPhotosAppIntentsExtension.UpdatePhotoWarmthTool" # Update Photo Warmth
|
|
1272
|
-
COM_APPLE_SIRI_SIRITIMEFLOWTOOLS_SIRITIMEFLOWTOOLS_CANCELTIMERFLOWTOOL_COM_APPLE_CLOCK = "com.apple.siri.SiriTimeFlowTools.SiriTimeFlowTools.CancelTimerFlowTool|com.apple.clock" # CancelTimer
|
|
1273
|
-
COM_APPLE_SIRI_SIRITIMEFLOWTOOLS_SIRITIMEFLOWTOOLS_DISMISSALARMFLOWTOOL_COM_APPLE_CLOCK = "com.apple.siri.SiriTimeFlowTools.SiriTimeFlowTools.DismissAlarmFlowTool|com.apple.clock" # DismissAlarm
|
|
1274
|
-
COM_APPLE_SIRI_SIRITIMEFLOWTOOLS_SIRITIMEFLOWTOOLS_SNOOZEALARMFLOWTOOL_COM_APPLE_CLOCK = "com.apple.siri.SiriTimeFlowTools.SiriTimeFlowTools.SnoozeAlarmFlowTool|com.apple.clock" # SnoozeAlarm
|
|
1275
|
-
COM_APPLE_SIRI_SIRITRANSLATIONFLOWTOOLS_SIRITRANSLATIONFLOWTOOLS_TRANSLATETEXTFLOWTOOL = "com.apple.siri.SiriTranslationFlowTools.SiriTranslationFlowTools.TranslateTextFlowTool" # Translate Text
|
|
1276
1242
|
COM_APPLE_SIRI_SIRI_VIDEO_APP_INTENTS_CROSS_DEVICE_PLACEHOLDER_INTENT = "com.apple.siri.SiriVideoAppIntents.CrossDevicePlaceholderIntent" # Cross Device Placeholder Intent
|
|
1277
1243
|
COM_APPLE_SIRI_SIRI_VIDEO_APP_INTENTS_FINDS_A_FREEFORM_VIDEO = "com.apple.siri.SiriVideoAppIntents.InternalFindFreeformVideoIntent" # Finds a freeform video
|
|
1278
1244
|
COM_APPLE_SIRI_SIRI_VIDEO_APP_INTENTS_FINDS_A_VIDEO = "com.apple.siri.SiriVideoAppIntents.InternalFindVideoIntent" # Finds a video
|
|
1279
1245
|
COM_APPLE_SIRI_SIRI_VIDEO_APP_INTENTS_PLAYS_A_VIDEO = "com.apple.siri.SiriVideoAppIntents.InternalPlayContentIntent" # Plays a video
|
|
1280
|
-
COM_APPLE_SIRI_SIRIVIDEOFLOWTOOLS_SIRIVIDEOFLOWTOOLS_FINDVIDEOCONTENTTOOL = "com.apple.siri.SiriVideoFlowTools.SiriVideoFlowTools.FindVideoContentTool" # Find Video content
|
|
1281
|
-
COM_APPLE_SIRI_FINDMY_SIRIFINDMYFLOWTOOLS_SIRIFINDMYFLOWTOOLS_CREATEINCOMINGGEOFENCETOOL_COM_APPLE_FINDMY = "com.apple.siri.findmy.SiriFindMyFlowTools.SiriFindMyFlowTools.CreateIncomingGeofenceTool|com.apple.findmy" # Create Incoming Geofence
|
|
1282
|
-
COM_APPLE_SIRI_FINDMY_SIRIFINDMYFLOWTOOLS_SIRIFINDMYFLOWTOOLS_CREATEOUTGOINGGEOFENCETOOL_COM_APPLE_FINDMY = "com.apple.siri.findmy.SiriFindMyFlowTools.SiriFindMyFlowTools.CreateOutgoingGeofenceTool|com.apple.findmy" # Create Outgoing Geofence
|
|
1283
|
-
COM_APPLE_SIRI_FINDMY_SIRIFINDMYFLOWTOOLS_SIRIFINDMYFLOWTOOLS_FINDITEMLOCATIONTOOL_COM_APPLE_FINDMY = "com.apple.siri.findmy.SiriFindMyFlowTools.SiriFindMyFlowTools.FindItemLocationTool|com.apple.findmy" # Find Item Location
|
|
1284
|
-
COM_APPLE_SIRI_FINDMY_SIRIFINDMYFLOWTOOLS_SIRIFINDMYFLOWTOOLS_PLAYITEMSOUNDTOOL_COM_APPLE_FINDMY = "com.apple.siri.findmy.SiriFindMyFlowTools.SiriFindMyFlowTools.PlayItemSoundTool|com.apple.findmy" # Play Item Sound
|
|
1285
1246
|
COM_APPLE_SIRI_MESSAGES_SIRI_MESSAGES_APP_INTENTS_EXTENSION_MESSAGES_POST_READING_ACTION_TOOL = "com.apple.siri.messages.SiriMessagesAppIntentsExtension.MessagesPostReadActionAppIntent" # Messages Post Reading Action Tool
|
|
1286
1247
|
COM_APPLE_SIRI_MESSAGES_SIRI_MESSAGES_APP_INTENTS_EXTENSION_PREPARE_TO_READ_CONVERSATION_TOOL = "com.apple.siri.messages.SiriMessagesAppIntentsExtension.PrepareToReadConversationAppIntent" # Prepare To Read Conversation Tool
|
|
1287
1248
|
COM_APPLE_SIRI_MESSAGES_SIRI_MESSAGES_APP_INTENTS_EXTENSION_UPDATE_A_DRAFT = "com.apple.siri.messages.SiriMessagesAppIntentsExtension.UpdateDraftTool" # Update a Draft
|
|
1288
|
-
COM_APPLE_SIRI_MESSAGES_SIRIMESSAGESFLOWTOOLS_SIRIMESSAGESFLOWTOOLS_CREATEDRAFTMESSAGETOOL_COM_APPLE_MOBILESMS = "com.apple.siri.messages.SiriMessagesFlowTools.SiriMessagesFlowTools.CreateDraftMessageTool|com.apple.MobileSMS" # Create Draft
|
|
1289
|
-
COM_APPLE_SIRI_MESSAGES_SIRIMESSAGESFLOWTOOLS_SIRIMESSAGESFLOWTOOLS_EDITLASTMESSAGESENTWITHSIRITOOL = "com.apple.siri.messages.SiriMessagesFlowTools.SiriMessagesFlowTools.EditLastMessageSentWithSiriTool" # Edit Last Message Sent With Siri
|
|
1290
|
-
COM_APPLE_SIRI_MESSAGES_SIRIMESSAGESFLOWTOOLS_SIRIMESSAGESFLOWTOOLS_PERFORMMESSAGESPOSTREADACTIONFLOWTOOL = "com.apple.siri.messages.SiriMessagesFlowTools.SiriMessagesFlowTools.PerformMessagesPostReadActionFlowTool" # PerformMessagesPostReadActionFlowTool
|
|
1291
|
-
COM_APPLE_SIRI_MESSAGES_SIRIMESSAGESFLOWTOOLS_SIRIMESSAGESFLOWTOOLS_PREPARETOREADCONVERSATIONTOOL_COM_APPLE_MOBILESMS = "com.apple.siri.messages.SiriMessagesFlowTools.SiriMessagesFlowTools.PrepareToReadConversationTool|com.apple.MobileSMS" # Prepare Conversation
|
|
1292
|
-
COM_APPLE_SIRI_MESSAGES_SIRIMESSAGESFLOWTOOLS_SIRIMESSAGESFLOWTOOLS_PREPARETOREADCONVERSATIONTOOL_COM_APPLE_SIRI_MESSAGES_SIRIMESSAGESAPPINTENTSEXTENSION = "com.apple.siri.messages.SiriMessagesFlowTools.SiriMessagesFlowTools.PrepareToReadConversationTool|com.apple.siri.messages.SiriMessagesAppIntentsExtension" # Prepare Conversation
|
|
1293
|
-
COM_APPLE_SIRI_MESSAGES_SIRIMESSAGESFLOWTOOLS_SIRIMESSAGESFLOWTOOLS_PREPARETOREADMESSAGESTOOL_COM_APPLE_MOBILESMS = "com.apple.siri.messages.SiriMessagesFlowTools.SiriMessagesFlowTools.PrepareToReadMessagesTool|com.apple.MobileSMS" # Prepare Messages
|
|
1294
|
-
COM_APPLE_SIRI_MESSAGES_SIRIMESSAGESFLOWTOOLS_SIRIMESSAGESFLOWTOOLS_SENDDRAFTMESSAGETOOL_COM_APPLE_MOBILESMS = "com.apple.siri.messages.SiriMessagesFlowTools.SiriMessagesFlowTools.SendDraftMessageTool|com.apple.MobileSMS" # Send Draft Message
|
|
1295
|
-
COM_APPLE_SIRI_MESSAGES_SIRIMESSAGESFLOWTOOLS_SIRIMESSAGESFLOWTOOLS_SENDMESSAGEREACTIONTOOL_COM_APPLE_MOBILESMS = "com.apple.siri.messages.SiriMessagesFlowTools.SiriMessagesFlowTools.SendMessageReactionTool|com.apple.MobileSMS" # Send Message Reaction
|
|
1296
|
-
COM_APPLE_SIRI_MESSAGES_SIRIMESSAGESFLOWTOOLS_SIRIMESSAGESFLOWTOOLS_UNSENDLASTMESSAGESENTWITHSIRITOOL = "com.apple.siri.messages.SiriMessagesFlowTools.SiriMessagesFlowTools.UnsendLastMessageSentWithSiriTool" # Unsend Last Message Sent With Siri
|
|
1297
|
-
COM_APPLE_SIRI_MESSAGES_SIRIMESSAGESFLOWTOOLS_SIRIMESSAGESFLOWTOOLS_UPDATEDRAFTMESSAGETOOL_COM_APPLE_MOBILESMS = "com.apple.siri.messages.SiriMessagesFlowTools.SiriMessagesFlowTools.UpdateDraftMessageTool|com.apple.MobileSMS" # Update Draft
|
|
1298
|
-
COM_APPLE_SIRI_NOTEBOOK_SIRINOTEBOOKFLOWTOOLS_SIRINOTEBOOKFLOWTOOLS_CREATELISTADDREMINDERFLOWTOOL_COM_APPLE_REMINDERS = "com.apple.siri.notebook.SiriNotebookFlowTools.SiriNotebookFlowTools.CreateListAddReminderFlowTool|com.apple.reminders" # Create List and Reminder
|
|
1299
|
-
COM_APPLE_SIRI_NOTEBOOK_SIRINOTEBOOKFLOWTOOLS_SIRINOTEBOOKFLOWTOOLS_CREATEREMINDERFLOWTOOL_COM_APPLE_REMINDERS = "com.apple.siri.notebook.SiriNotebookFlowTools.SiriNotebookFlowTools.CreateReminderFlowTool|com.apple.reminders" # Create Reminder
|
|
1300
|
-
COM_APPLE_SIRI_NOTEBOOK_SIRINOTEBOOKFLOWTOOLS_SIRINOTEBOOKFLOWTOOLS_PREPAREREADREMINDERSFLOWTOOL_COM_APPLE_REMINDERS = "com.apple.siri.notebook.SiriNotebookFlowTools.SiriNotebookFlowTools.PrepareReadRemindersFlowTool|com.apple.reminders" # Prepare Read Reminders
|
|
1301
|
-
COM_APPLE_SIRI_NOTEBOOK_SIRINOTEBOOKFLOWTOOLS_SIRINOTEBOOKFLOWTOOLS_UPDATEREMINDERFLOWTOOL_COM_APPLE_REMINDERS = "com.apple.siri.notebook.SiriNotebookFlowTools.SiriNotebookFlowTools.UpdateReminderFlowTool|com.apple.reminders" # Update Reminder
|
|
1302
1249
|
COM_APPLE_SOCIALLAYERD_SHARE_AND_COLLABORATE = "com.apple.sociallayerd.CollaborationIntent" # Share and Collaborate
|
|
1303
1250
|
STOCKS_ADD_SYMBOL_TO_WATCHLIST = "com.apple.stocks.AddSymbolToWatchlistIntent" # Add Symbol to Watchlist
|
|
1304
1251
|
STOCKS_BLOCK_CHANNEL_OR_TOPIC = "com.apple.stocks.BlockIntent" # Block Channel or Topic
|
|
@@ -2833,9 +2780,6 @@ ACTIONS = {
|
|
|
2833
2780
|
"com.apple.iWork.Numbers.TNNewDocumentIntent": {"name": "Create New Spreadsheet", "params": [], "output": None, "outputTypes": ["none"], "descriptor": {"BundleIdentifier": "com.apple.iWork.Numbers", "Name": "Numbers", "TeamIdentifier": "0000000000", "AppIntentIdentifier": "TNNewDocumentIntent"}},
|
|
2834
2781
|
"com.apple.iWork.Pages.TPDocumentBackgroundExportIntent": {"name": "Export Document in Background", "params": ["document", "format", "sourcePassword", "password"], "output": None, "outputTypes": ["file"], "descriptor": {"BundleIdentifier": "com.apple.iWork.Pages", "Name": "Pages", "TeamIdentifier": "0000000000", "AppIntentIdentifier": "TPDocumentBackgroundExportIntent"}},
|
|
2835
2782
|
"com.apple.iWork.Pages.TPNewDocumentIntent": {"name": "Create New Document", "params": [], "output": None, "outputTypes": ["none"], "descriptor": {"BundleIdentifier": "com.apple.iWork.Pages", "Name": "Pages", "TeamIdentifier": "0000000000", "AppIntentIdentifier": "TPNewDocumentIntent"}},
|
|
2836
|
-
"com.apple.intelligenceflow.GeoFlowTools.GeoFlowTools.StartNavigationFlowTool|com.apple.Maps": {"name": "Start Navigation", "params": ["origin", "destinations", "transportationType", "preferences"], "output": None, "outputTypes": ["none"], "descriptor": {"BundleIdentifier": "com.apple.Maps", "Name": "Maps", "TeamIdentifier": "0000000000", "AppIntentIdentifier": "Maps"}},
|
|
2837
|
-
"com.apple.intelligenceflow.GeoFlowTools.GeoFlowTools.UpdateWayPointsFlowTool|com.apple.Maps": {"name": "Update Navigation Waypoints", "params": ["waypoints", "navigation"], "output": None, "outputTypes": ["none"], "descriptor": {"BundleIdentifier": "com.apple.Maps", "Name": "Maps", "TeamIdentifier": "0000000000", "AppIntentIdentifier": "Maps"}},
|
|
2838
|
-
"com.apple.intelligenceflow.GetCurrentLocationFlowToolPlugin.GetCurrentLocationFlowToolPlugin.GetCurrentLocationTool": {"name": "GetCurrentLocationTool", "params": [], "output": None, "outputTypes": ["none"], "descriptor": {"BundleIdentifier": "com.apple.intelligenceflow.GetCurrentLocationFlowToolPlugin", "Name": "GetCurrentLocationFlowToolPlugin", "TeamIdentifier": "0000000000", "AppIntentIdentifier": "GetCurrentLocationTool"}},
|
|
2839
2783
|
"com.apple.intelligenceflow.IntelligenceFlowAppIntentsExtension.OpenApplication": {"name": "Open Application", "params": ["target"], "output": None, "outputTypes": ["none"], "descriptor": {"BundleIdentifier": "com.apple.intelligenceflow.IntelligenceFlowAppIntentsExtension", "Name": "IntelligenceFlowAppIntentsExtension", "TeamIdentifier": "0000000000", "AppIntentIdentifier": "OpenApplication"}},
|
|
2840
2784
|
"com.apple.intelligenceflow.IntelligenceFlowAppIntentsExtension.OpenFile": {"name": "Open File", "params": ["target"], "output": None, "outputTypes": ["none"], "descriptor": {"BundleIdentifier": "com.apple.intelligenceflow.IntelligenceFlowAppIntentsExtension", "Name": "IntelligenceFlowAppIntentsExtension", "TeamIdentifier": "0000000000", "AppIntentIdentifier": "OpenFile"}},
|
|
2841
2785
|
"com.apple.intelligenceflow.IntelligenceFlowAppIntentsExtension.OpenURL": {"name": "Open URL", "params": ["target"], "output": None, "outputTypes": ["none"], "descriptor": {"BundleIdentifier": "com.apple.intelligenceflow.IntelligenceFlowAppIntentsExtension", "Name": "IntelligenceFlowAppIntentsExtension", "TeamIdentifier": "0000000000", "AppIntentIdentifier": "OpenURL"}},
|
|
@@ -3003,72 +2947,22 @@ ACTIONS = {
|
|
|
3003
2947
|
"com.apple.siri.AudioAppIntentsExtension.SiriKitAddAudioToPlaylistIntent": {"name": "Add Audio Item to Playlist", "params": ["audioEntity", "playlist"], "output": None, "outputTypes": ["none"], "descriptor": {"BundleIdentifier": "com.apple.siri.AudioAppIntentsExtension", "Name": "AudioAppIntentsExtension", "TeamIdentifier": "0000000000", "AppIntentIdentifier": "SiriKitAddAudioToPlaylistIntent"}},
|
|
3004
2948
|
"com.apple.siri.AudioAppIntentsExtension.SiriKitUpdateAudioAffinityIntent": {"name": "Like Audio Item", "params": ["target", "affinityState"], "output": None, "outputTypes": ["none"], "descriptor": {"BundleIdentifier": "com.apple.siri.AudioAppIntentsExtension", "Name": "AudioAppIntentsExtension", "TeamIdentifier": "0000000000", "AppIntentIdentifier": "SiriKitUpdateAudioAffinityIntent"}},
|
|
3005
2949
|
"com.apple.siri.AudioAppIntentsExtension.WholeHouseAudioPlaceholderIntent": {"name": "Whole House Audio Placeholder Intent", "params": ["destinations"], "output": None, "outputTypes": ["none"], "descriptor": {"BundleIdentifier": "com.apple.siri.AudioAppIntentsExtension", "Name": "AudioAppIntentsExtension", "TeamIdentifier": "0000000000", "AppIntentIdentifier": "WholeHouseAudioPlaceholderIntent"}},
|
|
3006
|
-
"com.apple.siri.PhotosFlowTools.SiriPhotosFlowTools.EditPhotoWarmth|com.apple.Photos": {"name": "EditPhotoWarmth", "params": ["target", "adjustmentType", "value", "isPercentage"], "output": None, "outputTypes": ["none"], "descriptor": {"BundleIdentifier": "com.apple.Photos", "Name": "Photos", "TeamIdentifier": "0000000000", "AppIntentIdentifier": "Photos"}},
|
|
3007
|
-
"com.apple.siri.SiriAudioTools.SiriAudioTools.AddAudioToLibraryTool|com.apple.Music": {"name": "AddAudioToLibrary", "params": ["audioEntity"], "output": None, "outputTypes": ["none"], "descriptor": {"BundleIdentifier": "com.apple.Music", "Name": "Music", "TeamIdentifier": "0000000000", "AppIntentIdentifier": "Music"}},
|
|
3008
|
-
"com.apple.siri.SiriAudioTools.SiriAudioTools.AddAudioToLibraryTool|com.apple.podcasts": {"name": "AddAudioToLibrary", "params": ["audioEntity"], "output": None, "outputTypes": ["none"], "descriptor": {"BundleIdentifier": "com.apple.podcasts", "Name": "Podcasts", "TeamIdentifier": "0000000000", "AppIntentIdentifier": "podcasts"}},
|
|
3009
|
-
"com.apple.siri.SiriAudioTools.SiriAudioTools.AddAudioToPlaylistTool|com.apple.Music": {"name": "AddAudioToPlaylist", "params": ["audioEntity", "playlist"], "output": None, "outputTypes": ["none"], "descriptor": {"BundleIdentifier": "com.apple.Music", "Name": "Music", "TeamIdentifier": "0000000000", "AppIntentIdentifier": "Music"}},
|
|
3010
|
-
"com.apple.siri.SiriAudioTools.SiriAudioTools.PlayAudioTool|com.apple.Music": {"name": "PlayAudio", "params": ["audioEntity", "playbackAttributes", "queueLocation", "destinations"], "output": None, "outputTypes": ["none"], "descriptor": {"BundleIdentifier": "com.apple.Music", "Name": "Music", "TeamIdentifier": "0000000000", "AppIntentIdentifier": "Music"}},
|
|
3011
|
-
"com.apple.siri.SiriAudioTools.SiriAudioTools.PlayAudioTool|com.apple.iBooksX": {"name": "PlayAudio", "params": ["audioEntity", "playbackAttributes", "queueLocation", "destinations"], "output": None, "outputTypes": ["none"], "descriptor": {"BundleIdentifier": "com.apple.iBooksX", "Name": "Books", "TeamIdentifier": "0000000000", "AppIntentIdentifier": "iBooksX"}},
|
|
3012
|
-
"com.apple.siri.SiriAudioTools.SiriAudioTools.PlayAudioTool|com.apple.podcasts": {"name": "PlayAudio", "params": ["audioEntity", "playbackAttributes", "queueLocation", "destinations"], "output": None, "outputTypes": ["none"], "descriptor": {"BundleIdentifier": "com.apple.podcasts", "Name": "Podcasts", "TeamIdentifier": "0000000000", "AppIntentIdentifier": "podcasts"}},
|
|
3013
|
-
"com.apple.siri.SiriAudioTools.SiriAudioTools.UpdateAudioAffinityTool|com.apple.Music": {"name": "UpdateAudioAffinity", "params": ["target", "affinityState"], "output": None, "outputTypes": ["none"], "descriptor": {"BundleIdentifier": "com.apple.Music", "Name": "Music", "TeamIdentifier": "0000000000", "AppIntentIdentifier": "Music"}},
|
|
3014
|
-
"com.apple.siri.SiriCrisisFlowTools.SiriCrisisFlowTools.GetCrisisResourcesFlowTool": {"name": "Get Crisis Resources", "params": ["resourceCategories"], "output": None, "outputTypes": ["none"], "descriptor": {"BundleIdentifier": "com.apple.siri.SiriCrisisFlowTools", "Name": "SiriCrisisFlowTools", "TeamIdentifier": "0000000000", "AppIntentIdentifier": "GetCrisisResourcesFlowTool"}},
|
|
3015
2950
|
"com.apple.siri.SiriGeo.SiriGeoAppIntentExtension.CurrentLocationEntity": {"name": "Get Current Location", "params": ["WFContentItemFilter", "WFContentItemSortProperty", "WFContentItemSortOrder", "WFContentItemLimitEnabled", "WFContentItemLimitNumber", "WFCompoundType", "WFContentItemInputParameter"], "output": "Current Location", "outputTypes": ["com.apple.siri.SiriGeo.SiriGeoAppIntentExtension.CurrentLocationEntity"], "descriptor": {"BundleIdentifier": "com.apple.siri.SiriGeo.SiriGeoAppIntentExtension", "Name": "SiriGeoAppIntentsExtension", "TeamIdentifier": "0000000000", "AppIntentIdentifier": "CurrentLocationEntity"}},
|
|
3016
2951
|
"com.apple.siri.SiriGeo.SiriGeoAppIntentExtension.NavigationSessionEntity": {"name": "Get Current Route", "params": ["WFContentItemFilter", "WFContentItemSortProperty", "WFContentItemSortOrder", "WFContentItemLimitEnabled", "WFContentItemLimitNumber", "WFCompoundType", "WFContentItemInputParameter"], "output": "Current Route", "outputTypes": ["com.apple.siri.SiriGeo.SiriGeoAppIntentExtension.NavigationSessionEntity"], "descriptor": {"BundleIdentifier": "com.apple.siri.SiriGeo.SiriGeoAppIntentExtension", "Name": "SiriGeoAppIntentsExtension", "TeamIdentifier": "0000000000", "AppIntentIdentifier": "NavigationSessionEntity"}},
|
|
3017
2952
|
"com.apple.siri.SiriGeo.SiriGeoAppIntentExtension.SiriGeoAppIntent": {"name": "SiriGeoAppIntent", "params": [], "output": None, "outputTypes": ["none"], "descriptor": {"BundleIdentifier": "com.apple.siri.SiriGeo.SiriGeoAppIntentExtension", "Name": "SiriGeoAppIntentsExtension", "TeamIdentifier": "0000000000", "AppIntentIdentifier": "SiriGeoAppIntent"}},
|
|
3018
2953
|
"com.apple.siri.SiriGeo.SiriGeoAppIntentExtension.ThirdPartyStartNavigationIntent": {"name": "Start Navigation for Third Party Apps", "params": ["origin", "destinations", "transportationType", "preferences", "ShowWhenRun"], "output": "Current Route", "outputTypes": ["com.apple.siri.SiriGeo.SiriGeoAppIntentExtension.NavigationSessionEntity"], "descriptor": {"BundleIdentifier": "com.apple.siri.SiriGeo.SiriGeoAppIntentExtension", "Name": "SiriGeoAppIntentsExtension", "TeamIdentifier": "0000000000", "AppIntentIdentifier": "ThirdPartyStartNavigationIntent"}},
|
|
3019
|
-
"com.apple.siri.SiriIdentityInternal.SiriIdentityInternal.WhoAmITool": {"name": "WhoAmITool", "params": [], "output": None, "outputTypes": ["none"], "descriptor": {"BundleIdentifier": "com.apple.siri.SiriIdentityInternal", "Name": "SiriIdentityInternal", "TeamIdentifier": "0000000000", "AppIntentIdentifier": "WhoAmITool"}},
|
|
3020
|
-
"com.apple.siri.SiriMailFlowTools.SiriMailFlowTools.CreateDraftMailTool|com.apple.mail": {"name": "CreateDraftMailTool", "params": ["to", "cc", "bcc", "subject", "body", "account", "attachments"], "output": None, "outputTypes": ["none"], "descriptor": {"BundleIdentifier": "com.apple.mail", "Name": "Mail", "TeamIdentifier": "0000000000", "AppIntentIdentifier": "mail"}},
|
|
3021
|
-
"com.apple.siri.SiriMailFlowTools.SiriMailFlowTools.ForwardDraftMailTool|com.apple.mail": {"name": "ForwardDraftMailTool", "params": ["to", "cc", "bcc", "subject", "body", "account", "attachments", "target"], "output": None, "outputTypes": ["none"], "descriptor": {"BundleIdentifier": "com.apple.mail", "Name": "Mail", "TeamIdentifier": "0000000000", "AppIntentIdentifier": "mail"}},
|
|
3022
|
-
"com.apple.siri.SiriMailFlowTools.SiriMailFlowTools.ReplyDraftMailTool|com.apple.mail": {"name": "ReplyDraftMailTool", "params": ["to", "cc", "bcc", "subject", "body", "account", "attachments", "target", "isReplyAll"], "output": None, "outputTypes": ["none"], "descriptor": {"BundleIdentifier": "com.apple.mail", "Name": "Mail", "TeamIdentifier": "0000000000", "AppIntentIdentifier": "mail"}},
|
|
3023
|
-
"com.apple.siri.SiriMailFlowTools.SiriMailFlowTools.SendDraftMailTool|com.apple.mail": {"name": "SendDraftMailTool", "params": ["sendLaterDate", "target"], "output": None, "outputTypes": ["none"], "descriptor": {"BundleIdentifier": "com.apple.mail", "Name": "Mail", "TeamIdentifier": "0000000000", "AppIntentIdentifier": "mail"}},
|
|
3024
|
-
"com.apple.siri.SiriMailFlowTools.SiriMailFlowTools.UpdateDraftMailTool|com.apple.mail": {"name": "UpdateDraftMailTool", "params": ["to", "cc", "bcc", "subject", "body", "account", "attachments", "target"], "output": None, "outputTypes": ["none"], "descriptor": {"BundleIdentifier": "com.apple.mail", "Name": "Mail", "TeamIdentifier": "0000000000", "AppIntentIdentifier": "mail"}},
|
|
3025
2954
|
"com.apple.siri.SiriNotificationsAppIntentsExtension.PrepareNotificationsIntent": {"name": "Prepare notifications", "params": ["notifications", "isReadLatest", "isCatchMeUp", "app"], "output": None, "outputTypes": ["none"], "descriptor": {"BundleIdentifier": "com.apple.siri.SiriNotificationsAppIntentsExtension", "Name": "SiriNotificationsAppIntentsExtension", "TeamIdentifier": "0000000000", "AppIntentIdentifier": "PrepareNotificationsIntent"}},
|
|
3026
2955
|
"com.apple.siri.SiriNotificationsAppIntentsExtension.SiriNotificationsAppIntentsExtension": {"name": "SiriNotificationsAppIntentsExtension", "params": [], "output": None, "outputTypes": ["none"], "descriptor": {"BundleIdentifier": "com.apple.siri.SiriNotificationsAppIntentsExtension", "Name": "SiriNotificationsAppIntentsExtension", "TeamIdentifier": "0000000000", "AppIntentIdentifier": "SiriNotificationsAppIntentsExtension"}},
|
|
3027
|
-
"com.apple.siri.SiriNotificationsFlowTools.SiriNotificationsFlowTools.PrepareNotificationsTool": {"name": "Prepare Notifications", "params": ["notifications", "isReadLatest", "isCatchMeUp"], "output": None, "outputTypes": ["none"], "descriptor": {"BundleIdentifier": "com.apple.siri.SiriNotificationsFlowTools", "Name": "SiriNotificationsFlowTools", "TeamIdentifier": "0000000000", "AppIntentIdentifier": "PrepareNotificationsTool"}},
|
|
3028
2956
|
"com.apple.siri.SiriPhoneAppIntentsExtension.SiriPhonePunchoutIntent": {"name": "SiriPhonePunchoutIntent", "params": ["url", "uniqueID", "OpenWhenRun"], "output": None, "outputTypes": ["none"], "descriptor": {"BundleIdentifier": "com.apple.siri.SiriPhoneAppIntentsExtension", "Name": "SiriPhoneAppIntentsExtension", "TeamIdentifier": "0000000000", "AppIntentIdentifier": "SiriPhonePunchoutIntent"}},
|
|
3029
|
-
"com.apple.siri.SiriPhoneFlowTools.SiriPhoneFlowTools.AnswerCallFlowTool|com.apple.calls.PhoneAppIntentsExtension": {"name": "Answer an incoming call", "params": ["call", "audioRoute"], "output": None, "outputTypes": ["none"], "descriptor": {"BundleIdentifier": "com.apple.calls.PhoneAppIntentsExtension", "Name": "PhoneAppIntentsExtension", "TeamIdentifier": "0000000000", "AppIntentIdentifier": "PhoneAppIntentsExtension"}},
|
|
3030
|
-
"com.apple.siri.SiriPhoneFlowTools.SiriPhoneFlowTools.CallEmergencyContactFlowTool": {"name": "Call Emergency Contact Flow Tool", "params": ["audioRoute"], "output": None, "outputTypes": ["none"], "descriptor": {"BundleIdentifier": "com.apple.siri.SiriPhoneFlowTools", "Name": "SiriPhoneFlowTools", "TeamIdentifier": "0000000000", "AppIntentIdentifier": "CallEmergencyContactFlowTool"}},
|
|
3031
|
-
"com.apple.siri.SiriPhoneFlowTools.SiriPhoneFlowTools.CallbackFlowTool": {"name": "Callback Flow Tool", "params": [], "output": None, "outputTypes": ["none"], "descriptor": {"BundleIdentifier": "com.apple.siri.SiriPhoneFlowTools", "Name": "SiriPhoneFlowTools", "TeamIdentifier": "0000000000", "AppIntentIdentifier": "CallbackFlowTool"}},
|
|
3032
|
-
"com.apple.siri.SiriPhoneFlowTools.SiriPhoneFlowTools.PrepareCallMessagesFlowTool": {"name": "Prepare Call Messages Flow Tool", "params": ["messages"], "output": None, "outputTypes": ["none"], "descriptor": {"BundleIdentifier": "com.apple.siri.SiriPhoneFlowTools", "Name": "SiriPhoneFlowTools", "TeamIdentifier": "0000000000", "AppIntentIdentifier": "PrepareCallMessagesFlowTool"}},
|
|
3033
|
-
"com.apple.siri.SiriPhoneFlowTools.SiriPhoneFlowTools.PrepareReadCallRecordsFlowTool": {"name": "Prepare Read Call Records", "params": ["records"], "output": None, "outputTypes": ["none"], "descriptor": {"BundleIdentifier": "com.apple.siri.SiriPhoneFlowTools", "Name": "SiriPhoneFlowTools", "TeamIdentifier": "0000000000", "AppIntentIdentifier": "PrepareReadCallRecordsFlowTool"}},
|
|
3034
|
-
"com.apple.siri.SiriPhoneFlowTools.SiriPhoneFlowTools.ReadCallMessageFlowTool": {"name": "Read Call Message Flow Tool", "params": ["message"], "output": None, "outputTypes": ["none"], "descriptor": {"BundleIdentifier": "com.apple.siri.SiriPhoneFlowTools", "Name": "SiriPhoneFlowTools", "TeamIdentifier": "0000000000", "AppIntentIdentifier": "ReadCallMessageFlowTool"}},
|
|
3035
|
-
"com.apple.siri.SiriPhoneFlowTools.SiriPhoneFlowTools.RedialFlowTool": {"name": "Redial Flow Tool", "params": [], "output": None, "outputTypes": ["none"], "descriptor": {"BundleIdentifier": "com.apple.siri.SiriPhoneFlowTools", "Name": "SiriPhoneFlowTools", "TeamIdentifier": "0000000000", "AppIntentIdentifier": "RedialFlowTool"}},
|
|
3036
|
-
"com.apple.siri.SiriPhoneFlowTools.SiriPhoneFlowTools.StartCallFlowTool|com.apple.FaceTime": {"name": "Start a call", "params": ["destination", "audioVisualMode", "audioRoute"], "output": None, "outputTypes": ["none"], "descriptor": {"BundleIdentifier": "com.apple.calls.PhoneAppIntentsExtension", "Name": "PhoneAppIntentsExtension", "TeamIdentifier": "0000000000", "AppIntentIdentifier": "FaceTime"}},
|
|
3037
|
-
"com.apple.siri.SiriPhoneFlowTools.SiriPhoneFlowTools.StartCallFlowTool|com.apple.mobilephone": {"name": "Start a call", "params": ["destination", "audioVisualMode", "audioRoute"], "output": None, "outputTypes": ["none"], "descriptor": {"BundleIdentifier": "com.apple.calls.PhoneAppIntentsExtension", "Name": "PhoneAppIntentsExtension", "TeamIdentifier": "0000000000", "AppIntentIdentifier": "mobilephone"}},
|
|
3038
|
-
"com.apple.siri.SiriPhoneFlowTools.SiriPhoneFlowTools.StartCrisisHelplineCallFlowTool": {"name": "Start Crisis Helpline Call Flow Tool", "params": ["crisisResourceType", "audioRoute"], "output": None, "outputTypes": ["none"], "descriptor": {"BundleIdentifier": "com.apple.siri.SiriPhoneFlowTools", "Name": "SiriPhoneFlowTools", "TeamIdentifier": "0000000000", "AppIntentIdentifier": "StartCrisisHelplineCallFlowTool"}},
|
|
3039
|
-
"com.apple.siri.SiriPhoneFlowTools.SiriPhoneFlowTools.StartEmergencyCallFlowTool|com.apple.calls.PhoneAppIntentsExtension": {"name": "Start Emergency Call", "params": ["destination", "audioRoute"], "output": None, "outputTypes": ["none"], "descriptor": {"BundleIdentifier": "com.apple.calls.PhoneAppIntentsExtension", "Name": "PhoneAppIntentsExtension", "TeamIdentifier": "0000000000", "AppIntentIdentifier": "PhoneAppIntentsExtension"}},
|
|
3040
2957
|
"com.apple.siri.SiriPhotosAppIntentsExtension.SiriPhotosAppIntentsExtension": {"name": "SiriPhotosAppIntentsExtension", "params": [], "output": None, "outputTypes": ["none"], "descriptor": {"BundleIdentifier": "com.apple.siri.SiriPhotosAppIntentsExtension", "Name": "SiriPhotosAppIntentsExtension", "TeamIdentifier": "0000000000", "AppIntentIdentifier": "SiriPhotosAppIntentsExtension"}},
|
|
3041
2958
|
"com.apple.siri.SiriPhotosAppIntentsExtension.UpdatePhotoWarmthTool": {"name": "Update Photo Warmth", "params": ["target", "adjustmentType", "value", "isPercentage"], "output": None, "outputTypes": ["none"], "descriptor": {"BundleIdentifier": "com.apple.siri.SiriPhotosAppIntentsExtension", "Name": "SiriPhotosAppIntentsExtension", "TeamIdentifier": "0000000000", "AppIntentIdentifier": "UpdatePhotoWarmthTool"}},
|
|
3042
|
-
"com.apple.siri.SiriTimeFlowTools.SiriTimeFlowTools.CancelTimerFlowTool|com.apple.clock": {"name": "CancelTimer", "params": ["entities"], "output": None, "outputTypes": ["none"], "descriptor": {"BundleIdentifier": "com.apple.clock", "Name": "Clock", "TeamIdentifier": "0000000000", "AppIntentIdentifier": "clock"}},
|
|
3043
|
-
"com.apple.siri.SiriTimeFlowTools.SiriTimeFlowTools.DismissAlarmFlowTool|com.apple.clock": {"name": "DismissAlarm", "params": ["alarm"], "output": None, "outputTypes": ["none"], "descriptor": {"BundleIdentifier": "com.apple.clock", "Name": "Clock", "TeamIdentifier": "0000000000", "AppIntentIdentifier": "clock"}},
|
|
3044
|
-
"com.apple.siri.SiriTimeFlowTools.SiriTimeFlowTools.SnoozeAlarmFlowTool|com.apple.clock": {"name": "SnoozeAlarm", "params": ["alarm", "duration"], "output": None, "outputTypes": ["none"], "descriptor": {"BundleIdentifier": "com.apple.clock", "Name": "Clock", "TeamIdentifier": "0000000000", "AppIntentIdentifier": "clock"}},
|
|
3045
|
-
"com.apple.siri.SiriTranslationFlowTools.SiriTranslationFlowTools.TranslateTextFlowTool": {"name": "Translate Text", "params": ["phrase", "targetLanguage", "sourceLanguage"], "output": None, "outputTypes": ["none"], "descriptor": {"BundleIdentifier": "com.apple.siri.SiriTranslationFlowTools", "Name": "SiriTranslationFlowTools", "TeamIdentifier": "0000000000", "AppIntentIdentifier": "TranslateTextFlowTool"}},
|
|
3046
2959
|
"com.apple.siri.SiriVideoAppIntents.CrossDevicePlaceholderIntent": {"name": "Cross Device Placeholder Intent", "params": ["route"], "output": None, "outputTypes": ["none"], "descriptor": {"BundleIdentifier": "com.apple.siri.SiriVideoAppIntents", "Name": "SiriVideoAppIntents", "TeamIdentifier": "0000000000", "AppIntentIdentifier": "CrossDevicePlaceholderIntent"}},
|
|
3047
2960
|
"com.apple.siri.SiriVideoAppIntents.InternalFindFreeformVideoIntent": {"name": "Finds a freeform video", "params": ["entity"], "output": None, "outputTypes": ["none"], "descriptor": {"BundleIdentifier": "com.apple.siri.SiriVideoAppIntents", "Name": "SiriVideoAppIntents", "TeamIdentifier": "0000000000", "AppIntentIdentifier": "InternalFindFreeformVideoIntent"}},
|
|
3048
2961
|
"com.apple.siri.SiriVideoAppIntents.InternalFindVideoIntent": {"name": "Finds a video", "params": ["content"], "output": None, "outputTypes": ["none"], "descriptor": {"BundleIdentifier": "com.apple.siri.SiriVideoAppIntents", "Name": "SiriVideoAppIntents", "TeamIdentifier": "0000000000", "AppIntentIdentifier": "InternalFindVideoIntent"}},
|
|
3049
2962
|
"com.apple.siri.SiriVideoAppIntents.InternalPlayContentIntent": {"name": "Plays a video", "params": ["content"], "output": None, "outputTypes": ["none"], "descriptor": {"BundleIdentifier": "com.apple.siri.SiriVideoAppIntents", "Name": "SiriVideoAppIntents", "TeamIdentifier": "0000000000", "AppIntentIdentifier": "InternalPlayContentIntent"}},
|
|
3050
|
-
"com.apple.siri.SiriVideoFlowTools.SiriVideoFlowTools.FindVideoContentTool": {"name": "Find Video content", "params": ["content"], "output": None, "outputTypes": ["none"], "descriptor": {"BundleIdentifier": "com.apple.siri.SiriVideoFlowTools", "Name": "SiriVideoFlowTools", "TeamIdentifier": "0000000000", "AppIntentIdentifier": "FindVideoContentTool"}},
|
|
3051
|
-
"com.apple.siri.findmy.SiriFindMyFlowTools.SiriFindMyFlowTools.CreateIncomingGeofenceTool|com.apple.findmy": {"name": "Create Incoming Geofence", "params": ["person", "location", "trigger", "isRecurring"], "output": None, "outputTypes": ["none"], "descriptor": {"BundleIdentifier": "com.apple.findmy", "Name": "Find My", "TeamIdentifier": "0000000000", "AppIntentIdentifier": "findmy"}},
|
|
3052
|
-
"com.apple.siri.findmy.SiriFindMyFlowTools.SiriFindMyFlowTools.CreateOutgoingGeofenceTool|com.apple.findmy": {"name": "Create Outgoing Geofence", "params": ["person", "location", "trigger", "isRecurring"], "output": None, "outputTypes": ["none"], "descriptor": {"BundleIdentifier": "com.apple.findmy", "Name": "Find My", "TeamIdentifier": "0000000000", "AppIntentIdentifier": "findmy"}},
|
|
3053
|
-
"com.apple.siri.findmy.SiriFindMyFlowTools.SiriFindMyFlowTools.FindItemLocationTool|com.apple.findmy": {"name": "Find Item Location", "params": ["item"], "output": None, "outputTypes": ["none"], "descriptor": {"BundleIdentifier": "com.apple.findmy", "Name": "Find My", "TeamIdentifier": "0000000000", "AppIntentIdentifier": "findmy"}},
|
|
3054
|
-
"com.apple.siri.findmy.SiriFindMyFlowTools.SiriFindMyFlowTools.PlayItemSoundTool|com.apple.findmy": {"name": "Play Item Sound", "params": ["item"], "output": None, "outputTypes": ["none"], "descriptor": {"BundleIdentifier": "com.apple.findmy", "Name": "Find My", "TeamIdentifier": "0000000000", "AppIntentIdentifier": "findmy"}},
|
|
3055
2963
|
"com.apple.siri.messages.SiriMessagesAppIntentsExtension.MessagesPostReadActionAppIntent": {"name": "Messages Post Reading Action Tool", "params": ["readableMessages"], "output": None, "outputTypes": ["none"], "descriptor": {"BundleIdentifier": "com.apple.siri.messages.SiriMessagesAppIntentsExtension", "Name": "SiriMessagesAppIntentsExtension", "TeamIdentifier": "0000000000", "AppIntentIdentifier": "MessagesPostReadActionAppIntent"}},
|
|
3056
2964
|
"com.apple.siri.messages.SiriMessagesAppIntentsExtension.PrepareToReadConversationAppIntent": {"name": "Prepare To Read Conversation Tool", "params": ["conversation"], "output": None, "outputTypes": ["none"], "descriptor": {"BundleIdentifier": "com.apple.siri.messages.SiriMessagesAppIntentsExtension", "Name": "SiriMessagesAppIntentsExtension", "TeamIdentifier": "0000000000", "AppIntentIdentifier": "PrepareToReadConversationAppIntent"}},
|
|
3057
2965
|
"com.apple.siri.messages.SiriMessagesAppIntentsExtension.UpdateDraftTool": {"name": "Update a Draft", "params": ["draft", "recipients", "subject", "content", "isAudioMessage"], "output": None, "outputTypes": ["none"], "descriptor": {"BundleIdentifier": "com.apple.siri.messages.SiriMessagesAppIntentsExtension", "Name": "SiriMessagesAppIntentsExtension", "TeamIdentifier": "0000000000", "AppIntentIdentifier": "UpdateDraftTool"}},
|
|
3058
|
-
"com.apple.siri.messages.SiriMessagesFlowTools.SiriMessagesFlowTools.CreateDraftMessageTool|com.apple.MobileSMS": {"name": "Create Draft", "params": ["destination", "subject", "content", "attachments", "locations", "links", "audioMessage", "isAudioMessage", "scheduledDate"], "output": None, "outputTypes": ["none"], "descriptor": {"BundleIdentifier": "com.apple.MobileSMS", "Name": "Messages", "TeamIdentifier": "0000000000", "AppIntentIdentifier": "MobileSMS"}},
|
|
3059
|
-
"com.apple.siri.messages.SiriMessagesFlowTools.SiriMessagesFlowTools.EditLastMessageSentWithSiriTool": {"name": "Edit Last Message Sent With Siri", "params": ["content"], "output": None, "outputTypes": ["none"], "descriptor": {"BundleIdentifier": "com.apple.siri.messages.SiriMessagesFlowTools", "Name": "SiriMessagesFlowTools", "TeamIdentifier": "0000000000", "AppIntentIdentifier": "EditLastMessageSentWithSiriTool"}},
|
|
3060
|
-
"com.apple.siri.messages.SiriMessagesFlowTools.SiriMessagesFlowTools.PerformMessagesPostReadActionFlowTool": {"name": "PerformMessagesPostReadActionFlowTool", "params": ["readableMessages"], "output": None, "outputTypes": ["none"], "descriptor": {"BundleIdentifier": "com.apple.siri.messages.SiriMessagesFlowTools", "Name": "SiriMessagesFlowTools", "TeamIdentifier": "0000000000", "AppIntentIdentifier": "PerformMessagesPostReadActionFlowTool"}},
|
|
3061
|
-
"com.apple.siri.messages.SiriMessagesFlowTools.SiriMessagesFlowTools.PrepareToReadConversationTool|com.apple.MobileSMS": {"name": "Prepare Conversation", "params": ["conversation"], "output": None, "outputTypes": ["none"], "descriptor": {"BundleIdentifier": "com.apple.MobileSMS", "Name": "Messages", "TeamIdentifier": "0000000000", "AppIntentIdentifier": "MobileSMS"}},
|
|
3062
|
-
"com.apple.siri.messages.SiriMessagesFlowTools.SiriMessagesFlowTools.PrepareToReadConversationTool|com.apple.siri.messages.SiriMessagesAppIntentsExtension": {"name": "Prepare Conversation", "params": ["conversation"], "output": None, "outputTypes": ["none"], "descriptor": {"BundleIdentifier": "com.apple.siri.messages.SiriMessagesAppIntentsExtension", "Name": "SiriMessagesAppIntentsExtension", "TeamIdentifier": "0000000000", "AppIntentIdentifier": "SiriMessagesAppIntentsExtension"}},
|
|
3063
|
-
"com.apple.siri.messages.SiriMessagesFlowTools.SiriMessagesFlowTools.PrepareToReadMessagesTool|com.apple.MobileSMS": {"name": "Prepare Messages", "params": ["message"], "output": None, "outputTypes": ["none"], "descriptor": {"BundleIdentifier": "com.apple.MobileSMS", "Name": "Messages", "TeamIdentifier": "0000000000", "AppIntentIdentifier": "MobileSMS"}},
|
|
3064
|
-
"com.apple.siri.messages.SiriMessagesFlowTools.SiriMessagesFlowTools.SendDraftMessageTool|com.apple.MobileSMS": {"name": "Send Draft Message", "params": ["draft"], "output": None, "outputTypes": ["none"], "descriptor": {"BundleIdentifier": "com.apple.MobileSMS", "Name": "Messages", "TeamIdentifier": "0000000000", "AppIntentIdentifier": "MobileSMS"}},
|
|
3065
|
-
"com.apple.siri.messages.SiriMessagesFlowTools.SiriMessagesFlowTools.SendMessageReactionTool|com.apple.MobileSMS": {"name": "Send Message Reaction", "params": ["message", "reaction"], "output": None, "outputTypes": ["none"], "descriptor": {"BundleIdentifier": "com.apple.MobileSMS", "Name": "Messages", "TeamIdentifier": "0000000000", "AppIntentIdentifier": "MobileSMS"}},
|
|
3066
|
-
"com.apple.siri.messages.SiriMessagesFlowTools.SiriMessagesFlowTools.UnsendLastMessageSentWithSiriTool": {"name": "Unsend Last Message Sent With Siri", "params": [], "output": None, "outputTypes": ["none"], "descriptor": {"BundleIdentifier": "com.apple.siri.messages.SiriMessagesFlowTools", "Name": "SiriMessagesFlowTools", "TeamIdentifier": "0000000000", "AppIntentIdentifier": "UnsendLastMessageSentWithSiriTool"}},
|
|
3067
|
-
"com.apple.siri.messages.SiriMessagesFlowTools.SiriMessagesFlowTools.UpdateDraftMessageTool|com.apple.MobileSMS": {"name": "Update Draft", "params": ["draft", "destination", "subject", "content", "attachments", "locations", "links", "audioMessage", "isAudioMessage", "scheduledDate"], "output": None, "outputTypes": ["none"], "descriptor": {"BundleIdentifier": "com.apple.MobileSMS", "Name": "Messages", "TeamIdentifier": "0000000000", "AppIntentIdentifier": "MobileSMS"}},
|
|
3068
|
-
"com.apple.siri.notebook.SiriNotebookFlowTools.SiriNotebookFlowTools.CreateListAddReminderFlowTool|com.apple.reminders": {"name": "Create List and Reminder", "params": ["title", "note", "tags", "urls", "dueDate", "recurrence", "list", "isFlagged", "locationTrigger", "name", "type"], "output": None, "outputTypes": ["none"], "descriptor": {"BundleIdentifier": "com.apple.reminders", "Name": "Reminders", "TeamIdentifier": "0000000000", "AppIntentIdentifier": "reminders"}},
|
|
3069
|
-
"com.apple.siri.notebook.SiriNotebookFlowTools.SiriNotebookFlowTools.CreateReminderFlowTool|com.apple.reminders": {"name": "Create Reminder", "params": ["title", "note", "tags", "urls", "dueDate", "recurrence", "list", "isFlagged", "locationTrigger"], "output": None, "outputTypes": ["none"], "descriptor": {"BundleIdentifier": "com.apple.reminders", "Name": "Reminders", "TeamIdentifier": "0000000000", "AppIntentIdentifier": "reminders"}},
|
|
3070
|
-
"com.apple.siri.notebook.SiriNotebookFlowTools.SiriNotebookFlowTools.PrepareReadRemindersFlowTool|com.apple.reminders": {"name": "Prepare Read Reminders", "params": ["target", "list"], "output": None, "outputTypes": ["none"], "descriptor": {"BundleIdentifier": "com.apple.reminders", "Name": "Reminders", "TeamIdentifier": "0000000000", "AppIntentIdentifier": "reminders"}},
|
|
3071
|
-
"com.apple.siri.notebook.SiriNotebookFlowTools.SiriNotebookFlowTools.UpdateReminderFlowTool|com.apple.reminders": {"name": "Update Reminder", "params": ["target", "isCompleted", "title", "note", "tags", "urls", "dueDate", "recurrence", "list", "isFlagged", "locationTrigger"], "output": None, "outputTypes": ["none"], "descriptor": {"BundleIdentifier": "com.apple.reminders", "Name": "Reminders", "TeamIdentifier": "0000000000", "AppIntentIdentifier": "reminders"}},
|
|
3072
2966
|
"com.apple.sociallayerd.CollaborationIntent": {"name": "Share and Collaborate", "params": ["recipients"], "output": None, "outputTypes": ["none"], "descriptor": {"BundleIdentifier": "com.apple.sociallayerd", "Name": "sociallayerd", "TeamIdentifier": "0000000000", "AppIntentIdentifier": "CollaborationIntent"}},
|
|
3073
2967
|
"com.apple.stocks.AddSymbolToWatchlistIntent": {"name": "Add Symbol to Watchlist", "params": ["symbol", "watchlist", "OpenWhenRun"], "output": None, "outputTypes": ["none"], "descriptor": {"BundleIdentifier": "com.apple.stocks", "Name": "Stocks", "TeamIdentifier": "0000000000", "AppIntentIdentifier": "AddSymbolToWatchlistIntent"}},
|
|
3074
2968
|
"com.apple.stocks.BlockIntent": {"name": "Block Channel or Topic", "params": ["target"], "output": None, "outputTypes": ["none"], "descriptor": {"BundleIdentifier": "com.apple.stocks", "Name": "Stocks", "TeamIdentifier": "0000000000", "AppIntentIdentifier": "BlockIntent"}},
|
|
@@ -4604,9 +4498,6 @@ PARAM_KINDS = {
|
|
|
4604
4498
|
"com.apple.iWork.Numbers.TNNewDocumentIntent": {},
|
|
4605
4499
|
"com.apple.iWork.Pages.TPDocumentBackgroundExportIntent": {"document": "any", "format": "string", "sourcePassword": "text", "password": "text"},
|
|
4606
4500
|
"com.apple.iWork.Pages.TPNewDocumentIntent": {},
|
|
4607
|
-
"com.apple.intelligenceflow.GeoFlowTools.GeoFlowTools.StartNavigationFlowTool|com.apple.Maps": {"origin": "any", "destinations": "any", "transportationType": "string", "preferences": "string"},
|
|
4608
|
-
"com.apple.intelligenceflow.GeoFlowTools.GeoFlowTools.UpdateWayPointsFlowTool|com.apple.Maps": {"waypoints": "any", "navigation": "any"},
|
|
4609
|
-
"com.apple.intelligenceflow.GetCurrentLocationFlowToolPlugin.GetCurrentLocationFlowToolPlugin.GetCurrentLocationTool": {},
|
|
4610
4501
|
"com.apple.intelligenceflow.IntelligenceFlowAppIntentsExtension.OpenApplication": {"target": "any"},
|
|
4611
4502
|
"com.apple.intelligenceflow.IntelligenceFlowAppIntentsExtension.OpenFile": {"target": "any"},
|
|
4612
4503
|
"com.apple.intelligenceflow.IntelligenceFlowAppIntentsExtension.OpenURL": {"target": "text"},
|
|
@@ -4774,72 +4665,22 @@ PARAM_KINDS = {
|
|
|
4774
4665
|
"com.apple.siri.AudioAppIntentsExtension.SiriKitAddAudioToPlaylistIntent": {"audioEntity": "any", "playlist": "any"},
|
|
4775
4666
|
"com.apple.siri.AudioAppIntentsExtension.SiriKitUpdateAudioAffinityIntent": {"target": "any", "affinityState": "string"},
|
|
4776
4667
|
"com.apple.siri.AudioAppIntentsExtension.WholeHouseAudioPlaceholderIntent": {"destinations": "any"},
|
|
4777
|
-
"com.apple.siri.PhotosFlowTools.SiriPhotosFlowTools.EditPhotoWarmth|com.apple.Photos": {"target": "any", "adjustmentType": "string", "value": "number", "isPercentage": "bool"},
|
|
4778
|
-
"com.apple.siri.SiriAudioTools.SiriAudioTools.AddAudioToLibraryTool|com.apple.Music": {"audioEntity": "any"},
|
|
4779
|
-
"com.apple.siri.SiriAudioTools.SiriAudioTools.AddAudioToLibraryTool|com.apple.podcasts": {"audioEntity": "any"},
|
|
4780
|
-
"com.apple.siri.SiriAudioTools.SiriAudioTools.AddAudioToPlaylistTool|com.apple.Music": {"audioEntity": "any", "playlist": "any"},
|
|
4781
|
-
"com.apple.siri.SiriAudioTools.SiriAudioTools.PlayAudioTool|com.apple.Music": {"audioEntity": "any", "playbackAttributes": "string", "queueLocation": "string", "destinations": "any"},
|
|
4782
|
-
"com.apple.siri.SiriAudioTools.SiriAudioTools.PlayAudioTool|com.apple.iBooksX": {"audioEntity": "any", "playbackAttributes": "string", "queueLocation": "string", "destinations": "any"},
|
|
4783
|
-
"com.apple.siri.SiriAudioTools.SiriAudioTools.PlayAudioTool|com.apple.podcasts": {"audioEntity": "any", "playbackAttributes": "string", "queueLocation": "string", "destinations": "any"},
|
|
4784
|
-
"com.apple.siri.SiriAudioTools.SiriAudioTools.UpdateAudioAffinityTool|com.apple.Music": {"target": "any", "affinityState": "string"},
|
|
4785
|
-
"com.apple.siri.SiriCrisisFlowTools.SiriCrisisFlowTools.GetCrisisResourcesFlowTool": {"resourceCategories": "string"},
|
|
4786
4668
|
"com.apple.siri.SiriGeo.SiriGeoAppIntentExtension.CurrentLocationEntity": {"WFContentItemFilter": "any", "WFContentItemSortProperty": "string", "WFContentItemSortOrder": "text", "WFContentItemLimitEnabled": "bool", "WFContentItemLimitNumber": "number", "WFCompoundType": "string", "WFContentItemInputParameter": "string"},
|
|
4787
4669
|
"com.apple.siri.SiriGeo.SiriGeoAppIntentExtension.NavigationSessionEntity": {"WFContentItemFilter": "filter", "WFContentItemSortProperty": "string", "WFContentItemSortOrder": "text", "WFContentItemLimitEnabled": "bool", "WFContentItemLimitNumber": "number", "WFCompoundType": "string", "WFContentItemInputParameter": "string"},
|
|
4788
4670
|
"com.apple.siri.SiriGeo.SiriGeoAppIntentExtension.SiriGeoAppIntent": {},
|
|
4789
4671
|
"com.apple.siri.SiriGeo.SiriGeoAppIntentExtension.ThirdPartyStartNavigationIntent": {"origin": "any", "destinations": "any", "transportationType": "string", "preferences": "string", "ShowWhenRun": "bool"},
|
|
4790
|
-
"com.apple.siri.SiriIdentityInternal.SiriIdentityInternal.WhoAmITool": {},
|
|
4791
|
-
"com.apple.siri.SiriMailFlowTools.SiriMailFlowTools.CreateDraftMailTool|com.apple.mail": {"to": "any", "cc": "any", "bcc": "any", "subject": "text", "body": "text", "account": "any", "attachments": "any"},
|
|
4792
|
-
"com.apple.siri.SiriMailFlowTools.SiriMailFlowTools.ForwardDraftMailTool|com.apple.mail": {"to": "any", "cc": "any", "bcc": "any", "subject": "text", "body": "text", "account": "any", "attachments": "any", "target": "any"},
|
|
4793
|
-
"com.apple.siri.SiriMailFlowTools.SiriMailFlowTools.ReplyDraftMailTool|com.apple.mail": {"to": "any", "cc": "any", "bcc": "any", "subject": "text", "body": "text", "account": "any", "attachments": "any", "target": "any", "isReplyAll": "bool"},
|
|
4794
|
-
"com.apple.siri.SiriMailFlowTools.SiriMailFlowTools.SendDraftMailTool|com.apple.mail": {"sendLaterDate": "text", "target": "any"},
|
|
4795
|
-
"com.apple.siri.SiriMailFlowTools.SiriMailFlowTools.UpdateDraftMailTool|com.apple.mail": {"to": "any", "cc": "any", "bcc": "any", "subject": "text", "body": "text", "account": "any", "attachments": "any", "target": "any"},
|
|
4796
4672
|
"com.apple.siri.SiriNotificationsAppIntentsExtension.PrepareNotificationsIntent": {"notifications": "any", "isReadLatest": "bool", "isCatchMeUp": "bool", "app": "any"},
|
|
4797
4673
|
"com.apple.siri.SiriNotificationsAppIntentsExtension.SiriNotificationsAppIntentsExtension": {},
|
|
4798
|
-
"com.apple.siri.SiriNotificationsFlowTools.SiriNotificationsFlowTools.PrepareNotificationsTool": {"notifications": "any", "isReadLatest": "bool", "isCatchMeUp": "bool"},
|
|
4799
4674
|
"com.apple.siri.SiriPhoneAppIntentsExtension.SiriPhonePunchoutIntent": {"url": "text", "uniqueID": "text", "OpenWhenRun": "bool"},
|
|
4800
|
-
"com.apple.siri.SiriPhoneFlowTools.SiriPhoneFlowTools.AnswerCallFlowTool|com.apple.calls.PhoneAppIntentsExtension": {"call": "any", "audioRoute": "any"},
|
|
4801
|
-
"com.apple.siri.SiriPhoneFlowTools.SiriPhoneFlowTools.CallEmergencyContactFlowTool": {"audioRoute": "any"},
|
|
4802
|
-
"com.apple.siri.SiriPhoneFlowTools.SiriPhoneFlowTools.CallbackFlowTool": {},
|
|
4803
|
-
"com.apple.siri.SiriPhoneFlowTools.SiriPhoneFlowTools.PrepareCallMessagesFlowTool": {"messages": "any"},
|
|
4804
|
-
"com.apple.siri.SiriPhoneFlowTools.SiriPhoneFlowTools.PrepareReadCallRecordsFlowTool": {"records": "any"},
|
|
4805
|
-
"com.apple.siri.SiriPhoneFlowTools.SiriPhoneFlowTools.ReadCallMessageFlowTool": {"message": "any"},
|
|
4806
|
-
"com.apple.siri.SiriPhoneFlowTools.SiriPhoneFlowTools.RedialFlowTool": {},
|
|
4807
|
-
"com.apple.siri.SiriPhoneFlowTools.SiriPhoneFlowTools.StartCallFlowTool|com.apple.FaceTime": {"destination": "any", "audioVisualMode": "string", "audioRoute": "any"},
|
|
4808
|
-
"com.apple.siri.SiriPhoneFlowTools.SiriPhoneFlowTools.StartCallFlowTool|com.apple.mobilephone": {"destination": "any", "audioVisualMode": "string", "audioRoute": "any"},
|
|
4809
|
-
"com.apple.siri.SiriPhoneFlowTools.SiriPhoneFlowTools.StartCrisisHelplineCallFlowTool": {"crisisResourceType": "string", "audioRoute": "any"},
|
|
4810
|
-
"com.apple.siri.SiriPhoneFlowTools.SiriPhoneFlowTools.StartEmergencyCallFlowTool|com.apple.calls.PhoneAppIntentsExtension": {"destination": "any", "audioRoute": "any"},
|
|
4811
4675
|
"com.apple.siri.SiriPhotosAppIntentsExtension.SiriPhotosAppIntentsExtension": {},
|
|
4812
4676
|
"com.apple.siri.SiriPhotosAppIntentsExtension.UpdatePhotoWarmthTool": {"target": "text", "adjustmentType": "string", "value": "number", "isPercentage": "bool"},
|
|
4813
|
-
"com.apple.siri.SiriTimeFlowTools.SiriTimeFlowTools.CancelTimerFlowTool|com.apple.clock": {"entities": "any"},
|
|
4814
|
-
"com.apple.siri.SiriTimeFlowTools.SiriTimeFlowTools.DismissAlarmFlowTool|com.apple.clock": {"alarm": "any"},
|
|
4815
|
-
"com.apple.siri.SiriTimeFlowTools.SiriTimeFlowTools.SnoozeAlarmFlowTool|com.apple.clock": {"alarm": "any", "duration": "any"},
|
|
4816
|
-
"com.apple.siri.SiriTranslationFlowTools.SiriTranslationFlowTools.TranslateTextFlowTool": {"phrase": "text", "targetLanguage": "text", "sourceLanguage": "text"},
|
|
4817
4677
|
"com.apple.siri.SiriVideoAppIntents.CrossDevicePlaceholderIntent": {"route": "any"},
|
|
4818
4678
|
"com.apple.siri.SiriVideoAppIntents.InternalFindFreeformVideoIntent": {"entity": "any"},
|
|
4819
4679
|
"com.apple.siri.SiriVideoAppIntents.InternalFindVideoIntent": {"content": "any"},
|
|
4820
4680
|
"com.apple.siri.SiriVideoAppIntents.InternalPlayContentIntent": {"content": "any"},
|
|
4821
|
-
"com.apple.siri.SiriVideoFlowTools.SiriVideoFlowTools.FindVideoContentTool": {"content": "any"},
|
|
4822
|
-
"com.apple.siri.findmy.SiriFindMyFlowTools.SiriFindMyFlowTools.CreateIncomingGeofenceTool|com.apple.findmy": {"person": "any", "location": "any", "trigger": "string", "isRecurring": "bool"},
|
|
4823
|
-
"com.apple.siri.findmy.SiriFindMyFlowTools.SiriFindMyFlowTools.CreateOutgoingGeofenceTool|com.apple.findmy": {"person": "any", "location": "any", "trigger": "string", "isRecurring": "bool"},
|
|
4824
|
-
"com.apple.siri.findmy.SiriFindMyFlowTools.SiriFindMyFlowTools.FindItemLocationTool|com.apple.findmy": {"item": "any"},
|
|
4825
|
-
"com.apple.siri.findmy.SiriFindMyFlowTools.SiriFindMyFlowTools.PlayItemSoundTool|com.apple.findmy": {"item": "any"},
|
|
4826
4681
|
"com.apple.siri.messages.SiriMessagesAppIntentsExtension.MessagesPostReadActionAppIntent": {"readableMessages": "any"},
|
|
4827
4682
|
"com.apple.siri.messages.SiriMessagesAppIntentsExtension.PrepareToReadConversationAppIntent": {"conversation": "any"},
|
|
4828
4683
|
"com.apple.siri.messages.SiriMessagesAppIntentsExtension.UpdateDraftTool": {"draft": "any", "recipients": "any", "subject": "text", "content": "text", "isAudioMessage": "bool"},
|
|
4829
|
-
"com.apple.siri.messages.SiriMessagesFlowTools.SiriMessagesFlowTools.CreateDraftMessageTool|com.apple.MobileSMS": {"destination": "any", "subject": "text", "content": "text", "attachments": "any", "locations": "any", "links": "text", "audioMessage": "any", "isAudioMessage": "bool", "scheduledDate": "text"},
|
|
4830
|
-
"com.apple.siri.messages.SiriMessagesFlowTools.SiriMessagesFlowTools.EditLastMessageSentWithSiriTool": {"content": "text"},
|
|
4831
|
-
"com.apple.siri.messages.SiriMessagesFlowTools.SiriMessagesFlowTools.PerformMessagesPostReadActionFlowTool": {"readableMessages": "any"},
|
|
4832
|
-
"com.apple.siri.messages.SiriMessagesFlowTools.SiriMessagesFlowTools.PrepareToReadConversationTool|com.apple.MobileSMS": {"conversation": "any"},
|
|
4833
|
-
"com.apple.siri.messages.SiriMessagesFlowTools.SiriMessagesFlowTools.PrepareToReadConversationTool|com.apple.siri.messages.SiriMessagesAppIntentsExtension": {"conversation": "any"},
|
|
4834
|
-
"com.apple.siri.messages.SiriMessagesFlowTools.SiriMessagesFlowTools.PrepareToReadMessagesTool|com.apple.MobileSMS": {"message": "any"},
|
|
4835
|
-
"com.apple.siri.messages.SiriMessagesFlowTools.SiriMessagesFlowTools.SendDraftMessageTool|com.apple.MobileSMS": {"draft": "any"},
|
|
4836
|
-
"com.apple.siri.messages.SiriMessagesFlowTools.SiriMessagesFlowTools.SendMessageReactionTool|com.apple.MobileSMS": {"message": "any", "reaction": "any"},
|
|
4837
|
-
"com.apple.siri.messages.SiriMessagesFlowTools.SiriMessagesFlowTools.UnsendLastMessageSentWithSiriTool": {},
|
|
4838
|
-
"com.apple.siri.messages.SiriMessagesFlowTools.SiriMessagesFlowTools.UpdateDraftMessageTool|com.apple.MobileSMS": {"draft": "any", "destination": "any", "subject": "text", "content": "text", "attachments": "any", "locations": "any", "links": "text", "audioMessage": "any", "isAudioMessage": "bool", "scheduledDate": "text"},
|
|
4839
|
-
"com.apple.siri.notebook.SiriNotebookFlowTools.SiriNotebookFlowTools.CreateListAddReminderFlowTool|com.apple.reminders": {"title": "text", "note": "text", "tags": "text", "urls": "text", "dueDate": "text", "recurrence": "any", "list": "any", "isFlagged": "bool", "locationTrigger": "any", "name": "text", "type": "string"},
|
|
4840
|
-
"com.apple.siri.notebook.SiriNotebookFlowTools.SiriNotebookFlowTools.CreateReminderFlowTool|com.apple.reminders": {"title": "text", "note": "text", "tags": "text", "urls": "text", "dueDate": "text", "recurrence": "any", "list": "any", "isFlagged": "bool", "locationTrigger": "any"},
|
|
4841
|
-
"com.apple.siri.notebook.SiriNotebookFlowTools.SiriNotebookFlowTools.PrepareReadRemindersFlowTool|com.apple.reminders": {"target": "any", "list": "any"},
|
|
4842
|
-
"com.apple.siri.notebook.SiriNotebookFlowTools.SiriNotebookFlowTools.UpdateReminderFlowTool|com.apple.reminders": {"target": "any", "isCompleted": "bool", "title": "text", "note": "text", "tags": "text", "urls": "text", "dueDate": "text", "recurrence": "any", "list": "any", "isFlagged": "bool", "locationTrigger": "any"},
|
|
4843
4684
|
"com.apple.sociallayerd.CollaborationIntent": {"recipients": "any"},
|
|
4844
4685
|
"com.apple.stocks.AddSymbolToWatchlistIntent": {"symbol": "any", "watchlist": "any", "OpenWhenRun": "bool"},
|
|
4845
4686
|
"com.apple.stocks.BlockIntent": {"target": "any"},
|
|
@@ -5927,7 +5768,6 @@ PARAM_CHOICES = {
|
|
|
5927
5768
|
"com.apple.iWork.Keynote.KNDocumentBackgroundExportIntent": {"format": ["pdf", "powerpoint"]},
|
|
5928
5769
|
"com.apple.iWork.Numbers.TNDocumentBackgroundExportIntent": {"format": ["excel", "pdf"]},
|
|
5929
5770
|
"com.apple.iWork.Pages.TPDocumentBackgroundExportIntent": {"format": ["pdf", "word"]},
|
|
5930
|
-
"com.apple.intelligenceflow.GeoFlowTools.GeoFlowTools.StartNavigationFlowTool|com.apple.Maps": {"transportationType": ["any", "cycling", "driving", "transit", "walking"], "preferences": ["avoidBusyRoads", "avoidHighways", "avoidHills", "avoidStairs", "avoidTolls", "disableBus", "disableFerry", "disableSubway", "disableTrain"]},
|
|
5931
5771
|
"com.apple.intelligenceplatform.IntelligencePlatform.IntelligencePlatformDataActionsAppIntentsExtension.CalculateAppUsageIntent": {"during": ["inBetween", "lastWeek", "specifiedDay", "thisMonth", "thisWeek", "today", "yesterday"], "activityType": ["all", "app", "website"]},
|
|
5932
5772
|
"com.apple.journal.AddCurrentLocationEntity": {"WFContentItemSortProperty": ["Random", "value"], "WFCompoundType": ["0", "1"], "WFContentItemInputParameter": ["Library"]},
|
|
5933
5773
|
"com.apple.journal.AlwaysUseMomentDateEntity": {"WFContentItemSortProperty": ["Random", "value"], "WFCompoundType": ["0", "1"], "WFContentItemInputParameter": ["Library"]},
|
|
@@ -5984,22 +5824,10 @@ PARAM_CHOICES = {
|
|
|
5984
5824
|
"com.apple.shortcuts.OpenShortcutsStaticDeepLinks": {"target": ["advanced", "legalNotices", "root"]},
|
|
5985
5825
|
"com.apple.shortcuts.SetShortcutAttributesAction": {"operation": ["toggle", "turn"], "attribute": ["allowWhenLocked", "onScreenContent", "pinInMenuBar", "quickActions", "receivesInputFromSearch", "showInShareSheet", "showOnWatch"]},
|
|
5986
5826
|
"com.apple.siri.AudioAppIntentsExtension.SiriKitUpdateAudioAffinityIntent": {"affinityState": ["dislike", "like", "unset"]},
|
|
5987
|
-
"com.apple.siri.PhotosFlowTools.SiriPhotosFlowTools.EditPhotoWarmth|com.apple.Photos": {"adjustmentType": ["warmth"]},
|
|
5988
|
-
"com.apple.siri.SiriAudioTools.SiriAudioTools.PlayAudioTool|com.apple.Music": {"playbackAttributes": ["repeat", "shuffle"], "queueLocation": ["next", "tail"]},
|
|
5989
|
-
"com.apple.siri.SiriAudioTools.SiriAudioTools.PlayAudioTool|com.apple.iBooksX": {"playbackAttributes": ["repeat", "shuffle"], "queueLocation": ["later", "next", "tail"]},
|
|
5990
|
-
"com.apple.siri.SiriAudioTools.SiriAudioTools.PlayAudioTool|com.apple.podcasts": {"playbackAttributes": ["repeat", "shuffle"], "queueLocation": ["next", "tail"]},
|
|
5991
|
-
"com.apple.siri.SiriAudioTools.SiriAudioTools.UpdateAudioAffinityTool|com.apple.Music": {"affinityState": ["dislike", "like", "unset"]},
|
|
5992
|
-
"com.apple.siri.SiriCrisisFlowTools.SiriCrisisFlowTools.GetCrisisResourcesFlowTool": {"resourceCategories": ["addiction", "bullying", "childSafety", "disorderedEating", "domesticViolence", "financialScams", "lgbtqSupport", "mentalHealth", "moreResources", "personalSafety", "poisoning", "raceEthnicity", "sexualViolence", "suicideSelfHarm"]},
|
|
5993
5827
|
"com.apple.siri.SiriGeo.SiriGeoAppIntentExtension.CurrentLocationEntity": {"WFContentItemSortProperty": ["Random"], "WFCompoundType": ["0", "1"], "WFContentItemInputParameter": ["Library"]},
|
|
5994
5828
|
"com.apple.siri.SiriGeo.SiriGeoAppIntentExtension.NavigationSessionEntity": {"WFContentItemSortProperty": ["Random", "estimatedArrivalDate", "preferences", "transportationType", "waypoints"], "WFCompoundType": ["0", "1"], "WFContentItemInputParameter": ["Library"]},
|
|
5995
5829
|
"com.apple.siri.SiriGeo.SiriGeoAppIntentExtension.ThirdPartyStartNavigationIntent": {"transportationType": ["cycling", "driving", "transit", "walking"], "preferences": ["avoidBusyRoads", "avoidHighways", "avoidHills", "avoidStairs", "avoidTolls"]},
|
|
5996
|
-
"com.apple.siri.SiriPhoneFlowTools.SiriPhoneFlowTools.StartCallFlowTool|com.apple.FaceTime": {"audioVisualMode": ["audio", "video"]},
|
|
5997
|
-
"com.apple.siri.SiriPhoneFlowTools.SiriPhoneFlowTools.StartCallFlowTool|com.apple.mobilephone": {"audioVisualMode": ["audio", "video"]},
|
|
5998
|
-
"com.apple.siri.SiriPhoneFlowTools.SiriPhoneFlowTools.StartCrisisHelplineCallFlowTool": {"crisisResourceType": ["domesticViolence", "poisonControl", "sexualAssault", "suicidePrevention"]},
|
|
5999
5830
|
"com.apple.siri.SiriPhotosAppIntentsExtension.UpdatePhotoWarmthTool": {"adjustmentType": ["warmth"]},
|
|
6000
|
-
"com.apple.siri.findmy.SiriFindMyFlowTools.SiriFindMyFlowTools.CreateIncomingGeofenceTool|com.apple.findmy": {"trigger": ["onEntry", "onExit"]},
|
|
6001
|
-
"com.apple.siri.findmy.SiriFindMyFlowTools.SiriFindMyFlowTools.CreateOutgoingGeofenceTool|com.apple.findmy": {"trigger": ["onEntry", "onExit"]},
|
|
6002
|
-
"com.apple.siri.notebook.SiriNotebookFlowTools.SiriNotebookFlowTools.CreateListAddReminderFlowTool|com.apple.reminders": {"type": ["groceries", "standard"]},
|
|
6003
5831
|
"com.apple.stocks.NewsTabDeepLink": {"WFContentItemSortProperty": ["Random"], "WFCompoundType": ["0", "1"], "WFContentItemInputParameter": ["Library"]},
|
|
6004
5832
|
"com.apple.stocks.SymbolEntity": {"WFContentItemSortProperty": ["Random", "exchange", "name", "symbol"], "WFCompoundType": ["0", "1"], "WFContentItemInputParameter": ["Library"]},
|
|
6005
5833
|
"com.apple.stocks.SymbolWidgetEntity": {"WFContentItemSortProperty": ["Random", "exchange", "name", "symbol"], "WFCompoundType": ["0", "1"], "WFContentItemInputParameter": ["Library"]},
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"extractedAt": "2026-10-
|
|
2
|
+
"extractedAt": "2026-10-28T01:38:46Z",
|
|
3
3
|
"macOS": { "version": "27.2", "build": "26B118", "arch": "arm64" },
|
|
4
4
|
"shortcutsApp": { "version": "10.0", "build": "5114.0.6.204" },
|
|
5
5
|
"workflowKit": "10.0",
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"toolKit": {"indexerSource": "BackgroundShortcutRunner", "osVersion": "26B118", "source": "Tools-prod.v80.sqlite"},
|
|
8
8
|
"counts": {
|
|
9
9
|
"builtinActions": 449,
|
|
10
|
-
"appleAppIntents":
|
|
10
|
+
"appleAppIntents": 1265,
|
|
11
11
|
"identifierStrings": 411,
|
|
12
12
|
"appProvidedActions": 284
|
|
13
13
|
},
|
|
@@ -580,3 +580,6 @@ ENTITY_PROPERTIES = {
|
|
|
580
580
|
"com.apple.weather.PreferredUnitsEntity": ["distanceUnit", "precipitationUnit", "pressureUnit", "temperatureUnit", "windUnit"],
|
|
581
581
|
"com.apple.weather.SyncedDataEntity": ["encodedSyncedData"],
|
|
582
582
|
}
|
|
583
|
+
|
|
584
|
+
# Content item classes a coercion can name (coerce()): the engine's own list, the editor's variable "Type" menu, with the name it shows.
|
|
585
|
+
CONTENT_ITEM_CLASSES = {"WFAppStoreAppContentItem": "App Store App", "WFArticleContentItem": "Article", "WFBooleanContentItem": "Boolean", "WFContactContentItem": "Contact", "WFDateContentItem": "Date", "WFDCMapsLinkContentItem": "Maps Link", "WFDictionaryContentItem": "Dictionary", "WFEKParticipantContentItem": "Event Attendee", "WFEmailAddressContentItem": "Email Address", "WFGenericFileContentItem": "File", "WFImageContentItem": "Image", "WFiTunesProductContentItem": "iTunes Product", "WFLocationContentItem": "Location", "WFMKMapItemContentItem": "Place", "WFNumberContentItem": "Number", "WFPDFContentItem": "PDF", "WFPersonNameComponentsContentItem": "Name Components", "WFPhoneNumberContentItem": "Phone Number", "WFRichTextContentItem": "Rich Text", "WFStringContentItem": "Text", "WFURLContentItem": "URL", "WFVCardContentItem": "vCard"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: shortcutkit
|
|
3
|
-
Version:
|
|
4
|
-
Summary: Build, validate, and sign Apple Shortcuts files from Python. All 449 built-in actions and 1,
|
|
3
|
+
Version: 3.0.0
|
|
4
|
+
Summary: Build, validate, and sign Apple Shortcuts files from Python. All 449 built-in actions and 1,265 Apple app actions, extracted from the Shortcuts engine.
|
|
5
5
|
Author: frontboat
|
|
6
6
|
License-Expression: MIT
|
|
7
7
|
Project-URL: Homepage, https://github.com/frontboat/shortcutkit
|
|
@@ -51,9 +51,9 @@ are archived ([python-shortcuts](https://github.com/alexander-akhmetov/python-sh
|
|
|
51
51
|
[Cherri](https://github.com/electrikmilk/cherri) is a separate language with its own compiler.
|
|
52
52
|
|
|
53
53
|
- All 449 built-in actions as constants, so a typo is an `AttributeError`.
|
|
54
|
-
- 1,
|
|
54
|
+
- 1,265 actions from Apple's apps: Reminders, Notes, Messages, Settings, and 70 more. Only
|
|
55
55
|
actions the Shortcuts editor offers: the Siri-only intents the app refuses to import are left out.
|
|
56
|
-
- Third-party app actions,
|
|
56
|
+
- Third-party app actions, named by app and intent.
|
|
57
57
|
- Checked conditions for 150 Find actions, the 14 built-in ones (Filter Files, Find Photos, Find
|
|
58
58
|
Contacts, ...) and 136 in Apple's apps (Find Messages, Find Notes, ...), from the engine's own
|
|
59
59
|
rules, and the properties of what they find.
|
|
@@ -114,20 +114,33 @@ found = s.action(actions.MESSAGES_FIND_MESSAGE,
|
|
|
114
114
|
s.action(actions.SHOWRESULT, Text=text(property_(found, "body")))
|
|
115
115
|
```
|
|
116
116
|
|
|
117
|
+
### Dictionaries and types
|
|
118
|
+
|
|
119
|
+
A dictionary parameter takes a plain dict: strings, `text()` and references are text items, and
|
|
120
|
+
numbers, booleans, lists and nested dicts keep their type, as the editor's item type menu sets it.
|
|
121
|
+
`coerce()` reads a value as one content type, as the variable "Type" menu does.
|
|
122
|
+
|
|
123
|
+
```python
|
|
124
|
+
from shortcutkit import coerce
|
|
125
|
+
|
|
126
|
+
d = s.action(actions.DICTIONARY, WFItems={"name": ref(name), "greeted": True, "tags": ["a", "b"]})
|
|
127
|
+
gid = s.if_(coerce(d, "WFStringContentItem"), "contains", "a")
|
|
128
|
+
s.end_if(gid)
|
|
129
|
+
```
|
|
130
|
+
|
|
117
131
|
### Other apps
|
|
118
132
|
|
|
119
|
-
|
|
133
|
+
Name the app and the intent: the identifier is the bundle identifier followed by the intent name, as
|
|
134
|
+
the catalogue identifies an app's own intents, and the descriptor is written as the catalogue's are.
|
|
135
|
+
The parameters are not checked: their keys are the intent's parameter names, from
|
|
136
|
+
`Metadata.appintents/extract.actionsdata` in the app bundle.
|
|
120
137
|
|
|
121
138
|
```python
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
},
|
|
128
|
-
title=text("Hello"),
|
|
129
|
-
body=ref(name),
|
|
130
|
-
)
|
|
139
|
+
from shortcutkit import app_intent
|
|
140
|
+
|
|
141
|
+
app = {"BundleIdentifier": "com.example.app", "Name": "Example", "TeamIdentifier": "ABCDE12345"}
|
|
142
|
+
note = s.action(app_intent(app, "CreateNoteIntent", "Note"), title=text("Hello"), body=ref(name))
|
|
143
|
+
s.action(actions.SHOWRESULT, Text=ref(note))
|
|
131
144
|
```
|
|
132
145
|
|
|
133
146
|
## API
|
|
@@ -149,7 +162,10 @@ s.action(
|
|
|
149
162
|
| `shortcut_input()`, `clipboard()`, `current_date()`, `ask()`, `device_details()`, `current_app()` | Special variables. |
|
|
150
163
|
| `where(*rows)`, `where_any(*rows)` | Conditions for a Find action's `WFContentItemFilter`. |
|
|
151
164
|
| `property_(source, name)` | One property of an action's output or a variable. |
|
|
152
|
-
| `
|
|
165
|
+
| `coerce(source, class)` | A value read as one content type (`CONTENT_ITEM_CLASSES`). |
|
|
166
|
+
| `dictionary(items)` | A dictionary parameter's items; `action()` encodes a plain dict itself. |
|
|
167
|
+
| `app_intent(app, intent, output=None)` | Another app's action, for `s.action()`. |
|
|
168
|
+
| `FILTERS`, `ENTITY_PROPERTIES`, `FILTER_OPERATORS`, `CALENDAR_UNITS`, `CONTENT_ITEM_CLASSES` | What each Find action can filter on, each entity type's properties, and the content types a coercion can name. |
|
|
153
169
|
| `actions`, `ACTIONS`, `get_action(id)` | Action identifiers and their catalog entries. |
|
|
154
170
|
| `PARAM_KINDS`, `PARAM_CHOICES`, `PARAM_VARIABLE_TYPES` | What each parameter accepts. |
|
|
155
171
|
| `CONDITION`, `ICON_COLORS`, `PROVENANCE` | If conditions, icon colors, and the build the data came from. |
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|