@zibby/mcp-cli 0.3.4 → 0.3.5

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/index.js +11 -2
  2. package/package.json +1 -1
package/index.js CHANGED
@@ -482,8 +482,10 @@ server.tool(
482
482
  name: z.string().min(1).optional().describe('Display name for the instance (shown as the dashboard header). ALWAYS pick a meaningful name based on WHAT is being installed and its purpose, NOT the install command. Good examples: `n8n-workflows`, `team-wiki`, `vaultwarden-secrets`, `rails-blog`. Bad examples: `test`, `goal-test`, `instance-1`, `install-n8n`. Max 80 chars, alphanumeric + dashes. Defaults to appType on catalog deploys; for goal deploys you MUST provide one or the server falls back to the first line of the goal text which is usually ugly.'),
483
483
  provider: z.enum(['claude', 'codex']).optional().describe('Agent provider. Default "claude" (Anthropic). "codex" runs the OpenAI Codex agent and requires an OpenAI API key in workspace-credentials.'),
484
484
  architecture: z.enum(['x86_64', 'arm64']).optional().describe('CPU architecture for the Fargate task. "arm64" runs on AWS Graviton — ~20% cheaper compute (same price to user). "x86_64" is the historical default + widest catalog compatibility. Omit to accept the catalog tile\'s preferred arch (first entry in its `architectures` array — usually arm64 for tiles that support it).'),
485
+ model: z.string().min(1).optional().describe('Claude model identifier (e.g. claude-sonnet-4-6). Overrides the agent-ops bootstrap default. Use a stronger model (Opus) for complex installs; cheaper (Haiku) for trivial.'),
486
+ anthropicToken: z.string().regex(/^sk-ant-(oat01|api03)-/, 'must be sk-ant-oat01-* or sk-ant-api03-*').optional().describe('Per-deploy Claude credential override. Defaults to the workspace-stored token. SENSITIVE — never log or persist.'),
485
487
  },
486
- async ({ appType, goal, projectId, name, provider, architecture }) => {
488
+ async ({ appType, goal, projectId, name, provider, architecture, model, anthropicToken }) => {
487
489
  // Enforce mutual exclusivity client-side so the agent gets a clear
488
490
  // error before we burn an HTTP round-trip. Backend enforces the
489
491
  // same invariant (apps.js::deployApp) but this gives a faster
@@ -507,7 +509,14 @@ server.tool(
507
509
  if (name) args.push('--name', name);
508
510
  if (provider) args.push('--provider', provider);
509
511
  if (architecture) args.push('--arch', architecture);
510
- return cliResult(await runCli(args, { extraEnv: { ZIBBY_API_KEY: apiKey } }));
512
+ if (model) args.push('--model', model);
513
+ // anthropicToken is SENSITIVE. Forwarded to the @zibby/cli subprocess
514
+ // via ZIBBY_ANTHROPIC_TOKEN env (NOT argv) so the token never lands
515
+ // in /proc/<pid>/cmdline or argv-scraping ps tools. The CLI sees the
516
+ // env, applies the same regex check, and passes it as a body field.
517
+ const extraEnv = { ZIBBY_API_KEY: apiKey };
518
+ if (anthropicToken) extraEnv.ZIBBY_ANTHROPIC_TOKEN = anthropicToken;
519
+ return cliResult(await runCli(args, { extraEnv }));
511
520
  }
512
521
  );
513
522
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zibby/mcp-cli",
3
- "version": "0.3.4",
3
+ "version": "0.3.5",
4
4
  "description": "Zibby local-essential MCP Server — local workflow scaffold/validate/run + deploy/download (bundles local files). Pure-API tools live in the Zibby Remote MCP (api-prod.zibby.app/mcp).",
5
5
  "type": "module",
6
6
  "main": "index.js",