linkshell-cli 0.5.37 → 0.5.38

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 (30) hide show
  1. package/dist/cli/src/runtime/acp/acp-client.d.ts +21 -0
  2. package/dist/cli/src/runtime/acp/acp-client.js +101 -5
  3. package/dist/cli/src/runtime/acp/acp-client.js.map +1 -1
  4. package/dist/cli/src/runtime/acp/agent-process-discovery.js +5 -1
  5. package/dist/cli/src/runtime/acp/agent-process-discovery.js.map +1 -1
  6. package/dist/cli/src/runtime/acp/agent-workspace.js +146 -33
  7. package/dist/cli/src/runtime/acp/agent-workspace.js.map +1 -1
  8. package/dist/cli/src/runtime/acp/provider-resolver.js +19 -2
  9. package/dist/cli/src/runtime/acp/provider-resolver.js.map +1 -1
  10. package/dist/cli/src/runtime/bridge-session.d.ts +0 -48
  11. package/dist/cli/src/runtime/bridge-session.js +10 -1039
  12. package/dist/cli/src/runtime/bridge-session.js.map +1 -1
  13. package/dist/cli/src/runtime/hook-command.d.ts +5 -30
  14. package/dist/cli/src/runtime/hook-command.js +54 -41
  15. package/dist/cli/src/runtime/hook-command.js.map +1 -1
  16. package/dist/cli/tsconfig.tsbuildinfo +1 -1
  17. package/package.json +2 -2
  18. package/src/runtime/acp/acp-client.ts +116 -5
  19. package/src/runtime/acp/agent-process-discovery.ts +3 -1
  20. package/src/runtime/acp/agent-workspace.ts +152 -32
  21. package/src/runtime/acp/provider-resolver.ts +21 -2
  22. package/src/runtime/bridge-session.ts +9 -1117
  23. package/src/runtime/hook-command.ts +47 -47
  24. package/web/assets/{FileBrowser-Coy7Szjx.js → FileBrowser-Db2LlqTw.js} +1 -1
  25. package/web/assets/{PortPreview-D-XovbV1.js → PortPreview-Cobi7sn0.js} +1 -1
  26. package/web/assets/{TerminalPanel-Cah56AtC.js → TerminalPanel-_Wve-C8s.js} +1 -1
  27. package/web/assets/{UsageDashboard-DfkjJagC.js → UsageDashboard-DmXct3sk.js} +1 -1
  28. package/web/assets/index-pnfD2xom.js +35 -0
  29. package/web/index.html +1 -1
  30. package/web/assets/index-ClZzQ4ba.js +0 -35
@@ -12,7 +12,8 @@ export function resolveAgentCommand(input) {
12
12
  provider: input.provider,
13
13
  command: explicit,
14
14
  protocol: isCodexAppServer ? "codex-app-server" : isClaudeCli ? "claude-stream-json" : "acp",
15
- framing: isCodexAppServer || isClaudeCli ? "newline" : "content-length",
15
+ // Gemini --acp, cursor-agent acp, and other ACP CLIs speak NDJSON, not LSP Content-Length.
16
+ framing: "newline",
16
17
  };
17
18
  }
18
19
  if (input.provider === "codex") {
@@ -39,7 +40,23 @@ export function resolveAgentCommand(input) {
39
40
  framing: "newline",
40
41
  };
41
42
  }
42
- // custom: caller must provide --agent-command
43
+ if (input.provider === "gemini") {
44
+ return {
45
+ provider: "gemini",
46
+ command: "gemini --acp",
47
+ protocol: "acp",
48
+ framing: "newline",
49
+ };
50
+ }
51
+ if (input.provider === "cursor") {
52
+ return {
53
+ provider: "cursor",
54
+ command: "cursor-agent acp",
55
+ protocol: "acp",
56
+ framing: "newline",
57
+ };
58
+ }
59
+ // copilot / opencode / kimi / custom: PTY-only unless caller passes --agent-command
43
60
  return null;
44
61
  }
45
62
  function hasPackage(name) {
@@ -1 +1 @@
1
- {"version":3,"file":"provider-resolver.js","sourceRoot":"","sources":["../../../../../src/runtime/acp/provider-resolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provider-resolver.js","sourceRoot":"","sources":["../../../../../src/runtime/acp/provider-resolver.ts"],"names":[],"mappings":"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"}
@@ -48,9 +48,6 @@ export declare class BridgeSession {
48
48
  private hostToken;
49
49
  private exited;
50
50
  private stopped;
51
- private permissionStacks;
52
- private pendingPermissions;
53
- private hookMarker;
54
51
  private screenCapture;
55
52
  private screenShare;
56
53
  private tunnelSockets;
@@ -73,7 +70,6 @@ export declare class BridgeSession {
73
70
  */
74
71
  private resolveConfinedPath;
75
72
  private log;
76
- private terminalHookMarker;
77
73
  start(): Promise<void>;
78
74
  private createPairing;
79
75
  private resolveAuthToken;
@@ -88,50 +84,6 @@ export declare class BridgeSession {
88
84
  private sendTerminalList;
89
85
  private replayFrom;
90
86
  private spawnTerminal;
91
- private setupHookServer;
92
- private refreshAgentPermissionHooks;
93
- private setupClaudeHooks;
94
- private setupCodexHooks;
95
- private setupGeminiHooks;
96
- private setupCopilotHooks;
97
- private handleHookEvent;
98
- /** Determine which provider a session id belongs to by which on-disk store
99
- * holds its transcript — Claude writes ~/.claude/projects/<proj>/<id>.jsonl,
100
- * Codex writes ~/.codex/sessions/**​/rollout-*-<id>.jsonl. Deterministic and
101
- * needed because an external session's provider is NOT the spawned PTY's
102
- * provider. best-effort; returns undefined if not found (caller falls back).
103
- * Only hit on a permission request (human-in-loop, rare), so the directory
104
- * scan cost is fine. */
105
- private providerForExternalSession;
106
- private sendHookPermissionRequest;
107
- /**
108
- * Normalize hook event names from different CLI providers to unified internal names.
109
- * Claude: PascalCase (PreToolUse, PostToolUse, Stop, PermissionRequest)
110
- * Codex: camelCase (preToolUse, postToolUse, sessionStart)
111
- * Gemini: PascalCase but different names (BeforeTool, AfterTool, BeforeSubmitPrompt)
112
- */
113
- private normalizeHookName;
114
- /** Auto-resolve a single pending permission (user acted in terminal) */
115
- private autoResolvePending;
116
- /** Drain all pending permissions for a terminal (session ended, stop, etc.) */
117
- private drainPendingPermissions;
118
- private resolvePendingPermission;
119
- private formatHookPermissionDecision;
120
- private sendPermissionSnapshot;
121
- private cleanupHookServer;
122
- /** Remove hook entries containing our marker from a JSON config file */
123
- private removeHookEntries;
124
- /**
125
- * Remove ALL LinkShell hook entries (any marker) from a JSON config file.
126
- * Used on startup to sweep stale entries left behind by a crashed instance,
127
- * whose curl ports are now dead. Matches via isLinkShellHookEntry rather than
128
- * a single marker so entries from previous runs are also cleaned.
129
- */
130
- private sweepLinkShellHookEntries;
131
- /** Sweep stale LinkShell hook entries from known shared config files on startup. */
132
- private sweepStaleHookConfigs;
133
- /** Silence Claude Code's "required env var(s) not set: ${LINKSHELL_ID}" on leftover hooks. */
134
- private rewriteBareLinkShellIdInFile;
135
87
  private send;
136
88
  private startHeartbeat;
137
89
  private stopHeartbeat;