@codewithdan/zingit 0.17.6 → 0.17.7
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/AGENTS.md +16 -6
- package/package.json +2 -2
- package/server/dist/index.js +2 -1
- package/server/dist/utils/agent-detection.js +12 -2
package/AGENTS.md
CHANGED
|
@@ -82,7 +82,8 @@ zingit/
|
|
|
82
82
|
│ │ ├── base.ts # Abstract base agent class
|
|
83
83
|
│ │ ├── claude.ts # Claude Code CLI integration
|
|
84
84
|
│ │ ├── copilot.ts # GitHub Copilot SDK integration
|
|
85
|
-
│ │
|
|
85
|
+
│ │ ├── codex.ts # OpenAI Codex integration
|
|
86
|
+
│ │ └── opencode.ts # OpenCode integration
|
|
86
87
|
│ ├── handlers/
|
|
87
88
|
│ │ └── messageHandlers.ts # WebSocket message handlers
|
|
88
89
|
│ ├── types.ts # Server-side TypeScript interfaces
|
|
@@ -106,6 +107,7 @@ zingit/
|
|
|
106
107
|
- **@anthropic-ai/claude-agent-sdk** - Claude Code integration
|
|
107
108
|
- **@github/copilot-sdk** - GitHub Copilot integration
|
|
108
109
|
- **@openai/codex-sdk** - OpenAI Codex integration
|
|
110
|
+
- **@codewithdan/agent-sdk-core** - Unified agent provider (Copilot, Claude, Codex, OpenCode)
|
|
109
111
|
|
|
110
112
|
## Key Concepts
|
|
111
113
|
|
|
@@ -132,7 +134,7 @@ The history component tracks all changes made by the AI agent:
|
|
|
132
134
|
|
|
133
135
|
### Agent System
|
|
134
136
|
The server uses a pluggable agent architecture:
|
|
135
|
-
- Set `AGENT=claude`, `AGENT=copilot`, or `AGENT=
|
|
137
|
+
- Set `AGENT=claude`, `AGENT=copilot`, `AGENT=codex`, or `AGENT=opencode` environment variable
|
|
136
138
|
- Agents implement `Agent` interface with `createSession()` and `formatPrompt()`
|
|
137
139
|
- Claude agent spawns `claude --print` CLI process
|
|
138
140
|
- Copilot agent uses the GitHub Copilot SDK
|
|
@@ -163,7 +165,8 @@ npm run typecheck -w client # Type check without emitting
|
|
|
163
165
|
```bash
|
|
164
166
|
npx cross-env AGENT=claude npm run dev -w server # Start with Claude Code agent
|
|
165
167
|
npx cross-env AGENT=copilot npm run dev -w server # Start with GitHub Copilot agent
|
|
166
|
-
npx cross-env AGENT=codex npm run dev -w server
|
|
168
|
+
npx cross-env AGENT=codex npm run dev -w server # Start with OpenAI Codex agent
|
|
169
|
+
npx cross-env AGENT=opencode npm run dev -w server # Start with OpenCode agent
|
|
167
170
|
npm run typecheck -w server # Type check
|
|
168
171
|
```
|
|
169
172
|
|
|
@@ -298,9 +301,16 @@ Users activate ZingIt by adding `?zingit` to any URL: `http://localhost:5200/?zi
|
|
|
298
301
|
|
|
299
302
|
## GitHub Actions Workflow
|
|
300
303
|
|
|
301
|
-
Automated release and deployment
|
|
302
|
-
|
|
303
|
-
|
|
304
|
+
Automated release and deployment triggered by pushing a version tag (`v*`):
|
|
305
|
+
|
|
306
|
+
**Local release steps:**
|
|
307
|
+
1. Run `npm run release` — bumps version, updates CHANGELOG.md, commits, and creates a `v*` tag
|
|
308
|
+
2. Run `git push --follow-tags origin main` — pushes the commit and tag
|
|
309
|
+
|
|
310
|
+
**What the GitHub Actions workflow does:**
|
|
311
|
+
1. Installs dependencies and builds both client and server
|
|
312
|
+
2. Publishes to npm (`npm publish`)
|
|
313
|
+
3. Deploys demo site to GitHub Pages
|
|
304
314
|
|
|
305
315
|
**Setup Requirements:**
|
|
306
316
|
- `NPM_TOKEN` secret in repository settings (for npm publishing)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@codewithdan/zingit",
|
|
3
|
-
"version": "0.17.
|
|
3
|
+
"version": "0.17.7",
|
|
4
4
|
"description": "AI-powered UI marker tool - point, mark, and let AI fix it",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"engines": {
|
|
@@ -60,7 +60,7 @@
|
|
|
60
60
|
"homepage": "https://github.com/danwahlin/zingit#readme",
|
|
61
61
|
"dependencies": {
|
|
62
62
|
"@anthropic-ai/claude-agent-sdk": "^0.2.17",
|
|
63
|
-
"@codewithdan/agent-sdk-core": "^0.
|
|
63
|
+
"@codewithdan/agent-sdk-core": "^0.3.1",
|
|
64
64
|
"@github/copilot-sdk": "^0.1.16",
|
|
65
65
|
"@openai/codex-sdk": ">=0.80.0",
|
|
66
66
|
"diff": "^8.0.3",
|
package/server/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// server/src/index.ts
|
|
2
2
|
import { WebSocketServer } from 'ws';
|
|
3
3
|
import { CoreProviderAdapter } from './agents/core-adapter.js';
|
|
4
|
-
import { CopilotProvider, ClaudeProvider, CodexProvider, } from '@codewithdan/agent-sdk-core';
|
|
4
|
+
import { CopilotProvider, ClaudeProvider, CodexProvider, OpenCodeProvider, } from '@codewithdan/agent-sdk-core';
|
|
5
5
|
import { spawn } from 'node:child_process';
|
|
6
6
|
import { userInfo } from 'node:os';
|
|
7
7
|
import { detectAgents } from './utils/agent-detection.js';
|
|
@@ -57,6 +57,7 @@ function createAgentFactory() {
|
|
|
57
57
|
copilot: () => new CoreProviderAdapter(new CopilotProvider()),
|
|
58
58
|
claude: () => new CoreProviderAdapter(new ClaudeProvider(claudeOpts)),
|
|
59
59
|
codex: () => new CoreProviderAdapter(new CodexProvider()),
|
|
60
|
+
opencode: () => new CoreProviderAdapter(new OpenCodeProvider()),
|
|
60
61
|
};
|
|
61
62
|
}
|
|
62
63
|
const agentFactories = createAgentFactory();
|
|
@@ -35,10 +35,11 @@ function checkCodexAuth() {
|
|
|
35
35
|
*/
|
|
36
36
|
export async function detectAgents() {
|
|
37
37
|
// Run all CLI checks in parallel for better performance
|
|
38
|
-
const [claudeCheck, copilotCheck, codexCheck] = await Promise.all([
|
|
38
|
+
const [claudeCheck, copilotCheck, codexCheck, opencodeCheck] = await Promise.all([
|
|
39
39
|
checkCLI('claude'),
|
|
40
40
|
checkCLI('copilot'),
|
|
41
|
-
checkCLI('codex')
|
|
41
|
+
checkCLI('codex'),
|
|
42
|
+
checkCLI('opencode')
|
|
42
43
|
]);
|
|
43
44
|
const agents = [];
|
|
44
45
|
// Claude Code
|
|
@@ -80,6 +81,15 @@ export async function detectAgents() {
|
|
|
80
81
|
installCommand: 'npm install -g @openai/codex'
|
|
81
82
|
});
|
|
82
83
|
}
|
|
84
|
+
// OpenCode
|
|
85
|
+
agents.push({
|
|
86
|
+
name: 'opencode',
|
|
87
|
+
displayName: 'OpenCode',
|
|
88
|
+
available: opencodeCheck.installed,
|
|
89
|
+
version: opencodeCheck.version,
|
|
90
|
+
reason: opencodeCheck.installed ? undefined : 'OpenCode CLI not found',
|
|
91
|
+
installCommand: 'npm install -g opencode-ai'
|
|
92
|
+
});
|
|
83
93
|
return agents;
|
|
84
94
|
}
|
|
85
95
|
/**
|