@schuttdev/kon 0.3.2 → 0.3.3

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 (2) hide show
  1. package/dist/index.js +43 -19
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -341,7 +341,7 @@ function createHttpClient(serverUrl, sessionToken) {
341
341
  }
342
342
 
343
343
  // ../cli/src/version.ts
344
- var VERSION = "0.3.2";
344
+ var VERSION = "0.3.3";
345
345
 
346
346
  // ../cli/src/connect.ts
347
347
  async function connect(serverName) {
@@ -367,15 +367,18 @@ async function connect(serverName) {
367
367
  return { serverUrl: entry.server, sessionToken: entry.sessionToken };
368
368
  }
369
369
  }
370
+ return refreshSession(name, entry.server, entry.token);
371
+ }
372
+ async function refreshSession(serverName, serverUrl, encryptedToken) {
370
373
  const orgUuid = getOrgUUID();
371
- const http = createHttpClient(entry.server);
374
+ const http = createHttpClient(serverUrl);
372
375
  const res = await http.post("/auth/connect", {
373
- encryptedToken: entry.token,
376
+ encryptedToken,
374
377
  orgUuid
375
378
  });
376
- await updateServerSession(name, res.sessionToken, res.expiresAt);
377
- await checkAndUpdateServer(entry.server, res.sessionToken);
378
- return { serverUrl: entry.server, sessionToken: res.sessionToken };
379
+ await updateServerSession(serverName, res.sessionToken, res.expiresAt);
380
+ await checkAndUpdateServer(serverUrl, res.sessionToken);
381
+ return { serverUrl, sessionToken: res.sessionToken };
379
382
  }
380
383
  async function checkAndUpdateServer(serverUrl, sessionToken) {
381
384
  try {
@@ -1015,22 +1018,43 @@ if (firstArg && !firstArg.startsWith("-") && !KNOWN_COMMANDS.has(firstArg)) {
1015
1018
  const toolName = firstArg;
1016
1019
  const toolArgs = process.argv.slice(3);
1017
1020
  try {
1018
- const { serverUrl, sessionToken } = await connect();
1019
- const http = createHttpClient(serverUrl, sessionToken);
1020
- const { tool: detail } = await fetchToolDetail(http, toolName);
1021
- if (detail.type === "mcp") {
1022
- const mcpToolName = toolArgs[0];
1023
- if (!mcpToolName) {
1024
- const toolNames = (detail.mcpTools ?? []).map((t) => ` ${t.name} \u2014 ${t.description}`);
1025
- console.log(`MCP tools for ${toolName}:
1021
+ let { serverUrl, sessionToken } = await connect();
1022
+ let http = createHttpClient(serverUrl, sessionToken);
1023
+ const runTool = async () => {
1024
+ const { tool: detail } = await fetchToolDetail(http, toolName);
1025
+ if (detail.type === "mcp") {
1026
+ const mcpToolName = toolArgs[0];
1027
+ if (!mcpToolName) {
1028
+ const toolNames = (detail.mcpTools ?? []).map((t) => ` ${t.name} \u2014 ${t.description}`);
1029
+ console.log(`MCP tools for ${toolName}:
1026
1030
  ${toolNames.join("\n")}`);
1031
+ } else {
1032
+ const jsonArg = toolArgs.slice(1).join(" ");
1033
+ const args = jsonArg ? JSON.parse(jsonArg) : {};
1034
+ await execMcpTool(http, toolName, mcpToolName, args);
1035
+ }
1036
+ } else {
1037
+ await execTool(http, toolName, toolArgs);
1038
+ }
1039
+ };
1040
+ try {
1041
+ await runTool();
1042
+ } catch (e) {
1043
+ const msg = e.message;
1044
+ if (msg.includes("Invalid session") || msg.includes("Session expired") || msg.includes("Authorization")) {
1045
+ const config = await readConfig();
1046
+ const active = getActiveEntry(config);
1047
+ if (active) {
1048
+ const refreshed = await refreshSession(active.name, active.entry.server, active.entry.token);
1049
+ sessionToken = refreshed.sessionToken;
1050
+ http = createHttpClient(serverUrl, sessionToken);
1051
+ await runTool();
1052
+ } else {
1053
+ throw e;
1054
+ }
1027
1055
  } else {
1028
- const jsonArg = toolArgs.slice(1).join(" ");
1029
- const args = jsonArg ? JSON.parse(jsonArg) : {};
1030
- await execMcpTool(http, toolName, mcpToolName, args);
1056
+ throw e;
1031
1057
  }
1032
- } else {
1033
- await execTool(http, toolName, toolArgs);
1034
1058
  }
1035
1059
  } catch (e) {
1036
1060
  console.error(`Error: ${e.message}`);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@schuttdev/kon",
3
- "version": "0.3.2",
3
+ "version": "0.3.3",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "description": "Lightweight gigai client for Claude code execution",