crewx 0.8.9-rc.8 → 0.8.9-rc.9
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/dist-server/domain/git/git.service.js +7 -7
- package/dist-server/domain/market/default-marketplace.json +24 -0
- package/dist-server/package.json +3 -0
- package/package.json +13 -13
- package/packages/cli/dist/commands/agent.js +1 -1
- package/packages/cli/dist/commands/init.js +5 -5
- package/packages/cli/package.json +1 -1
|
@@ -376,29 +376,29 @@ let GitService = GitService_1 = class GitService {
|
|
|
376
376
|
async push(opts = {}) {
|
|
377
377
|
const dir = this.dir;
|
|
378
378
|
if (!(await this.isGitRepo())) {
|
|
379
|
-
throw new common_1.BadRequestException({ code: 'NOT_GIT_REPO', message: 'Git
|
|
379
|
+
throw new common_1.BadRequestException({ code: 'NOT_GIT_REPO', message: 'Not a Git repository' });
|
|
380
380
|
}
|
|
381
381
|
const currentBranch = (await git.currentBranch({ fs, dir })) ?? null;
|
|
382
382
|
if (!currentBranch) {
|
|
383
|
-
throw new common_1.BadRequestException({ code: 'DETACHED_HEAD', message: '
|
|
383
|
+
throw new common_1.BadRequestException({ code: 'DETACHED_HEAD', message: 'No current branch (detached HEAD)' });
|
|
384
384
|
}
|
|
385
385
|
const remote = opts.remote ?? 'origin';
|
|
386
386
|
const branch = opts.branch ?? currentBranch;
|
|
387
387
|
const remoteUrl = (await git.getConfig({ fs, dir, path: `remote.${remote}.url` }));
|
|
388
388
|
if (!remoteUrl) {
|
|
389
|
-
throw new common_1.BadRequestException({ code: 'NO_REMOTE', message: '
|
|
389
|
+
throw new common_1.BadRequestException({ code: 'NO_REMOTE', message: 'No remote repository configured' });
|
|
390
390
|
}
|
|
391
391
|
if (!/^https?:\/\//i.test(remoteUrl)) {
|
|
392
|
-
throw new common_1.BadRequestException({ code: 'SSH_REMOTE', message: 'SSH
|
|
392
|
+
throw new common_1.BadRequestException({ code: 'SSH_REMOTE', message: 'SSH remotes are not supported' });
|
|
393
393
|
}
|
|
394
394
|
const tracking = await this.resolveRemoteTracking(branch);
|
|
395
395
|
if (tracking.behind !== null && tracking.behind > 0) {
|
|
396
|
-
throw new common_1.BadRequestException({ code: 'BEHIND_REMOTE', message: '
|
|
396
|
+
throw new common_1.BadRequestException({ code: 'BEHIND_REMOTE', message: 'Pull remote changes before pushing' });
|
|
397
397
|
}
|
|
398
398
|
// Read token without exposing it in any log or error path
|
|
399
399
|
const token = process.env['CREWX_GIT_TOKEN'] ?? process.env['GITHUB_TOKEN'];
|
|
400
400
|
if (!token) {
|
|
401
|
-
throw new common_1.BadRequestException({ code: 'NO_TOKEN', message: 'Git
|
|
401
|
+
throw new common_1.BadRequestException({ code: 'NO_TOKEN', message: 'Git authentication token is required' });
|
|
402
402
|
}
|
|
403
403
|
try {
|
|
404
404
|
await git.push({
|
|
@@ -417,7 +417,7 @@ let GitService = GitService_1 = class GitService {
|
|
|
417
417
|
// Strip any embedded credentials from error messages before logging/throwing
|
|
418
418
|
const safe = raw.replace(/https?:\/\/[^@\s]*@/gi, 'https://***@');
|
|
419
419
|
this.logger.warn(`git push failed: ${safe}`);
|
|
420
|
-
throw new common_1.BadRequestException({ code: 'PUSH_FAILED', message: `Push
|
|
420
|
+
throw new common_1.BadRequestException({ code: 'PUSH_FAILED', message: `Push failed: ${safe}` });
|
|
421
421
|
}
|
|
422
422
|
}
|
|
423
423
|
/** Diff a specific commit against its parent. */
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "1.0",
|
|
3
|
+
"registries": [
|
|
4
|
+
{
|
|
5
|
+
"id": "crewx-official",
|
|
6
|
+
"name": "crewx-templates",
|
|
7
|
+
"url": "https://github.com/sowonlabs/crewx-templates",
|
|
8
|
+
"trust": "verified",
|
|
9
|
+
"type": "crewx",
|
|
10
|
+
"default": true
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"id": "anthropic-skills",
|
|
14
|
+
"name": "anthropic-skills",
|
|
15
|
+
"url": "https://github.com/anthropics/skills",
|
|
16
|
+
"trust": "verified",
|
|
17
|
+
"type": "claude",
|
|
18
|
+
"default": false
|
|
19
|
+
}
|
|
20
|
+
],
|
|
21
|
+
"deny": [],
|
|
22
|
+
"forceDisabled": [],
|
|
23
|
+
"forceEnabled": []
|
|
24
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "crewx",
|
|
3
|
-
"version": "0.8.9-rc.
|
|
3
|
+
"version": "0.8.9-rc.9",
|
|
4
4
|
"description": "CrewX — AI agent team dashboard with Electron UI and CLI (Web + Electron + Global CLI)",
|
|
5
5
|
"main": "server.js",
|
|
6
6
|
"bin": {
|
|
@@ -80,20 +80,20 @@
|
|
|
80
80
|
"wink-nlp-utils": "2.1.0",
|
|
81
81
|
"yargs": "17.7.0",
|
|
82
82
|
"zod": "3.25.76",
|
|
83
|
-
"@crewx/chromex": "0.1.0",
|
|
84
|
-
"@crewx/cron": "0.1.10",
|
|
85
|
-
"@crewx/cli": "0.8.9-rc.
|
|
86
|
-
"@crewx/
|
|
87
|
-
"@crewx/
|
|
88
|
-
"@crewx/knowledge-core": "0.1.17",
|
|
89
|
-
"@crewx/
|
|
90
|
-
"@crewx/sdk": "0.8.9-rc.
|
|
83
|
+
"@crewx/chromex": "0.1.0-rc.45",
|
|
84
|
+
"@crewx/cron": "0.1.10-rc.43",
|
|
85
|
+
"@crewx/cli": "0.8.9-rc.9",
|
|
86
|
+
"@crewx/doc": "0.1.9-rc.7",
|
|
87
|
+
"@crewx/dreaming": "0.1.0-rc.27",
|
|
88
|
+
"@crewx/knowledge-core": "0.1.17-rc.4",
|
|
89
|
+
"@crewx/search": "0.1.10-rc.8",
|
|
90
|
+
"@crewx/sdk": "0.8.9-rc.9",
|
|
91
91
|
"@crewx/skill": "0.1.20",
|
|
92
|
-
"@crewx/
|
|
92
|
+
"@crewx/wi": "0.1.10-rc.9",
|
|
93
|
+
"@crewx/memory": "0.1.23-rc.25",
|
|
93
94
|
"@crewx/shared": "0.0.5",
|
|
94
|
-
"@crewx/wbs": "0.1.10",
|
|
95
|
-
"@crewx/workflow": "0.3.22"
|
|
96
|
-
"@crewx/wi": "0.1.10-rc.8"
|
|
95
|
+
"@crewx/wbs": "0.1.10-rc.38",
|
|
96
|
+
"@crewx/workflow": "0.3.22-rc.25"
|
|
97
97
|
},
|
|
98
98
|
"devDependencies": {
|
|
99
99
|
"@ccusage/codex": "0.0.1",
|
|
@@ -237,7 +237,7 @@ Examples:
|
|
|
237
237
|
crewx agent
|
|
238
238
|
crewx agent ls
|
|
239
239
|
crewx agent ls --role=PM
|
|
240
|
-
crewx agent ls --team="CrewX Core
|
|
240
|
+
crewx agent ls --team="CrewX Core Team"
|
|
241
241
|
crewx agent ls --provider=claude
|
|
242
242
|
crewx agent ls --role=PM --provider=claude
|
|
243
243
|
crewx agent ls --role=PM,general
|
|
@@ -105,7 +105,7 @@ const DEFAULT_AGENTS = [
|
|
|
105
105
|
team: 'core',
|
|
106
106
|
provider: 'acp/claude',
|
|
107
107
|
working_directory: './',
|
|
108
|
-
description: '
|
|
108
|
+
description: 'Owns requirements analysis, design, and work breakdown',
|
|
109
109
|
options: {
|
|
110
110
|
query: { effort: 'high' },
|
|
111
111
|
execute: { effort: 'high', mode: 'bypassPermissions' },
|
|
@@ -122,7 +122,7 @@ const DEFAULT_AGENTS = [
|
|
|
122
122
|
team: 'core',
|
|
123
123
|
provider: 'acp/claude',
|
|
124
124
|
working_directory: './',
|
|
125
|
-
description: '
|
|
125
|
+
description: 'Implements code changes and tests',
|
|
126
126
|
options: {
|
|
127
127
|
query: { effort: 'high' },
|
|
128
128
|
execute: { effort: 'high', mode: 'bypassPermissions' },
|
|
@@ -139,7 +139,7 @@ const DEFAULT_AGENTS = [
|
|
|
139
139
|
team: 'core',
|
|
140
140
|
provider: 'acp/claude',
|
|
141
141
|
working_directory: './',
|
|
142
|
-
description: '
|
|
142
|
+
description: 'Reviews code quality, security, and readability',
|
|
143
143
|
options: {
|
|
144
144
|
query: { effort: 'high' },
|
|
145
145
|
execute: { effort: 'high', mode: 'bypassPermissions' },
|
|
@@ -158,7 +158,7 @@ notation:
|
|
|
158
158
|
auto: "N% auto — L1 progress auto-calculated as weighted average of children"
|
|
159
159
|
---
|
|
160
160
|
|
|
161
|
-
#
|
|
161
|
+
# Goal Title
|
|
162
162
|
|
|
163
163
|
## Period
|
|
164
164
|
- Start: YYYY-MM-DD
|
|
@@ -166,7 +166,7 @@ notation:
|
|
|
166
166
|
- Status: active
|
|
167
167
|
|
|
168
168
|
## Objective
|
|
169
|
-
|
|
169
|
+
Describe the goal...
|
|
170
170
|
|
|
171
171
|
## Key Results
|
|
172
172
|
- [ ] KR1:
|