opencode-planpilot 0.2.3 → 0.3.0
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.
- package/README.md +41 -10
- package/README.zh-CN.md +55 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +3815 -0
- package/dist/index.js.map +1 -0
- package/dist/studio-bridge.d.ts +2 -0
- package/dist/studio-bridge.js +1985 -0
- package/dist/studio-bridge.js.map +1 -0
- package/dist/studio-web/planpilot-todo-bar.d.ts +33 -0
- package/dist/studio-web/planpilot-todo-bar.js +704 -0
- package/dist/studio-web/planpilot-todo-bar.js.map +1 -0
- package/dist/studio.manifest.json +968 -0
- package/package.json +6 -1
- package/src/index.ts +583 -26
- package/src/lib/config.ts +436 -0
- package/src/prompt.ts +7 -1
- package/src/studio/bridge.ts +746 -0
- package/src/studio-web/main.ts +1030 -0
- package/src/studio-web/planpilot-todo-bar.ts +974 -0
|
@@ -0,0 +1,968 @@
|
|
|
1
|
+
{
|
|
2
|
+
"studioApiVersion": 1,
|
|
3
|
+
"id": "opencode-planpilot",
|
|
4
|
+
"displayName": "Planpilot",
|
|
5
|
+
"version": "0.2.4",
|
|
6
|
+
"bridge": {
|
|
7
|
+
"command": [
|
|
8
|
+
"bun",
|
|
9
|
+
"dist/studio-bridge.js"
|
|
10
|
+
]
|
|
11
|
+
},
|
|
12
|
+
"ui": {
|
|
13
|
+
"mode": "module",
|
|
14
|
+
"assetsDir": "dist",
|
|
15
|
+
"entry": "studio-web/planpilot-todo-bar.js"
|
|
16
|
+
},
|
|
17
|
+
"mounts": [
|
|
18
|
+
{
|
|
19
|
+
"surface": "chat.overlay.bottom",
|
|
20
|
+
"title": "Planpilot",
|
|
21
|
+
"titleI18n": {
|
|
22
|
+
"en-US": "Planpilot",
|
|
23
|
+
"zh-CN": "计划领航"
|
|
24
|
+
},
|
|
25
|
+
"entry": "studio-web/planpilot-todo-bar.js",
|
|
26
|
+
"mode": "module"
|
|
27
|
+
}
|
|
28
|
+
],
|
|
29
|
+
"capabilities": [
|
|
30
|
+
"settings.panel",
|
|
31
|
+
"events.poll"
|
|
32
|
+
],
|
|
33
|
+
"events": {
|
|
34
|
+
"pollIntervalMs": 1200
|
|
35
|
+
},
|
|
36
|
+
"settingsSchema": {
|
|
37
|
+
"type": "object",
|
|
38
|
+
"properties": {
|
|
39
|
+
"runtime": {
|
|
40
|
+
"title": "Runtime",
|
|
41
|
+
"description": "Operational switches for Planpilot.",
|
|
42
|
+
"type": "object",
|
|
43
|
+
"properties": {
|
|
44
|
+
"paused": {
|
|
45
|
+
"title": "Paused",
|
|
46
|
+
"description": "Pause auto-continue in this OpenCode instance.",
|
|
47
|
+
"type": "boolean",
|
|
48
|
+
"default": false,
|
|
49
|
+
"x-title-i18n": {
|
|
50
|
+
"en-US": "Paused",
|
|
51
|
+
"zh-CN": "已暂停"
|
|
52
|
+
},
|
|
53
|
+
"x-description-i18n": {
|
|
54
|
+
"en-US": "Pause auto-continue in this OpenCode instance.",
|
|
55
|
+
"zh-CN": "在此 OpenCode 实例中暂停自动继续。"
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
"additionalProperties": false,
|
|
60
|
+
"x-title-i18n": {
|
|
61
|
+
"en-US": "Runtime",
|
|
62
|
+
"zh-CN": "运行时"
|
|
63
|
+
},
|
|
64
|
+
"x-description-i18n": {
|
|
65
|
+
"en-US": "Operational switches for Planpilot.",
|
|
66
|
+
"zh-CN": "Planpilot 的运行开关。"
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
"autoContinue": {
|
|
70
|
+
"title": "Auto continue",
|
|
71
|
+
"description": "Rules for automatically continuing when the session becomes idle.",
|
|
72
|
+
"type": "object",
|
|
73
|
+
"properties": {
|
|
74
|
+
"sendRetry": {
|
|
75
|
+
"title": "Retry failed sends",
|
|
76
|
+
"description": "Retry auto-continue sends that fail (e.g. transient errors).",
|
|
77
|
+
"type": "object",
|
|
78
|
+
"properties": {
|
|
79
|
+
"enabled": {
|
|
80
|
+
"title": "Enabled",
|
|
81
|
+
"description": "Enable retries for failed auto-continue sends.",
|
|
82
|
+
"type": "boolean",
|
|
83
|
+
"default": true,
|
|
84
|
+
"x-title-i18n": {
|
|
85
|
+
"en-US": "Enabled",
|
|
86
|
+
"zh-CN": "启用"
|
|
87
|
+
},
|
|
88
|
+
"x-description-i18n": {
|
|
89
|
+
"en-US": "Enable retries for failed auto-continue sends.",
|
|
90
|
+
"zh-CN": "为失败的自动继续发送启用重试。"
|
|
91
|
+
}
|
|
92
|
+
},
|
|
93
|
+
"maxAttempts": {
|
|
94
|
+
"title": "Max attempts",
|
|
95
|
+
"description": "Maximum number of retry attempts.",
|
|
96
|
+
"type": "integer",
|
|
97
|
+
"minimum": 1,
|
|
98
|
+
"default": 3,
|
|
99
|
+
"x-title-i18n": {
|
|
100
|
+
"en-US": "Max attempts",
|
|
101
|
+
"zh-CN": "最大尝试次数"
|
|
102
|
+
},
|
|
103
|
+
"x-description-i18n": {
|
|
104
|
+
"en-US": "Maximum number of retry attempts.",
|
|
105
|
+
"zh-CN": "重试尝试的最大次数。"
|
|
106
|
+
}
|
|
107
|
+
},
|
|
108
|
+
"delaysMs": {
|
|
109
|
+
"title": "Delays (ms)",
|
|
110
|
+
"description": "Retry delays in milliseconds.",
|
|
111
|
+
"type": "array",
|
|
112
|
+
"items": {
|
|
113
|
+
"type": "integer",
|
|
114
|
+
"minimum": 1
|
|
115
|
+
},
|
|
116
|
+
"default": [
|
|
117
|
+
1500,
|
|
118
|
+
5000,
|
|
119
|
+
15000
|
|
120
|
+
],
|
|
121
|
+
"x-title-i18n": {
|
|
122
|
+
"en-US": "Delays (ms)",
|
|
123
|
+
"zh-CN": "延迟(毫秒)"
|
|
124
|
+
},
|
|
125
|
+
"x-description-i18n": {
|
|
126
|
+
"en-US": "Retry delays in milliseconds.",
|
|
127
|
+
"zh-CN": "以毫秒为单位的重试延迟。"
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
},
|
|
131
|
+
"additionalProperties": false,
|
|
132
|
+
"x-title-i18n": {
|
|
133
|
+
"en-US": "Retry failed sends",
|
|
134
|
+
"zh-CN": "重试发送失败"
|
|
135
|
+
},
|
|
136
|
+
"x-description-i18n": {
|
|
137
|
+
"en-US": "Retry auto-continue sends that fail (e.g. transient errors).",
|
|
138
|
+
"zh-CN": "重试失败的自动继续发送(例如瞬时错误)。"
|
|
139
|
+
}
|
|
140
|
+
},
|
|
141
|
+
"onSessionError": {
|
|
142
|
+
"title": "On session error",
|
|
143
|
+
"description": "Trigger when the session errors.",
|
|
144
|
+
"type": "object",
|
|
145
|
+
"properties": {
|
|
146
|
+
"enabled": {
|
|
147
|
+
"title": "Enabled",
|
|
148
|
+
"description": "Enable auto-continue triggers on session errors.",
|
|
149
|
+
"type": "boolean",
|
|
150
|
+
"default": false,
|
|
151
|
+
"x-title-i18n": {
|
|
152
|
+
"en-US": "Enabled",
|
|
153
|
+
"zh-CN": "启用"
|
|
154
|
+
},
|
|
155
|
+
"x-description-i18n": {
|
|
156
|
+
"en-US": "Enable auto-continue triggers on session errors.",
|
|
157
|
+
"zh-CN": "在会话错误时启用自动继续触发。"
|
|
158
|
+
}
|
|
159
|
+
},
|
|
160
|
+
"force": {
|
|
161
|
+
"title": "Force",
|
|
162
|
+
"description": "Force auto-continue when this trigger matches.",
|
|
163
|
+
"type": "boolean",
|
|
164
|
+
"default": true,
|
|
165
|
+
"x-title-i18n": {
|
|
166
|
+
"en-US": "Force",
|
|
167
|
+
"zh-CN": "强制"
|
|
168
|
+
},
|
|
169
|
+
"x-description-i18n": {
|
|
170
|
+
"en-US": "Force auto-continue when this trigger matches.",
|
|
171
|
+
"zh-CN": "当此触发器匹配时强制自动继续。"
|
|
172
|
+
}
|
|
173
|
+
},
|
|
174
|
+
"keywords": {
|
|
175
|
+
"title": "Keywords",
|
|
176
|
+
"description": "Match rules against the event summary text.",
|
|
177
|
+
"type": "object",
|
|
178
|
+
"properties": {
|
|
179
|
+
"any": {
|
|
180
|
+
"title": "Any",
|
|
181
|
+
"description": "Trigger when any keyword matches the event summary text. Leave empty to ignore.",
|
|
182
|
+
"type": "array",
|
|
183
|
+
"items": {
|
|
184
|
+
"type": "string"
|
|
185
|
+
},
|
|
186
|
+
"default": [],
|
|
187
|
+
"x-title-i18n": {
|
|
188
|
+
"en-US": "Any",
|
|
189
|
+
"zh-CN": "任意"
|
|
190
|
+
},
|
|
191
|
+
"x-description-i18n": {
|
|
192
|
+
"en-US": "Trigger when any keyword matches the event summary text. Leave empty to ignore.",
|
|
193
|
+
"zh-CN": "当任意关键词匹配事件摘要文本时触发。留空则忽略。"
|
|
194
|
+
}
|
|
195
|
+
},
|
|
196
|
+
"all": {
|
|
197
|
+
"title": "All",
|
|
198
|
+
"description": "Trigger only when all keywords match the event summary text. Leave empty to ignore.",
|
|
199
|
+
"type": "array",
|
|
200
|
+
"items": {
|
|
201
|
+
"type": "string"
|
|
202
|
+
},
|
|
203
|
+
"default": [],
|
|
204
|
+
"x-title-i18n": {
|
|
205
|
+
"en-US": "All",
|
|
206
|
+
"zh-CN": "全部"
|
|
207
|
+
},
|
|
208
|
+
"x-description-i18n": {
|
|
209
|
+
"en-US": "Trigger only when all keywords match the event summary text. Leave empty to ignore.",
|
|
210
|
+
"zh-CN": "仅当所有关键词都匹配事件摘要文本时触发。留空则忽略。"
|
|
211
|
+
}
|
|
212
|
+
},
|
|
213
|
+
"none": {
|
|
214
|
+
"title": "None",
|
|
215
|
+
"description": "Do not trigger if any keyword matches the event summary text.",
|
|
216
|
+
"type": "array",
|
|
217
|
+
"items": {
|
|
218
|
+
"type": "string"
|
|
219
|
+
},
|
|
220
|
+
"default": [],
|
|
221
|
+
"x-title-i18n": {
|
|
222
|
+
"en-US": "None",
|
|
223
|
+
"zh-CN": "无"
|
|
224
|
+
},
|
|
225
|
+
"x-description-i18n": {
|
|
226
|
+
"en-US": "Do not trigger if any keyword matches the event summary text.",
|
|
227
|
+
"zh-CN": "如果任意关键词匹配事件摘要文本则不触发。"
|
|
228
|
+
}
|
|
229
|
+
},
|
|
230
|
+
"matchCase": {
|
|
231
|
+
"title": "Match case",
|
|
232
|
+
"description": "Use case-sensitive matching.",
|
|
233
|
+
"type": "boolean",
|
|
234
|
+
"default": false,
|
|
235
|
+
"x-title-i18n": {
|
|
236
|
+
"en-US": "Match case",
|
|
237
|
+
"zh-CN": "区分大小写"
|
|
238
|
+
},
|
|
239
|
+
"x-description-i18n": {
|
|
240
|
+
"en-US": "Use case-sensitive matching.",
|
|
241
|
+
"zh-CN": "使用区分大小写匹配。"
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
},
|
|
245
|
+
"additionalProperties": false,
|
|
246
|
+
"x-title-i18n": {
|
|
247
|
+
"en-US": "Keywords",
|
|
248
|
+
"zh-CN": "关键词"
|
|
249
|
+
},
|
|
250
|
+
"x-description-i18n": {
|
|
251
|
+
"en-US": "Match rules against the event summary text.",
|
|
252
|
+
"zh-CN": "根据事件摘要文本匹配规则。"
|
|
253
|
+
}
|
|
254
|
+
},
|
|
255
|
+
"errorNames": {
|
|
256
|
+
"title": "Error names",
|
|
257
|
+
"description": "Optional list of error.name values to match.",
|
|
258
|
+
"type": "array",
|
|
259
|
+
"items": {
|
|
260
|
+
"type": "string"
|
|
261
|
+
},
|
|
262
|
+
"default": [],
|
|
263
|
+
"x-title-i18n": {
|
|
264
|
+
"en-US": "Error names",
|
|
265
|
+
"zh-CN": "错误名称"
|
|
266
|
+
},
|
|
267
|
+
"x-description-i18n": {
|
|
268
|
+
"en-US": "Optional list of error.name values to match.",
|
|
269
|
+
"zh-CN": "要匹配的 error.name 可选列表。"
|
|
270
|
+
}
|
|
271
|
+
},
|
|
272
|
+
"statusCodes": {
|
|
273
|
+
"title": "Status codes",
|
|
274
|
+
"description": "Optional list of HTTP status codes to match.",
|
|
275
|
+
"type": "array",
|
|
276
|
+
"items": {
|
|
277
|
+
"type": "integer"
|
|
278
|
+
},
|
|
279
|
+
"default": [],
|
|
280
|
+
"x-title-i18n": {
|
|
281
|
+
"en-US": "Status codes",
|
|
282
|
+
"zh-CN": "状态码"
|
|
283
|
+
},
|
|
284
|
+
"x-description-i18n": {
|
|
285
|
+
"en-US": "Optional list of HTTP status codes to match.",
|
|
286
|
+
"zh-CN": "要匹配的 HTTP 状态码可选列表。"
|
|
287
|
+
}
|
|
288
|
+
},
|
|
289
|
+
"retryableOnly": {
|
|
290
|
+
"title": "Retryable only",
|
|
291
|
+
"description": "Only trigger when the error is marked retryable.",
|
|
292
|
+
"type": "boolean",
|
|
293
|
+
"default": false,
|
|
294
|
+
"x-title-i18n": {
|
|
295
|
+
"en-US": "Retryable only",
|
|
296
|
+
"zh-CN": "仅可重试"
|
|
297
|
+
},
|
|
298
|
+
"x-description-i18n": {
|
|
299
|
+
"en-US": "Only trigger when the error is marked retryable.",
|
|
300
|
+
"zh-CN": "仅在错误被标记为可重试时触发。"
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
},
|
|
304
|
+
"additionalProperties": false,
|
|
305
|
+
"x-title-i18n": {
|
|
306
|
+
"en-US": "On session error",
|
|
307
|
+
"zh-CN": "会话错误时"
|
|
308
|
+
},
|
|
309
|
+
"x-description-i18n": {
|
|
310
|
+
"en-US": "Trigger when the session errors.",
|
|
311
|
+
"zh-CN": "当会话报错时触发。"
|
|
312
|
+
}
|
|
313
|
+
},
|
|
314
|
+
"onSessionRetry": {
|
|
315
|
+
"title": "On session retry",
|
|
316
|
+
"description": "Trigger when the session retries.",
|
|
317
|
+
"type": "object",
|
|
318
|
+
"properties": {
|
|
319
|
+
"enabled": {
|
|
320
|
+
"title": "Enabled",
|
|
321
|
+
"description": "Enable auto-continue triggers on session retry.",
|
|
322
|
+
"type": "boolean",
|
|
323
|
+
"default": false,
|
|
324
|
+
"x-title-i18n": {
|
|
325
|
+
"en-US": "Enabled",
|
|
326
|
+
"zh-CN": "启用"
|
|
327
|
+
},
|
|
328
|
+
"x-description-i18n": {
|
|
329
|
+
"en-US": "Enable auto-continue triggers on session retry.",
|
|
330
|
+
"zh-CN": "在会话重试时启用自动继续触发。"
|
|
331
|
+
}
|
|
332
|
+
},
|
|
333
|
+
"force": {
|
|
334
|
+
"title": "Force",
|
|
335
|
+
"description": "Force auto-continue when this trigger matches.",
|
|
336
|
+
"type": "boolean",
|
|
337
|
+
"default": false,
|
|
338
|
+
"x-title-i18n": {
|
|
339
|
+
"en-US": "Force",
|
|
340
|
+
"zh-CN": "强制"
|
|
341
|
+
},
|
|
342
|
+
"x-description-i18n": {
|
|
343
|
+
"en-US": "Force auto-continue when this trigger matches.",
|
|
344
|
+
"zh-CN": "当此触发器匹配时强制自动继续。"
|
|
345
|
+
}
|
|
346
|
+
},
|
|
347
|
+
"keywords": {
|
|
348
|
+
"title": "Keywords",
|
|
349
|
+
"description": "Match rules against the event summary text.",
|
|
350
|
+
"type": "object",
|
|
351
|
+
"properties": {
|
|
352
|
+
"any": {
|
|
353
|
+
"title": "Any",
|
|
354
|
+
"description": "Trigger when any keyword matches the event summary text. Leave empty to ignore.",
|
|
355
|
+
"type": "array",
|
|
356
|
+
"items": {
|
|
357
|
+
"type": "string"
|
|
358
|
+
},
|
|
359
|
+
"default": [],
|
|
360
|
+
"x-title-i18n": {
|
|
361
|
+
"en-US": "Any",
|
|
362
|
+
"zh-CN": "任意"
|
|
363
|
+
},
|
|
364
|
+
"x-description-i18n": {
|
|
365
|
+
"en-US": "Trigger when any keyword matches the event summary text. Leave empty to ignore.",
|
|
366
|
+
"zh-CN": "当任意关键词匹配事件摘要文本时触发。留空则忽略。"
|
|
367
|
+
}
|
|
368
|
+
},
|
|
369
|
+
"all": {
|
|
370
|
+
"title": "All",
|
|
371
|
+
"description": "Trigger only when all keywords match the event summary text. Leave empty to ignore.",
|
|
372
|
+
"type": "array",
|
|
373
|
+
"items": {
|
|
374
|
+
"type": "string"
|
|
375
|
+
},
|
|
376
|
+
"default": [],
|
|
377
|
+
"x-title-i18n": {
|
|
378
|
+
"en-US": "All",
|
|
379
|
+
"zh-CN": "全部"
|
|
380
|
+
},
|
|
381
|
+
"x-description-i18n": {
|
|
382
|
+
"en-US": "Trigger only when all keywords match the event summary text. Leave empty to ignore.",
|
|
383
|
+
"zh-CN": "仅当所有关键词都匹配事件摘要文本时触发。留空则忽略。"
|
|
384
|
+
}
|
|
385
|
+
},
|
|
386
|
+
"none": {
|
|
387
|
+
"title": "None",
|
|
388
|
+
"description": "Do not trigger if any keyword matches the event summary text.",
|
|
389
|
+
"type": "array",
|
|
390
|
+
"items": {
|
|
391
|
+
"type": "string"
|
|
392
|
+
},
|
|
393
|
+
"default": [],
|
|
394
|
+
"x-title-i18n": {
|
|
395
|
+
"en-US": "None",
|
|
396
|
+
"zh-CN": "无"
|
|
397
|
+
},
|
|
398
|
+
"x-description-i18n": {
|
|
399
|
+
"en-US": "Do not trigger if any keyword matches the event summary text.",
|
|
400
|
+
"zh-CN": "如果任意关键词匹配事件摘要文本则不触发。"
|
|
401
|
+
}
|
|
402
|
+
},
|
|
403
|
+
"matchCase": {
|
|
404
|
+
"title": "Match case",
|
|
405
|
+
"description": "Use case-sensitive matching.",
|
|
406
|
+
"type": "boolean",
|
|
407
|
+
"default": false,
|
|
408
|
+
"x-title-i18n": {
|
|
409
|
+
"en-US": "Match case",
|
|
410
|
+
"zh-CN": "区分大小写"
|
|
411
|
+
},
|
|
412
|
+
"x-description-i18n": {
|
|
413
|
+
"en-US": "Use case-sensitive matching.",
|
|
414
|
+
"zh-CN": "使用区分大小写匹配。"
|
|
415
|
+
}
|
|
416
|
+
}
|
|
417
|
+
},
|
|
418
|
+
"additionalProperties": false,
|
|
419
|
+
"x-title-i18n": {
|
|
420
|
+
"en-US": "Keywords",
|
|
421
|
+
"zh-CN": "关键词"
|
|
422
|
+
},
|
|
423
|
+
"x-description-i18n": {
|
|
424
|
+
"en-US": "Match rules against the event summary text.",
|
|
425
|
+
"zh-CN": "根据事件摘要文本匹配规则。"
|
|
426
|
+
}
|
|
427
|
+
},
|
|
428
|
+
"attemptAtLeast": {
|
|
429
|
+
"title": "Attempt at least",
|
|
430
|
+
"description": "Only trigger when retry attempt is at least this value.",
|
|
431
|
+
"type": "integer",
|
|
432
|
+
"minimum": 1,
|
|
433
|
+
"default": 1,
|
|
434
|
+
"x-title-i18n": {
|
|
435
|
+
"en-US": "Attempt at least",
|
|
436
|
+
"zh-CN": "最少尝试次数"
|
|
437
|
+
},
|
|
438
|
+
"x-description-i18n": {
|
|
439
|
+
"en-US": "Only trigger when retry attempt is at least this value.",
|
|
440
|
+
"zh-CN": "仅当重试次数至少达到该值时触发。"
|
|
441
|
+
}
|
|
442
|
+
}
|
|
443
|
+
},
|
|
444
|
+
"additionalProperties": false,
|
|
445
|
+
"x-title-i18n": {
|
|
446
|
+
"en-US": "On session retry",
|
|
447
|
+
"zh-CN": "会话重试时"
|
|
448
|
+
},
|
|
449
|
+
"x-description-i18n": {
|
|
450
|
+
"en-US": "Trigger when the session retries.",
|
|
451
|
+
"zh-CN": "当会话重试时触发。"
|
|
452
|
+
}
|
|
453
|
+
},
|
|
454
|
+
"onPermissionAsked": {
|
|
455
|
+
"title": "On permission asked",
|
|
456
|
+
"description": "Trigger when a permission is requested.",
|
|
457
|
+
"type": "object",
|
|
458
|
+
"properties": {
|
|
459
|
+
"enabled": {
|
|
460
|
+
"title": "Enabled",
|
|
461
|
+
"description": "Enable this trigger.",
|
|
462
|
+
"type": "boolean",
|
|
463
|
+
"default": false,
|
|
464
|
+
"x-title-i18n": {
|
|
465
|
+
"en-US": "Enabled",
|
|
466
|
+
"zh-CN": "启用"
|
|
467
|
+
},
|
|
468
|
+
"x-description-i18n": {
|
|
469
|
+
"en-US": "Enable this trigger.",
|
|
470
|
+
"zh-CN": "启用此触发器。"
|
|
471
|
+
}
|
|
472
|
+
},
|
|
473
|
+
"force": {
|
|
474
|
+
"title": "Force",
|
|
475
|
+
"description": "Force auto-continue even when a guard would normally block it.",
|
|
476
|
+
"type": "boolean",
|
|
477
|
+
"default": false,
|
|
478
|
+
"x-title-i18n": {
|
|
479
|
+
"en-US": "Force",
|
|
480
|
+
"zh-CN": "强制"
|
|
481
|
+
},
|
|
482
|
+
"x-description-i18n": {
|
|
483
|
+
"en-US": "Force auto-continue even when a guard would normally block it.",
|
|
484
|
+
"zh-CN": "即使守卫通常会阻止,也强制自动继续。"
|
|
485
|
+
}
|
|
486
|
+
},
|
|
487
|
+
"keywords": {
|
|
488
|
+
"title": "Keywords",
|
|
489
|
+
"description": "Match rules against the event summary text.",
|
|
490
|
+
"type": "object",
|
|
491
|
+
"properties": {
|
|
492
|
+
"any": {
|
|
493
|
+
"title": "Any",
|
|
494
|
+
"description": "Trigger when any keyword matches the event summary text. Leave empty to ignore.",
|
|
495
|
+
"type": "array",
|
|
496
|
+
"items": {
|
|
497
|
+
"type": "string"
|
|
498
|
+
},
|
|
499
|
+
"default": [],
|
|
500
|
+
"x-title-i18n": {
|
|
501
|
+
"en-US": "Any",
|
|
502
|
+
"zh-CN": "任意"
|
|
503
|
+
},
|
|
504
|
+
"x-description-i18n": {
|
|
505
|
+
"en-US": "Trigger when any keyword matches the event summary text. Leave empty to ignore.",
|
|
506
|
+
"zh-CN": "当任意关键词匹配事件摘要文本时触发。留空则忽略。"
|
|
507
|
+
}
|
|
508
|
+
},
|
|
509
|
+
"all": {
|
|
510
|
+
"title": "All",
|
|
511
|
+
"description": "Trigger only when all keywords match the event summary text. Leave empty to ignore.",
|
|
512
|
+
"type": "array",
|
|
513
|
+
"items": {
|
|
514
|
+
"type": "string"
|
|
515
|
+
},
|
|
516
|
+
"default": [],
|
|
517
|
+
"x-title-i18n": {
|
|
518
|
+
"en-US": "All",
|
|
519
|
+
"zh-CN": "全部"
|
|
520
|
+
},
|
|
521
|
+
"x-description-i18n": {
|
|
522
|
+
"en-US": "Trigger only when all keywords match the event summary text. Leave empty to ignore.",
|
|
523
|
+
"zh-CN": "仅当所有关键词都匹配事件摘要文本时触发。留空则忽略。"
|
|
524
|
+
}
|
|
525
|
+
},
|
|
526
|
+
"none": {
|
|
527
|
+
"title": "None",
|
|
528
|
+
"description": "Do not trigger if any keyword matches the event summary text.",
|
|
529
|
+
"type": "array",
|
|
530
|
+
"items": {
|
|
531
|
+
"type": "string"
|
|
532
|
+
},
|
|
533
|
+
"default": [],
|
|
534
|
+
"x-title-i18n": {
|
|
535
|
+
"en-US": "None",
|
|
536
|
+
"zh-CN": "无"
|
|
537
|
+
},
|
|
538
|
+
"x-description-i18n": {
|
|
539
|
+
"en-US": "Do not trigger if any keyword matches the event summary text.",
|
|
540
|
+
"zh-CN": "如果任意关键词匹配事件摘要文本则不触发。"
|
|
541
|
+
}
|
|
542
|
+
},
|
|
543
|
+
"matchCase": {
|
|
544
|
+
"title": "Match case",
|
|
545
|
+
"description": "Use case-sensitive matching.",
|
|
546
|
+
"type": "boolean",
|
|
547
|
+
"default": false,
|
|
548
|
+
"x-title-i18n": {
|
|
549
|
+
"en-US": "Match case",
|
|
550
|
+
"zh-CN": "区分大小写"
|
|
551
|
+
},
|
|
552
|
+
"x-description-i18n": {
|
|
553
|
+
"en-US": "Use case-sensitive matching.",
|
|
554
|
+
"zh-CN": "使用区分大小写匹配。"
|
|
555
|
+
}
|
|
556
|
+
}
|
|
557
|
+
},
|
|
558
|
+
"additionalProperties": false,
|
|
559
|
+
"x-title-i18n": {
|
|
560
|
+
"en-US": "Keywords",
|
|
561
|
+
"zh-CN": "关键词"
|
|
562
|
+
},
|
|
563
|
+
"x-description-i18n": {
|
|
564
|
+
"en-US": "Match rules against the event summary text.",
|
|
565
|
+
"zh-CN": "根据事件摘要文本匹配规则。"
|
|
566
|
+
}
|
|
567
|
+
}
|
|
568
|
+
},
|
|
569
|
+
"additionalProperties": false,
|
|
570
|
+
"x-title-i18n": {
|
|
571
|
+
"en-US": "On permission asked",
|
|
572
|
+
"zh-CN": "请求权限时"
|
|
573
|
+
},
|
|
574
|
+
"x-description-i18n": {
|
|
575
|
+
"en-US": "Trigger when a permission is requested.",
|
|
576
|
+
"zh-CN": "请求权限时触发。"
|
|
577
|
+
}
|
|
578
|
+
},
|
|
579
|
+
"onPermissionRejected": {
|
|
580
|
+
"title": "On permission rejected",
|
|
581
|
+
"description": "Trigger when a permission request is rejected.",
|
|
582
|
+
"type": "object",
|
|
583
|
+
"properties": {
|
|
584
|
+
"enabled": {
|
|
585
|
+
"title": "Enabled",
|
|
586
|
+
"description": "Enable this trigger.",
|
|
587
|
+
"type": "boolean",
|
|
588
|
+
"default": false,
|
|
589
|
+
"x-title-i18n": {
|
|
590
|
+
"en-US": "Enabled",
|
|
591
|
+
"zh-CN": "启用"
|
|
592
|
+
},
|
|
593
|
+
"x-description-i18n": {
|
|
594
|
+
"en-US": "Enable this trigger.",
|
|
595
|
+
"zh-CN": "启用此触发器。"
|
|
596
|
+
}
|
|
597
|
+
},
|
|
598
|
+
"force": {
|
|
599
|
+
"title": "Force",
|
|
600
|
+
"description": "Force auto-continue when this trigger matches.",
|
|
601
|
+
"type": "boolean",
|
|
602
|
+
"default": true,
|
|
603
|
+
"x-title-i18n": {
|
|
604
|
+
"en-US": "Force",
|
|
605
|
+
"zh-CN": "强制"
|
|
606
|
+
},
|
|
607
|
+
"x-description-i18n": {
|
|
608
|
+
"en-US": "Force auto-continue when this trigger matches.",
|
|
609
|
+
"zh-CN": "当此触发器匹配时强制自动继续。"
|
|
610
|
+
}
|
|
611
|
+
},
|
|
612
|
+
"keywords": {
|
|
613
|
+
"title": "Keywords",
|
|
614
|
+
"description": "Match rules against the event summary text.",
|
|
615
|
+
"type": "object",
|
|
616
|
+
"properties": {
|
|
617
|
+
"any": {
|
|
618
|
+
"title": "Any",
|
|
619
|
+
"description": "Trigger when any keyword matches the event summary text. Leave empty to ignore.",
|
|
620
|
+
"type": "array",
|
|
621
|
+
"items": {
|
|
622
|
+
"type": "string"
|
|
623
|
+
},
|
|
624
|
+
"default": [],
|
|
625
|
+
"x-title-i18n": {
|
|
626
|
+
"en-US": "Any",
|
|
627
|
+
"zh-CN": "任意"
|
|
628
|
+
},
|
|
629
|
+
"x-description-i18n": {
|
|
630
|
+
"en-US": "Trigger when any keyword matches the event summary text. Leave empty to ignore.",
|
|
631
|
+
"zh-CN": "当任意关键词匹配事件摘要文本时触发。留空则忽略。"
|
|
632
|
+
}
|
|
633
|
+
},
|
|
634
|
+
"all": {
|
|
635
|
+
"title": "All",
|
|
636
|
+
"description": "Trigger only when all keywords match the event summary text. Leave empty to ignore.",
|
|
637
|
+
"type": "array",
|
|
638
|
+
"items": {
|
|
639
|
+
"type": "string"
|
|
640
|
+
},
|
|
641
|
+
"default": [],
|
|
642
|
+
"x-title-i18n": {
|
|
643
|
+
"en-US": "All",
|
|
644
|
+
"zh-CN": "全部"
|
|
645
|
+
},
|
|
646
|
+
"x-description-i18n": {
|
|
647
|
+
"en-US": "Trigger only when all keywords match the event summary text. Leave empty to ignore.",
|
|
648
|
+
"zh-CN": "仅当所有关键词都匹配事件摘要文本时触发。留空则忽略。"
|
|
649
|
+
}
|
|
650
|
+
},
|
|
651
|
+
"none": {
|
|
652
|
+
"title": "None",
|
|
653
|
+
"description": "Do not trigger if any keyword matches the event summary text.",
|
|
654
|
+
"type": "array",
|
|
655
|
+
"items": {
|
|
656
|
+
"type": "string"
|
|
657
|
+
},
|
|
658
|
+
"default": [],
|
|
659
|
+
"x-title-i18n": {
|
|
660
|
+
"en-US": "None",
|
|
661
|
+
"zh-CN": "无"
|
|
662
|
+
},
|
|
663
|
+
"x-description-i18n": {
|
|
664
|
+
"en-US": "Do not trigger if any keyword matches the event summary text.",
|
|
665
|
+
"zh-CN": "如果任意关键词匹配事件摘要文本则不触发。"
|
|
666
|
+
}
|
|
667
|
+
},
|
|
668
|
+
"matchCase": {
|
|
669
|
+
"title": "Match case",
|
|
670
|
+
"description": "Use case-sensitive matching.",
|
|
671
|
+
"type": "boolean",
|
|
672
|
+
"default": false,
|
|
673
|
+
"x-title-i18n": {
|
|
674
|
+
"en-US": "Match case",
|
|
675
|
+
"zh-CN": "区分大小写"
|
|
676
|
+
},
|
|
677
|
+
"x-description-i18n": {
|
|
678
|
+
"en-US": "Use case-sensitive matching.",
|
|
679
|
+
"zh-CN": "使用区分大小写匹配。"
|
|
680
|
+
}
|
|
681
|
+
}
|
|
682
|
+
},
|
|
683
|
+
"additionalProperties": false,
|
|
684
|
+
"x-title-i18n": {
|
|
685
|
+
"en-US": "Keywords",
|
|
686
|
+
"zh-CN": "关键词"
|
|
687
|
+
},
|
|
688
|
+
"x-description-i18n": {
|
|
689
|
+
"en-US": "Match rules against the event summary text.",
|
|
690
|
+
"zh-CN": "根据事件摘要文本匹配规则。"
|
|
691
|
+
}
|
|
692
|
+
}
|
|
693
|
+
},
|
|
694
|
+
"additionalProperties": false,
|
|
695
|
+
"x-title-i18n": {
|
|
696
|
+
"en-US": "On permission rejected",
|
|
697
|
+
"zh-CN": "权限被拒绝时"
|
|
698
|
+
},
|
|
699
|
+
"x-description-i18n": {
|
|
700
|
+
"en-US": "Trigger when a permission request is rejected.",
|
|
701
|
+
"zh-CN": "权限请求被拒绝时触发。"
|
|
702
|
+
}
|
|
703
|
+
},
|
|
704
|
+
"onQuestionAsked": {
|
|
705
|
+
"title": "On question asked",
|
|
706
|
+
"description": "Trigger when a question is asked.",
|
|
707
|
+
"type": "object",
|
|
708
|
+
"properties": {
|
|
709
|
+
"enabled": {
|
|
710
|
+
"title": "Enabled",
|
|
711
|
+
"description": "Enable this trigger.",
|
|
712
|
+
"type": "boolean",
|
|
713
|
+
"default": false,
|
|
714
|
+
"x-title-i18n": {
|
|
715
|
+
"en-US": "Enabled",
|
|
716
|
+
"zh-CN": "启用"
|
|
717
|
+
},
|
|
718
|
+
"x-description-i18n": {
|
|
719
|
+
"en-US": "Enable this trigger.",
|
|
720
|
+
"zh-CN": "启用此触发器。"
|
|
721
|
+
}
|
|
722
|
+
},
|
|
723
|
+
"force": {
|
|
724
|
+
"title": "Force",
|
|
725
|
+
"description": "Force auto-continue even when a guard would normally block it.",
|
|
726
|
+
"type": "boolean",
|
|
727
|
+
"default": false,
|
|
728
|
+
"x-title-i18n": {
|
|
729
|
+
"en-US": "Force",
|
|
730
|
+
"zh-CN": "强制"
|
|
731
|
+
},
|
|
732
|
+
"x-description-i18n": {
|
|
733
|
+
"en-US": "Force auto-continue even when a guard would normally block it.",
|
|
734
|
+
"zh-CN": "即使守卫通常会阻止,也强制自动继续。"
|
|
735
|
+
}
|
|
736
|
+
},
|
|
737
|
+
"keywords": {
|
|
738
|
+
"title": "Keywords",
|
|
739
|
+
"description": "Match rules against the event summary text.",
|
|
740
|
+
"type": "object",
|
|
741
|
+
"properties": {
|
|
742
|
+
"any": {
|
|
743
|
+
"title": "Any",
|
|
744
|
+
"description": "Trigger when any keyword matches the event summary text. Leave empty to ignore.",
|
|
745
|
+
"type": "array",
|
|
746
|
+
"items": {
|
|
747
|
+
"type": "string"
|
|
748
|
+
},
|
|
749
|
+
"default": [],
|
|
750
|
+
"x-title-i18n": {
|
|
751
|
+
"en-US": "Any",
|
|
752
|
+
"zh-CN": "任意"
|
|
753
|
+
},
|
|
754
|
+
"x-description-i18n": {
|
|
755
|
+
"en-US": "Trigger when any keyword matches the event summary text. Leave empty to ignore.",
|
|
756
|
+
"zh-CN": "当任意关键词匹配事件摘要文本时触发。留空则忽略。"
|
|
757
|
+
}
|
|
758
|
+
},
|
|
759
|
+
"all": {
|
|
760
|
+
"title": "All",
|
|
761
|
+
"description": "Trigger only when all keywords match the event summary text. Leave empty to ignore.",
|
|
762
|
+
"type": "array",
|
|
763
|
+
"items": {
|
|
764
|
+
"type": "string"
|
|
765
|
+
},
|
|
766
|
+
"default": [],
|
|
767
|
+
"x-title-i18n": {
|
|
768
|
+
"en-US": "All",
|
|
769
|
+
"zh-CN": "全部"
|
|
770
|
+
},
|
|
771
|
+
"x-description-i18n": {
|
|
772
|
+
"en-US": "Trigger only when all keywords match the event summary text. Leave empty to ignore.",
|
|
773
|
+
"zh-CN": "仅当所有关键词都匹配事件摘要文本时触发。留空则忽略。"
|
|
774
|
+
}
|
|
775
|
+
},
|
|
776
|
+
"none": {
|
|
777
|
+
"title": "None",
|
|
778
|
+
"description": "Do not trigger if any keyword matches the event summary text.",
|
|
779
|
+
"type": "array",
|
|
780
|
+
"items": {
|
|
781
|
+
"type": "string"
|
|
782
|
+
},
|
|
783
|
+
"default": [],
|
|
784
|
+
"x-title-i18n": {
|
|
785
|
+
"en-US": "None",
|
|
786
|
+
"zh-CN": "无"
|
|
787
|
+
},
|
|
788
|
+
"x-description-i18n": {
|
|
789
|
+
"en-US": "Do not trigger if any keyword matches the event summary text.",
|
|
790
|
+
"zh-CN": "如果任意关键词匹配事件摘要文本则不触发。"
|
|
791
|
+
}
|
|
792
|
+
},
|
|
793
|
+
"matchCase": {
|
|
794
|
+
"title": "Match case",
|
|
795
|
+
"description": "Use case-sensitive matching.",
|
|
796
|
+
"type": "boolean",
|
|
797
|
+
"default": false,
|
|
798
|
+
"x-title-i18n": {
|
|
799
|
+
"en-US": "Match case",
|
|
800
|
+
"zh-CN": "区分大小写"
|
|
801
|
+
},
|
|
802
|
+
"x-description-i18n": {
|
|
803
|
+
"en-US": "Use case-sensitive matching.",
|
|
804
|
+
"zh-CN": "使用区分大小写匹配。"
|
|
805
|
+
}
|
|
806
|
+
}
|
|
807
|
+
},
|
|
808
|
+
"additionalProperties": false,
|
|
809
|
+
"x-title-i18n": {
|
|
810
|
+
"en-US": "Keywords",
|
|
811
|
+
"zh-CN": "关键词"
|
|
812
|
+
},
|
|
813
|
+
"x-description-i18n": {
|
|
814
|
+
"en-US": "Match rules against the event summary text.",
|
|
815
|
+
"zh-CN": "根据事件摘要文本匹配规则。"
|
|
816
|
+
}
|
|
817
|
+
}
|
|
818
|
+
},
|
|
819
|
+
"additionalProperties": false,
|
|
820
|
+
"x-title-i18n": {
|
|
821
|
+
"en-US": "On question asked",
|
|
822
|
+
"zh-CN": "提出问题时"
|
|
823
|
+
},
|
|
824
|
+
"x-description-i18n": {
|
|
825
|
+
"en-US": "Trigger when a question is asked.",
|
|
826
|
+
"zh-CN": "提出问题时触发。"
|
|
827
|
+
}
|
|
828
|
+
},
|
|
829
|
+
"onQuestionRejected": {
|
|
830
|
+
"title": "On question rejected",
|
|
831
|
+
"description": "Trigger when a question is rejected.",
|
|
832
|
+
"type": "object",
|
|
833
|
+
"properties": {
|
|
834
|
+
"enabled": {
|
|
835
|
+
"title": "Enabled",
|
|
836
|
+
"description": "Enable this trigger.",
|
|
837
|
+
"type": "boolean",
|
|
838
|
+
"default": false,
|
|
839
|
+
"x-title-i18n": {
|
|
840
|
+
"en-US": "Enabled",
|
|
841
|
+
"zh-CN": "启用"
|
|
842
|
+
},
|
|
843
|
+
"x-description-i18n": {
|
|
844
|
+
"en-US": "Enable this trigger.",
|
|
845
|
+
"zh-CN": "启用此触发器。"
|
|
846
|
+
}
|
|
847
|
+
},
|
|
848
|
+
"force": {
|
|
849
|
+
"title": "Force",
|
|
850
|
+
"description": "Force auto-continue when this trigger matches.",
|
|
851
|
+
"type": "boolean",
|
|
852
|
+
"default": true,
|
|
853
|
+
"x-title-i18n": {
|
|
854
|
+
"en-US": "Force",
|
|
855
|
+
"zh-CN": "强制"
|
|
856
|
+
},
|
|
857
|
+
"x-description-i18n": {
|
|
858
|
+
"en-US": "Force auto-continue when this trigger matches.",
|
|
859
|
+
"zh-CN": "当此触发器匹配时强制自动继续。"
|
|
860
|
+
}
|
|
861
|
+
},
|
|
862
|
+
"keywords": {
|
|
863
|
+
"title": "Keywords",
|
|
864
|
+
"description": "Match rules against the event summary text.",
|
|
865
|
+
"type": "object",
|
|
866
|
+
"properties": {
|
|
867
|
+
"any": {
|
|
868
|
+
"title": "Any",
|
|
869
|
+
"description": "Trigger when any keyword matches the event summary text. Leave empty to ignore.",
|
|
870
|
+
"type": "array",
|
|
871
|
+
"items": {
|
|
872
|
+
"type": "string"
|
|
873
|
+
},
|
|
874
|
+
"default": [],
|
|
875
|
+
"x-title-i18n": {
|
|
876
|
+
"en-US": "Any",
|
|
877
|
+
"zh-CN": "任意"
|
|
878
|
+
},
|
|
879
|
+
"x-description-i18n": {
|
|
880
|
+
"en-US": "Trigger when any keyword matches the event summary text. Leave empty to ignore.",
|
|
881
|
+
"zh-CN": "当任意关键词匹配事件摘要文本时触发。留空则忽略。"
|
|
882
|
+
}
|
|
883
|
+
},
|
|
884
|
+
"all": {
|
|
885
|
+
"title": "All",
|
|
886
|
+
"description": "Trigger only when all keywords match the event summary text. Leave empty to ignore.",
|
|
887
|
+
"type": "array",
|
|
888
|
+
"items": {
|
|
889
|
+
"type": "string"
|
|
890
|
+
},
|
|
891
|
+
"default": [],
|
|
892
|
+
"x-title-i18n": {
|
|
893
|
+
"en-US": "All",
|
|
894
|
+
"zh-CN": "全部"
|
|
895
|
+
},
|
|
896
|
+
"x-description-i18n": {
|
|
897
|
+
"en-US": "Trigger only when all keywords match the event summary text. Leave empty to ignore.",
|
|
898
|
+
"zh-CN": "仅当所有关键词都匹配事件摘要文本时触发。留空则忽略。"
|
|
899
|
+
}
|
|
900
|
+
},
|
|
901
|
+
"none": {
|
|
902
|
+
"title": "None",
|
|
903
|
+
"description": "Do not trigger if any keyword matches the event summary text.",
|
|
904
|
+
"type": "array",
|
|
905
|
+
"items": {
|
|
906
|
+
"type": "string"
|
|
907
|
+
},
|
|
908
|
+
"default": [],
|
|
909
|
+
"x-title-i18n": {
|
|
910
|
+
"en-US": "None",
|
|
911
|
+
"zh-CN": "无"
|
|
912
|
+
},
|
|
913
|
+
"x-description-i18n": {
|
|
914
|
+
"en-US": "Do not trigger if any keyword matches the event summary text.",
|
|
915
|
+
"zh-CN": "如果任意关键词匹配事件摘要文本则不触发。"
|
|
916
|
+
}
|
|
917
|
+
},
|
|
918
|
+
"matchCase": {
|
|
919
|
+
"title": "Match case",
|
|
920
|
+
"description": "Use case-sensitive matching.",
|
|
921
|
+
"type": "boolean",
|
|
922
|
+
"default": false,
|
|
923
|
+
"x-title-i18n": {
|
|
924
|
+
"en-US": "Match case",
|
|
925
|
+
"zh-CN": "区分大小写"
|
|
926
|
+
},
|
|
927
|
+
"x-description-i18n": {
|
|
928
|
+
"en-US": "Use case-sensitive matching.",
|
|
929
|
+
"zh-CN": "使用区分大小写匹配。"
|
|
930
|
+
}
|
|
931
|
+
}
|
|
932
|
+
},
|
|
933
|
+
"additionalProperties": false,
|
|
934
|
+
"x-title-i18n": {
|
|
935
|
+
"en-US": "Keywords",
|
|
936
|
+
"zh-CN": "关键词"
|
|
937
|
+
},
|
|
938
|
+
"x-description-i18n": {
|
|
939
|
+
"en-US": "Match rules against the event summary text.",
|
|
940
|
+
"zh-CN": "根据事件摘要文本匹配规则。"
|
|
941
|
+
}
|
|
942
|
+
}
|
|
943
|
+
},
|
|
944
|
+
"additionalProperties": false,
|
|
945
|
+
"x-title-i18n": {
|
|
946
|
+
"en-US": "On question rejected",
|
|
947
|
+
"zh-CN": "问题被拒绝时"
|
|
948
|
+
},
|
|
949
|
+
"x-description-i18n": {
|
|
950
|
+
"en-US": "Trigger when a question is rejected.",
|
|
951
|
+
"zh-CN": "问题被拒绝时触发。"
|
|
952
|
+
}
|
|
953
|
+
}
|
|
954
|
+
},
|
|
955
|
+
"additionalProperties": false,
|
|
956
|
+
"x-title-i18n": {
|
|
957
|
+
"en-US": "Auto continue",
|
|
958
|
+
"zh-CN": "自动继续"
|
|
959
|
+
},
|
|
960
|
+
"x-description-i18n": {
|
|
961
|
+
"en-US": "Rules for automatically continuing when the session becomes idle.",
|
|
962
|
+
"zh-CN": "会话空闲时自动继续的规则。"
|
|
963
|
+
}
|
|
964
|
+
}
|
|
965
|
+
},
|
|
966
|
+
"additionalProperties": false
|
|
967
|
+
}
|
|
968
|
+
}
|