github-router 0.3.219 → 0.3.229

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.
@@ -2,7 +2,7 @@
2
2
  "manifest_version": 3,
3
3
  "name": "github-router browser bridge",
4
4
  "short_name": "gh-router-browser",
5
- "version": "0.3.219",
5
+ "version": "0.3.229",
6
6
  "description": "Bridge between Claude (via github-router /mcp) and the browser. Implements tab control, navigation, clicks, form fill, downloads, screenshots, devtools eval. Blocks navigation to chrome://settings.",
7
7
  "key": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqJElxuBlonBS3TVW9FJN0mGTtShB3L1hoaYf6k39SOr1ogGYmF90EjRxy1i21k9wQQjPf26bcBu/9X67KrQjQV0uB38CaNukgiSeoLjfptN811u+PJHx6BP+jx3Qa6/3VenNPxHC8WEU0GXql8QSjIHEyCwKb6fMASXOK94JyB5Ywov2x8mt/+9ncqBBBMVzf6r5Sagy4PL1XnryLsuADD/vOEkPet8wXgH/Oj7v5tTsQQZ7U1JT51PoDs2BFnXc5v3TkVgZwd32k3ONh+nkDw1Hof+4zwUGOyJE6eMrlYzRlKM4Qxdf9JpavQvqfieAbTRWcyKeclnHeoIfE7cDBQIDAQAB",
8
8
  "background": {
@@ -1,4 +1,4 @@
1
- import { B as TEST_DEFAULT_MODEL, F as EXPLORE_DEFAULT_MODEL, H as resolveModeDefaults, I as EXPLORE_DEFAULT_THINKING, L as IMPLEMENT_DEFAULT_MODEL, N as BROWSE_DEFAULT_MODEL, P as DEFAULT_MODEL, R as PLAN_DEFAULT_MODEL, U as resolveWorkerRunOpts, V as appendPlanReminder, W as runWorkerAgent, z as REVIEW_DEFAULT_MODEL } from "./peer-mcp-personas-A6PytLD6.js";
1
+ import { B as TEST_DEFAULT_MODEL, F as EXPLORE_DEFAULT_MODEL, H as resolveModeDefaults, I as EXPLORE_DEFAULT_THINKING, L as IMPLEMENT_DEFAULT_MODEL, N as BROWSE_DEFAULT_MODEL, P as DEFAULT_MODEL, R as PLAN_DEFAULT_MODEL, U as resolveWorkerRunOpts, V as appendPlanReminder, W as runWorkerAgent, z as REVIEW_DEFAULT_MODEL } from "./peer-mcp-personas-BKwMCOsl.js";
2
2
  import "./paths-BO22pMUb.js";
3
3
  import "./lifecycle-D-1CYr1Y.js";
4
4
  import "./lifecycle-bPdiXjYB.js";
@@ -250,40 +250,47 @@ function deriveDefinitionName(node) {
250
250
  return null;
251
251
  }
252
252
  /**
253
- * Collect EVERY definition node from the parse tree top-level AND
254
- * nested (class methods, methods' inner functions, nested classes, …) —
255
- * so the outline is a COMPLETE structural map the model can rely on to
256
- * decide what to read. Recurses through non-definition wrappers (TS
257
- * `export_statement`, Python `decorated_definition`, C++
258
- * `template_declaration`, …) at the same depth, and INTO each definition
259
- * at depth+1 to surface its members.
260
- *
261
- * `defTypes` is the language's definition-node-type set. Each node yields
262
- * one entry; the `name` is derived per `deriveDefinitionName` (a node
263
- * with no recoverable name is skipped, but the walk still descends into
264
- * it so its named members aren't lost). Bounded at `MAX_OUTLINE_ENTRIES`.
253
+ * Collect declarations that help a model navigate a file: top-level symbols
254
+ * and members of class-like containers. Function-local variables and nested
255
+ * helpers are deliberately omitted because they inflate the summary without
256
+ * identifying useful read targets. Non-definition wrappers (exports,
257
+ * decorators, templates) preserve the surrounding depth.
265
258
  */
259
+ const OUTLINE_MEMBER_CONTAINERS = new Set([
260
+ "class_declaration",
261
+ "class_definition",
262
+ "class_specifier",
263
+ "interface_declaration",
264
+ "annotation_type_declaration",
265
+ "impl_item",
266
+ "trait_item",
267
+ "struct_item",
268
+ "namespace_definition",
269
+ "module"
270
+ ]);
266
271
  function collectDefinitions(root, defTypes, signal) {
267
272
  const out = [];
268
- const visit = (node, depth) => {
273
+ const visit = (node, depth, includeDefinitions) => {
269
274
  if (signal?.aborted || out.length >= MAX_OUTLINE_ENTRIES) return;
270
275
  for (const child of node.namedChildren) {
271
276
  if (signal?.aborted || out.length >= MAX_OUTLINE_ENTRIES) return;
272
277
  if (defTypes.has(child.type)) {
273
- const name = deriveDefinitionName(child);
274
- if (name !== null) out.push({
275
- kind: child.type,
276
- name,
277
- line: child.startPosition.row + 1,
278
- depth
279
- });
280
- visit(child, depth + 1);
278
+ if (includeDefinitions) {
279
+ const name = deriveDefinitionName(child);
280
+ if (name !== null) out.push({
281
+ kind: child.type,
282
+ name,
283
+ line: child.startPosition.row + 1,
284
+ depth
285
+ });
286
+ }
287
+ if (includeDefinitions && OUTLINE_MEMBER_CONTAINERS.has(child.type)) visit(child, depth + 1, true);
281
288
  continue;
282
289
  }
283
- visit(child, depth);
290
+ visit(child, depth, includeDefinitions);
284
291
  }
285
292
  };
286
- visit(root, 0);
293
+ visit(root, 0, true);
287
294
  return out;
288
295
  }
289
296
  /**
package/dist/main.js CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { $ as searchWeb, $t as UPSTREAM_INACTIVITY_TIMEOUT_MS, A as trustRepo, At as createResponses, Bt as CONDENSED_OPERATING_SEQUENCE, C as fileLastPromptStore, Cn as copilotHeaders, Ct as shimDefaultsToXhigh, D as repoRoot, Dt as assembleResponsesPayload, E as repoFingerprint, Et as getTokenCount, Ft as provisionBrowserAssets, G as buildEnv, Gt as buildWorkspaceHeaderJson, Ht as shouldUseInsecureTls, It as hasSupportedBrowserInstalled, J as toolbeltEnabled, Jt as DEFAULT_CLAUDE_MODEL_FALLBACKS, K as availableToolCommands, Kt as collapsePathKeys, Lt as provisionAndIndexColbert, M as resolveSealedGate, Mt as MAX_RESPONSE_BODY_BYTES, Nt as readResponseBodyCapped, O as stopGateEnabledForRepo, Ot as resolveMcpToolTimeoutMs, Pt as parseJsonOrDiagnose, Q as assetFor, Qt as UPSTREAM_FETCH_TIMEOUT_MS, Rt as extractTarGzMember, S as fileFindingsStore, Sn as copilotBaseUrl, St as workerToolsEnabled, T as isSubagentContext, Tn as state, Tt as createMessages, Ut as ArtifactClient, Vt as DEFINITION_OF_GREATNESS, Wt as buildWorkspaceHeaderHelperCommand, X as vscodeRipgrepPath, Xt as DEFAULT_CODEX_MODEL_FALLBACKS, Y as toolbeltSkipSet, Yt as DEFAULT_CODEX_MODEL, Z as TOOLBELT_TOOLS, Zt as DEFAULT_PORT, _ as stopGateDisabled, _n as getGitHubUser, _t as browserToolsEnabled, a as buildPeerAwarenessSnippet, an as setupGitHubAgentToken, at as buildAnthropicErrorEvent, b as stopReviewEnabled, bn as forwardError, bt as nativeSubagentModel, c as personasFor, cn as cacheCopilotVersion, ct as logStreamError, d as buildStopHookCommand, dn as filterBetaHeader, dt as handleMcpDelete, en as generateRandomPort, et as ADVISOR_INTERNAL_TOOL_NAME, f as captureLaunchBaseline, fn as isNullish, ft as handleMcpPost, g as launchBaselineKey, gn as getModels, gt as browserCompoundToolsEnabled, h as injectStopHookIntoSettingsFile, hn as sleep$1, ht as browseAgentEnabled, i as buildAgentPrompt, in as setupCopilotToken, it as isAdvisorRequested, j as liveExec, jt as createChatCompletions, k as stopReviewStateDir, kt as pickEndpoint, l as buildArtifactOpenHookCommand, ln as cacheModels, lt as readIteratorWithTimeout, m as fileBlockBudget, mn as resolveModel, mt as artifactToolsEnabled, n as MCP_GROUPS, nn as getPackageVersion, nt as buildAdvisorStream, o as buildPeerAwarenessSummary, on as setupGitHubToken, ot as buildOpenAIErrorEvent, p as decideStopHook, pn as resolveCodexModel, pt as agentToolsEnabled, q as buildToolbeltAwareness, qt as toolbeltPathOverride, r as assertMcpToolSurfaceConsistent, rn as withInstallLock, rt as injectAdvisorTool, s as enumerateInjectedMcpToolNames, sn as tryRefreshAndRetry, st as isControllerClosedError, t as GROUP_META, tn as pickClaudeDefault, tt as ADVISOR_TOOL_INSTRUCTIONS, u as buildSessionBindHookCommand, un as cacheVSCodeVersion, ut as relayAnthropicStream, v as stopGateId, vn as fetchWithTransientRetry, vt as fleetToolsEnabled, w as fileReviewDebounce, wn as githubHeaders, wt as countTokens, x as fileBaselineStore, xn as GITHUB_API_BASE_URL, xt as standInToolEnabled, y as stopGatePlanMode, yn as HTTPError, yt as geminiAvailable, zt as extractZipMember } from "./peer-mcp-personas-A6PytLD6.js";
2
+ import { $ as searchWeb, $t as UPSTREAM_FETCH_TIMEOUT_MS, A as trustRepo, At as createResponses, Bt as warmTreeSitterPool, C as fileLastPromptStore, Cn as copilotBaseUrl, Ct as shimDefaultsToXhigh, D as repoRoot, Dt as assembleResponsesPayload, E as repoFingerprint, En as state, Et as getTokenCount, Ft as provisionBrowserAssets, G as buildEnv, Gt as buildWorkspaceHeaderHelperCommand, Ht as DEFINITION_OF_GREATNESS, It as hasSupportedBrowserInstalled, J as toolbeltEnabled, Jt as toolbeltPathOverride, K as availableToolCommands, Kt as buildWorkspaceHeaderJson, Lt as provisionAndIndexColbert, M as resolveSealedGate, Mt as MAX_RESPONSE_BODY_BYTES, Nt as readResponseBodyCapped, O as stopGateEnabledForRepo, Ot as resolveMcpToolTimeoutMs, Pt as parseJsonOrDiagnose, Q as assetFor, Qt as DEFAULT_PORT, Rt as extractTarGzMember, S as fileFindingsStore, Sn as GITHUB_API_BASE_URL, St as workerToolsEnabled, T as isSubagentContext, Tn as githubHeaders, Tt as createMessages, Ut as shouldUseInsecureTls, Vt as CONDENSED_OPERATING_SEQUENCE, Wt as ArtifactClient, X as vscodeRipgrepPath, Xt as DEFAULT_CODEX_MODEL, Y as toolbeltSkipSet, Yt as DEFAULT_CLAUDE_MODEL_FALLBACKS, Z as TOOLBELT_TOOLS, Zt as DEFAULT_CODEX_MODEL_FALLBACKS, _ as stopGateDisabled, _n as getModels, _t as browserToolsEnabled, a as buildPeerAwarenessSnippet, an as setupCopilotToken, at as buildAnthropicErrorEvent, b as stopReviewEnabled, bn as HTTPError, bt as nativeSubagentModel, c as personasFor, cn as tryRefreshAndRetry, ct as logStreamError, d as buildStopHookCommand, dn as cacheVSCodeVersion, dt as handleMcpDelete, en as UPSTREAM_INACTIVITY_TIMEOUT_MS, et as ADVISOR_INTERNAL_TOOL_NAME, f as captureLaunchBaseline, fn as filterBetaHeader, ft as handleMcpPost, g as launchBaselineKey, gn as sleep$1, gt as browserCompoundToolsEnabled, h as injectStopHookIntoSettingsFile, hn as resolveModel, ht as browseAgentEnabled, i as buildAgentPrompt, in as withInstallLock, it as isAdvisorRequested, j as liveExec, jt as createChatCompletions, k as stopReviewStateDir, kt as pickEndpoint, l as buildArtifactOpenHookCommand, ln as cacheCopilotVersion, lt as readIteratorWithTimeout, m as fileBlockBudget, mn as resolveCodexModel, mt as artifactToolsEnabled, n as MCP_GROUPS, nn as pickClaudeDefault, nt as buildAdvisorStream, o as buildPeerAwarenessSummary, on as setupGitHubAgentToken, ot as buildOpenAIErrorEvent, p as decideStopHook, pn as isNullish, pt as agentToolsEnabled, q as buildToolbeltAwareness, qt as collapsePathKeys, r as assertMcpToolSurfaceConsistent, rn as getPackageVersion, rt as injectAdvisorTool, s as enumerateInjectedMcpToolNames, sn as setupGitHubToken, st as isControllerClosedError, t as GROUP_META, tn as generateRandomPort, tt as ADVISOR_TOOL_INSTRUCTIONS, u as buildSessionBindHookCommand, un as cacheModels, ut as relayAnthropicStream, v as stopGateId, vn as getGitHubUser, vt as fleetToolsEnabled, w as fileReviewDebounce, wn as copilotHeaders, wt as countTokens, x as fileBaselineStore, xn as forwardError, xt as standInToolEnabled, y as stopGatePlanMode, yn as fetchWithTransientRetry, yt as geminiAvailable, zt as extractZipMember } from "./peer-mcp-personas-BKwMCOsl.js";
3
3
  import { a as isUnderClaudeConfigMirror, d as writeRuntimeFileSecure, i as ensurePaths, o as removeOwnClaudeConfigMirror, r as ensureClaudeConfigMirror, t as PATHS, u as writeArtifactCredsToMirror } from "./paths-BO22pMUb.js";
4
4
  import { c as killManagedTree, d as runCommandCapture, f as runCommandVoid, l as parseBoolEnv, s as killChildProcessTree, u as resolveExecutable } from "./lifecycle-D-1CYr1Y.js";
5
5
  import { a as sweepRegistry } from "./lifecycle-bPdiXjYB.js";
@@ -2894,7 +2894,7 @@ async function discoverGateCommands(cwd, opts) {
2894
2894
  if (files.length === 0) return null;
2895
2895
  let result;
2896
2896
  try {
2897
- const { runWorkerAgent } = await import("./engine-DyY5qdpL.js");
2897
+ const { runWorkerAgent } = await import("./engine-v9-pEKoD.js");
2898
2898
  result = await runWorkerAgent({
2899
2899
  mode: "explore",
2900
2900
  workspace: root,
@@ -5222,7 +5222,7 @@ function initProxyFromEnv() {
5222
5222
  //#endregion
5223
5223
  //#region package.json
5224
5224
  var name = "github-router";
5225
- var version$1 = "0.3.219";
5225
+ var version$1 = "0.3.229";
5226
5226
 
5227
5227
  //#endregion
5228
5228
  //#region src/lib/approval.ts
@@ -8979,6 +8979,7 @@ const claude = defineCommand({
8979
8979
  }
8980
8980
  }
8981
8981
  provisionAndIndexColbert();
8982
+ warmTreeSitterPool();
8982
8983
  startKeepAwake();
8983
8984
  if (browserToolsEnabled()) provisionBrowserAssets().catch((err) => consola.debug("Browser extension provisioning failed:", err));
8984
8985
  const baseShutdown = async () => {
@@ -9298,6 +9299,7 @@ const codex = defineCommand({
9298
9299
  runSelfUpdate({ selfUpdate: args["self-update"] !== false });
9299
9300
  if (toolbeltEnabled()) provisionToolbelt().catch(() => {});
9300
9301
  provisionAndIndexColbert();
9302
+ warmTreeSitterPool();
9301
9303
  startKeepAwake();
9302
9304
  if ((state.browseEnabled || process$1.env.GH_ROUTER_ENABLE_BROWSE === "1") && hasSupportedBrowserInstalled()) provisionBrowserAssets().catch((err) => consola.debug("Browser extension provisioning failed:", err));
9303
9305
  const usingDefault = !args.model;
@@ -12068,6 +12070,7 @@ const start = defineCommand({
12068
12070
  });
12069
12071
  runSelfUpdate({ selfUpdate: args["self-update"] !== false });
12070
12072
  provisionAndIndexColbert();
12073
+ warmTreeSitterPool();
12071
12074
  startKeepAwake();
12072
12075
  if (browserToolsEnabled()) provisionBrowserAssets().catch((err) => consola.debug("Browser extension provisioning failed:", err));
12073
12076
  if (args.cc) generateClaudeCodeCommand(serverUrl, args.model);