agent-termo 0.0.0-stage → 1.0.0
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.
- package/.claude/agents/backend-architecture-designer.md +1250 -0
- package/.claude/agents/backend-expert.md +1731 -0
- package/.claude/agents/deployment-expert.md +1126 -0
- package/.claude/agents/dev-environment-initiator.md +788 -0
- package/.claude/agents/frontend-expert.md +1343 -0
- package/.claude/agents/frontend-planner.md +1044 -0
- package/.claude/agents/git-manager.md +811 -0
- package/.claude/agents/project-manager.md +843 -0
- package/.claude/agents/security-expert.md +835 -0
- package/.claude/agents/tech-stack-expert.md +1357 -0
- package/.claude/agents/test-agent.md +1372 -0
- package/.claude/agents/uiux-designer.md +955 -0
- package/.claude/commands/build.md +5 -0
- package/.claude/commands/deploy.md +3 -0
- package/.claude/commands/feature.md +3 -0
- package/.claude/commands/fix.md +3 -0
- package/.claude/skills/pdf-reader/.skillfish.json +10 -0
- package/.claude/skills/pdf-reader/SKILL.md +94 -0
- package/.claude/skills/pdf-reader/pdf-reader +203 -0
- package/README.md +169 -3
- package/dist/.claude/agents/backend-architecture-designer.md +1250 -0
- package/dist/.claude/agents/backend-expert.md +1731 -0
- package/dist/.claude/agents/deployment-expert.md +1126 -0
- package/dist/.claude/agents/dev-environment-initiator.md +788 -0
- package/dist/.claude/agents/frontend-expert.md +1343 -0
- package/dist/.claude/agents/frontend-planner.md +1044 -0
- package/dist/.claude/agents/git-manager.md +811 -0
- package/dist/.claude/agents/project-manager.md +843 -0
- package/dist/.claude/agents/security-expert.md +835 -0
- package/dist/.claude/agents/tech-stack-expert.md +1357 -0
- package/dist/.claude/agents/test-agent.md +1372 -0
- package/dist/.claude/agents/uiux-designer.md +955 -0
- package/dist/.claude/commands/build.md +5 -0
- package/dist/.claude/commands/deploy.md +3 -0
- package/dist/.claude/commands/feature.md +3 -0
- package/dist/.claude/commands/fix.md +3 -0
- package/dist/.claude/skills/pdf-reader/.skillfish.json +10 -0
- package/dist/.claude/skills/pdf-reader/SKILL.md +94 -0
- package/dist/.claude/skills/pdf-reader/pdf-reader +203 -0
- package/dist/cli.js +206 -0
- package/dist/cli.js.map +7 -0
- package/dist/main.js +173 -0
- package/dist/main.js.map +7 -0
- package/package.json +89 -5
- package/src/agents/index.ts +94 -0
- package/src/cli.ts +76 -0
- package/src/diff/index.ts +255 -0
- package/src/llm/client.ts +192 -0
- package/src/llm/tools.ts +206 -0
- package/src/main.ts +427 -0
- package/src/memory/index.ts +130 -0
- package/src/tools/index.ts +371 -0
- package/src/types/index.ts +151 -0
- package/src/ui/index.ts +519 -0
- package/src/utils/ansi.ts +134 -0
- package/src/utils/config.ts +75 -0
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
@"project-manager (agent)" @"tech-stack-expert (agent)" @"uiux-designer (agent)" @"backend-architecture-designer (agent)" @"backend-expert (agent)" @"frontend-planner (agent)" @"frontend-expert (agent)" @"dev-environment-initiator (agent)" @"deployment-expert (agent)" @"git-manager (agent)"
|
|
2
|
+
|
|
3
|
+
Use all the above agents in the correct dependency order to accomplish this task:
|
|
4
|
+
|
|
5
|
+
$ARGUMENTS
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 2,
|
|
3
|
+
"name": "pdf-reader",
|
|
4
|
+
"owner": "lorenzovenice",
|
|
5
|
+
"repo": "nanoclaw-venice",
|
|
6
|
+
"path": ".claude/skills/add-pdf-reader/add/container/skills/pdf-reader",
|
|
7
|
+
"branch": "main",
|
|
8
|
+
"sha": "8dc7e93c5d878c78697f0d054060d398996c7aec",
|
|
9
|
+
"source": "manual"
|
|
10
|
+
}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: pdf-reader
|
|
3
|
+
description: Read and extract text from PDF files — documents, reports, contracts, spreadsheets. Use whenever you need to read PDF content, not just when explicitly asked. Handles local files, URLs, and WhatsApp attachments.
|
|
4
|
+
allowed-tools: Bash(pdf-reader:*)
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# PDF Reader
|
|
8
|
+
|
|
9
|
+
## Quick start
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
pdf-reader extract report.pdf # Extract all text
|
|
13
|
+
pdf-reader extract report.pdf --layout # Preserve tables/columns
|
|
14
|
+
pdf-reader fetch https://example.com/doc.pdf # Download and extract
|
|
15
|
+
pdf-reader info report.pdf # Show metadata + size
|
|
16
|
+
pdf-reader list # List all PDFs in directory tree
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Commands
|
|
20
|
+
|
|
21
|
+
### extract — Extract text from PDF
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
pdf-reader extract <file> # Full text to stdout
|
|
25
|
+
pdf-reader extract <file> --layout # Preserve layout (tables, columns)
|
|
26
|
+
pdf-reader extract <file> --pages 1-5 # Pages 1 through 5
|
|
27
|
+
pdf-reader extract <file> --pages 3-3 # Single page (page 3)
|
|
28
|
+
pdf-reader extract <file> --layout --pages 2-10 # Layout + page range
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Options:
|
|
32
|
+
- `--layout` — Maintains spatial positioning. Essential for tables, spreadsheets, multi-column docs.
|
|
33
|
+
- `--pages N-M` — Extract only pages N through M (1-based, inclusive).
|
|
34
|
+
|
|
35
|
+
### fetch — Download and extract PDF from URL
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
pdf-reader fetch <url> # Download, verify, extract with layout
|
|
39
|
+
pdf-reader fetch <url> report.pdf # Also save a local copy
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Downloads the PDF, verifies it has a valid `%PDF` header, then extracts text with layout preservation. Temporary files are cleaned up automatically.
|
|
43
|
+
|
|
44
|
+
### info — PDF metadata and file size
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
pdf-reader info <file>
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Shows title, author, page count, page size, PDF version, and file size on disk.
|
|
51
|
+
|
|
52
|
+
### list — Find all PDFs in directory tree
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
pdf-reader list
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Recursively lists all `.pdf` files with page count and file size.
|
|
59
|
+
|
|
60
|
+
## WhatsApp PDF attachments
|
|
61
|
+
|
|
62
|
+
When a user sends a PDF on WhatsApp, it is automatically saved to the `attachments/` directory. The message will include a path hint like:
|
|
63
|
+
|
|
64
|
+
> [PDF attached: attachments/document.pdf]
|
|
65
|
+
|
|
66
|
+
To read the attached PDF:
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
pdf-reader extract attachments/document.pdf --layout
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## Example workflows
|
|
73
|
+
|
|
74
|
+
### Read a contract and summarize key terms
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
pdf-reader info attachments/contract.pdf
|
|
78
|
+
pdf-reader extract attachments/contract.pdf --layout
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### Extract specific pages from a long report
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
pdf-reader info report.pdf # Check total pages
|
|
85
|
+
pdf-reader extract report.pdf --pages 1-3 # Executive summary
|
|
86
|
+
pdf-reader extract report.pdf --pages 15-20 # Financial tables
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### Fetch and analyze a public document
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
pdf-reader fetch https://example.com/annual-report.pdf report.pdf
|
|
93
|
+
pdf-reader info report.pdf
|
|
94
|
+
```
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
set -euo pipefail
|
|
3
|
+
|
|
4
|
+
# pdf-reader — CLI wrapper around poppler-utils (pdftotext, pdfinfo)
|
|
5
|
+
# Provides extract, fetch, info, list commands for PDF processing.
|
|
6
|
+
|
|
7
|
+
VERSION="1.0.0"
|
|
8
|
+
|
|
9
|
+
usage() {
|
|
10
|
+
cat <<'USAGE'
|
|
11
|
+
pdf-reader — Extract text and metadata from PDF files
|
|
12
|
+
|
|
13
|
+
Usage:
|
|
14
|
+
pdf-reader extract <file> [--layout] [--pages N-M]
|
|
15
|
+
pdf-reader fetch <url> [filename]
|
|
16
|
+
pdf-reader info <file>
|
|
17
|
+
pdf-reader list
|
|
18
|
+
pdf-reader help
|
|
19
|
+
|
|
20
|
+
Commands:
|
|
21
|
+
extract Extract text from a PDF file to stdout
|
|
22
|
+
fetch Download a PDF from a URL and extract text
|
|
23
|
+
info Show PDF metadata and file size
|
|
24
|
+
list List all PDFs in current directory tree
|
|
25
|
+
help Show this help message
|
|
26
|
+
|
|
27
|
+
Extract options:
|
|
28
|
+
--layout Preserve original layout (tables, columns)
|
|
29
|
+
--pages Page range to extract (e.g. 1-5, 3-3 for single page)
|
|
30
|
+
USAGE
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
cmd_extract() {
|
|
34
|
+
local file=""
|
|
35
|
+
local layout=false
|
|
36
|
+
local first_page=""
|
|
37
|
+
local last_page=""
|
|
38
|
+
|
|
39
|
+
# Parse arguments
|
|
40
|
+
while [[ $# -gt 0 ]]; do
|
|
41
|
+
case "$1" in
|
|
42
|
+
--layout)
|
|
43
|
+
layout=true
|
|
44
|
+
shift
|
|
45
|
+
;;
|
|
46
|
+
--pages)
|
|
47
|
+
if [[ -z "${2:-}" ]]; then
|
|
48
|
+
echo "Error: --pages requires a range argument (e.g. 1-5)" >&2
|
|
49
|
+
exit 1
|
|
50
|
+
fi
|
|
51
|
+
local range="$2"
|
|
52
|
+
first_page="${range%-*}"
|
|
53
|
+
last_page="${range#*-}"
|
|
54
|
+
shift 2
|
|
55
|
+
;;
|
|
56
|
+
-*)
|
|
57
|
+
echo "Error: Unknown option: $1" >&2
|
|
58
|
+
exit 1
|
|
59
|
+
;;
|
|
60
|
+
*)
|
|
61
|
+
if [[ -z "$file" ]]; then
|
|
62
|
+
file="$1"
|
|
63
|
+
else
|
|
64
|
+
echo "Error: Unexpected argument: $1" >&2
|
|
65
|
+
exit 1
|
|
66
|
+
fi
|
|
67
|
+
shift
|
|
68
|
+
;;
|
|
69
|
+
esac
|
|
70
|
+
done
|
|
71
|
+
|
|
72
|
+
if [[ -z "$file" ]]; then
|
|
73
|
+
echo "Error: No file specified" >&2
|
|
74
|
+
echo "Usage: pdf-reader extract <file> [--layout] [--pages N-M]" >&2
|
|
75
|
+
exit 1
|
|
76
|
+
fi
|
|
77
|
+
|
|
78
|
+
if [[ ! -f "$file" ]]; then
|
|
79
|
+
echo "Error: File not found: $file" >&2
|
|
80
|
+
exit 1
|
|
81
|
+
fi
|
|
82
|
+
|
|
83
|
+
# Build pdftotext arguments
|
|
84
|
+
local args=()
|
|
85
|
+
if [[ "$layout" == true ]]; then
|
|
86
|
+
args+=(-layout)
|
|
87
|
+
fi
|
|
88
|
+
if [[ -n "$first_page" ]]; then
|
|
89
|
+
args+=(-f "$first_page")
|
|
90
|
+
fi
|
|
91
|
+
if [[ -n "$last_page" ]]; then
|
|
92
|
+
args+=(-l "$last_page")
|
|
93
|
+
fi
|
|
94
|
+
|
|
95
|
+
pdftotext ${args[@]+"${args[@]}"} "$file" -
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
cmd_fetch() {
|
|
99
|
+
local url="${1:-}"
|
|
100
|
+
local filename="${2:-}"
|
|
101
|
+
|
|
102
|
+
if [[ -z "$url" ]]; then
|
|
103
|
+
echo "Error: No URL specified" >&2
|
|
104
|
+
echo "Usage: pdf-reader fetch <url> [filename]" >&2
|
|
105
|
+
exit 1
|
|
106
|
+
fi
|
|
107
|
+
|
|
108
|
+
# Create temporary file
|
|
109
|
+
local tmpfile
|
|
110
|
+
tmpfile="$(mktemp /tmp/pdf-reader-XXXXXX.pdf)"
|
|
111
|
+
trap 'rm -f "$tmpfile"' EXIT
|
|
112
|
+
|
|
113
|
+
# Download
|
|
114
|
+
echo "Downloading: $url" >&2
|
|
115
|
+
if ! curl -sL -o "$tmpfile" "$url"; then
|
|
116
|
+
echo "Error: Failed to download: $url" >&2
|
|
117
|
+
exit 1
|
|
118
|
+
fi
|
|
119
|
+
|
|
120
|
+
# Verify PDF header
|
|
121
|
+
local header
|
|
122
|
+
header="$(head -c 4 "$tmpfile")"
|
|
123
|
+
if [[ "$header" != "%PDF" ]]; then
|
|
124
|
+
echo "Error: Downloaded file is not a valid PDF (header: $header)" >&2
|
|
125
|
+
exit 1
|
|
126
|
+
fi
|
|
127
|
+
|
|
128
|
+
# Save with name if requested
|
|
129
|
+
if [[ -n "$filename" ]]; then
|
|
130
|
+
cp "$tmpfile" "$filename"
|
|
131
|
+
echo "Saved to: $filename" >&2
|
|
132
|
+
fi
|
|
133
|
+
|
|
134
|
+
# Extract with layout
|
|
135
|
+
pdftotext -layout "$tmpfile" -
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
cmd_info() {
|
|
139
|
+
local file="${1:-}"
|
|
140
|
+
|
|
141
|
+
if [[ -z "$file" ]]; then
|
|
142
|
+
echo "Error: No file specified" >&2
|
|
143
|
+
echo "Usage: pdf-reader info <file>" >&2
|
|
144
|
+
exit 1
|
|
145
|
+
fi
|
|
146
|
+
|
|
147
|
+
if [[ ! -f "$file" ]]; then
|
|
148
|
+
echo "Error: File not found: $file" >&2
|
|
149
|
+
exit 1
|
|
150
|
+
fi
|
|
151
|
+
|
|
152
|
+
pdfinfo "$file"
|
|
153
|
+
echo ""
|
|
154
|
+
echo "File size: $(du -h "$file" | cut -f1)"
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
cmd_list() {
|
|
158
|
+
local found=false
|
|
159
|
+
|
|
160
|
+
# Use globbing to find PDFs (globstar makes **/ match recursively)
|
|
161
|
+
shopt -s nullglob globstar
|
|
162
|
+
|
|
163
|
+
# Use associative array to deduplicate (*.pdf overlaps with **/*.pdf)
|
|
164
|
+
declare -A seen
|
|
165
|
+
for pdf in *.pdf **/*.pdf; do
|
|
166
|
+
[[ -v seen["$pdf"] ]] && continue
|
|
167
|
+
seen["$pdf"]=1
|
|
168
|
+
found=true
|
|
169
|
+
|
|
170
|
+
local pages="?"
|
|
171
|
+
local size
|
|
172
|
+
size="$(du -h "$pdf" | cut -f1)"
|
|
173
|
+
|
|
174
|
+
# Try to get page count from pdfinfo
|
|
175
|
+
if page_line="$(pdfinfo "$pdf" 2>/dev/null | grep '^Pages:')"; then
|
|
176
|
+
pages="$(echo "$page_line" | awk '{print $2}')"
|
|
177
|
+
fi
|
|
178
|
+
|
|
179
|
+
printf "%-60s %5s pages %8s\n" "$pdf" "$pages" "$size"
|
|
180
|
+
done
|
|
181
|
+
|
|
182
|
+
if [[ "$found" == false ]]; then
|
|
183
|
+
echo "No PDF files found in current directory tree." >&2
|
|
184
|
+
fi
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
# Main dispatch
|
|
188
|
+
command="${1:-help}"
|
|
189
|
+
shift || true
|
|
190
|
+
|
|
191
|
+
case "$command" in
|
|
192
|
+
extract) cmd_extract "$@" ;;
|
|
193
|
+
fetch) cmd_fetch "$@" ;;
|
|
194
|
+
info) cmd_info "$@" ;;
|
|
195
|
+
list) cmd_list ;;
|
|
196
|
+
help|--help|-h) usage ;;
|
|
197
|
+
version|--version|-v) echo "pdf-reader $VERSION" ;;
|
|
198
|
+
*)
|
|
199
|
+
echo "Error: Unknown command: $command" >&2
|
|
200
|
+
echo "Run 'pdf-reader help' for usage." >&2
|
|
201
|
+
exit 1
|
|
202
|
+
;;
|
|
203
|
+
esac
|
package/README.md
CHANGED
|
@@ -1,3 +1,169 @@
|
|
|
1
|
-
#
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
# Agent-Termo
|
|
2
|
+
|
|
3
|
+
Terminal-based AI coding agent that replicates Claude Code experience.
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
Agent-Termo is a CLI tool that uses Nvidia NIM APIs to provide AI-assisted coding capabilities directly in your terminal. It implements the 12-agent workflow system for autonomous software development.
|
|
8
|
+
|
|
9
|
+
## Features
|
|
10
|
+
|
|
11
|
+
- **Interactive Terminal UI**: Beautiful dark-themed interface with markdown rendering
|
|
12
|
+
- **12-Agent System**: Complete workflow from planning to deployment
|
|
13
|
+
- **Streaming Responses**: Real-time AI output as tokens arrive
|
|
14
|
+
- **Tool Execution**: File operations, bash commands, git integration
|
|
15
|
+
- **Memory & Timeline**: Persistent project context across sessions
|
|
16
|
+
|
|
17
|
+
## Installation
|
|
18
|
+
|
|
19
|
+
### From npm (once published)
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
npm install -g agent-termo
|
|
23
|
+
agent-termo
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
### From source
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
git clone <repository>
|
|
30
|
+
cd agent-termo
|
|
31
|
+
npm install
|
|
32
|
+
npm run dev
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Prerequisites
|
|
36
|
+
|
|
37
|
+
- Node.js 20.x or higher
|
|
38
|
+
- Nvidia NIM API key (free tier available at https://build.nvidia.com/)
|
|
39
|
+
|
|
40
|
+
## Configuration
|
|
41
|
+
|
|
42
|
+
1. Copy `.env.example` to `.env`:
|
|
43
|
+
```bash
|
|
44
|
+
cp .env.example .env
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
2. Add your Nvidia NIM API key to `.env`:
|
|
48
|
+
```
|
|
49
|
+
NIM_API_KEY=your_api_key_here
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
3. Get your free API key from [https://build.nvidia.com/](https://build.nvidia.com/)
|
|
53
|
+
|
|
54
|
+
## Usage
|
|
55
|
+
|
|
56
|
+
### Start the tool
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
agent-termo
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### Tell it what to build
|
|
63
|
+
|
|
64
|
+
```
|
|
65
|
+
> Build a REST API with authentication
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
The tool will:
|
|
69
|
+
1. Analyze requirements with project-manager
|
|
70
|
+
2. Design architecture with backend-architecture-designer
|
|
71
|
+
3. Implement the code with backend-expert
|
|
72
|
+
4. Test with test-agent
|
|
73
|
+
5. Deploy with deployment-expert
|
|
74
|
+
|
|
75
|
+
## Architecture
|
|
76
|
+
|
|
77
|
+
```
|
|
78
|
+
agent-termo/
|
|
79
|
+
├── src/
|
|
80
|
+
│ ├── cli.ts # Commander entry point
|
|
81
|
+
│ ├── main.ts # Main application
|
|
82
|
+
│ ├── ui/ # Terminal UI (blessed)
|
|
83
|
+
│ ├── agents/ # 12 agent implementations
|
|
84
|
+
│ ├── llm/ # OpenAI/NIM integration
|
|
85
|
+
│ ├── tools/ # File, bash, git tools
|
|
86
|
+
│ └── memory/ # Memory system
|
|
87
|
+
├── .claude/agents/ # Agent prompts
|
|
88
|
+
├── tests/ # Test suites
|
|
89
|
+
└── docs/ # Documentation
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
## Technology Stack
|
|
93
|
+
|
|
94
|
+
- **Language**: TypeScript 5.x
|
|
95
|
+
- **Runtime**: Node.js 20.x LTS
|
|
96
|
+
- **TUI Framework**: blessed
|
|
97
|
+
- **LLM Client**: OpenAI SDK (with Nvidia NIM)
|
|
98
|
+
- **Build**: esbuild + pkg
|
|
99
|
+
- **Testing**: vitest
|
|
100
|
+
|
|
101
|
+
See [docs/TECH_STACK.md](docs/TECH_STACK.md) for complete technology decisions.
|
|
102
|
+
|
|
103
|
+
## Development
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
# Install dependencies
|
|
107
|
+
npm install
|
|
108
|
+
|
|
109
|
+
# Run in development mode
|
|
110
|
+
npm run dev
|
|
111
|
+
|
|
112
|
+
# Type check
|
|
113
|
+
npm run typecheck
|
|
114
|
+
|
|
115
|
+
# Lint
|
|
116
|
+
npm run lint
|
|
117
|
+
|
|
118
|
+
# Test
|
|
119
|
+
npm test
|
|
120
|
+
|
|
121
|
+
# Build
|
|
122
|
+
npm run build
|
|
123
|
+
|
|
124
|
+
# Build binaries (Windows, macOS, Linux)
|
|
125
|
+
npm run build:pkg
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
## Project Structure
|
|
129
|
+
|
|
130
|
+
This project uses the **12-agent system** defined in CLAUDE.md:
|
|
131
|
+
|
|
132
|
+
1. project-manager - Orchestrates workflows
|
|
133
|
+
2. tech-stack-expert - Technology selection (DONE)
|
|
134
|
+
3. uiux-designer - Visual design
|
|
135
|
+
4. backend-architecture-designer - API/database design
|
|
136
|
+
5. frontend-planner - Frontend architecture
|
|
137
|
+
6. frontend-expert - Frontend implementation
|
|
138
|
+
7. backend-expert - Backend implementation
|
|
139
|
+
8. dev-environment-initiator - Development setup
|
|
140
|
+
9. security-expert - Security auditing
|
|
141
|
+
10. test-agent - Testing strategy
|
|
142
|
+
11. git-manager - Version control
|
|
143
|
+
12. deployment-expert - Production deployment
|
|
144
|
+
|
|
145
|
+
## Documentation
|
|
146
|
+
|
|
147
|
+
- [CLAUDE.md](CLAUDE.md) - Complete agent system specification
|
|
148
|
+
- [docs/TECH_STACK.md](docs/TECH_STACK.md) - Technology decisions
|
|
149
|
+
- [docs/MEMORY.md](docs/MEMORY.md) - Project memory
|
|
150
|
+
- [docs/TIMELINE.md](docs/TIMELINE.md) - Activity log
|
|
151
|
+
- [docs/PROJECT_PROGRESS.md](docs/PROJECT_PROGRESS.md) - Implementation roadmap
|
|
152
|
+
|
|
153
|
+
## Contributing
|
|
154
|
+
|
|
155
|
+
1. Fork the repository
|
|
156
|
+
2. Create a feature branch
|
|
157
|
+
3. Make your changes
|
|
158
|
+
4. Run tests: `npm test`
|
|
159
|
+
5. Submit a pull request
|
|
160
|
+
|
|
161
|
+
## License
|
|
162
|
+
|
|
163
|
+
MIT
|
|
164
|
+
|
|
165
|
+
## Acknowledgments
|
|
166
|
+
|
|
167
|
+
- Inspired by Claude Code and Anthropic's Claude
|
|
168
|
+
- Built with the 12-agent workflow system
|
|
169
|
+
- Powered by Nvidia NIM APIs
|