inspect-ai 0.3.92__py3-none-any.whl → 0.3.94__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 (149) hide show
  1. inspect_ai/_cli/eval.py +27 -0
  2. inspect_ai/_display/textual/widgets/samples.py +3 -3
  3. inspect_ai/_display/textual/widgets/transcript.py +3 -29
  4. inspect_ai/_eval/eval.py +19 -2
  5. inspect_ai/_eval/evalset.py +4 -1
  6. inspect_ai/_eval/run.py +41 -0
  7. inspect_ai/_eval/task/generate.py +38 -44
  8. inspect_ai/_eval/task/log.py +26 -28
  9. inspect_ai/_eval/task/run.py +23 -27
  10. inspect_ai/_util/answer.py +26 -0
  11. inspect_ai/_util/constants.py +0 -1
  12. inspect_ai/_util/local_server.py +398 -0
  13. inspect_ai/_util/working.py +10 -4
  14. inspect_ai/_view/www/dist/assets/index.css +173 -159
  15. inspect_ai/_view/www/dist/assets/index.js +1417 -1142
  16. inspect_ai/_view/www/log-schema.json +379 -3
  17. inspect_ai/_view/www/package.json +1 -1
  18. inspect_ai/_view/www/src/@types/log.d.ts +93 -14
  19. inspect_ai/_view/www/src/app/content/MetaDataGrid.tsx +2 -2
  20. inspect_ai/_view/www/src/app/content/MetaDataView.module.css +1 -1
  21. inspect_ai/_view/www/src/app/content/MetadataGrid.module.css +1 -1
  22. inspect_ai/_view/www/src/app/content/RenderedContent.tsx +1 -1
  23. inspect_ai/_view/www/src/app/log-view/LogView.tsx +11 -0
  24. inspect_ai/_view/www/src/app/log-view/tabs/InfoTab.tsx +2 -9
  25. inspect_ai/_view/www/src/app/log-view/tabs/ModelsTab.tsx +51 -0
  26. inspect_ai/_view/www/src/app/log-view/tabs/TaskTab.module.css +6 -0
  27. inspect_ai/_view/www/src/app/log-view/tabs/TaskTab.tsx +143 -0
  28. inspect_ai/_view/www/src/app/plan/ModelCard.tsx +1 -2
  29. inspect_ai/_view/www/src/app/plan/PlanCard.tsx +29 -7
  30. inspect_ai/_view/www/src/app/plan/PlanDetailView.module.css +1 -1
  31. inspect_ai/_view/www/src/app/plan/PlanDetailView.tsx +1 -198
  32. inspect_ai/_view/www/src/app/samples/descriptor/score/NumericScoreDescriptor.tsx +2 -1
  33. inspect_ai/_view/www/src/app/samples/transcript/SandboxEventView.module.css +2 -1
  34. inspect_ai/_view/www/src/app/samples/transcript/SpanEventView.tsx +174 -0
  35. inspect_ai/_view/www/src/app/samples/transcript/ToolEventView.tsx +8 -8
  36. inspect_ai/_view/www/src/app/samples/transcript/TranscriptView.tsx +12 -2
  37. inspect_ai/_view/www/src/app/samples/transcript/TranscriptVirtualListComponent.module.css +1 -1
  38. inspect_ai/_view/www/src/app/samples/transcript/event/EventPanel.tsx +0 -3
  39. inspect_ai/_view/www/src/app/samples/transcript/transform/fixups.ts +87 -25
  40. inspect_ai/_view/www/src/app/samples/transcript/transform/treeify.ts +229 -17
  41. inspect_ai/_view/www/src/app/samples/transcript/transform/utils.ts +11 -0
  42. inspect_ai/_view/www/src/app/samples/transcript/types.ts +5 -1
  43. inspect_ai/_view/www/src/app/usage/ModelUsagePanel.tsx +3 -2
  44. inspect_ai/_view/www/src/app/usage/TokenTable.module.css +4 -1
  45. inspect_ai/_view/www/src/app/usage/TokenTable.tsx +2 -2
  46. inspect_ai/_view/www/src/app/usage/UsageCard.module.css +8 -3
  47. inspect_ai/_view/www/src/app/usage/UsageCard.tsx +1 -35
  48. inspect_ai/_view/www/src/components/Card.css +0 -1
  49. inspect_ai/_view/www/src/constants.ts +2 -0
  50. inspect_ai/_view/www/src/utils/numeric.ts +17 -0
  51. inspect_ai/agent/_agent.py +3 -3
  52. inspect_ai/agent/_as_solver.py +22 -12
  53. inspect_ai/agent/_as_tool.py +20 -6
  54. inspect_ai/agent/_handoff.py +12 -1
  55. inspect_ai/agent/_react.py +4 -3
  56. inspect_ai/agent/_run.py +16 -3
  57. inspect_ai/agent/_types.py +9 -0
  58. inspect_ai/dataset/_dataset.py +6 -3
  59. inspect_ai/log/__init__.py +14 -0
  60. inspect_ai/log/_convert.py +4 -9
  61. inspect_ai/log/_file.py +56 -0
  62. inspect_ai/log/_log.py +99 -0
  63. inspect_ai/log/_recorders/__init__.py +2 -0
  64. inspect_ai/log/_recorders/buffer/database.py +12 -11
  65. inspect_ai/log/_recorders/buffer/filestore.py +2 -2
  66. inspect_ai/log/_recorders/buffer/types.py +2 -2
  67. inspect_ai/log/_recorders/eval.py +20 -65
  68. inspect_ai/log/_recorders/file.py +28 -6
  69. inspect_ai/log/_recorders/recorder.py +7 -0
  70. inspect_ai/log/_recorders/types.py +1 -23
  71. inspect_ai/log/_samples.py +14 -25
  72. inspect_ai/log/_transcript.py +84 -36
  73. inspect_ai/log/_tree.py +118 -0
  74. inspect_ai/log/_util.py +52 -0
  75. inspect_ai/model/__init__.py +5 -1
  76. inspect_ai/model/_call_tools.py +72 -44
  77. inspect_ai/model/_generate_config.py +14 -8
  78. inspect_ai/model/_model.py +66 -88
  79. inspect_ai/model/_model_output.py +25 -0
  80. inspect_ai/model/_openai.py +2 -0
  81. inspect_ai/model/_providers/anthropic.py +13 -23
  82. inspect_ai/model/_providers/hf.py +27 -1
  83. inspect_ai/model/_providers/openai_o1.py +8 -2
  84. inspect_ai/model/_providers/providers.py +18 -4
  85. inspect_ai/model/_providers/sglang.py +247 -0
  86. inspect_ai/model/_providers/vllm.py +211 -400
  87. inspect_ai/scorer/_choice.py +1 -2
  88. inspect_ai/solver/__init__.py +7 -2
  89. inspect_ai/solver/_basic_agent.py +3 -10
  90. inspect_ai/solver/_chain.py +1 -1
  91. inspect_ai/solver/_fork.py +1 -1
  92. inspect_ai/solver/_multiple_choice.py +5 -22
  93. inspect_ai/solver/_plan.py +2 -2
  94. inspect_ai/solver/_task_state.py +26 -88
  95. inspect_ai/solver/_transcript.py +6 -7
  96. inspect_ai/tool/_json_rpc_helpers.py +45 -17
  97. inspect_ai/tool/_mcp/_mcp.py +8 -5
  98. inspect_ai/tool/_mcp/_sandbox.py +8 -2
  99. inspect_ai/tool/_mcp/server.py +3 -1
  100. inspect_ai/tool/_tool_call.py +4 -1
  101. inspect_ai/tool/_tool_support_helpers.py +51 -12
  102. inspect_ai/tool/_tools/_bash_session.py +190 -68
  103. inspect_ai/tool/_tools/_computer/_computer.py +25 -1
  104. inspect_ai/tool/_tools/_execute.py +4 -1
  105. inspect_ai/tool/_tools/_text_editor.py +4 -3
  106. inspect_ai/tool/_tools/_web_browser/_web_browser.py +10 -3
  107. inspect_ai/util/__init__.py +16 -0
  108. inspect_ai/util/_anyio.py +11 -0
  109. inspect_ai/util/_collect.py +50 -0
  110. inspect_ai/util/_limit.py +393 -0
  111. inspect_ai/util/_limited_conversation.py +57 -0
  112. inspect_ai/util/_span.py +58 -0
  113. inspect_ai/util/_subtask.py +27 -42
  114. {inspect_ai-0.3.92.dist-info → inspect_ai-0.3.94.dist-info}/METADATA +1 -1
  115. {inspect_ai-0.3.92.dist-info → inspect_ai-0.3.94.dist-info}/RECORD +120 -134
  116. {inspect_ai-0.3.92.dist-info → inspect_ai-0.3.94.dist-info}/WHEEL +1 -1
  117. inspect_ai/_display/core/group.py +0 -79
  118. inspect_ai/solver/_limit.py +0 -39
  119. inspect_ai/tool/_tools/_computer/_resources/Dockerfile +0 -102
  120. inspect_ai/tool/_tools/_computer/_resources/README.md +0 -30
  121. inspect_ai/tool/_tools/_computer/_resources/entrypoint/entrypoint.sh +0 -18
  122. inspect_ai/tool/_tools/_computer/_resources/entrypoint/novnc_startup.sh +0 -20
  123. inspect_ai/tool/_tools/_computer/_resources/entrypoint/x11vnc_startup.sh +0 -48
  124. inspect_ai/tool/_tools/_computer/_resources/entrypoint/xfce_startup.sh +0 -13
  125. inspect_ai/tool/_tools/_computer/_resources/entrypoint/xvfb_startup.sh +0 -48
  126. inspect_ai/tool/_tools/_computer/_resources/image_home_dir/.config/Code/User/globalStorage/state.vscdb +0 -0
  127. inspect_ai/tool/_tools/_computer/_resources/image_home_dir/.config/Code/User/settings.json +0 -9
  128. inspect_ai/tool/_tools/_computer/_resources/image_home_dir/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml +0 -61
  129. inspect_ai/tool/_tools/_computer/_resources/image_home_dir/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-screensaver.xml +0 -10
  130. inspect_ai/tool/_tools/_computer/_resources/image_home_dir/.config/xfce4/xfconf/xfce-perchannel-xml/xfwm4.xml +0 -91
  131. inspect_ai/tool/_tools/_computer/_resources/image_home_dir/Desktop/Firefox Web Browser.desktop +0 -10
  132. inspect_ai/tool/_tools/_computer/_resources/image_home_dir/Desktop/Terminal.desktop +0 -10
  133. inspect_ai/tool/_tools/_computer/_resources/image_home_dir/Desktop/Visual Studio Code.desktop +0 -10
  134. inspect_ai/tool/_tools/_computer/_resources/tool/.pylintrc +0 -8
  135. inspect_ai/tool/_tools/_computer/_resources/tool/.vscode/settings.json +0 -12
  136. inspect_ai/tool/_tools/_computer/_resources/tool/_args.py +0 -78
  137. inspect_ai/tool/_tools/_computer/_resources/tool/_constants.py +0 -22
  138. inspect_ai/tool/_tools/_computer/_resources/tool/_logger.py +0 -22
  139. inspect_ai/tool/_tools/_computer/_resources/tool/_run.py +0 -42
  140. inspect_ai/tool/_tools/_computer/_resources/tool/_tool_result.py +0 -33
  141. inspect_ai/tool/_tools/_computer/_resources/tool/_x11_client.py +0 -341
  142. inspect_ai/tool/_tools/_computer/_resources/tool/computer_tool.py +0 -141
  143. inspect_ai/tool/_tools/_computer/_resources/tool/pyproject.toml +0 -65
  144. inspect_ai/tool/_tools/_computer/_resources/tool/requirements.txt +0 -0
  145. inspect_ai/tool/_tools/_computer/test_args.py +0 -151
  146. /inspect_ai/{tool/_tools/_computer/_resources/tool/__init__.py → _view/www/src/app/log-view/tabs/ModelsTab.module.css} +0 -0
  147. {inspect_ai-0.3.92.dist-info → inspect_ai-0.3.94.dist-info}/entry_points.txt +0 -0
  148. {inspect_ai-0.3.92.dist-info → inspect_ai-0.3.94.dist-info}/licenses/LICENSE +0 -0
  149. {inspect_ai-0.3.92.dist-info → inspect_ai-0.3.94.dist-info}/top_level.txt +0 -0
@@ -1,79 +0,0 @@
1
- from dataclasses import dataclass
2
- from typing import Sequence
3
-
4
- from inspect_ai.log._transcript import Event, StepEvent, SubtaskEvent, ToolEvent
5
-
6
-
7
- @dataclass
8
- class EventGroup:
9
- """Event and (optionally) its embedded event groups.
10
-
11
- - Some events (e.g. SampleInitEvent, LogEvent) have no embedded event groups.
12
- - Some events (e.g. ToolEvent, SubtaskEvent) contain lists of event groups.
13
- - StepEvent has an implicit of event groups based on its begin/end instances.
14
- """
15
-
16
- event: Event
17
- level: int
18
- groups: list["EventGroup"] | None = None
19
-
20
-
21
- def group_events(events: Sequence[Event], level: int = 1) -> list[EventGroup]:
22
- """Transform ordinary list of events into list of event groups."""
23
- # groups are either plain events (some of which can have sub-events)
24
- # and higher level steps (e.g. solvers/scorers) that contain events
25
- event_groups: list[EventGroup] = []
26
-
27
- # track stack of active steps
28
- active_steps: list[tuple[StepEvent, list[EventGroup]]] = []
29
-
30
- # iterate though events
31
- for event in events:
32
- # manage step events
33
- if isinstance(event, StepEvent):
34
- if event.action == "begin":
35
- active_steps.append((event, []))
36
- elif event.action == "end":
37
- begin_step, step_groups = active_steps.pop()
38
- target_group = (
39
- active_steps[-1][1] if len(active_steps) else event_groups
40
- )
41
- target_group.append(
42
- EventGroup(
43
- event=begin_step,
44
- level=level + len(active_steps),
45
- groups=step_groups,
46
- )
47
- )
48
-
49
- # other events
50
- else:
51
- # target level depends on whether we are appending to a set
52
- target_level = level + len(active_steps)
53
-
54
- # tool and subtask events have their own nested event lists
55
- if isinstance(event, ToolEvent | SubtaskEvent):
56
- group = EventGroup(
57
- event=event,
58
- groups=group_events(event.events, level=target_level + 1),
59
- level=target_level,
60
- )
61
- else:
62
- group = EventGroup(event=event, level=target_level)
63
-
64
- # add to active step if we have one
65
- if len(active_steps) > 0:
66
- active_steps[-1][1].append(group)
67
- # otherwise just add to root list
68
- else:
69
- event_groups.append(group)
70
-
71
- # if there are active steps alive then collect them (an error
72
- # may have prevented them from having end steps)
73
- while len(active_steps) > 0:
74
- begin_step, step_groups = active_steps.pop()
75
- event_groups.append(
76
- EventGroup(event=begin_step, level=level, groups=step_groups)
77
- )
78
-
79
- return event_groups
@@ -1,39 +0,0 @@
1
- from typing import Literal
2
-
3
- from ._task_state import TaskState
4
-
5
-
6
- class SampleLimitExceededError(Exception):
7
- """Exception raised when a sample limit is exceeded.
8
-
9
- Args:
10
- type: Type of limit exceeded.
11
- value: Value compared to
12
- limit: Limit applied.
13
- message (str | None): Optional. Human readable message.
14
- """
15
-
16
- def __init__(
17
- self,
18
- type: Literal["message", "time", "working", "token", "operator", "custom"],
19
- *,
20
- value: int,
21
- limit: int,
22
- message: str | None = None,
23
- state: TaskState | None = None,
24
- ) -> None:
25
- self.type = type
26
- self.value = value
27
- self.limit = limit
28
- self.message = f"Exceeded {type} limit: {limit:,}"
29
- self.state = state
30
- super().__init__(message)
31
-
32
- def with_state(self, state: TaskState) -> "SampleLimitExceededError":
33
- return SampleLimitExceededError(
34
- self.type,
35
- value=self.value,
36
- limit=self.limit,
37
- message=self.message,
38
- state=state,
39
- )
@@ -1,102 +0,0 @@
1
- FROM docker.io/ubuntu:22.04
2
-
3
- ENV DEBIAN_FRONTEND=noninteractive
4
- ENV DEBIAN_PRIORITY=high
5
-
6
- # Core/system layer
7
- RUN apt-get update && \
8
- apt-get -y upgrade && \
9
- apt-get -y install \
10
- # A virtual framebuffer for running GUI applications without a physical display.
11
- xvfb \
12
- # A lightweight desktop environment for UNIX-like operating systems.
13
- xfce4 \
14
- # The terminal emulator for the xfce4 desktop environment.
15
- xfce4-terminal\
16
- # A VNC server for sharing X11 desktops.
17
- x11vnc \
18
- # A web based VNC client
19
- novnc \
20
- # A WebSocket to TCP proxy/bridge for noVNC
21
- websockify \
22
- # The Python programming language interpreter.
23
- python3 \
24
- # The package installer for Python.
25
- python3-pip \
26
- # A command-line tool for automating X11 applications (e.g., simulating keyboard/mouse inputs).
27
- xdotool \
28
- # A command-line tool for taking screenshots.
29
- scrot \
30
- # A suite for image manipulation — needed for scaling images.
31
- imagemagick && \
32
- apt-get clean
33
-
34
- # Userland apt-get'able apps
35
- RUN apt-get install -y --no-install-recommends \
36
- # A calculator application.
37
- galculator && \
38
- apt-get clean
39
-
40
- # install Firefox
41
- RUN apt-get install -y software-properties-common && \
42
- add-apt-repository ppa:mozillateam/ppa && \
43
- apt-get update && \
44
- apt-get install -y --no-install-recommends firefox-esr && \
45
- apt-get clean
46
-
47
- # install VS Code
48
- RUN apt-get install -y \
49
- gpg \
50
- wget \
51
- apt-transport-https \
52
- software-properties-common && \
53
- wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg && \
54
- install -D -o root -g root -m 644 packages.microsoft.gpg /etc/apt/keyrings/packages.microsoft.gpg && \
55
- sh -c 'echo "deb [arch=amd64,arm64 signed-by=/etc/apt/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main" > /etc/apt/sources.list.d/vscode.list' && \
56
- apt-get update && \
57
- apt-get install -y code && \
58
- apt-get clean
59
-
60
- # configure noVNC
61
- RUN ln -s /usr/share/novnc/vnc.html /usr/share/novnc/index.html
62
-
63
- # configure python alias
64
- RUN ln -s /usr/bin/python3 /usr/bin/python
65
-
66
-
67
- # We copy requirements.txt by itself so that changes to the scripts will be in a later layer
68
- # and we only pip install if requirements.txt changes
69
- COPY tool/requirements.txt /opt/inspect/tool/requirements.txt
70
- RUN cd /opt/inspect/tool && pip3 install --no-cache-dir -r requirements.txt
71
-
72
- COPY tool/ /opt/inspect/tool
73
- COPY entrypoint/ /opt/inspect/entrypoint
74
- RUN chmod -R 755 /opt/inspect
75
-
76
- # setup user
77
- ENV USERNAME=user
78
- ENV HOME=/home/$USERNAME
79
- RUN useradd -m -s /bin/bash -d $HOME $USERNAME
80
- RUN echo "${USERNAME} ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
81
- USER ${USERNAME}
82
- WORKDIR $HOME
83
- ADD --chown=$USERNAME:$USERNAME image_home_dir/ $HOME
84
-
85
- # configure Firefox to skip all 'first run' UI
86
- RUN mkdir -p $HOME/.mozilla/firefox-esr/profile.default && \
87
- echo 'user_pref("browser.startup.homepage_override.mstone", "ignore");' >> $HOME/.mozilla/firefox-esr/profile.default/user.js && \
88
- echo 'user_pref("browser.aboutwelcome.enabled", false);' >> $HOME/.mozilla/firefox-esr/profile.default/user.js && \
89
- echo 'user_pref("datareporting.policy.firstRunURL", "");' >> $HOME/.mozilla/firefox-esr/profile.default/user.js
90
-
91
- EXPOSE 5900
92
- EXPOSE 6080
93
-
94
- ARG DISPLAY_NUM=1
95
- ARG WIDTH=1920
96
- ARG HEIGHT=1080
97
- ENV DISPLAY_NUM=$DISPLAY_NUM
98
- ENV DISPLAY=:${DISPLAY_NUM}
99
- ENV HEIGHT=$HEIGHT
100
- ENV WIDTH=$WIDTH
101
-
102
- ENTRYPOINT [ "/opt/inspect/entrypoint/entrypoint.sh" ]
@@ -1,30 +0,0 @@
1
- # About This Image
2
-
3
- This image was inspired by Anthropic's Computer Use Demo [here](https://github.com/anthropics/anthropic-quickstarts/tree/main/computer-use-demo/image).
4
-
5
- Its goal is to provide the minimum infrastructure to support the use of Inspect's `computer_tool` to interact with the computer via X11 and `xdotool`, while also providing observability and interaction via VNC and noVNC.
6
-
7
- The image extends this minimal functionality by adding a few basic applications — VS Code, Firefox, XPaint, and galculator.
8
-
9
- ## Entrypoint Directory
10
-
11
- 1. **Xvfb (X Virtual Framebuffer)**
12
- - **Script:** `xvfb_startup.sh`
13
- - **Description:** Xvfb is a display server that implements the X11 display server protocol. It runs in memory and does not require a physical display, useful for running graphical applications in a headless environment.
14
-
15
- 1. **xfce4**
16
- - **Script:** `xfce4_startup.sh`
17
- - **Description:** xfce4 is a lightweight desktop environment for UNIX-like operating systems. It aims to be fast, low on system resources, and user-friendly.
18
-
19
- 1. **x11vnc**
20
- - **Script:** `x11vnc_startup.sh`
21
- - **Description:** x11vnc is a VNC server that allows remote access to the X11 display. It enables users to connect to the virtual display environment from a remote machine using a VNC client.
22
-
23
- 1. **noVNC**
24
- - **Script:** `novnc_startup.sh`
25
- - **Description:** noVNC is a VNC client that runs in a web browser. It allows users to access the virtual display environment through a web interface without needing a separate VNC client application.
26
-
27
- ## Desktop Directory
28
-
29
- The `Desktop` directory contains launchers for VS Code, Firefox and XPaint.
30
-
@@ -1,18 +0,0 @@
1
- #!/bin/bash
2
- set -e
3
-
4
- # remove marker files
5
- rm -f /tmp/.X${DISPLAY_NUM}-lock
6
- rm -f /tmp/xfce_started
7
-
8
- /opt/inspect/entrypoint/xvfb_startup.sh
9
- /opt/inspect/entrypoint/xfce_startup.sh
10
- /opt/inspect/entrypoint/x11vnc_startup.sh
11
- /opt/inspect/entrypoint/novnc_startup.sh
12
-
13
- # Run CMD if provided
14
- echo "Executing CMD from derived Dockerfile: $@"
15
- exec "$@"
16
-
17
- # Keep the container running
18
- tail -f /dev/null
@@ -1,20 +0,0 @@
1
- #!/bin/bash
2
- echo "starting noVNC"
3
-
4
- # Start noVNC with explicit websocket settings
5
- websockify \
6
- --web=/usr/share/novnc/ \
7
- 6080 localhost:5900 \
8
- > /tmp/novnc.log 2>&1 &
9
-
10
- # Wait for noVNC to start
11
- timeout=10
12
- while [ $timeout -gt 0 ]; do
13
- if netstat -tuln | grep -q ":6080 "; then
14
- break
15
- fi
16
- sleep 1
17
- ((timeout--))
18
- done
19
-
20
- echo "noVNC started successfully"
@@ -1,48 +0,0 @@
1
- #!/bin/bash
2
- echo "starting vnc"
3
-
4
- (x11vnc -display $DISPLAY \
5
- -forever \
6
- -shared \
7
- -wait 50 \
8
- -multiptr \
9
- -cursor arrow \
10
- -rfbport 5900 \
11
- -nopw \
12
- 2>/tmp/x11vnc_stderr.log) &
13
-
14
- x11vnc_pid=$!
15
-
16
- # Wait for x11vnc to start
17
- timeout=10
18
- while [ $timeout -gt 0 ]; do
19
- if netstat -tuln | grep -q ":5900 "; then
20
- break
21
- fi
22
- sleep 1
23
- ((timeout--))
24
- done
25
-
26
- if [ $timeout -eq 0 ]; then
27
- echo "x11vnc failed to start, stderr output:" >&2
28
- cat /tmp/x11vnc_stderr.log >&2
29
- exit 1
30
- fi
31
-
32
- : > /tmp/x11vnc_stderr.log
33
-
34
- # Monitor x11vnc process in the background
35
- (
36
- while true; do
37
- if ! kill -0 $x11vnc_pid 2>/dev/null; then
38
- echo "x11vnc process crashed, restarting..." >&2
39
- if [ -f /tmp/x11vnc_stderr.log ]; then
40
- echo "x11vnc stderr output:" >&2
41
- cat /tmp/x11vnc_stderr.log >&2
42
- rm /tmp/x11vnc_stderr.log
43
- fi
44
- exec "$0"
45
- fi
46
- sleep 5
47
- done
48
- ) &
@@ -1,13 +0,0 @@
1
- #!/bin/bash
2
-
3
- echo "starting XFCE4"
4
- startxfce4 &
5
-
6
- while ! pgrep -x "xfce4-session" > /dev/null; do
7
- echo "Waiting for XFCE4 to start..."
8
- sleep 1
9
- done
10
-
11
- echo "XFCE4 is fully started!"
12
- touch /tmp/xfce_started
13
-
@@ -1,48 +0,0 @@
1
- #!/bin/bash
2
- set -e # Exit on error
3
-
4
- DPI=96
5
- RES_AND_DEPTH=${WIDTH}x${HEIGHT}x24
6
-
7
- # Function to check if Xvfb is already running
8
- check_xvfb_running() {
9
- if [ -e /tmp/.X${DISPLAY_NUM}-lock ]; then
10
- return 0 # Xvfb is already running
11
- else
12
- return 1 # Xvfb is not running
13
- fi
14
- }
15
-
16
- # Function to check if Xvfb is ready
17
- wait_for_xvfb() {
18
- local timeout=10
19
- local start_time=$(date +%s)
20
- while ! xdpyinfo >/dev/null 2>&1; do
21
- if [ $(($(date +%s) - start_time)) -gt $timeout ]; then
22
- echo "Xvfb failed to start within $timeout seconds" >&2
23
- return 1
24
- fi
25
- sleep 0.1
26
- done
27
- return 0
28
- }
29
-
30
- # Check if Xvfb is already running
31
- if check_xvfb_running; then
32
- echo "Xvfb is already running on display ${DISPLAY}"
33
- exit 0
34
- fi
35
-
36
- # Start Xvfb
37
- Xvfb $DISPLAY -ac -screen 0 $RES_AND_DEPTH -retro -dpi $DPI -nolisten tcp -nolisten unix &
38
- XVFB_PID=$!
39
-
40
- # Wait for Xvfb to start
41
- if wait_for_xvfb; then
42
- echo "Xvfb started successfully on display ${DISPLAY}"
43
- echo "Xvfb PID: $XVFB_PID"
44
- else
45
- echo "Xvfb failed to start"
46
- kill $XVFB_PID
47
- exit 1
48
- fi
@@ -1,9 +0,0 @@
1
- {
2
- "security.workspace.trust.enabled": false,
3
- "update.showReleaseNotes": false,
4
- "editor.cursorBlinking": "solid",
5
- "editor.cursorWidth": 3,
6
- "workbench.colorCustomizations": {
7
- "editorCursor.foreground": "#FF0000"
8
- }
9
- }
@@ -1,61 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
-
3
- <channel name="xfce4-panel" version="1.0">
4
- <property name="configver" type="int" value="2"/>
5
- <property name="panels" type="array">
6
- <value type="int" value="1"/>
7
- <property name="dark-mode" type="bool" value="true"/>
8
- <property name="panel-1" type="empty">
9
- <property name="position" type="string" value="p=6;x=0;y=0"/>
10
- <property name="length" type="uint" value="100"/>
11
- <property name="position-locked" type="bool" value="true"/>
12
- <property name="icon-size" type="uint" value="16"/>
13
- <property name="size" type="uint" value="26"/>
14
- <property name="plugin-ids" type="array">
15
- <value type="int" value="1"/>
16
- <value type="int" value="2"/>
17
- <value type="int" value="3"/>
18
- <value type="int" value="4"/>
19
- <value type="int" value="5"/>
20
- <value type="int" value="6"/>
21
- <value type="int" value="8"/>
22
- <value type="int" value="10"/>
23
- <value type="int" value="11"/>
24
- <value type="int" value="12"/>
25
- <value type="int" value="13"/>
26
- <value type="int" value="14"/>
27
- </property>
28
- </property>
29
- </property>
30
- <property name="plugins" type="empty">
31
- <property name="plugin-1" type="string" value="applicationsmenu"/>
32
- <property name="plugin-2" type="string" value="tasklist">
33
- <property name="grouping" type="uint" value="1"/>
34
- </property>
35
- <property name="plugin-3" type="string" value="separator">
36
- <property name="expand" type="bool" value="true"/>
37
- <property name="style" type="uint" value="0"/>
38
- </property>
39
- <property name="plugin-4" type="string" value="pager"/>
40
- <property name="plugin-5" type="string" value="separator">
41
- <property name="style" type="uint" value="0"/>
42
- </property>
43
- <property name="plugin-6" type="string" value="systray">
44
- <property name="square-icons" type="bool" value="true"/>
45
- </property>
46
- <property name="plugin-8" type="string" value="pulseaudio">
47
- <property name="enable-keyboard-shortcuts" type="bool" value="true"/>
48
- <property name="show-notifications" type="bool" value="true"/>
49
- </property>
50
- <property name="plugin-9" type="string" value="power-manager-plugin"/>
51
- <property name="plugin-10" type="string" value="notification-plugin"/>
52
- <property name="plugin-11" type="string" value="separator">
53
- <property name="style" type="uint" value="0"/>
54
- </property>
55
- <property name="plugin-12" type="string" value="clock"/>
56
- <property name="plugin-13" type="string" value="separator">
57
- <property name="style" type="uint" value="0"/>
58
- </property>
59
- <property name="plugin-14" type="string" value="actions"/>
60
- </property>
61
- </channel>
@@ -1,10 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
-
3
- <channel name="xfce4-screensaver" version="1.0">
4
- <property name="saver" type="empty">
5
- <property name="mode" type="int" value="0" />
6
- </property>
7
- <property name="lock" type="empty">
8
- <property name="enabled" type="bool" value="false" />
9
- </property>
10
- </channel>
@@ -1,91 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
-
3
- <channel name="xfwm4" version="1.0">
4
- <property name="general" type="empty">
5
- <property name="activate_action" type="string" value="bring" />
6
- <property name="borderless_maximize" type="bool" value="true" />
7
- <property name="box_move" type="bool" value="false" />
8
- <property name="box_resize" type="bool" value="false" />
9
- <property name="button_layout" type="string" value="O|SHMC" />
10
- <property name="button_offset" type="int" value="0" />
11
- <property name="button_spacing" type="int" value="0" />
12
- <property name="click_to_focus" type="bool" value="true" />
13
- <property name="cycle_apps_only" type="bool" value="false" />
14
- <property name="cycle_draw_frame" type="bool" value="true" />
15
- <property name="cycle_raise" type="bool" value="false" />
16
- <property name="cycle_hidden" type="bool" value="true" />
17
- <property name="cycle_minimum" type="bool" value="true" />
18
- <property name="cycle_minimized" type="bool" value="false" />
19
- <property name="cycle_preview" type="bool" value="true" />
20
- <property name="cycle_tabwin_mode" type="int" value="0" />
21
- <property name="cycle_workspaces" type="bool" value="false" />
22
- <property name="double_click_action" type="string" value="maximize" />
23
- <property name="double_click_distance" type="int" value="5" />
24
- <property name="double_click_time" type="int" value="250" />
25
- <property name="easy_click" type="string" value="Alt" />
26
- <property name="focus_delay" type="int" value="250" />
27
- <property name="focus_hint" type="bool" value="true" />
28
- <property name="focus_new" type="bool" value="true" />
29
- <property name="frame_opacity" type="int" value="100" />
30
- <property name="frame_border_top" type="int" value="0" />
31
- <property name="full_width_title" type="bool" value="true" />
32
- <property name="horiz_scroll_opacity" type="bool" value="false" />
33
- <property name="inactive_opacity" type="int" value="100" />
34
- <property name="maximized_offset" type="int" value="0" />
35
- <property name="mousewheel_rollup" type="bool" value="true" />
36
- <property name="move_opacity" type="int" value="100" />
37
- <property name="placement_mode" type="string" value="center" />
38
- <property name="placement_ratio" type="int" value="20" />
39
- <property name="popup_opacity" type="int" value="100" />
40
- <property name="prevent_focus_stealing" type="bool" value="false" />
41
- <property name="raise_delay" type="int" value="250" />
42
- <property name="raise_on_click" type="bool" value="true" />
43
- <property name="raise_on_focus" type="bool" value="false" />
44
- <property name="raise_with_any_button" type="bool" value="true" />
45
- <property name="repeat_urgent_blink" type="bool" value="false" />
46
- <property name="resize_opacity" type="int" value="100" />
47
- <property name="scroll_workspaces" type="bool" value="true" />
48
- <property name="shadow_delta_height" type="int" value="0" />
49
- <property name="shadow_delta_width" type="int" value="0" />
50
- <property name="shadow_delta_x" type="int" value="0" />
51
- <property name="shadow_delta_y" type="int" value="-3" />
52
- <property name="shadow_opacity" type="int" value="50" />
53
- <property name="show_app_icon" type="bool" value="false" />
54
- <property name="show_dock_shadow" type="bool" value="true" />
55
- <property name="show_frame_shadow" type="bool" value="true" />
56
- <property name="show_popup_shadow" type="bool" value="false" />
57
- <property name="snap_resist" type="bool" value="false" />
58
- <property name="snap_to_border" type="bool" value="true" />
59
- <property name="snap_to_windows" type="bool" value="false" />
60
- <property name="snap_width" type="int" value="10" />
61
- <property name="vblank_mode" type="string" value="auto" />
62
- <property name="theme" type="string" value="Default" />
63
- <property name="tile_on_move" type="bool" value="true" />
64
- <property name="title_alignment" type="string" value="center" />
65
- <property name="title_font" type="string" value="Sans Bold 9" />
66
- <property name="title_horizontal_offset" type="int" value="0" />
67
- <property name="titleless_maximize" type="bool" value="false" />
68
- <property name="title_shadow_active" type="string" value="false" />
69
- <property name="title_shadow_inactive" type="string" value="false" />
70
- <property name="title_vertical_offset_active" type="int" value="0" />
71
- <property name="title_vertical_offset_inactive" type="int" value="0" />
72
- <property name="toggle_workspaces" type="bool" value="false" />
73
- <property name="unredirect_overlays" type="bool" value="true" />
74
- <property name="urgent_blink" type="bool" value="false" />
75
- <property name="use_compositing" type="bool" value="true" />
76
- <property name="workspace_count" type="int" value="1" />
77
- <property name="wrap_cycle" type="bool" value="true" />
78
- <property name="wrap_layout" type="bool" value="true" />
79
- <property name="wrap_resistance" type="int" value="10" />
80
- <property name="wrap_windows" type="bool" value="true" />
81
- <property name="wrap_workspaces" type="bool" value="false" />
82
- <property name="zoom_desktop" type="bool" value="true" />
83
- <property name="zoom_pointer" type="bool" value="true" />
84
- <property name="workspace_names" type="array">
85
- <value type="string" value="Workspace 1" />
86
- <value type="string" value="Workspace 2" />
87
- <value type="string" value="Workspace 3" />
88
- <value type="string" value="Workspace 4" />
89
- </property>
90
- </property>
91
- </channel>
@@ -1,10 +0,0 @@
1
- [Desktop Entry]
2
- Version=1.0
3
- Type=Application
4
- Name=Firefox Web Browser
5
- Comment=Browse the World Wide Web
6
- Exec=firefox-esr %u
7
- Icon=firefox-esr
8
- Path=
9
- Terminal=false
10
- StartupNotify=true
@@ -1,10 +0,0 @@
1
- [Desktop Entry]
2
- Version=1.0
3
- Type=Application
4
- Name=Terminal
5
- Comment=Open Terminal
6
- Exec=/usr/bin/exo-open --launch TerminalEmulator
7
- Icon=utilities-terminal
8
- Path=
9
- Terminal=false
10
- StartupNotify=false
@@ -1,10 +0,0 @@
1
- [Desktop Entry]
2
- Version=1.0
3
- Type=Application
4
- Name=Visual Studio Code
5
- Comment=Code Editing. Redefined.
6
- Exec=/usr/share/code/code %F
7
- Icon=vscode
8
- Path=
9
- Terminal=false
10
- StartupNotify=false
@@ -1,8 +0,0 @@
1
- [MASTER]
2
- ; R - Refactorings
3
- ; C - Convention
4
- ; W - Warning
5
- ; E - Error
6
- enable=C,R,W,E
7
- disable=R0903,C0114,C0115,C0116,C0301,C0411,C1804,C1805,W0120,W0511,W0718,W1203,E0401,E1101,E0611,E1128
8
- score=no
@@ -1,12 +0,0 @@
1
- {
2
- "cSpell.words": [
3
- "FWXGA",
4
- "getmouselocation",
5
- "keyup",
6
- "mousedown",
7
- "mousemove",
8
- "mouseup",
9
- "scrot",
10
- "WXGA"
11
- ]
12
- }