@sylix/coworker 2.0.4 → 2.0.8

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 (97) hide show
  1. package/README.md +41 -13
  2. package/dist/agents/SubagentLoader.d.ts.map +1 -1
  3. package/dist/agents/SubagentLoader.js +1 -2
  4. package/dist/agents/SubagentLoader.js.map +1 -1
  5. package/dist/agents/defaults/explore.md +24 -0
  6. package/dist/agents/defaults/plan.md +25 -0
  7. package/dist/agents/defaults/review.md +40 -0
  8. package/dist/cli/index.d.ts.map +1 -1
  9. package/dist/cli/index.js +19 -16
  10. package/dist/cli/index.js.map +1 -1
  11. package/dist/commands/slash/core.d.ts.map +1 -1
  12. package/dist/commands/slash/core.js +40 -2
  13. package/dist/commands/slash/core.js.map +1 -1
  14. package/dist/commands/slash/developer.js +1 -1
  15. package/dist/commands/slash/developer.js.map +1 -1
  16. package/dist/commands/slash/plugins.d.ts +3 -0
  17. package/dist/commands/slash/plugins.d.ts.map +1 -0
  18. package/dist/commands/slash/plugins.js +139 -0
  19. package/dist/commands/slash/plugins.js.map +1 -0
  20. package/dist/commands/slash/registry.d.ts.map +1 -1
  21. package/dist/commands/slash/registry.js +2 -0
  22. package/dist/commands/slash/registry.js.map +1 -1
  23. package/dist/commands/slash/todo.d.ts +3 -0
  24. package/dist/commands/slash/todo.d.ts.map +1 -0
  25. package/dist/commands/slash/todo.js +281 -0
  26. package/dist/commands/slash/todo.js.map +1 -0
  27. package/dist/config/SettingsManager.d.ts +3 -0
  28. package/dist/config/SettingsManager.d.ts.map +1 -1
  29. package/dist/config/SettingsManager.js +14 -1
  30. package/dist/config/SettingsManager.js.map +1 -1
  31. package/dist/core/CoWorkerAgent.d.ts +15 -5
  32. package/dist/core/CoWorkerAgent.d.ts.map +1 -1
  33. package/dist/core/CoWorkerAgent.js +238 -36
  34. package/dist/core/CoWorkerAgent.js.map +1 -1
  35. package/dist/plugins/PluginManager.d.ts +66 -0
  36. package/dist/plugins/PluginManager.d.ts.map +1 -0
  37. package/dist/plugins/PluginManager.js +254 -0
  38. package/dist/plugins/PluginManager.js.map +1 -0
  39. package/dist/services/browser/browser-manager.d.ts +1 -0
  40. package/dist/services/browser/browser-manager.d.ts.map +1 -1
  41. package/dist/services/browser/browser-manager.js +44 -0
  42. package/dist/services/browser/browser-manager.js.map +1 -1
  43. package/dist/services/browser/protocol.d.ts +4 -4
  44. package/dist/services/browser/sandbox/quickjs-sandbox.d.ts.map +1 -1
  45. package/dist/services/browser/sandbox/quickjs-sandbox.js +33 -2
  46. package/dist/services/browser/sandbox/quickjs-sandbox.js.map +1 -1
  47. package/dist/session/SessionManager.d.ts +1 -1
  48. package/dist/session/SessionManager.d.ts.map +1 -1
  49. package/dist/session/db.d.ts +1 -1
  50. package/dist/session/db.d.ts.map +1 -1
  51. package/dist/session/db.js +2 -1
  52. package/dist/session/db.js.map +1 -1
  53. package/dist/snapshot/SnapshotManager.d.ts.map +1 -1
  54. package/dist/snapshot/SnapshotManager.js +4 -5
  55. package/dist/snapshot/SnapshotManager.js.map +1 -1
  56. package/dist/todos/TodoManager.d.ts +42 -14
  57. package/dist/todos/TodoManager.d.ts.map +1 -1
  58. package/dist/todos/TodoManager.js +231 -46
  59. package/dist/todos/TodoManager.js.map +1 -1
  60. package/dist/tools/CronManager.d.ts +33 -13
  61. package/dist/tools/CronManager.d.ts.map +1 -1
  62. package/dist/tools/CronManager.js +197 -17
  63. package/dist/tools/CronManager.js.map +1 -1
  64. package/dist/tools/NativeTools.d.ts +40 -16
  65. package/dist/tools/NativeTools.d.ts.map +1 -1
  66. package/dist/tools/NativeTools.js +196 -104
  67. package/dist/tools/NativeTools.js.map +1 -1
  68. package/dist/tools/Schemas.d.ts +568 -1
  69. package/dist/tools/Schemas.d.ts.map +1 -1
  70. package/dist/tools/Schemas.js +148 -6
  71. package/dist/tools/Schemas.js.map +1 -1
  72. package/dist/utils/PromptCache.d.ts +27 -0
  73. package/dist/utils/PromptCache.d.ts.map +1 -0
  74. package/dist/utils/PromptCache.js +113 -0
  75. package/dist/utils/PromptCache.js.map +1 -0
  76. package/dist/utils/character.d.ts +1 -0
  77. package/dist/utils/character.d.ts.map +1 -1
  78. package/dist/utils/character.js +37 -22
  79. package/dist/utils/character.js.map +1 -1
  80. package/dist/utils/clipboard.d.ts +5 -0
  81. package/dist/utils/clipboard.d.ts.map +1 -0
  82. package/dist/utils/clipboard.js +139 -0
  83. package/dist/utils/clipboard.js.map +1 -0
  84. package/dist/utils/inputbar.d.ts +12 -8
  85. package/dist/utils/inputbar.d.ts.map +1 -1
  86. package/dist/utils/inputbar.js +151 -64
  87. package/dist/utils/inputbar.js.map +1 -1
  88. package/dist/utils/output.d.ts +2 -2
  89. package/dist/utils/output.js +3 -3
  90. package/dist/utils/systemPrompt.d.ts +2 -1
  91. package/dist/utils/systemPrompt.d.ts.map +1 -1
  92. package/dist/utils/systemPrompt.js +108 -7
  93. package/dist/utils/systemPrompt.js.map +1 -1
  94. package/dist/utils/welcome.d.ts.map +1 -1
  95. package/dist/utils/welcome.js +17 -14
  96. package/dist/utils/welcome.js.map +1 -1
  97. package/package.json +4 -3
@@ -0,0 +1,139 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.getPlatform = getPlatform;
37
+ exports.readClipboardImage = readClipboardImage;
38
+ exports.clipboardHasImage = clipboardHasImage;
39
+ const child_process_1 = require("child_process");
40
+ const fs = __importStar(require("fs"));
41
+ const path = __importStar(require("path"));
42
+ function getPlatform() {
43
+ if (process.platform === 'darwin')
44
+ return 'macos';
45
+ if (process.platform === 'win32')
46
+ return 'windows';
47
+ return 'linux';
48
+ }
49
+ async function readClipboardImage() {
50
+ const platform = getPlatform();
51
+ try {
52
+ switch (platform) {
53
+ case 'macos':
54
+ return await getMacClipboardImage();
55
+ case 'windows':
56
+ return await getWindowsClipboardImage();
57
+ case 'linux':
58
+ return await getLinuxClipboardImage();
59
+ }
60
+ }
61
+ catch (error) {
62
+ return null;
63
+ }
64
+ return null;
65
+ }
66
+ async function getMacClipboardImage() {
67
+ const script = `
68
+ set theData to the clipboard as «class PNGf»
69
+ return base64 encode (get theData)
70
+ `;
71
+ try {
72
+ const result = (0, child_process_1.execSync)(`osascript -e '${script}'`, { encoding: 'utf8' });
73
+ if (result && result.trim()) {
74
+ return result.trim();
75
+ }
76
+ }
77
+ catch {
78
+ return null;
79
+ }
80
+ const tiffScript = `
81
+ set theData to the clipboard as «class TIFF»
82
+ return base64 encode (get theData)
83
+ `;
84
+ try {
85
+ const result = (0, child_process_1.execSync)(`osascript -e '${tiffScript}'`, { encoding: 'utf8' });
86
+ if (result && result.trim()) {
87
+ return result.trim();
88
+ }
89
+ }
90
+ catch {
91
+ return null;
92
+ }
93
+ return null;
94
+ }
95
+ async function getWindowsClipboardImage() {
96
+ const tempDir = process.env.TEMP || process.env.TMP || '/tmp';
97
+ const tempFile = path.join(tempDir, `clipboard_${Date.now()}.png`);
98
+ const psScript = `
99
+ Add-Type -AssemblyName System.Windows.Forms
100
+ Add-Type -AssemblyName System.Drawing
101
+ $img = [System.Windows.Forms.Clipboard]::GetImage()
102
+ if ($img -ne $null) {
103
+ $img.Save('${tempFile.replace(/\\/g, '\\\\')}', [System.Drawing.Imaging.ImageFormat]::Png)
104
+ Write-Output 'success'
105
+ }
106
+ `;
107
+ try {
108
+ const result = (0, child_process_1.execSync)(`powershell -Command "${psScript}"`, { encoding: 'utf8' });
109
+ if (result.includes('success') && fs.existsSync(tempFile)) {
110
+ const base64 = fs.readFileSync(tempFile).toString('base64');
111
+ fs.unlinkSync(tempFile);
112
+ return base64;
113
+ }
114
+ }
115
+ catch {
116
+ if (fs.existsSync(tempFile)) {
117
+ fs.unlinkSync(tempFile);
118
+ }
119
+ return null;
120
+ }
121
+ return null;
122
+ }
123
+ async function getLinuxClipboardImage() {
124
+ try {
125
+ const result = (0, child_process_1.execSync)('wl-paste -t image/png 2>/dev/null || xclip -selection clipboard -t image/png -o 2>/dev/null || echo ""', { encoding: 'utf8' });
126
+ if (result && result.trim()) {
127
+ return Buffer.from(result.trim(), 'base64').toString('base64');
128
+ }
129
+ }
130
+ catch {
131
+ return null;
132
+ }
133
+ return null;
134
+ }
135
+ async function clipboardHasImage() {
136
+ const image = await readClipboardImage();
137
+ return image !== null;
138
+ }
139
+ //# sourceMappingURL=clipboard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clipboard.js","sourceRoot":"","sources":["../../src/utils/clipboard.ts"],"names":[],"mappings":"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"}
@@ -1,20 +1,24 @@
1
1
  import { AgentMode } from '../types/modes';
2
- /**
3
- * Premium Input Bar Manager — v2.0.5
4
- * Handles the boxed input area and Mode Cycling (BUILD, PLAN, RESEARCH, ASK).
5
- */
6
2
  export declare function drawTopBorder(): void;
7
3
  export declare function drawBottomBorder(): void;
8
- export declare function drawStatusLine(mode: AgentMode | string, status?: string): void;
4
+ export declare function getPromptString(): string;
5
+ export declare function drawStatusLine(mode: AgentMode | string, contextPct?: number, contextLabel?: string, extraHint?: string): void;
6
+ export interface UserInput {
7
+ text: string;
8
+ images: string[];
9
+ }
9
10
  export declare class InputBarManager {
10
11
  private mode;
12
+ private contextPct;
13
+ private pendingImages;
14
+ private showTasks;
11
15
  constructor();
12
16
  getMode(): AgentMode;
13
- /** Lifecycle: Clean up listeners and reset TTY */
17
+ setContextPct(pct: number): void;
14
18
  destroy(): void;
15
- /** Lifecycle: Reset internal state */
16
19
  reset(): void;
17
20
  private cycleMode;
18
- ask(history: string[], contextLabel: string): Promise<string>;
21
+ private toggleTasks;
22
+ ask(history: string[], contextLabel?: string): Promise<UserInput>;
19
23
  }
20
24
  //# sourceMappingURL=inputbar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"inputbar.d.ts","sourceRoot":"","sources":["../../src/utils/inputbar.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C;;;GAGG;AAEH,wBAAgB,aAAa,IAAI,IAAI,CAGpC;AAED,wBAAgB,gBAAgB,IAAI,IAAI,CAGvC;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,EAAE,MAAM,GAAE,MAAgB,GAAG,IAAI,CAuBvF;AAgBD,qBAAa,eAAe;IAC1B,OAAO,CAAC,IAAI,CAA8B;;IAS1C,OAAO,IAAI,SAAS;IAEpB,kDAAkD;IAClD,OAAO,IAAI,IAAI;IAMf,sCAAsC;IACtC,KAAK,IAAI,IAAI;IAIb,OAAO,CAAC,SAAS;IAMX,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAiCpE"}
1
+ {"version":3,"file":"inputbar.d.ts","sourceRoot":"","sources":["../../src/utils/inputbar.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAU3C,wBAAgB,aAAa,IAAI,IAAI,CAGpC;AAED,wBAAgB,gBAAgB,IAAI,IAAI,CAGvC;AAED,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED,wBAAgB,cAAc,CAC5B,IAAI,EAAE,SAAS,GAAG,MAAM,EACxB,UAAU,GAAE,MAAU,EACtB,YAAY,CAAC,EAAE,MAAM,EACrB,SAAS,CAAC,EAAE,MAAM,GACjB,IAAI,CA+CN;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,IAAI,CAA8B;IAC1C,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,SAAS,CAAkB;;IAQnC,OAAO,IAAI,SAAS;IACpB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAEhC,OAAO,IAAI,IAAI;IAGf,KAAK,IAAI,IAAI;IAMb,OAAO,CAAC,SAAS;YAMH,WAAW;IAkDnB,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;CA4DxE"}
@@ -36,105 +36,192 @@ Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.InputBarManager = void 0;
37
37
  exports.drawTopBorder = drawTopBorder;
38
38
  exports.drawBottomBorder = drawBottomBorder;
39
+ exports.getPromptString = getPromptString;
39
40
  exports.drawStatusLine = drawStatusLine;
40
41
  const readline = __importStar(require("readline"));
41
- const output_1 = require("./output");
42
+ const chalk = __importStar(require("chalk"));
42
43
  const modes_1 = require("../types/modes");
43
- /**
44
- * Premium Input Bar Manager — v2.0.5
45
- * Handles the boxed input area and Mode Cycling (BUILD, PLAN, RESEARCH, ASK).
46
- */
44
+ const clipboard_1 = require("./clipboard");
45
+ const TodoManager_1 = require("../todos/TodoManager");
46
+ const BORDER_COLOR = '#374151';
47
+ const BRAND_COLOR = '#00D4FF';
48
+ const DIM_COLOR = '#4B5563';
49
+ const WARNING_COLOR = '#F59E0B';
50
+ const DANGER_COLOR = '#EF4444';
47
51
  function drawTopBorder() {
48
- const width = (0, output_1.getTermWidth)();
49
- console.log(output_1.theme.dim(' ┌' + '─'.repeat(width - 6) + ''));
52
+ const cols = process.stdout.columns || 80;
53
+ process.stdout.write(chalk.hex(BORDER_COLOR)('─'.repeat(cols)) + '\n');
50
54
  }
51
55
  function drawBottomBorder() {
52
- const width = (0, output_1.getTermWidth)();
53
- console.log(output_1.theme.dim(' └' + '─'.repeat(width - 6) + ''));
56
+ const cols = process.stdout.columns || 80;
57
+ process.stdout.write(chalk.hex(BORDER_COLOR)('─'.repeat(cols)) + '\n');
54
58
  }
55
- function drawStatusLine(mode, status = 'ready') {
56
- const width = (0, output_1.getTermWidth)();
57
- // Handle literal strings for legacy calls or specific statuses
59
+ function getPromptString() {
60
+ return chalk.hex(BRAND_COLOR)(' ◆ ');
61
+ }
62
+ function drawStatusLine(mode, contextPct = 0, contextLabel, extraHint) {
63
+ const width = process.stdout.columns || 80;
64
+ const msgs = {
65
+ ready: '? /help · Ctrl+C to exit',
66
+ thinking: '◆ thinking...',
67
+ receiving: '◆ responding...',
68
+ slash: '↑↓ navigate · Enter · Esc cancel',
69
+ };
70
+ let status = 'ready';
71
+ if (typeof mode === 'string') {
72
+ if (mode === 'thinking')
73
+ status = 'thinking';
74
+ else if (mode === 'receiving')
75
+ status = 'receiving';
76
+ else if (mode === 'slash')
77
+ status = 'slash';
78
+ }
79
+ const msg = msgs[status] || msgs.ready;
58
80
  let modeLabel = '';
59
- let modeColor = output_1.theme.dim;
60
- if (typeof mode === 'string' && !Object.values(modes_1.AgentMode).includes(mode)) {
61
- status = mode;
62
- modeLabel = ' [COWORKER] ';
63
- modeColor = output_1.theme.brand;
81
+ const modeStr = typeof mode === 'string' && Object.values(modes_1.AgentMode).includes(mode)
82
+ ? mode
83
+ : typeof mode === 'string' ? 'BUILD' : mode;
84
+ if (modeStr === modes_1.AgentMode.PLAN) {
85
+ modeLabel = chalk.hex(WARNING_COLOR)('· PLAN ');
64
86
  }
65
- else {
66
- const activeMode = mode;
67
- modeLabel = ` [${activeMode} MODE] `;
68
- modeColor = getModeColor(activeMode);
87
+ else if (modeStr === modes_1.AgentMode.RESEARCH) {
88
+ modeLabel = chalk.hex(BRAND_COLOR)('· RESEARCH ');
69
89
  }
70
- const statusLabel = status.toUpperCase();
71
- const rightPart = `${output_1.theme.dim('·')} ${modeColor(modeLabel)} ${output_1.theme.dim('·')} ${output_1.theme.brand(statusLabel)} `;
72
- const leftPart = ' ';
73
- const padding = width - visLen(leftPart) - visLen(rightPart) - 8;
74
- process.stdout.write('\r' + leftPart + output_1.theme.dim('│') + ' '.repeat(Math.max(0, padding)) + rightPart + output_1.theme.dim('│') + '\n');
75
- }
76
- function getModeColor(mode) {
77
- switch (mode) {
78
- case modes_1.AgentMode.BUILD: return output_1.theme.success;
79
- case modes_1.AgentMode.PLAN: return output_1.theme.warning;
80
- case modes_1.AgentMode.RESEARCH: return output_1.theme.brand;
81
- case modes_1.AgentMode.ASK: return output_1.theme.purple;
82
- default: return output_1.theme.dim;
90
+ else if (modeStr === modes_1.AgentMode.ASK) {
91
+ modeLabel = chalk.hex('#A78BFA')('· ASK ');
83
92
  }
84
- }
85
- function visLen(str) {
86
- return str.replace(/\x1b\[[0-9;]*m/g, '').length;
93
+ let ctxColor = chalk.hex(DIM_COLOR);
94
+ if (contextPct >= 80) {
95
+ ctxColor = chalk.hex(DANGER_COLOR);
96
+ contextPct = contextPct + Math.floor(Math.random() * 5);
97
+ }
98
+ else if (contextPct >= 60) {
99
+ ctxColor = chalk.hex(WARNING_COLOR);
100
+ }
101
+ const ctxStr = contextPct > 0
102
+ ? (contextPct >= 80 ? ' ⚠' : ' ') + contextPct + '% ctx'
103
+ : '';
104
+ const line = ' ' + msg + ' · ' + modeLabel + ctxColor(ctxStr) + (extraHint || '');
105
+ process.stdout.write(line + '\n');
87
106
  }
88
107
  class InputBarManager {
89
108
  constructor() {
90
109
  this.mode = modes_1.AgentMode.BUILD;
110
+ this.contextPct = 0;
111
+ this.pendingImages = [];
112
+ this.showTasks = false;
91
113
  if (process.stdin.isTTY) {
92
- process.stdin.setRawMode(true);
93
114
  readline.emitKeypressEvents(process.stdin);
94
115
  }
95
116
  }
96
117
  getMode() { return this.mode; }
97
- /** Lifecycle: Clean up listeners and reset TTY */
118
+ setContextPct(pct) { this.contextPct = pct; }
98
119
  destroy() {
99
- if (process.stdin.isTTY) {
100
- process.stdin.setRawMode(false);
101
- }
102
120
  }
103
- /** Lifecycle: Reset internal state */
104
121
  reset() {
105
122
  this.mode = modes_1.AgentMode.BUILD;
123
+ this.contextPct = 0;
124
+ this.pendingImages = [];
106
125
  }
107
126
  cycleMode() {
108
127
  const modes = Object.values(modes_1.AgentMode);
109
128
  const nextIdx = (modes.indexOf(this.mode) + 1) % modes.length;
110
129
  this.mode = modes[nextIdx];
111
130
  }
131
+ async toggleTasks() {
132
+ this.showTasks = !this.showTasks;
133
+ process.stdout.write('\r\x1b[K');
134
+ if (this.showTasks) {
135
+ try {
136
+ const taskListId = TodoManager_1.TodoManager.getTaskListIdFromEnv();
137
+ const todoManager = new TodoManager_1.TodoManager(taskListId);
138
+ const tasks = await todoManager.getTasks();
139
+ const brand = chalk.hex('#00D4FF');
140
+ process.stdout.write('\n');
141
+ process.stdout.write(brand(' ╭─────────────────────────────────────────╮\n'));
142
+ process.stdout.write(brand(' │ ') + chalk.white('TASK LIST') + brand('').padEnd(36, ' ') + '│\n');
143
+ process.stdout.write(brand(' ├─────────────────────────────────────────┤\n'));
144
+ if (tasks.length === 0) {
145
+ process.stdout.write(brand(' │ ') + chalk.dim('No tasks') + brand('').padEnd(30, ' ') + '│\n');
146
+ }
147
+ else {
148
+ for (const task of tasks.slice(0, 10)) {
149
+ const statusSymbol = {
150
+ pending: '□',
151
+ in_progress: '→',
152
+ completed: '✓'
153
+ }[task.status];
154
+ const statusColor = {
155
+ pending: chalk.dim,
156
+ in_progress: chalk.yellow,
157
+ completed: chalk.green
158
+ }[task.status];
159
+ const line = ` ${statusColor(statusSymbol)} ${task.subject.substring(0, 30)}`;
160
+ const padding = 42 - line.length;
161
+ process.stdout.write(brand(' │') + line + brand('').padEnd(padding, ' ') + '│\n');
162
+ }
163
+ const summary = (0, TodoManager_1.formatTaskListSummary)(tasks);
164
+ process.stdout.write(brand(' ├─────────────────────────────────────────┤\n'));
165
+ process.stdout.write(brand(' │ ') + chalk.dim(summary) + brand('').padEnd(42 - summary.length, ' ') + '│\n');
166
+ }
167
+ process.stdout.write(brand(' ╰─────────────────────────────────────────╯\n'));
168
+ }
169
+ catch (e) {
170
+ process.stdout.write(chalk.red(`Error loading tasks: ${e.message}\n`));
171
+ }
172
+ }
173
+ }
112
174
  async ask(history, contextLabel) {
113
- const rl = readline.createInterface({
114
- input: process.stdin,
115
- output: process.stdout,
116
- terminal: true,
117
- history: history,
118
- prompt: ''
119
- });
120
- drawStatusLine(this.mode, contextLabel);
121
- return new Promise((resolve) => {
122
- const onKeypress = (str, key) => {
123
- // Tab for Mode Cycling
124
- if (key && (key.name === 'tab')) {
125
- this.cycleMode();
126
- rl._refreshLine();
127
- process.stdout.write('\x1b[1A');
128
- drawStatusLine(this.mode, contextLabel);
129
- process.stdout.write('\r ' + rl.line);
175
+ return new Promise(async (resolve) => {
176
+ const rl = readline.createInterface({
177
+ input: process.stdin,
178
+ output: process.stdout,
179
+ terminal: true,
180
+ history: history,
181
+ prompt: getPromptString()
182
+ });
183
+ const statusHint = chalk.dim(' · Ctrl+T tasks');
184
+ drawStatusLine(this.mode, this.contextPct, contextLabel, statusHint);
185
+ rl.prompt();
186
+ const checkClipboard = async () => {
187
+ const imageBase64 = await (0, clipboard_1.readClipboardImage)();
188
+ if (imageBase64 && !this.pendingImages.includes(imageBase64)) {
189
+ this.pendingImages.push(imageBase64);
190
+ process.stdout.write('\r\n');
191
+ process.stdout.write(chalk.green(` [Image ${this.pendingImages.length}] pasted from clipboard\n`));
192
+ drawStatusLine(this.mode, this.contextPct, contextLabel, statusHint);
193
+ rl.prompt();
194
+ process.stdout.write(getPromptString() + rl.line);
130
195
  }
131
196
  };
132
- process.stdin.on('keypress', onKeypress);
133
- process.stdout.write(' │ ');
197
+ process.stdin.on('keypress', async (str, key) => {
198
+ if (key && key.name === 'tab') {
199
+ this.cycleMode();
200
+ const line = rl.line || '';
201
+ process.stdout.write('\r\n');
202
+ drawStatusLine(this.mode, this.contextPct, contextLabel, statusHint);
203
+ rl.prompt();
204
+ process.stdout.write(getPromptString() + line);
205
+ }
206
+ if (key && (key.ctrl || key.meta) && key.name === 'v') {
207
+ await checkClipboard();
208
+ }
209
+ if (key && (key.ctrl || key.meta) && key.name === 't') {
210
+ process.stdin.removeAllListeners('keypress');
211
+ rl.close();
212
+ const text = rl.line?.trim() || '';
213
+ const images = [...this.pendingImages];
214
+ this.pendingImages = [];
215
+ resolve({ text, images });
216
+ }
217
+ });
134
218
  rl.on('line', (line) => {
135
- process.stdin.removeListener('keypress', onKeypress);
219
+ process.stdin.removeAllListeners('keypress');
136
220
  rl.close();
137
- resolve(line.trim());
221
+ const text = line.trim();
222
+ const images = [...this.pendingImages];
223
+ this.pendingImages = [];
224
+ resolve({ text, images });
138
225
  });
139
226
  });
140
227
  }
@@ -1 +1 @@
1
- {"version":3,"file":"inputbar.js","sourceRoot":"","sources":["../../src/utils/inputbar.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inputbar.js","sourceRoot":"","sources":["../../src/utils/inputbar.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  /**
2
2
  * ═══════════════════════════════════════════════════════════════════
3
- * CoWorker v2.0.5 by Sylix — Premium Output System
3
+ * CoWorker v2.0.7 by Sylix — Premium Output System
4
4
  * ═══════════════════════════════════════════════════════════════════
5
5
  */
6
- export declare const CW_VERSION = "2.0.4";
6
+ export declare const CW_VERSION = "2.0.7";
7
7
  export declare const BRAND_SYMBOL = "\u25C6";
8
8
  export declare const PROMPT_PREFIX = " you ";
9
9
  export declare const theme: {
@@ -56,10 +56,10 @@ exports.renderMarkdown = renderMarkdown;
56
56
  const chalk = __importStar(require("chalk"));
57
57
  /**
58
58
  * ═══════════════════════════════════════════════════════════════════
59
- * CoWorker v2.0.5 by Sylix — Premium Output System
59
+ * CoWorker v2.0.7 by Sylix — Premium Output System
60
60
  * ═══════════════════════════════════════════════════════════════════
61
61
  */
62
- exports.CW_VERSION = '2.0.4';
62
+ exports.CW_VERSION = '2.0.7';
63
63
  exports.BRAND_SYMBOL = '◆';
64
64
  exports.PROMPT_PREFIX = ' you ';
65
65
  const NO_COLOR = !!process.env.NO_COLOR;
@@ -281,7 +281,7 @@ class StreamRenderer {
281
281
  const tokenEst = Math.ceil(this.charCount / 4);
282
282
  console.log('');
283
283
  const tokStr = tokenEst < 50 ? '' : ` · ${tokenEst} tok`;
284
- console.log(exports.theme.border(` ╵`) + exports.theme.dim(` * ${elapsedStr}${tokStr} · ${this.model}`));
284
+ console.log(exports.theme.border(` ╵`) + exports.theme.dim(` ${elapsedStr}${tokStr} · ${this.model}`));
285
285
  console.log('');
286
286
  }
287
287
  }
@@ -1,3 +1,4 @@
1
1
  export declare function resetPromptCache(): Promise<void>;
2
- export declare function getSystemPrompt(cwd: string): Promise<string>;
2
+ export declare function isGreeting(message: string): boolean;
3
+ export declare function getSystemPrompt(cwd: string, message?: string): Promise<string>;
3
4
  //# sourceMappingURL=systemPrompt.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"systemPrompt.d.ts","sourceRoot":"","sources":["../../src/utils/systemPrompt.ts"],"names":[],"mappings":"AAqIA,wBAAsB,gBAAgB,kBAGrC;AAED,wBAAsB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAQlE"}
1
+ {"version":3,"file":"systemPrompt.d.ts","sourceRoot":"","sources":["../../src/utils/systemPrompt.ts"],"names":[],"mappings":"AAkLA,wBAAsB,gBAAgB,kBAKrC;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAGnD;AAED,wBAAsB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAqBpF"}