@jive-ai/cli 0.0.8 → 0.0.10

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.mjs +44 -55
  2. package/package.json +1 -1
package/dist/index.mjs CHANGED
@@ -98,13 +98,17 @@ async function isProjectInitialized() {
98
98
  return await getProjectConfig() !== null;
99
99
  }
100
100
 
101
+ //#endregion
102
+ //#region src/constants.ts
103
+ const API_URL = process.env.JIVE_API_URL || "https://next.getjive.app";
104
+
101
105
  //#endregion
102
106
  //#region src/lib/api-client.ts
103
107
  var ApiClient = class {
104
108
  client;
105
109
  baseURL;
106
- constructor(baseURL) {
107
- this.baseURL = baseURL || process.env.JIVE_API_URL || "https://next.getjive.app";
110
+ constructor(baseURL = API_URL) {
111
+ this.baseURL = baseURL;
108
112
  this.client = axios.create({
109
113
  baseURL: this.baseURL,
110
114
  timeout: 3e4,
@@ -610,8 +614,7 @@ async function initCommand() {
610
614
  await requireAuth();
611
615
  let teamId;
612
616
  const apiClient$1 = getApiClient();
613
- const credentials = await getCredentials();
614
- if (!credentials) {
617
+ if (!await getCredentials()) {
615
618
  console.error(chalk.red("Not authenticated"));
616
619
  process.exit(1);
617
620
  }
@@ -708,16 +711,11 @@ async function initCommand() {
708
711
  }
709
712
  }
710
713
  spinner.text = "Adding Jive server to .mcp.json...";
711
- await addMcpServer("jive-mcp", {
712
- command: "jive mcp start",
713
- env: {
714
- JIVE_TEAM_ID: teamId,
715
- JIVE_AUTH_TOKEN: credentials.token
716
- }
717
- });
714
+ await addMcpServer("jive-mcp", { command: "jive mcp start" });
718
715
  spinner.text = "Removing uploaded MCP servers from local .mcp.json...";
719
716
  if (mcpConfig?.mcpServers) {
720
- for (const name of Object.keys(mcpConfig.mcpServers)) if (uploadedServers.some((server) => server.name === name)) await removeMcpServer(name);
717
+ const serversToRemove = [...uploadedServers.map((server) => server.name), ...skippedServers.map((server) => server.name)];
718
+ for (const name of Object.keys(mcpConfig.mcpServers)) if (serversToRemove.includes(name)) await removeMcpServer(name);
721
719
  }
722
720
  spinner.text = "Creating subagent-runner...";
723
721
  await createSubagentRunner();
@@ -772,47 +770,42 @@ async function detachCommand() {
772
770
  const projectConfig = await getProjectConfig();
773
771
  await requireAuth();
774
772
  const apiClient$1 = getApiClient();
775
- if (projectConfig) {
776
- const teamId = projectConfig.activeTeamId || projectConfig.teamId;
777
- spinner.text = "Pulling subagents from platform...";
778
- try {
779
- const subagents$1 = await apiClient$1.getSubagents(teamId);
780
- for (const subagent of subagents$1) {
781
- await saveSubagentFile({
782
- name: subagent.name,
783
- description: subagent.description,
784
- prompt: subagent.prompt
785
- });
786
- pulledSubagents++;
787
- }
788
- } catch (error) {
789
- console.warn(chalk.yellow(`\n⚠️ Could not pull subagents: ${error.message}`));
790
- }
791
- spinner.text = "Pulling MCP servers from platform...";
792
- try {
793
- const servers = await apiClient$1.getMcpServers(teamId);
794
- for (const server of servers) {
795
- if (server.name === "jive-mcp") continue;
796
- await addMcpServer(server.name, server.config);
797
- pulledMcpServers++;
798
- }
799
- } catch (error) {
800
- console.warn(chalk.yellow(`\n⚠️ Could not pull MCP servers: ${error.message}`));
773
+ const teamId = projectConfig?.activeTeamId || projectConfig?.teamId;
774
+ if (!teamId) {
775
+ console.error(chalk.red("No team ID found, select one with `jive team switch`"));
776
+ process.exit(1);
777
+ return;
778
+ }
779
+ spinner.text = "Pulling subagents from platform...";
780
+ try {
781
+ const subagents$1 = await apiClient$1.getSubagents(teamId);
782
+ for (const subagent of subagents$1) {
783
+ await saveSubagentFile({
784
+ name: subagent.name,
785
+ description: subagent.description,
786
+ prompt: subagent.prompt
787
+ });
788
+ pulledSubagents++;
801
789
  }
790
+ } catch (error) {
791
+ console.warn(chalk.yellow(`\n⚠️ Could not pull subagents: ${error.message}`));
802
792
  }
803
- spinner.text = "Removing Jive server from .mcp.json...";
804
- if ((await getMcpConfig())?.mcpServers?.["jive-mcp"]) await removeMcpServer("jive-mcp");
805
- spinner.text = "Removing telemetry plugin...";
806
- const pluginPath = path.join(process.cwd(), ".claude", "plugins", "jive-mcp-telemetry");
793
+ spinner.text = "Pulling MCP servers from platform...";
807
794
  try {
808
- await fs.access(pluginPath);
809
- await fs.rm(pluginPath, {
810
- recursive: true,
811
- force: true
812
- });
795
+ const servers$1 = await apiClient$1.getMcpServers(teamId);
796
+ for (const server of servers$1) {
797
+ if (server.name === "jive-mcp") continue;
798
+ await addMcpServer(server.name, server.config);
799
+ pulledMcpServers++;
800
+ }
813
801
  } catch (error) {
814
- if (error.code !== "ENOENT") throw error;
802
+ console.warn(chalk.yellow(`\n⚠️ Could not pull MCP servers: ${error.message}`));
815
803
  }
804
+ spinner.text = "Removing Jive server from .mcp.json...";
805
+ if ((await getMcpConfig())?.mcpServers?.["jive-mcp"]) await removeMcpServer("jive-mcp");
806
+ spinner.text = "Restoring MCP server config...";
807
+ const servers = await apiClient$1.getMcpServers(teamId);
808
+ for (const server of servers) await addMcpServer(server.name, server.config);
816
809
  spinner.text = "Removing subagent-runner...";
817
810
  const runnerPath = path.join(process.cwd(), ".claude", "agents", "subagent-runner.md");
818
811
  try {
@@ -834,11 +827,7 @@ async function detachCommand() {
834
827
  const gitignorePath = path.join(process.cwd(), ".gitignore");
835
828
  try {
836
829
  let content = await fs.readFile(gitignorePath, "utf-8");
837
- const linesToRemove = [
838
- ".jive/config.json",
839
- ".jive/sync.json",
840
- ".claude/plugins/"
841
- ];
830
+ const linesToRemove = [".jive"];
842
831
  const lines = content.split("\n");
843
832
  const filteredLines = lines.filter((line) => !linesToRemove.includes(line.trim()));
844
833
  if (filteredLines.length !== lines.length) await fs.writeFile(gitignorePath, filteredLines.join("\n"));
@@ -850,7 +839,7 @@ async function detachCommand() {
850
839
  if (pulledSubagents > 0) console.log(chalk.green(` ✓ Pulled ${pulledSubagents} subagent(s) from platform`));
851
840
  if (pulledMcpServers > 0) console.log(chalk.green(` ✓ Pulled ${pulledMcpServers} MCP server(s) from platform`));
852
841
  console.log(chalk.green(" ✓ Removed Jive server from .mcp.json"));
853
- console.log(chalk.green(" ✓ Removed telemetry plugin"));
842
+ console.log(chalk.green(" ✓ Restored MCP server config"));
854
843
  console.log(chalk.green(" ✓ Removed subagent-runner"));
855
844
  console.log(chalk.green(" ✓ Removed .jive directory"));
856
845
  console.log(chalk.green(" ✓ Cleaned up .gitignore"));
@@ -2066,7 +2055,7 @@ async function checkTeamMembership() {
2066
2055
 
2067
2056
  //#endregion
2068
2057
  //#region package.json
2069
- var version = "0.0.8";
2058
+ var version = "0.0.9";
2070
2059
 
2071
2060
  //#endregion
2072
2061
  //#region src/index.ts
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "private": false,
3
3
  "name": "@jive-ai/cli",
4
- "version": "0.0.8",
4
+ "version": "0.0.10",
5
5
  "main": "index.js",
6
6
  "files": [
7
7
  "dist",