@agentvault/agentvault 0.19.1 → 0.19.3

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.
@@ -36,9 +36,10 @@ export interface McpServerOpts {
36
36
  apiKey?: string;
37
37
  /**
38
38
  * Called when an MCP client invokes a registered skill tool.
39
+ * Receives skill name, args, and the full skill definition (including instructions).
39
40
  * Return value is serialised as JSON and sent back as tool output.
40
41
  */
41
- onInvoke?: (skillName: string, args: Record<string, unknown>) => Promise<unknown>;
42
+ onInvoke?: (skillName: string, args: Record<string, unknown>, skill: SkillDefinition) => Promise<unknown>;
42
43
  }
43
44
  export declare class AgentVaultMcpServer {
44
45
  private server;
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAMjE,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yEAAyE;IACzE,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,gEAAgE;IAChE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mEAAmE;IACnE,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,+BAA+B;IAC/B,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAIhB,4DAA4D;IAC5D,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,2DAA2D;IAC3D,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,+CAA+C;IAC/C,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,wEAAwE;IACxE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,yCAAyC;IACzC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,wCAAwC;IACxC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,8EAA8E;IAC9E,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,+DAA+D;IAC/D,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACnF;AAMD,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,MAAM,CAA2C;IACzD,OAAO,CAAC,IAAI,CAAgB;IAC5B,OAAO,CAAC,WAAW,CAAS;gBAEhB,IAAI,EAAE,aAAa;IAU/B;;;OAGG;IACH,aAAa,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI;IAI3C;;;OAGG;IACH,UAAU,IAAI,IAAI;IA2DlB;;;;;;;;;;;;;OAaG;IACG,aAAa,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IA4C7E;;;;;;;OAOG;IACH,OAAO,CAAC,oBAAoB;IA6B5B;;OAEG;YACW,WAAW;IAwBzB,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,IAAI,aAAa,IAAI,OAAO,CAE3B;CACF"}
1
+ {"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAMjE,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yEAAyE;IACzE,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,gEAAgE;IAChE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mEAAmE;IACnE,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,+BAA+B;IAC/B,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAIhB,4DAA4D;IAC5D,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,2DAA2D;IAC3D,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,+CAA+C;IAC/C,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,wEAAwE;IACxE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,yCAAyC;IACzC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,wCAAwC;IACxC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,8EAA8E;IAC9E,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,+DAA+D;IAC/D,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,eAAe,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC3G;AAMD,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,MAAM,CAA2C;IACzD,OAAO,CAAC,IAAI,CAAgB;IAC5B,OAAO,CAAC,WAAW,CAAS;gBAEhB,IAAI,EAAE,aAAa;IAU/B;;;OAGG;IACH,aAAa,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI;IAI3C;;;OAGG;IACH,UAAU,IAAI,IAAI;IA2DlB;;;;;;;;;;;;;OAaG;IACG,aAAa,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IA4C7E;;;;;;;OAOG;IACH,OAAO,CAAC,oBAAoB;IA6B5B;;OAEG;YACW,WAAW;IAwBzB,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,IAAI,aAAa,IAAI,OAAO,CAE3B;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"openclaw-entry.d.ts","sourceRoot":"","sources":["../src/openclaw-entry.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAWH,OAAO,KAAK,EACV,iBAAiB,EASlB,MAAM,qBAAqB,CAAC;AAsD7B,gFAAgF;AAChF,eAAO,IAAI,oBAAoB,SAAQ,CAAC;AA+CxC,uEAAuE;AACvE,iBAAS,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAS9C;AAED,qFAAqF;AACrF,iBAAS,yBAAyB,CAChC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,OAAO,CAcT;AAED,sFAAsF;AACtF,iBAAS,cAAc,CACrB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,MAAM,CAiBR;AA+8BD,OAAO,EAAE,cAAc,EAAE,yBAAyB,EAAE,cAAc,EAAE,CAAC;;;;;kBAQrD,iBAAiB;;AAJjC,wBA2SE"}
1
+ {"version":3,"file":"openclaw-entry.d.ts","sourceRoot":"","sources":["../src/openclaw-entry.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAWH,OAAO,KAAK,EACV,iBAAiB,EASlB,MAAM,qBAAqB,CAAC;AAsD7B,gFAAgF;AAChF,eAAO,IAAI,oBAAoB,SAAQ,CAAC;AA+CxC,uEAAuE;AACvE,iBAAS,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAS9C;AAED,qFAAqF;AACrF,iBAAS,yBAAyB,CAChC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,OAAO,CAcT;AAED,sFAAsF;AACtF,iBAAS,cAAc,CACrB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,MAAM,CAiBR;AAk/BD,OAAO,EAAE,cAAc,EAAE,yBAAyB,EAAE,cAAc,EAAE,CAAC;;;;;kBAQrD,iBAAiB;;AAJjC,wBA2SE"}
@@ -434,7 +434,7 @@ var init_mcp_server = __esm({
434
434
  };
435
435
  }
436
436
  try {
437
- const result = await this.opts.onInvoke(name, args);
437
+ const result = await this.opts.onInvoke(name, args, skill);
438
438
  const text = typeof result === "string" ? result : JSON.stringify(result, null, 2);
439
439
  return {
440
440
  content: [{ type: "text", text }]
@@ -46127,13 +46127,29 @@ async function handleInbound(params) {
46127
46127
  storePath,
46128
46128
  sessionKey: route.sessionKey
46129
46129
  });
46130
+ let contextBody = plaintext;
46131
+ if (isRoomMessage && metadata.roomId && channel.getRoomHistory) {
46132
+ const recentHistory = channel.getRoomHistory(metadata.roomId, 20);
46133
+ const prior = recentHistory.slice(0, -1);
46134
+ if (prior.length > 0) {
46135
+ const historyBlock = prior.map((h2) => {
46136
+ const role = h2.sender === "agent" ? "You" : "Room Member";
46137
+ return `[${role}]: ${h2.text}`;
46138
+ }).join("\n");
46139
+ contextBody = `[Recent room conversation]
46140
+ ${historyBlock}
46141
+
46142
+ [Current message]
46143
+ ${plaintext}`;
46144
+ }
46145
+ }
46130
46146
  const body = core.channel.reply.formatAgentEnvelope({
46131
46147
  channel: "AgentVault",
46132
46148
  from: isA2AMessage ? `Agent (${metadata.fromHubAddress})` : isRoomMessage ? senderDisplayName ?? "Room Member" : "Owner",
46133
46149
  timestamp: new Date(metadata.timestamp).getTime(),
46134
46150
  previousTimestamp,
46135
46151
  envelope: envelopeOptions,
46136
- body: plaintext
46152
+ body: contextBody
46137
46153
  });
46138
46154
  const attachmentFields = {};
46139
46155
  if (metadata.attachment) {
@@ -46200,6 +46216,9 @@ async function handleInbound(params) {
46200
46216
  const text = (payload.text ?? "").trim();
46201
46217
  if (!text) return;
46202
46218
  if (/^(Reasoning|Thinking|Let me think|I need to|Let me check):/i.test(text)) return;
46219
+ if (/^<think[\s>]/i.test(text) || /^think$/im.test(text)) return;
46220
+ if (/^\[\[[\w_]+\]\]/.test(text)) return;
46221
+ if (/^<think>[\s\S]*<\/think>$/i.test(text)) return;
46203
46222
  const replyStart = Date.now();
46204
46223
  replyCount++;
46205
46224
  totalReplyChars += text.length;
@@ -46561,12 +46580,16 @@ var agentVaultPlugin = {
46561
46580
  const mcpServer = new AgentVaultMcpServer2({
46562
46581
  agentName: account.agentName ?? "agent",
46563
46582
  apiUrl: account.apiUrl ?? "https://api.agentvault.chat",
46564
- onInvoke: async (skillName, args) => {
46583
+ onInvoke: async (skillName, args, skill) => {
46565
46584
  const apiUrl = account.apiUrl ?? "https://api.agentvault.chat";
46566
46585
  const jwt = channel._deviceJwt;
46567
46586
  if (!jwt) {
46568
46587
  return { error: "Not connected \u2014 device JWT unavailable" };
46569
46588
  }
46589
+ const instructions = skill?.instructions;
46590
+ if (!instructions) {
46591
+ return { error: `Skill "${skillName}" has no instructions defined` };
46592
+ }
46570
46593
  try {
46571
46594
  const resp = await fetch(`${apiUrl}/api/v1/capabilities/owner-execute`, {
46572
46595
  method: "POST",
@@ -46577,7 +46600,13 @@ var agentVaultPlugin = {
46577
46600
  body: JSON.stringify({
46578
46601
  jsonrpc: "2.0",
46579
46602
  method: "tools/call",
46580
- params: { name: skillName, arguments: args },
46603
+ params: {
46604
+ name: skillName,
46605
+ arguments: args,
46606
+ // Pass instructions from local SKILL.md so backend doesn't need DB lookup
46607
+ _instructions: instructions,
46608
+ _schema: skill?.schema
46609
+ },
46581
46610
  id: `invoke-${Date.now()}`
46582
46611
  })
46583
46612
  });