shark-ai 0.2.1 → 0.3.0

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/dist/bin/shark.js CHANGED
@@ -7,7 +7,7 @@ import {
7
7
  loginCommand,
8
8
  tokenStorage,
9
9
  tui
10
- } from "../chunk-R3MIUNVD.js";
10
+ } from "../chunk-HJYP3WB3.js";
11
11
 
12
12
  // src/core/error/crash-handler.ts
13
13
  import fs from "fs";
@@ -594,7 +594,12 @@ async function getActiveRealm() {
594
594
 
595
595
  // src/core/agents/business-analyst-agent.ts
596
596
  var AGENT_TYPE = "business_analyst";
597
- var AGENT_ID = process.env.STACKSPOT_BA_AGENT_ID || "01KEJ95G304TNNAKGH5XNEEBVD";
597
+ function getAgentId(overrideId) {
598
+ if (overrideId) return overrideId;
599
+ const config = ConfigManager.getInstance().getConfig();
600
+ if (config.agents?.ba) return config.agents.ba;
601
+ return process.env.STACKSPOT_BA_AGENT_ID || "01KEJ95G304TNNAKGH5XNEEBVD";
602
+ }
598
603
  async function runBusinessAnalystAgent(prompt, options = {}) {
599
604
  const { agentId, onChunk, onComplete } = options;
600
605
  const realm = await getActiveRealm();
@@ -612,8 +617,8 @@ async function runBusinessAnalystAgent(prompt, options = {}) {
612
617
  deep_search_ks: false,
613
618
  conversation_id: existingConversationId
614
619
  };
615
- const finalAgentId = agentId || AGENT_ID;
616
- const agentUrl = `${STACKSPOT_AGENT_API_BASE}/v1/agent/${finalAgentId}/chat`;
620
+ const effectiveAgentId = getAgentId(options.agentId);
621
+ const agentUrl = `${STACKSPOT_AGENT_API_BASE}/v1/agent/${effectiveAgentId}/chat`;
617
622
  const headers = {
618
623
  "Authorization": `Bearer ${token}`,
619
624
  "Content-Type": "application/json"
@@ -836,7 +841,12 @@ ${stdout}`);
836
841
 
837
842
  // src/core/agents/specification-agent.ts
838
843
  var AGENT_TYPE2 = "specification_agent";
839
- var AGENT_ID2 = process.env.STACKSPOT_SPEC_AGENT_ID || "01KEPXTX37FTB4N672TZST4SGP";
844
+ function getAgentId2(overrideId) {
845
+ if (overrideId) return overrideId;
846
+ const config = ConfigManager.getInstance().getConfig();
847
+ if (config.agents?.spec) return config.agents.spec;
848
+ return process.env.STACKSPOT_SPEC_AGENT_ID || "01KEPXTX37FTB4N672TZST4SGP";
849
+ }
840
850
  async function interactiveSpecificationAgent(options = {}) {
841
851
  FileLogger.init();
842
852
  tui.intro("\u{1F3D7}\uFE0F Specification Agent");
@@ -1043,12 +1053,12 @@ async function callSpecAgentApi(prompt, onChunk, agentId) {
1043
1053
  use_conversation: true,
1044
1054
  conversation_id: conversationId
1045
1055
  };
1046
- const finalId = agentId || AGENT_ID2;
1047
- const url = `${STACKSPOT_AGENT_API_BASE}/v1/agent/${finalId}/chat`;
1056
+ const effectiveAgentId = getAgentId2(agentId);
1057
+ const url = `${STACKSPOT_AGENT_API_BASE}/v1/agent/${effectiveAgentId}/chat`;
1048
1058
  let fullMsg = "";
1049
1059
  let raw = {};
1050
1060
  FileLogger.log("AGENT", "Calling Agent API", {
1051
- agentId: finalId,
1061
+ agentId: effectiveAgentId,
1052
1062
  conversationId,
1053
1063
  prompt: prompt.substring(0, 500)
1054
1064
  // Log summary of prompt
@@ -1088,7 +1098,11 @@ import { Command as Command2 } from "commander";
1088
1098
  import fs5 from "fs";
1089
1099
  import path4 from "path";
1090
1100
  var AGENT_TYPE3 = "scan_agent";
1091
- var AGENT_ID3 = process.env.STACKSPOT_SCAN_AGENT_ID || "01KEQ9AHWB550J2244YBH3QATN";
1101
+ function getAgentId3() {
1102
+ const config = ConfigManager.getInstance().getConfig();
1103
+ if (config.agents?.scan) return config.agents.scan;
1104
+ return process.env.STACKSPOT_SCAN_AGENT_ID || "01KEQ9AHWB550J2244YBH3QATN";
1105
+ }
1092
1106
  async function interactiveScanAgent(options = {}) {
1093
1107
  FileLogger.init();
1094
1108
  tui.intro("\u{1F575}\uFE0F\u200D\u2642\uFE0F Scan Agent");
@@ -1281,7 +1295,7 @@ async function callScanAgentApi(prompt, onChunk) {
1281
1295
  use_conversation: true,
1282
1296
  conversation_id: conversationId
1283
1297
  };
1284
- const url = `${STACKSPOT_AGENT_API_BASE}/v1/agent/${AGENT_ID3}/chat`;
1298
+ const url = `${STACKSPOT_AGENT_API_BASE}/v1/agent/${getAgentId3()}/chat`;
1285
1299
  let fullMsg = "";
1286
1300
  let raw = {};
1287
1301
  FileLogger.log("SCAN", "Calling API", { promptLength: prompt.length });
@@ -1325,11 +1339,18 @@ import { Command as Command3 } from "commander";
1325
1339
  import fs6 from "fs";
1326
1340
  import path5 from "path";
1327
1341
  var AGENT_TYPE4 = "developer_agent";
1328
- var AGENT_ID4 = process.env.STACKSPOT_DEV_AGENT_ID || "01KEQCGJ65YENRA4QBXVN1YFFX";
1342
+ function getAgentId4(overrideId) {
1343
+ if (overrideId) return overrideId;
1344
+ const config = ConfigManager.getInstance().getConfig();
1345
+ if (config.agents?.dev) return config.agents.dev;
1346
+ if (process.env.STACKSPOT_DEV_AGENT_ID) return process.env.STACKSPOT_DEV_AGENT_ID;
1347
+ return "01KEQCGJ65YENRA4QBXVN1YFFX";
1348
+ }
1329
1349
  async function interactiveDeveloperAgent(options = {}) {
1330
1350
  FileLogger.init();
1331
1351
  tui.intro("\u{1F988} Shark Dev Agent");
1332
- if (AGENT_ID4 === "PENDING_CONFIGURATION") {
1352
+ const agentId = getAgentId4();
1353
+ if (agentId === "PENDING_CONFIGURATION") {
1333
1354
  tui.log.error("\u274C STACKSPOT_DEV_AGENT_ID not configured in .env");
1334
1355
  return;
1335
1356
  }
@@ -1525,7 +1546,7 @@ async function callDevAgentApi(prompt, onChunk) {
1525
1546
  stackspot_knowledge: false
1526
1547
  // Dev Agent focuses on project context
1527
1548
  };
1528
- const url = `${STACKSPOT_AGENT_API_BASE}/v1/agent/${AGENT_ID4}/chat`;
1549
+ const url = `${STACKSPOT_AGENT_API_BASE}/v1/agent/${getAgentId4()}/chat`;
1529
1550
  let fullMsg = "";
1530
1551
  let raw = {};
1531
1552
  await sseClient.streamAgentResponse(url, payload, { "Authorization": `Bearer ${token}`, "Content-Type": "application/json" }, {
@@ -1565,7 +1586,11 @@ import path6 from "path";
1565
1586
  import { Client } from "@modelcontextprotocol/sdk/client/index.js";
1566
1587
  import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js";
1567
1588
  var AGENT_TYPE5 = "qa_agent";
1568
- var AGENT_ID5 = process.env.STACKSPOT_QA_AGENT_ID || "01KEQFJZ3Q3JER11NH22HEZX9X";
1589
+ function getAgentId5() {
1590
+ const config = ConfigManager.getInstance().getConfig();
1591
+ if (config.agents?.qa) return config.agents.qa;
1592
+ return process.env.STACKSPOT_QA_AGENT_ID || "01KEQFJZ3Q3JER11NH22HEZX9X";
1593
+ }
1569
1594
  var ChromeDevToolsClient = class {
1570
1595
  client = null;
1571
1596
  transport = null;
@@ -1609,7 +1634,8 @@ var ChromeDevToolsClient = class {
1609
1634
  };
1610
1635
  var mcpClient = new ChromeDevToolsClient();
1611
1636
  async function runQAAgent(options) {
1612
- if (!AGENT_ID5) {
1637
+ const agentId = getAgentId5();
1638
+ if (!agentId) {
1613
1639
  tui.log.error("\u274C STACKSPOT_QA_AGENT_ID not configured.");
1614
1640
  tui.log.info("Please run: set STACKSPOT_QA_AGENT_ID=<your-id>");
1615
1641
  return;
@@ -1655,7 +1681,7 @@ ${projectContext}
1655
1681
  try {
1656
1682
  const existingConversationId = await conversationManager.getConversationId(AGENT_TYPE5);
1657
1683
  await sseClient.streamAgentResponse(
1658
- `https://genai-inference-app.stackspot.com/v1/agent/${AGENT_ID5}/chat`,
1684
+ `https://genai-inference-app.stackspot.com/v1/agent/${getAgentId5()}/chat`,
1659
1685
  {
1660
1686
  user_prompt: userMessage,
1661
1687
  streaming: true,