patchwork-os 0.2.0-alpha.2 → 0.2.0-alpha.4

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 (96) hide show
  1. package/dist/bridge.js +23 -10
  2. package/dist/bridge.js.map +1 -1
  3. package/dist/claudeDriver.d.ts +3 -1
  4. package/dist/claudeDriver.js +48 -0
  5. package/dist/claudeDriver.js.map +1 -1
  6. package/dist/config.d.ts +2 -2
  7. package/dist/config.js +5 -2
  8. package/dist/config.js.map +1 -1
  9. package/dist/connectors/github.d.ts +58 -8
  10. package/dist/connectors/github.js +321 -84
  11. package/dist/connectors/github.js.map +1 -1
  12. package/dist/connectors/gmail.js +21 -0
  13. package/dist/connectors/gmail.js.map +1 -1
  14. package/dist/connectors/googleCalendar.d.ts +57 -0
  15. package/dist/connectors/googleCalendar.js +308 -0
  16. package/dist/connectors/googleCalendar.js.map +1 -0
  17. package/dist/connectors/linear.d.ts +100 -0
  18. package/dist/connectors/linear.js +236 -0
  19. package/dist/connectors/linear.js.map +1 -0
  20. package/dist/connectors/mcpClient.d.ts +56 -0
  21. package/dist/connectors/mcpClient.js +189 -0
  22. package/dist/connectors/mcpClient.js.map +1 -0
  23. package/dist/connectors/mcpOAuth.d.ts +73 -0
  24. package/dist/connectors/mcpOAuth.js +338 -0
  25. package/dist/connectors/mcpOAuth.js.map +1 -0
  26. package/dist/connectors/sentry.d.ts +43 -0
  27. package/dist/connectors/sentry.js +197 -0
  28. package/dist/connectors/sentry.js.map +1 -0
  29. package/dist/drivers/claude/api.d.ts +11 -0
  30. package/dist/drivers/claude/api.js +54 -0
  31. package/dist/drivers/claude/api.js.map +1 -0
  32. package/dist/drivers/claude/envSanitizer.d.ts +7 -0
  33. package/dist/drivers/claude/envSanitizer.js +18 -0
  34. package/dist/drivers/claude/envSanitizer.js.map +1 -0
  35. package/dist/drivers/claude/streamParser.d.ts +38 -0
  36. package/dist/drivers/claude/streamParser.js +34 -0
  37. package/dist/drivers/claude/streamParser.js.map +1 -0
  38. package/dist/drivers/claude/subprocess.d.ts +19 -0
  39. package/dist/drivers/claude/subprocess.js +216 -0
  40. package/dist/drivers/claude/subprocess.js.map +1 -0
  41. package/dist/drivers/claude/subprocessSettings.d.ts +9 -0
  42. package/dist/drivers/claude/subprocessSettings.js +55 -0
  43. package/dist/drivers/claude/subprocessSettings.js.map +1 -0
  44. package/dist/drivers/gemini/index.d.ts +14 -0
  45. package/dist/drivers/gemini/index.js +176 -0
  46. package/dist/drivers/gemini/index.js.map +1 -0
  47. package/dist/drivers/grok/index.d.ts +11 -0
  48. package/dist/drivers/grok/index.js +22 -0
  49. package/dist/drivers/grok/index.js.map +1 -0
  50. package/dist/drivers/index.d.ts +18 -0
  51. package/dist/drivers/index.js +31 -0
  52. package/dist/drivers/index.js.map +1 -0
  53. package/dist/drivers/openai/index.d.ts +24 -0
  54. package/dist/drivers/openai/index.js +110 -0
  55. package/dist/drivers/openai/index.js.map +1 -0
  56. package/dist/drivers/types.d.ts +72 -0
  57. package/dist/drivers/types.js +30 -0
  58. package/dist/drivers/types.js.map +1 -0
  59. package/dist/index.js +1 -1
  60. package/dist/index.js.map +1 -1
  61. package/dist/recipes/yamlRunner.js +57 -2
  62. package/dist/recipes/yamlRunner.js.map +1 -1
  63. package/dist/recipesHttp.d.ts +13 -1
  64. package/dist/recipesHttp.js +9 -1
  65. package/dist/recipesHttp.js.map +1 -1
  66. package/dist/server.d.ts +3 -1
  67. package/dist/server.js +277 -14
  68. package/dist/server.js.map +1 -1
  69. package/dist/tools/createLinearIssue.d.ts +84 -0
  70. package/dist/tools/createLinearIssue.js +146 -0
  71. package/dist/tools/createLinearIssue.js.map +1 -0
  72. package/dist/tools/ctxGetTaskContext.d.ts +4 -1
  73. package/dist/tools/ctxGetTaskContext.js +45 -2
  74. package/dist/tools/ctxGetTaskContext.js.map +1 -1
  75. package/dist/tools/fetchCalendarEvents.d.ts +94 -0
  76. package/dist/tools/fetchCalendarEvents.js +97 -0
  77. package/dist/tools/fetchCalendarEvents.js.map +1 -0
  78. package/dist/tools/fetchGithubIssue.d.ts +80 -0
  79. package/dist/tools/fetchGithubIssue.js +84 -0
  80. package/dist/tools/fetchGithubIssue.js.map +1 -0
  81. package/dist/tools/fetchGithubPR.d.ts +89 -0
  82. package/dist/tools/fetchGithubPR.js +96 -0
  83. package/dist/tools/fetchGithubPR.js.map +1 -0
  84. package/dist/tools/fetchLinearIssue.d.ts +112 -0
  85. package/dist/tools/fetchLinearIssue.js +129 -0
  86. package/dist/tools/fetchLinearIssue.js.map +1 -0
  87. package/dist/tools/fetchSentryIssue.d.ts +143 -0
  88. package/dist/tools/fetchSentryIssue.js +150 -0
  89. package/dist/tools/fetchSentryIssue.js.map +1 -0
  90. package/dist/tools/index.js +12 -0
  91. package/dist/tools/index.js.map +1 -1
  92. package/package.json +2 -2
  93. package/scripts/start-all.sh +56 -19
  94. package/templates/recipes/ctx-loop-test.yaml +75 -0
  95. package/templates/recipes/morning-brief.yaml +20 -3
  96. package/templates/recipes/sentry-to-linear.yaml +77 -0
@@ -0,0 +1,143 @@
1
+ /**
2
+ * fetchSentryIssue — fetch a Sentry issue/event and enrich its stack trace
3
+ * with git blame data in one call.
4
+ *
5
+ * Combines:
6
+ * 1. Sentry API fetch → raw stack trace text
7
+ * 2. enrichStackTrace → per-frame commit attribution + top suspect
8
+ *
9
+ * Requires Sentry connector to be connected (POST /connections/sentry/connect).
10
+ */
11
+ export declare function createFetchSentryIssueTool(workspace: string): {
12
+ schema: {
13
+ name: string;
14
+ description: string;
15
+ annotations: {
16
+ readOnlyHint: boolean;
17
+ };
18
+ inputSchema: {
19
+ type: "object";
20
+ required: string[];
21
+ properties: {
22
+ issueId: {
23
+ type: string;
24
+ description: string;
25
+ maxLength: number;
26
+ };
27
+ maxFrames: {
28
+ type: string;
29
+ minimum: number;
30
+ maximum: number;
31
+ description: string;
32
+ };
33
+ };
34
+ additionalProperties: false;
35
+ };
36
+ outputSchema: {
37
+ type: "object";
38
+ properties: {
39
+ issueId: {
40
+ type: string;
41
+ };
42
+ title: {
43
+ type: string;
44
+ };
45
+ stackTrace: {
46
+ type: string;
47
+ };
48
+ frames: {
49
+ type: string;
50
+ items: {
51
+ type: string;
52
+ properties: {
53
+ file: {
54
+ type: string;
55
+ };
56
+ line: {
57
+ type: string;
58
+ };
59
+ column: {
60
+ type: string[];
61
+ };
62
+ function: {
63
+ type: string[];
64
+ };
65
+ language: {
66
+ type: string;
67
+ };
68
+ inWorkspace: {
69
+ type: string;
70
+ };
71
+ resolvedPath: {
72
+ type: string[];
73
+ };
74
+ commit: {
75
+ type: string[];
76
+ properties: {
77
+ sha: {
78
+ type: string;
79
+ };
80
+ author: {
81
+ type: string;
82
+ };
83
+ date: {
84
+ type: string;
85
+ };
86
+ subject: {
87
+ type: string;
88
+ };
89
+ };
90
+ };
91
+ };
92
+ required: string[];
93
+ };
94
+ };
95
+ topSuspect: {
96
+ type: string[];
97
+ properties: {
98
+ sha: {
99
+ type: string;
100
+ };
101
+ author: {
102
+ type: string;
103
+ };
104
+ date: {
105
+ type: string;
106
+ };
107
+ subject: {
108
+ type: string;
109
+ };
110
+ frameCount: {
111
+ type: string;
112
+ };
113
+ };
114
+ };
115
+ confidence: {
116
+ type: string;
117
+ enum: string[];
118
+ };
119
+ framesParsed: {
120
+ type: string;
121
+ };
122
+ framesBlamed: {
123
+ type: string;
124
+ };
125
+ gitAvailable: {
126
+ type: string;
127
+ };
128
+ sentryConnected: {
129
+ type: string;
130
+ };
131
+ };
132
+ required: string[];
133
+ };
134
+ };
135
+ timeoutMs: number;
136
+ handler(args: Record<string, unknown>, signal?: AbortSignal): Promise<{
137
+ content: Array<{
138
+ type: string;
139
+ text: string;
140
+ }>;
141
+ structuredContent: unknown;
142
+ }>;
143
+ };
@@ -0,0 +1,150 @@
1
+ import { fetchIssueStackTrace } from "../connectors/sentry.js";
2
+ import { createEnrichStackTraceTool } from "./enrichStackTrace.js";
3
+ import { optionalInt, requireString, successStructured } from "./utils.js";
4
+ /**
5
+ * fetchSentryIssue — fetch a Sentry issue/event and enrich its stack trace
6
+ * with git blame data in one call.
7
+ *
8
+ * Combines:
9
+ * 1. Sentry API fetch → raw stack trace text
10
+ * 2. enrichStackTrace → per-frame commit attribution + top suspect
11
+ *
12
+ * Requires Sentry connector to be connected (POST /connections/sentry/connect).
13
+ */
14
+ export function createFetchSentryIssueTool(workspace) {
15
+ const enrichTool = createEnrichStackTraceTool(workspace);
16
+ return {
17
+ schema: {
18
+ name: "fetchSentryIssue",
19
+ description: "Fetch a Sentry issue and enrich its stack trace with git blame. Returns per-frame commit attribution + top suspect commit. Requires Sentry connector connected.",
20
+ annotations: { readOnlyHint: true },
21
+ inputSchema: {
22
+ type: "object",
23
+ required: ["issueId"],
24
+ properties: {
25
+ issueId: {
26
+ type: "string",
27
+ description: "Sentry issue ID (e.g. '12345') or full issue URL (e.g. 'https://sentry.io/organizations/my-org/issues/12345/').",
28
+ maxLength: 500,
29
+ },
30
+ maxFrames: {
31
+ type: "integer",
32
+ minimum: 1,
33
+ maximum: 50,
34
+ description: "Max stack frames to blame. Default 10.",
35
+ },
36
+ },
37
+ additionalProperties: false,
38
+ },
39
+ outputSchema: {
40
+ type: "object",
41
+ properties: {
42
+ issueId: { type: "string" },
43
+ title: { type: "string" },
44
+ stackTrace: { type: "string" },
45
+ frames: {
46
+ type: "array",
47
+ items: {
48
+ type: "object",
49
+ properties: {
50
+ file: { type: "string" },
51
+ line: { type: "integer" },
52
+ column: { type: ["integer", "null"] },
53
+ function: { type: ["string", "null"] },
54
+ language: { type: "string" },
55
+ inWorkspace: { type: "boolean" },
56
+ resolvedPath: { type: ["string", "null"] },
57
+ commit: {
58
+ type: ["object", "null"],
59
+ properties: {
60
+ sha: { type: "string" },
61
+ author: { type: "string" },
62
+ date: { type: "string" },
63
+ subject: { type: "string" },
64
+ },
65
+ },
66
+ },
67
+ required: ["file", "line", "language", "inWorkspace"],
68
+ },
69
+ },
70
+ topSuspect: {
71
+ type: ["object", "null"],
72
+ properties: {
73
+ sha: { type: "string" },
74
+ author: { type: "string" },
75
+ date: { type: "string" },
76
+ subject: { type: "string" },
77
+ frameCount: { type: "integer" },
78
+ },
79
+ },
80
+ confidence: {
81
+ type: "string",
82
+ enum: ["high", "medium", "low"],
83
+ },
84
+ framesParsed: { type: "integer" },
85
+ framesBlamed: { type: "integer" },
86
+ gitAvailable: { type: "boolean" },
87
+ sentryConnected: { type: "boolean" },
88
+ },
89
+ required: [
90
+ "issueId",
91
+ "title",
92
+ "stackTrace",
93
+ "frames",
94
+ "confidence",
95
+ "framesParsed",
96
+ "framesBlamed",
97
+ "gitAvailable",
98
+ "sentryConnected",
99
+ ],
100
+ },
101
+ },
102
+ timeoutMs: 45_000,
103
+ async handler(args, signal) {
104
+ const issueId = requireString(args, "issueId", 500);
105
+ const maxFrames = optionalInt(args, "maxFrames", 1, 50) ?? 10;
106
+ let stackTrace;
107
+ let title;
108
+ let resolvedIssueId;
109
+ let sentryConnected = true;
110
+ try {
111
+ ({
112
+ stackTrace,
113
+ title,
114
+ issueId: resolvedIssueId,
115
+ } = await fetchIssueStackTrace(issueId, signal));
116
+ }
117
+ catch (err) {
118
+ sentryConnected = false;
119
+ return successStructured({
120
+ issueId,
121
+ title: "",
122
+ stackTrace: "",
123
+ frames: [],
124
+ topSuspect: null,
125
+ confidence: "low",
126
+ framesParsed: 0,
127
+ framesBlamed: 0,
128
+ gitAvailable: false,
129
+ sentryConnected,
130
+ error: err instanceof Error ? err.message : String(err),
131
+ });
132
+ }
133
+ // Re-use enrichStackTrace handler with the fetched stack trace
134
+ const enrichResult = await enrichTool.handler({ stackTrace, maxFrames }, signal);
135
+ // enrichResult is a McpToolResult — extract the structured content
136
+ const structured = enrichResult.structuredContent ??
137
+ (enrichResult.content?.[0]?.type === "text"
138
+ ? JSON.parse(enrichResult.content[0].text)
139
+ : {});
140
+ return successStructured({
141
+ issueId: resolvedIssueId,
142
+ title,
143
+ stackTrace,
144
+ sentryConnected,
145
+ ...structured,
146
+ });
147
+ },
148
+ };
149
+ }
150
+ //# sourceMappingURL=fetchSentryIssue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetchSentryIssue.js","sourceRoot":"","sources":["../../src/tools/fetchSentryIssue.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,7 @@ import { createCloseAllDiffTabsTool, createCloseTabTool } from "./closeTabs.js";
10
10
  import { createGetCodeLensTool } from "./codeLens.js";
11
11
  import { createContextBundleTool } from "./contextBundle.js";
12
12
  import { createCreateIssueFromAICommentTool } from "./createIssueFromAIComment.js";
13
+ import { createLinearIssueTool } from "./createLinearIssue.js";
13
14
  import { createCtxGetTaskContextTool } from "./ctxGetTaskContext.js";
14
15
  import { createCtxQueryTracesTool } from "./ctxQueryTraces.js";
15
16
  import { createCtxSaveTraceTool } from "./ctxSaveTrace.js";
@@ -22,6 +23,11 @@ import { createEnrichCommitTool } from "./enrichCommit.js";
22
23
  import { createEnrichStackTraceTool } from "./enrichStackTrace.js";
23
24
  import { createExplainDiagnosticTool } from "./explainDiagnostic.js";
24
25
  import { createExplainSymbolTool } from "./explainSymbol.js";
26
+ import { createFetchCalendarEventsTool } from "./fetchCalendarEvents.js";
27
+ import { createFetchGithubIssueTool } from "./fetchGithubIssue.js";
28
+ import { createFetchGithubPRTool } from "./fetchGithubPR.js";
29
+ import { createFetchLinearIssueTool } from "./fetchLinearIssue.js";
30
+ import { createFetchSentryIssueTool } from "./fetchSentryIssue.js";
25
31
  import { createCreateFileTool, createDeleteFileTool, createRenameFileTool, } from "./fileOperations.js";
26
32
  import { createUnwatchFilesTool, createWatchFilesTool } from "./fileWatcher.js";
27
33
  import { createFindFilesTool } from "./findFiles.js";
@@ -423,6 +429,12 @@ export function registerAllTools(transport, config, openedFiles, probes, extensi
423
429
  createGetPRTemplateTool(workspace),
424
430
  createEnrichCommitTool(workspace, commitIssueLinkLog),
425
431
  createEnrichStackTraceTool(workspace),
432
+ createFetchSentryIssueTool(workspace),
433
+ createFetchLinearIssueTool(),
434
+ createLinearIssueTool(),
435
+ createFetchGithubIssueTool(),
436
+ createFetchGithubPRTool(),
437
+ createFetchCalendarEventsTool(),
426
438
  createCtxQueryTracesTool({
427
439
  activityLog: activityLog ?? null,
428
440
  commitIssueLinkLog: commitIssueLinkLog ?? null,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "patchwork-os",
3
- "version": "0.2.0-alpha.2",
4
- "description": "Patchwork OS \u2014 proactive, multi-model AI teammate built on the Claude IDE Bridge. One agent, any model, works while you're away.",
3
+ "version": "0.2.0-alpha.4",
4
+ "description": "Patchwork OS proactive, multi-model AI teammate built on the Claude IDE Bridge. One agent, any model, works while you're away.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env bash
2
- # Full orchestrator for bridge + claude + remote-control.
3
- # Manages all three in tmux panes with health monitoring.
2
+ # Full orchestrator for bridge + claude + remote-control + dashboard.
3
+ # Manages all processes in tmux panes with health monitoring.
4
4
  #
5
5
  # Pane layout:
6
6
  # 0 — health monitor (orchestrator)
@@ -8,7 +8,8 @@
8
8
  # 2 — claude --ide (Claude Code CLI, connects to bridge for IDE tools)
9
9
  # 3 — claude remote-control --spawn=session (exposes the workspace to claude.ai;
10
10
  # spawned sessions auto-discover the bridge via ~/.claude/ide/*.lock)
11
- # 4 — SSH reverse tunnel to VPS (optional, enabled with --vps <user@host:port>)
11
+ # 4 — Patchwork dashboard (Next.js, http://localhost:3200)
12
+ # 5 — SSH reverse tunnel to VPS (optional, enabled with --vps <user@host:port>)
12
13
  # Forwards VPS_PORT on the remote host back to the local bridge port.
13
14
  # Allows claude.ai integrations to use a static VPS URL instead of a
14
15
  # rotating remote-control session URL.
@@ -20,6 +21,8 @@
20
21
  # Options:
21
22
  # --workspace <path> Directory to open in Claude (default: current directory)
22
23
  # --full Register all ~95 bridge tools (git, terminal, file ops, HTTP, GitHub).
24
+ # --no-dashboard Skip starting the Patchwork dashboard (pane 4).
25
+ # --dashboard-port <N> Dashboard port (default: 3200).
23
26
  # Default is slim mode (27 IDE-exclusive tools). Add --full if your
24
27
  # workflow requires git/terminal/file tools.
25
28
  # --notify <topic> Push notifications via ntfy.sh when remote-control connects or
@@ -48,6 +51,8 @@ NTFY_TOPIC=""
48
51
  IDE_NAME=""
49
52
  VPS=""
50
53
  FULL_MODE=""
54
+ NO_DASHBOARD=""
55
+ DASHBOARD_PORT="3200"
51
56
  AUTOMATION_POLICY=""
52
57
  CLAUDE_DRIVER="subprocess"
53
58
  BRIDGE_READY_TIMEOUT="${BRIDGE_READY_TIMEOUT:-30}"
@@ -64,6 +69,8 @@ while [[ $# -gt 0 ]]; do
64
69
  --ide) IDE_NAME="$2"; shift 2 ;;
65
70
  --vps) VPS="$2"; shift 2 ;;
66
71
  --full) FULL_MODE="--full"; shift ;;
72
+ --no-dashboard) NO_DASHBOARD=1; shift ;;
73
+ --dashboard-port) DASHBOARD_PORT="$2"; shift 2 ;;
67
74
  --automation-policy) AUTOMATION_POLICY="$2"; shift 2 ;;
68
75
  --claude-driver) CLAUDE_DRIVER="$2"; shift 2 ;;
69
76
  *) echo "Unknown option: $1" >&2; exit 1 ;;
@@ -90,23 +97,31 @@ fi
90
97
 
91
98
  # --- Bridge conflict check ---
92
99
  # Detect an already-running bridge instance and abort early with a clear message.
93
- # Iterates lock files safely (no xargs injection); filters to isBridge:true + live PID.
100
+ # Validates: isBridge:true + live PID + process is actually a bridge (not Windsurf reusing PID)
101
+ # by checking whether the lock file's port has an active listener.
94
102
  while IFS= read -r lock; do
95
103
  [[ -f "$lock" ]] || continue
96
- bridge_pid=$(python3 -c "
104
+ lock_info=$(python3 -c "
97
105
  import json, sys
98
106
  try:
99
107
  d = json.load(open(sys.argv[1]))
100
108
  if d.get('isBridge') is True:
101
- print(d.get('pid', ''))
109
+ print(d.get('pid', ''), d.get('port', ''))
102
110
  except Exception:
103
111
  pass
104
112
  " "$lock" 2>/dev/null || true)
113
+ bridge_pid="${lock_info%% *}"
114
+ bridge_port="${lock_info##* }"
105
115
  if [[ -n "$bridge_pid" ]] && kill -0 "$bridge_pid" 2>/dev/null; then
106
- echo "Error: bridge already running (PID $bridge_pid, lock: $(basename "$lock"))." >&2
107
- echo " Stop it first: kill $bridge_pid" >&2
108
- echo " Or kill the tmux session: tmux kill-session -t claude-all" >&2
109
- exit 1
116
+ # Cross-check: verify a process is actually listening on the lock's port.
117
+ # Windsurf may reuse PIDs from stale locks — if nothing listens on that port,
118
+ # the bridge is not actually running.
119
+ if [[ -n "$bridge_port" ]] && lsof -i ":${bridge_port}" 2>/dev/null | grep -q LISTEN; then
120
+ echo "Error: bridge already running (PID $bridge_pid, port $bridge_port, lock: $(basename "$lock"))." >&2
121
+ echo " Stop it first: kill $bridge_pid" >&2
122
+ echo " Or kill the tmux session: tmux kill-session -t claude-all" >&2
123
+ exit 1
124
+ fi
110
125
  fi
111
126
  done < <(ls ~/.claude/ide/*.lock 2>/dev/null)
112
127
 
@@ -141,6 +156,7 @@ echo "=== Claude IDE Bridge Full Orchestrator ==="
141
156
  echo " Ctrl+C in any pane — stops that process"
142
157
  echo " Ctrl+B then D (press Ctrl+B, release, then press D) — detach (keeps running)"
143
158
  echo " tmux kill-session -t $SESSION — stop everything"
159
+ [[ -z "$NO_DASHBOARD" ]] && echo " Dashboard: http://localhost:${DASHBOARD_PORT}"
144
160
  [[ -n "$NTFY_TOPIC" ]] && echo " Push notifications: ntfy.sh/$NTFY_TOPIC"
145
161
  if [[ -z "$FULL_MODE" ]]; then
146
162
  echo ""
@@ -276,11 +292,12 @@ while true; do
276
292
  sleep \$delay
277
293
  done'"
278
294
 
279
- # --- Create additional panes (pane 0 = orchestrator, 1 = bridge, 2 = claude, 3 = remote-control, 4 = ssh tunnel) ---
295
+ # --- Create additional panes (pane 0 = orchestrator, 1 = bridge, 2 = claude, 3 = remote-control, 4 = dashboard, 5 = ssh tunnel) ---
280
296
  tmux split-window -v -t "$SESSION" # pane 1 for bridge
281
297
  tmux split-window -v -t "$SESSION" # pane 2 for claude --ide
282
298
  tmux split-window -v -t "$SESSION" # pane 3 for claude remote-control
283
- [[ -n "$TUNNEL_CMD" ]] && tmux split-window -v -t "$SESSION" # pane 4 for ssh tunnel (optional)
299
+ [[ -z "$NO_DASHBOARD" ]] && tmux split-window -v -t "$SESSION" # pane 4 for dashboard (optional)
300
+ [[ -n "$TUNNEL_CMD" ]] && tmux split-window -v -t "$SESSION" # pane 5 for ssh tunnel (optional)
284
301
  tmux select-layout -t "$SESSION" even-vertical
285
302
 
286
303
  # --- Helper: wait for a NEW lock file (ignores pre-existing ones) ---
@@ -359,10 +376,20 @@ sleep 3
359
376
  # Pane 3: Remote control with auto-restart loop
360
377
  tmux send-keys -t "${SESSION}:0.3" "$REMOTE_CMD" Enter
361
378
 
362
- # Pane 4: SSH reverse tunnel (only if --vps was set)
379
+ # Pane 4: Dashboard (only if not --no-dashboard and dashboard dir exists)
380
+ DASHBOARD_DIR="$BRIDGE_DIR/dashboard"
381
+ if [[ -z "$NO_DASHBOARD" ]] && [[ -d "$DASHBOARD_DIR" ]]; then
382
+ BRIDGE_PORT=$(basename "$LOCK_FILE" .lock)
383
+ DASHBOARD_CMD="cd $(printf '%q' "$DASHBOARD_DIR") && PATCHWORK_BRIDGE_PORT=${BRIDGE_PORT} npm run dev"
384
+ notify "Starting dashboard on http://localhost:${DASHBOARD_PORT}"
385
+ tmux send-keys -t "${SESSION}:0.4" "$DASHBOARD_CMD" Enter
386
+ fi
387
+
388
+ # Pane 5: SSH reverse tunnel (only if --vps was set)
363
389
  if [[ -n "$TUNNEL_CMD" ]]; then
364
390
  notify "Starting SSH tunnel to ${VPS}..."
365
- tmux send-keys -t "${SESSION}:0.4" "$TUNNEL_CMD" Enter
391
+ TUNNEL_PANE=$([[ -z "$NO_DASHBOARD" ]] && echo 5 || echo 4)
392
+ tmux send-keys -t "${SESSION}:0.${TUNNEL_PANE}" "$TUNNEL_CMD" Enter
366
393
  fi
367
394
 
368
395
  # --- Health monitor (runs in pane 0 — the orchestrator pane) ---
@@ -377,10 +404,12 @@ cleanup() {
377
404
  tmux send-keys -t "${SESSION}:0.1" C-c 2>/dev/null
378
405
  tmux send-keys -t "${SESSION}:0.2" C-c 2>/dev/null
379
406
  tmux send-keys -t "${SESSION}:0.3" C-c 2>/dev/null
380
- [[ -n "$TUNNEL_CMD" ]] && tmux send-keys -t "${SESSION}:0.4" C-c 2>/dev/null
407
+ [[ -z "$NO_DASHBOARD" ]] && tmux send-keys -t "${SESSION}:0.4" C-c 2>/dev/null
408
+ [[ -n "$TUNNEL_CMD" ]] && tmux send-keys -t "${SESSION}:0.${TUNNEL_PANE:-4}" C-c 2>/dev/null
381
409
  # Wait up to 5s for panes to exit gracefully, then force-kill
382
410
  local panes=(1 2 3)
383
- [[ -n "$TUNNEL_CMD" ]] && panes=(1 2 3 4)
411
+ [[ -z "$NO_DASHBOARD" ]] && panes=(1 2 3 4)
412
+ [[ -n "$TUNNEL_CMD" ]] && panes=("${panes[@]}" "${TUNNEL_PANE:-4}")
384
413
  for _ in $(seq 1 5); do
385
414
  sleep 1
386
415
  all_idle=true
@@ -396,7 +425,8 @@ cleanup() {
396
425
  done
397
426
  sleep 1
398
427
  local rpanes=(3 2 1)
399
- [[ -n "$TUNNEL_CMD" ]] && rpanes=(4 3 2 1)
428
+ [[ -z "$NO_DASHBOARD" ]] && rpanes=(4 3 2 1)
429
+ [[ -n "$TUNNEL_CMD" ]] && rpanes=("${TUNNEL_PANE:-4}" "${rpanes[@]}")
400
430
  for pane in "${rpanes[@]}"; do
401
431
  tmux kill-pane -t "${SESSION}:0.${pane}" 2>/dev/null || true
402
432
  done
@@ -413,7 +443,8 @@ while true; do
413
443
  tmux send-keys -t "${SESSION}:0.1" C-c
414
444
  tmux send-keys -t "${SESSION}:0.2" C-c
415
445
  tmux send-keys -t "${SESSION}:0.3" C-c
416
- [[ -n "$TUNNEL_CMD" ]] && tmux send-keys -t "${SESSION}:0.4" C-c
446
+ [[ -z "$NO_DASHBOARD" ]] && tmux send-keys -t "${SESSION}:0.4" C-c
447
+ [[ -n "$TUNNEL_CMD" ]] && tmux send-keys -t "${SESSION}:0.${TUNNEL_PANE:-4}" C-c
417
448
  # Wait for bridge (pane 1) and claude (pane 2) to actually stop
418
449
  for _ in $(seq 1 10); do
419
450
  pane1_cmd=$(tmux display-message -t "${SESSION}:0.1" -p '#{pane_current_command}' 2>/dev/null || echo "")
@@ -476,9 +507,15 @@ while true; do
476
507
  sleep 3
477
508
  # Restart remote-control
478
509
  tmux send-keys -t "${SESSION}:0.3" "$REMOTE_CMD" Enter
510
+ # Restart dashboard with updated bridge port
511
+ if [[ -z "$NO_DASHBOARD" ]] && [[ -d "$DASHBOARD_DIR" ]]; then
512
+ NEW_BRIDGE_PORT=$(basename "$LOCK_FILE" .lock)
513
+ DASHBOARD_CMD="cd $(printf '%q' "$DASHBOARD_DIR") && PATCHWORK_BRIDGE_PORT=${NEW_BRIDGE_PORT} npm run dev"
514
+ tmux send-keys -t "${SESSION}:0.4" "$DASHBOARD_CMD" Enter
515
+ fi
479
516
  # Restart SSH tunnel (port may have changed — tunnel cmd reads lock file dynamically)
480
517
  if [[ -n "$TUNNEL_CMD" ]]; then
481
- tmux send-keys -t "${SESSION}:0.4" "$TUNNEL_CMD" Enter
518
+ tmux send-keys -t "${SESSION}:0.${TUNNEL_PANE:-4}" "$TUNNEL_CMD" Enter
482
519
  fi
483
520
  notify "All processes restarted"
484
521
  else