@mindstudio-ai/agent 0.1.37 → 0.1.38

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/cli.js CHANGED
@@ -1516,6 +1516,11 @@ function deserializeRow(row, columns) {
1516
1516
  } catch {
1517
1517
  result[key] = value;
1518
1518
  }
1519
+ } else if (col?.type === "boolean" && typeof value === "number") {
1520
+ result[key] = value !== 0;
1521
+ } else if (col?.type === "number" && typeof value === "string") {
1522
+ const num = Number(value);
1523
+ result[key] = Number.isNaN(num) ? value : num;
1519
1524
  } else {
1520
1525
  result[key] = value;
1521
1526
  }
@@ -4718,6 +4723,8 @@ function buildReferenceDocs(data) {
4718
4723
 
4719
4724
  Database queries (Query, Mutation) support both \`await\` and \`.then()/.catch()\` \u2014 use standard try/catch with await or chain \`.catch()\` directly.
4720
4725
 
4726
+ Auth + DB identity: When an app has auth enabled, the authenticated user IS a row in the app's users table. \`auth.userId\` is the row's \`id\` \u2014 do NOT add a separate \`userId\` column. Access user data with \`Users.get(auth.userId)\`. The platform creates the user row on first login and manages the \`email\`, \`phone\`, and \`roles\` columns automatically.
4727
+
4721
4728
  Table options: \`db.defineTable<T>(name, { unique, defaults })\`.
4722
4729
  - \`unique: [['email'], ['userId', 'orgId']]\` \u2014 declares unique constraints (SDK communicates to platform, enables upsert).
4723
4730
  - \`defaults: { status: 'pending' }\` \u2014 client-side defaults applied in push() and upsert().
@@ -4793,6 +4800,7 @@ var init_instructions = __esm({
4793
4800
  - **Missing MindStudioError handling** \u2014 the SDK has structured errors with \`code\`, \`status\`, \`details\`. Catching generic \`Error\` loses actionable information. Always include \`MindStudioError\` handling in code examples.
4794
4801
  - **One-at-a-time db writes when batch exists** \u2014 N sequential \`update()\` or \`push()\` calls should be a single \`db.batch()\` call. One round trip instead of N.
4795
4802
  - **Hardcoded model IDs without context** \u2014 model IDs can change. When writing code with a specific model, include a comment noting which model it is and why it was chosen, so the caller can swap it later.
4803
+ - **Adding a userId column to the auth users table** \u2014 \`auth.userId\` IS the row's \`id\` in the users table. The platform creates the row on login. Don't add a separate \`userId\` column \u2014 just use \`Users.get(auth.userId)\` to access the user's row.
4796
4804
  - Do not recommend using thread persistence. This is an advanced feature - if someone needs this they will discover it on their own.
4797
4805
  - Generate text is great for one-off text generation requests to models. For sustained conversations, conversations that require history, persistence, or multiple threads or tool use, recommend that the developer add an Agent interface to their MindStudio app and use that directly. They will understand what you mean by this.
4798
4806
  </anti_patterns>
@@ -5114,7 +5122,7 @@ async function startMcpServer(options) {
5114
5122
  capabilities: { tools: {} },
5115
5123
  serverInfo: {
5116
5124
  name: "mindstudio-agent",
5117
- version: "0.1.37"
5125
+ version: "0.1.38"
5118
5126
  },
5119
5127
  instructions: 'Welcome to MindStudio \u2014 a platform with 200+ AI models, 850+ third-party integrations, and pre-built agents.\n\nGetting started:\n1. Call `ask` with any question about the SDK \u2014 it knows every action, model, and connector and returns working code with real model IDs and config options. Examples: ask("generate an image with FLUX"), ask("what models support vision?"), ask("how do I send a Slack message?").\n2. Call `changeName` to set your display name \u2014 use your name or whatever your user calls you. This is how you\'ll appear in MindStudio request logs.\n3. If you have a profile picture or icon, call `uploadFile` to upload it, then `changeProfilePicture` with the returned URL.\n4. For manual browsing, call `listActions` to discover all available actions.\n\nThen use the tools to generate text, images, video, audio, search the web, work with data sources, run agents, and more.\n\nImportant:\n- AI-powered actions (text generation, image generation, video, audio, etc.) cost money. Before running these, call `estimateActionCost` and confirm with the user before proceeding \u2014 unless they\'ve explicitly told you to go ahead.\n- Not all agents from `listAgents` are configured for API use. Do not try to run an agent just because it appears in the list \u2014 it will likely fail. Only run agents the user specifically asks you to run.'
5120
5128
  });
@@ -6071,7 +6079,7 @@ function isNewerVersion(current, latest) {
6071
6079
  return false;
6072
6080
  }
6073
6081
  async function checkForUpdate() {
6074
- const currentVersion = "0.1.37";
6082
+ const currentVersion = "0.1.38";
6075
6083
  if (!currentVersion) return null;
6076
6084
  try {
6077
6085
  const { loadConfig: loadConfig2, saveConfig: saveConfig2 } = await Promise.resolve().then(() => (init_config(), config_exports));
@@ -6100,7 +6108,7 @@ async function checkForUpdate() {
6100
6108
  }
6101
6109
  }
6102
6110
  function printUpdateNotice(latestVersion) {
6103
- const currentVersion = "0.1.37";
6111
+ const currentVersion = "0.1.38";
6104
6112
  process.stderr.write(
6105
6113
  `
6106
6114
  ${ansi2.cyanBright("Update available")} ${ansi2.gray(currentVersion + " \u2192")} ${ansi2.cyanBold(latestVersion)}
@@ -6113,7 +6121,7 @@ function isStandaloneBinary() {
6113
6121
  return !argv1.includes("node_modules");
6114
6122
  }
6115
6123
  async function cmdUpdate() {
6116
- const currentVersion = "0.1.37";
6124
+ const currentVersion = "0.1.38";
6117
6125
  process.stderr.write(
6118
6126
  ` ${ansi2.gray("Current version:")} ${currentVersion}
6119
6127
  `
@@ -6248,7 +6256,7 @@ async function cmdLogin(options) {
6248
6256
  process.stderr.write("\n");
6249
6257
  printLogo();
6250
6258
  process.stderr.write("\n");
6251
- const ver = "0.1.37";
6259
+ const ver = "0.1.38";
6252
6260
  process.stderr.write(
6253
6261
  ` ${ansi2.bold("MindStudio Agent")} ${ver ? " " + ansi2.gray("v" + ver) : ""}
6254
6262
  `
@@ -6575,7 +6583,7 @@ async function main() {
6575
6583
  try {
6576
6584
  if (command === "version" || command === "-v") {
6577
6585
  process.stdout.write(
6578
- "0.1.37\n"
6586
+ "0.1.38\n"
6579
6587
  );
6580
6588
  return;
6581
6589
  }
package/dist/index.js CHANGED
@@ -281,6 +281,11 @@ function deserializeRow(row, columns) {
281
281
  } catch {
282
282
  result[key] = value;
283
283
  }
284
+ } else if (col?.type === "boolean" && typeof value === "number") {
285
+ result[key] = value !== 0;
286
+ } else if (col?.type === "number" && typeof value === "string") {
287
+ const num = Number(value);
288
+ result[key] = Number.isNaN(num) ? value : num;
284
289
  } else {
285
290
  result[key] = value;
286
291
  }