@stilero/bankan 1.0.13 → 1.0.16

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.
@@ -7,7 +7,7 @@
7
7
  <link rel="preconnect" href="https://fonts.googleapis.com" />
8
8
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
9
9
  <link href="https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Syne:wght@600;700;800&display=swap" rel="stylesheet" />
10
- <script type="module" crossorigin src="/assets/index-pUZAEGtO.js"></script>
10
+ <script type="module" crossorigin src="/assets/index-CYt4B_1K.js"></script>
11
11
  <link rel="stylesheet" crossorigin href="/assets/index-BZkAflU1.css">
12
12
  </head>
13
13
  <body>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stilero/bankan",
3
- "version": "1.0.13",
3
+ "version": "1.0.16",
4
4
  "type": "module",
5
5
  "description": "Run AI coding agents like a Kanban board. Plan, implement, review and ship code using parallel AI agents across your local repositories.",
6
6
  "license": "MIT",
@@ -55,6 +55,7 @@ class Agent {
55
55
  this.process = null;
56
56
  this.terminalBuffer = [];
57
57
  this.subscribers = new Set();
58
+ this.printMode = false;
58
59
  this.lastOutputAt = null;
59
60
  this.bridge = {
60
61
  active: false,
@@ -65,7 +66,7 @@ class Agent {
65
66
  };
66
67
  }
67
68
 
68
- spawn(cwd, command) {
69
+ spawn(cwd, command, options) {
69
70
  if (this.process) this.kill();
70
71
 
71
72
  // Validate cwd is an existing directory
@@ -85,6 +86,7 @@ class Agent {
85
86
  }
86
87
 
87
88
  this.status = 'active';
89
+ this.printMode = options?.printMode || false;
88
90
  this.startedAt = Date.now();
89
91
  this.terminalBuffer = [];
90
92
  this.tokens = 0;
@@ -231,6 +233,7 @@ class Agent {
231
233
  bridgeActive: this.bridge.active,
232
234
  bridgeMode: this.bridge.mode,
233
235
  bridgeOwner: this.bridge.owner,
236
+ printMode: this.printMode,
234
237
  bridgeOpenedAt: this.bridge.openedAt,
235
238
  aggregatedTokens: this.currentTask
236
239
  ? Math.max(store.getTask(this.currentTask)?.totalTokens || 0, this.taskTokenBase + this.tokens)
@@ -340,10 +340,8 @@ ${task.plan}
340
340
  Instructions:
341
341
  - You are already on branch ${task.branch} in ${repoDir}
342
342
  ${promptBody}
343
- - When fully complete, output this exact string on its own line:
344
- === IMPLEMENTATION COMPLETE ${task.id} ===
345
- - If you encounter a blocker you cannot resolve, output:
346
- === BLOCKED: {reason} ===
343
+ - When fully complete, output a completion marker on its own line using this exact format: === IMPLEMENTATION COMPLETE <id> === where <id> is replaced with your task ID (${task.id})
344
+ - If you encounter a blocker you cannot resolve, output a marker on its own line: === BLOCKED: <describe the issue> ===
347
345
 
348
346
  Begin implementation now.`;
349
347
 
@@ -538,7 +536,7 @@ async function startPlanning(task) {
538
536
  const prompt = buildPlannerPrompt({ ...task, workspacePath });
539
537
  const cmd = buildAgentCommand(planner.cli, prompt, 'plan');
540
538
  const plannerCwd = workspacePath;
541
- const ok = planner.spawn(plannerCwd, cmd);
539
+ const ok = planner.spawn(plannerCwd, cmd, { printMode: true });
542
540
  if (!ok) {
543
541
  store.updateTask(task.id, {
544
542
  status: 'blocked',
@@ -716,7 +714,7 @@ SUMMARY: Review skipped because reviewer max is set to 0.
716
714
 
717
715
  const prompt = buildReviewerPrompt(task);
718
716
  const cmd = buildAgentCommand(reviewer.cli, prompt, 'review');
719
- const ok = reviewer.spawn(task.workspacePath, cmd);
717
+ const ok = reviewer.spawn(task.workspacePath, cmd, { printMode: true });
720
718
  if (!ok) {
721
719
  store.updateTask(task.id, {
722
720
  status: 'blocked',