Created 10 detailed GitHub issues covering: - Project activation and management UI (#1-2) - Worker node coordination and visualization (#3-4) - Automated GitHub repository scanning (#5) - Intelligent model-to-issue matching (#6) - Multi-model task execution system (#7) - N8N workflow integration (#8) - Hive-Bzzz P2P bridge (#9) - Peer assistance protocol (#10) Each issue includes detailed specifications, acceptance criteria, technical implementation notes, and dependency mapping. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
40 lines
1.3 KiB
JavaScript
40 lines
1.3 KiB
JavaScript
/**
|
|
* Helper functions to work with docblock comments.
|
|
*/
|
|
const DOCLET_PATTERN = /^@(\w+)(?:$|\s((?:[^](?!^@\w))*))/gim;
|
|
function parseDocblock(str) {
|
|
// Does not use \s in the regex as this would match also \n and conflicts
|
|
// with windows line endings.
|
|
return str.replace(/^[ \t]*\*[ \t]?/gm, '').trim();
|
|
}
|
|
const DOCBLOCK_HEADER = /^\*\s/;
|
|
/**
|
|
* Given a path, this function returns the closest preceding docblock if it
|
|
* exists.
|
|
*/
|
|
export function getDocblock(path, trailing = false) {
|
|
let comments = [];
|
|
if (trailing && path.node.trailingComments) {
|
|
comments = path.node.trailingComments.filter((comment) => comment.type === 'CommentBlock' && DOCBLOCK_HEADER.test(comment.value));
|
|
}
|
|
else if (path.node.leadingComments) {
|
|
comments = path.node.leadingComments.filter((comment) => comment.type === 'CommentBlock' && DOCBLOCK_HEADER.test(comment.value));
|
|
}
|
|
if (comments.length > 0) {
|
|
return parseDocblock(comments[comments.length - 1].value);
|
|
}
|
|
return null;
|
|
}
|
|
/**
|
|
* Given a string, this functions returns an object with doclet names as keys
|
|
* and their "content" as values.
|
|
*/
|
|
export function getDoclets(str) {
|
|
const doclets = Object.create(null);
|
|
let match;
|
|
while ((match = DOCLET_PATTERN.exec(str))) {
|
|
doclets[match[1]] = match[2] || true;
|
|
}
|
|
return doclets;
|
|
}
|