@husar.ai/cli 0.2.14 → 0.3.2

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/MCP_SERVER.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # MCP Server Setup (Cursor + Codex)
2
2
 
3
- This guide shows how to register the Husar MCP server so your AI tools can call the CLI commands (e.g., `husar.ai copy ...`) via the `cms_parse_file` tool.
3
+ This guide shows how to register the Husar MCP server so your AI tools can call the CLI commands
4
4
 
5
5
  The MCP server is built into the CLI. Run it as `husar.ai mcp`.
6
6
 
@@ -10,7 +10,7 @@ The MCP server is built into the CLI. Run it as `husar.ai mcp`.
10
10
  - Ensure your workspace (project root) contains `husar.json` with:
11
11
  - `host`: Husar CMS base URL
12
12
  - `adminToken`: Husar admin token (required for copy/upsert)
13
- - Use `husar.ai generate` or edit `husar.json` directly to set these.
13
+ - Use `@husar.ai/cli generate` or edit `husar.json` directly to set these.
14
14
 
15
15
  No environment variables are required. MCP reads config like the CLI and auto-detects the workspace root.
16
16
 
@@ -22,8 +22,8 @@ Create or edit `~/.cursor/mcp.json` and add the Husar server entry.
22
22
  {
23
23
  "mcpServers": {
24
24
  "husar": {
25
- "command": "husar.ai",
26
- "args": ["mcp"]
25
+ "command": "npx",
26
+ "args": ["-y", "@husar.ai/cli", "mcp"]
27
27
  }
28
28
  }
29
29
  }
@@ -40,7 +40,7 @@ Create or edit `~/.config/codex/config.toml` and add a server entry.
40
40
  ```toml
41
41
  [mcp_servers.husar]
42
42
  command = "husar.ai"
43
- args = ["mcp"]
43
+ args = ["-y", "@husar.ai/cli", "mcp"]
44
44
  ```
45
45
 
46
46
  Notes:
@@ -49,28 +49,20 @@ Notes:
49
49
 
50
50
  ## Available Tools
51
51
 
52
- - `cms_parse_file`:
52
+ - `husar_copy`:
53
53
  - Purpose: Parse a CMS file into a shape or model and upsert via CLI.
54
54
  - Inputs:
55
- - `path`: Absolute path or path relative to the detected workspace root.
55
+ - `path`: Absolute path or path relative to the workspace root.
56
56
  - `type`: Optional, `"model" | "shape"` (default `"shape"`).
57
57
  - `name`: Optional string; if omitted, derived from filename (lowercased).
58
+ - `workspaceRoot`: Optional string; Target folder for where husar.json is located. Needed when run in monorepo where husar.json is located in child repo
58
59
  - Output: JSON stringified status or error details.
59
- - Notes: This maps to the `husar_copy` implementation; kept for compatibility.
60
-
61
- - `husar_copy`:
62
- - Purpose: Same as `cms_parse_file` (alias of the CLI `copy` command).
63
- - Inputs: Same as `cms_parse_file`.
64
- - Auth: Reads `host` and `adminToken` from `husar.json` at the workspace root (same as CLI).
65
- - Example arguments:
66
- - `path`: `packages/playground/src/pages/examples/ContactForm.tsx`
67
- - `type`: `shape`
68
- - `name`: `examples_contactform`
69
60
 
70
61
  - `husar_generate`:
71
62
  - Purpose: Generate CMS scaffolding (Zeus client, host helpers, SSR + React helpers) into `cms/`.
72
63
  - Inputs:
73
- - `folderPath`: Optional target directory relative to the detected workspace root (defaults to `"."`). The `cms/` folder is created/rewritten inside this path.
64
+ - `folderPath`: Optional target directory relative to the workspace root (defaults to `"."`). The `cms/` folder is created/rewritten inside this path.
65
+ - `workspaceRoot`: Optional string; Target folder for where husar.json is located. Needed when run in monorepo where husar.json is located in child repo
74
66
  - Host config: Uses `host` from `husar.json` at the workspace root.
75
67
  - Output: JSON with `{ "status": "ok", "folder": "<ABS_PATH_TO_cms>" }` or error details.
76
68
  - Files written:
@@ -80,5 +72,4 @@ Notes:
80
72
  ## Troubleshooting
81
73
 
82
74
  - CLI not found: Ensure `@husar.ai/cli` is installed globally or that `husar.ai` is on PATH.
83
- - Config errors: Make sure `husar.json` at your workspace root contains `host` and `adminToken`.
84
- - Workspace detection: The server walks up from its current working directory to find a `package.json` with `workspaces`. Launch it from within your project.
75
+ - Config errors: Make sure `husar.json` at your workspace root contains `host` and `adminToken` for admin actions.
package/dist/cli.js CHANGED
@@ -34,7 +34,11 @@ program
34
34
  if (!conf.adminToken) {
35
35
  throw new Error('Admin token is not configured. Please set it in the config or use environment variable.');
36
36
  }
37
- const result = await parser(inputFile, { name, type: opts?.type }, { HUSAR_MCP_HOST: conf.host, HUSAR_MCP_ADMIN_TOKEN: conf.adminToken });
37
+ const result = await parser({
38
+ inputFile,
39
+ opts: { name, type: opts?.type },
40
+ authentication: { HUSAR_MCP_HOST: conf.host, HUSAR_MCP_ADMIN_TOKEN: conf.adminToken },
41
+ });
38
42
  console.log(result ? 'File parsed and upserted successfully.' : 'Failed to parse and upsert file.');
39
43
  });
40
44
  program
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1C,MAAM,MAAM,GAAG,IAAI,WAAW,CAM3B,OAAO,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;AAE9B,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,mCAAmC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAExF,OAAO;KACJ,OAAO,CAAC,uBAAuB,CAAC;KAChC,WAAW,CAAC,0CAA0C,CAAC;KACvD,MAAM,CAAC,KAAK,EAAE,aAAqB,GAAG,EAAE,EAAE;IACzC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;IACzE,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,uBAAuB,CAAC;IAC7C,MAAM,iBAAiB,GAAG,IAAI,CAAC,iCAAiC,CAAC;IACjE,MAAM,WAAW,CAAC;QAChB,UAAU,EAAE,UAAU;QACtB,IAAI;QACJ,uBAAuB,EAAE,OAAO;QAChC,iCAAiC,EAAE,iBAAiB;KACrD,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,yBAAyB,CAAC;KAClC,WAAW,CAAC,iEAAiE,CAAC;KAC9E,MAAM,CAAC,mBAAmB,EAAE,0BAA0B,EAAE,OAAO,CAAC;KAChE,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;IACtC,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC;IAC1B,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;IAChF,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,yFAAyF,CAAC,CAAC;IAC7G,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,MAAM,CACzB,SAAS,EACT,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAC1B,EAAE,cAAc,EAAE,IAAI,CAAC,IAAI,EAAE,qBAAqB,EAAE,IAAI,CAAC,UAAU,EAAE,CACtE,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,wCAAwC,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC;AACtG,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,qCAAqC,CAAC;KAClD,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,cAAc,EAAE,CAAC;IAGvB,MAAM,IAAI,OAAO,CAAO,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;AACpC,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAG1C,MAAM,MAAM,GAAG,IAAI,WAAW,CAAkB,OAAO,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;AAE3E,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,mCAAmC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAExF,OAAO;KACJ,OAAO,CAAC,uBAAuB,CAAC;KAChC,WAAW,CAAC,0CAA0C,CAAC;KACvD,MAAM,CAAC,KAAK,EAAE,aAAqB,GAAG,EAAE,EAAE;IACzC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;IACzE,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,uBAAuB,CAAC;IAC7C,MAAM,iBAAiB,GAAG,IAAI,CAAC,iCAAiC,CAAC;IACjE,MAAM,WAAW,CAAC;QAChB,UAAU,EAAE,UAAU;QACtB,IAAI;QACJ,uBAAuB,EAAE,OAAO;QAChC,iCAAiC,EAAE,iBAAiB;KACrD,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,yBAAyB,CAAC;KAClC,WAAW,CAAC,iEAAiE,CAAC;KAC9E,MAAM,CAAC,mBAAmB,EAAE,0BAA0B,EAAE,OAAO,CAAC;KAChE,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;IACtC,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC;IAC1B,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;IAChF,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,yFAAyF,CAAC,CAAC;IAC7G,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC;QAC1B,SAAS;QACT,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;QAChC,cAAc,EAAE,EAAE,cAAc,EAAE,IAAI,CAAC,IAAI,EAAE,qBAAqB,EAAE,IAAI,CAAC,UAAU,EAAE;KACtF,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,wCAAwC,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC;AACtG,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,qCAAqC,CAAC;KAClD,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,cAAc,EAAE,CAAC;IAGvB,MAAM,IAAI,OAAO,CAAO,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;AACpC,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
@@ -1,7 +1,12 @@
1
- export declare const parser: (inputFile: string, opts: {
2
- name: string;
3
- type: "model" | "shape";
4
- }, authentication: {
5
- HUSAR_MCP_HOST: string;
6
- HUSAR_MCP_ADMIN_TOKEN: string;
1
+ export declare const parser: ({ authentication, inputFile, opts, workspaceRoot, }: {
2
+ inputFile: string;
3
+ workspaceRoot?: string;
4
+ opts: {
5
+ name: string;
6
+ type: "model" | "shape";
7
+ };
8
+ authentication: {
9
+ HUSAR_MCP_HOST: string;
10
+ HUSAR_MCP_ADMIN_TOKEN: string;
11
+ };
7
12
  }) => Promise<boolean>;
@@ -1,31 +1,23 @@
1
1
  import * as path from 'node:path';
2
2
  import * as fs from 'node:fs/promises';
3
- export const parser = async (inputFile, opts, authentication) => {
3
+ export const parser = async ({ authentication, inputFile, opts, workspaceRoot, }) => {
4
4
  const { HUSAR_MCP_ADMIN_TOKEN, HUSAR_MCP_HOST } = authentication;
5
5
  const filename = path.basename(inputFile);
6
- const body = await fs.readFile(path.resolve(process.cwd(), inputFile), 'utf8');
6
+ const body = await fs.readFile(path.resolve(process.cwd(), ...(workspaceRoot ? [workspaceRoot] : []), inputFile), 'utf8');
7
7
  const key = `${opts.name}-${filename}-${new Date().getTime()}.txt`;
8
- let putURL, fileURL;
9
- try {
10
- const put = await fetch(new URL('api/graphql', HUSAR_MCP_HOST).toString(), {
11
- method: 'POST',
12
- headers: { 'Content-Type': 'application/json', husar_token: HUSAR_MCP_ADMIN_TOKEN },
13
- body: JSON.stringify({
14
- query: `mutation GetUploadURL($input: UploadFileInput!) { admin { uploadFile(file: $input) { putURL cdnURL } } }`,
15
- variables: { input: { prefix: 'parse', key } },
16
- }),
17
- });
18
- const result = await put.json();
19
- putURL = result?.data?.admin?.uploadFile?.putURL;
20
- fileURL = result?.data?.admin?.uploadFile?.cdnURL;
21
- }
22
- catch {
23
- console.log('Failed to get upload URL');
24
- throw new Error('Failed to get upload URL');
25
- }
8
+ const put = await fetch(new URL('api/graphql', HUSAR_MCP_HOST).toString(), {
9
+ method: 'POST',
10
+ headers: { 'Content-Type': 'application/json', husar_token: HUSAR_MCP_ADMIN_TOKEN },
11
+ body: JSON.stringify({
12
+ query: `mutation GetUploadURL($input: UploadFileInput!) { admin { uploadFile(file: $input) { putURL cdnURL } } }`,
13
+ variables: { input: { prefix: 'parse', key } },
14
+ }),
15
+ });
16
+ const result = await put.json();
17
+ const putURL = result?.data?.admin?.uploadFile?.putURL;
18
+ const fileURL = result?.data?.admin?.uploadFile?.cdnURL;
26
19
  if (!putURL) {
27
- console.log('Failed to get upload URL');
28
- throw new Error('Failed to get upload URL');
20
+ throw new Error(`Failed to get upload URL ${JSON.stringify(result, null, 2)} ,`);
29
21
  }
30
22
  try {
31
23
  await fetch(putURL, { method: 'PUT', headers: { 'Content-Type': 'text/plain', 'x-amz-acl': 'public-read' }, body });
@@ -1 +1 @@
1
- {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/functions/parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/functions/parser.ts"],"names":[],"mappings":"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"}
package/dist/mcp.d.ts CHANGED
@@ -1,2 +1,3 @@
1
1
  #!/usr/bin/env node
2
2
  export declare const startMcpServer: () => Promise<void>;
3
+ export declare function stripWorkspaceRoot(filePath: string, workspaceRoot?: string): string;