@femtomc/mu-agent 26.2.33 → 26.2.35
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/meta_agent.d.ts +1 -1
- package/dist/meta_agent.d.ts.map +1 -1
- package/dist/meta_agent.js +88 -125
- package/dist/pi_sdk_backend.d.ts +9 -1
- package/dist/pi_sdk_backend.d.ts.map +1 -1
- package/dist/pi_sdk_backend.js +1 -1
- package/package.json +2 -2
package/dist/meta_agent.d.ts
CHANGED
|
@@ -136,8 +136,8 @@ export type PiMessagingMetaAgentBackendOpts = {
|
|
|
136
136
|
thinking?: string;
|
|
137
137
|
systemPrompt?: string;
|
|
138
138
|
timeoutMs?: number;
|
|
139
|
-
piBinary?: string;
|
|
140
139
|
};
|
|
140
|
+
export declare const DEFAULT_CHAT_SYSTEM_PROMPT: string;
|
|
141
141
|
export declare class PiMessagingMetaAgentBackend implements MessagingMetaAgentBackend {
|
|
142
142
|
#private;
|
|
143
143
|
constructor(opts?: PiMessagingMetaAgentBackendOpts);
|
package/dist/meta_agent.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"meta_agent.d.ts","sourceRoot":"","sources":["../src/meta_agent.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"meta_agent.d.ts","sourceRoot":"","sources":["../src/meta_agent.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAG9D,MAAM,MAAM,4BAA4B,GAAG;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,uBAAuB,EAAE,MAAM,CAAC;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IAC1C,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,KAAK,eAAe,GAAG,4BAA4B,CAAC;AACpD,KAAK,eAAe,GAAG,4BAA4B,CAAC;AAIpD,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;2BAoBpC,CAAC;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAG3C,CAAC;AACH,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAC;AAE1F,MAAM,MAAM,yBAAyB,GAAG;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,eAAe,CAAC;IACzB,OAAO,EAAE,eAAe,CAAC;CACzB,CAAC;AAEF,MAAM,WAAW,yBAAyB;IACzC,OAAO,CAAC,KAAK,EAAE,yBAAyB,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAC;CAC/E;AAED,MAAM,MAAM,iBAAiB,GAC1B;IACA,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CAClB,GACD;IACA,IAAI,EAAE,SAAS,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CAClB,GACD;IACA,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EACH,qBAAqB,GACrB,8BAA8B,GAC9B,2BAA2B,GAC3B,iBAAiB,GACjB,mBAAmB,GACnB,sBAAsB,GACtB,uBAAuB,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CAClB,CAAC;AAEL,MAAM,MAAM,yBAAyB,GAAG;IACvC,eAAe,CAAC,EAAE,sBAAsB,CAAC;IACzC,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC7B,CAAC;AAaF,qBAAa,qBAAqB;;gBAId,IAAI,GAAE,yBAA8B;IAKhD,OAAO,CAAC,IAAI,EAAE;QAAE,QAAQ,EAAE,mBAAmB,CAAC;QAAC,OAAO,EAAE,eAAe,CAAA;KAAE,GAC7E;QACA,IAAI,EAAE,UAAU,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;KACnB,GACD;QACA,IAAI,EAAE,QAAQ,CAAC;QACf,MAAM,EACH,8BAA8B,GAC9B,iBAAiB,GACjB,mBAAmB,GACnB,sBAAsB,GACtB,uBAAuB,CAAC;QAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;KAChB;CAgFJ;AAED,MAAM,MAAM,6BAA6B,GAAG;IAC3C,OAAO,EAAE,yBAAyB,CAAC;IACnC,MAAM,CAAC,EAAE,qBAAqB,CAAC;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,gBAAgB,CAAC,EAAE,MAAM,MAAM,CAAC;IAChC,aAAa,CAAC,EAAE,MAAM,MAAM,CAAC;CAC7B,CAAC;AAcF,qBAAa,yBAAyB;;gBASlB,IAAI,EAAE,6BAA6B;IAoBzC,aAAa,CAAC,IAAI,EAAE;QAChC,OAAO,EAAE,eAAe,CAAC;QACzB,OAAO,EAAE,eAAe,CAAC;KACzB,GAAG,OAAO,CAAC,iBAAiB,CAAC;CAiF9B;AAED,MAAM,MAAM,+BAA+B,GAAG;IAC7C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,eAAO,MAAM,0BAA0B,QAU3B,CAAC;AAgDb,qBAAa,2BAA4B,YAAW,yBAAyB;;gBAOzD,IAAI,GAAE,+BAAoC;IAQhD,OAAO,CAAC,KAAK,EAAE,yBAAyB,GAAG,OAAO,CAAC,0BAA0B,CAAC;CA6F3F"}
|
package/dist/meta_agent.js
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import { spawn } from "node:child_process";
|
|
2
1
|
import { randomUUID } from "node:crypto";
|
|
3
|
-
import { createInterface } from "node:readline";
|
|
4
2
|
import { z } from "zod";
|
|
5
3
|
import { CommandContextResolver } from "./command_context.js";
|
|
4
|
+
import { resolveModel } from "./pi_sdk_backend.js";
|
|
6
5
|
const SAFE_RESPONSE_RE = /^[\s\S]{1,2000}$/;
|
|
7
6
|
export const MetaApprovedCommandSchema = z.discriminatedUnion("kind", [
|
|
8
7
|
z.object({ kind: z.literal("status") }),
|
|
@@ -233,6 +232,17 @@ export class MessagingMetaAgentRuntime {
|
|
|
233
232
|
};
|
|
234
233
|
}
|
|
235
234
|
}
|
|
235
|
+
export const DEFAULT_CHAT_SYSTEM_PROMPT = [
|
|
236
|
+
"You are mu, an AI assistant for the mu orchestration platform.",
|
|
237
|
+
"Help users with:",
|
|
238
|
+
"- Understanding mu's architecture (issues, forum, orchestrator, control-plane)",
|
|
239
|
+
"- Setting up control-plane integrations (Slack, Discord, Telegram)",
|
|
240
|
+
"- Navigating issues and forum topics",
|
|
241
|
+
"- Running and monitoring orchestrator workflows",
|
|
242
|
+
"- General questions about the mu ecosystem",
|
|
243
|
+
"",
|
|
244
|
+
"Be concise, practical, and actionable.",
|
|
245
|
+
].join("\n");
|
|
236
246
|
const DEFAULT_META_SYSTEM_PROMPT = [
|
|
237
247
|
"You are mu's dedicated messaging meta-agent.",
|
|
238
248
|
"Your priorities:",
|
|
@@ -250,63 +260,15 @@ const DEFAULT_META_SYSTEM_PROMPT = [
|
|
|
250
260
|
"Use kind=command only when one allowed command will materially help answer the user.",
|
|
251
261
|
"Never output shell commands.",
|
|
252
262
|
].join("\n");
|
|
253
|
-
function extractAssistantTextFromJsonEvent(event) {
|
|
254
|
-
if (!event || typeof event !== "object") {
|
|
255
|
-
return null;
|
|
256
|
-
}
|
|
257
|
-
if (event.type !== "message_end") {
|
|
258
|
-
return null;
|
|
259
|
-
}
|
|
260
|
-
if (!event.message || typeof event.message !== "object") {
|
|
261
|
-
return null;
|
|
262
|
-
}
|
|
263
|
-
if (event.message.role !== "assistant") {
|
|
264
|
-
return null;
|
|
265
|
-
}
|
|
266
|
-
const message = event.message;
|
|
267
|
-
if (typeof message.text === "string" && message.text.trim().length > 0) {
|
|
268
|
-
return message.text;
|
|
269
|
-
}
|
|
270
|
-
if (typeof message.content === "string" && message.content.trim().length > 0) {
|
|
271
|
-
return message.content;
|
|
272
|
-
}
|
|
273
|
-
if (Array.isArray(message.content)) {
|
|
274
|
-
const parts = [];
|
|
275
|
-
for (const item of message.content) {
|
|
276
|
-
if (!item) {
|
|
277
|
-
continue;
|
|
278
|
-
}
|
|
279
|
-
if (typeof item === "string") {
|
|
280
|
-
if (item.trim().length > 0) {
|
|
281
|
-
parts.push(item);
|
|
282
|
-
}
|
|
283
|
-
continue;
|
|
284
|
-
}
|
|
285
|
-
if (typeof item === "object") {
|
|
286
|
-
const text = item.text;
|
|
287
|
-
if (typeof text === "string" && text.trim().length > 0) {
|
|
288
|
-
parts.push(text);
|
|
289
|
-
}
|
|
290
|
-
}
|
|
291
|
-
}
|
|
292
|
-
if (parts.length > 0) {
|
|
293
|
-
return parts.join("\n");
|
|
294
|
-
}
|
|
295
|
-
}
|
|
296
|
-
return null;
|
|
297
|
-
}
|
|
298
263
|
function extractFirstJsonObject(text) {
|
|
299
264
|
const trimmed = text.trim();
|
|
300
265
|
if (trimmed.startsWith("{") && trimmed.endsWith("}")) {
|
|
301
266
|
return trimmed;
|
|
302
267
|
}
|
|
303
268
|
const match = /\{[\s\S]*\}/.exec(trimmed);
|
|
304
|
-
|
|
305
|
-
return null;
|
|
306
|
-
}
|
|
307
|
-
return match[0] ?? null;
|
|
269
|
+
return match?.[0] ?? null;
|
|
308
270
|
}
|
|
309
|
-
function
|
|
271
|
+
function buildMetaPrompt(input) {
|
|
310
272
|
return [
|
|
311
273
|
`session_id: ${input.sessionId}`,
|
|
312
274
|
`turn_id: ${input.turnId}`,
|
|
@@ -330,95 +292,96 @@ export class PiMessagingMetaAgentBackend {
|
|
|
330
292
|
#thinking;
|
|
331
293
|
#systemPrompt;
|
|
332
294
|
#timeoutMs;
|
|
333
|
-
#piBinary;
|
|
334
295
|
constructor(opts = {}) {
|
|
335
296
|
this.#provider = opts.provider;
|
|
336
297
|
this.#model = opts.model;
|
|
337
298
|
this.#thinking = opts.thinking ?? "minimal";
|
|
338
299
|
this.#systemPrompt = opts.systemPrompt ?? DEFAULT_META_SYSTEM_PROMPT;
|
|
339
300
|
this.#timeoutMs = Math.max(1_000, Math.trunc(opts.timeoutMs ?? 90_000));
|
|
340
|
-
this.#piBinary = opts.piBinary ?? "pi";
|
|
341
301
|
}
|
|
342
302
|
async runTurn(input) {
|
|
343
|
-
const
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
this.#
|
|
350
|
-
"
|
|
351
|
-
this.#systemPrompt,
|
|
352
|
-
];
|
|
353
|
-
if (this.#provider) {
|
|
354
|
-
argv.push("--provider", this.#provider);
|
|
355
|
-
}
|
|
356
|
-
if (this.#model) {
|
|
357
|
-
argv.push("--model", this.#model);
|
|
303
|
+
const { AuthStorage, createAgentSession, SessionManager, SettingsManager, DefaultResourceLoader, } = await import("@mariozechner/pi-coding-agent");
|
|
304
|
+
const authStorage = new AuthStorage();
|
|
305
|
+
const defaultModel = "claude-sonnet-4-5-20250929";
|
|
306
|
+
const modelId = this.#model ?? defaultModel;
|
|
307
|
+
const model = resolveModel(modelId, authStorage, this.#provider);
|
|
308
|
+
if (!model) {
|
|
309
|
+
const scope = this.#provider ? ` in provider "${this.#provider}"` : "";
|
|
310
|
+
throw new Error(`Model "${modelId}" not found${scope} in pi-ai registry.`);
|
|
358
311
|
}
|
|
359
|
-
|
|
360
|
-
const
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
})
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
312
|
+
const cwd = input.inbound.repo_root;
|
|
313
|
+
const settingsManager = SettingsManager.inMemory();
|
|
314
|
+
const resourceLoader = new DefaultResourceLoader({
|
|
315
|
+
cwd,
|
|
316
|
+
settingsManager,
|
|
317
|
+
systemPromptOverride: () => this.#systemPrompt,
|
|
318
|
+
agentsFilesOverride: () => ({ agentsFiles: [] }),
|
|
319
|
+
});
|
|
320
|
+
await resourceLoader.reload();
|
|
321
|
+
const { session } = await createAgentSession({
|
|
322
|
+
cwd,
|
|
323
|
+
model,
|
|
324
|
+
thinkingLevel: this.#thinking,
|
|
325
|
+
tools: [],
|
|
326
|
+
sessionManager: SessionManager.inMemory(cwd),
|
|
327
|
+
settingsManager,
|
|
328
|
+
resourceLoader,
|
|
329
|
+
authStorage,
|
|
330
|
+
});
|
|
331
|
+
try {
|
|
332
|
+
await session.bindExtensions({
|
|
333
|
+
commandContextActions: {
|
|
334
|
+
waitForIdle: () => session.agent.waitForIdle(),
|
|
335
|
+
newSession: async () => ({ cancelled: true }),
|
|
336
|
+
fork: async () => ({ cancelled: true }),
|
|
337
|
+
navigateTree: async () => ({ cancelled: true }),
|
|
338
|
+
switchSession: async () => ({ cancelled: true }),
|
|
339
|
+
reload: async () => { },
|
|
340
|
+
},
|
|
341
|
+
onError: () => { },
|
|
384
342
|
});
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
343
|
+
let assistantText = "";
|
|
344
|
+
const unsub = session.subscribe((event) => {
|
|
345
|
+
if (event?.type === "message_end" && event?.message?.role === "assistant") {
|
|
346
|
+
const msg = event.message;
|
|
347
|
+
if (typeof msg.text === "string") {
|
|
348
|
+
assistantText = msg.text;
|
|
390
349
|
}
|
|
391
|
-
|
|
392
|
-
|
|
350
|
+
else if (typeof msg.content === "string") {
|
|
351
|
+
assistantText = msg.content;
|
|
393
352
|
}
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
353
|
+
else if (Array.isArray(msg.content)) {
|
|
354
|
+
const parts = [];
|
|
355
|
+
for (const item of msg.content) {
|
|
356
|
+
const t = typeof item === "string" ? item : item?.text;
|
|
357
|
+
if (typeof t === "string" && t.trim().length > 0)
|
|
358
|
+
parts.push(t);
|
|
359
|
+
}
|
|
360
|
+
if (parts.length > 0)
|
|
361
|
+
assistantText = parts.join("\n");
|
|
397
362
|
}
|
|
398
363
|
}
|
|
399
|
-
})().catch((err) => {
|
|
400
|
-
finish(() => reject(err));
|
|
401
|
-
});
|
|
402
|
-
proc.once("error", (err) => {
|
|
403
|
-
finish(() => reject(err));
|
|
404
364
|
});
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
finish(() => reject(new Error(`pi exited with code ${code ?? 0}: ${Buffer.concat(stderrChunks).toString("utf8")}`)));
|
|
408
|
-
return;
|
|
409
|
-
}
|
|
410
|
-
finish(() => resolve(resolvedText));
|
|
365
|
+
const timeoutPromise = new Promise((_, reject) => {
|
|
366
|
+
setTimeout(() => reject(new Error("pi meta-agent timeout")), this.#timeoutMs);
|
|
411
367
|
});
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
368
|
+
try {
|
|
369
|
+
await Promise.race([
|
|
370
|
+
session.prompt(buildMetaPrompt(input), { expandPromptTemplates: false }),
|
|
371
|
+
timeoutPromise,
|
|
372
|
+
]);
|
|
373
|
+
}
|
|
374
|
+
finally {
|
|
375
|
+
unsub();
|
|
376
|
+
}
|
|
377
|
+
const jsonPayload = extractFirstJsonObject(assistantText);
|
|
378
|
+
if (!jsonPayload) {
|
|
379
|
+
throw new Error("meta_agent_invalid_output");
|
|
380
|
+
}
|
|
381
|
+
return MetaAgentBackendTurnResultSchema.parse(JSON.parse(jsonPayload));
|
|
382
|
+
}
|
|
383
|
+
finally {
|
|
384
|
+
session.dispose();
|
|
420
385
|
}
|
|
421
|
-
const parsed = JSON.parse(jsonPayload);
|
|
422
|
-
return MetaAgentBackendTurnResultSchema.parse(parsed);
|
|
423
386
|
}
|
|
424
387
|
}
|
package/dist/pi_sdk_backend.d.ts
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { Model } from "@mariozechner/pi-ai";
|
|
2
|
+
import { AuthStorage, DefaultResourceLoader, SettingsManager } from "@mariozechner/pi-coding-agent";
|
|
2
3
|
import type { BackendRunner, BackendRunOpts } from "./pi_backend.js";
|
|
4
|
+
/**
|
|
5
|
+
* Resolve a bare model ID (e.g. "gpt-5.3-codex") to a pi-ai Model object.
|
|
6
|
+
*
|
|
7
|
+
* When multiple providers offer the same model ID, prefer providers that
|
|
8
|
+
* have auth configured (env var, OAuth, or stored API key).
|
|
9
|
+
*/
|
|
10
|
+
export declare function resolveModel(modelId: string, authStorage: AuthStorage, providerConstraint?: string): Model<any> | undefined;
|
|
3
11
|
/**
|
|
4
12
|
* In-process backend using the pi SDK.
|
|
5
13
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pi_sdk_backend.d.ts","sourceRoot":"","sources":["../src/pi_sdk_backend.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pi_sdk_backend.d.ts","sourceRoot":"","sources":["../src/pi_sdk_backend.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAEjD,OAAO,EACN,WAAW,EAOX,qBAAqB,EAErB,eAAe,EACf,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGrE;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,kBAAkB,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS,CA6B3H;AAED;;;;;GAKG;AACH,qBAAa,YAAa,YAAW,aAAa;IAC3C,GAAG,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;CAiGhD;AAED,MAAM,MAAM,0BAA0B,GAAG;IACxC,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;CAChC,CAAC;AAEF,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,0BAA0B,GAAG,qBAAqB,CAsB9F"}
|
package/dist/pi_sdk_backend.js
CHANGED
|
@@ -10,7 +10,7 @@ import { piStreamHasError } from "./pi_backend.js";
|
|
|
10
10
|
* When multiple providers offer the same model ID, prefer providers that
|
|
11
11
|
* have auth configured (env var, OAuth, or stored API key).
|
|
12
12
|
*/
|
|
13
|
-
function resolveModel(modelId, authStorage, providerConstraint) {
|
|
13
|
+
export function resolveModel(modelId, authStorage, providerConstraint) {
|
|
14
14
|
if (providerConstraint) {
|
|
15
15
|
const providers = getProviders();
|
|
16
16
|
if (!providers.includes(providerConstraint)) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@femtomc/mu-agent",
|
|
3
|
-
"version": "26.2.
|
|
3
|
+
"version": "26.2.35",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"dist/**"
|
|
15
15
|
],
|
|
16
16
|
"dependencies": {
|
|
17
|
-
"@femtomc/mu-core": "26.2.
|
|
17
|
+
"@femtomc/mu-core": "26.2.35",
|
|
18
18
|
"@mariozechner/pi-agent-core": "^0.52.12",
|
|
19
19
|
"@mariozechner/pi-ai": "^0.52.12",
|
|
20
20
|
"@mariozechner/pi-coding-agent": "^0.52.12",
|