botmux 2.101.1 → 2.103.0
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/adapters/backend/sandbox.d.ts +13 -1
- package/dist/adapters/backend/sandbox.d.ts.map +1 -1
- package/dist/adapters/backend/sandbox.js +33 -12
- package/dist/adapters/backend/sandbox.js.map +1 -1
- package/dist/adapters/cli/coco.d.ts.map +1 -1
- package/dist/adapters/cli/coco.js +6 -1
- package/dist/adapters/cli/coco.js.map +1 -1
- package/dist/adapters/cli/codex-app.d.ts.map +1 -1
- package/dist/adapters/cli/codex-app.js +3 -1
- package/dist/adapters/cli/codex-app.js.map +1 -1
- package/dist/adapters/cli/codex.d.ts.map +1 -1
- package/dist/adapters/cli/codex.js +7 -1
- package/dist/adapters/cli/codex.js.map +1 -1
- package/dist/adapters/cli/mtr.d.ts.map +1 -1
- package/dist/adapters/cli/mtr.js +4 -1
- package/dist/adapters/cli/mtr.js.map +1 -1
- package/dist/adapters/cli/opencode.d.ts.map +1 -1
- package/dist/adapters/cli/opencode.js +4 -1
- package/dist/adapters/cli/opencode.js.map +1 -1
- package/dist/adapters/cli/traex.d.ts.map +1 -1
- package/dist/adapters/cli/traex.js +4 -1
- package/dist/adapters/cli/traex.js.map +1 -1
- package/dist/adapters/cli/types.d.ts +4 -1
- package/dist/adapters/cli/types.d.ts.map +1 -1
- package/dist/bot-registry.d.ts +14 -0
- package/dist/bot-registry.d.ts.map +1 -1
- package/dist/bot-registry.js +9 -0
- package/dist/bot-registry.js.map +1 -1
- package/dist/cli.d.ts +9 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +141 -6
- package/dist/cli.js.map +1 -1
- package/dist/core/command-handler.d.ts.map +1 -1
- package/dist/core/command-handler.js +22 -8
- package/dist/core/command-handler.js.map +1 -1
- package/dist/core/cost-calculator.d.ts.map +1 -1
- package/dist/core/cost-calculator.js +6 -0
- package/dist/core/cost-calculator.js.map +1 -1
- package/dist/core/dashboard-ipc-server.d.ts +9 -0
- package/dist/core/dashboard-ipc-server.d.ts.map +1 -1
- package/dist/core/dashboard-ipc-server.js +96 -6
- package/dist/core/dashboard-ipc-server.js.map +1 -1
- package/dist/core/local-terminal-opener.d.ts +43 -0
- package/dist/core/local-terminal-opener.d.ts.map +1 -0
- package/dist/core/local-terminal-opener.js +221 -0
- package/dist/core/local-terminal-opener.js.map +1 -0
- package/dist/core/working-dir.d.ts +12 -1
- package/dist/core/working-dir.d.ts.map +1 -1
- package/dist/core/working-dir.js +20 -3
- package/dist/core/working-dir.js.map +1 -1
- package/dist/daemon.d.ts.map +1 -1
- package/dist/daemon.js +52 -8
- package/dist/daemon.js.map +1 -1
- package/dist/dashboard/bot-onboarding.d.ts +28 -0
- package/dist/dashboard/bot-onboarding.d.ts.map +1 -1
- package/dist/dashboard/bot-onboarding.js +20 -0
- package/dist/dashboard/bot-onboarding.js.map +1 -1
- package/dist/dashboard/bot-payload.d.ts +2 -0
- package/dist/dashboard/bot-payload.d.ts.map +1 -1
- package/dist/dashboard/bot-payload.js +4 -0
- package/dist/dashboard/bot-payload.js.map +1 -1
- package/dist/dashboard/feishu-login.d.ts +64 -0
- package/dist/dashboard/feishu-login.d.ts.map +1 -0
- package/dist/dashboard/feishu-login.js +99 -0
- package/dist/dashboard/feishu-login.js.map +1 -0
- package/dist/dashboard/web/bot-defaults.d.ts.map +1 -1
- package/dist/dashboard/web/bot-defaults.js +243 -1
- package/dist/dashboard/web/bot-defaults.js.map +1 -1
- package/dist/dashboard/web/bot-onboarding.d.ts.map +1 -1
- package/dist/dashboard/web/bot-onboarding.js +4 -1
- package/dist/dashboard/web/bot-onboarding.js.map +1 -1
- package/dist/dashboard/web/i18n.d.ts.map +1 -1
- package/dist/dashboard/web/i18n.js +52 -8
- package/dist/dashboard/web/i18n.js.map +1 -1
- package/dist/dashboard-web/app.js +6 -6
- package/dist/dashboard-web/chunks/bot-defaults-page-ZVBKVYIG.js +380 -0
- package/dist/dashboard-web/chunks/chunk-HC7ANVX7.js +31 -0
- package/dist/dashboard-web/chunks/{chunk-ECXPBQ3J.js → chunk-NNXPEJ7S.js} +1 -1
- package/dist/dashboard-web/chunks/{connectors-UGTF4Q4I.js → connectors-POZADN75.js} +1 -1
- package/dist/dashboard-web/chunks/{groups-page-IKTCMQ4A.js → groups-page-UQFQ6DRE.js} +1 -1
- package/dist/dashboard-web/chunks/{insights-page-7CCSHEKM.js → insights-page-ATW2W5KP.js} +1 -1
- package/dist/dashboard-web/chunks/{overview-page-JOJW65P5.js → overview-page-Z7OV54XU.js} +1 -1
- package/dist/dashboard-web/chunks/{roles-page-E2VN2DLV.js → roles-page-4BJVXK2E.js} +1 -1
- package/dist/dashboard-web/chunks/{schedules-6QIHJIHX.js → schedules-XLETZ2EP.js} +1 -1
- package/dist/dashboard-web/chunks/{sessions-page-QN2TARF2.js → sessions-page-RMMQUGXJ.js} +1 -1
- package/dist/dashboard-web/chunks/{settings-page-WWTXB577.js → settings-page-PWKI4TWF.js} +1 -1
- package/dist/dashboard-web/chunks/{skills-page-2FAUPQ6H.js → skills-page-SH7KUD45.js} +1 -1
- package/dist/dashboard-web/chunks/{team-federation-page-PTBQQSFS.js → team-federation-page-JAJXFLXA.js} +1 -1
- package/dist/dashboard-web/chunks/{workflows-ZNBB5KFV.js → workflows-FRJ2DJAO.js} +1 -1
- package/dist/dashboard-web/style.css +99 -0
- package/dist/dashboard.js +170 -17
- package/dist/dashboard.js.map +1 -1
- package/dist/i18n/en.d.ts.map +1 -1
- package/dist/i18n/en.js +13 -4
- package/dist/i18n/en.js.map +1 -1
- package/dist/i18n/zh.d.ts.map +1 -1
- package/dist/i18n/zh.js +13 -4
- package/dist/i18n/zh.js.map +1 -1
- package/dist/im/lark/card-builder.d.ts.map +1 -1
- package/dist/im/lark/card-builder.js +20 -0
- package/dist/im/lark/card-builder.js.map +1 -1
- package/dist/im/lark/card-handler.d.ts.map +1 -1
- package/dist/im/lark/card-handler.js +36 -12
- package/dist/im/lark/card-handler.js.map +1 -1
- package/dist/im/lark/client.d.ts.map +1 -1
- package/dist/im/lark/client.js +25 -5
- package/dist/im/lark/client.js.map +1 -1
- package/dist/im/lark/event-dispatcher.d.ts.map +1 -1
- package/dist/im/lark/event-dispatcher.js +36 -3
- package/dist/im/lark/event-dispatcher.js.map +1 -1
- package/dist/services/bot-config-store.d.ts +4 -1
- package/dist/services/bot-config-store.d.ts.map +1 -1
- package/dist/services/bot-config-store.js +19 -1
- package/dist/services/bot-config-store.js.map +1 -1
- package/dist/services/bot-union-ids-store.d.ts +15 -0
- package/dist/services/bot-union-ids-store.d.ts.map +1 -1
- package/dist/services/bot-union-ids-store.js +25 -5
- package/dist/services/bot-union-ids-store.js.map +1 -1
- package/dist/services/open-platform-rename.d.ts +45 -0
- package/dist/services/open-platform-rename.d.ts.map +1 -0
- package/dist/services/open-platform-rename.js +182 -0
- package/dist/services/open-platform-rename.js.map +1 -0
- package/dist/services/platform-team-store.d.ts +5 -0
- package/dist/services/platform-team-store.d.ts.map +1 -1
- package/dist/services/platform-team-store.js +16 -0
- package/dist/services/platform-team-store.js.map +1 -1
- package/dist/services/sandbox-land.d.ts.map +1 -1
- package/dist/services/sandbox-land.js +16 -4
- package/dist/services/sandbox-land.js.map +1 -1
- package/dist/services/usage-ledger.d.ts.map +1 -1
- package/dist/services/usage-ledger.js +14 -2
- package/dist/services/usage-ledger.js.map +1 -1
- package/dist/setup/open-platform-automation.d.ts +8 -0
- package/dist/setup/open-platform-automation.d.ts.map +1 -1
- package/dist/setup/open-platform-automation.js +5 -3
- package/dist/setup/open-platform-automation.js.map +1 -1
- package/dist/utils/bot-routing.d.ts +26 -3
- package/dist/utils/bot-routing.d.ts.map +1 -1
- package/dist/utils/bot-routing.js +38 -4
- package/dist/utils/bot-routing.js.map +1 -1
- package/dist/workflows/events/payloads.d.ts +6 -6
- package/dist/workflows/events/schema.d.ts +12 -12
- package/package.json +1 -1
- package/dist/dashboard-web/chunks/bot-defaults-page-HOGLABBC.js +0 -358
- package/dist/dashboard-web/chunks/chunk-MR57RUVP.js +0 -31
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-handler.d.ts","sourceRoot":"","sources":["../../src/core/command-handler.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAQxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAoF,KAAK,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AACjJ,OAAO,EAA8D,KAAK,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACtI,OAAO,EAAuB,KAAK,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAkCnG,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,aAAa,CAAC;AAE/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAWhD,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAA4D,MAAM,2BAA2B,CAAC;AAC5I,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,CAAC;AAEjD;;;;;;;GAOG;AACH,eAAO,MAAM,2BAA2B,aAAoG,CAAC;AAE7I,wBAAgB,wCAAwC,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAYrF;AAED;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAe1E;AAID,MAAM,WAAW,sBAAsB;IACrC,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;CACjB;AAMD,OAAO,EAAE,kBAAkB,EAAE,CAAC;AAE9B;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAAE,GACjB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CA0C9C;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAKpF;AAED;;;;mCAImC;AACnC,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,MAAM,GAAG,sBAAsB,GAAG,IAAI,CA0B1F;AAoED,MAAM,WAAW,kBAAkB;IACjC,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC3C,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1H,cAAc,EAAE,MAAM,MAAM,CAAC;IAC7B,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,gCAAgC,EAAE,WAAW,EAAE,CAAC,CAAC;CACnF;
|
|
1
|
+
{"version":3,"file":"command-handler.d.ts","sourceRoot":"","sources":["../../src/core/command-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -898,8 +898,16 @@ async function handleConfigCommand(message, rootId, larkAppId, deps) {
|
|
|
898
898
|
value = coerced.value;
|
|
899
899
|
break;
|
|
900
900
|
}
|
|
901
|
-
default: // 'string'
|
|
902
|
-
|
|
901
|
+
default: { // 'string'
|
|
902
|
+
// 与 dashboard PUT 同口径:string 字段也过 coerceConfigValue(长度上限
|
|
903
|
+
// maxLen 等约束在 spec 上,避免 IM 文本入口绕过校验)。
|
|
904
|
+
const coerced = coerceConfigValue(spec, rawValue);
|
|
905
|
+
if (!coerced.ok) {
|
|
906
|
+
await reply(t('cmd.config.write_failed', { reason: coerced.reason }, loc));
|
|
907
|
+
return;
|
|
908
|
+
}
|
|
909
|
+
value = coerced.value;
|
|
910
|
+
}
|
|
903
911
|
}
|
|
904
912
|
const r = await applyConfigField(larkAppId, spec, value);
|
|
905
913
|
if (!r.ok) {
|
|
@@ -1217,7 +1225,7 @@ export async function handleCommand(cmd, rootId, message, deps, larkAppId) {
|
|
|
1217
1225
|
await sessionReply(rootId, t('cmd.no_active_session', undefined, loc));
|
|
1218
1226
|
break;
|
|
1219
1227
|
}
|
|
1220
|
-
const validation = validateWorkingDir(targetPath, loc);
|
|
1228
|
+
const validation = validateWorkingDir(targetPath, loc, { autoCreate: true });
|
|
1221
1229
|
if (!validation.ok) {
|
|
1222
1230
|
await sessionReply(rootId, validation.error);
|
|
1223
1231
|
break;
|
|
@@ -1227,8 +1235,13 @@ export async function handleCommand(cmd, rootId, message, deps, larkAppId) {
|
|
|
1227
1235
|
ds.workingDir = targetPath;
|
|
1228
1236
|
ds.session.workingDir = targetPath;
|
|
1229
1237
|
sessionStore.updateSession(ds.session);
|
|
1230
|
-
|
|
1231
|
-
|
|
1238
|
+
if (validation.created) {
|
|
1239
|
+
await sessionReply(rootId, t('cmd.cd.created_switched', { path: resolvedPath }, loc));
|
|
1240
|
+
}
|
|
1241
|
+
else {
|
|
1242
|
+
await sessionReply(rootId, t('cmd.cd.switched', { path: resolvedPath }, loc));
|
|
1243
|
+
}
|
|
1244
|
+
logger.info(`[${logTag}] Working directory changed to ${resolvedPath} by /cd command${validation.created ? ' (auto-created)' : ''}`);
|
|
1232
1245
|
break;
|
|
1233
1246
|
}
|
|
1234
1247
|
case '/repo': {
|
|
@@ -1854,7 +1867,7 @@ export async function handleCommand(cmd, rootId, message, deps, larkAppId) {
|
|
|
1854
1867
|
await sessionReply(rootId, t('cmd.oncall.bind_usage', undefined, loc));
|
|
1855
1868
|
break;
|
|
1856
1869
|
}
|
|
1857
|
-
const validation = validateWorkingDir(target, loc);
|
|
1870
|
+
const validation = validateWorkingDir(target, loc, { autoCreate: true });
|
|
1858
1871
|
if (!validation.ok) {
|
|
1859
1872
|
await sessionReply(rootId, validation.error);
|
|
1860
1873
|
break;
|
|
@@ -1873,13 +1886,14 @@ export async function handleCommand(cmd, rootId, message, deps, larkAppId) {
|
|
|
1873
1886
|
const verb = result.created
|
|
1874
1887
|
? t('cmd.oncall.verb_bound', undefined, loc)
|
|
1875
1888
|
: t('cmd.oncall.verb_updated', undefined, loc);
|
|
1889
|
+
const createdNote = validation.created ? `\n\n${t('cmd.oncall.bind_created_note', undefined, loc)}` : '';
|
|
1876
1890
|
await sessionReply(rootId, t('cmd.oncall.bind_success', {
|
|
1877
1891
|
verb,
|
|
1878
1892
|
chatId,
|
|
1879
1893
|
target,
|
|
1880
1894
|
resolved: resolvedPath,
|
|
1881
|
-
}, loc));
|
|
1882
|
-
logger.info(`[${logTag}] /oncall bind chat=${chatId} dir=${target}`);
|
|
1895
|
+
}, loc) + createdNote);
|
|
1896
|
+
logger.info(`[${logTag}] /oncall bind chat=${chatId} dir=${target}${validation.created ? ' (auto-created)' : ''}`);
|
|
1883
1897
|
break;
|
|
1884
1898
|
}
|
|
1885
1899
|
if (sub === 'unbind' || sub === '解绑') {
|