crewly 1.0.1 → 1.0.3
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/backend/backend/src/services/agent/agent-heartbeat-monitor.service.js +1 -1
- package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/agent-registration.service.js +9 -3
- package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
- package/dist/backend/backend/src/services/marketplace/marketplace-installer.service.d.ts +28 -4
- package/dist/backend/backend/src/services/marketplace/marketplace-installer.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/marketplace/marketplace-installer.service.js +74 -7
- package/dist/backend/backend/src/services/marketplace/marketplace-installer.service.js.map +1 -1
- package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.js +1 -1
- package/dist/backend/backend/src/services/session/pty/pty-terminal-buffer.d.ts.map +1 -1
- package/dist/backend/backend/src/services/session/pty/pty-terminal-buffer.js +2 -1
- package/dist/backend/backend/src/services/session/pty/pty-terminal-buffer.js.map +1 -1
- package/dist/backend/backend/src/services/skill/skill-catalog.service.d.ts +11 -0
- package/dist/backend/backend/src/services/skill/skill-catalog.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/skill/skill-catalog.service.js +46 -3
- package/dist/backend/backend/src/services/skill/skill-catalog.service.js.map +1 -1
- package/dist/backend/backend/src/services/slack/slack.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/slack/slack.service.js +4 -2
- package/dist/backend/backend/src/services/slack/slack.service.js.map +1 -1
- package/dist/cli/cli/src/commands/install.d.ts +23 -0
- package/dist/cli/cli/src/commands/install.d.ts.map +1 -0
- package/dist/cli/cli/src/commands/install.js +113 -0
- package/dist/cli/cli/src/commands/install.js.map +1 -0
- package/dist/cli/cli/src/commands/search.d.ts +23 -0
- package/dist/cli/cli/src/commands/search.d.ts.map +1 -0
- package/dist/cli/cli/src/commands/search.js +85 -0
- package/dist/cli/cli/src/commands/search.js.map +1 -0
- package/dist/cli/cli/src/commands/start.d.ts.map +1 -1
- package/dist/cli/cli/src/commands/start.js +11 -0
- package/dist/cli/cli/src/commands/start.js.map +1 -1
- package/dist/cli/cli/src/index.js +12 -0
- package/dist/cli/cli/src/index.js.map +1 -1
- package/dist/cli/cli/src/utils/marketplace.d.ts +111 -0
- package/dist/cli/cli/src/utils/marketplace.d.ts.map +1 -0
- package/dist/cli/cli/src/utils/marketplace.js +209 -0
- package/dist/cli/cli/src/utils/marketplace.js.map +1 -0
- package/package.json +4 -1
- package/config/skills/agent/_common/lib.sh +0 -4
- package/config/skills/agent/accept-task/execute.sh +0 -21
- package/config/skills/agent/accept-task/instructions.md +0 -20
- package/config/skills/agent/accept-task/skill.json +0 -20
- package/config/skills/agent/block-task/execute.sh +0 -26
- package/config/skills/agent/block-task/instructions.md +0 -22
- package/config/skills/agent/block-task/skill.json +0 -20
- package/config/skills/agent/check-quality-gates/execute.sh +0 -20
- package/config/skills/agent/check-quality-gates/instructions.md +0 -23
- package/config/skills/agent/check-quality-gates/skill.json +0 -20
- package/config/skills/agent/complete-task/execute.sh +0 -26
- package/config/skills/agent/complete-task/instructions.md +0 -22
- package/config/skills/agent/complete-task/skill.json +0 -20
- package/config/skills/agent/computer-use/execute.sh +0 -151
- package/config/skills/agent/computer-use/instructions.md +0 -60
- package/config/skills/agent/computer-use/skill.json +0 -22
- package/config/skills/agent/get-my-context/execute.sh +0 -23
- package/config/skills/agent/get-my-context/instructions.md +0 -21
- package/config/skills/agent/get-my-context/skill.json +0 -20
- package/config/skills/agent/get-sops/execute.sh +0 -24
- package/config/skills/agent/get-sops/instructions.md +0 -21
- package/config/skills/agent/get-sops/skill.json +0 -20
- package/config/skills/agent/get-team-status/execute.sh +0 -8
- package/config/skills/agent/get-team-status/instructions.md +0 -17
- package/config/skills/agent/get-team-status/skill.json +0 -20
- package/config/skills/agent/heartbeat/execute.sh +0 -22
- package/config/skills/agent/heartbeat/instructions.md +0 -23
- package/config/skills/agent/heartbeat/skill.json +0 -20
- package/config/skills/agent/manage-knowledge/execute.sh +0 -60
- package/config/skills/agent/manage-knowledge/instructions.md +0 -46
- package/config/skills/agent/nano-banana-image/generate.sh +0 -73
- package/config/skills/agent/nano-banana-image/instructions.md +0 -50
- package/config/skills/agent/nano-banana-image/skill.json +0 -39
- package/config/skills/agent/query-knowledge/execute.sh +0 -30
- package/config/skills/agent/query-knowledge/instructions.md +0 -47
- package/config/skills/agent/query-knowledge/skill.json +0 -20
- package/config/skills/agent/read-task/execute.sh +0 -15
- package/config/skills/agent/read-task/instructions.md +0 -19
- package/config/skills/agent/read-task/skill.json +0 -20
- package/config/skills/agent/recall/execute.sh +0 -24
- package/config/skills/agent/recall/instructions.md +0 -23
- package/config/skills/agent/recall/skill.json +0 -20
- package/config/skills/agent/record-learning/execute.sh +0 -29
- package/config/skills/agent/record-learning/instructions.md +0 -24
- package/config/skills/agent/record-learning/skill.json +0 -20
- package/config/skills/agent/register-self/execute.sh +0 -28
- package/config/skills/agent/register-self/instructions.md +0 -18
- package/config/skills/agent/register-self/skill.json +0 -20
- package/config/skills/agent/remember/execute.sh +0 -29
- package/config/skills/agent/remember/instructions.md +0 -24
- package/config/skills/agent/remember/skill.json +0 -20
- package/config/skills/agent/report-progress/execute.sh +0 -28
- package/config/skills/agent/report-progress/instructions.md +0 -25
- package/config/skills/agent/report-progress/skill.json +0 -20
- package/config/skills/agent/report-status/execute.sh +0 -35
- package/config/skills/agent/report-status/instructions.md +0 -36
- package/config/skills/agent/report-status/skill.json +0 -20
- package/config/skills/agent/send-chat-response/execute.sh +0 -26
- package/config/skills/agent/send-chat-response/instructions.md +0 -22
- package/config/skills/agent/send-chat-response/skill.json +0 -20
- package/config/skills/agent/send-message/execute.sh +0 -17
- package/config/skills/agent/send-message/instructions.md +0 -20
- package/config/skills/agent/send-message/skill.json +0 -20
- package/config/skills/agent/send-pdf-to-slack/execute.sh +0 -182
- package/config/skills/agent/send-pdf-to-slack/instructions.md +0 -49
- package/config/skills/agent/send-pdf-to-slack/skill.json +0 -20
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI Search Command
|
|
3
|
+
*
|
|
4
|
+
* Searches and lists items from the Crewly marketplace. Shows a formatted
|
|
5
|
+
* table of matching items with name, type, version, and description.
|
|
6
|
+
*
|
|
7
|
+
* @module cli/commands/search
|
|
8
|
+
*/
|
|
9
|
+
interface SearchOptions {
|
|
10
|
+
type?: string;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Searches the marketplace for items matching a query.
|
|
14
|
+
*
|
|
15
|
+
* When no query is provided, lists all items. Supports filtering by type
|
|
16
|
+
* with the --type flag (skill, model, role).
|
|
17
|
+
*
|
|
18
|
+
* @param query - Optional free-text search query
|
|
19
|
+
* @param options - Command options (--type)
|
|
20
|
+
*/
|
|
21
|
+
export declare function searchCommand(query?: string, options?: SearchOptions): Promise<void>;
|
|
22
|
+
export {};
|
|
23
|
+
//# sourceMappingURL=search.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../../../cli/src/commands/search.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,UAAU,aAAa;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;GAQG;AACH,wBAAsB,aAAa,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CA2E1F"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI Search Command
|
|
3
|
+
*
|
|
4
|
+
* Searches and lists items from the Crewly marketplace. Shows a formatted
|
|
5
|
+
* table of matching items with name, type, version, and description.
|
|
6
|
+
*
|
|
7
|
+
* @module cli/commands/search
|
|
8
|
+
*/
|
|
9
|
+
import chalk from 'chalk';
|
|
10
|
+
import { fetchRegistry, loadManifest } from '../utils/marketplace.js';
|
|
11
|
+
/**
|
|
12
|
+
* Searches the marketplace for items matching a query.
|
|
13
|
+
*
|
|
14
|
+
* When no query is provided, lists all items. Supports filtering by type
|
|
15
|
+
* with the --type flag (skill, model, role).
|
|
16
|
+
*
|
|
17
|
+
* @param query - Optional free-text search query
|
|
18
|
+
* @param options - Command options (--type)
|
|
19
|
+
*/
|
|
20
|
+
export async function searchCommand(query, options) {
|
|
21
|
+
try {
|
|
22
|
+
const registry = await fetchRegistry();
|
|
23
|
+
let items = registry.items;
|
|
24
|
+
// Filter by type
|
|
25
|
+
if (options?.type) {
|
|
26
|
+
items = items.filter((i) => i.type === options.type);
|
|
27
|
+
}
|
|
28
|
+
// Filter by query
|
|
29
|
+
if (query) {
|
|
30
|
+
const q = query.toLowerCase();
|
|
31
|
+
items = items.filter((i) => i.name.toLowerCase().includes(q) ||
|
|
32
|
+
i.description.toLowerCase().includes(q) ||
|
|
33
|
+
i.tags.some((t) => t.toLowerCase().includes(q)) ||
|
|
34
|
+
i.id.toLowerCase().includes(q));
|
|
35
|
+
}
|
|
36
|
+
if (items.length === 0) {
|
|
37
|
+
if (query) {
|
|
38
|
+
console.log(chalk.yellow(`No items matching "${query}".`));
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
console.log(chalk.yellow('No items in the marketplace.'));
|
|
42
|
+
}
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
// Load manifest to show install status
|
|
46
|
+
const manifest = await loadManifest();
|
|
47
|
+
const installedIds = new Set(manifest.items.map((r) => r.id));
|
|
48
|
+
// Print header
|
|
49
|
+
console.log('');
|
|
50
|
+
console.log(chalk.bold('Crewly Marketplace'));
|
|
51
|
+
if (query) {
|
|
52
|
+
console.log(chalk.gray(`Results for "${query}"`));
|
|
53
|
+
}
|
|
54
|
+
console.log('');
|
|
55
|
+
// Print items
|
|
56
|
+
const maxNameLen = Math.max(...items.map((i) => i.name.length), 4);
|
|
57
|
+
const header = ` ${'Name'.padEnd(maxNameLen)} ${'Type'.padEnd(6)} ${'Version'.padEnd(8)} ${'Status'.padEnd(11)} Description`;
|
|
58
|
+
console.log(chalk.gray(header));
|
|
59
|
+
console.log(chalk.gray(' ' + '─'.repeat(header.length - 2)));
|
|
60
|
+
for (const item of items) {
|
|
61
|
+
const status = installedIds.has(item.id)
|
|
62
|
+
? chalk.green('installed')
|
|
63
|
+
: chalk.gray('available');
|
|
64
|
+
const nameCol = item.name.padEnd(maxNameLen);
|
|
65
|
+
const typeCol = item.type.padEnd(6);
|
|
66
|
+
const versionCol = item.version.padEnd(8);
|
|
67
|
+
const statusCol = (installedIds.has(item.id) ? 'installed' : 'available').padEnd(11);
|
|
68
|
+
const desc = item.description.length > 50
|
|
69
|
+
? item.description.substring(0, 47) + '...'
|
|
70
|
+
: item.description;
|
|
71
|
+
const statusFormatted = installedIds.has(item.id)
|
|
72
|
+
? chalk.green(statusCol)
|
|
73
|
+
: chalk.gray(statusCol);
|
|
74
|
+
console.log(` ${chalk.white(nameCol)} ${chalk.cyan(typeCol)} ${chalk.gray(versionCol)} ${statusFormatted} ${chalk.gray(desc)}`);
|
|
75
|
+
}
|
|
76
|
+
console.log('');
|
|
77
|
+
console.log(chalk.gray(`${items.length} item(s) found. Install with: crewly install <id>`));
|
|
78
|
+
}
|
|
79
|
+
catch (error) {
|
|
80
|
+
const msg = error instanceof Error ? error.message : String(error);
|
|
81
|
+
console.error(chalk.red(`Search failed: ${msg}`));
|
|
82
|
+
process.exit(1);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=search.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../../../../cli/src/commands/search.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../../../../cli/src/commands/start.ts"],"names":[],"mappings":"AAuDA,UAAU,YAAY;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,wBAAsB,YAAY,CAAC,OAAO,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../../../../cli/src/commands/start.ts"],"names":[],"mappings":"AAuDA,UAAU,YAAY;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,wBAAsB,YAAY,CAAC,OAAO,EAAE,YAAY,iBA6FvD"}
|
|
@@ -73,6 +73,17 @@ export async function startCommand(options) {
|
|
|
73
73
|
console.log(chalk.blue('🌐 Opening dashboard...'));
|
|
74
74
|
await open(`http://localhost:${webPort}`);
|
|
75
75
|
}
|
|
76
|
+
// Check if any agent skills are available (bundled or marketplace)
|
|
77
|
+
const projectRoot = findPackageRoot(__dirname);
|
|
78
|
+
const bundledSkillsDir = path.join(projectRoot, 'config', 'skills', 'agent');
|
|
79
|
+
const marketplaceSkillsDir = path.join(os.homedir(), '.crewly', 'marketplace', 'skills');
|
|
80
|
+
const hasBundledSkills = fs.existsSync(bundledSkillsDir) &&
|
|
81
|
+
fs.readdirSync(bundledSkillsDir).some(d => d !== '_common' && fs.statSync(path.join(bundledSkillsDir, d)).isDirectory());
|
|
82
|
+
const hasMarketplaceSkills = fs.existsSync(marketplaceSkillsDir) &&
|
|
83
|
+
fs.readdirSync(marketplaceSkillsDir).some(d => d !== '_common' && fs.statSync(path.join(marketplaceSkillsDir, d)).isDirectory());
|
|
84
|
+
if (!hasBundledSkills && !hasMarketplaceSkills) {
|
|
85
|
+
console.log(chalk.yellow('⚠ No agent skills installed. Run \'crewly install --all\' to get started.'));
|
|
86
|
+
}
|
|
76
87
|
console.log(chalk.green('✅ Crewly started successfully!'));
|
|
77
88
|
console.log(chalk.cyan(`📊 Dashboard: http://localhost:${webPort}`));
|
|
78
89
|
console.log(chalk.cyan(`⚡ WebSocket: ws://localhost:${webPort}`));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../../../../cli/src/commands/start.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../../../../cli/src/commands/start.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,8 @@ import { stopCommand } from './commands/stop.js';
|
|
|
6
6
|
import { statusCommand } from './commands/status.js';
|
|
7
7
|
import { logsCommand } from './commands/logs.js';
|
|
8
8
|
import { upgradeCommand } from './commands/upgrade.js';
|
|
9
|
+
import { installCommand } from './commands/install.js';
|
|
10
|
+
import { searchCommand } from './commands/search.js';
|
|
9
11
|
import { DEFAULT_WEB_PORT } from './constants.js';
|
|
10
12
|
import { getLocalVersion } from './utils/version-check.js';
|
|
11
13
|
const program = new Command();
|
|
@@ -48,6 +50,16 @@ program
|
|
|
48
50
|
.description('Upgrade Crewly to the latest version')
|
|
49
51
|
.option('--check', 'Check for updates without installing')
|
|
50
52
|
.action(upgradeCommand);
|
|
53
|
+
program
|
|
54
|
+
.command('install [id]')
|
|
55
|
+
.description('Install a skill from the Crewly marketplace')
|
|
56
|
+
.option('--all', 'Install all agent skills')
|
|
57
|
+
.action(installCommand);
|
|
58
|
+
program
|
|
59
|
+
.command('search [query]')
|
|
60
|
+
.description('Search the Crewly skill marketplace')
|
|
61
|
+
.option('--type <type>', 'Filter by type (skill, model, role)')
|
|
62
|
+
.action(searchCommand);
|
|
51
63
|
// Error handling
|
|
52
64
|
program.exitOverride();
|
|
53
65
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../cli/src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE3D,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,IAAI,UAAU,GAAG,OAAO,CAAC;AACzB,IAAI,CAAC;IACH,UAAU,GAAG,eAAe,EAAE,CAAC;AACjC,CAAC;AAAC,MAAM,CAAC;IACP,6DAA6D;AAC/D,CAAC;AAED,OAAO;KACJ,IAAI,CAAC,QAAQ,CAAC;KACd,WAAW,CAAC,6EAA6E,CAAC;KAC1F,OAAO,CAAC,UAAU,CAAC,CAAC;AAEvB,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,yCAAyC,CAAC;KACtD,MAAM,CAAC,mBAAmB,EAAE,iBAAiB,EAAE,gBAAgB,CAAC,QAAQ,EAAE,CAAC;KAC3E,MAAM,CAAC,cAAc,EAAE,mCAAmC,CAAC;KAC3D,MAAM,CAAC,gBAAgB,EAAE,qEAAqE,CAAC;KAC/F,MAAM,CAAC,YAAY,CAAC,CAAC;AAExB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,uCAAuC,CAAC;KACpD,MAAM,CAAC,SAAS,EAAE,0BAA0B,CAAC;KAC7C,MAAM,CAAC,WAAW,CAAC,CAAC;AAEvB,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,wCAAwC,CAAC;KACrD,MAAM,CAAC,WAAW,EAAE,2BAA2B,CAAC;KAChD,MAAM,CAAC,aAAa,CAAC,CAAC;AAEzB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,wCAAwC,CAAC;KACrD,MAAM,CAAC,cAAc,EAAE,mBAAmB,CAAC;KAC3C,MAAM,CAAC,sBAAsB,EAAE,yBAAyB,EAAE,IAAI,CAAC;KAC/D,MAAM,CAAC,WAAW,CAAC,CAAC;AAEvB,OAAO;KACJ,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,sCAAsC,CAAC;KACnD,MAAM,CAAC,SAAS,EAAE,sCAAsC,CAAC;KACzD,MAAM,CAAC,cAAc,CAAC,CAAC;AAE1B,iBAAiB;AACjB,OAAO,CAAC,YAAY,EAAE,CAAC;AAEvB,IAAI,CAAC;IACH,OAAO,CAAC,KAAK,EAAE,CAAC;AAClB,CAAC;AAAC,OAAO,GAAG,EAAE,CAAC;IACb,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;IACzF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../cli/src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI Marketplace Utilities
|
|
3
|
+
*
|
|
4
|
+
* Self-contained marketplace logic for the CLI. Fetches the registry from the
|
|
5
|
+
* marketing site, downloads and installs skill archives, and manages the local
|
|
6
|
+
* installed-items manifest. Does not depend on the backend server being running.
|
|
7
|
+
*
|
|
8
|
+
* @module cli/utils/marketplace
|
|
9
|
+
*/
|
|
10
|
+
/** A single item in the marketplace registry */
|
|
11
|
+
export interface MarketplaceItem {
|
|
12
|
+
id: string;
|
|
13
|
+
type: 'skill' | 'model' | 'role';
|
|
14
|
+
name: string;
|
|
15
|
+
description: string;
|
|
16
|
+
author: string;
|
|
17
|
+
version: string;
|
|
18
|
+
category: string;
|
|
19
|
+
tags: string[];
|
|
20
|
+
license: string;
|
|
21
|
+
icon?: string;
|
|
22
|
+
downloads: number;
|
|
23
|
+
rating: number;
|
|
24
|
+
createdAt: string;
|
|
25
|
+
updatedAt: string;
|
|
26
|
+
assets: {
|
|
27
|
+
archive?: string;
|
|
28
|
+
checksum?: string;
|
|
29
|
+
sizeBytes?: number;
|
|
30
|
+
model?: string;
|
|
31
|
+
};
|
|
32
|
+
metadata?: Record<string, unknown>;
|
|
33
|
+
}
|
|
34
|
+
/** The full registry response */
|
|
35
|
+
export interface MarketplaceRegistry {
|
|
36
|
+
schemaVersion: number;
|
|
37
|
+
lastUpdated: string;
|
|
38
|
+
cdnBaseUrl: string;
|
|
39
|
+
items: MarketplaceItem[];
|
|
40
|
+
}
|
|
41
|
+
/** A record of an installed item */
|
|
42
|
+
export interface InstalledItemRecord {
|
|
43
|
+
id: string;
|
|
44
|
+
type: string;
|
|
45
|
+
name: string;
|
|
46
|
+
version: string;
|
|
47
|
+
installedAt: string;
|
|
48
|
+
installPath: string;
|
|
49
|
+
checksum?: string;
|
|
50
|
+
}
|
|
51
|
+
/** The on-disk manifest of installed items */
|
|
52
|
+
export interface InstalledItemsManifest {
|
|
53
|
+
schemaVersion: number;
|
|
54
|
+
items: InstalledItemRecord[];
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Fetches the marketplace registry from the marketing site API.
|
|
58
|
+
*
|
|
59
|
+
* @returns The full marketplace registry
|
|
60
|
+
* @throws Error if the fetch fails
|
|
61
|
+
*/
|
|
62
|
+
export declare function fetchRegistry(): Promise<MarketplaceRegistry>;
|
|
63
|
+
/**
|
|
64
|
+
* Loads the installed-items manifest from disk.
|
|
65
|
+
* Returns an empty manifest if the file doesn't exist.
|
|
66
|
+
*
|
|
67
|
+
* @returns The installed items manifest
|
|
68
|
+
*/
|
|
69
|
+
export declare function loadManifest(): Promise<InstalledItemsManifest>;
|
|
70
|
+
/**
|
|
71
|
+
* Saves the installed-items manifest to disk.
|
|
72
|
+
*
|
|
73
|
+
* @param manifest - The manifest to persist
|
|
74
|
+
*/
|
|
75
|
+
export declare function saveManifest(manifest: InstalledItemsManifest): Promise<void>;
|
|
76
|
+
/**
|
|
77
|
+
* Returns the local install path for a marketplace item.
|
|
78
|
+
*
|
|
79
|
+
* @param type - Item type (skill, model, role)
|
|
80
|
+
* @param id - Item ID
|
|
81
|
+
* @returns Absolute path to the install directory
|
|
82
|
+
*/
|
|
83
|
+
export declare function getInstallPath(type: string, id: string): string;
|
|
84
|
+
/**
|
|
85
|
+
* Downloads and installs a single marketplace item.
|
|
86
|
+
*
|
|
87
|
+
* For skill archives (.tar.gz), extracts the contents into the install directory.
|
|
88
|
+
* After installation, ensures _common/lib.sh files are present.
|
|
89
|
+
*
|
|
90
|
+
* @param item - The marketplace item to install
|
|
91
|
+
* @returns Object with success status and message
|
|
92
|
+
*/
|
|
93
|
+
export declare function downloadAndInstall(item: MarketplaceItem): Promise<{
|
|
94
|
+
success: boolean;
|
|
95
|
+
message: string;
|
|
96
|
+
}>;
|
|
97
|
+
/**
|
|
98
|
+
* Ensures _common/lib.sh files exist in the marketplace directory.
|
|
99
|
+
*
|
|
100
|
+
* Copies the agent-level and root-level _common/lib.sh from the bundled
|
|
101
|
+
* package into the marketplace directory so installed skills can source them.
|
|
102
|
+
*/
|
|
103
|
+
export declare function ensureCommonLibs(): Promise<void>;
|
|
104
|
+
/**
|
|
105
|
+
* Formats a byte count into a human-readable string.
|
|
106
|
+
*
|
|
107
|
+
* @param bytes - Size in bytes
|
|
108
|
+
* @returns Formatted string like "18.4 KB"
|
|
109
|
+
*/
|
|
110
|
+
export declare function formatBytes(bytes: number): string;
|
|
111
|
+
//# sourceMappingURL=marketplace.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"marketplace.d.ts","sourceRoot":"","sources":["../../../../../cli/src/utils/marketplace.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AA2BH,gDAAgD;AAChD,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,MAAM,CAAC;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE;QACN,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,iCAAiC;AACjC,MAAM,WAAW,mBAAmB;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,eAAe,EAAE,CAAC;CAC1B;AAED,oCAAoC;AACpC,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,8CAA8C;AAC9C,MAAM,WAAW,sBAAsB;IACrC,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,mBAAmB,EAAE,CAAC;CAC9B;AAID;;;;;GAKG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAMlE;AAID;;;;;GAKG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,sBAAsB,CAAC,CAOpE;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAAC,QAAQ,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAGlF;AAID;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAG/D;AAED;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CA4D9G;AAkCD;;;;;GAKG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAuBtD;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAIjD"}
|
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI Marketplace Utilities
|
|
3
|
+
*
|
|
4
|
+
* Self-contained marketplace logic for the CLI. Fetches the registry from the
|
|
5
|
+
* marketing site, downloads and installs skill archives, and manages the local
|
|
6
|
+
* installed-items manifest. Does not depend on the backend server being running.
|
|
7
|
+
*
|
|
8
|
+
* @module cli/utils/marketplace
|
|
9
|
+
*/
|
|
10
|
+
import path from 'path';
|
|
11
|
+
import os from 'os';
|
|
12
|
+
import { readFile, writeFile, mkdir, copyFile } from 'fs/promises';
|
|
13
|
+
import { existsSync, readFileSync } from 'fs';
|
|
14
|
+
import { createHash } from 'crypto';
|
|
15
|
+
import { Readable } from 'stream';
|
|
16
|
+
import { pipeline } from 'stream/promises';
|
|
17
|
+
import * as tar from 'tar';
|
|
18
|
+
// ========================= Constants =========================
|
|
19
|
+
const REGISTRY_URL = 'https://crewly.stevesprompt.com/api/registry';
|
|
20
|
+
const ASSETS_BASE = 'https://crewly.stevesprompt.com/api/assets';
|
|
21
|
+
/** Compute paths lazily so os.homedir() is called at runtime, not import time */
|
|
22
|
+
function getMarketplaceDir() {
|
|
23
|
+
return path.join(os.homedir(), '.crewly', 'marketplace');
|
|
24
|
+
}
|
|
25
|
+
function getManifestPath() {
|
|
26
|
+
return path.join(getMarketplaceDir(), 'manifest.json');
|
|
27
|
+
}
|
|
28
|
+
// ========================= Registry =========================
|
|
29
|
+
/**
|
|
30
|
+
* Fetches the marketplace registry from the marketing site API.
|
|
31
|
+
*
|
|
32
|
+
* @returns The full marketplace registry
|
|
33
|
+
* @throws Error if the fetch fails
|
|
34
|
+
*/
|
|
35
|
+
export async function fetchRegistry() {
|
|
36
|
+
const res = await fetch(REGISTRY_URL);
|
|
37
|
+
if (!res.ok) {
|
|
38
|
+
throw new Error(`Failed to fetch registry: ${res.status} ${res.statusText}`);
|
|
39
|
+
}
|
|
40
|
+
return (await res.json());
|
|
41
|
+
}
|
|
42
|
+
// ========================= Manifest =========================
|
|
43
|
+
/**
|
|
44
|
+
* Loads the installed-items manifest from disk.
|
|
45
|
+
* Returns an empty manifest if the file doesn't exist.
|
|
46
|
+
*
|
|
47
|
+
* @returns The installed items manifest
|
|
48
|
+
*/
|
|
49
|
+
export async function loadManifest() {
|
|
50
|
+
try {
|
|
51
|
+
const data = await readFile(getManifestPath(), 'utf-8');
|
|
52
|
+
return JSON.parse(data);
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
return { schemaVersion: 1, items: [] };
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Saves the installed-items manifest to disk.
|
|
60
|
+
*
|
|
61
|
+
* @param manifest - The manifest to persist
|
|
62
|
+
*/
|
|
63
|
+
export async function saveManifest(manifest) {
|
|
64
|
+
await mkdir(getMarketplaceDir(), { recursive: true });
|
|
65
|
+
await writeFile(getManifestPath(), JSON.stringify(manifest, null, 2) + '\n');
|
|
66
|
+
}
|
|
67
|
+
// ========================= Install =========================
|
|
68
|
+
/**
|
|
69
|
+
* Returns the local install path for a marketplace item.
|
|
70
|
+
*
|
|
71
|
+
* @param type - Item type (skill, model, role)
|
|
72
|
+
* @param id - Item ID
|
|
73
|
+
* @returns Absolute path to the install directory
|
|
74
|
+
*/
|
|
75
|
+
export function getInstallPath(type, id) {
|
|
76
|
+
const typeDir = type === 'skill' ? 'skills' : type === 'model' ? 'models' : 'roles';
|
|
77
|
+
return path.join(getMarketplaceDir(), typeDir, id);
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Downloads and installs a single marketplace item.
|
|
81
|
+
*
|
|
82
|
+
* For skill archives (.tar.gz), extracts the contents into the install directory.
|
|
83
|
+
* After installation, ensures _common/lib.sh files are present.
|
|
84
|
+
*
|
|
85
|
+
* @param item - The marketplace item to install
|
|
86
|
+
* @returns Object with success status and message
|
|
87
|
+
*/
|
|
88
|
+
export async function downloadAndInstall(item) {
|
|
89
|
+
const installPath = getInstallPath(item.type, item.id);
|
|
90
|
+
const assetPath = item.assets.archive || item.assets.model;
|
|
91
|
+
if (!assetPath) {
|
|
92
|
+
return { success: false, message: `No downloadable asset for ${item.id}` };
|
|
93
|
+
}
|
|
94
|
+
const url = `${ASSETS_BASE}/${assetPath}`;
|
|
95
|
+
const res = await fetch(url);
|
|
96
|
+
if (!res.ok) {
|
|
97
|
+
return { success: false, message: `Download failed: ${res.status} ${res.statusText}` };
|
|
98
|
+
}
|
|
99
|
+
const data = Buffer.from(await res.arrayBuffer());
|
|
100
|
+
// Verify checksum if provided
|
|
101
|
+
if (item.assets.checksum) {
|
|
102
|
+
const [algo, expected] = item.assets.checksum.split(':');
|
|
103
|
+
if (algo === 'sha256') {
|
|
104
|
+
const actual = createHash('sha256').update(data).digest('hex');
|
|
105
|
+
if (actual !== expected) {
|
|
106
|
+
return { success: false, message: `Checksum mismatch for ${item.id}` };
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
// Extract or write
|
|
111
|
+
await mkdir(installPath, { recursive: true });
|
|
112
|
+
if (item.assets.archive && assetPath.endsWith('.tar.gz')) {
|
|
113
|
+
const readable = Readable.from(data);
|
|
114
|
+
await pipeline(readable, tar.x({ cwd: installPath, strip: 1 }));
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
const filename = path.basename(assetPath);
|
|
118
|
+
await writeFile(path.join(installPath, filename), data);
|
|
119
|
+
}
|
|
120
|
+
// Ensure _common/lib.sh for skills
|
|
121
|
+
if (item.type === 'skill') {
|
|
122
|
+
await ensureCommonLibs();
|
|
123
|
+
}
|
|
124
|
+
// Update manifest
|
|
125
|
+
const record = {
|
|
126
|
+
id: item.id,
|
|
127
|
+
type: item.type,
|
|
128
|
+
name: item.name,
|
|
129
|
+
version: item.version,
|
|
130
|
+
installedAt: new Date().toISOString(),
|
|
131
|
+
installPath,
|
|
132
|
+
checksum: item.assets.checksum,
|
|
133
|
+
};
|
|
134
|
+
const manifest = await loadManifest();
|
|
135
|
+
manifest.items = manifest.items.filter((r) => r.id !== item.id);
|
|
136
|
+
manifest.items.push(record);
|
|
137
|
+
await saveManifest(manifest);
|
|
138
|
+
return { success: true, message: `Installed ${item.name} v${item.version}` };
|
|
139
|
+
}
|
|
140
|
+
// ========================= Common Libs =========================
|
|
141
|
+
/**
|
|
142
|
+
* Finds the Crewly package root by walking up from a starting directory.
|
|
143
|
+
*
|
|
144
|
+
* @param startDir - Directory to start searching from
|
|
145
|
+
* @returns Absolute path to the package root, or null if not found
|
|
146
|
+
*/
|
|
147
|
+
function findPackageRoot(startDir) {
|
|
148
|
+
let current = path.resolve(startDir);
|
|
149
|
+
while (true) {
|
|
150
|
+
const pkgPath = path.join(current, 'package.json');
|
|
151
|
+
if (existsSync(pkgPath)) {
|
|
152
|
+
try {
|
|
153
|
+
const pkg = JSON.parse(readFileSync(pkgPath, 'utf-8'));
|
|
154
|
+
if (pkg.name === 'crewly') {
|
|
155
|
+
return current;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
catch {
|
|
159
|
+
// keep searching
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
const parent = path.dirname(current);
|
|
163
|
+
if (parent === current) {
|
|
164
|
+
return null;
|
|
165
|
+
}
|
|
166
|
+
current = parent;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Ensures _common/lib.sh files exist in the marketplace directory.
|
|
171
|
+
*
|
|
172
|
+
* Copies the agent-level and root-level _common/lib.sh from the bundled
|
|
173
|
+
* package into the marketplace directory so installed skills can source them.
|
|
174
|
+
*/
|
|
175
|
+
export async function ensureCommonLibs() {
|
|
176
|
+
const packageRoot = findPackageRoot(__dirname) || findPackageRoot(process.cwd());
|
|
177
|
+
if (!packageRoot) {
|
|
178
|
+
return;
|
|
179
|
+
}
|
|
180
|
+
const mpBase = path.join(os.homedir(), '.crewly', 'marketplace');
|
|
181
|
+
// Copy agent _common/lib.sh
|
|
182
|
+
const agentCommonSrc = path.join(packageRoot, 'config', 'skills', 'agent', '_common', 'lib.sh');
|
|
183
|
+
const agentCommonDest = path.join(mpBase, 'skills', '_common');
|
|
184
|
+
if (existsSync(agentCommonSrc)) {
|
|
185
|
+
await mkdir(agentCommonDest, { recursive: true });
|
|
186
|
+
await copyFile(agentCommonSrc, path.join(agentCommonDest, 'lib.sh'));
|
|
187
|
+
}
|
|
188
|
+
// Copy root _common/lib.sh
|
|
189
|
+
const rootCommonSrc = path.join(packageRoot, 'config', 'skills', '_common', 'lib.sh');
|
|
190
|
+
const rootCommonDest = path.join(mpBase, '_common');
|
|
191
|
+
if (existsSync(rootCommonSrc)) {
|
|
192
|
+
await mkdir(rootCommonDest, { recursive: true });
|
|
193
|
+
await copyFile(rootCommonSrc, path.join(rootCommonDest, 'lib.sh'));
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Formats a byte count into a human-readable string.
|
|
198
|
+
*
|
|
199
|
+
* @param bytes - Size in bytes
|
|
200
|
+
* @returns Formatted string like "18.4 KB"
|
|
201
|
+
*/
|
|
202
|
+
export function formatBytes(bytes) {
|
|
203
|
+
if (bytes < 1024)
|
|
204
|
+
return `${bytes} B`;
|
|
205
|
+
if (bytes < 1024 * 1024)
|
|
206
|
+
return `${(bytes / 1024).toFixed(1)} KB`;
|
|
207
|
+
return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
|
|
208
|
+
}
|
|
209
|
+
//# sourceMappingURL=marketplace.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"marketplace.js","sourceRoot":"","sources":["../../../../../cli/src/utils/marketplace.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "crewly",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.3",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Crewly orchestrates multiple Claude Code instances as AI development teams",
|
|
6
6
|
"main": "dist/cli/cli/src/index.js",
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
"dist/backend/",
|
|
12
12
|
"dist/cli/",
|
|
13
13
|
"config/",
|
|
14
|
+
"!config/skills/agent/",
|
|
14
15
|
"!config/**/.env",
|
|
15
16
|
"!config/**/.env.*",
|
|
16
17
|
"!config/**/*.test.ts",
|
|
@@ -74,6 +75,7 @@
|
|
|
74
75
|
"node-pty": "^1.0.0",
|
|
75
76
|
"open": "^9.1.0",
|
|
76
77
|
"socket.io": "^4.7.2",
|
|
78
|
+
"tar": "^7.5.9",
|
|
77
79
|
"uuid": "^9.0.0",
|
|
78
80
|
"ws": "^8.14.2",
|
|
79
81
|
"yaml": "^2.3.2"
|
|
@@ -86,6 +88,7 @@
|
|
|
86
88
|
"@types/node": "^20.5.1",
|
|
87
89
|
"@types/socket.io-client": "^1.4.36",
|
|
88
90
|
"@types/supertest": "^6.0.3",
|
|
91
|
+
"@types/tar": "^6.1.13",
|
|
89
92
|
"@types/uuid": "^9.0.2",
|
|
90
93
|
"@types/ws": "^8.5.5",
|
|
91
94
|
"@typescript-eslint/eslint-plugin": "^6.4.0",
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
# Accept and take the next available task from the task queue
|
|
3
|
-
set -euo pipefail
|
|
4
|
-
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
5
|
-
source "${SCRIPT_DIR}/../_common/lib.sh"
|
|
6
|
-
|
|
7
|
-
INPUT="${1:-}"
|
|
8
|
-
[ -z "$INPUT" ] && error_exit "Usage: execute.sh '{\"sessionName\":\"dev-1\"}'"
|
|
9
|
-
|
|
10
|
-
SESSION_NAME=$(echo "$INPUT" | jq -r '.sessionName // empty')
|
|
11
|
-
require_param "sessionName" "$SESSION_NAME"
|
|
12
|
-
|
|
13
|
-
TEAM_MEMBER_ID=$(echo "$INPUT" | jq -r '.teamMemberId // empty')
|
|
14
|
-
|
|
15
|
-
BODY=$(jq -n \
|
|
16
|
-
--arg sessionName "$SESSION_NAME" \
|
|
17
|
-
--arg teamMemberId "$TEAM_MEMBER_ID" \
|
|
18
|
-
'{sessionName: $sessionName} +
|
|
19
|
-
(if $teamMemberId != "" then {teamMemberId: $teamMemberId} else {} end)')
|
|
20
|
-
|
|
21
|
-
api_call POST "/task-management/take-next" "$BODY"
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
# Accept Task
|
|
2
|
-
|
|
3
|
-
Accept and take the next available task from the task queue. The backend assigns the highest-priority unassigned task to your session.
|
|
4
|
-
|
|
5
|
-
## Parameters
|
|
6
|
-
|
|
7
|
-
| Parameter | Required | Description |
|
|
8
|
-
|-----------|----------|-------------|
|
|
9
|
-
| `sessionName` | Yes | Your agent session name |
|
|
10
|
-
| `teamMemberId` | No | Your team member ID for targeted assignment |
|
|
11
|
-
|
|
12
|
-
## Example
|
|
13
|
-
|
|
14
|
-
```bash
|
|
15
|
-
bash config/skills/agent/accept-task/execute.sh '{"sessionName":"dev-1"}'
|
|
16
|
-
```
|
|
17
|
-
|
|
18
|
-
## Output
|
|
19
|
-
|
|
20
|
-
JSON with the assigned task details including path, description, and priority. Returns an empty result if no tasks are available.
|