oh-my-claude-sisyphus 3.7.2 → 3.7.4
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/build-fixer-low.md +2 -2
- package/agents/build-fixer.md +74 -19
- package/agents/code-reviewer.md +7 -7
- package/agents/designer-high.md +2 -2
- package/agents/designer-low.md +1 -1
- package/agents/designer.md +17 -2
- package/agents/security-reviewer.md +86 -17
- package/agents/tdd-guide.md +151 -12
- package/dist/__tests__/compatibility-security.test.d.ts +13 -0
- package/dist/__tests__/compatibility-security.test.d.ts.map +1 -0
- package/dist/__tests__/compatibility-security.test.js +403 -0
- package/dist/__tests__/compatibility-security.test.js.map +1 -0
- package/dist/__tests__/compatibility.test.d.ts +7 -0
- package/dist/__tests__/compatibility.test.d.ts.map +1 -0
- package/dist/__tests__/compatibility.test.js +484 -0
- package/dist/__tests__/compatibility.test.js.map +1 -0
- package/dist/__tests__/hud/analytics-display.test.js +4 -0
- package/dist/__tests__/hud/analytics-display.test.js.map +1 -1
- package/dist/__tests__/installer.test.js +1 -1
- package/dist/__tests__/skills.test.js +6 -5
- package/dist/__tests__/skills.test.js.map +1 -1
- package/dist/agents/definitions.js +1 -1
- package/dist/agents/definitions.js.map +1 -1
- package/dist/compatibility/discovery.d.ts +58 -0
- package/dist/compatibility/discovery.d.ts.map +1 -0
- package/dist/compatibility/discovery.js +621 -0
- package/dist/compatibility/discovery.js.map +1 -0
- package/dist/compatibility/index.d.ts +51 -0
- package/dist/compatibility/index.d.ts.map +1 -0
- package/dist/compatibility/index.js +72 -0
- package/dist/compatibility/index.js.map +1 -0
- package/dist/compatibility/mcp-bridge.d.ts +138 -0
- package/dist/compatibility/mcp-bridge.d.ts.map +1 -0
- package/dist/compatibility/mcp-bridge.js +524 -0
- package/dist/compatibility/mcp-bridge.js.map +1 -0
- package/dist/compatibility/permission-adapter.d.ts +79 -0
- package/dist/compatibility/permission-adapter.d.ts.map +1 -0
- package/dist/compatibility/permission-adapter.js +369 -0
- package/dist/compatibility/permission-adapter.js.map +1 -0
- package/dist/compatibility/registry.d.ts +161 -0
- package/dist/compatibility/registry.d.ts.map +1 -0
- package/dist/compatibility/registry.js +389 -0
- package/dist/compatibility/registry.js.map +1 -0
- package/dist/compatibility/types.d.ts +249 -0
- package/dist/compatibility/types.d.ts.map +1 -0
- package/dist/compatibility/types.js +8 -0
- package/dist/compatibility/types.js.map +1 -0
- package/dist/features/rate-limit-wait/daemon.d.ts.map +1 -1
- package/dist/features/rate-limit-wait/daemon.js +3 -0
- package/dist/features/rate-limit-wait/daemon.js.map +1 -1
- package/dist/hooks/autopilot/prompts.d.ts.map +1 -1
- package/dist/hooks/autopilot/prompts.js +17 -3
- package/dist/hooks/autopilot/prompts.js.map +1 -1
- package/dist/hooks/github-auto-responder/classifier.d.ts +43 -0
- package/dist/hooks/github-auto-responder/classifier.d.ts.map +1 -0
- package/dist/hooks/github-auto-responder/classifier.js +150 -0
- package/dist/hooks/github-auto-responder/classifier.js.map +1 -0
- package/dist/hooks/github-auto-responder/config.d.ts +109 -0
- package/dist/hooks/github-auto-responder/config.d.ts.map +1 -0
- package/dist/hooks/github-auto-responder/config.js +69 -0
- package/dist/hooks/github-auto-responder/config.js.map +1 -0
- package/dist/hooks/github-auto-responder/constants.d.ts +45 -0
- package/dist/hooks/github-auto-responder/constants.d.ts.map +1 -0
- package/dist/hooks/github-auto-responder/constants.js +60 -0
- package/dist/hooks/github-auto-responder/constants.js.map +1 -0
- package/dist/hooks/github-auto-responder/filters.d.ts +95 -0
- package/dist/hooks/github-auto-responder/filters.d.ts.map +1 -0
- package/dist/hooks/github-auto-responder/filters.js +174 -0
- package/dist/hooks/github-auto-responder/filters.js.map +1 -0
- package/dist/hooks/github-auto-responder/github-client.d.ts +65 -0
- package/dist/hooks/github-auto-responder/github-client.d.ts.map +1 -0
- package/dist/hooks/github-auto-responder/github-client.js +128 -0
- package/dist/hooks/github-auto-responder/github-client.js.map +1 -0
- package/dist/hooks/github-auto-responder/idempotency.d.ts +68 -0
- package/dist/hooks/github-auto-responder/idempotency.d.ts.map +1 -0
- package/dist/hooks/github-auto-responder/idempotency.js +147 -0
- package/dist/hooks/github-auto-responder/idempotency.js.map +1 -0
- package/dist/hooks/github-auto-responder/index.d.ts +140 -0
- package/dist/hooks/github-auto-responder/index.d.ts.map +1 -0
- package/dist/hooks/github-auto-responder/index.js +145 -0
- package/dist/hooks/github-auto-responder/index.js.map +1 -0
- package/dist/hooks/github-auto-responder/persona.d.ts +40 -0
- package/dist/hooks/github-auto-responder/persona.d.ts.map +1 -0
- package/dist/hooks/github-auto-responder/persona.js +99 -0
- package/dist/hooks/github-auto-responder/persona.js.map +1 -0
- package/dist/hooks/github-auto-responder/responder.d.ts +122 -0
- package/dist/hooks/github-auto-responder/responder.d.ts.map +1 -0
- package/dist/hooks/github-auto-responder/responder.js +264 -0
- package/dist/hooks/github-auto-responder/responder.js.map +1 -0
- package/dist/hooks/github-auto-responder/server.d.ts +140 -0
- package/dist/hooks/github-auto-responder/server.d.ts.map +1 -0
- package/dist/hooks/github-auto-responder/server.js +301 -0
- package/dist/hooks/github-auto-responder/server.js.map +1 -0
- package/dist/hooks/github-auto-responder/signature.d.ts +34 -0
- package/dist/hooks/github-auto-responder/signature.d.ts.map +1 -0
- package/dist/hooks/github-auto-responder/signature.js +79 -0
- package/dist/hooks/github-auto-responder/signature.js.map +1 -0
- package/dist/hooks/github-auto-responder/templates.d.ts +16 -0
- package/dist/hooks/github-auto-responder/templates.d.ts.map +1 -0
- package/dist/hooks/github-auto-responder/templates.js +93 -0
- package/dist/hooks/github-auto-responder/templates.js.map +1 -0
- package/dist/hooks/github-auto-responder/types.d.ts +246 -0
- package/dist/hooks/github-auto-responder/types.d.ts.map +1 -0
- package/dist/hooks/github-auto-responder/types.js +7 -0
- package/dist/hooks/github-auto-responder/types.js.map +1 -0
- package/dist/hud/analytics-display.d.ts +1 -1
- package/dist/hud/analytics-display.d.ts.map +1 -1
- package/dist/hud/analytics-display.js +24 -7
- package/dist/hud/analytics-display.js.map +1 -1
- package/dist/installer/index.d.ts +1 -1
- package/dist/installer/index.js +1 -1
- package/docs/COMPATIBILITY.md +1051 -0
- package/package.json +3 -1
- package/scripts/github-webhook-server.ts +141 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "oh-my-claude-sisyphus",
|
|
3
|
-
"version": "3.7.
|
|
3
|
+
"version": "3.7.4",
|
|
4
4
|
"description": "Multi-agent orchestration system for Claude Code - Inspired by oh-my-opencode",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -53,10 +53,12 @@
|
|
|
53
53
|
"@ast-grep/napi": "^0.31.0",
|
|
54
54
|
"@tokscale/core": "^1.0.25",
|
|
55
55
|
"@types/better-sqlite3": "^7.6.13",
|
|
56
|
+
"ajv": "^8.17.1",
|
|
56
57
|
"better-sqlite3": "^12.6.2",
|
|
57
58
|
"chalk": "^5.3.0",
|
|
58
59
|
"commander": "^12.1.0",
|
|
59
60
|
"jsonc-parser": "^3.3.1",
|
|
61
|
+
"safe-regex": "^2.1.1",
|
|
60
62
|
"vscode-languageserver-protocol": "^3.17.5",
|
|
61
63
|
"zod": "^3.23.8"
|
|
62
64
|
},
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
#!/usr/bin/env tsx
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* GitHub Webhook Server - Standalone Entry Point
|
|
5
|
+
*
|
|
6
|
+
* Starts an HTTP server that listens for GitHub webhook events and
|
|
7
|
+
* processes them through the auto-responder pipeline.
|
|
8
|
+
*
|
|
9
|
+
* Usage: ./scripts/github-webhook-server.ts
|
|
10
|
+
*
|
|
11
|
+
* Environment Variables:
|
|
12
|
+
* - GITHUB_WEBHOOK_SECRET: Secret for webhook payload verification
|
|
13
|
+
* - GITHUB_TOKEN: GitHub API token for posting comments
|
|
14
|
+
* - ANTHROPIC_API_KEY: Anthropic API key for response generation
|
|
15
|
+
* - GITHUB_SELF_LOGIN: GitHub username of the bot (for self-reply filtering)
|
|
16
|
+
* - AUTO_RESPONDER_MODE: 'draft' or 'auto' (default: 'draft')
|
|
17
|
+
* - AUTO_RESPONDER_PORT: Server port (default: 3000)
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
import { createAutoResponder } from '../src/hooks/github-auto-responder/responder.js';
|
|
21
|
+
import { loadConfig } from '../src/hooks/github-auto-responder/config.js';
|
|
22
|
+
import { verifySignature } from '../src/hooks/github-auto-responder/signature.js';
|
|
23
|
+
import type { WebhookPayload } from '../src/hooks/github-auto-responder/types.js';
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Main server function - starts HTTP listener and initializes auto-responder
|
|
27
|
+
*/
|
|
28
|
+
async function main(): Promise<void> {
|
|
29
|
+
try {
|
|
30
|
+
console.log('[webhook-server] Starting GitHub webhook server...');
|
|
31
|
+
|
|
32
|
+
// Load configuration from environment
|
|
33
|
+
const config = loadConfig();
|
|
34
|
+
console.log(`[webhook-server] Loaded config: port=${config.port}, mode=${config.mode}`);
|
|
35
|
+
|
|
36
|
+
// Create and initialize auto-responder
|
|
37
|
+
const responder = createAutoResponder(config);
|
|
38
|
+
await responder.init();
|
|
39
|
+
console.log('[webhook-server] Auto-responder initialized');
|
|
40
|
+
|
|
41
|
+
// Create HTTP server to listen for webhooks
|
|
42
|
+
const server = (
|
|
43
|
+
await import('http')
|
|
44
|
+
).createServer(async (req, res) => {
|
|
45
|
+
// Only handle POST requests to /webhook
|
|
46
|
+
if (req.method !== 'POST' || req.url !== '/webhook') {
|
|
47
|
+
res.writeHead(404, { 'Content-Type': 'application/json' });
|
|
48
|
+
res.end(JSON.stringify({ error: 'Not found' }));
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
// Read request body
|
|
53
|
+
let body = '';
|
|
54
|
+
req.on('data', (chunk) => {
|
|
55
|
+
body += chunk.toString();
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
req.on('end', async () => {
|
|
59
|
+
try {
|
|
60
|
+
// Verify webhook signature
|
|
61
|
+
const signature = (
|
|
62
|
+
req.headers['x-hub-signature-256'] as string
|
|
63
|
+
) || '';
|
|
64
|
+
if (!verifySignature(Buffer.from(body), signature, config.webhookSecret)) {
|
|
65
|
+
res.writeHead(401, { 'Content-Type': 'application/json' });
|
|
66
|
+
res.end(
|
|
67
|
+
JSON.stringify({ error: 'Invalid signature' }),
|
|
68
|
+
);
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
// Parse payload
|
|
73
|
+
const payload: WebhookPayload = JSON.parse(body);
|
|
74
|
+
const deliveryId = (
|
|
75
|
+
req.headers['x-github-delivery'] as string
|
|
76
|
+
) || 'unknown';
|
|
77
|
+
|
|
78
|
+
console.log(
|
|
79
|
+
`[webhook-server] Received webhook: delivery=${deliveryId}, action=${payload.action}`,
|
|
80
|
+
);
|
|
81
|
+
|
|
82
|
+
// Process webhook
|
|
83
|
+
const result = await responder.processWebhook(deliveryId, payload);
|
|
84
|
+
|
|
85
|
+
// Send response
|
|
86
|
+
res.writeHead(200, { 'Content-Type': 'application/json' });
|
|
87
|
+
res.end(JSON.stringify(result));
|
|
88
|
+
} catch (error) {
|
|
89
|
+
console.error('[webhook-server] Error processing webhook:', error);
|
|
90
|
+
res.writeHead(500, { 'Content-Type': 'application/json' });
|
|
91
|
+
res.end(
|
|
92
|
+
JSON.stringify({
|
|
93
|
+
error: 'Internal server error',
|
|
94
|
+
message: error instanceof Error ? error.message : 'Unknown error',
|
|
95
|
+
}),
|
|
96
|
+
);
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
});
|
|
100
|
+
|
|
101
|
+
// Handle unhandled rejections
|
|
102
|
+
process.on('unhandledRejection', (reason, promise) => {
|
|
103
|
+
console.error('[webhook-server] Unhandled rejection:', reason);
|
|
104
|
+
});
|
|
105
|
+
|
|
106
|
+
// Handle graceful shutdown
|
|
107
|
+
process.on('SIGTERM', async () => {
|
|
108
|
+
console.log('[webhook-server] SIGTERM received, shutting down...');
|
|
109
|
+
server.close(async () => {
|
|
110
|
+
await responder.close();
|
|
111
|
+
process.exit(0);
|
|
112
|
+
});
|
|
113
|
+
});
|
|
114
|
+
|
|
115
|
+
process.on('SIGINT', async () => {
|
|
116
|
+
console.log('[webhook-server] SIGINT received, shutting down...');
|
|
117
|
+
server.close(async () => {
|
|
118
|
+
await responder.close();
|
|
119
|
+
process.exit(0);
|
|
120
|
+
});
|
|
121
|
+
});
|
|
122
|
+
|
|
123
|
+
// Start listening
|
|
124
|
+
server.listen(config.port, () => {
|
|
125
|
+
console.log(
|
|
126
|
+
`[webhook-server] Server started on http://localhost:${config.port}`,
|
|
127
|
+
);
|
|
128
|
+
console.log(`[webhook-server] Listening for webhooks at /webhook`);
|
|
129
|
+
console.log(`[webhook-server] Mode: ${config.mode}`);
|
|
130
|
+
});
|
|
131
|
+
} catch (error) {
|
|
132
|
+
console.error('[webhook-server] Fatal error:', error);
|
|
133
|
+
process.exit(1);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
// Run main function
|
|
138
|
+
main().catch((error) => {
|
|
139
|
+
console.error('[webhook-server] Uncaught error:', error);
|
|
140
|
+
process.exit(1);
|
|
141
|
+
});
|