@ycodium-ai/plugin-im 0.2.4194 → 0.2.4221
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/index.js +74 -37
- package/locales/en.json +9 -6
- package/locales/zh-CN.json +4 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -126160,7 +126160,7 @@ ${lines.join("\n")}
|
|
|
126160
126160
|
import { definePlugin } from "@ycodium-ai/plugin-api";
|
|
126161
126161
|
|
|
126162
126162
|
// ../../packages/plugin-api/src/version.ts
|
|
126163
|
-
var PLUGIN_API_VERSION =
|
|
126163
|
+
var PLUGIN_API_VERSION = 102;
|
|
126164
126164
|
|
|
126165
126165
|
// src/errors.ts
|
|
126166
126166
|
var describeError = (error) => error instanceof Error ? error.message : String(error);
|
|
@@ -133146,25 +133146,25 @@ var pickableInstances = async (providers, instances) => Promise.all(
|
|
|
133146
133146
|
};
|
|
133147
133147
|
})
|
|
133148
133148
|
);
|
|
133149
|
-
var modelChoices = (instances) => instances.flatMap(
|
|
133149
|
+
var modelChoices = (instances, unknownAgent) => instances.flatMap(
|
|
133150
133150
|
(instance) => instance.enabled ? (instance.models ?? []).map(
|
|
133151
133151
|
(model) => ({
|
|
133152
133152
|
instanceId: instance.instanceId,
|
|
133153
133153
|
model: model.slug,
|
|
133154
|
-
instanceName: instance.displayName ??
|
|
133154
|
+
instanceName: instance.displayName ?? unknownAgent,
|
|
133155
133155
|
modelName: model.name === "" ? model.slug : model.name
|
|
133156
133156
|
})
|
|
133157
133157
|
) : []
|
|
133158
133158
|
);
|
|
133159
133159
|
var modelLabel = (choice) => `${choice.instanceName} \xB7 ${choice.modelName}`;
|
|
133160
|
-
var rawModelLabel = (selection) => `${
|
|
133160
|
+
var rawModelLabel = (selection, unknownAgent, displayName) => `${displayName ?? unknownAgent} \xB7 ${selection.model}`;
|
|
133161
133161
|
var sameModel = (left, right) => left.instanceId === right.instanceId && left.model === right.model;
|
|
133162
133162
|
var modelCatalogHas = (choices, selection) => choices.some((choice) => sameModel(choice, selection));
|
|
133163
|
-
var formatModels = (current, choices, t) => {
|
|
133163
|
+
var formatModels = (current, choices, t, displayNameOf) => {
|
|
133164
133164
|
const currentLabel = current === null ? t("model.currentUnknown") : t("model.current", {
|
|
133165
133165
|
model: modelLabel(
|
|
133166
133166
|
choices.find((choice) => sameModel(choice, current)) ?? {
|
|
133167
|
-
instanceName: current.instanceId,
|
|
133167
|
+
instanceName: displayNameOf?.(current.instanceId) ?? t("model.unknownAgent"),
|
|
133168
133168
|
modelName: current.model
|
|
133169
133169
|
}
|
|
133170
133170
|
)
|
|
@@ -134760,7 +134760,7 @@ var resolveDefaultModel = async (bot, chatModel, projectDefault, providers, know
|
|
|
134760
134760
|
if (chatModel !== null) return chatModel;
|
|
134761
134761
|
if (bot.defaultModel !== void 0) {
|
|
134762
134762
|
const instances = knownInstances === void 0 ? await providers.list({}).catch(() => null) : knownInstances;
|
|
134763
|
-
if (!isModelCatalogComplete(instances) || modelCatalogHas(modelChoices(instances ?? []), bot.defaultModel)) {
|
|
134763
|
+
if (!isModelCatalogComplete(instances) || modelCatalogHas(modelChoices(instances ?? [], ""), bot.defaultModel)) {
|
|
134764
134764
|
return bot.defaultModel;
|
|
134765
134765
|
}
|
|
134766
134766
|
}
|
|
@@ -134883,19 +134883,19 @@ var effortRejection = (t, model, wanted, values) => {
|
|
|
134883
134883
|
].join("\n");
|
|
134884
134884
|
};
|
|
134885
134885
|
var effortText = (t, selection) => selectedReasoning(selection)?.value ?? t("model.effortDefault");
|
|
134886
|
-
var selectionText = (t, selection) => `${rawModelLabel(selection)} \xB7 ${effortText(t, selection)}`;
|
|
134887
|
-
var mismatchText = (t, requested, actual) => t("model.mismatch", {
|
|
134888
|
-
requested: selectionText(t, requested),
|
|
134889
|
-
actual: actual === null ? t("model.unconfirmed") : selectionText(t, actual)
|
|
134886
|
+
var selectionText = (t, selection, displayNameOf) => `${rawModelLabel(selection, t("model.unknownAgent"), displayNameOf?.(selection.instanceId))} \xB7 ${effortText(t, selection)}`;
|
|
134887
|
+
var mismatchText = (t, requested, actual, displayNameOf) => t("model.mismatch", {
|
|
134888
|
+
requested: selectionText(t, requested, displayNameOf),
|
|
134889
|
+
actual: actual === null ? t("model.unconfirmed") : selectionText(t, actual, displayNameOf)
|
|
134890
134890
|
});
|
|
134891
|
-
var saveFailureText = (t, saved, requested, failed = "model.setFailed") => {
|
|
134891
|
+
var saveFailureText = (t, saved, requested, failed = "model.setFailed", displayNameOf) => {
|
|
134892
134892
|
switch (saved.kind) {
|
|
134893
134893
|
case "failed":
|
|
134894
134894
|
return t(failed);
|
|
134895
134895
|
case "bindingChanged":
|
|
134896
134896
|
return t("model.bindingChanged");
|
|
134897
134897
|
case "mismatch":
|
|
134898
|
-
return mismatchText(t, requested, saved.actual);
|
|
134898
|
+
return mismatchText(t, requested, saved.actual, displayNameOf);
|
|
134899
134899
|
}
|
|
134900
134900
|
};
|
|
134901
134901
|
|
|
@@ -134906,13 +134906,21 @@ var makeReasoningCommand = (core, currentModel) => {
|
|
|
134906
134906
|
const readOptions = async (binding) => {
|
|
134907
134907
|
const resolved = await currentModel(binding);
|
|
134908
134908
|
const selection = resolved.selection;
|
|
134909
|
-
const catalog = selection === null ? null : await
|
|
134910
|
-
|
|
134911
|
-
|
|
134912
|
-
|
|
134913
|
-
|
|
134909
|
+
const [catalog, instances] = selection === null ? [null, null] : await Promise.all([
|
|
134910
|
+
host.providers.models.list({
|
|
134911
|
+
instanceId: selection.instanceId,
|
|
134912
|
+
// 当前型号被藏起来了也要能读到它的档位。
|
|
134913
|
+
includeHidden: true
|
|
134914
|
+
}),
|
|
134915
|
+
host.providers.instances.list({}).catch(() => null)
|
|
134916
|
+
]);
|
|
134914
134917
|
const model = catalog?.models.find((entry) => entry.slug === selection?.model);
|
|
134915
|
-
|
|
134918
|
+
const displayNameOf = (instanceId) => instances?.find((instance) => instance.instanceId === instanceId)?.displayName ?? void 0;
|
|
134919
|
+
return {
|
|
134920
|
+
...resolved,
|
|
134921
|
+
option: model === void 0 ? void 0 : reasoningOption(model),
|
|
134922
|
+
displayNameOf
|
|
134923
|
+
};
|
|
134916
134924
|
};
|
|
134917
134925
|
return async (binding, arg) => {
|
|
134918
134926
|
const boundThreadId = chatOf(core.state, chatKeyOf(binding)).threadId;
|
|
@@ -134940,7 +134948,7 @@ var makeReasoningCommand = (core, currentModel) => {
|
|
|
134940
134948
|
const saved2 = await saveAndVerifySelection(core, binding, threadId, boundThreadId, next2);
|
|
134941
134949
|
await deliver(
|
|
134942
134950
|
binding,
|
|
134943
|
-
saved2.kind === "applied" ? t(threadId === null ? "reasoning.resetNext" : "reasoning.resetNow") : saveFailureText(t, saved2, next2, "reasoning.setFailed")
|
|
134951
|
+
saved2.kind === "applied" ? t(threadId === null ? "reasoning.resetNext" : "reasoning.resetNow") : saveFailureText(t, saved2, next2, "reasoning.setFailed", resolved.displayNameOf)
|
|
134944
134952
|
);
|
|
134945
134953
|
return;
|
|
134946
134954
|
}
|
|
@@ -134994,7 +135002,7 @@ var makeReasoningCommand = (core, currentModel) => {
|
|
|
134994
135002
|
binding,
|
|
134995
135003
|
saved.kind === "applied" ? t(threadId === null ? "reasoning.setNext" : "reasoning.setNow", {
|
|
134996
135004
|
value: effortText(t, saved.actual)
|
|
134997
|
-
}) : saveFailureText(t, saved, next, "reasoning.setFailed")
|
|
135005
|
+
}) : saveFailureText(t, saved, next, "reasoning.setFailed", resolved.displayNameOf)
|
|
134998
135006
|
);
|
|
134999
135007
|
};
|
|
135000
135008
|
};
|
|
@@ -135089,7 +135097,7 @@ var makePermissionCommand = (core) => {
|
|
|
135089
135097
|
// package.json
|
|
135090
135098
|
var package_default = {
|
|
135091
135099
|
name: "@ycodium-ai/plugin-im",
|
|
135092
|
-
version: "0.2.
|
|
135100
|
+
version: "0.2.4221",
|
|
135093
135101
|
description: "Talk to your agents from Telegram, WeCom, Lark, or WeChat (experimental).",
|
|
135094
135102
|
keywords: [
|
|
135095
135103
|
"im",
|
|
@@ -135315,7 +135323,7 @@ ${t("archived.usage")}`);
|
|
|
135315
135323
|
const planLine = chatOf(core.state, chatKey).plan ? [t("status.planOn")] : [];
|
|
135316
135324
|
const projectLine2 = [
|
|
135317
135325
|
binding.projectId === "" ? t("status.noProject") : t("status.project", {
|
|
135318
|
-
title: (await host.projects.get({ projectId: binding.projectId }).catch(() => null))?.title ??
|
|
135326
|
+
title: (await host.projects.get({ projectId: binding.projectId }).catch(() => null))?.title ?? t("status.unknownProject")
|
|
135319
135327
|
})
|
|
135320
135328
|
];
|
|
135321
135329
|
if (threadId === void 0) {
|
|
@@ -135327,13 +135335,26 @@ ${t("archived.usage")}`);
|
|
|
135327
135335
|
}
|
|
135328
135336
|
const thread = await threadOrNull4(host.threads, threadId);
|
|
135329
135337
|
const running = isSessionRunning(thread?.session?.status);
|
|
135338
|
+
const provider = thread === null ? void 0 : await host.providers.instances.list({}).then(
|
|
135339
|
+
(instances) => instances.find(
|
|
135340
|
+
(instance) => instance.instanceId === thread.modelSelection.instanceId
|
|
135341
|
+
)?.displayName ?? void 0
|
|
135342
|
+
).catch(() => void 0);
|
|
135330
135343
|
await deliver(
|
|
135331
135344
|
binding,
|
|
135332
135345
|
[
|
|
135333
135346
|
where,
|
|
135334
135347
|
...projectLine2,
|
|
135335
|
-
t("status.session", { title: thread?.title ??
|
|
135336
|
-
...thread === null ? [] : [
|
|
135348
|
+
t("status.session", { title: thread?.title ?? t("status.unknownThread") }),
|
|
135349
|
+
...thread === null ? [] : [
|
|
135350
|
+
t("status.model", {
|
|
135351
|
+
model: rawModelLabel(
|
|
135352
|
+
thread.modelSelection,
|
|
135353
|
+
t("model.unknownAgent"),
|
|
135354
|
+
provider ?? thread.session?.providerName ?? void 0
|
|
135355
|
+
)
|
|
135356
|
+
})
|
|
135357
|
+
],
|
|
135337
135358
|
...planLine,
|
|
135338
135359
|
running ? t("status.running") : t("status.idle")
|
|
135339
135360
|
].join("\n")
|
|
@@ -147475,14 +147496,14 @@ var en_default = {
|
|
|
147475
147496
|
turnFailedToStartQuoted: `This message (starting with "{{excerpt}}") couldn't be dispatched. Please send it again later. Reference {{ref}}.`,
|
|
147476
147497
|
turnFailedToStartAttachment: `This message (with the attachment "{{excerpt}}") couldn't be dispatched. Please send it again later. Reference {{ref}}.`,
|
|
147477
147498
|
turnRetrying: "Couldn't dispatch this message yet. Retrying automatically in the background, so there's no need to send it again. You'll get another message if it still fails. Reference {{ref}}.",
|
|
147478
|
-
turnFailed: "This turn didn't finish: {{detail}}\nReference {{ref}}. Send the message again; if it keeps failing, send /new to start a new
|
|
147479
|
-
turnFailedNoDetail: "This turn didn't finish. Reference {{ref}}. Send the message again; if it keeps failing, send /new to start a new
|
|
147480
|
-
turnFailedBrief: "This turn didn't finish: {{detail}}\nSend the message again; if it keeps failing, send /new to start a new
|
|
147481
|
-
turnFailedBriefNoDetail: "This turn didn't finish. Send the message again; if it keeps failing, send /new to start a new
|
|
147499
|
+
turnFailed: "This turn didn't finish: {{detail}}\nReference {{ref}}. Send the message again; if it keeps failing, send /new to start a new thread.",
|
|
147500
|
+
turnFailedNoDetail: "This turn didn't finish. Reference {{ref}}. Send the message again; if it keeps failing, send /new to start a new thread.",
|
|
147501
|
+
turnFailedBrief: "This turn didn't finish: {{detail}}\nSend the message again; if it keeps failing, send /new to start a new thread.",
|
|
147502
|
+
turnFailedBriefNoDetail: "This turn didn't finish. Send the message again; if it keeps failing, send /new to start a new thread.",
|
|
147482
147503
|
turnFailedWithReference: "{{message}}\nReference {{ref}}.",
|
|
147483
147504
|
turnFailedQuota: "The model quota or balance is insufficient, so this turn didn't finish. Send /model to switch to another model, or ask an administrator to add quota, then try again.",
|
|
147484
147505
|
turnFailedRateLimit: "The model service is rate-limiting requests, so this turn didn't finish. Please try again later.",
|
|
147485
|
-
turnFailedContextLimit: "This
|
|
147506
|
+
turnFailedContextLimit: "This thread exceeds the model context limit, so this turn didn't finish. Send /new to start a new thread, then send your request again.",
|
|
147486
147507
|
turnFailedAuth: "The model credentials are missing or invalid, so this turn didn't finish. Ask an administrator to check the model settings, then try again.",
|
|
147487
147508
|
turnFailedModelUnavailable: "The current model does not exist or does not support the selected settings, so this turn didn't finish. Send /model to list models, then send /model followed by a number (for example /model 2) to pick one for this chat, and send your request again.",
|
|
147488
147509
|
turnFailedTransport: "The model service is temporarily unreachable, so this turn didn't finish. Please try again later.",
|
|
@@ -147578,6 +147599,8 @@ var en_default = {
|
|
|
147578
147599
|
routedThread: "Normal session",
|
|
147579
147600
|
nothingRunning: "{{where}}. Nothing is running.",
|
|
147580
147601
|
session: "Session: {{title}}",
|
|
147602
|
+
unknownThread: "Unknown thread",
|
|
147603
|
+
unknownProject: "Unknown project",
|
|
147581
147604
|
running: "Running. Send /stop to stop it.",
|
|
147582
147605
|
idle: "Idle.",
|
|
147583
147606
|
model: "Model: {{model}}",
|
|
@@ -147787,6 +147810,7 @@ var en_default = {
|
|
|
147787
147810
|
textOnly: "Preset commands only accept text. Remove attachments and try again."
|
|
147788
147811
|
},
|
|
147789
147812
|
model: {
|
|
147813
|
+
unknownAgent: "Unknown agent",
|
|
147790
147814
|
current: "Model: {{model}}",
|
|
147791
147815
|
currentUnknown: "Model: not decided yet \u2014 a new session uses the project's default.",
|
|
147792
147816
|
unavailable: "The available models cannot be read right now, so the model cannot be switched.",
|
|
@@ -147813,7 +147837,7 @@ var en_default = {
|
|
|
147813
147837
|
usage: "Usage: /plan toggles plan mode; /plan on and /plan off set it."
|
|
147814
147838
|
},
|
|
147815
147839
|
card: {
|
|
147816
|
-
untitled: "
|
|
147840
|
+
untitled: "Thread",
|
|
147817
147841
|
status: {
|
|
147818
147842
|
working: "Working on it\u2026",
|
|
147819
147843
|
done: "Done",
|
|
@@ -148651,6 +148675,8 @@ var zh_CN_default = {
|
|
|
148651
148675
|
routedThread: "\u666E\u901A\u4F1A\u8BDD",
|
|
148652
148676
|
nothingRunning: "{{where}}\u3002\u73B0\u5728\u6CA1\u6709\u5728\u8DD1\u7684\u6D3B\u513F\u3002",
|
|
148653
148677
|
session: "\u4F1A\u8BDD\uFF1A{{title}}",
|
|
148678
|
+
unknownThread: "\u672A\u77E5\u4F1A\u8BDD",
|
|
148679
|
+
unknownProject: "\u672A\u77E5\u9879\u76EE",
|
|
148654
148680
|
running: "\u6B63\u5728\u8DD1\u3002\u60F3\u505C\u5C31\u6253 /stop\u3002",
|
|
148655
148681
|
idle: "\u7A7A\u95F2\u7740\u3002",
|
|
148656
148682
|
model: "\u6A21\u578B\uFF1A{{model}}",
|
|
@@ -148860,6 +148886,7 @@ var zh_CN_default = {
|
|
|
148860
148886
|
textOnly: "\u9884\u8BBE\u547D\u4EE4\u53EA\u63A5\u53D7\u6587\u5B57\u3002\u53BB\u6389\u9644\u4EF6\u540E\u518D\u8BD5\u3002"
|
|
148861
148887
|
},
|
|
148862
148888
|
model: {
|
|
148889
|
+
unknownAgent: "\u672A\u77E5 agent",
|
|
148863
148890
|
current: "\u6A21\u578B\uFF1A{{model}}",
|
|
148864
148891
|
currentUnknown: "\u6A21\u578B\uFF1A\u8FD8\u6CA1\u5B9A\u2014\u2014\u65B0\u5F00\u4F1A\u8BDD\u65F6\u7528\u9879\u76EE\u7684\u9ED8\u8BA4\u6A21\u578B\u3002",
|
|
148865
148892
|
unavailable: "\u73B0\u5728\u8BFB\u4E0D\u51FA\u53EF\u9009\u7684\u6A21\u578B\uFF0C\u6CA1\u6CD5\u5207\u6362\u6A21\u578B\u3002",
|
|
@@ -148886,7 +148913,7 @@ var zh_CN_default = {
|
|
|
148886
148913
|
usage: "\u7528\u6CD5\uFF1A/plan \u5207\u6362\u8BA1\u5212\u6A21\u5F0F\uFF1B/plan on\u3001/plan off \u660E\u786E\u8BBE\u5B9A\u3002"
|
|
148887
148914
|
},
|
|
148888
148915
|
card: {
|
|
148889
|
-
untitled: "\
|
|
148916
|
+
untitled: "\u4F1A\u8BDD",
|
|
148890
148917
|
status: {
|
|
148891
148918
|
working: "\u5904\u7406\u4E2D\u2026",
|
|
148892
148919
|
done: "\u5DF2\u5B8C\u6210",
|
|
@@ -150182,9 +150209,13 @@ var makeModelPlan = (core) => {
|
|
|
150182
150209
|
const handleModel = async (binding, arg) => {
|
|
150183
150210
|
const boundThreadId = chatOf(core.state, chatKeyOf(binding)).threadId;
|
|
150184
150211
|
const instances = await host.providers.instances.list({}).catch(() => null);
|
|
150185
|
-
const
|
|
150212
|
+
const displayNameOf = (instanceId) => instances?.find((instance) => instance.instanceId === instanceId)?.displayName ?? void 0;
|
|
150213
|
+
const choices = instances === null ? [] : modelChoices(await pickableInstances(host.providers, instances), t("model.unknownAgent"));
|
|
150186
150214
|
if (arg === "") {
|
|
150187
|
-
await deliver(
|
|
150215
|
+
await deliver(
|
|
150216
|
+
binding,
|
|
150217
|
+
formatModels(await currentModelOf(binding, instances), choices, t, displayNameOf)
|
|
150218
|
+
);
|
|
150188
150219
|
return;
|
|
150189
150220
|
}
|
|
150190
150221
|
if (choices.length === 0) {
|
|
@@ -150270,7 +150301,10 @@ var makeModelPlan = (core) => {
|
|
|
150270
150301
|
);
|
|
150271
150302
|
return;
|
|
150272
150303
|
}
|
|
150273
|
-
await deliver(
|
|
150304
|
+
await deliver(
|
|
150305
|
+
binding,
|
|
150306
|
+
saveFailureText(t, saved, resolved.modelSelection, "model.setFailed", displayNameOf)
|
|
150307
|
+
);
|
|
150274
150308
|
};
|
|
150275
150309
|
const handlePlan = async (binding, mode) => {
|
|
150276
150310
|
if (mode === "invalid") {
|
|
@@ -150971,7 +151005,7 @@ var makePanelWiring = (core, deps) => {
|
|
|
150971
151005
|
const binding = bindingForChatKey(chatKey);
|
|
150972
151006
|
const instances = await host.providers.instances.list({}).catch(() => null);
|
|
150973
151007
|
if (binding === void 0 || instances === null) return null;
|
|
150974
|
-
const choices = modelChoices(instances);
|
|
151008
|
+
const choices = modelChoices(instances, t("model.unknownAgent"));
|
|
150975
151009
|
return { current: await currentModelOf(binding, instances), choices };
|
|
150976
151010
|
},
|
|
150977
151011
|
loadProjects: async (chatKey) => {
|
|
@@ -154539,7 +154573,10 @@ var registerSettingsCommands = (ctx, adapters, updateSettings, connections) => {
|
|
|
154539
154573
|
view: buildSettingsView(config2, adapters),
|
|
154540
154574
|
columns: buildBotColumns(
|
|
154541
154575
|
adapters,
|
|
154542
|
-
modelChoices(
|
|
154576
|
+
modelChoices(
|
|
154577
|
+
instances ?? [],
|
|
154578
|
+
makeTranslate(parseReplyLanguage(config2[REPLY_LANGUAGE_FIELD]))("model.unknownAgent")
|
|
154579
|
+
),
|
|
154543
154580
|
isModelCatalogComplete(instances),
|
|
154544
154581
|
presets?.presets ?? null
|
|
154545
154582
|
),
|
package/locales/en.json
CHANGED
|
@@ -246,14 +246,14 @@
|
|
|
246
246
|
"turnFailedToStartQuoted": "This message (starting with \"{{excerpt}}\") couldn't be dispatched. Please send it again later. Reference {{ref}}.",
|
|
247
247
|
"turnFailedToStartAttachment": "This message (with the attachment \"{{excerpt}}\") couldn't be dispatched. Please send it again later. Reference {{ref}}.",
|
|
248
248
|
"turnRetrying": "Couldn't dispatch this message yet. Retrying automatically in the background, so there's no need to send it again. You'll get another message if it still fails. Reference {{ref}}.",
|
|
249
|
-
"turnFailed": "This turn didn't finish: {{detail}}\nReference {{ref}}. Send the message again; if it keeps failing, send /new to start a new
|
|
250
|
-
"turnFailedNoDetail": "This turn didn't finish. Reference {{ref}}. Send the message again; if it keeps failing, send /new to start a new
|
|
251
|
-
"turnFailedBrief": "This turn didn't finish: {{detail}}\nSend the message again; if it keeps failing, send /new to start a new
|
|
252
|
-
"turnFailedBriefNoDetail": "This turn didn't finish. Send the message again; if it keeps failing, send /new to start a new
|
|
249
|
+
"turnFailed": "This turn didn't finish: {{detail}}\nReference {{ref}}. Send the message again; if it keeps failing, send /new to start a new thread.",
|
|
250
|
+
"turnFailedNoDetail": "This turn didn't finish. Reference {{ref}}. Send the message again; if it keeps failing, send /new to start a new thread.",
|
|
251
|
+
"turnFailedBrief": "This turn didn't finish: {{detail}}\nSend the message again; if it keeps failing, send /new to start a new thread.",
|
|
252
|
+
"turnFailedBriefNoDetail": "This turn didn't finish. Send the message again; if it keeps failing, send /new to start a new thread.",
|
|
253
253
|
"turnFailedWithReference": "{{message}}\nReference {{ref}}.",
|
|
254
254
|
"turnFailedQuota": "The model quota or balance is insufficient, so this turn didn't finish. Send /model to switch to another model, or ask an administrator to add quota, then try again.",
|
|
255
255
|
"turnFailedRateLimit": "The model service is rate-limiting requests, so this turn didn't finish. Please try again later.",
|
|
256
|
-
"turnFailedContextLimit": "This
|
|
256
|
+
"turnFailedContextLimit": "This thread exceeds the model context limit, so this turn didn't finish. Send /new to start a new thread, then send your request again.",
|
|
257
257
|
"turnFailedAuth": "The model credentials are missing or invalid, so this turn didn't finish. Ask an administrator to check the model settings, then try again.",
|
|
258
258
|
"turnFailedModelUnavailable": "The current model does not exist or does not support the selected settings, so this turn didn't finish. Send /model to list models, then send /model followed by a number (for example /model 2) to pick one for this chat, and send your request again.",
|
|
259
259
|
"turnFailedTransport": "The model service is temporarily unreachable, so this turn didn't finish. Please try again later.",
|
|
@@ -349,6 +349,8 @@
|
|
|
349
349
|
"routedThread": "Normal session",
|
|
350
350
|
"nothingRunning": "{{where}}. Nothing is running.",
|
|
351
351
|
"session": "Session: {{title}}",
|
|
352
|
+
"unknownThread": "Unknown thread",
|
|
353
|
+
"unknownProject": "Unknown project",
|
|
352
354
|
"running": "Running. Send /stop to stop it.",
|
|
353
355
|
"idle": "Idle.",
|
|
354
356
|
"model": "Model: {{model}}",
|
|
@@ -558,6 +560,7 @@
|
|
|
558
560
|
"textOnly": "Preset commands only accept text. Remove attachments and try again."
|
|
559
561
|
},
|
|
560
562
|
"model": {
|
|
563
|
+
"unknownAgent": "Unknown agent",
|
|
561
564
|
"current": "Model: {{model}}",
|
|
562
565
|
"currentUnknown": "Model: not decided yet — a new session uses the project's default.",
|
|
563
566
|
"unavailable": "The available models cannot be read right now, so the model cannot be switched.",
|
|
@@ -584,7 +587,7 @@
|
|
|
584
587
|
"usage": "Usage: /plan toggles plan mode; /plan on and /plan off set it."
|
|
585
588
|
},
|
|
586
589
|
"card": {
|
|
587
|
-
"untitled": "
|
|
590
|
+
"untitled": "Thread",
|
|
588
591
|
"status": {
|
|
589
592
|
"working": "Working on it…",
|
|
590
593
|
"done": "Done",
|
package/locales/zh-CN.json
CHANGED
|
@@ -349,6 +349,8 @@
|
|
|
349
349
|
"routedThread": "普通会话",
|
|
350
350
|
"nothingRunning": "{{where}}。现在没有在跑的活儿。",
|
|
351
351
|
"session": "会话:{{title}}",
|
|
352
|
+
"unknownThread": "未知会话",
|
|
353
|
+
"unknownProject": "未知项目",
|
|
352
354
|
"running": "正在跑。想停就打 /stop。",
|
|
353
355
|
"idle": "空闲着。",
|
|
354
356
|
"model": "模型:{{model}}",
|
|
@@ -558,6 +560,7 @@
|
|
|
558
560
|
"textOnly": "预设命令只接受文字。去掉附件后再试。"
|
|
559
561
|
},
|
|
560
562
|
"model": {
|
|
563
|
+
"unknownAgent": "未知 agent",
|
|
561
564
|
"current": "模型:{{model}}",
|
|
562
565
|
"currentUnknown": "模型:还没定——新开会话时用项目的默认模型。",
|
|
563
566
|
"unavailable": "现在读不出可选的模型,没法切换模型。",
|
|
@@ -584,7 +587,7 @@
|
|
|
584
587
|
"usage": "用法:/plan 切换计划模式;/plan on、/plan off 明确设定。"
|
|
585
588
|
},
|
|
586
589
|
"card": {
|
|
587
|
-
"untitled": "
|
|
590
|
+
"untitled": "会话",
|
|
588
591
|
"status": {
|
|
589
592
|
"working": "处理中…",
|
|
590
593
|
"done": "已完成",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ycodium-ai/plugin-im",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.4221",
|
|
4
4
|
"description": "Talk to your agents from Telegram, WeCom, Lark, or WeChat (experimental).",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"im",
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
"markdown-it": "^15.0.2",
|
|
33
33
|
"react": "19.2.6",
|
|
34
34
|
"vite-plus": "0.2.2",
|
|
35
|
-
"@ycodium-ai/plugin-api": "0.2.
|
|
35
|
+
"@ycodium-ai/plugin-api": "0.2.4221",
|
|
36
36
|
"ycodium-react-test-harness": "0.0.0"
|
|
37
37
|
},
|
|
38
38
|
"ycodium": {
|