@easysociable/cli 0.1.35 → 0.1.36

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.
package/README.md CHANGED
@@ -99,7 +99,9 @@ can be deleted. To register by hand:
99
99
  claude mcp add -s user easysociable -- easysociable mcp serve --transport stdio
100
100
  ```
101
101
 
102
- The server exits without a stored key: run `easysociable auth login` first
102
+ The server starts without a stored key; until you run `easysociable auth login`,
103
+ every tool returns an `AUTH_REQUIRED` result telling you to log in. Credentials are
104
+ re-read on each tool call, so no host restart is needed after login
103
105
  (`install` warns when you are not logged in).
104
106
 
105
107
  ### Cursor (`~/.cursor/mcp.json`)
@@ -33277,7 +33277,7 @@ function mapAnnotations(tool) {
33277
33277
  function createMcpServer(options) {
33278
33278
  const server = new Server(
33279
33279
  { name: options.name, version: options.version },
33280
- { capabilities: { tools: {}, resources: {} } }
33280
+ { capabilities: { tools: {}, resources: {} }, instructions: options.instructions }
33281
33281
  );
33282
33282
  server.setRequestHandler(ListToolsRequestSchema, async () => ({
33283
33283
  tools: options.tools.map((tool) => ({
@@ -34213,15 +34213,35 @@ var init_src5 = __esm({
34213
34213
  });
34214
34214
 
34215
34215
  // ../../../../../../../../../Users/Murphywuwu/Documents/8MRR-Project/packages/mcp-server/src/index.ts
34216
- async function serveUnifiedStdioMcp(client) {
34217
- await serveStdioMcpFromBackend(new UnifiedMcpBackend(client), {
34216
+ function lazyUnifiedMcpBackend(getClient) {
34217
+ const withBackend = async (run) => {
34218
+ let backend;
34219
+ try {
34220
+ backend = new UnifiedMcpBackend(getClient());
34221
+ } catch (e) {
34222
+ return {
34223
+ ok: false,
34224
+ error: { code: "AUTH_REQUIRED", message: e instanceof Error ? e.message : String(e), retryable: true, suggestedAction: "Run `easysociable auth login` in a terminal, then retry" },
34225
+ meta: { requestId: `mcp_${Date.now().toString(36)}`, runtimeVersion: "0.0.0", schemaVersion: 1, toolContractVersion: "2026-08-14" }
34226
+ };
34227
+ }
34228
+ return run(backend);
34229
+ };
34230
+ return {
34231
+ invoke: (toolName, args) => withBackend((backend) => backend.invoke(toolName, args)),
34232
+ readResource: (uri) => withBackend((backend) => backend.readResource(uri))
34233
+ };
34234
+ }
34235
+ async function serveUnifiedStdioMcp(getClient) {
34236
+ await serveStdioMcpFromBackend(lazyUnifiedMcpBackend(getClient), {
34218
34237
  name: "easysociable",
34219
34238
  version: "0.1.0",
34239
+ instructions: UNIFIED_MCP_INSTRUCTIONS,
34220
34240
  tools: unifiedToolRegistry,
34221
34241
  resourceTemplates: unifiedResourceTemplates
34222
34242
  }, { backendName: "gateway" });
34223
34243
  }
34224
- var HEADLESS_PNG_DELIVERY, HEADLESS_TOOLS, removedTools, templateNames, slideshowNames, brandTools, rename, templateTools, slideshowTools, imageTools, unifiedToolRegistry, unifiedResourceTemplates, UnifiedMcpBackend;
34244
+ var HEADLESS_PNG_DELIVERY, HEADLESS_TOOLS, removedTools, templateNames, slideshowNames, brandTools, rename, templateTools, slideshowTools, imageTools, unifiedToolRegistry, unifiedResourceTemplates, UnifiedMcpBackend, UNIFIED_MCP_INSTRUCTIONS;
34225
34245
  var init_src6 = __esm({
34226
34246
  "../../../../../../../../../Users/Murphywuwu/Documents/8MRR-Project/packages/mcp-server/src/index.ts"() {
34227
34247
  "use strict";
@@ -34582,6 +34602,7 @@ var init_src6 = __esm({
34582
34602
  return this.slideshow.readResource(uri);
34583
34603
  }
34584
34604
  };
34605
+ UNIFIED_MCP_INSTRUCTIONS = "EasySociable tools for Templates, Slideshow Runs, Brands, and Images. Requires login: if a tool returns AUTH_REQUIRED, ask the user to run `easysociable auth login` in a terminal, then retry the tool (no restart needed).";
34585
34606
  }
34586
34607
  });
34587
34608
 
@@ -35583,7 +35604,7 @@ function gatewayCredentials() {
35583
35604
  const stored = readStoredCredentials();
35584
35605
  const allowEnv = process.env.EASYSOCIABLE_ALLOW_ENV_CREDENTIALS === "true";
35585
35606
  const apiKey = stored?.apiKey ?? (allowEnv ? process.env.EASYSOCIABLE_API_KEY : void 0);
35586
- if (!apiKey) throw new Error("EASYSOCIABLE_API_KEY is required. Run `easysociable auth login` first.");
35607
+ if (!apiKey) throw new Error("Not logged in to EasySociable. Run `easysociable auth login` in a terminal, then retry (or set EASYSOCIABLE_API_KEY with EASYSOCIABLE_ALLOW_ENV_CREDENTIALS=true).");
35587
35608
  return { apiKey, baseUrl: gatewayBaseUrl(stored) };
35588
35609
  }
35589
35610
  function clientFromEnv() {
@@ -35670,7 +35691,7 @@ async function applyInstallation(options) {
35670
35691
  await rm(join4(host.skillsPath, skill), { recursive: true, force: true });
35671
35692
  }
35672
35693
  const loggedIn = Boolean(readStoredCredentials(join4(String(plan.home), ".config", "easysociable", "credentials.json"))) || process.env.EASYSOCIABLE_ALLOW_ENV_CREDENTIALS === "true" && Boolean(process.env.EASYSOCIABLE_API_KEY);
35673
- const warnings = loggedIn ? [] : ["Not logged in: run `easysociable auth login`, or the easysociable MCP server will fail to start."];
35694
+ const warnings = loggedIn ? [] : ["Not logged in: run `easysociable auth login`, so the easysociable MCP tools can reach your account."];
35674
35695
  if (options.json !== true) {
35675
35696
  process.stdout.write(`Installed skills your Agent will use:
35676
35697
  easysociable-slideshow \u2014 turns a topic into carousel pages you edit and download in Studio
@@ -36014,7 +36035,7 @@ Waiting for approval\u2026
36014
36035
  mcp.command("serve").requiredOption("--transport <transport>").action(async (options) => {
36015
36036
  if (options.transport !== "stdio") throw new Error("Only stdio transport is supported");
36016
36037
  const { serveUnifiedStdioMcp: serveUnifiedStdioMcp2 } = await Promise.resolve().then(() => (init_v1_mcp(), v1_mcp_exports));
36017
- await serveUnifiedStdioMcp2(clientFromEnv());
36038
+ await serveUnifiedStdioMcp2(clientFromEnv);
36018
36039
  });
36019
36040
  return program;
36020
36041
  }