teamshare-bridge 0.21.21 → 0.21.23

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.
@@ -46,7 +46,7 @@ function findChromeBinary() {
46
46
  */
47
47
  async function launchChrome(options) {
48
48
  const port = options?.port ?? 9222;
49
- const headless = options?.headless ?? true;
49
+ const headless = options?.headless ?? false;
50
50
  const timeoutMs = options?.timeoutMs ?? 15_000;
51
51
  const userDataDir = options?.userDataDir ?? (0, node_path_1.join)((0, node_os_1.tmpdir)(), `teamshare-chrome-${port}`);
52
52
  // Check if already running
@@ -73,17 +73,32 @@ async function launchChrome(options) {
73
73
  if (options?.args) {
74
74
  chromeArgs.push(...options.args);
75
75
  }
76
+ // A real startup page (default `about:blank`). Without an explicit URL Chrome
77
+ // opens the New Tab Page, which is a `chrome://` target the CDP picker skips
78
+ // AND fails to render in a non-regular profile ("Requested load of
79
+ // chrome://newtab/ for incorrect profile type"). `about:blank` avoids both.
80
+ chromeArgs.push(options?.startUrl ?? 'about:blank');
76
81
  const child = (0, node_child_process_1.spawn)(binary, chromeArgs, {
77
82
  stdio: ['ignore', 'pipe', 'pipe'],
78
83
  detached: false,
79
84
  windowsHide: true,
80
85
  });
81
- // Log stderr for debugging
86
+ // Log stderr for debugging. Chrome is chatty in a scripted profile; these
87
+ // two errors are expected noise and must not be reported as failures:
88
+ // - DEPRECATED_ENDPOINT / QUOTA_EXCEEDED: GCM push registration.
89
+ // - new_tab_ui.cc "incorrect profile type": the NTP refusing to render.
90
+ const CHROME_STDERR_NOISE = [
91
+ 'DEPRECATED_ENDPOINT',
92
+ 'QUOTA_EXCEEDED',
93
+ 'new_tab_ui.cc',
94
+ 'incorrect profile type',
95
+ ];
82
96
  child.stderr?.on('data', (chunk) => {
83
97
  const line = chunk.toString('utf-8').trim();
84
98
  if (line && !line.includes('DevTools listening on')) {
99
+ const noisy = CHROME_STDERR_NOISE.some((n) => line.includes(n));
85
100
  // Chrome stderr in headless is mostly noise — only log unusual lines
86
- if (line.includes('ERROR') || line.includes('FATAL')) {
101
+ if (!noisy && (line.includes('ERROR') || line.includes('FATAL'))) {
87
102
  console.error(`[chrome] ${line}`);
88
103
  }
89
104
  }
@@ -1 +1 @@
1
- {"version":3,"file":"launch.js","sourceRoot":"","sources":["../../../src/lib/browser/launch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"launch.js","sourceRoot":"","sources":["../../../src/lib/browser/launch.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Board assistant (P5): reply to a board comment that mentions the agent.
3
+ *
4
+ * Mirrors the document assistant (`doc-reply.ts`): a full harness run with the
5
+ * agent's board MCP tools (`get_board`, `read_board`, `draw_diagram`,
6
+ * `update_board`, `add_comment`). The agent edits the board itself and posts
7
+ * its reply as a comment on the board; this loop only guarantees a fallback
8
+ * acknowledgement if the harness never posted one.
9
+ */
10
+ import type { TeamshareApi } from '../api';
11
+ import type { HarnessName } from '../harness/harness-adapter';
12
+ export interface BoardReplyLlm {
13
+ baseUrl: string;
14
+ apiKey: string;
15
+ model: string;
16
+ temperature?: number;
17
+ maxTokens?: number;
18
+ }
19
+ export interface BoardReplyOptions {
20
+ harness: HarnessName;
21
+ echo?: boolean;
22
+ effort?: string;
23
+ onLog: (line: string, stream?: 'stdout' | 'stderr') => void;
24
+ cwd?: string;
25
+ sessionId?: string;
26
+ agentId: string;
27
+ timeoutMin?: number;
28
+ commentId?: string;
29
+ llm: BoardReplyLlm;
30
+ }
31
+ /**
32
+ * Runs the board assistant for one waking comment. Returns how many replies
33
+ * were produced (0 = nothing to answer / already answered).
34
+ */
35
+ export declare function runBoardReply(api: TeamshareApi, agentId: string, boardId: string, mention: string, opts: BoardReplyOptions): Promise<{
36
+ replied: number;
37
+ skipped: number;
38
+ }>;
@@ -0,0 +1,126 @@
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.runBoardReply = runBoardReply;
37
+ function mentionsAgent(body, name) {
38
+ if (!name)
39
+ return false;
40
+ const n = name.toLowerCase();
41
+ if (body.toLowerCase().includes(`@[${n}`))
42
+ return true;
43
+ return body.toLowerCase().includes(`@${n}`);
44
+ }
45
+ function buildBoardPrompt(boardName, boardId, projectId, extract, instruction, region) {
46
+ const hasRegion = region &&
47
+ (region.x !== undefined ||
48
+ region.y !== undefined ||
49
+ region.w !== undefined ||
50
+ region.h !== undefined);
51
+ const regionText = hasRegion
52
+ ? `\nThe user asked about a specific region of the board (bounds x=${Math.round(region.x ?? 0)}, y=${Math.round(region.y ?? 0)}, w=${Math.round(region.w ?? 0)}, h=${Math.round(region.h ?? 0)}). Focus your work there.`
53
+ : '\nThe user asked about the whole board.';
54
+ return [
55
+ `You are a TeamShare board assistant working on the whiteboard "${boardName}" (id ${boardId}) in project ${projectId}.`,
56
+ '',
57
+ '## The request',
58
+ instruction,
59
+ regionText,
60
+ '',
61
+ '## Current board (text extract)',
62
+ extract && extract.trim() ? extract : '(board is empty)',
63
+ '',
64
+ '## How to work',
65
+ `1. Read the live scene with the teamshare MCP tool get_board({ boardId: "${boardId}" }) and note \`updatedAt\`.`,
66
+ `2. Make the change with draw_diagram({ boardId: "${boardId}", expectedUpdatedAt, spec }) to add a diagram, or update_board({ boardId: "${boardId}", expectedUpdatedAt, ops }) for fine edits.`,
67
+ ' - If the board changed (BOARD_STALE_EDIT), re-read with get_board and apply again. Never overwrite a human edit.',
68
+ `3. Reply to the user by calling add_comment({ whiteboardId: "${boardId}", body: "<what you did>" }).`,
69
+ '',
70
+ 'Keep diagrams presentational: clear labels, consistent theme, logical flow. Do not invent coordinates - the server lays out diagrams deterministically.',
71
+ ].join('\n');
72
+ }
73
+ /**
74
+ * Runs the board assistant for one waking comment. Returns how many replies
75
+ * were produced (0 = nothing to answer / already answered).
76
+ */
77
+ async function runBoardReply(api, agentId, boardId, mention, opts) {
78
+ const board = await api.getWhiteboard(boardId);
79
+ const comments = await api.listWhiteboardComments(boardId);
80
+ const agentComments = comments.filter((c) => c.authorId === agentId);
81
+ const target = opts.commentId
82
+ ? comments.find((c) => c.id === opts.commentId)
83
+ : [...comments].reverse().find((c) => mentionsAgent(c.body ?? '', mention));
84
+ if (!target) {
85
+ opts.onLog(`[board] no mention to answer on board ${boardId}`);
86
+ return { replied: 0, skipped: comments.length };
87
+ }
88
+ if (target.authorId === agentId) {
89
+ return { replied: 0, skipped: 1 };
90
+ }
91
+ // Answer-once: if the agent already replied after the target comment, skip.
92
+ const targetTime = new Date(target.createdAt).getTime();
93
+ const alreadyAnswered = agentComments.some((c) => new Date(c.createdAt).getTime() > targetTime);
94
+ if (alreadyAnswered) {
95
+ opts.onLog(`[board] already answered comment ${target.id} - skipping`);
96
+ return { replied: 0, skipped: 1 };
97
+ }
98
+ const extract = await api.extractWhiteboard(boardId).catch(() => null);
99
+ const region = target.regions?.[0]?.bounds;
100
+ const prompt = buildBoardPrompt(board.name, boardId, board.projectId, extract?.text ?? null, (target.body ?? '').replace(/@\[[^\]]*\]/g, '').trim(), region ?? null);
101
+ const conversationBefore = agentComments.length;
102
+ // Board work needs a harness (the board MCP tools + diagram authoring).
103
+ const { spawnHarness } = await Promise.resolve().then(() => __importStar(require('../harness/spawn')));
104
+ await spawnHarness(opts.harness, prompt, opts.onLog, {
105
+ model: opts.llm.model,
106
+ cwd: opts.cwd,
107
+ timeoutMin: opts.timeoutMin,
108
+ sessionMode: 'board',
109
+ ...(opts.sessionId ? { sessionId: opts.sessionId } : {}),
110
+ sessionStore: { agentId, taskId: boardId, mode: 'board' },
111
+ });
112
+ // Fallback: the harness should have posted via add_comment. If it did not,
113
+ // leave a visible acknowledgement so the user is not left waiting.
114
+ const after = await api.listWhiteboardComments(boardId);
115
+ const posted = after.filter((c) => c.authorId === agentId).length > conversationBefore;
116
+ if (!posted) {
117
+ await api
118
+ .addComment({
119
+ whiteboardId: boardId,
120
+ body: 'I worked on the board but could not post a summary. Open the board to see the changes, and mention me again if anything is missing.',
121
+ })
122
+ .catch(() => undefined);
123
+ }
124
+ return { replied: 1, skipped: 0 };
125
+ }
126
+ //# sourceMappingURL=board-reply.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"board-reply.js","sourceRoot":"","sources":["../../../src/lib/chat/board-reply.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- export type LockKind = 'task' | 'chat' | 'doc' | 'build' | 'orchestrator' | 'tool';
1
+ export type LockKind = 'task' | 'chat' | 'doc' | 'board' | 'build' | 'orchestrator' | 'tool';
2
2
  export interface AgentLock {
3
3
  pid: number;
4
4
  startedAt: string;
@@ -6,6 +6,8 @@ export interface AgentLock {
6
6
  taskId?: string;
7
7
  projectId?: string;
8
8
  documentId?: string;
9
+ /** Board assistant session target (kind === 'board'). */
10
+ boardId?: string;
9
11
  }
10
12
  export declare const LOCK_DIR: string;
11
13
  /** Max session age before lock is considered stale (PID reuse safety net).
@@ -1 +1 @@
1
- {"version":3,"file":"lock.js","sourceRoot":"","sources":["../../src/lib/lock.ts"],"names":[],"mappings":";;;AA2CA,4BAEC;AAED,4BAQC;AAoBD,wCA4BC;AAGD,kCAOC;AAGD,8BAMC;AAQD,gCAOC;AAOD,kCAmBC;AAnKD;;;;;;;;;;;GAWG;AACH,qCAAyE;AACzE,qCAAkC;AAClC,yCAAiC;AAmBpB,QAAA,QAAQ,GAAG,IAAA,gBAAI,EAAC,IAAA,iBAAO,GAAE,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;AAC/D;;;gDAGgD;AACnC,QAAA,cAAc,GACzB,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAC9D,QAAA,YAAY,GAAG,MAAM,CAAC;AACtB,QAAA,gBAAgB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAEnD,SAAgB,QAAQ,CAAC,OAAe;IACtC,OAAO,IAAA,gBAAI,EAAC,gBAAQ,EAAE,GAAG,OAAO,OAAO,CAAC,CAAC;AAC3C,CAAC;AAED,SAAgB,QAAQ,CAAC,OAAe;IACtC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAA,sBAAY,EAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC;QACpD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAc,CAAC;QAC1C,OAAO,IAAI,IAAI,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,GAAW;IAC3B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACrD,IAAI,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,gEAAgE;QAChE,OAAQ,GAA6B,CAAC,IAAI,KAAK,OAAO,CAAC;IACzD,CAAC;AACH,CAAC;AAED,SAAS,OAAO,CAAC,IAAe;IAC9B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACrC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;IAC5D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,sBAAc,CAAC;AACvD,CAAC;AAED,2EAA2E;AAC3E,SAAgB,cAAc,CAAG,OAAe,EAC9C,IAAc,EACd,OAAsD,EAAE;IAExD,IAAA,mBAAS,EAAC,gBAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzC,MAAM,IAAI,GAAc;QACtB,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,IAAI;QACJ,GAAG,IAAI;KACR,CAAC;IACF,IAAI,CAAC;QACH,IAAA,uBAAa,EAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;YAC9D,IAAI,EAAE,IAAI;SACX,CAAC,CAAC;QACH,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IACtB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;QAC3E,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;QACnC,IAAI,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QACzE,IAAI,CAAC;YACH,6BAA6B;YAC7B,IAAA,uBAAa,EAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAChE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;QACtB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;QACvB,CAAC;IACH,CAAC;AACH,CAAC;AAED,4DAA4D;AAC5D,SAAgB,WAAW,CAAC,OAAe;IACzC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC/B,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,KAAK,OAAO,CAAC,GAAG;YAAE,IAAA,gBAAM,EAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;IAClE,CAAC;IAAC,MAAM,CAAC;QACP,iBAAiB;IACnB,CAAC;AACH,CAAC;AAED,uEAAuE;AACvE,SAAgB,SAAS,CAAC,OAAe;IACvC,IAAI,CAAC;QACH,IAAA,gBAAM,EAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,iBAAiB;IACnB,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAgB,UAAU,CAAC,OAAe;IACxC,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC/B,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IACxB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IACtC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;IAC5D,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,sBAAc;QAAE,OAAO,KAAK,CAAC;IAChE,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACI,KAAK,UAAU,WAAW,CAC/B,OAAe,EACf,IAAc,EACd,OAAsD,EAAE,EACxD,OAII,EAAE;IAEN,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,oBAAY,CAAC;IAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,wBAAgB,CAAC,CAAC;IACnE,SAAS,CAAC;QACR,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACpD,IAAI,OAAO,CAAC,EAAE;YAAE,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC;QACzC,IAAI,OAAO,CAAC,IAAI;YAAE,IAAI,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,QAAQ;YAAE,OAAO,IAAI,CAAC;QACxC,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;IAC9D,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"lock.js","sourceRoot":"","sources":["../../src/lib/lock.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "teamshare-bridge",
3
- "version": "0.21.21",
3
+ "version": "0.21.23",
4
4
  "description": "Local bridge for TeamShare agents - CLI session runner, auto-wake WebSocket daemon, and teamshare:// protocol handler.",
5
5
  "type": "commonjs",
6
6
  "license": "MIT",