Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
432 changes: 432 additions & 0 deletions .claude/agents/unittest-generator.md

Large diffs are not rendered by default.

27 changes: 27 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# GPT Computer Agent Configuration
# Copy this file and rename it to .env, then fill in your actual API keys

# OpenAI API Key - Get from https://platform.openai.com/api-keys
OPENAI_API_KEY=your-openai-api-key-here

# Anthropic API Key - Get from https://console.anthropic.com/
ANTHROPIC_API_KEY=your-anthropic-api-key-here

# Application Settings
DEBUG=false
LOG_LEVEL=INFO

# Database (SQLite by default)
DATABASE_URL=sqlite:///./gpt_agent.db

# First admin user (change these!)
[email protected]
FIRST_SUPERUSER_PASSWORD=changeme123

# JWT Settings
SECRET_KEY=your-secret-key-here-change-this-in-production
ACCESS_TOKEN_EXPIRE_MINUTES=1440
REFRESH_TOKEN_EXPIRE_DAYS=30

# LLM Provider (openai or anthropic)
LLM_PROVIDER=openai
13 changes: 9 additions & 4 deletions .github/ISSUE_TEMPLATE/question.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name: Question 🤷‍♂️
description: Got a question about GPT-Computer-Agent, deployment, development or usage?
description: Got a question about Aideck, deployment, development or usage?
title: '[QUESTION] <title>'
labels: ['🤷‍♂️ Question']
assignees:
Expand All @@ -10,9 +10,14 @@ body:
- type: markdown
attributes:
value: >
Thanks for using GPT-Computer-Agent! Questions are welcome, but in the future will be moving over to
[Discussions](https://github.com/khulnaSoft/gpt-computer-agent/discussions) page.
Quick questions should be asked [here](https://github.com/khulnaSoft/gpt-computer-agent/discussions/148) instead.
- label: You are using a [supported](https://github.com/khulnaSoft/aideck/blob/master/.github/SECURITY.md#supported-versions) version of Aideck (check the first two digits of the version number)
required: true
- label: You've checked that this [question hasn't already been raised](https://github.com/khulnaSoft/aideck/issues?q=is%3Aissue)
required: true
- label: You've checked the [docs](https://github.com/khulnaSoft/aideck/tree/master/docs#readme) and [troubleshooting](https://github.com/khulnaSoft/aideck/blob/master/docs/troubleshooting.md#troubleshooting) guide
required: true
- label: You agree to the [code of conduct](https://github.com/khulnaSoft/aideck/blob/master/.github/CODE_OF_CONDUCT.md#contributor-covenant-code-of-conduct)
required: true
validations:
required: false

Expand Down
23 changes: 0 additions & 23 deletions .github/workflows/auto-rebase-pr.ym

This file was deleted.

53 changes: 53 additions & 0 deletions .github/workflows/claude-code-review.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
name: Claude Code Review

on:
pull_request:
types: [opened, synchronize]
# Optional: Only run on specific file changes
# paths:
# - "src/**/*.ts"
# - "src/**/*.tsx"
# - "src/**/*.js"
# - "src/**/*.jsx"

jobs:
claude-review:
# Optional: Filter by PR author
# if: |
# github.event.pull_request.user.login == 'external-contributor' ||
# github.event.pull_request.user.login == 'new-developer' ||
# github.event.pull_request.author_association == 'FIRST_TIME_CONTRIBUTOR'

runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: read
issues: read
id-token: write

steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 1

- name: Run Claude Code Review
id: claude-review
uses: anthropics/claude-code-action@v1
with:
Comment on lines +34 to +37
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Pin third-party action to an immutable revision

This workflow references anthropics/claude-code-action@v1, a mutable tag. If Anthropic ever force-pushes that tag, our reviews will execute unvetted code. Pin the action to a specific commit SHA (and document how to bump it) to keep the supply-chain surface bounded.

Apply this diff to pin the action:

-        uses: anthropics/claude-code-action@v1
+        uses: anthropics/claude-code-action@<commit-sha>
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- name: Run Claude Code Review
id: claude-review
uses: anthropics/claude-code-action@v1
with:
- name: Run Claude Code Review
id: claude-review
uses: anthropics/claude-code-action@<commit-sha>
with:
🤖 Prompt for AI Agents
.github/workflows/claude-code-review.yml lines 34-37: the workflow uses the
mutable tag anthropics/claude-code-action@v1 which can be force-updated; replace
the tag with the action pinned to a specific commit SHA (e.g.
anthropics/claude-code-action@<commit-sha>) and add a short comment in the
workflow file describing how to bump it (update the SHA to the new commit and
run CI/verify changes); commit the change so the workflow references the
immutable revision.

claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
prompt: |
Please review this pull request and provide feedback on:
- Code quality and best practices
- Potential bugs or issues
- Performance considerations
- Security concerns
- Test coverage

Use the repository's CLAUDE.md for guidance on style and conventions. Be constructive and helpful in your feedback.

Use `gh pr comment` with your Bash tool to leave your review as a comment on the PR.

# See https://github.com/anthropics/claude-code-action/blob/main/docs/usage.md
# or https://docs.anthropic.com/en/docs/claude-code/sdk#command-line for available options
claude_args: '--allowed-tools "Bash(gh issue view:*),Bash(gh search:*),Bash(gh issue list:*),Bash(gh pr comment:*),Bash(gh pr diff:*),Bash(gh pr view:*),Bash(gh pr list:*)"'
49 changes: 49 additions & 0 deletions .github/workflows/claude.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
name: Claude Code

on:
issue_comment:
types: [created]
pull_request_review_comment:
types: [created]
issues:
types: [opened, assigned]
pull_request_review:
types: [submitted]

jobs:
claude:
if: |
(github.event_name == 'issue_comment' && contains(github.event.comment.body, '@claude')) ||
(github.event_name == 'pull_request_review_comment' && contains(github.event.comment.body, '@claude')) ||
(github.event_name == 'pull_request_review' && contains(github.event.review.body, '@claude')) ||
(github.event_name == 'issues' && (contains(github.event.issue.body, '@claude') || contains(github.event.issue.title, '@claude')))
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: read
issues: read
id-token: write
actions: read # Required for Claude to read CI results on PRs
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 1

- name: Run Claude Code
id: claude
uses: anthropics/claude-code-action@v1
with:
Comment on lines +33 to +36
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Lock the Claude workflow action to a commit SHA

Same risk here—anthropics/claude-code-action@v1 is mutable. Please pin it to a vetted commit so CI can’t silently run altered code.

Apply this diff to constrain the action:

-        uses: anthropics/claude-code-action@v1
+        uses: anthropics/claude-code-action@<commit-sha>
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- name: Run Claude Code
id: claude
uses: anthropics/claude-code-action@v1
with:
- name: Run Claude Code
id: claude
uses: anthropics/claude-code-action@<commit-sha>
with:
🤖 Prompt for AI Agents
.github/workflows/claude.yml around lines 33 to 36: the workflow uses the
mutable tag anthropics/claude-code-action@v1 which can change; replace the tag
with a specific, vetted commit SHA (e.g.
anthropics/claude-code-action@<commit-sha>) so the action is pinned immutably;
obtain the desired commit SHA from the action repository, update the uses: line
to reference that SHA, and commit the change.

claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}

# This is an optional setting that allows Claude to read CI results on PRs
additional_permissions: |
actions: read

# Optional: Give a custom prompt to Claude. If this is not specified, Claude will perform the instructions specified in the comment that tagged it.
# prompt: 'Update the pull request description to include a summary of changes.'

# Optional: Add claude_args to customize behavior and configuration
# See https://github.com/anthropics/claude-code-action/blob/main/docs/usage.md
# or https://docs.anthropic.com/en/docs/claude-code/sdk#command-line for available options
# claude_args: '--model claude-opus-4-1-20250805 --allowed-tools Bash(gh pr:*)'
105 changes: 0 additions & 105 deletions .github/workflows/deploys.yml

This file was deleted.

31 changes: 31 additions & 0 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# publish.yml

name: "Publish"

on:
release:
types: ["published"]

jobs:
pypi:
name: "Build and publish release"
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- name: Install uv
uses: astral-sh/setup-uv@v3
with:
enable-cache: true
cache-dependency-glob: uv.lock

Comment on lines +17 to +22
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion | 🟠 Major

🧩 Analysis chain

Pin a Python version and verify cache input name

  • Without an explicit Python, uv may use whatever is available on the runner. Pin for reproducibility.
  • Double-check the input name cache-dependency-glob; the action’s schema may use a different key.

Suggested change:

-      - name: Install uv 
-        uses: astral-sh/setup-uv@v3
-        with:
-          enable-cache: true
-          cache-dependency-glob: uv.lock
+      - name: Install uv
+        uses: astral-sh/setup-uv@v3
+        with:
+          enable-cache: true
+          python-version: "3.12"
+          cache-dependency-glob: uv.lock

Also, consider adding --frozen to uv sync to enforce the lock:

-      - name: Run UV Sync
-        run: |
-          uv sync
+      - name: Run UV Sync
+        run: |
+          uv sync --frozen

🌐 Web query:

What are the valid inputs for astral-sh/setup-uv@v3 (in particular, is the input named "cache-dependency-glob" or "cache-dependency-path")?

💡 Result:

The action uses the input named cache-dependency-glob (not cache-dependency-path). The v3 README documents cache-dependency-glob and other inputs such as enable-cache, cache-suffix, cache-local-path, prune-cache, etc. [1][2]

Sources:
[1] astral-sh/setup-uv README (v3).
[2] v3 release notes / changelog (cache-dependency-glob default change).


🌐 Web query:

What inputs are supported by astral-sh/setup-uv@v3 in its action.yml? Does it include a "python-version" input?

💡 Result:

Short answer: No — the v3 action.yml for astral-sh/setup-uv does not provide a python-version input. The python-version input was added in later releases (examples/docs show it in v4/v6). Sources: astral-sh setup-uv v3 docs/README and later docs showing python-version. [1][2]

Sources

  • setup-uv README / v3 examples (no python-version shown). [1]
  • setup-uv / repo docs showing python-version input in later releases (v4/v6). [2]

Pin Python version and enforce UV lock

  • Add a separate actions/setup-python@v4 step to pin Python 3.12 before running astral-sh/setup-uv@v3 (since v3 has no python-version input).
  • Confirmed cache-dependency-glob is correct.
  • Add --frozen flag to the uv sync step.
🤖 Prompt for AI Agents
.github/workflows/publish.yml lines 17-22: the workflow installs uv without
pinning Python and doesn't enforce the uv lock during sync; add a prior step
using actions/setup-python@v4 to pin python-version: '3.12' (placed before the
astral-sh/setup-uv@v3 step), keep cache-dependency-glob as-is, and update the uv
sync invocation to include the --frozen flag to ensure the lockfile is enforced.

- name: Run UV Sync
run: |
uv sync

- name: Build
run: uv build

- name: Publish
run: uv publish -t ${{ secrets.THE_PYPI_TOKEN }}
27 changes: 0 additions & 27 deletions .github/workflows/refactor.yml

This file was deleted.

40 changes: 0 additions & 40 deletions .github/workflows/release.yml

This file was deleted.

Loading
Loading