 e89f2f4b7b
			
		
	
	e89f2f4b7b
	
	
	
		
			
			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>
		
			
				
	
	
		
			79 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			79 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| import { isSeq, isPair, isMap } from '../../nodes/identity.js';
 | |
| import { createPair, Pair } from '../../nodes/Pair.js';
 | |
| import { Scalar } from '../../nodes/Scalar.js';
 | |
| import { YAMLSeq } from '../../nodes/YAMLSeq.js';
 | |
| 
 | |
| function resolvePairs(seq, onError) {
 | |
|     if (isSeq(seq)) {
 | |
|         for (let i = 0; i < seq.items.length; ++i) {
 | |
|             let item = seq.items[i];
 | |
|             if (isPair(item))
 | |
|                 continue;
 | |
|             else if (isMap(item)) {
 | |
|                 if (item.items.length > 1)
 | |
|                     onError('Each pair must have its own sequence indicator');
 | |
|                 const pair = item.items[0] || new Pair(new Scalar(null));
 | |
|                 if (item.commentBefore)
 | |
|                     pair.key.commentBefore = pair.key.commentBefore
 | |
|                         ? `${item.commentBefore}\n${pair.key.commentBefore}`
 | |
|                         : item.commentBefore;
 | |
|                 if (item.comment) {
 | |
|                     const cn = pair.value ?? pair.key;
 | |
|                     cn.comment = cn.comment
 | |
|                         ? `${item.comment}\n${cn.comment}`
 | |
|                         : item.comment;
 | |
|                 }
 | |
|                 item = pair;
 | |
|             }
 | |
|             seq.items[i] = isPair(item) ? item : new Pair(item);
 | |
|         }
 | |
|     }
 | |
|     else
 | |
|         onError('Expected a sequence for this tag');
 | |
|     return seq;
 | |
| }
 | |
| function createPairs(schema, iterable, ctx) {
 | |
|     const { replacer } = ctx;
 | |
|     const pairs = new YAMLSeq(schema);
 | |
|     pairs.tag = 'tag:yaml.org,2002:pairs';
 | |
|     let i = 0;
 | |
|     if (iterable && Symbol.iterator in Object(iterable))
 | |
|         for (let it of iterable) {
 | |
|             if (typeof replacer === 'function')
 | |
|                 it = replacer.call(iterable, String(i++), it);
 | |
|             let key, value;
 | |
|             if (Array.isArray(it)) {
 | |
|                 if (it.length === 2) {
 | |
|                     key = it[0];
 | |
|                     value = it[1];
 | |
|                 }
 | |
|                 else
 | |
|                     throw new TypeError(`Expected [key, value] tuple: ${it}`);
 | |
|             }
 | |
|             else if (it && it instanceof Object) {
 | |
|                 const keys = Object.keys(it);
 | |
|                 if (keys.length === 1) {
 | |
|                     key = keys[0];
 | |
|                     value = it[key];
 | |
|                 }
 | |
|                 else {
 | |
|                     throw new TypeError(`Expected tuple with one key, not ${keys.length} keys`);
 | |
|                 }
 | |
|             }
 | |
|             else {
 | |
|                 key = it;
 | |
|             }
 | |
|             pairs.items.push(createPair(key, value, ctx));
 | |
|         }
 | |
|     return pairs;
 | |
| }
 | |
| const pairs = {
 | |
|     collection: 'seq',
 | |
|     default: false,
 | |
|     tag: 'tag:yaml.org,2002:pairs',
 | |
|     resolve: resolvePairs,
 | |
|     createNode: createPairs
 | |
| };
 | |
| 
 | |
| export { createPairs, pairs, resolvePairs };
 |