@mindstudio-ai/agent 0.1.37 → 0.1.39
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 +15 -6
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/postinstall.js +15 -6
- package/package.json +1 -1
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. IMPORTANT: The platform only populates the mapped auth columns (email, phone, roles) when creating the row \u2014 all other columns will be null until the developer's code sets them. Non-auth columns on the user table should be typed as optional (e.g. \`username?: string\`) and null-checked before use.
|
|
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>
|
|
@@ -4805,6 +4813,7 @@ var init_instructions = __esm({
|
|
|
4805
4813
|
- **Prefer popular models as defaults** in code examples unless the caller has a reason to use something specific.
|
|
4806
4814
|
- **Always recommend latest-generation models**: For Anthropic, this is Claude 4 family, GPT-5 for OpenAI, Gemini 3 for Google, etc. MindStudio supports a ton of different models, including legacy models - but they are there for niche uses or backward compatibility/existing user requirements - they should NOT be used for new projects.
|
|
4807
4815
|
- Use the names of model input objects to infer capabilities. For example, any image generation model that supports source images in its config supports "remixing" or "image editing". Any video model with a start and end frame option supports creating "looping" videos. Do not look at model tags or descriptions to determine capabilities.
|
|
4816
|
+
- **Never set maxResponseTokens to a low value.** Many models use extended thinking/reasoning that counts against the token limit. Setting maxResponseTokens to 256 or 512 will cause truncated or failed responses. Either omit it entirely (let the model's default handle it) or set it high (e.g. 16000+). Models stop generating on their own when the response is complete \u2014 a low cap does not save money, it just breaks output.
|
|
4808
4817
|
|
|
4809
4818
|
## Explicit preferences
|
|
4810
4819
|
MindStudio has hundreds of models. Many of them are for niche use cases. In general, prefer to recommend the following models unless the user specifies otherwise.
|
|
@@ -5114,7 +5123,7 @@ async function startMcpServer(options) {
|
|
|
5114
5123
|
capabilities: { tools: {} },
|
|
5115
5124
|
serverInfo: {
|
|
5116
5125
|
name: "mindstudio-agent",
|
|
5117
|
-
version: "0.1.
|
|
5126
|
+
version: "0.1.39"
|
|
5118
5127
|
},
|
|
5119
5128
|
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
5129
|
});
|
|
@@ -6071,7 +6080,7 @@ function isNewerVersion(current, latest) {
|
|
|
6071
6080
|
return false;
|
|
6072
6081
|
}
|
|
6073
6082
|
async function checkForUpdate() {
|
|
6074
|
-
const currentVersion = "0.1.
|
|
6083
|
+
const currentVersion = "0.1.39";
|
|
6075
6084
|
if (!currentVersion) return null;
|
|
6076
6085
|
try {
|
|
6077
6086
|
const { loadConfig: loadConfig2, saveConfig: saveConfig2 } = await Promise.resolve().then(() => (init_config(), config_exports));
|
|
@@ -6100,7 +6109,7 @@ async function checkForUpdate() {
|
|
|
6100
6109
|
}
|
|
6101
6110
|
}
|
|
6102
6111
|
function printUpdateNotice(latestVersion) {
|
|
6103
|
-
const currentVersion = "0.1.
|
|
6112
|
+
const currentVersion = "0.1.39";
|
|
6104
6113
|
process.stderr.write(
|
|
6105
6114
|
`
|
|
6106
6115
|
${ansi2.cyanBright("Update available")} ${ansi2.gray(currentVersion + " \u2192")} ${ansi2.cyanBold(latestVersion)}
|
|
@@ -6113,7 +6122,7 @@ function isStandaloneBinary() {
|
|
|
6113
6122
|
return !argv1.includes("node_modules");
|
|
6114
6123
|
}
|
|
6115
6124
|
async function cmdUpdate() {
|
|
6116
|
-
const currentVersion = "0.1.
|
|
6125
|
+
const currentVersion = "0.1.39";
|
|
6117
6126
|
process.stderr.write(
|
|
6118
6127
|
` ${ansi2.gray("Current version:")} ${currentVersion}
|
|
6119
6128
|
`
|
|
@@ -6248,7 +6257,7 @@ async function cmdLogin(options) {
|
|
|
6248
6257
|
process.stderr.write("\n");
|
|
6249
6258
|
printLogo();
|
|
6250
6259
|
process.stderr.write("\n");
|
|
6251
|
-
const ver = "0.1.
|
|
6260
|
+
const ver = "0.1.39";
|
|
6252
6261
|
process.stderr.write(
|
|
6253
6262
|
` ${ansi2.bold("MindStudio Agent")} ${ver ? " " + ansi2.gray("v" + ver) : ""}
|
|
6254
6263
|
`
|
|
@@ -6575,7 +6584,7 @@ async function main() {
|
|
|
6575
6584
|
try {
|
|
6576
6585
|
if (command === "version" || command === "-v") {
|
|
6577
6586
|
process.stdout.write(
|
|
6578
|
-
"0.1.
|
|
6587
|
+
"0.1.39\n"
|
|
6579
6588
|
);
|
|
6580
6589
|
return;
|
|
6581
6590
|
}
|
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
|
}
|