@keygraph/shannon 1.5.0 → 1.7.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.
Files changed (2) hide show
  1. package/dist/index.mjs +18 -8
  2. package/package.json +1 -1
package/dist/index.mjs CHANGED
@@ -520,7 +520,7 @@ async function setupAnthropic() {
520
520
  if (authMethod === "oauth") config.anthropic = { oauth_token: await promptSecret("Enter your OAuth token") };
521
521
  else config.anthropic = { api_key: await promptSecret("Enter your Anthropic API key") };
522
522
  const customizeModels = await p.confirm({
523
- message: "Do you want to change the default models?\n Small - claude-haiku-4-5-20251001\n Medium - claude-sonnet-4-6\n Large - claude-opus-4-7",
523
+ message: "Do you want to change the default models?\n Small - claude-haiku-4-5-20251001\n Medium - claude-sonnet-4-6\n Large - claude-opus-4-8",
524
524
  initialValue: false
525
525
  });
526
526
  if (p.isCancel(customizeModels)) return cancelAndExit();
@@ -539,7 +539,7 @@ async function setupAnthropic() {
539
539
  if (p.isCancel(medium)) return cancelAndExit();
540
540
  const large = await p.text({
541
541
  message: "Large model ID",
542
- initialValue: "claude-opus-4-7",
542
+ initialValue: "claude-opus-4-8",
543
543
  validate: required("Large model ID is required")
544
544
  });
545
545
  if (p.isCancel(large)) return cancelAndExit();
@@ -570,7 +570,7 @@ async function setupCustomBaseUrl() {
570
570
  auth_token: await promptSecret("Enter the auth token for the custom endpoint")
571
571
  } };
572
572
  const customizeModels = await p.confirm({
573
- message: "Do you want to change the default models?\n Small - claude-haiku-4-5-20251001\n Medium - claude-sonnet-4-6\n Large - claude-opus-4-7",
573
+ message: "Do you want to change the default models?\n Small - claude-haiku-4-5-20251001\n Medium - claude-sonnet-4-6\n Large - claude-opus-4-8",
574
574
  initialValue: false
575
575
  });
576
576
  if (p.isCancel(customizeModels)) return cancelAndExit();
@@ -589,7 +589,7 @@ async function setupCustomBaseUrl() {
589
589
  if (p.isCancel(medium)) return cancelAndExit();
590
590
  const large = await p.text({
591
591
  message: "Large model ID",
592
- initialValue: "claude-opus-4-7",
592
+ initialValue: "claude-opus-4-8",
593
593
  validate: required("Large model ID is required")
594
594
  });
595
595
  if (p.isCancel(large)) return cancelAndExit();
@@ -623,7 +623,7 @@ async function setupBedrock() {
623
623
  if (p.isCancel(medium)) return cancelAndExit();
624
624
  const large = await p.text({
625
625
  message: "Large model ID",
626
- placeholder: "us.anthropic.claude-opus-4-7",
626
+ placeholder: "us.anthropic.claude-opus-4-8",
627
627
  validate: required("Large model ID is required")
628
628
  });
629
629
  if (p.isCancel(large)) return cancelAndExit();
@@ -680,7 +680,7 @@ async function setupVertex() {
680
680
  }),
681
681
  large: () => p.text({
682
682
  message: "Large model ID",
683
- placeholder: "claude-opus-4-7",
683
+ placeholder: "claude-opus-4-8",
684
684
  validate: required("Large model ID is required")
685
685
  })
686
686
  });
@@ -705,9 +705,9 @@ async function maybePromptAdaptiveThinking(config) {
705
705
  m.small,
706
706
  m.medium,
707
707
  m.large
708
- ].some((v) => v && /opus-4-[67]/.test(v)))) return;
708
+ ].some((v) => v && /opus-4-[678]/.test(v)))) return;
709
709
  const enable = await p.confirm({
710
- message: "Enable adaptive thinking on Opus 4.6/4.7? Claude decides when and how deeply to reason.",
710
+ message: "Enable adaptive thinking on Opus 4.6/4.7/4.8? Claude decides when and how deeply to reason.",
711
711
  initialValue: true
712
712
  });
713
713
  if (p.isCancel(enable)) return cancelAndExit();
@@ -1371,6 +1371,16 @@ function printInfo(args, workspace, workflowId, repoPath, workspacesDir) {
1371
1371
  console.log(` Workspace: ${workspace}`);
1372
1372
  if (args.config) console.log(` Config: ${path.resolve(args.config)}`);
1373
1373
  if (args.pipelineTesting) console.log(" Mode: Pipeline Testing");
1374
+ const fableTiers = [
1375
+ ["small", process.env.ANTHROPIC_SMALL_MODEL],
1376
+ ["medium", process.env.ANTHROPIC_MEDIUM_MODEL],
1377
+ ["large", process.env.ANTHROPIC_LARGE_MODEL]
1378
+ ].filter(([, model]) => model && /fable/i.test(model));
1379
+ if (fableTiers.length > 0) {
1380
+ const tierList = fableTiers.map(([tier, model]) => `${tier} (${model})`).join(", ");
1381
+ console.log(` Note: ${tierList} set to a Fable model. Fable's safety classifiers`);
1382
+ console.log(" route cybersecurity tasks to Opus 4.8, so those phases run on Opus 4.8.");
1383
+ }
1374
1384
  console.log("");
1375
1385
  console.log(" Monitor:");
1376
1386
  if (workflowId) console.log(` Web UI: http://localhost:8233/namespaces/default/workflows/${workflowId}`);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@keygraph/shannon",
3
- "version": "1.5.0",
3
+ "version": "1.7.0",
4
4
  "description": "Shannon - Autonomous white-box AI pentester for web applications and APIs by Keygraph",
5
5
  "type": "module",
6
6
  "main": "dist/index.mjs",