@mastra/editor 0.14.2-alpha.0 → 0.14.2
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/CHANGELOG.md +65 -0
- package/dist/index.cjs +49 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +16 -0
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +49 -1
- package/dist/index.js.map +1 -1
- package/package.json +9 -9
package/dist/index.d.cts
CHANGED
|
@@ -159,6 +159,22 @@ declare class EditorAgentNamespace extends CrudEditorNamespace<StorageCreateAgen
|
|
|
159
159
|
private accumulateObjectVariants;
|
|
160
160
|
private createAgentFromStoredConfig;
|
|
161
161
|
private resolveStoredInstructions;
|
|
162
|
+
/**
|
|
163
|
+
* Wrap stored instruction text in the code-defined agent's message envelope.
|
|
164
|
+
*
|
|
165
|
+
* Stored overrides can only carry plain text (`string | AgentInstructionBlock[]`),
|
|
166
|
+
* but code-defined instructions may be structured system messages carrying
|
|
167
|
+
* `providerOptions` (e.g. `anthropic.cacheControl` prompt-cache breakpoints).
|
|
168
|
+
* Studio owns the wording; code keeps the envelope, so publishing an edit
|
|
169
|
+
* can't silently drop provider options.
|
|
170
|
+
*
|
|
171
|
+
* When the code instructions are plain text (or absent, e.g. editor-owned
|
|
172
|
+
* agents), the stored value is returned unchanged. When code instructions are
|
|
173
|
+
* an array of messages, the last message's envelope is kept: an Anthropic
|
|
174
|
+
* cache breakpoint on the last system block covers everything before it, so
|
|
175
|
+
* it is the one worth preserving when Studio flattens the array into one text.
|
|
176
|
+
*/
|
|
177
|
+
private mergeInstructionEnvelope;
|
|
162
178
|
private applyStoredToolDescriptions;
|
|
163
179
|
/**
|
|
164
180
|
* Resolve stored tool IDs to actual tool instances from Mastra's registry.
|
package/dist/index.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.cts","names":[],"sources":["../src/namespaces/base.ts","../src/namespaces/agent.ts","../src/namespaces/mcp.ts","../src/namespaces/mcp-server.ts","../src/namespaces/prompt.ts","../src/namespaces/scorer.ts","../src/namespaces/workspace.ts","../src/namespaces/skill.ts","../src/namespaces/favorites.ts","../src/template-engine.ts","../src/rule-evaluator.ts","../src/instruction-builder.ts","../src/providers.ts","../src/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;UAYiB,eACf;EAAuB;GACvB;EAAuB;GACvB,YACA,aACA,qBACA;EAEA,OAAO,OAAO,eAAe;EAC7B,gBAAgB,YAAY,UAAU,iBAAiB,QAAQ;EAC/D,OAAO,OAAO,eAAe;EAC7B,OAAO,aAAa;EACpB,KAAK,OAAO,aAAa,QAAQ;EACjC,aAAa,OAAO,aAAa,QAAQ;;;;;;uBAOrB;YACE,QAAQ;EAAR,YAAA,QAAQ;gBAEhB,UAAU;gBAIV,UAAU;YAId;;;;;;;;;;;;;;;;;uBAsBU,oBACpB;EAAuB;GACvB;EAAuB;GACvB,YACA,aACA,qBACA,WACA,YAAY,mBACJ;YACE,QAAM,YAAA;;;;;qBAMG,qBAAqB,QACtC,eAAe,cAAc,cAAc,YAAY,aAAa,qBAAqB;;;;;;YAQ3E,QAAQ,UAAU,YAAY,QAAQ;;;;;YAQ5C,aAAa;EAIjB,OAAO,OAAO,eAAe,QAAQ;EAarC,QAAQ,YAAY,UAAU,iBAAiB,QAAQ;EA+BvD,OAAO,OAAO,eAAe,QAAQ;EAerC,OAAO,aAAa;EAQpB,KAAK,OAAO,aAAa,QAAQ;EAMjC,aAAa,OAAO,aAAa,QAAQ;;;;;EAU/C,WAAW;;;;cCLA,6BAA6B,oBACxC,yBACA,yBACA,wBACA,yBACA,iCACA,0BACA;YAEgB,qBAAqB,QACnC,eACE,yBACA,yBACA,wBACA,yBACA,iCACA;;;;YAiDY,QAAQ,aAAa,2BAA2B,QAAQ;EAIzD,OAAO,OAAO,0BAA0B,QAAQ;;;;;EA2DzD,OAAO,OAAO,0BAA0B,QAAQ;UA4B9C;UAUM;;;;;;;;;;UAwBA;YAsDK,aAAa;;;;;;EAmBhC,iCAAiC;;;;;;;;;;;;;;EAyC3B,qBACJ,OAAO,OACP;IAAY;;IAAqC;KACjD,iBAAiB,iBAChB,QAAQ;;;;;UAoOH;;;;;;UAeA;;;;;;;UAmBA;UAaM;UA2XN;
|
|
1
|
+
{"version":3,"file":"index.d.cts","names":[],"sources":["../src/namespaces/base.ts","../src/namespaces/agent.ts","../src/namespaces/mcp.ts","../src/namespaces/mcp-server.ts","../src/namespaces/prompt.ts","../src/namespaces/scorer.ts","../src/namespaces/workspace.ts","../src/namespaces/skill.ts","../src/namespaces/favorites.ts","../src/template-engine.ts","../src/rule-evaluator.ts","../src/instruction-builder.ts","../src/providers.ts","../src/index.ts"],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -159,6 +159,22 @@ declare class EditorAgentNamespace extends CrudEditorNamespace<StorageCreateAgen
|
|
|
159
159
|
private accumulateObjectVariants;
|
|
160
160
|
private createAgentFromStoredConfig;
|
|
161
161
|
private resolveStoredInstructions;
|
|
162
|
+
/**
|
|
163
|
+
* Wrap stored instruction text in the code-defined agent's message envelope.
|
|
164
|
+
*
|
|
165
|
+
* Stored overrides can only carry plain text (`string | AgentInstructionBlock[]`),
|
|
166
|
+
* but code-defined instructions may be structured system messages carrying
|
|
167
|
+
* `providerOptions` (e.g. `anthropic.cacheControl` prompt-cache breakpoints).
|
|
168
|
+
* Studio owns the wording; code keeps the envelope, so publishing an edit
|
|
169
|
+
* can't silently drop provider options.
|
|
170
|
+
*
|
|
171
|
+
* When the code instructions are plain text (or absent, e.g. editor-owned
|
|
172
|
+
* agents), the stored value is returned unchanged. When code instructions are
|
|
173
|
+
* an array of messages, the last message's envelope is kept: an Anthropic
|
|
174
|
+
* cache breakpoint on the last system block covers everything before it, so
|
|
175
|
+
* it is the one worth preserving when Studio flattens the array into one text.
|
|
176
|
+
*/
|
|
177
|
+
private mergeInstructionEnvelope;
|
|
162
178
|
private applyStoredToolDescriptions;
|
|
163
179
|
/**
|
|
164
180
|
* Resolve stored tool IDs to actual tool instances from Mastra's registry.
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/namespaces/base.ts","../src/namespaces/agent.ts","../src/namespaces/mcp.ts","../src/namespaces/mcp-server.ts","../src/namespaces/prompt.ts","../src/namespaces/scorer.ts","../src/namespaces/workspace.ts","../src/namespaces/skill.ts","../src/namespaces/favorites.ts","../src/template-engine.ts","../src/rule-evaluator.ts","../src/instruction-builder.ts","../src/providers.ts","../src/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;UAYiB,eACf;EAAuB;GACvB;EAAuB;GACvB,YACA,aACA,qBACA;EAEA,OAAO,OAAO,eAAe;EAC7B,gBAAgB,YAAY,UAAU,iBAAiB,QAAQ;EAC/D,OAAO,OAAO,eAAe;EAC7B,OAAO,aAAa;EACpB,KAAK,OAAO,aAAa,QAAQ;EACjC,aAAa,OAAO,aAAa,QAAQ;;;;;;uBAOrB;YACE,QAAQ;EAAR,YAAA,QAAQ;gBAEhB,UAAU;gBAIV,UAAU;YAId;;;;;;;;;;;;;;;;;uBAsBU,oBACpB;EAAuB;GACvB;EAAuB;GACvB,YACA,aACA,qBACA,WACA,YAAY,mBACJ;YACE,QAAM,YAAA;;;;;qBAMG,qBAAqB,QACtC,eAAe,cAAc,cAAc,YAAY,aAAa,qBAAqB;;;;;;YAQ3E,QAAQ,UAAU,YAAY,QAAQ;;;;;YAQ5C,aAAa;EAIjB,OAAO,OAAO,eAAe,QAAQ;EAarC,QAAQ,YAAY,UAAU,iBAAiB,QAAQ;EA+BvD,OAAO,OAAO,eAAe,QAAQ;EAerC,OAAO,aAAa;EAQpB,KAAK,OAAO,aAAa,QAAQ;EAMjC,aAAa,OAAO,aAAa,QAAQ;;;;;EAU/C,WAAW;;;;cCLA,6BAA6B,oBACxC,yBACA,yBACA,wBACA,yBACA,iCACA,0BACA;YAEgB,qBAAqB,QACnC,eACE,yBACA,yBACA,wBACA,yBACA,iCACA;;;;YAiDY,QAAQ,aAAa,2BAA2B,QAAQ;EAIzD,OAAO,OAAO,0BAA0B,QAAQ;;;;;EA2DzD,OAAO,OAAO,0BAA0B,QAAQ;UA4B9C;UAUM;;;;;;;;;;UAwBA;YAsDK,aAAa;;;;;;EAmBhC,iCAAiC;;;;;;;;;;;;;;EAyC3B,qBACJ,OAAO,OACP;IAAY;;IAAqC;KACjD,iBAAiB,iBAChB,QAAQ;;;;;UAoOH;;;;;;UAeA;;;;;;;UAmBA;UAaM;UA2XN;
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/namespaces/base.ts","../src/namespaces/agent.ts","../src/namespaces/mcp.ts","../src/namespaces/mcp-server.ts","../src/namespaces/prompt.ts","../src/namespaces/scorer.ts","../src/namespaces/workspace.ts","../src/namespaces/skill.ts","../src/namespaces/favorites.ts","../src/template-engine.ts","../src/rule-evaluator.ts","../src/instruction-builder.ts","../src/providers.ts","../src/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;UAYiB,eACf;EAAuB;GACvB;EAAuB;GACvB,YACA,aACA,qBACA;EAEA,OAAO,OAAO,eAAe;EAC7B,gBAAgB,YAAY,UAAU,iBAAiB,QAAQ;EAC/D,OAAO,OAAO,eAAe;EAC7B,OAAO,aAAa;EACpB,KAAK,OAAO,aAAa,QAAQ;EACjC,aAAa,OAAO,aAAa,QAAQ;;;;;;uBAOrB;YACE,QAAQ;EAAR,YAAA,QAAQ;gBAEhB,UAAU;gBAIV,UAAU;YAId;;;;;;;;;;;;;;;;;uBAsBU,oBACpB;EAAuB;GACvB;EAAuB;GACvB,YACA,aACA,qBACA,WACA,YAAY,mBACJ;YACE,QAAM,YAAA;;;;;qBAMG,qBAAqB,QACtC,eAAe,cAAc,cAAc,YAAY,aAAa,qBAAqB;;;;;;YAQ3E,QAAQ,UAAU,YAAY,QAAQ;;;;;YAQ5C,aAAa;EAIjB,OAAO,OAAO,eAAe,QAAQ;EAarC,QAAQ,YAAY,UAAU,iBAAiB,QAAQ;EA+BvD,OAAO,OAAO,eAAe,QAAQ;EAerC,OAAO,aAAa;EAQpB,KAAK,OAAO,aAAa,QAAQ;EAMjC,aAAa,OAAO,aAAa,QAAQ;;;;;EAU/C,WAAW;;;;cCLA,6BAA6B,oBACxC,yBACA,yBACA,wBACA,yBACA,iCACA,0BACA;YAEgB,qBAAqB,QACnC,eACE,yBACA,yBACA,wBACA,yBACA,iCACA;;;;YAiDY,QAAQ,aAAa,2BAA2B,QAAQ;EAIzD,OAAO,OAAO,0BAA0B,QAAQ;;;;;EA2DzD,OAAO,OAAO,0BAA0B,QAAQ;UA4B9C;UAUM;;;;;;;;;;UAwBA;YAsDK,aAAa;;;;;;EAmBhC,iCAAiC;;;;;;;;;;;;;;EAyC3B,qBACJ,OAAO,OACP;IAAY;;IAAqC;KACjD,iBAAiB,iBAChB,QAAQ;;;;;UAoOH;;;;;;UAeA;;;;;;;UAmBA;UAaM;UA2XN;;;;;;;;;;;;;;;;UAmCA;UA8DA;;;;;UAyBA;;;;;;;;;;;;UAiDM;;;;;;;;;;;UAsHA;UA2DN;UA+BA;UA6BA;UAkEM;;;;;EAoDR,MACJ,OAAO,OACP;IACE;IACA;IACA,WAAW;IACX;IACA;IACA,iBAAiB;MAElB,QAAQ;;;;;;;;;;UA6IG;;;;;;UA2DA;;;;;;;;;;;;UA8BA;;;;cCt2DH,2BAA2B,oBACtC,6BACA,6BACA,4BACA,6BACA,qCACA;YAEmB,aAAa;YAIhB,qBAAqB,QACnC,eACE,6BACA,6BACA,4BACA,6BACA,qCACA;;;;;;SA6CG,sBACL,cAAc,wBACd;IAAgB,SAAS;MACxB;;;;SAqBI,mBACL,QAAQ,8BACR;IAAgB,SAAS;;IAEzB;IACA,SAAS,eAAe;;;;;cCzFf,iCAAiC,oBAC5C,6BACA,6BACA,4BACA,6BACA,qCACA,8BACA;UAEQ;YAEW,aAAa;YAKP,QAAQ,UAAU,+BAA+B,QAAQ;UAwC1E;UAsBA;UAmBA;YAqBQ,qBAAqB,QACnC,eACE,6BACA,6BACA,4BACA,6BACA,qCACA;;;;cCIO,8BAA8B,oBACzC,+BACA,+BACA,8BACA,+BACA,uCACA;YAEmB,aAAa;YAIhB,qBAAqB,QACnC,eACE,+BACA,+BACA,8BACA,+BACA,uCACA;EAwCW,OAAO,OAAO,gCAAgC,QAAQ;EAiC/D,QAAQ,QAAQ,yBAAyB,SAAS,0BAA0B;;;;cChOvE,8BAA8B,oBACzC,oCACA,oCACA,mCACA,oCACA,4CACA;YAEmB,aAAa;;;;;;YASP,QACvB,cAAc,sCACb,QAAQ;YAQK,qBAAqB,QACnC,eACE,oCACA,oCACA,mCACA,oCACA,4CACA;;;;;;;EAkDJ,QAAQ,cAAc,sCAAsC;;;;cChFjD,iCAAiC,oBAC5C,6BACA,6BACA,4BACA,6BACA,qCACA,8BACA;YAEmB,aAAa;;;;;;;;EAY1B,2BACJ,YACA,UAAU,8BACV;IAAY,cAAc;MACzB,QACD,UACE,iCACA,8BACA,eAAe;;;;;;EAuGb,sBAAsB,WAAW,YAAY,QAAQ;;;;;UAkD7C;;;;;UAcA;;;;;UAgBA;;;;;EAeR,yBACJ,oBACA,QAAQ,0BACP,QAAQ;YAWK,qBAAqB,QACnC,eACE,6BACA,6BACA,4BACA,6BACA,qCACA;;;;cC5PO,6BAA6B,oBACxC,yBACA,yBACA,wBACA,yBACA,iCACA;YAEmB,aAAa;YAIhB,qBAAqB,QACnC,eACE,yBACA,yBACA,wBACA,yBACA,iCACA;;;;;;EA6CE,QAAQ,iBAAiB,QAAQ,aAAa,oBAAoB,QAAQ;;;;;;;;;;;;cC5DrE,iCAAiC,2BAA2B;EACjE,SAAS,OAAO,4BAA4B,QAAQ;EAUpD,WAAW,OAAO,4BAA4B,QAAQ;EAUtD,YAAY,OAAO,4BAA4B;EAU/C,iBAAiB,OAAO,8BAA8B,QAAQ;EAW9D,iBAAiB,OAAO,8BAA8B;UAM9C;;;;;;;;;;;;;;;;;;;;;iBCjBA,eAAe,kBAAkB,SAAS;;;;;;;;;;iBCiD1C,kBAAkB,WAAW,WAAW,SAAS;;;UChFhD;EACf,qBAAqB;;EAErB;;;;;;;;;;iBAWoB,yBACpB,QAAQ,yBACR,SAAS,yBACT,MAAM,yBACL;;;cC3BU,yBAAyB;EACpC;EACA;EACA;;cAyBW,sBAAsB;EACjC;EACA;EACA;EACA,MAAM;;;;cCiBK,wBAAwB;;EAEnC,WAAW;;EAEX,WAAW;UAEH;UACA;UACA;UACA;UACA;mBACS;UACT;UACA;;;;;;WAOC,eAAe,YAAY;;;;;;WAO3B,aAAa,YAAY;;;;;;;WAQzB,cAAc,YAAY;;;;;;WAO1B,YAAY,YAAY;;;;;;WAOxB,cAAc,YAAY;WAEnB,OAAO;WACP,KAAK;WACL,WAAW;WACX,QAAQ;WACR,QAAQ;WACR,WAAW;WACX,OAAO;WACP,WAAW;EAEf,YAAA,SAAS;;;;;EA2DrB,mBAAmB,QAAQ;;;;;;;;;;;;UAkEb;;;;;;;;UAoDA;;;;;EAgDd;;;;;EASM,kBAAkB,QAAQ;;;;;;;UA6ClB;;EAuBd;;EAKA,4BAA4B;;EAK5B,gBAAgB,aAAa;;;;;EAQ7B,uBAAuB,aAAa;;EASpC,oBAAoB,eAAe;;EAKnC,qBAAqB,aAAa;;EAKlC,yBAAyB,eAAe;;EAIxC,0BAA0B;;EAK1B,uBAAuB;;EAKvB,yBAAyB;;;;;;;;;;;EAcnB,iBAAiB,qBAAqB,iBAAiB,0BAA0B,QAAQ"}
|
package/dist/index.js
CHANGED
|
@@ -904,7 +904,7 @@ var EditorAgentNamespace = class extends CrudEditorNamespace {
|
|
|
904
904
|
this.logger?.debug(`[applyStoredOverrides] Applying stored overrides to code agent "${agent.id}"`);
|
|
905
905
|
if (instructionsEditable && storedConfig.instructions !== void 0 && storedConfig.instructions !== null) {
|
|
906
906
|
const resolved = this.resolveStoredInstructions(storedConfig.instructions);
|
|
907
|
-
if (resolved !== void 0) fork.__updateInstructions(resolved);
|
|
907
|
+
if (resolved !== void 0) fork.__updateInstructions(this.mergeInstructionEnvelope(agent, resolved));
|
|
908
908
|
}
|
|
909
909
|
const hasStoredTools = storedConfig.tools != null;
|
|
910
910
|
const hasStoredMCPClients = storedConfig.mcpClients != null;
|
|
@@ -1191,6 +1191,54 @@ var EditorAgentNamespace = class extends CrudEditorNamespace {
|
|
|
1191
1191
|
return resolveInstructionBlocks(blocks, context, { promptBlocksStorage: promptBlocksStore });
|
|
1192
1192
|
};
|
|
1193
1193
|
}
|
|
1194
|
+
/**
|
|
1195
|
+
* Wrap stored instruction text in the code-defined agent's message envelope.
|
|
1196
|
+
*
|
|
1197
|
+
* Stored overrides can only carry plain text (`string | AgentInstructionBlock[]`),
|
|
1198
|
+
* but code-defined instructions may be structured system messages carrying
|
|
1199
|
+
* `providerOptions` (e.g. `anthropic.cacheControl` prompt-cache breakpoints).
|
|
1200
|
+
* Studio owns the wording; code keeps the envelope, so publishing an edit
|
|
1201
|
+
* can't silently drop provider options.
|
|
1202
|
+
*
|
|
1203
|
+
* When the code instructions are plain text (or absent, e.g. editor-owned
|
|
1204
|
+
* agents), the stored value is returned unchanged. When code instructions are
|
|
1205
|
+
* an array of messages, the last message's envelope is kept: an Anthropic
|
|
1206
|
+
* cache breakpoint on the last system block covers everything before it, so
|
|
1207
|
+
* it is the one worth preserving when Studio flattens the array into one text.
|
|
1208
|
+
*/
|
|
1209
|
+
mergeInstructionEnvelope(agent, stored) {
|
|
1210
|
+
const raw = agent.__getOverridableFields?.()?.instructions;
|
|
1211
|
+
const pickEnvelope = (value) => {
|
|
1212
|
+
const candidate = Array.isArray(value) ? value[value.length - 1] : value;
|
|
1213
|
+
return typeof candidate === "object" && candidate !== null && "content" in candidate ? candidate : void 0;
|
|
1214
|
+
};
|
|
1215
|
+
const wrap = (envelope, text) => ({
|
|
1216
|
+
...envelope,
|
|
1217
|
+
content: text
|
|
1218
|
+
});
|
|
1219
|
+
if (raw == null || typeof raw === "string" || Array.isArray(raw) && raw.every((entry) => typeof entry === "string")) return stored;
|
|
1220
|
+
if (typeof raw !== "function") {
|
|
1221
|
+
const envelope = pickEnvelope(raw);
|
|
1222
|
+
if (!envelope) return stored;
|
|
1223
|
+
if (typeof stored === "string") return wrap(envelope, stored);
|
|
1224
|
+
return async (args) => wrap(envelope, await stored(args));
|
|
1225
|
+
}
|
|
1226
|
+
const getOriginal = agent.getInstructions.bind(agent);
|
|
1227
|
+
return async ({ requestContext, mastra }) => {
|
|
1228
|
+
const text = typeof stored === "string" ? stored : await stored({
|
|
1229
|
+
requestContext,
|
|
1230
|
+
mastra
|
|
1231
|
+
});
|
|
1232
|
+
let original;
|
|
1233
|
+
try {
|
|
1234
|
+
original = await getOriginal({ requestContext });
|
|
1235
|
+
} catch {
|
|
1236
|
+
return text;
|
|
1237
|
+
}
|
|
1238
|
+
const envelope = pickEnvelope(original);
|
|
1239
|
+
return envelope ? wrap(envelope, text) : text;
|
|
1240
|
+
};
|
|
1241
|
+
}
|
|
1194
1242
|
applyStoredToolDescriptions(codeTools, storedTools) {
|
|
1195
1243
|
if (!storedTools || Array.isArray(storedTools)) return codeTools;
|
|
1196
1244
|
let nextTools;
|