Skip to content

Commit b09aedf

Browse files
authored
Merge branch 'main' into claude/add-step-markdown-files-X0WII
2 parents eebe2e6 + d7bae12 commit b09aedf

8 files changed

Lines changed: 406 additions & 130 deletions

File tree

.github/workflows/cla.yml

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
name: "CLA Assistant"
2+
3+
on:
4+
issue_comment:
5+
types: [created]
6+
pull_request_target:
7+
types: [opened, closed, synchronize]
8+
9+
# Explicitly set permissions for the workflow
10+
permissions:
11+
actions: write
12+
contents: write
13+
pull-requests: write
14+
statuses: write
15+
16+
jobs:
17+
cla-check:
18+
runs-on: ubuntu-latest
19+
steps:
20+
- name: "CLA Assistant"
21+
if: (github.event.comment.body == 'recheck' || github.event.comment.body == 'I have read the CLA Document and I hereby sign the CLA') || github.event_name == 'pull_request_target'
22+
uses: contributor-assistant/github-action@v2.6.1
23+
env:
24+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
25+
# This should be a Personal Access Token with repo scope
26+
PERSONAL_ACCESS_TOKEN: ${{ secrets.CLA_ASSISTANT_PAT }}
27+
with:
28+
path-to-signatures: 'CLA/version_1/CLA_SIGNATORIES.md'
29+
path-to-document: 'https://github.com/${{ github.repository }}/blob/main/CLA/version_1/CLA.md'
30+
# Branch where CLA signatures will be stored
31+
branch: 'IMPT_cla_signatures'
32+
allowlist: 'dependabot[bot],github-actions[bot]'
33+
34+
# Customizable messages
35+
remote-organization-name: 'Unsupervised.com, Inc.'
36+
remote-repository-name: 'deepwork'
37+
38+
# Custom text for the CLA comment
39+
custom-pr-sign-comment: 'I have read the CLA Document and I hereby sign the CLA'
40+
custom-allsigned-prcomment: 'All contributors have signed the CLA. ✅'
41+
42+
lock-pullrequest-aftermerge: false
43+
use-dco-flag: true

.github/workflows/release.yml

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
name: Release to PyPI
2+
3+
on:
4+
release:
5+
types: [published]
6+
7+
jobs:
8+
build:
9+
runs-on: ubuntu-latest
10+
steps:
11+
- uses: actions/checkout@v4
12+
13+
- name: Install uv
14+
uses: astral-sh/setup-uv@v4
15+
with:
16+
version: "latest"
17+
18+
- name: Set up Python
19+
uses: actions/setup-python@v5
20+
with:
21+
python-version: "3.11"
22+
23+
- name: Install dependencies
24+
run: uv sync --extra dev
25+
26+
- name: Run tests
27+
run: uv run pytest tests/ -v
28+
29+
- name: Build package
30+
run: uv build
31+
32+
- name: Upload dist artifacts
33+
uses: actions/upload-artifact@v4
34+
with:
35+
name: dist
36+
path: dist/
37+
38+
publish:
39+
needs: build
40+
runs-on: ubuntu-latest
41+
environment: pypi
42+
permissions:
43+
id-token: write
44+
steps:
45+
- name: Download dist artifacts
46+
uses: actions/download-artifact@v4
47+
with:
48+
name: dist
49+
path: dist/
50+
51+
- name: Publish to PyPI
52+
uses: pypa/gh-action-pypi-publish@release/v1

CLA/version_1/CLA.md

Lines changed: 124 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,124 @@
1+
# Contributor License Agreement (CLA)
2+
3+
Thank you for your interest in contributing to DeepWork, a project by Unsupervised.com, Inc. ("We" or "Us").
4+
5+
This Contributor License Agreement ("Agreement") documents the rights granted by contributors to Us. To make this document effective, please follow the instructions at the end of this document.
6+
7+
## Definitions
8+
9+
**"You"** means the individual who Submits a Contribution to Us.
10+
11+
**"Contribution"** means any work of authorship that is Submitted by You to Us in which You own or assert ownership of the Copyright.
12+
13+
**"Copyright"** means all rights protecting works of authorship owned or controlled by You, including copyright, moral and neighboring rights, as appropriate, for the full term of their existence including any extensions by You.
14+
15+
**"Material"** means the work of authorship which is made available by Us to third parties. When this Agreement covers more than one software project, the Material means the work of authorship to which the Contribution was Submitted. After You Submit the Contribution, it may be included in the Material.
16+
17+
**"Submit"** means any form of electronic, verbal, or written communication sent to Us or our representatives, including but not limited to electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, Us for the purpose of discussing and improving the Material, but excluding communication that is conspicuously marked or otherwise designated in writing by You as "Not a Contribution."
18+
19+
**"Submission Date"** means the date on which You Submit a Contribution to Us.
20+
21+
**"Effective Date"** means the date You sign this Agreement or the date You first Submit a Contribution to Us, whichever is earlier.
22+
23+
## Grant of Rights
24+
25+
### 1. Copyright License
26+
27+
(a) You retain ownership of the Copyright in Your Contribution and have the same rights to use or license the Contribution which You would have had without entering into the Agreement.
28+
29+
(b) To the maximum extent permitted by the relevant law, You grant to Us a perpetual, worldwide, non-exclusive, transferable, royalty-free, irrevocable license under the Copyright covering the Contribution, with the right to sublicense such rights through multiple tiers of sublicensees, to reproduce, modify, display, perform and distribute the Contribution as part of the Material; provided that this license is conditioned upon compliance with Section 3.
30+
31+
### 2. Patent License
32+
33+
For patent claims including, without limitation, method, process, and apparatus claims which You own, control or have the right to grant, now or in the future, You grant to Us a perpetual, worldwide, non-exclusive, transferable, royalty-free, irrevocable patent license, with the right to sublicense these rights to multiple tiers of sublicensees, to make, have made, use, sell, offer for sale, import and otherwise transfer the Contribution and the Contribution in combination with the Material (and portions of such combination). This license is granted only to the extent that the exercise of the licensed rights infringes such patent claims; and provided that this license is conditioned upon compliance with Section 3.
34+
35+
### 3. Outbound License
36+
37+
As a condition on the grant of rights in Sections 1 and 2, We agree to license the Contribution only under the terms of the Business Source License 1.1 (including any Additional Use Grant, Change Date, and Change License specified therein) or any future version of the Business Source License released by MariaDB Corporation Ab, or the Apache License, Version 2.0 or any later version.
38+
39+
In addition, We may use the following licenses for Media in the Contribution: Creative Commons Attribution 4.0 International (CC BY 4.0) or any later version (including any right to adopt any future version of a license if permitted).
40+
41+
### 4. Moral Rights
42+
43+
If moral rights apply to the Contribution, to the maximum extent permitted by law, You waive and agree not to assert such moral rights against Us or our successors in interest, or any of our licensees, either direct or indirect.
44+
45+
### 5. Our Rights
46+
47+
You acknowledge that We are not obligated to use Your Contribution as part of the Material and may decide to include any Contribution We consider appropriate.
48+
49+
### 6. Reservation of Rights
50+
51+
Any rights not expressly licensed under this section are expressly reserved by You.
52+
53+
## Agreement
54+
55+
### 1. You Warrant That
56+
57+
(a) You have the legal authority to enter into this Agreement.
58+
59+
(b) You own the Copyright and patent claims covering the Contribution which are required to grant the rights under Section 2.
60+
61+
(c) The grant of rights under Section 2 does not violate any grant of rights which You have made to third parties, including Your employer. If You are an employee, You have had Your employer approve this Agreement or sign the Entity version of this document. If You are less than eighteen years old, please have Your parents or guardian sign the Agreement.
62+
63+
### 2. Developer Certificate of Origin
64+
65+
By making a Contribution to this project, You certify that:
66+
67+
(a) The Contribution was created in whole or in part by You and You have the right to submit it under the open source license indicated in the file; or
68+
69+
(b) The Contribution is based upon previous work that, to the best of Your knowledge, is covered under an appropriate open source license and You have the right under that license to submit that work with modifications, whether created in whole or in part by You, under the same open source license (unless You are permitted to submit under a different license), as indicated in the file; or
70+
71+
(c) The Contribution was provided directly to You by some other person who certified (a), (b) or (c) and You have not modified it.
72+
73+
(d) You understand and agree that this project and the Contribution are public and that a record of the Contribution (including all personal information You submit with it, including Your sign-off) is maintained indefinitely and may be redistributed consistent with this project or the open source license(s) involved.
74+
75+
### 3. License Compliance
76+
77+
You agree that Your Contributions will not be used in violation of the prohibited uses specified in the Business Source License 1.1 under which the Licensed Work is distributed. Specifically, You acknowledge that:
78+
79+
(a) The Licensed Work cannot be used to create products or services that compete with DeepWork or Unsupervised.com, Inc. in the fields of workflow automation or data analysis, as detailed in the LICENSE.md file.
80+
81+
(b) Your Contributions, once accepted, will be subject to these same restrictions until the Change Date specified in the license.
82+
83+
(c) After the Change Date, Your Contributions will be available under the Change License (Apache License, Version 2.0) as specified in the Business Source License 1.1.
84+
85+
## Disclaimer
86+
87+
EXCEPT FOR THE EXPRESS WARRANTIES IN SECTION 3, THE CONTRIBUTION IS PROVIDED "AS IS". MORE PARTICULARLY, ALL EXPRESS OR IMPLIED WARRANTIES INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE EXPRESSLY DISCLAIMED BY YOU TO US. TO THE EXTENT THAT ANY SUCH WARRANTIES CANNOT BE DISCLAIMED, SUCH WARRANTY IS LIMITED IN DURATION TO THE MINIMUM PERIOD PERMITTED BY LAW.
88+
89+
## Consequential Damage Waiver
90+
91+
TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, IN NO EVENT WILL YOU BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF ANTICIPATED SAVINGS, LOSS OF DATA, INDIRECT, SPECIAL, INCIDENTAL, CONSEQUENTIAL AND EXEMPLARY DAMAGES ARISING OUT OF THIS AGREEMENT REGARDLESS OF THE LEGAL OR EQUITABLE THEORY (CONTRACT, TORT OR OTHERWISE) UPON WHICH THE CLAIM IS BASED.
92+
93+
## Miscellaneous
94+
95+
This Agreement will be governed by and construed in accordance with the laws of the State of Delaware, excluding its conflicts of law provisions. Under certain circumstances, the governing law in this section might be superseded by the United Nations Convention on Contracts for the International Sale of Goods ("UN Convention") and the parties intend to avoid the application of the UN Convention to this Agreement and, thus, exclude the application of the UN Convention in its entirety to this Agreement.
96+
97+
---
98+
99+
## How to Sign
100+
101+
By signing this Agreement, You accept and agree to the terms and conditions contained herein.
102+
103+
### For Individual Contributors
104+
105+
To sign this CLA, please add your GitHub username to the list of signatories by creating a pull request that adds your name to the `CLA/version_1/CLA_SIGNATORIES.md` file, or alternatively, sign the CLA through our automated CLA Assistant when you submit your first pull request.
106+
107+
When you submit a pull request, the CLA Assistant bot will automatically check if you have signed the CLA and guide you through the process if you haven't.
108+
109+
### For Corporate Contributors
110+
111+
If you are contributing on behalf of your employer or another entity, that entity must sign the Corporate CLA. Please contact legal@unsupervised.com to obtain and execute the Corporate CLA.
112+
113+
---
114+
115+
## Questions?
116+
117+
If you have questions about this CLA, please contact us at legal@unsupervised.com or open an issue in the repository.
118+
119+
---
120+
121+
**DeepWork Project**
122+
**Unsupervised.com, Inc.**
123+
**Version 1.0**
124+
**Effective Date: January 14, 2026**

CLA/version_1/CLA_SIGNATORIES.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# CLA Signatories
2+
3+
This file tracks individual contributors who have signed the Contributor License Agreement (CLA) for the DeepWork project.
4+
5+
## Individual Contributors
6+
7+
| GitHub Username | Date Signed | Signature Method |
8+
|-----------------|-------------|------------------|
9+
| <!-- Add your GitHub username here --> | | |
10+
11+
---
12+
13+
## How to Sign
14+
15+
1. **Automated Method (Recommended)**: When you submit your first pull request, the CLA Assistant bot will guide you through signing the CLA electronically.
16+
17+
2. **Manual Method**: Add your GitHub username to the table above by creating a pull request. Your PR will be reviewed and merged once verified.
18+
19+
---
20+
21+
## Corporate Contributors
22+
23+
Organizations that have signed the Corporate CLA are tracked separately. If you are contributing on behalf of your employer, please ensure your organization has signed the Corporate CLA by contacting legal@unsupervised.com.
24+
25+
---
26+
27+
For questions about the CLA, see [CLA.md](CLA.md) or contact legal@unsupervised.com.

CONTRIBUTING.md

Lines changed: 42 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,44 @@ Thank you for your interest in contributing to DeepWork! This guide will help yo
2020
- **Git** - For version control
2121
- **Nix** (optional but recommended) - For reproducible development environment
2222
- **uv** - Modern Python package installer (included in Nix environment)
23+
- **Signed CLA** - All contributors must sign the Contributor License Agreement (see below)
24+
25+
## Contributor License Agreement (CLA)
26+
27+
Before we can accept your contributions, you must sign our Contributor License Agreement (CLA). This is a one-time requirement for all contributors.
28+
29+
### Why We Require a CLA
30+
31+
The CLA ensures that:
32+
- You have the legal right to contribute your code
33+
- The project can safely use and distribute your contributions
34+
- Your contributions comply with the Business Source License 1.1 under which DeepWork is licensed
35+
- Both you and the project are legally protected
36+
37+
### How to Sign the CLA
38+
39+
**For First-Time Contributors:**
40+
41+
1. **Submit your pull request** - When you open your first PR, the CLA Assistant bot will automatically comment on it
42+
2. **Read the CLA** - Review the [Contributor License Agreement (CLA)](CLA/version_1/CLA.md)
43+
3. **Sign electronically** - Comment on your PR with: `I have read the CLA Document and I hereby sign the CLA`
44+
4. **Verification** - The bot will verify your signature and update the PR status
45+
46+
The CLA Assistant will remember your signature for all future contributions.
47+
48+
**For Corporate Contributors:**
49+
50+
If you're contributing on behalf of your employer, your organization must sign a Corporate CLA. Please contact legal@unsupervised.com to obtain the Corporate CLA.
51+
52+
### CLA Details
53+
54+
Our CLA:
55+
- Grants the project a license to use your contributions
56+
- Confirms you have the right to contribute the code
57+
- Acknowledges the Business Source License 1.1 restrictions
58+
- Is based on the Apache Software Foundation's CLA with modifications for BSL 1.1
59+
60+
For the full text, see [CLA.md](CLA/version_1/CLA.md).
2361

2462
## Development Setup
2563

@@ -189,7 +227,7 @@ uv run pytest tests/unit/core/test_parser.py::test_parse_valid_job -v
189227

190228
```bash
191229
# Generate coverage report
192-
uv run pytest --cov=deepwork --cov-report=html
230+
uv run pytest tests/ --cov=deepwork --cov-report=html
193231

194232
# View coverage in browser
195233
open htmlcov/index.html # macOS
@@ -484,7 +522,9 @@ echo $NIX_PATH
484522

485523
## License
486524

487-
By contributing to DeepWork, you agree that your contributions will be licensed under the MIT License.
525+
By contributing to DeepWork, you agree that your contributions will be licensed under the project's current license. The licensor (Unsupervised.com, Inc.) reserves the right to change the project license at any time at its sole discretion.
526+
527+
You must sign the [Contributor License Agreement (CLA)](CLA/version_1/CLA.md) before your contributions can be accepted. See the CLA section above for details.
488528

489529
---
490530

LICENSE.md

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
# Business Source License 1.1
2+
3+
## Parameters
4+
5+
**Licensor:** Unsupervised.com, Inc.
6+
7+
**Licensed Work:** DeepWork
8+
The Licensed Work is © 2024-2026 Unsupervised.com, Inc.
9+
10+
**Additional Use Grant:** You may use the Licensed Work for any purpose other than the prohibited uses described below.
11+
12+
**Change Date:** 2030-01-14
13+
14+
**Change License:** Apache License, Version 2.0
15+
16+
---
17+
18+
## License Terms
19+
20+
The Licensor hereby grants you the right to copy, modify, create derivative works, redistribute, and make non-production use of the Licensed Work. The Licensor may make an Additional Use Grant, above, permitting limited production use.
21+
22+
Effective on the Change Date, or the fourth anniversary of the first publicly available distribution of a specific version of the Licensed Work under this License, whichever comes first, the Licensor hereby grants you rights under the terms of the Change License, and the rights granted in the paragraph above terminate.
23+
24+
If your use of the Licensed Work does not comply with the requirements currently in effect as described in this License, you must purchase a commercial license from the Licensor, its affiliated entities, or authorized resellers, or you must refrain from using the Licensed Work.
25+
26+
All copies of the original and modified Licensed Work, and derivative works of the Licensed Work, are subject to this License. This License applies separately for each version of the Licensed Work and the Change Date may vary for each version of the Licensed Work released by Licensor.
27+
28+
You must conspicuously display this License on each original or modified copy of the Licensed Work. If you receive the Licensed Work in original or modified form from a third party, the terms and conditions set forth in this License apply to your use of that work.
29+
30+
Any use of the Licensed Work in violation of this License will automatically terminate your rights under this License for the current and all other versions of the Licensed Work.
31+
32+
This License does not grant you any right in any trademark or logo of Licensor or its affiliates (provided that you may use a trademark or logo of Licensor as expressly required by this License).
33+
34+
TO THE EXTENT PERMITTED BY APPLICABLE LAW, THE LICENSED WORK IS PROVIDED ON AN "AS IS" BASIS. LICENSOR HEREBY DISCLAIMS ALL WARRANTIES AND CONDITIONS, EXPRESS OR IMPLIED, INCLUDING (WITHOUT LIMITATION) WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, AND TITLE.
35+
36+
---
37+
38+
## Prohibited Uses
39+
40+
You may not use the Licensed Work for any of the following purposes:
41+
42+
1. **Competing Products for Workflow Automation**: You may not use the Licensed Work to create, operate, or provide a product or service that competes with DeepWork or any product or service offered by Unsupervised.com, Inc. in the field of automating workflows, including but not limited to:
43+
- AI-powered workflow automation tools
44+
- Multi-step task execution frameworks
45+
- AI agent orchestration platforms
46+
- Workflow definition and execution systems
47+
48+
2. **Competing Products for Data Analysis**: You may not use the Licensed Work to create, operate, or provide a product or service that competes with DeepWork or any product or service offered by Unsupervised.com, Inc. in the field of data analysis, including but not limited to:
49+
- AI-powered data analysis platforms
50+
- Automated data processing and analysis tools
51+
- AI-driven analytics services
52+
- Data workflow automation systems
53+
54+
A product or service "competes" with DeepWork or Unsupervised.com, Inc. if it is marketed to users or customers as a substitute for, or alternative to, DeepWork or any workflow automation or data analysis product or service offered by Unsupervised.com, Inc.
55+
56+
**Clarification**: This prohibition does not prevent you from:
57+
- Using the Licensed Work internally within your organization for your own workflow automation or data analysis needs
58+
- Building complementary tools or extensions that integrate with DeepWork
59+
- Using the Licensed Work in educational or research contexts
60+
- Contributing to the Licensed Work under the terms of the Contributor License Agreement

0 commit comments

Comments
 (0)