@copilot-swarm/core 0.0.8 → 0.0.10

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.
Files changed (42) hide show
  1. package/defaults/swarm.config.yaml +1 -0
  2. package/dist/checkpoint.d.ts +8 -0
  3. package/dist/checkpoint.d.ts.map +1 -1
  4. package/dist/checkpoint.js.map +1 -1
  5. package/dist/checkpoint.test.js +29 -0
  6. package/dist/checkpoint.test.js.map +1 -1
  7. package/dist/config.d.ts +2 -1
  8. package/dist/config.d.ts.map +1 -1
  9. package/dist/config.js +48 -8
  10. package/dist/config.js.map +1 -1
  11. package/dist/github-issue.d.ts +6 -0
  12. package/dist/github-issue.d.ts.map +1 -0
  13. package/dist/github-issue.js +51 -0
  14. package/dist/github-issue.js.map +1 -0
  15. package/dist/index.js +1 -1
  16. package/dist/index.js.map +1 -1
  17. package/dist/messages.d.ts +9 -0
  18. package/dist/messages.d.ts.map +1 -1
  19. package/dist/messages.js +9 -0
  20. package/dist/messages.js.map +1 -1
  21. package/dist/pipeline-config.d.ts.map +1 -1
  22. package/dist/pipeline-config.js +1 -0
  23. package/dist/pipeline-config.js.map +1 -1
  24. package/dist/pipeline-config.test.js +17 -0
  25. package/dist/pipeline-config.test.js.map +1 -1
  26. package/dist/pipeline-engine.d.ts.map +1 -1
  27. package/dist/pipeline-engine.js +8 -0
  28. package/dist/pipeline-engine.js.map +1 -1
  29. package/dist/pipeline-types.d.ts +1 -0
  30. package/dist/pipeline-types.d.ts.map +1 -1
  31. package/dist/planning-engine.d.ts +17 -0
  32. package/dist/planning-engine.d.ts.map +1 -1
  33. package/dist/planning-engine.js +399 -16
  34. package/dist/planning-engine.js.map +1 -1
  35. package/dist/progress-tracker.d.ts.map +1 -1
  36. package/dist/progress-tracker.js +4 -0
  37. package/dist/progress-tracker.js.map +1 -1
  38. package/dist/textarea.d.ts +7 -0
  39. package/dist/textarea.d.ts.map +1 -0
  40. package/dist/textarea.js +156 -0
  41. package/dist/textarea.js.map +1 -0
  42. package/package.json +1 -1
@@ -0,0 +1,156 @@
1
+ /**
2
+ * Interactive multi-line text editor for the terminal.
3
+ * Uses raw stdin mode with ANSI rendering — no external dependencies.
4
+ * Arrow keys to navigate, Enter for newlines, Ctrl+Enter (or Ctrl+D) to submit, Esc to cancel.
5
+ */
6
+ const TITLE = " Task Description ";
7
+ const FOOTER_HINT = " Ctrl+Enter submit │ Esc cancel ";
8
+ export async function openTextarea() {
9
+ if (!process.stdin.isTTY)
10
+ return undefined;
11
+ const cols = process.stdout.columns || 80;
12
+ const rows = process.stdout.rows || 24;
13
+ const editorHeight = Math.max(5, rows - 4);
14
+ const innerWidth = cols - 4;
15
+ const lines = [""];
16
+ let curRow = 0;
17
+ let curCol = 0;
18
+ let scroll = 0;
19
+ function clamp() {
20
+ if (curRow < 0)
21
+ curRow = 0;
22
+ if (curRow >= lines.length)
23
+ curRow = lines.length - 1;
24
+ if (curCol < 0)
25
+ curCol = 0;
26
+ if (curCol > lines[curRow].length)
27
+ curCol = lines[curRow].length;
28
+ if (curRow < scroll)
29
+ scroll = curRow;
30
+ if (curRow >= scroll + editorHeight)
31
+ scroll = curRow - editorHeight + 1;
32
+ }
33
+ function render() {
34
+ const titlePad = Math.max(0, cols - 2 - TITLE.length);
35
+ const top = `┌${TITLE}${"─".repeat(titlePad)}┐`;
36
+ const footerPad = Math.max(0, cols - 2 - FOOTER_HINT.length);
37
+ const bottom = `└${"─".repeat(footerPad)}${FOOTER_HINT}┘`;
38
+ process.stdout.write("\x1b[2J\x1b[1;1H");
39
+ process.stdout.write(`${top}\n`);
40
+ for (let i = 0; i < editorHeight; i++) {
41
+ const idx = scroll + i;
42
+ const text = idx < lines.length ? lines[idx] : "";
43
+ const display = text.substring(0, innerWidth);
44
+ const pad = Math.max(0, innerWidth - display.length);
45
+ process.stdout.write(`│ ${display}${" ".repeat(pad)} │\n`);
46
+ }
47
+ process.stdout.write(bottom);
48
+ const screenRow = 2 + (curRow - scroll);
49
+ const screenCol = 3 + curCol;
50
+ process.stdout.write(`\x1b[${screenRow};${screenCol}H`);
51
+ }
52
+ return new Promise((resolve) => {
53
+ process.stdout.write("\x1b[?1049h"); // alternate screen
54
+ process.stdout.write("\x1b[?25h"); // show cursor
55
+ process.stdin.setRawMode(true);
56
+ process.stdin.resume();
57
+ process.stdin.setEncoding("utf-8");
58
+ render();
59
+ function cleanup(result) {
60
+ process.stdin.removeListener("data", onData);
61
+ process.stdin.setRawMode(false);
62
+ process.stdin.pause();
63
+ process.stdout.write("\x1b[?1049l"); // leave alternate screen
64
+ resolve(result);
65
+ }
66
+ function onData(data) {
67
+ for (let i = 0; i < data.length; i++) {
68
+ const ch = data.charCodeAt(i);
69
+ // Ctrl+C — cancel
70
+ if (ch === 3) {
71
+ cleanup(undefined);
72
+ return;
73
+ }
74
+ // Ctrl+D (4) or LF (10, Ctrl+Enter in most terminals) — submit
75
+ if (ch === 4 || ch === 10) {
76
+ const text = lines.join("\n").trim();
77
+ cleanup(text || undefined);
78
+ return;
79
+ }
80
+ // Escape / escape sequences
81
+ if (ch === 27) {
82
+ if (i + 2 < data.length && data.charCodeAt(i + 1) === 91) {
83
+ const code = data.charCodeAt(i + 2);
84
+ if (code === 65)
85
+ curRow--;
86
+ else if (code === 66)
87
+ curRow++;
88
+ else if (code === 67)
89
+ curCol++;
90
+ else if (code === 68)
91
+ curCol--;
92
+ else if (code === 72)
93
+ curCol = 0;
94
+ else if (code === 70)
95
+ curCol = lines[curRow].length;
96
+ else if (code === 51 && i + 3 < data.length && data.charCodeAt(i + 3) === 126) {
97
+ // Delete key
98
+ if (curCol < lines[curRow].length) {
99
+ lines[curRow] = lines[curRow].substring(0, curCol) + lines[curRow].substring(curCol + 1);
100
+ }
101
+ else if (curRow < lines.length - 1) {
102
+ lines[curRow] += lines[curRow + 1];
103
+ lines.splice(curRow + 1, 1);
104
+ }
105
+ i++;
106
+ }
107
+ i += 2;
108
+ }
109
+ else {
110
+ // Plain Escape — cancel
111
+ cleanup(undefined);
112
+ return;
113
+ }
114
+ clamp();
115
+ render();
116
+ continue;
117
+ }
118
+ // Enter (CR) — new line
119
+ if (ch === 13) {
120
+ const after = lines[curRow].substring(curCol);
121
+ lines[curRow] = lines[curRow].substring(0, curCol);
122
+ lines.splice(curRow + 1, 0, after);
123
+ curRow++;
124
+ curCol = 0;
125
+ clamp();
126
+ render();
127
+ continue;
128
+ }
129
+ // Backspace
130
+ if (ch === 127) {
131
+ if (curCol > 0) {
132
+ lines[curRow] = lines[curRow].substring(0, curCol - 1) + lines[curRow].substring(curCol);
133
+ curCol--;
134
+ }
135
+ else if (curRow > 0) {
136
+ curCol = lines[curRow - 1].length;
137
+ lines[curRow - 1] += lines[curRow];
138
+ lines.splice(curRow, 1);
139
+ curRow--;
140
+ }
141
+ clamp();
142
+ render();
143
+ continue;
144
+ }
145
+ // Printable characters (ASCII + Unicode)
146
+ if (ch >= 32) {
147
+ lines[curRow] = lines[curRow].substring(0, curCol) + data[i] + lines[curRow].substring(curCol);
148
+ curCol++;
149
+ render();
150
+ }
151
+ }
152
+ }
153
+ process.stdin.on("data", onData);
154
+ });
155
+ }
156
+ //# sourceMappingURL=textarea.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"textarea.js","sourceRoot":"","sources":["../src/textarea.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,KAAK,GAAG,oBAAoB,CAAC;AACnC,MAAM,WAAW,GAAG,kCAAkC,CAAC;AAEvD,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAE3C,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;IAC1C,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;IACvC,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC;IAC3C,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC;IAE5B,MAAM,KAAK,GAAa,CAAC,EAAE,CAAC,CAAC;IAC7B,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,SAAS,KAAK;QACZ,IAAI,MAAM,GAAG,CAAC;YAAE,MAAM,GAAG,CAAC,CAAC;QAC3B,IAAI,MAAM,IAAI,KAAK,CAAC,MAAM;YAAE,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QACtD,IAAI,MAAM,GAAG,CAAC;YAAE,MAAM,GAAG,CAAC,CAAC;QAC3B,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM;YAAE,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;QACjE,IAAI,MAAM,GAAG,MAAM;YAAE,MAAM,GAAG,MAAM,CAAC;QACrC,IAAI,MAAM,IAAI,MAAM,GAAG,YAAY;YAAE,MAAM,GAAG,MAAM,GAAG,YAAY,GAAG,CAAC,CAAC;IAC1E,CAAC;IAED,SAAS,MAAM;QACb,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;QACtD,MAAM,GAAG,GAAG,IAAI,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;QAEhD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;QAC7D,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,WAAW,GAAG,CAAC;QAE1D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACzC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;QAEjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,CAAC;YACvB,MAAM,IAAI,GAAG,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAClD,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;YAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;YACrD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC7D,CAAC;QAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAE7B,MAAM,SAAS,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;QACxC,MAAM,SAAS,GAAG,CAAC,GAAG,MAAM,CAAC;QAC7B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,SAAS,IAAI,SAAS,GAAG,CAAC,CAAC;IAC1D,CAAC;IAED,OAAO,IAAI,OAAO,CAAqB,CAAC,OAAO,EAAE,EAAE;QACjD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,mBAAmB;QACxD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,cAAc;QACjD,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC/B,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QACvB,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAEnC,MAAM,EAAE,CAAC;QAET,SAAS,OAAO,CAAC,MAA0B;YACzC,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC7C,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAChC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACtB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,yBAAyB;YAC9D,OAAO,CAAC,MAAM,CAAC,CAAC;QAClB,CAAC;QAED,SAAS,MAAM,CAAC,IAAY;YAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACrC,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBAE9B,kBAAkB;gBAClB,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;oBACb,OAAO,CAAC,SAAS,CAAC,CAAC;oBACnB,OAAO;gBACT,CAAC;gBAED,+DAA+D;gBAC/D,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;oBAC1B,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;oBACrC,OAAO,CAAC,IAAI,IAAI,SAAS,CAAC,CAAC;oBAC3B,OAAO;gBACT,CAAC;gBAED,4BAA4B;gBAC5B,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;oBACd,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;wBACzD,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;wBACpC,IAAI,IAAI,KAAK,EAAE;4BAAE,MAAM,EAAE,CAAC;6BACrB,IAAI,IAAI,KAAK,EAAE;4BAAE,MAAM,EAAE,CAAC;6BAC1B,IAAI,IAAI,KAAK,EAAE;4BAAE,MAAM,EAAE,CAAC;6BAC1B,IAAI,IAAI,KAAK,EAAE;4BAAE,MAAM,EAAE,CAAC;6BAC1B,IAAI,IAAI,KAAK,EAAE;4BAAE,MAAM,GAAG,CAAC,CAAC;6BAC5B,IAAI,IAAI,KAAK,EAAE;4BAAE,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;6BAC/C,IAAI,IAAI,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;4BAC9E,aAAa;4BACb,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC;gCAClC,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;4BAC3F,CAAC;iCAAM,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gCACrC,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gCACnC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;4BAC9B,CAAC;4BACD,CAAC,EAAE,CAAC;wBACN,CAAC;wBACD,CAAC,IAAI,CAAC,CAAC;oBACT,CAAC;yBAAM,CAAC;wBACN,wBAAwB;wBACxB,OAAO,CAAC,SAAS,CAAC,CAAC;wBACnB,OAAO;oBACT,CAAC;oBACD,KAAK,EAAE,CAAC;oBACR,MAAM,EAAE,CAAC;oBACT,SAAS;gBACX,CAAC;gBAED,wBAAwB;gBACxB,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;oBACd,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;oBAC9C,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;oBACnD,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;oBACnC,MAAM,EAAE,CAAC;oBACT,MAAM,GAAG,CAAC,CAAC;oBACX,KAAK,EAAE,CAAC;oBACR,MAAM,EAAE,CAAC;oBACT,SAAS;gBACX,CAAC;gBAED,YAAY;gBACZ,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;oBACf,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;wBACf,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;wBACzF,MAAM,EAAE,CAAC;oBACX,CAAC;yBAAM,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;wBACtB,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;wBAClC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;wBACnC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;wBACxB,MAAM,EAAE,CAAC;oBACX,CAAC;oBACD,KAAK,EAAE,CAAC;oBACR,MAAM,EAAE,CAAC;oBACT,SAAS;gBACX,CAAC;gBAED,yCAAyC;gBACzC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC;oBACb,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;oBAC/F,MAAM,EAAE,CAAC;oBACT,MAAM,EAAE,CAAC;gBACX,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;AACL,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@copilot-swarm/core",
3
- "version": "0.0.8",
3
+ "version": "0.0.10",
4
4
  "description": "Multi-agent orchestrator for GitHub Copilot — coordinates PM, designer, engineer, reviewer, and tester agents through a declarative pipeline",
5
5
  "license": "MIT",
6
6
  "type": "module",