anchi-kit 2.2.0 โ 2.3.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.
Potentially problematic release.
This version of anchi-kit might be problematic. Click here for more details.
- package/.cursor/commands/entity.md +135 -0
- package/.cursor/commands/memory/add.md +65 -0
- package/.cursor/commands/memory/load.md +74 -0
- package/.cursor/commands/memory/save.md +68 -0
- package/.cursor/commands/memory.md +141 -0
- package/README.md +427 -127
- package/package.json +1 -1
- package/src/cli.js +6 -0
- package/src/commands/memory.js +158 -0
- package/src/lib/contextDatabase.js +362 -0
- package/src/lib/memoryManager.js +250 -0
- package/.antigravity/agent/code-reviewer.md +0 -141
- package/.antigravity/agent/debugger.md +0 -75
- package/.antigravity/agent/docs-manager.md +0 -120
- package/.antigravity/agent/git-manager.md +0 -60
- package/.antigravity/agent/planner-researcher.md +0 -101
- package/.antigravity/agent/planner.md +0 -88
- package/.antigravity/agent/project-manager.md +0 -113
- package/.antigravity/agent/researcher.md +0 -174
- package/.antigravity/agent/solution-brainstormer.md +0 -90
- package/.antigravity/agent/system-architecture.md +0 -193
- package/.antigravity/agent/tester.md +0 -96
- package/.antigravity/agent/ui-ux-designer.md +0 -233
- package/.antigravity/agent/ui-ux-developer.md +0 -98
- package/.antigravity/command/cook.md +0 -7
- package/.antigravity/command/debug.md +0 -10
- package/.antigravity/command/design/3d.md +0 -65
- package/.antigravity/command/design/fast.md +0 -18
- package/.antigravity/command/design/good.md +0 -21
- package/.antigravity/command/design/screenshot.md +0 -22
- package/.antigravity/command/design/video.md +0 -22
- package/.antigravity/command/docs/init.md +0 -11
- package/.antigravity/command/docs/summarize.md +0 -10
- package/.antigravity/command/docs/update.md +0 -18
- package/.antigravity/command/fix/ci.md +0 -8
- package/.antigravity/command/fix/fast.md +0 -11
- package/.antigravity/command/fix/hard.md +0 -15
- package/.antigravity/command/fix/logs.md +0 -16
- package/.antigravity/command/fix/test.md +0 -18
- package/.antigravity/command/fix/types.md +0 -10
- package/.antigravity/command/git/cm.md +0 -5
- package/.antigravity/command/git/cp.md +0 -4
- package/.antigravity/command/plan/ci.md +0 -12
- package/.antigravity/command/plan/two.md +0 -13
- package/.antigravity/command/plan.md +0 -10
- package/.antigravity/command/test.md +0 -7
- package/.antigravity/command/watzup.md +0 -8
- package/ANTIGRAVITY.md +0 -36
- package/GEMINI.md +0 -75
- package/scripts/prepare-release-assets.cjs +0 -97
- package/scripts/send-discord-release.cjs +0 -204
|
@@ -1,204 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Send Release Notification to Discord using Embeds
|
|
3
|
-
*
|
|
4
|
-
* Usage:
|
|
5
|
-
* node send-discord-release.cjs <type> <webhook-url>
|
|
6
|
-
*
|
|
7
|
-
* Args:
|
|
8
|
-
* type: 'production' or 'beta'
|
|
9
|
-
* webhook-url: Discord webhook URL
|
|
10
|
-
*/
|
|
11
|
-
|
|
12
|
-
const fs = require('fs');
|
|
13
|
-
const https = require('https');
|
|
14
|
-
const { URL } = require('url');
|
|
15
|
-
|
|
16
|
-
// Parse command line arguments
|
|
17
|
-
const releaseType = process.argv[2]; // 'production' or 'beta'
|
|
18
|
-
const webhookUrl = process.argv[3];
|
|
19
|
-
|
|
20
|
-
if (!releaseType || !webhookUrl) {
|
|
21
|
-
console.error('Usage: node send-discord-release.cjs <type> <webhook-url>');
|
|
22
|
-
process.exit(1);
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
// Read CHANGELOG.md and extract the latest release notes
|
|
26
|
-
function extractLatestRelease() {
|
|
27
|
-
const changelogPath = 'CHANGELOG.md';
|
|
28
|
-
|
|
29
|
-
if (!fs.existsSync(changelogPath)) {
|
|
30
|
-
return {
|
|
31
|
-
version: 'Unknown',
|
|
32
|
-
date: new Date().toISOString().split('T')[0],
|
|
33
|
-
sections: {}
|
|
34
|
-
};
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
const content = fs.readFileSync(changelogPath, 'utf8');
|
|
38
|
-
const lines = content.split('\n');
|
|
39
|
-
|
|
40
|
-
let version = 'Unknown';
|
|
41
|
-
let date = new Date().toISOString().split('T')[0];
|
|
42
|
-
let collecting = false;
|
|
43
|
-
let currentSection = null;
|
|
44
|
-
const sections = {};
|
|
45
|
-
|
|
46
|
-
for (const line of lines) {
|
|
47
|
-
// Match version header: ## 1.15.0 (2025-11-22) or ## [1.15.0](url) (2025-11-22)
|
|
48
|
-
const versionMatch = line.match(/^## \[?(\d+\.\d+\.\d+(?:-beta\.\d+)?)\]?.*?\((\d{4}-\d{2}-\d{2})\)/);
|
|
49
|
-
if (versionMatch) {
|
|
50
|
-
if (!collecting) {
|
|
51
|
-
version = versionMatch[1];
|
|
52
|
-
date = versionMatch[2];
|
|
53
|
-
collecting = true;
|
|
54
|
-
continue;
|
|
55
|
-
} else {
|
|
56
|
-
// Found next version, stop collecting
|
|
57
|
-
break;
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
if (!collecting) continue;
|
|
62
|
-
|
|
63
|
-
// Match section headers (### Features, ### Bug Fixes, etc.)
|
|
64
|
-
const sectionMatch = line.match(/^### (.+)/);
|
|
65
|
-
if (sectionMatch) {
|
|
66
|
-
currentSection = sectionMatch[1];
|
|
67
|
-
sections[currentSection] = [];
|
|
68
|
-
continue;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
// Collect bullet points
|
|
72
|
-
if (currentSection && line.trim().startsWith('*')) {
|
|
73
|
-
const item = line.trim().substring(1).trim();
|
|
74
|
-
if (item) {
|
|
75
|
-
sections[currentSection].push(item);
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
return { version, date, sections };
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
// Create Discord embed
|
|
84
|
-
function createEmbed(release) {
|
|
85
|
-
const isBeta = releaseType === 'beta';
|
|
86
|
-
const color = isBeta ? 0xF59E0B : 0x10B981; // Orange for beta, Green for production
|
|
87
|
-
const title = isBeta ? `๐งช Beta Release ${release.version}` : `๐ Release ${release.version}`;
|
|
88
|
-
const url = `https://github.com/claudekit/claudekit-engineer/releases/tag/v${release.version}`;
|
|
89
|
-
|
|
90
|
-
// Map section names to emojis
|
|
91
|
-
const sectionEmojis = {
|
|
92
|
-
'Features': '๐',
|
|
93
|
-
'Bug Fixes': '๐',
|
|
94
|
-
'Documentation': '๐',
|
|
95
|
-
'Styles': '๐',
|
|
96
|
-
'Code Refactoring': 'โป๏ธ',
|
|
97
|
-
'Performance Improvements': 'โก',
|
|
98
|
-
'Tests': 'โ
',
|
|
99
|
-
'Build System': '๐๏ธ',
|
|
100
|
-
'CI': '๐ท',
|
|
101
|
-
'Chores': '๐ง'
|
|
102
|
-
};
|
|
103
|
-
|
|
104
|
-
const fields = [];
|
|
105
|
-
|
|
106
|
-
// Add sections as embed fields
|
|
107
|
-
for (const [sectionName, items] of Object.entries(release.sections)) {
|
|
108
|
-
if (items.length === 0) continue;
|
|
109
|
-
|
|
110
|
-
const emoji = sectionEmojis[sectionName] || '๐';
|
|
111
|
-
let fieldValue = items.map(item => `โข ${item}`).join('\n');
|
|
112
|
-
|
|
113
|
-
// Discord field value max is 1024 characters
|
|
114
|
-
if (fieldValue.length > 1024) {
|
|
115
|
-
const truncateAt = fieldValue.lastIndexOf('\n', 1000);
|
|
116
|
-
fieldValue = fieldValue.substring(0, truncateAt) + '\n... *(truncated)*';
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
fields.push({
|
|
120
|
-
name: `${emoji} ${sectionName}`,
|
|
121
|
-
value: fieldValue,
|
|
122
|
-
inline: false
|
|
123
|
-
});
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
// If no sections found, add a simple message
|
|
127
|
-
if (fields.length === 0) {
|
|
128
|
-
fields.push({
|
|
129
|
-
name: '๐ Release Notes',
|
|
130
|
-
value: 'Release completed successfully. See full changelog on GitHub.',
|
|
131
|
-
inline: false
|
|
132
|
-
});
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
const embed = {
|
|
136
|
-
title,
|
|
137
|
-
url,
|
|
138
|
-
color,
|
|
139
|
-
timestamp: new Date().toISOString(),
|
|
140
|
-
footer: {
|
|
141
|
-
text: isBeta ? 'Beta Release โข Pre-release' : 'Production Release โข Latest'
|
|
142
|
-
},
|
|
143
|
-
fields
|
|
144
|
-
};
|
|
145
|
-
|
|
146
|
-
return embed;
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
// Send to Discord
|
|
150
|
-
function sendToDiscord(embed) {
|
|
151
|
-
const payload = {
|
|
152
|
-
username: releaseType === 'beta' ? 'Beta Release Bot' : 'Release Bot',
|
|
153
|
-
avatar_url: 'https://github.com/claudekit.png',
|
|
154
|
-
embeds: [embed]
|
|
155
|
-
};
|
|
156
|
-
|
|
157
|
-
const url = new URL(webhookUrl);
|
|
158
|
-
const options = {
|
|
159
|
-
hostname: url.hostname,
|
|
160
|
-
path: url.pathname + url.search,
|
|
161
|
-
method: 'POST',
|
|
162
|
-
headers: {
|
|
163
|
-
'Content-Type': 'application/json'
|
|
164
|
-
}
|
|
165
|
-
};
|
|
166
|
-
|
|
167
|
-
const req = https.request(options, (res) => {
|
|
168
|
-
let data = '';
|
|
169
|
-
|
|
170
|
-
res.on('data', (chunk) => {
|
|
171
|
-
data += chunk;
|
|
172
|
-
});
|
|
173
|
-
|
|
174
|
-
res.on('end', () => {
|
|
175
|
-
if (res.statusCode >= 200 && res.statusCode < 300) {
|
|
176
|
-
console.log('โ
Discord notification sent successfully');
|
|
177
|
-
} else {
|
|
178
|
-
console.error(`โ Discord webhook failed with status ${res.statusCode}`);
|
|
179
|
-
console.error(data);
|
|
180
|
-
process.exit(1);
|
|
181
|
-
}
|
|
182
|
-
});
|
|
183
|
-
});
|
|
184
|
-
|
|
185
|
-
req.on('error', (error) => {
|
|
186
|
-
console.error('โ Error sending Discord notification:', error);
|
|
187
|
-
process.exit(1);
|
|
188
|
-
});
|
|
189
|
-
|
|
190
|
-
req.write(JSON.stringify(payload));
|
|
191
|
-
req.end();
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
// Main execution
|
|
195
|
-
try {
|
|
196
|
-
const release = extractLatestRelease();
|
|
197
|
-
console.log(`๐ฆ Preparing ${releaseType} release notification for v${release.version}`);
|
|
198
|
-
|
|
199
|
-
const embed = createEmbed(release);
|
|
200
|
-
sendToDiscord(embed);
|
|
201
|
-
} catch (error) {
|
|
202
|
-
console.error('โ Error:', error);
|
|
203
|
-
process.exit(1);
|
|
204
|
-
}
|