sparkecoder 0.1.106 → 0.1.107

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 (125) hide show
  1. package/dist/agent/index.d.ts +3 -3
  2. package/dist/agent/index.js.map +1 -1
  3. package/dist/cli.js +14 -7
  4. package/dist/cli.js.map +1 -1
  5. package/dist/db/index.d.ts +2 -2
  6. package/dist/{index--JjYcERz.d.ts → index-D5l-DMGC.d.ts} +83 -83
  7. package/dist/index.d.ts +5 -5
  8. package/dist/index.js +12 -5
  9. package/dist/index.js.map +1 -1
  10. package/dist/{schema-BQ3Wfu-a.d.ts → schema-ecQSnCMz.d.ts} +3 -3
  11. package/dist/{search-BRnGaIl-.d.ts → search-DOzC4ojH.d.ts} +7 -7
  12. package/dist/server/index.js +12 -5
  13. package/dist/server/index.js.map +1 -1
  14. package/dist/tools/index.d.ts +3 -3
  15. package/dist/tools/index.js.map +1 -1
  16. package/package.json +1 -1
  17. package/web/.next/BUILD_ID +1 -1
  18. package/web/.next/standalone/web/.next/BUILD_ID +1 -1
  19. package/web/.next/standalone/web/.next/build-manifest.json +2 -2
  20. package/web/.next/standalone/web/.next/prerender-manifest.json +3 -3
  21. package/web/.next/standalone/web/.next/server/app/(main)/agents/page_client-reference-manifest.js +1 -1
  22. package/web/.next/standalone/web/.next/server/app/(main)/page_client-reference-manifest.js +1 -1
  23. package/web/.next/standalone/web/.next/server/app/(main)/session/[id]/page_client-reference-manifest.js +1 -1
  24. package/web/.next/standalone/web/.next/server/app/(main)/settings/page_client-reference-manifest.js +1 -1
  25. package/web/.next/standalone/web/.next/server/app/_global-error.html +2 -2
  26. package/web/.next/standalone/web/.next/server/app/_global-error.rsc +1 -1
  27. package/web/.next/standalone/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  28. package/web/.next/standalone/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  29. package/web/.next/standalone/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  30. package/web/.next/standalone/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  31. package/web/.next/standalone/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  32. package/web/.next/standalone/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  33. package/web/.next/standalone/web/.next/server/app/_not-found.html +1 -1
  34. package/web/.next/standalone/web/.next/server/app/_not-found.rsc +2 -2
  35. package/web/.next/standalone/web/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  36. package/web/.next/standalone/web/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  37. package/web/.next/standalone/web/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  38. package/web/.next/standalone/web/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  39. package/web/.next/standalone/web/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  40. package/web/.next/standalone/web/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  41. package/web/.next/standalone/web/.next/server/app/agents.html +1 -1
  42. package/web/.next/standalone/web/.next/server/app/agents.rsc +4 -4
  43. package/web/.next/standalone/web/.next/server/app/agents.segments/!KG1haW4p/agents/__PAGE__.segment.rsc +2 -2
  44. package/web/.next/standalone/web/.next/server/app/agents.segments/!KG1haW4p/agents.segment.rsc +1 -1
  45. package/web/.next/standalone/web/.next/server/app/agents.segments/!KG1haW4p.segment.rsc +2 -2
  46. package/web/.next/standalone/web/.next/server/app/agents.segments/_full.segment.rsc +4 -4
  47. package/web/.next/standalone/web/.next/server/app/agents.segments/_head.segment.rsc +1 -1
  48. package/web/.next/standalone/web/.next/server/app/agents.segments/_index.segment.rsc +2 -2
  49. package/web/.next/standalone/web/.next/server/app/agents.segments/_tree.segment.rsc +1 -1
  50. package/web/.next/standalone/web/.next/server/app/docs/installation/page_client-reference-manifest.js +1 -1
  51. package/web/.next/standalone/web/.next/server/app/docs/installation.html +2 -2
  52. package/web/.next/standalone/web/.next/server/app/docs/installation.rsc +3 -3
  53. package/web/.next/standalone/web/.next/server/app/docs/installation.segments/_full.segment.rsc +3 -3
  54. package/web/.next/standalone/web/.next/server/app/docs/installation.segments/_head.segment.rsc +1 -1
  55. package/web/.next/standalone/web/.next/server/app/docs/installation.segments/_index.segment.rsc +2 -2
  56. package/web/.next/standalone/web/.next/server/app/docs/installation.segments/_tree.segment.rsc +1 -1
  57. package/web/.next/standalone/web/.next/server/app/docs/installation.segments/docs/installation/__PAGE__.segment.rsc +2 -2
  58. package/web/.next/standalone/web/.next/server/app/docs/installation.segments/docs/installation.segment.rsc +1 -1
  59. package/web/.next/standalone/web/.next/server/app/docs/installation.segments/docs.segment.rsc +2 -2
  60. package/web/.next/standalone/web/.next/server/app/docs/page_client-reference-manifest.js +1 -1
  61. package/web/.next/standalone/web/.next/server/app/docs/skills/page_client-reference-manifest.js +1 -1
  62. package/web/.next/standalone/web/.next/server/app/docs/skills.html +2 -2
  63. package/web/.next/standalone/web/.next/server/app/docs/skills.rsc +3 -3
  64. package/web/.next/standalone/web/.next/server/app/docs/skills.segments/_full.segment.rsc +3 -3
  65. package/web/.next/standalone/web/.next/server/app/docs/skills.segments/_head.segment.rsc +1 -1
  66. package/web/.next/standalone/web/.next/server/app/docs/skills.segments/_index.segment.rsc +2 -2
  67. package/web/.next/standalone/web/.next/server/app/docs/skills.segments/_tree.segment.rsc +1 -1
  68. package/web/.next/standalone/web/.next/server/app/docs/skills.segments/docs/skills/__PAGE__.segment.rsc +1 -1
  69. package/web/.next/standalone/web/.next/server/app/docs/skills.segments/docs/skills.segment.rsc +1 -1
  70. package/web/.next/standalone/web/.next/server/app/docs/skills.segments/docs.segment.rsc +2 -2
  71. package/web/.next/standalone/web/.next/server/app/docs/tools/page_client-reference-manifest.js +1 -1
  72. package/web/.next/standalone/web/.next/server/app/docs/tools.html +2 -2
  73. package/web/.next/standalone/web/.next/server/app/docs/tools.rsc +3 -3
  74. package/web/.next/standalone/web/.next/server/app/docs/tools.segments/_full.segment.rsc +3 -3
  75. package/web/.next/standalone/web/.next/server/app/docs/tools.segments/_head.segment.rsc +1 -1
  76. package/web/.next/standalone/web/.next/server/app/docs/tools.segments/_index.segment.rsc +2 -2
  77. package/web/.next/standalone/web/.next/server/app/docs/tools.segments/_tree.segment.rsc +1 -1
  78. package/web/.next/standalone/web/.next/server/app/docs/tools.segments/docs/tools/__PAGE__.segment.rsc +2 -2
  79. package/web/.next/standalone/web/.next/server/app/docs/tools.segments/docs/tools.segment.rsc +1 -1
  80. package/web/.next/standalone/web/.next/server/app/docs/tools.segments/docs.segment.rsc +2 -2
  81. package/web/.next/standalone/web/.next/server/app/docs.html +2 -2
  82. package/web/.next/standalone/web/.next/server/app/docs.rsc +3 -3
  83. package/web/.next/standalone/web/.next/server/app/docs.segments/_full.segment.rsc +3 -3
  84. package/web/.next/standalone/web/.next/server/app/docs.segments/_head.segment.rsc +1 -1
  85. package/web/.next/standalone/web/.next/server/app/docs.segments/_index.segment.rsc +2 -2
  86. package/web/.next/standalone/web/.next/server/app/docs.segments/_tree.segment.rsc +1 -1
  87. package/web/.next/standalone/web/.next/server/app/docs.segments/docs/__PAGE__.segment.rsc +2 -2
  88. package/web/.next/standalone/web/.next/server/app/docs.segments/docs.segment.rsc +2 -2
  89. package/web/.next/standalone/web/.next/server/app/index.html +1 -1
  90. package/web/.next/standalone/web/.next/server/app/index.rsc +4 -4
  91. package/web/.next/standalone/web/.next/server/app/index.segments/!KG1haW4p/__PAGE__.segment.rsc +2 -2
  92. package/web/.next/standalone/web/.next/server/app/index.segments/!KG1haW4p.segment.rsc +2 -2
  93. package/web/.next/standalone/web/.next/server/app/index.segments/_full.segment.rsc +4 -4
  94. package/web/.next/standalone/web/.next/server/app/index.segments/_head.segment.rsc +1 -1
  95. package/web/.next/standalone/web/.next/server/app/index.segments/_index.segment.rsc +2 -2
  96. package/web/.next/standalone/web/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  97. package/web/.next/standalone/web/.next/server/app/settings.html +1 -1
  98. package/web/.next/standalone/web/.next/server/app/settings.rsc +4 -4
  99. package/web/.next/standalone/web/.next/server/app/settings.segments/!KG1haW4p/settings/__PAGE__.segment.rsc +2 -2
  100. package/web/.next/standalone/web/.next/server/app/settings.segments/!KG1haW4p/settings.segment.rsc +1 -1
  101. package/web/.next/standalone/web/.next/server/app/settings.segments/!KG1haW4p.segment.rsc +2 -2
  102. package/web/.next/standalone/web/.next/server/app/settings.segments/_full.segment.rsc +4 -4
  103. package/web/.next/standalone/web/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  104. package/web/.next/standalone/web/.next/server/app/settings.segments/_index.segment.rsc +2 -2
  105. package/web/.next/standalone/web/.next/server/app/settings.segments/_tree.segment.rsc +1 -1
  106. package/web/.next/standalone/web/.next/server/pages/404.html +1 -1
  107. package/web/.next/standalone/web/.next/server/pages/500.html +2 -2
  108. package/web/.next/standalone/web/.next/server/server-reference-manifest.js +1 -1
  109. package/web/.next/standalone/web/.next/server/server-reference-manifest.json +1 -1
  110. package/web/.next/standalone/web/.next/static/chunks/b203b9aa975135d3.js +1 -0
  111. package/web/.next/standalone/web/.next/static/static/chunks/b203b9aa975135d3.js +1 -0
  112. package/web/.next/standalone/web/src/lib/config.ts +55 -6
  113. package/web/.next/static/chunks/b203b9aa975135d3.js +1 -0
  114. package/web/.next/standalone/web/.next/static/chunks/4239395558fab3ef.js +0 -1
  115. package/web/.next/standalone/web/.next/static/static/chunks/4239395558fab3ef.js +0 -1
  116. package/web/.next/static/chunks/4239395558fab3ef.js +0 -1
  117. /package/web/.next/standalone/web/.next/static/{gBMaoIWuyMCzyJoRerJkB → 9B80CeRYeYvnsEougmuLs}/_buildManifest.js +0 -0
  118. /package/web/.next/standalone/web/.next/static/{gBMaoIWuyMCzyJoRerJkB → 9B80CeRYeYvnsEougmuLs}/_clientMiddlewareManifest.json +0 -0
  119. /package/web/.next/standalone/web/.next/static/{gBMaoIWuyMCzyJoRerJkB → 9B80CeRYeYvnsEougmuLs}/_ssgManifest.js +0 -0
  120. /package/web/.next/standalone/web/.next/static/static/{gBMaoIWuyMCzyJoRerJkB → 9B80CeRYeYvnsEougmuLs}/_buildManifest.js +0 -0
  121. /package/web/.next/standalone/web/.next/static/static/{gBMaoIWuyMCzyJoRerJkB → 9B80CeRYeYvnsEougmuLs}/_clientMiddlewareManifest.json +0 -0
  122. /package/web/.next/standalone/web/.next/static/static/{gBMaoIWuyMCzyJoRerJkB → 9B80CeRYeYvnsEougmuLs}/_ssgManifest.js +0 -0
  123. /package/web/.next/static/{gBMaoIWuyMCzyJoRerJkB → 9B80CeRYeYvnsEougmuLs}/_buildManifest.js +0 -0
  124. /package/web/.next/static/{gBMaoIWuyMCzyJoRerJkB → 9B80CeRYeYvnsEougmuLs}/_clientMiddlewareManifest.json +0 -0
  125. /package/web/.next/static/{gBMaoIWuyMCzyJoRerJkB → 9B80CeRYeYvnsEougmuLs}/_ssgManifest.js +0 -0
package/dist/cli.js CHANGED
@@ -1329,11 +1329,18 @@ function getStoredAuthKeyInfo() {
1329
1329
  }
1330
1330
  return null;
1331
1331
  }
1332
- async function registerWithRemoteServer(serverUrl, name) {
1332
+ async function registerWithRemoteServer(serverUrl, name, token) {
1333
+ const registerToken = token || process.env.SPARKECODER_REGISTER_TOKEN || process.env.SPARKECODER_SETUP_SECRET;
1333
1334
  const response = await fetch(`${serverUrl}/auth/register`, {
1334
1335
  method: "POST",
1335
- headers: { "Content-Type": "application/json" },
1336
- body: JSON.stringify({ name: name || `CLI ${(/* @__PURE__ */ new Date()).toISOString()}` })
1336
+ headers: {
1337
+ "Content-Type": "application/json",
1338
+ ...registerToken ? { "X-Register-Token": registerToken } : {}
1339
+ },
1340
+ body: JSON.stringify({
1341
+ name: name || `CLI ${(/* @__PURE__ */ new Date()).toISOString()}`,
1342
+ ...registerToken ? { token: registerToken } : {}
1343
+ })
1337
1344
  });
1338
1345
  if (!response.ok) {
1339
1346
  const error = await response.json().catch(() => ({}));
@@ -1343,7 +1350,7 @@ async function registerWithRemoteServer(serverUrl, name) {
1343
1350
  saveAuthKey(data.authKey, data.userId);
1344
1351
  return data;
1345
1352
  }
1346
- async function ensureRemoteAuthKey(serverUrl) {
1353
+ async function ensureRemoteAuthKey(serverUrl, token) {
1347
1354
  if (process.env.SPARKECODER_AUTH_KEY) {
1348
1355
  return process.env.SPARKECODER_AUTH_KEY;
1349
1356
  }
@@ -1351,7 +1358,7 @@ async function ensureRemoteAuthKey(serverUrl) {
1351
1358
  if (storedKey) {
1352
1359
  return storedKey;
1353
1360
  }
1354
- const { authKey: authKey3 } = await registerWithRemoteServer(serverUrl);
1361
+ const { authKey: authKey3 } = await registerWithRemoteServer(serverUrl, void 0, token);
1355
1362
  return authKey3;
1356
1363
  }
1357
1364
  function getApiKeysPath() {
@@ -16909,7 +16916,7 @@ program.command("slack-setup").description("Interactively configure Slack integr
16909
16916
  process.exit(1);
16910
16917
  }
16911
16918
  });
16912
- program.command("cloudflared-setup").description("Auto-detect cloudflared + set up a tunnel to this sparkecoder (interactive)").option("--port <port>", "Local sparkecoder web UI port", "6969").option("--api-port <port>", "Local sparkecoder API port", "3141").option("--hostname <host>", "Public hostname you want to assign (e.g. sf-mac-1.example.com)").option("--tunnel-name <name>", "Tunnel name to reuse or create", "sparkecoder").option("--team <team>", "Your Cloudflare Access team subdomain (e.g. studyfetch -> studyfetch.cloudflareaccess.com)").option("--allowed-emails <emails>", "Comma-separated allow-listed emails").option("-y, --yes", "Skip confirmations and do everything non-interactively", false).option("--print-only", "Skip auto-setup and just print the copy/paste recipe", false).option("--cf-api-token <token>", "Cloudflare API token (Account: Cloudflare Tunnel: Edit + Zone: DNS: Edit). Or set CF_API_TOKEN env").option("--cf-account-id <id>", "Cloudflare account ID. Or set CF_ACCOUNT_ID env").option("--cf-zone-id <id>", "Cloudflare zone ID for the hostname. Or set CF_ZONE_ID env").option("--remote", "Provision the tunnel via the remote sparkecoder server (server holds the Cloudflare credentials)", false).option("--setup-secret <secret>", "Tunnel setup secret (required when server has TUNNEL_SETUP_SECRET set). Or set SPARKECODER_TUNNEL_SECRET env").option("--new-tunnel", "In --remote mode: force a new tunnel even if this user already has one (default: re-use existing)", false).action(async (options) => {
16919
+ program.command("cloudflared-setup").description("Auto-detect cloudflared + set up a tunnel to this sparkecoder (interactive)").option("--port <port>", "Local sparkecoder web UI port", "6969").option("--api-port <port>", "Local sparkecoder API port", "3141").option("--hostname <host>", "Public hostname you want to assign (e.g. sf-mac-1.example.com)").option("--tunnel-name <name>", "Tunnel name to reuse or create", "sparkecoder").option("--team <team>", "Your Cloudflare Access team subdomain (e.g. studyfetch -> studyfetch.cloudflareaccess.com)").option("--allowed-emails <emails>", "Comma-separated allow-listed emails").option("-y, --yes", "Skip confirmations and do everything non-interactively", false).option("--print-only", "Skip auto-setup and just print the copy/paste recipe", false).option("--cf-api-token <token>", "Cloudflare API token (Account: Cloudflare Tunnel: Edit + Zone: DNS: Edit). Or set CF_API_TOKEN env").option("--cf-account-id <id>", "Cloudflare account ID. Or set CF_ACCOUNT_ID env").option("--cf-zone-id <id>", "Cloudflare zone ID for the hostname. Or set CF_ZONE_ID env").option("--remote", "Provision the tunnel via the remote sparkecoder server (server holds the Cloudflare credentials)", false).option("--setup-secret <secret>", "Setup secret (required when server has SETUP_SECRET / TUNNEL_SETUP_SECRET set). Falls back to env SPARKECODER_SETUP_SECRET, then SPARKECODER_TUNNEL_SECRET").option("--new-tunnel", "In --remote mode: force a new tunnel even if this user already has one (default: re-use existing)", false).action(async (options) => {
16913
16920
  const { execSync: execSync2, spawnSync } = await import("child_process");
16914
16921
  const { homedir: homedir2 } = await import("os");
16915
16922
  const { copyFileSync } = await import("fs");
@@ -16970,7 +16977,7 @@ program.command("cloudflared-setup").description("Auto-detect cloudflared + set
16970
16977
  if (!authKey3) {
16971
16978
  authKey3 = await ensureRemoteAuthKey(remoteUrl);
16972
16979
  }
16973
- const setupSecret = options.setupSecret || process.env.SPARKECODER_TUNNEL_SECRET;
16980
+ const setupSecret = options.setupSecret || process.env.SPARKECODER_SETUP_SECRET || process.env.SPARKECODER_TUNNEL_SECRET;
16974
16981
  const hostname = options.hostname;
16975
16982
  const path = options.newTunnel ? "/tunnels" : "/tunnels/ensure";
16976
16983
  console.log(chalk.bold(