cowork-dash 0.2.0__tar.gz → 0.2.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {cowork_dash-0.2.0 → cowork_dash-0.2.1}/CHANGELOG.md +18 -0
- {cowork_dash-0.2.0 → cowork_dash-0.2.1}/PKG-INFO +1 -1
- {cowork_dash-0.2.0 → cowork_dash-0.2.1}/cowork_dash/agent.py +18 -23
- {cowork_dash-0.2.0 → cowork_dash-0.2.1}/cowork_dash/app.py +595 -223
- {cowork_dash-0.2.0 → cowork_dash-0.2.1}/cowork_dash/assets/styles.css +20 -0
- {cowork_dash-0.2.0 → cowork_dash-0.2.1}/cowork_dash/components.py +199 -28
- {cowork_dash-0.2.0 → cowork_dash-0.2.1}/cowork_dash/layout.py +41 -0
- {cowork_dash-0.2.0 → cowork_dash-0.2.1}/cowork_dash/tools.py +20 -35
- {cowork_dash-0.2.0 → cowork_dash-0.2.1}/pyproject.toml +1 -1
- {cowork_dash-0.2.0 → cowork_dash-0.2.1}/tests/test_core.py +186 -4
- {cowork_dash-0.2.0 → cowork_dash-0.2.1}/.claude/settings.local.json +0 -0
- {cowork_dash-0.2.0 → cowork_dash-0.2.1}/.gitignore +0 -0
- {cowork_dash-0.2.0 → cowork_dash-0.2.1}/Dockerfile.test +0 -0
- {cowork_dash-0.2.0 → cowork_dash-0.2.1}/LICENSE +0 -0
- {cowork_dash-0.2.0 → cowork_dash-0.2.1}/MANIFEST.in +0 -0
- {cowork_dash-0.2.0 → cowork_dash-0.2.1}/README.md +0 -0
- {cowork_dash-0.2.0 → cowork_dash-0.2.1}/cowork_dash/__init__.py +0 -0
- {cowork_dash-0.2.0 → cowork_dash-0.2.1}/cowork_dash/__main__.py +0 -0
- {cowork_dash-0.2.0 → cowork_dash-0.2.1}/cowork_dash/assets/app.js +0 -0
- {cowork_dash-0.2.0 → cowork_dash-0.2.1}/cowork_dash/assets/favicon.ico +0 -0
- {cowork_dash-0.2.0 → cowork_dash-0.2.1}/cowork_dash/assets/favicon.svg +0 -0
- {cowork_dash-0.2.0 → cowork_dash-0.2.1}/cowork_dash/backends.py +0 -0
- {cowork_dash-0.2.0 → cowork_dash-0.2.1}/cowork_dash/canvas.py +0 -0
- {cowork_dash-0.2.0 → cowork_dash-0.2.1}/cowork_dash/cli.py +0 -0
- {cowork_dash-0.2.0 → cowork_dash-0.2.1}/cowork_dash/config.py +0 -0
- {cowork_dash-0.2.0 → cowork_dash-0.2.1}/cowork_dash/file_utils.py +0 -0
- {cowork_dash-0.2.0 → cowork_dash-0.2.1}/cowork_dash/sandbox.py +0 -0
- {cowork_dash-0.2.0 → cowork_dash-0.2.1}/cowork_dash/virtual_fs.py +0 -0
- {cowork_dash-0.2.0 → cowork_dash-0.2.1}/docs/dark.png +0 -0
- {cowork_dash-0.2.0 → cowork_dash-0.2.1}/docs/light.png +0 -0
- {cowork_dash-0.2.0 → cowork_dash-0.2.1}/examples/example_agent.py +0 -0
- {cowork_dash-0.2.0 → cowork_dash-0.2.1}/examples/python_api_example.py +0 -0
- {cowork_dash-0.2.0 → cowork_dash-0.2.1}/templates/index.html +0 -0
- {cowork_dash-0.2.0 → cowork_dash-0.2.1}/tests/__init__.py +0 -0
- {cowork_dash-0.2.0 → cowork_dash-0.2.1}/tests/conftest.py +0 -0
- {cowork_dash-0.2.0 → cowork_dash-0.2.1}/tests/test_backends.py +0 -0
- {cowork_dash-0.2.0 → cowork_dash-0.2.1}/tests/test_canvas.py +0 -0
- {cowork_dash-0.2.0 → cowork_dash-0.2.1}/tests/test_file_utils.py +0 -0
- {cowork_dash-0.2.0 → cowork_dash-0.2.1}/tests/test_sandbox.py +0 -0
- {cowork_dash-0.2.0 → cowork_dash-0.2.1}/tests/test_virtual_fs.py +0 -0
- {cowork_dash-0.2.0 → cowork_dash-0.2.1}/uv.lock +0 -0
|
@@ -5,6 +5,23 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [0.2.1] - 2026-02-03
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
- **Collapsible sidebar**: New toggle button to collapse/expand the files/canvas panel
|
|
12
|
+
- **Download buttons**: Each display_inline asset now has a download button
|
|
13
|
+
- **Ordered content rendering**: AI messages, thinking blocks, and display_inline assets now appear in emission order
|
|
14
|
+
- **Fullscreen preview**: HTML and PDF files can be previewed in fullscreen modal
|
|
15
|
+
|
|
16
|
+
### Changed
|
|
17
|
+
- **Non-collapsible thinking blocks**: Thinking is always visible with purple left border styling
|
|
18
|
+
- **Reduced AI text spacing**: Tighter spacing between consecutive AI message blocks
|
|
19
|
+
- **add_to_canvas/display_inline**: Now agent-only tools (removed from notebook namespace injection)
|
|
20
|
+
|
|
21
|
+
### Fixed
|
|
22
|
+
- **display_inline file content**: Fixed reading file content when display_type is explicitly set
|
|
23
|
+
- **ctx undefined error**: Fixed NameError in fullscreen preview callback
|
|
24
|
+
|
|
8
25
|
## [0.2.0] - 2026-02-01
|
|
9
26
|
|
|
10
27
|
### Added
|
|
@@ -171,6 +188,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
171
188
|
- Resizable split-pane interface
|
|
172
189
|
- Upload/download functionality for files
|
|
173
190
|
|
|
191
|
+
[0.2.1]: https://github.com/dkedar7/cowork-dash/compare/v0.2.0...v0.2.1
|
|
174
192
|
[0.2.0]: https://github.com/dkedar7/cowork-dash/compare/v0.1.9...v0.2.0
|
|
175
193
|
[0.1.9]: https://github.com/dkedar7/cowork-dash/compare/v0.1.8...v0.1.9
|
|
176
194
|
[0.1.8]: https://github.com/dkedar7/cowork-dash/compare/v0.1.7...v0.1.8
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: cowork-dash
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.1
|
|
4
4
|
Summary: AI Agent Web Interface with Filesystem and Canvas Visualization
|
|
5
5
|
Project-URL: Homepage, https://github.com/dkedar7/cowork-dash
|
|
6
6
|
Project-URL: Documentation, https://github.com/dkedar7/cowork-dash/blob/main/README.md
|
|
@@ -23,7 +23,12 @@ from cowork_dash.tools import (
|
|
|
23
23
|
SYSTEM_PROMPT = """You are a helpful AI assistant with access to a filesystem workspace and a Python code execution environment.
|
|
24
24
|
You have access to a canvas, which is a markdown file located at `.canvas/canvas.md` in the workspace. This allows you to sketch out ideas, document your work, and present results to the user.
|
|
25
25
|
|
|
26
|
-
|
|
26
|
+
CRITICAL!:
|
|
27
|
+
- You must keep talking to the user as frequently as possible to communicate your thoughts, findings and next steps.
|
|
28
|
+
- Always explain what you are doing and why.
|
|
29
|
+
- Acknowledge user instructions and questions before taking actions.
|
|
30
|
+
- Explain what you are doing before executing any tool or code.
|
|
31
|
+
- After executing code or tools, always summarize the results and next steps to the user.
|
|
27
32
|
|
|
28
33
|
## Capabilities
|
|
29
34
|
|
|
@@ -60,27 +65,18 @@ You have tools to write and execute Python code interactively, similar to a Jupy
|
|
|
60
65
|
- Shows detailed error tracebacks when code fails
|
|
61
66
|
|
|
62
67
|
### Displaying Results Inline
|
|
63
|
-
- `display_inline(content, title=None, display_type=None)` -
|
|
64
|
-
- Use for: **file paths** to images,
|
|
65
|
-
-
|
|
66
|
-
1. In a cell: `fig.savefig('chart.png', bbox_inches='tight')`
|
|
67
|
-
2. Then call: `display_inline("chart.png", title="My Chart")`
|
|
68
|
-
- Example: `display_inline("results.csv", title="Sales Data")`
|
|
68
|
+
- `display_inline(content, title=None, display_type=None)` - Tool to display content inline in the chat
|
|
69
|
+
- Use for: **file paths** to images, CSV files, HTML, JSON, PDF
|
|
70
|
+
- Example: `display_inline("results.csv", title="Sales Data")` as a tool call
|
|
69
71
|
|
|
70
72
|
### Canvas Visualization
|
|
71
|
-
- `add_to_canvas(content)` - Add content to the canvas panel (persistent note-taking area)
|
|
72
|
-
-
|
|
73
|
-
- For matplotlib in cells: `add_to_canvas(fig)` works (auto-converts to image)
|
|
73
|
+
- `add_to_canvas(content)` - Add content to the canvas panel (persistent note-taking area). To add images or charts, save them to files and reference them in markdown.
|
|
74
|
+
- Use for: longer-term notes, sketches, charts
|
|
74
75
|
- Canvas items are saved to `.canvas/` directory
|
|
75
76
|
|
|
76
77
|
**When to use `display_inline` vs `add_to_canvas`:**
|
|
77
78
|
- `display_inline`: For showing **saved files** (images, CSV, JSON) inline in chat
|
|
78
|
-
- `add_to_canvas`:
|
|
79
|
-
|
|
80
|
-
**Important:** When creating charts in notebook cells:
|
|
81
|
-
1. Create the figure and call `add_to_canvas(fig)` in the same cell
|
|
82
|
-
2. The execution result will show `canvas_items` with what was added
|
|
83
|
-
3. Charts are automatically saved to the `.canvas/` directory
|
|
79
|
+
- `add_to_canvas`: For longer-term notes, sketches, charts
|
|
84
80
|
|
|
85
81
|
## Workflow Guidelines
|
|
86
82
|
|
|
@@ -96,19 +92,18 @@ Work iteratively like a human using Jupyter:
|
|
|
96
92
|
### For Analysis Tasks
|
|
97
93
|
1. Start by exploring the data (load, inspect shape/columns/types)
|
|
98
94
|
2. Build up your analysis step by step in separate cells
|
|
99
|
-
3.
|
|
100
|
-
4. Keep cells focused on single tasks for easier debugging
|
|
95
|
+
3. Keep cells focused on single tasks for easier debugging
|
|
101
96
|
|
|
102
97
|
### General
|
|
103
98
|
1. ALWAYS use write_todos to track your progress and next steps
|
|
104
|
-
2.
|
|
105
|
-
3.
|
|
106
|
-
4. Provide clear, helpful responses
|
|
99
|
+
2. Be proactive in exploring the filesystem when relevant
|
|
100
|
+
3. Provide clear, helpful responses
|
|
107
101
|
|
|
108
102
|
CRITICAL WORKFLOW REQUIREMENT:
|
|
109
|
-
1. FIRST ACTION: Always
|
|
110
|
-
2.
|
|
103
|
+
1. FIRST ACTION: Always respond with initial thoughts before beginning any work and before any other tool or response
|
|
104
|
+
2. Reason through the user's request
|
|
111
105
|
3. Then proceed with other tools/actions
|
|
106
|
+
4. Summazrize progress and next steps after each action
|
|
112
107
|
|
|
113
108
|
This applies to EVERY user message, regardless of complexity.
|
|
114
109
|
|