wholestack 0.6.0 → 0.6.1

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.
@@ -142,7 +142,7 @@ function fmtTokens(n) {
142
142
  }
143
143
  function scrubVendor(s) {
144
144
  return (s || "").replace(
145
- /[\w./-]*(?:anthropic|claude|sonnet|opus|cerebras|openrouter|gpt-?oss|gpt-?\d|glm|kimi|qwen|llama|mistral|deepseek|zai|openai|google\/|meta-?llama)[\w./-]*/gi,
145
+ /[\w./-]*(?:anthropic|claude|sonnet|opus|cerebras|openrouter|gpt-?oss|gpt-?\d|glm|kimi|qwen|llama|mistral|deepseek|zai|openai|google\/(?:gemini|gemma)|meta-?llama)[\w./-]*/gi,
146
146
  "Zeta"
147
147
  );
148
148
  }
@@ -929,13 +929,15 @@ async function readSse(resp, onEvent) {
929
929
  }
930
930
  }
931
931
  async function demoBootBuild(zetaApiUrl, body, onPhase) {
932
+ const apiKey = process.env.ZETA_API_KEY?.trim();
933
+ const authHeaders8 = apiKey ? { authorization: `Bearer ${apiKey}` } : {};
932
934
  let spec2 = "";
933
935
  let draftErr = "";
934
936
  let draftResp = null;
935
937
  try {
936
938
  draftResp = await fetch(`${zetaApiUrl}/api/zeta/build`, {
937
939
  method: "POST",
938
- headers: { "content-type": "application/json" },
940
+ headers: { "content-type": "application/json", ...authHeaders8 },
939
941
  body: JSON.stringify({ idea: body.idea, mode: "draft", buildModel: body.buildModel })
940
942
  });
941
943
  } catch (e) {
@@ -958,7 +960,7 @@ async function demoBootBuild(zetaApiUrl, body, onPhase) {
958
960
  try {
959
961
  bootResp = await fetch(`${zetaApiUrl}/api/zeta/demo/boot`, {
960
962
  method: "POST",
961
- headers: { "content-type": "application/json" },
963
+ headers: { "content-type": "application/json", ...authHeaders8 },
962
964
  body: JSON.stringify({
963
965
  spec: spec2,
964
966
  idea: body.idea,
@@ -4285,6 +4287,13 @@ var ROLE_NZT_48 = [
4285
4287
  " control, overflow, oracle/price manipulation, unchecked calls, value",
4286
4288
  " extraction, proxy traps). Report severity + location + exploit path + fix.",
4287
4289
  " Hunt weaknesses to CLOSE them; never weaponize.",
4290
+ " The prover now carries dedicated property kinds you can discharge",
4291
+ " mechanically on the same harness: oracle-manipulation-resistance (proves the",
4292
+ " contract survives an adversarial on-chain price; does NOT vouch for off-chain",
4293
+ " oracle honesty), governance safety (timelock-enforcement, flash-loan-",
4294
+ " resistant snapshot-voting-safety, quorum-enforcement), and MEV defenses",
4295
+ " (slippage-bound \u2014 the user's slippage bound is honored; deadline-enforcement).",
4296
+ " Treat these as provable mechanical properties, not heuristics.",
4288
4297
  "3. BUILD & SHIP \u2014 idea \u2192 ISL \u2192 Solidity \u2192 proven \u2192 deploy-ready, inside the",
4289
4298
  " deterministic provable fragment. Run forge build/test, Slither, Halmos.",
4290
4299
  " Never weaken a gate to force green \u2014 self-heal the spec instead.",
@@ -4299,9 +4308,13 @@ var ROLE_NZT_48 = [
4299
4308
  " then the recommendation. Never fabricate a result \u2014 relay a down feed.",
4300
4309
  "",
4301
4310
  "RULES OF ENGAGEMENT: truth over optics (a refuted invariant honestly reported",
4302
- "is a win; fake-success is the one unforgivable error). One contract per proof",
4303
- "file; honor non-vacuity. Defensive only \u2014 refuse mass targeting, live attacks,",
4304
- "or anything outside an authorized engagement."
4311
+ "is a win; fake-success is the one unforgivable error). Economic soundness",
4312
+ "(incentives, peg, liquidation cascades) is SIMULATED under bounded scenarios",
4313
+ "and reported as TESTED, NEVER proven, and never emits a certificate; MEV that",
4314
+ "lives in cross-transaction ORDERING is out of scope \u2014 only contract-level",
4315
+ "defenses are proven. One contract per proof file; honor non-vacuity. Defensive",
4316
+ "only \u2014 refuse mass targeting, live attacks, or anything outside an authorized",
4317
+ "engagement."
4305
4318
  ].join("\n");
4306
4319
  var DEFAULT_REGISTRY = (() => {
4307
4320
  const r = new PromptRegistry();
package/dist/cli.js CHANGED
@@ -75,7 +75,7 @@ import {
75
75
  webBaseUrl,
76
76
  writeProjectLink,
77
77
  writeWorkingTree
78
- } from "./chunk-C56OI76J.js";
78
+ } from "./chunk-KJ5INI3M.js";
79
79
 
80
80
  // src/cli.ts
81
81
  import { createInterface } from "readline/promises";
package/dist/index.js CHANGED
@@ -49,7 +49,7 @@ import {
49
49
  resolveModelKey,
50
50
  severityRank,
51
51
  supportsThinking
52
- } from "./chunk-C56OI76J.js";
52
+ } from "./chunk-KJ5INI3M.js";
53
53
 
54
54
  // src/prompts/template.ts
55
55
  var PLACEHOLDER = /\{\{([A-Za-z0-9_.]+)\}\}/g;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wholestack",
3
- "version": "0.6.0",
3
+ "version": "0.6.1",
4
4
  "description": "Wholestack — a pro-grade conversational terminal agent for the Wholestack codegen engine. Talk to it in plain language: it writes ISL, generates full-stack or Solidity apps, and proves them with ShipGate. Browser login, membership-gated builds, slash commands, sessions, plan mode, diffs, MCP, plugins.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",