taskproof 0.3.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. taskproof/__init__.py +23 -0
  2. taskproof/__main__.py +8 -0
  3. taskproof/adapters/__init__.py +101 -0
  4. taskproof/adapters/base.py +228 -0
  5. taskproof/adapters/claude.py +46 -0
  6. taskproof/adapters/codex.py +140 -0
  7. taskproof/adapters/custom.py +61 -0
  8. taskproof/adapters/gemini.py +45 -0
  9. taskproof/adapters/opencode.py +46 -0
  10. taskproof/api/__init__.py +1 -0
  11. taskproof/api/server.py +822 -0
  12. taskproof/cli.py +1400 -0
  13. taskproof/concurrency.py +329 -0
  14. taskproof/dispatch.py +2289 -0
  15. taskproof/errors.py +55 -0
  16. taskproof/ledger.py +185 -0
  17. taskproof/models.py +155 -0
  18. taskproof/registry.py +1585 -0
  19. taskproof/schemas/result.json +58 -0
  20. taskproof/sql/schema.sql +70 -0
  21. taskproof/storage.py +372 -0
  22. taskproof/verify.py +615 -0
  23. taskproof/web/assets/MatrixView-BM8nu9s2.css +446 -0
  24. taskproof/web/assets/MatrixView-BM8nu9s2.css.gz +0 -0
  25. taskproof/web/assets/MatrixView-BMsawnxh.js +475 -0
  26. taskproof/web/assets/MatrixView-BMsawnxh.js.gz +0 -0
  27. taskproof/web/assets/ProjectsView-BcXcx5Gw.js +302 -0
  28. taskproof/web/assets/ProjectsView-BcXcx5Gw.js.gz +0 -0
  29. taskproof/web/assets/ProjectsView-CqNFL-fi.css +23 -0
  30. taskproof/web/assets/SettingsView-D_-waf0s.js +585 -0
  31. taskproof/web/assets/SettingsView-D_-waf0s.js.gz +0 -0
  32. taskproof/web/assets/SettingsView-aqTS3ubB.css +19 -0
  33. taskproof/web/assets/TaskDrawer-6JoGTH0s.js +597 -0
  34. taskproof/web/assets/TaskDrawer-6JoGTH0s.js.gz +0 -0
  35. taskproof/web/assets/TaskDrawer-N299VKzd.css +465 -0
  36. taskproof/web/assets/TaskDrawer-N299VKzd.css.gz +0 -0
  37. taskproof/web/assets/TasksView-BWhSHCHi.js +114 -0
  38. taskproof/web/assets/TasksView-BWhSHCHi.js.gz +0 -0
  39. taskproof/web/assets/TasksView-Bn08731V.css +30 -0
  40. taskproof/web/assets/icon-Dw-ohsdc.png +0 -0
  41. taskproof/web/assets/index-B-PLdDbR.js +75421 -0
  42. taskproof/web/assets/index-B-PLdDbR.js.gz +0 -0
  43. taskproof/web/assets/index-NKj7kbYl.css +1234 -0
  44. taskproof/web/assets/index-NKj7kbYl.css.gz +0 -0
  45. taskproof/web/index.html +23 -0
  46. taskproof-0.3.0.dist-info/METADATA +470 -0
  47. taskproof-0.3.0.dist-info/RECORD +51 -0
  48. taskproof-0.3.0.dist-info/WHEEL +5 -0
  49. taskproof-0.3.0.dist-info/entry_points.txt +2 -0
  50. taskproof-0.3.0.dist-info/licenses/LICENSE +201 -0
  51. taskproof-0.3.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,585 @@
1
+ import { d as defineComponent, i as useBoardStore, j as useSettingsStore, u as useI18n, k as watch, a8 as onMounted, c as createElementBlock, b as createBaseVNode, t as toDisplayString, f as unref, g as createCommentVNode, e as createVNode, l as withCtx, a9 as openAbout, F as Fragment, r as renderList, aa as STATUS_IDS, ab as VERIFY_KINDS, ac as hasDesktopHost, h as computed, U as ref, p as resolveComponent, y as createTextVNode, n as normalizeClass, o as openBlock, _ as _export_sfc } from "./index-B-PLdDbR.js";
2
+ const _hoisted_1 = { class: "settings-view" };
3
+ const _hoisted_2 = { class: "panes grouped" };
4
+ const _hoisted_3 = { class: "setwrap" };
5
+ const _hoisted_4 = { class: "sub" };
6
+ const _hoisted_5 = {
7
+ key: 0,
8
+ class: "sub browser-note"
9
+ };
10
+ const _hoisted_6 = { class: "setgroup" };
11
+ const _hoisted_7 = { class: "setcard" };
12
+ const _hoisted_8 = { class: "setrow" };
13
+ const _hoisted_9 = { class: "lab" };
14
+ const _hoisted_10 = { class: "t" };
15
+ const _hoisted_11 = { class: "ctl" };
16
+ const _hoisted_12 = { class: "setrow" };
17
+ const _hoisted_13 = { class: "lab" };
18
+ const _hoisted_14 = { class: "t" };
19
+ const _hoisted_15 = { class: "d" };
20
+ const _hoisted_16 = { class: "ctl" };
21
+ const _hoisted_17 = { class: "setrow" };
22
+ const _hoisted_18 = { class: "lab" };
23
+ const _hoisted_19 = { class: "t" };
24
+ const _hoisted_20 = { class: "d" };
25
+ const _hoisted_21 = { class: "ctl" };
26
+ const _hoisted_22 = {
27
+ key: 1,
28
+ class: "setgroup"
29
+ };
30
+ const _hoisted_23 = { class: "setcard" };
31
+ const _hoisted_24 = { class: "setrow" };
32
+ const _hoisted_25 = { class: "lab" };
33
+ const _hoisted_26 = { class: "t" };
34
+ const _hoisted_27 = { class: "d" };
35
+ const _hoisted_28 = { class: "ctl" };
36
+ const _hoisted_29 = {
37
+ key: 0,
38
+ class: "setrow"
39
+ };
40
+ const _hoisted_30 = { class: "lab" };
41
+ const _hoisted_31 = { class: "t" };
42
+ const _hoisted_32 = { class: "d" };
43
+ const _hoisted_33 = { class: "ctl" };
44
+ const _hoisted_34 = { class: "setrow" };
45
+ const _hoisted_35 = { class: "lab" };
46
+ const _hoisted_36 = { class: "t" };
47
+ const _hoisted_37 = { class: "d" };
48
+ const _hoisted_38 = { class: "ctl wide" };
49
+ const _hoisted_39 = { class: "setrow" };
50
+ const _hoisted_40 = { class: "lab" };
51
+ const _hoisted_41 = { class: "t" };
52
+ const _hoisted_42 = { class: "d" };
53
+ const _hoisted_43 = { class: "ctl" };
54
+ const _hoisted_44 = { class: "ro" };
55
+ const _hoisted_45 = { class: "setrow" };
56
+ const _hoisted_46 = { class: "lab" };
57
+ const _hoisted_47 = { class: "t" };
58
+ const _hoisted_48 = { class: "ctl" };
59
+ const _hoisted_49 = {
60
+ key: 2,
61
+ class: "setgroup"
62
+ };
63
+ const _hoisted_50 = { class: "setcard" };
64
+ const _hoisted_51 = { class: "setrow" };
65
+ const _hoisted_52 = { class: "lab" };
66
+ const _hoisted_53 = { class: "t" };
67
+ const _hoisted_54 = { class: "d" };
68
+ const _hoisted_55 = { class: "ctl" };
69
+ const _hoisted_56 = { class: "ro" };
70
+ const _hoisted_57 = { class: "setrow" };
71
+ const _hoisted_58 = { class: "lab" };
72
+ const _hoisted_59 = { class: "t" };
73
+ const _hoisted_60 = { class: "d" };
74
+ const _hoisted_61 = { class: "ctl wide" };
75
+ const _hoisted_62 = { class: "ro argvcopy" };
76
+ const _hoisted_63 = {
77
+ key: 0,
78
+ class: "setrow"
79
+ };
80
+ const _hoisted_64 = { class: "lab" };
81
+ const _hoisted_65 = { class: "t" };
82
+ const _hoisted_66 = { class: "d gitmissing" };
83
+ const _hoisted_67 = {
84
+ key: 3,
85
+ class: "setgroup"
86
+ };
87
+ const _hoisted_68 = { class: "setcard" };
88
+ const _hoisted_69 = { class: "setrow" };
89
+ const _hoisted_70 = { class: "lab" };
90
+ const _hoisted_71 = { class: "t" };
91
+ const _hoisted_72 = { class: "ctl" };
92
+ const _hoisted_73 = { class: "setrow" };
93
+ const _hoisted_74 = { class: "lab" };
94
+ const _hoisted_75 = { class: "t" };
95
+ const _hoisted_76 = { class: "ctl" };
96
+ const _hoisted_77 = { class: "setrow" };
97
+ const _hoisted_78 = { class: "lab" };
98
+ const _hoisted_79 = { class: "t" };
99
+ const _hoisted_80 = { class: "ctl" };
100
+ const _hoisted_81 = { class: "setrow" };
101
+ const _hoisted_82 = { class: "lab" };
102
+ const _hoisted_83 = { class: "t" };
103
+ const _hoisted_84 = { class: "d" };
104
+ const _hoisted_85 = { class: "ctl" };
105
+ const _hoisted_86 = { class: "setrow" };
106
+ const _hoisted_87 = { class: "lab" };
107
+ const _hoisted_88 = { class: "t" };
108
+ const _hoisted_89 = { class: "d" };
109
+ const _hoisted_90 = { class: "ctl" };
110
+ const _hoisted_91 = { class: "setgroup" };
111
+ const _hoisted_92 = { class: "setcard" };
112
+ const _hoisted_93 = { class: "setrow" };
113
+ const _hoisted_94 = { class: "lab" };
114
+ const _hoisted_95 = { class: "t" };
115
+ const _hoisted_96 = { class: "d" };
116
+ const _hoisted_97 = { class: "ctl" };
117
+ const _hoisted_98 = { class: "setrow" };
118
+ const _hoisted_99 = { class: "lab" };
119
+ const _hoisted_100 = { class: "t" };
120
+ const _hoisted_101 = { class: "ctl" };
121
+ const _hoisted_102 = { class: "ro" };
122
+ const _hoisted_103 = { class: "setrow" };
123
+ const _hoisted_104 = { class: "lab" };
124
+ const _hoisted_105 = { class: "t" };
125
+ const _hoisted_106 = { class: "d" };
126
+ const _hoisted_107 = { class: "ctl" };
127
+ const _hoisted_108 = {
128
+ key: 0,
129
+ class: "alamps"
130
+ };
131
+ const _hoisted_109 = ["title"];
132
+ const _hoisted_110 = {
133
+ key: 1,
134
+ class: "ro"
135
+ };
136
+ const _hoisted_111 = { class: "setrow" };
137
+ const _hoisted_112 = { class: "lab" };
138
+ const _hoisted_113 = { class: "t" };
139
+ const _hoisted_114 = { class: "d" };
140
+ const _hoisted_115 = { class: "ctl" };
141
+ const _hoisted_116 = { class: "ro" };
142
+ const _hoisted_117 = { class: "setrow" };
143
+ const _hoisted_118 = { class: "lab" };
144
+ const _hoisted_119 = { class: "t" };
145
+ const _hoisted_120 = { class: "d" };
146
+ const _hoisted_121 = { class: "ctl" };
147
+ const _hoisted_122 = { class: "ro" };
148
+ const _hoisted_123 = { class: "setrow" };
149
+ const _hoisted_124 = { class: "lab" };
150
+ const _hoisted_125 = { class: "t" };
151
+ const _hoisted_126 = { class: "d" };
152
+ const _hoisted_127 = { class: "ctl" };
153
+ const _sfc_main = /* @__PURE__ */ defineComponent({
154
+ __name: "SettingsView",
155
+ setup(__props) {
156
+ const board = useBoardStore();
157
+ const settings = useSettingsStore();
158
+ const { t } = useI18n();
159
+ const hasHost = hasDesktopHost();
160
+ const contractLine = computed(
161
+ () => board.unknownWords.length ? t("settings.contractDrift") : t("settings.contractSynced")
162
+ );
163
+ const workspaceLabel = computed(() => {
164
+ const path = settings.settings.workspace ?? "";
165
+ const short = path.replace(/^\/Users\/[^/]+/, "~");
166
+ return short || "~/.taskproof";
167
+ });
168
+ const registryPath = computed(() => {
169
+ const ws = (settings.settings.workspace || "~/.taskproof").replace(/\/+$/, "");
170
+ return `${ws}/projects.toml`;
171
+ });
172
+ const cap = ref(null);
173
+ const capLine = computed(() => {
174
+ const setting = cap.value;
175
+ if (!setting || typeof setting.value !== "number") return "—";
176
+ const gloss = setting.source === "auto" ? t("settings.capAuto", { detail: setting.detail }) : setting.source === "cli" ? t("settings.capCli", { detail: setting.detail }) : setting.detail;
177
+ return `${t("settings.capLabel")} ${setting.value}(${gloss})`;
178
+ });
179
+ async function loadCap() {
180
+ const port = board.service.port;
181
+ if (!port) return;
182
+ try {
183
+ const response = await fetch(`http://127.0.0.1:${port}/api/health`, {
184
+ headers: { accept: "application/json" }
185
+ });
186
+ if (!response.ok) return;
187
+ const body = await response.json();
188
+ if (body.concurrency && typeof body.concurrency.value === "number") {
189
+ cap.value = body.concurrency;
190
+ }
191
+ } catch {
192
+ }
193
+ }
194
+ watch(
195
+ () => board.service.port,
196
+ (port) => {
197
+ if (port) void loadCap();
198
+ },
199
+ { immediate: true }
200
+ );
201
+ const languageOptions = computed(() => [
202
+ { label: t("lang.system"), value: "system" },
203
+ { label: "中文", value: "zh-CN" },
204
+ { label: "EN", value: "en" }
205
+ ]);
206
+ const themeOptions = computed(() => [
207
+ { label: t("theme.dark"), value: "dark" },
208
+ { label: t("theme.light"), value: "light" },
209
+ { label: t("theme.system"), value: "system" }
210
+ ]);
211
+ const pollOptions = computed(() => [
212
+ { label: t("settings.pollOn"), value: "2s" },
213
+ { label: t("settings.pollOff"), value: "off" }
214
+ ]);
215
+ const portModeOptions = computed(() => [
216
+ { label: t("settings.portmodeAuto"), value: "auto" },
217
+ { label: t("settings.portmodeFixed"), value: "fixed" }
218
+ ]);
219
+ const launchOptions = computed(() => [
220
+ { label: t("settings.launchAuto"), value: "auto" },
221
+ { label: t("settings.launchManual"), value: "manual" }
222
+ ]);
223
+ const adapters = ref(null);
224
+ const diagnostics = ref(null);
225
+ async function loadDiagnostics() {
226
+ const tp = window.tp;
227
+ if (!tp) return;
228
+ diagnostics.value = await tp.app.diagnostics();
229
+ }
230
+ onMounted(async () => {
231
+ const tp = window.tp;
232
+ if (!tp) return;
233
+ adapters.value = await tp.app.adapters();
234
+ await loadDiagnostics();
235
+ });
236
+ watch(
237
+ () => settings.settings.taskproofPath,
238
+ () => {
239
+ void loadDiagnostics();
240
+ }
241
+ );
242
+ const launchSourceLabel = computed(() => {
243
+ const source = diagnostics.value?.launch.source;
244
+ return source ? t(`settings.source.${source}`) : "—";
245
+ });
246
+ const launchArgv = computed(() => diagnostics.value?.launch.argv.join(" ") ?? "");
247
+ const gitMissing = computed(() => diagnostics.value?.gitAvailable === false);
248
+ function onLanguage(value) {
249
+ settings.setLanguage(value);
250
+ }
251
+ function onTheme(value) {
252
+ settings.setTheme(value);
253
+ }
254
+ function onPoll(value) {
255
+ settings.setPoll(value);
256
+ }
257
+ function onPortMode(value) {
258
+ settings.setPortMode(value);
259
+ }
260
+ function onLaunch(value) {
261
+ settings.setLaunch(value);
262
+ }
263
+ function onPort(value) {
264
+ const port = Number(value);
265
+ if (Number.isFinite(port) && port > 0) settings.setPort(port);
266
+ }
267
+ function onTaskproofPath(value) {
268
+ settings.setTaskproofPath(String(value));
269
+ }
270
+ function openRegistry() {
271
+ void window.tp?.shell.openPath(registryPath.value);
272
+ }
273
+ return (_ctx, _cache) => {
274
+ const _component_el_segmented = resolveComponent("el-segmented");
275
+ const _component_el_input = resolveComponent("el-input");
276
+ const _component_el_switch = resolveComponent("el-switch");
277
+ const _component_el_button = resolveComponent("el-button");
278
+ return openBlock(), createElementBlock("div", _hoisted_1, [
279
+ createBaseVNode("div", _hoisted_2, [
280
+ createBaseVNode("div", _hoisted_3, [
281
+ createBaseVNode("h3", null, toDisplayString(unref(t)("settings.title")), 1),
282
+ createBaseVNode("p", _hoisted_4, toDisplayString(unref(t)("settings.sub")), 1),
283
+ !unref(hasHost) ? (openBlock(), createElementBlock("p", _hoisted_5, toDisplayString(unref(t)("settings.browserNote")), 1)) : createCommentVNode("", true),
284
+ createBaseVNode("section", _hoisted_6, [
285
+ createBaseVNode("h4", null, toDisplayString(unref(t)("settings.appearance")), 1),
286
+ createBaseVNode("div", _hoisted_7, [
287
+ createBaseVNode("div", _hoisted_8, [
288
+ createBaseVNode("div", _hoisted_9, [
289
+ createBaseVNode("div", _hoisted_10, toDisplayString(unref(t)("settings.language")), 1)
290
+ ]),
291
+ createBaseVNode("div", _hoisted_11, [
292
+ createVNode(_component_el_segmented, {
293
+ "model-value": unref(settings).settings.language,
294
+ size: "small",
295
+ options: languageOptions.value,
296
+ "onUpdate:modelValue": onLanguage
297
+ }, null, 8, ["model-value", "options"])
298
+ ])
299
+ ]),
300
+ createBaseVNode("div", _hoisted_12, [
301
+ createBaseVNode("div", _hoisted_13, [
302
+ createBaseVNode("div", _hoisted_14, toDisplayString(unref(t)("settings.theme")), 1),
303
+ createBaseVNode("div", _hoisted_15, toDisplayString(unref(t)("settings.themeDesc")), 1)
304
+ ]),
305
+ createBaseVNode("div", _hoisted_16, [
306
+ createVNode(_component_el_segmented, {
307
+ "model-value": unref(settings).settings.theme,
308
+ size: "small",
309
+ options: themeOptions.value,
310
+ "onUpdate:modelValue": onTheme
311
+ }, null, 8, ["model-value", "options"])
312
+ ])
313
+ ]),
314
+ createBaseVNode("div", _hoisted_17, [
315
+ createBaseVNode("div", _hoisted_18, [
316
+ createBaseVNode("div", _hoisted_19, toDisplayString(unref(t)("settings.poll")), 1),
317
+ createBaseVNode("div", _hoisted_20, toDisplayString(unref(t)("settings.pollDesc")), 1)
318
+ ]),
319
+ createBaseVNode("div", _hoisted_21, [
320
+ createVNode(_component_el_segmented, {
321
+ "model-value": unref(settings).settings.poll,
322
+ size: "small",
323
+ options: pollOptions.value,
324
+ "onUpdate:modelValue": onPoll
325
+ }, null, 8, ["model-value", "options"])
326
+ ])
327
+ ])
328
+ ])
329
+ ]),
330
+ unref(hasHost) ? (openBlock(), createElementBlock("section", _hoisted_22, [
331
+ createBaseVNode("h4", null, toDisplayString(unref(t)("settings.service")), 1),
332
+ createBaseVNode("div", _hoisted_23, [
333
+ createBaseVNode("div", _hoisted_24, [
334
+ createBaseVNode("div", _hoisted_25, [
335
+ createBaseVNode("div", _hoisted_26, toDisplayString(unref(t)("settings.portmode")), 1),
336
+ createBaseVNode("div", _hoisted_27, toDisplayString(unref(t)("settings.portmodeDesc")), 1)
337
+ ]),
338
+ createBaseVNode("div", _hoisted_28, [
339
+ createVNode(_component_el_segmented, {
340
+ "model-value": unref(settings).settings.portMode,
341
+ size: "small",
342
+ options: portModeOptions.value,
343
+ "onUpdate:modelValue": onPortMode
344
+ }, null, 8, ["model-value", "options"])
345
+ ])
346
+ ]),
347
+ unref(settings).settings.portMode === "fixed" ? (openBlock(), createElementBlock("div", _hoisted_29, [
348
+ createBaseVNode("div", _hoisted_30, [
349
+ createBaseVNode("div", _hoisted_31, toDisplayString(unref(t)("settings.port")), 1),
350
+ createBaseVNode("div", _hoisted_32, toDisplayString(unref(t)("settings.portDesc")), 1)
351
+ ]),
352
+ createBaseVNode("div", _hoisted_33, [
353
+ createVNode(_component_el_input, {
354
+ "model-value": String(unref(settings).settings.port),
355
+ type: "number",
356
+ size: "small",
357
+ style: { "width": "110px" },
358
+ "onUpdate:modelValue": onPort
359
+ }, null, 8, ["model-value"])
360
+ ])
361
+ ])) : createCommentVNode("", true),
362
+ createBaseVNode("div", _hoisted_34, [
363
+ createBaseVNode("div", _hoisted_35, [
364
+ createBaseVNode("div", _hoisted_36, toDisplayString(unref(t)("settings.taskproof")), 1),
365
+ createBaseVNode("div", _hoisted_37, toDisplayString(unref(t)("settings.taskproofDesc")), 1)
366
+ ]),
367
+ createBaseVNode("div", _hoisted_38, [
368
+ createVNode(_component_el_input, {
369
+ "model-value": unref(settings).settings.taskproofPath,
370
+ size: "small",
371
+ placeholder: "/opt/homebrew/bin/taskproof",
372
+ "onUpdate:modelValue": onTaskproofPath
373
+ }, null, 8, ["model-value"])
374
+ ])
375
+ ]),
376
+ createBaseVNode("div", _hoisted_39, [
377
+ createBaseVNode("div", _hoisted_40, [
378
+ createBaseVNode("div", _hoisted_41, toDisplayString(unref(t)("settings.workspace")), 1),
379
+ createBaseVNode("div", _hoisted_42, toDisplayString(unref(t)("settings.workspaceDesc")), 1)
380
+ ]),
381
+ createBaseVNode("div", _hoisted_43, [
382
+ createBaseVNode("span", _hoisted_44, toDisplayString(workspaceLabel.value), 1)
383
+ ])
384
+ ]),
385
+ createBaseVNode("div", _hoisted_45, [
386
+ createBaseVNode("div", _hoisted_46, [
387
+ createBaseVNode("div", _hoisted_47, toDisplayString(unref(t)("settings.launch")), 1)
388
+ ]),
389
+ createBaseVNode("div", _hoisted_48, [
390
+ createVNode(_component_el_segmented, {
391
+ "model-value": unref(settings).settings.launch,
392
+ size: "small",
393
+ options: launchOptions.value,
394
+ "onUpdate:modelValue": onLaunch
395
+ }, null, 8, ["model-value", "options"])
396
+ ])
397
+ ])
398
+ ])
399
+ ])) : createCommentVNode("", true),
400
+ unref(hasHost) ? (openBlock(), createElementBlock("section", _hoisted_49, [
401
+ createBaseVNode("h4", null, toDisplayString(unref(t)("settings.diagnostics")), 1),
402
+ createBaseVNode("div", _hoisted_50, [
403
+ createBaseVNode("div", _hoisted_51, [
404
+ createBaseVNode("div", _hoisted_52, [
405
+ createBaseVNode("div", _hoisted_53, toDisplayString(unref(t)("settings.launchSource")), 1),
406
+ createBaseVNode("div", _hoisted_54, toDisplayString(unref(t)("settings.launchSourceDesc")), 1)
407
+ ]),
408
+ createBaseVNode("div", _hoisted_55, [
409
+ createBaseVNode("span", _hoisted_56, toDisplayString(launchSourceLabel.value), 1)
410
+ ])
411
+ ]),
412
+ createBaseVNode("div", _hoisted_57, [
413
+ createBaseVNode("div", _hoisted_58, [
414
+ createBaseVNode("div", _hoisted_59, toDisplayString(unref(t)("settings.launchArgv")), 1),
415
+ createBaseVNode("div", _hoisted_60, toDisplayString(unref(t)("settings.launchArgvDesc")), 1)
416
+ ]),
417
+ createBaseVNode("div", _hoisted_61, [
418
+ createBaseVNode("span", _hoisted_62, toDisplayString(launchArgv.value || "—"), 1)
419
+ ])
420
+ ]),
421
+ gitMissing.value ? (openBlock(), createElementBlock("div", _hoisted_63, [
422
+ createBaseVNode("div", _hoisted_64, [
423
+ createBaseVNode("div", _hoisted_65, toDisplayString(unref(t)("settings.git")), 1),
424
+ createBaseVNode("div", _hoisted_66, toDisplayString(unref(t)("settings.gitMissing")), 1)
425
+ ])
426
+ ])) : createCommentVNode("", true)
427
+ ])
428
+ ])) : createCommentVNode("", true),
429
+ unref(hasHost) ? (openBlock(), createElementBlock("section", _hoisted_67, [
430
+ createBaseVNode("h4", null, toDisplayString(unref(t)("settings.desktop")), 1),
431
+ createBaseVNode("div", _hoisted_68, [
432
+ createBaseVNode("div", _hoisted_69, [
433
+ createBaseVNode("div", _hoisted_70, [
434
+ createBaseVNode("div", _hoisted_71, toDisplayString(unref(t)("settings.notifyFail")), 1)
435
+ ]),
436
+ createBaseVNode("div", _hoisted_72, [
437
+ createVNode(_component_el_switch, {
438
+ "model-value": unref(settings).settings.notifyFail,
439
+ onChange: _cache[0] || (_cache[0] = ($event) => unref(settings).setFlag("notifyFail", $event))
440
+ }, null, 8, ["model-value"])
441
+ ])
442
+ ]),
443
+ createBaseVNode("div", _hoisted_73, [
444
+ createBaseVNode("div", _hoisted_74, [
445
+ createBaseVNode("div", _hoisted_75, toDisplayString(unref(t)("settings.notifyDone")), 1)
446
+ ]),
447
+ createBaseVNode("div", _hoisted_76, [
448
+ createVNode(_component_el_switch, {
449
+ "model-value": unref(settings).settings.notifyDone,
450
+ onChange: _cache[1] || (_cache[1] = ($event) => unref(settings).setFlag("notifyDone", $event))
451
+ }, null, 8, ["model-value"])
452
+ ])
453
+ ]),
454
+ createBaseVNode("div", _hoisted_77, [
455
+ createBaseVNode("div", _hoisted_78, [
456
+ createBaseVNode("div", _hoisted_79, toDisplayString(unref(t)("settings.dockBadge")), 1)
457
+ ]),
458
+ createBaseVNode("div", _hoisted_80, [
459
+ createVNode(_component_el_switch, {
460
+ "model-value": unref(settings).settings.dockBadge,
461
+ onChange: _cache[2] || (_cache[2] = ($event) => unref(settings).setFlag("dockBadge", $event))
462
+ }, null, 8, ["model-value"])
463
+ ])
464
+ ]),
465
+ createBaseVNode("div", _hoisted_81, [
466
+ createBaseVNode("div", _hoisted_82, [
467
+ createBaseVNode("div", _hoisted_83, toDisplayString(unref(t)("settings.tray")), 1),
468
+ createBaseVNode("div", _hoisted_84, toDisplayString(unref(t)("settings.trayDesc")), 1)
469
+ ]),
470
+ createBaseVNode("div", _hoisted_85, [
471
+ createVNode(_component_el_switch, {
472
+ "model-value": unref(settings).settings.tray,
473
+ onChange: _cache[3] || (_cache[3] = ($event) => unref(settings).setFlag("tray", $event))
474
+ }, null, 8, ["model-value"])
475
+ ])
476
+ ]),
477
+ createBaseVNode("div", _hoisted_86, [
478
+ createBaseVNode("div", _hoisted_87, [
479
+ createBaseVNode("div", _hoisted_88, toDisplayString(unref(t)("settings.autostart")), 1),
480
+ createBaseVNode("div", _hoisted_89, toDisplayString(unref(t)("settings.autostartDesc")), 1)
481
+ ]),
482
+ createBaseVNode("div", _hoisted_90, [
483
+ createVNode(_component_el_switch, {
484
+ "model-value": unref(settings).settings.autostart,
485
+ onChange: _cache[4] || (_cache[4] = ($event) => unref(settings).setFlag("autostart", $event))
486
+ }, null, 8, ["model-value"])
487
+ ])
488
+ ])
489
+ ])
490
+ ])) : createCommentVNode("", true),
491
+ createBaseVNode("section", _hoisted_91, [
492
+ createBaseVNode("h4", null, toDisplayString(unref(t)("settings.about")), 1),
493
+ createBaseVNode("div", _hoisted_92, [
494
+ createBaseVNode("div", _hoisted_93, [
495
+ createBaseVNode("div", _hoisted_94, [
496
+ createBaseVNode("div", _hoisted_95, toDisplayString(unref(t)("settings.aboutTaskproof")), 1),
497
+ createBaseVNode("div", _hoisted_96, toDisplayString(unref(t)("settings.aboutTaskproofDesc")), 1)
498
+ ]),
499
+ createBaseVNode("div", _hoisted_97, [
500
+ createVNode(_component_el_button, {
501
+ size: "small",
502
+ onClick: unref(openAbout)
503
+ }, {
504
+ default: withCtx(() => [
505
+ createTextVNode(toDisplayString(unref(t)("about.open")), 1)
506
+ ]),
507
+ _: 1
508
+ }, 8, ["onClick"])
509
+ ])
510
+ ]),
511
+ createBaseVNode("div", _hoisted_98, [
512
+ createBaseVNode("div", _hoisted_99, [
513
+ createBaseVNode("div", _hoisted_100, toDisplayString(unref(t)("settings.version")), 1)
514
+ ]),
515
+ createBaseVNode("div", _hoisted_101, [
516
+ createBaseVNode("span", _hoisted_102, toDisplayString(unref(settings).version || unref(board).version || "0.1.0"), 1)
517
+ ])
518
+ ]),
519
+ createBaseVNode("div", _hoisted_103, [
520
+ createBaseVNode("div", _hoisted_104, [
521
+ createBaseVNode("div", _hoisted_105, toDisplayString(unref(t)("settings.adapters")), 1),
522
+ createBaseVNode("div", _hoisted_106, toDisplayString(unref(t)("settings.adaptersDesc")), 1)
523
+ ]),
524
+ createBaseVNode("div", _hoisted_107, [
525
+ adapters.value && adapters.value.length ? (openBlock(), createElementBlock("div", _hoisted_108, [
526
+ (openBlock(true), createElementBlock(Fragment, null, renderList(adapters.value, (a) => {
527
+ return openBlock(), createElementBlock("span", {
528
+ key: a.name,
529
+ class: normalizeClass(["alamp", { bad: !a.installed }]),
530
+ title: a.detail
531
+ }, [
532
+ _cache[5] || (_cache[5] = createBaseVNode("i", null, null, -1)),
533
+ createTextVNode(toDisplayString(a.name), 1)
534
+ ], 10, _hoisted_109);
535
+ }), 128))
536
+ ])) : (openBlock(), createElementBlock("span", _hoisted_110, "—"))
537
+ ])
538
+ ]),
539
+ createBaseVNode("div", _hoisted_111, [
540
+ createBaseVNode("div", _hoisted_112, [
541
+ createBaseVNode("div", _hoisted_113, toDisplayString(unref(t)("settings.contract")), 1),
542
+ createBaseVNode("div", _hoisted_114, toDisplayString(contractLine.value), 1)
543
+ ]),
544
+ createBaseVNode("div", _hoisted_115, [
545
+ createBaseVNode("span", _hoisted_116, toDisplayString(unref(STATUS_IDS).length) + " " + toDisplayString(unref(t)("status.label")) + " · " + toDisplayString(unref(VERIFY_KINDS).join(" / ")), 1)
546
+ ])
547
+ ]),
548
+ createBaseVNode("div", _hoisted_117, [
549
+ createBaseVNode("div", _hoisted_118, [
550
+ createBaseVNode("div", _hoisted_119, toDisplayString(unref(t)("settings.limits")), 1),
551
+ createBaseVNode("div", _hoisted_120, toDisplayString(unref(t)("settings.limitsDesc")), 1)
552
+ ]),
553
+ createBaseVNode("div", _hoisted_121, [
554
+ createBaseVNode("span", _hoisted_122, toDisplayString(capLine.value), 1)
555
+ ])
556
+ ]),
557
+ createBaseVNode("div", _hoisted_123, [
558
+ createBaseVNode("div", _hoisted_124, [
559
+ createBaseVNode("div", _hoisted_125, toDisplayString(unref(t)("settings.registry")), 1),
560
+ createBaseVNode("div", _hoisted_126, toDisplayString(registryPath.value), 1)
561
+ ]),
562
+ createBaseVNode("div", _hoisted_127, [
563
+ createVNode(_component_el_button, {
564
+ size: "small",
565
+ onClick: openRegistry
566
+ }, {
567
+ default: withCtx(() => [
568
+ createTextVNode(toDisplayString(unref(t)("settings.openRegistry")), 1)
569
+ ]),
570
+ _: 1
571
+ })
572
+ ])
573
+ ])
574
+ ])
575
+ ])
576
+ ])
577
+ ])
578
+ ]);
579
+ };
580
+ }
581
+ });
582
+ const SettingsView = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-9b13aa18"]]);
583
+ export {
584
+ SettingsView as default
585
+ };
@@ -0,0 +1,19 @@
1
+
2
+ .settings-view[data-v-9b13aa18] {
3
+ display: flex;
4
+ flex-direction: column;
5
+ flex: 1;
6
+ min-height: 0;
7
+ }
8
+ /* The full argv wraps instead of clipping, and stays selectable so the user can
9
+ copy it and run the service by hand -- the project's checkable style. */
10
+ .argvcopy[data-v-9b13aa18] {
11
+ text-align: right;
12
+ white-space: normal;
13
+ overflow-wrap: anywhere;
14
+ user-select: text;
15
+ }
16
+ /* A missing git is a notice, not an alarm: amber, never the failure red. */
17
+ .gitmissing[data-v-9b13aa18] {
18
+ color: var(--c-timeout);
19
+ }