botmux 3.2.0 → 3.2.1
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/README.en.md +1 -0
- package/README.md +1 -0
- package/dist/adapters/cli/codex.d.ts.map +1 -1
- package/dist/adapters/cli/codex.js +13 -1
- package/dist/adapters/cli/codex.js.map +1 -1
- package/dist/adapters/cli/traex.d.ts.map +1 -1
- package/dist/adapters/cli/traex.js +11 -1
- package/dist/adapters/cli/traex.js.map +1 -1
- package/dist/adapters/cli/types.d.ts +6 -0
- package/dist/adapters/cli/types.d.ts.map +1 -1
- package/dist/bot-registry.d.ts +7 -0
- package/dist/bot-registry.d.ts.map +1 -1
- package/dist/bot-registry.js +1 -0
- package/dist/bot-registry.js.map +1 -1
- package/dist/cli/daemon-lifecycle-env.d.ts +11 -0
- package/dist/cli/daemon-lifecycle-env.d.ts.map +1 -0
- package/dist/cli/daemon-lifecycle-env.js +25 -0
- package/dist/cli/daemon-lifecycle-env.js.map +1 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +11 -4
- package/dist/cli.js.map +1 -1
- package/dist/codex-rpc-engine.d.ts +110 -0
- package/dist/codex-rpc-engine.d.ts.map +1 -0
- package/dist/codex-rpc-engine.js +496 -0
- package/dist/codex-rpc-engine.js.map +1 -0
- package/dist/codex-rpc-lifecycle.d.ts +157 -0
- package/dist/codex-rpc-lifecycle.d.ts.map +1 -0
- package/dist/codex-rpc-lifecycle.js +210 -0
- package/dist/codex-rpc-lifecycle.js.map +1 -0
- package/dist/config.d.ts +1 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +14 -2
- package/dist/config.js.map +1 -1
- package/dist/core/attachment-path.d.ts +3 -0
- package/dist/core/attachment-path.d.ts.map +1 -0
- package/dist/core/attachment-path.js +8 -0
- package/dist/core/attachment-path.js.map +1 -0
- package/dist/core/command-handler.d.ts.map +1 -1
- package/dist/core/command-handler.js +6 -1
- package/dist/core/command-handler.js.map +1 -1
- package/dist/core/dashboard-images.d.ts +29 -0
- package/dist/core/dashboard-images.d.ts.map +1 -0
- package/dist/core/dashboard-images.js +113 -0
- package/dist/core/dashboard-images.js.map +1 -0
- package/dist/core/dashboard-ipc-server.d.ts.map +1 -1
- package/dist/core/dashboard-ipc-server.js +13 -1
- package/dist/core/dashboard-ipc-server.js.map +1 -1
- package/dist/core/github-auth.d.ts +5 -0
- package/dist/core/github-auth.d.ts.map +1 -1
- package/dist/core/github-auth.js +38 -0
- package/dist/core/github-auth.js.map +1 -1
- package/dist/core/maintenance.d.ts +1 -0
- package/dist/core/maintenance.d.ts.map +1 -1
- package/dist/core/maintenance.js +9 -1
- package/dist/core/maintenance.js.map +1 -1
- package/dist/core/session-create.d.ts +10 -0
- package/dist/core/session-create.d.ts.map +1 -1
- package/dist/core/session-create.js +21 -0
- package/dist/core/session-create.js.map +1 -1
- package/dist/core/session-manager.d.ts +4 -1
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +25 -13
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/trigger-session.d.ts +3 -0
- package/dist/core/trigger-session.d.ts.map +1 -1
- package/dist/core/trigger-session.js +17 -3
- package/dist/core/trigger-session.js.map +1 -1
- package/dist/core/worker-pool.d.ts.map +1 -1
- package/dist/core/worker-pool.js +2 -0
- package/dist/core/worker-pool.js.map +1 -1
- package/dist/daemon.d.ts.map +1 -1
- package/dist/daemon.js +19 -3
- package/dist/daemon.js.map +1 -1
- package/dist/dashboard/connector-api.d.ts.map +1 -1
- package/dist/dashboard/connector-api.js +19 -0
- package/dist/dashboard/connector-api.js.map +1 -1
- package/dist/dashboard/settings-write-applier.d.ts +2 -1
- package/dist/dashboard/settings-write-applier.d.ts.map +1 -1
- package/dist/dashboard/settings-write-applier.js +6 -0
- package/dist/dashboard/settings-write-applier.js.map +1 -1
- package/dist/dashboard/web/connectors-page.d.ts.map +1 -1
- package/dist/dashboard/web/connectors-page.js +23 -2
- package/dist/dashboard/web/connectors-page.js.map +1 -1
- package/dist/dashboard/web/create-session-composer.d.ts +35 -0
- package/dist/dashboard/web/create-session-composer.d.ts.map +1 -0
- package/dist/dashboard/web/create-session-composer.js +70 -0
- package/dist/dashboard/web/create-session-composer.js.map +1 -0
- package/dist/dashboard/web/i18n.d.ts.map +1 -1
- package/dist/dashboard/web/i18n.js +65 -5
- package/dist/dashboard/web/i18n.js.map +1 -1
- package/dist/dashboard/web/sessions-page.d.ts.map +1 -1
- package/dist/dashboard/web/sessions-page.js +147 -1
- package/dist/dashboard/web/sessions-page.js.map +1 -1
- package/dist/dashboard/web/settings-page.d.ts.map +1 -1
- package/dist/dashboard/web/settings-page.js +2 -1
- package/dist/dashboard/web/settings-page.js.map +1 -1
- package/dist/dashboard/web/skills-page.d.ts.map +1 -1
- package/dist/dashboard/web/skills-page.js +5 -2
- package/dist/dashboard/web/skills-page.js.map +1 -1
- package/dist/dashboard/webhook-routes.d.ts +4 -0
- package/dist/dashboard/webhook-routes.d.ts.map +1 -1
- package/dist/dashboard/webhook-routes.js +19 -0
- package/dist/dashboard/webhook-routes.js.map +1 -1
- package/dist/dashboard-web/app.js +1 -1
- package/dist/dashboard-web/chunks/{bot-defaults-page-4PM4T6QQ.js → bot-defaults-page-O37SAQD5.js} +1 -1
- package/dist/dashboard-web/chunks/{chunk-RXVA6XW3.js → chunk-6QHMLMIM.js} +6 -6
- package/dist/dashboard-web/chunks/{chunk-IKCZ677K.js → chunk-B42PCL5P.js} +1 -1
- package/dist/dashboard-web/chunks/{chunk-3PMN55Z6.js → chunk-FYALHCPG.js} +1 -1
- package/dist/dashboard-web/chunks/{chunk-AIDN2WZB.js → chunk-O2DPQL7C.js} +1 -1
- package/dist/dashboard-web/chunks/connectors-page-DZBQ42MH.js +1 -0
- package/dist/dashboard-web/chunks/{groups-page-TAU2UIVS.js → groups-page-3IEGRZKQ.js} +1 -1
- package/dist/dashboard-web/chunks/{insights-page-PJ2XVM6T.js → insights-page-X3ADRON3.js} +1 -1
- package/dist/dashboard-web/chunks/{monitor-room-D6445HJO.js → monitor-room-IV36RGQY.js} +1 -1
- package/dist/dashboard-web/chunks/{monitoring-page-GUHMCKSO.js → monitoring-page-ADFKVON4.js} +1 -1
- package/dist/dashboard-web/chunks/{office-page-6K6U2MS5.js → office-page-CALAOWNS.js} +1 -1
- package/dist/dashboard-web/chunks/{overview-page-USDYU7U5.js → overview-page-SLMGLK3M.js} +1 -1
- package/dist/dashboard-web/chunks/{roles-page-O4OUA7ZH.js → roles-page-L7JJ4FFV.js} +1 -1
- package/dist/dashboard-web/chunks/{schedules-page-LNIBXJSZ.js → schedules-page-Z3672POL.js} +1 -1
- package/dist/dashboard-web/chunks/sessions-page-OKJ5YWUZ.js +3 -0
- package/dist/dashboard-web/chunks/settings-page-P6MI2ZUE.js +2 -0
- package/dist/dashboard-web/chunks/{skills-page-M5KYNXBA.js → skills-page-FT7BVZ6X.js} +4 -4
- package/dist/dashboard-web/chunks/{team-federation-page-GT7UFQMN.js → team-federation-page-DEYCPUFB.js} +1 -1
- package/dist/dashboard-web/chunks/{v3-page-UYZIRJ2C.js → v3-page-4IOWREZG.js} +1 -1
- package/dist/dashboard-web/chunks/{whiteboards-page-WAR77DQE.js → whiteboards-page-2VMBETZH.js} +1 -1
- package/dist/dashboard-web/style.css +191 -0
- package/dist/dashboard.js +33 -6
- package/dist/dashboard.js.map +1 -1
- package/dist/global-config.d.ts +7 -0
- package/dist/global-config.d.ts.map +1 -1
- package/dist/global-config.js +2 -0
- package/dist/global-config.js.map +1 -1
- package/dist/im/lark/ask-card.d.ts.map +1 -1
- package/dist/im/lark/ask-card.js +52 -4
- package/dist/im/lark/ask-card.js.map +1 -1
- package/dist/im/lark/card-handler.d.ts +2 -0
- package/dist/im/lark/card-handler.d.ts.map +1 -1
- package/dist/im/lark/card-handler.js +19 -2
- package/dist/im/lark/card-handler.js.map +1 -1
- package/dist/im/lark/event-dispatcher.d.ts +3 -0
- package/dist/im/lark/event-dispatcher.d.ts.map +1 -1
- package/dist/im/lark/event-dispatcher.js +706 -693
- package/dist/im/lark/event-dispatcher.js.map +1 -1
- package/dist/im/lark/grant-pending.d.ts +8 -4
- package/dist/im/lark/grant-pending.d.ts.map +1 -1
- package/dist/im/lark/grant-pending.js +13 -6
- package/dist/im/lark/grant-pending.js.map +1 -1
- package/dist/services/connector-store.d.ts +8 -0
- package/dist/services/connector-store.d.ts.map +1 -1
- package/dist/services/connector-store.js.map +1 -1
- package/dist/services/session-store.d.ts +2 -1
- package/dist/services/session-store.d.ts.map +1 -1
- package/dist/services/session-store.js +60 -2
- package/dist/services/session-store.js.map +1 -1
- package/dist/services/skill-registry-store.d.ts +16 -0
- package/dist/services/skill-registry-store.d.ts.map +1 -1
- package/dist/services/skill-registry-store.js +343 -47
- package/dist/services/skill-registry-store.js.map +1 -1
- package/dist/services/trigger-types.d.ts +5 -0
- package/dist/services/trigger-types.d.ts.map +1 -1
- package/dist/services/trigger-types.js +12 -0
- package/dist/services/trigger-types.js.map +1 -1
- package/dist/types.d.ts +13 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/worker.js +440 -34
- package/dist/worker.js.map +1 -1
- package/package.json +1 -1
- package/dist/dashboard-web/chunks/connectors-page-2MKF4YTN.js +0 -1
- package/dist/dashboard-web/chunks/sessions-page-B6U6TCFF.js +0 -3
- package/dist/dashboard-web/chunks/settings-page-PXLRFF7I.js +0 -2
|
@@ -16820,6 +16820,68 @@ form.dashboard-toolbar > input[type="text"]:focus {
|
|
|
16820
16820
|
border: 4px solid var(--accent);
|
|
16821
16821
|
}
|
|
16822
16822
|
|
|
16823
|
+
.connector-topic-message-config {
|
|
16824
|
+
padding: 12px;
|
|
16825
|
+
border: 1px solid var(--border-soft);
|
|
16826
|
+
border-radius: var(--radius-lg);
|
|
16827
|
+
background: color-mix(in srgb, var(--surface-muted) 54%, transparent);
|
|
16828
|
+
}
|
|
16829
|
+
|
|
16830
|
+
.connector-topic-message-options {
|
|
16831
|
+
display: grid;
|
|
16832
|
+
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
16833
|
+
gap: 8px;
|
|
16834
|
+
}
|
|
16835
|
+
|
|
16836
|
+
.connector-topic-message-option {
|
|
16837
|
+
display: grid;
|
|
16838
|
+
grid-template-columns: auto minmax(0, 1fr);
|
|
16839
|
+
gap: 10px;
|
|
16840
|
+
align-items: start;
|
|
16841
|
+
padding: 11px 12px;
|
|
16842
|
+
border: 1px solid var(--border-soft);
|
|
16843
|
+
border-radius: var(--radius-lg);
|
|
16844
|
+
background: var(--surface);
|
|
16845
|
+
color: var(--fg);
|
|
16846
|
+
text-align: left;
|
|
16847
|
+
box-shadow: none;
|
|
16848
|
+
}
|
|
16849
|
+
|
|
16850
|
+
.connector-topic-message-option:hover,
|
|
16851
|
+
.connector-topic-message-option.selected {
|
|
16852
|
+
border-color: var(--accent);
|
|
16853
|
+
background: color-mix(in srgb, var(--accent) 7%, var(--surface));
|
|
16854
|
+
transform: none;
|
|
16855
|
+
}
|
|
16856
|
+
|
|
16857
|
+
.connector-topic-message-option > span:last-child { display: grid; gap: 4px; min-width: 0; }
|
|
16858
|
+
.connector-topic-message-option b { color: var(--fg); font-size: 12px; }
|
|
16859
|
+
.connector-topic-message-option small { color: var(--muted); font-size: 11px; font-weight: 600; line-height: 1.4; }
|
|
16860
|
+
.connector-topic-message-option.selected .connector-strategy-radio { border: 4px solid var(--accent); }
|
|
16861
|
+
|
|
16862
|
+
.connector-topic-message-input { display: grid; gap: 6px; }
|
|
16863
|
+
.connector-topic-message-input > small {
|
|
16864
|
+
display: flex;
|
|
16865
|
+
justify-content: space-between;
|
|
16866
|
+
gap: 12px;
|
|
16867
|
+
color: var(--muted);
|
|
16868
|
+
font-size: 11px;
|
|
16869
|
+
font-weight: 600;
|
|
16870
|
+
}
|
|
16871
|
+
.connector-topic-message-input > small span { color: var(--faint); font-variant-numeric: tabular-nums; }
|
|
16872
|
+
|
|
16873
|
+
.connector-topic-message-preview {
|
|
16874
|
+
margin: 0;
|
|
16875
|
+
padding: 9px 11px;
|
|
16876
|
+
border: 1px dashed color-mix(in srgb, var(--accent) 35%, var(--border-soft));
|
|
16877
|
+
border-radius: var(--radius-md);
|
|
16878
|
+
background: color-mix(in srgb, var(--accent) 5%, transparent);
|
|
16879
|
+
color: var(--fg);
|
|
16880
|
+
font-size: 11.5px;
|
|
16881
|
+
font-weight: 600;
|
|
16882
|
+
line-height: 1.45;
|
|
16883
|
+
}
|
|
16884
|
+
|
|
16823
16885
|
.connector-dedup-field { display: grid; gap: 7px; }
|
|
16824
16886
|
|
|
16825
16887
|
.connector-new-group-note {
|
|
@@ -17205,6 +17267,10 @@ form.dashboard-toolbar > input[type="text"]:focus {
|
|
|
17205
17267
|
grid-template-columns: 1fr;
|
|
17206
17268
|
}
|
|
17207
17269
|
|
|
17270
|
+
.connector-topic-message-options {
|
|
17271
|
+
grid-template-columns: 1fr;
|
|
17272
|
+
}
|
|
17273
|
+
|
|
17208
17274
|
.connector-group-picker-popover {
|
|
17209
17275
|
min-width: 100%;
|
|
17210
17276
|
}
|
|
@@ -22168,6 +22234,131 @@ dialog.onboarding-dialog .onboarding-technical > code {
|
|
|
22168
22234
|
resize: vertical;
|
|
22169
22235
|
min-height: 124px;
|
|
22170
22236
|
}
|
|
22237
|
+
.create-session-modal .cs-composer {
|
|
22238
|
+
position: relative;
|
|
22239
|
+
}
|
|
22240
|
+
.create-session-modal .cs-mention-menu {
|
|
22241
|
+
position: absolute;
|
|
22242
|
+
z-index: 3;
|
|
22243
|
+
top: calc(100% + 4px);
|
|
22244
|
+
left: 0;
|
|
22245
|
+
right: 0;
|
|
22246
|
+
display: grid;
|
|
22247
|
+
max-height: 220px;
|
|
22248
|
+
padding: 6px;
|
|
22249
|
+
border: 1px solid var(--border-soft);
|
|
22250
|
+
border-radius: var(--radius-md);
|
|
22251
|
+
background: var(--surface);
|
|
22252
|
+
box-shadow: var(--shadow);
|
|
22253
|
+
overflow: auto;
|
|
22254
|
+
}
|
|
22255
|
+
.create-session-modal .cs-mention-menu > button {
|
|
22256
|
+
display: flex;
|
|
22257
|
+
align-items: center;
|
|
22258
|
+
justify-content: space-between;
|
|
22259
|
+
gap: var(--cs-inner-gap);
|
|
22260
|
+
width: 100%;
|
|
22261
|
+
min-height: 38px;
|
|
22262
|
+
margin: 0;
|
|
22263
|
+
padding: 6px 10px;
|
|
22264
|
+
border: 0;
|
|
22265
|
+
border-radius: var(--radius-sm);
|
|
22266
|
+
background: transparent;
|
|
22267
|
+
color: var(--fg);
|
|
22268
|
+
text-align: left;
|
|
22269
|
+
box-shadow: none;
|
|
22270
|
+
}
|
|
22271
|
+
.create-session-modal .cs-mention-menu > button:hover,
|
|
22272
|
+
.create-session-modal .cs-mention-menu > button.active {
|
|
22273
|
+
background: var(--accent-soft);
|
|
22274
|
+
color: var(--accent-strong);
|
|
22275
|
+
}
|
|
22276
|
+
.create-session-modal .cs-mention-menu > button small {
|
|
22277
|
+
min-width: 0;
|
|
22278
|
+
color: var(--muted);
|
|
22279
|
+
overflow: hidden;
|
|
22280
|
+
text-overflow: ellipsis;
|
|
22281
|
+
white-space: nowrap;
|
|
22282
|
+
}
|
|
22283
|
+
.create-session-modal .cs-mention-menu > p {
|
|
22284
|
+
margin: 0;
|
|
22285
|
+
padding: 8px 10px;
|
|
22286
|
+
color: var(--muted);
|
|
22287
|
+
font-size: 12px;
|
|
22288
|
+
}
|
|
22289
|
+
.create-session-modal .cs-image-list {
|
|
22290
|
+
display: grid;
|
|
22291
|
+
grid-template-columns: repeat(auto-fill, minmax(112px, 1fr));
|
|
22292
|
+
gap: var(--cs-inner-gap);
|
|
22293
|
+
}
|
|
22294
|
+
.create-session-modal .cs-image-item {
|
|
22295
|
+
position: relative;
|
|
22296
|
+
min-width: 0;
|
|
22297
|
+
margin: 0;
|
|
22298
|
+
padding: 6px;
|
|
22299
|
+
border: 1px solid var(--border-soft);
|
|
22300
|
+
border-radius: var(--radius-md);
|
|
22301
|
+
background: var(--surface);
|
|
22302
|
+
}
|
|
22303
|
+
.create-session-modal .cs-image-item img {
|
|
22304
|
+
display: block;
|
|
22305
|
+
width: 100%;
|
|
22306
|
+
height: 78px;
|
|
22307
|
+
border-radius: var(--radius-sm);
|
|
22308
|
+
object-fit: contain;
|
|
22309
|
+
background: var(--surface-muted);
|
|
22310
|
+
}
|
|
22311
|
+
.create-session-modal .cs-image-item figcaption {
|
|
22312
|
+
display: grid;
|
|
22313
|
+
gap: 2px;
|
|
22314
|
+
margin-top: 5px;
|
|
22315
|
+
color: var(--muted);
|
|
22316
|
+
font-size: 11px;
|
|
22317
|
+
overflow: hidden;
|
|
22318
|
+
text-overflow: ellipsis;
|
|
22319
|
+
white-space: nowrap;
|
|
22320
|
+
}
|
|
22321
|
+
.create-session-modal .cs-image-item figcaption strong {
|
|
22322
|
+
color: var(--fg);
|
|
22323
|
+
font-size: 11px;
|
|
22324
|
+
line-height: 1.25;
|
|
22325
|
+
}
|
|
22326
|
+
.create-session-modal .cs-image-item figcaption span {
|
|
22327
|
+
overflow: hidden;
|
|
22328
|
+
text-overflow: ellipsis;
|
|
22329
|
+
white-space: nowrap;
|
|
22330
|
+
}
|
|
22331
|
+
.create-session-modal .cs-image-item > .cs-image-remove {
|
|
22332
|
+
position: absolute;
|
|
22333
|
+
top: 10px;
|
|
22334
|
+
right: 10px;
|
|
22335
|
+
z-index: 2;
|
|
22336
|
+
box-sizing: border-box;
|
|
22337
|
+
display: inline-grid;
|
|
22338
|
+
place-items: center;
|
|
22339
|
+
width: 34px;
|
|
22340
|
+
min-width: 34px;
|
|
22341
|
+
height: 34px;
|
|
22342
|
+
min-height: 34px;
|
|
22343
|
+
margin: 0;
|
|
22344
|
+
padding: 0 !important;
|
|
22345
|
+
border: 1px solid color-mix(in srgb, var(--border) 70%, transparent);
|
|
22346
|
+
border-radius: 999px;
|
|
22347
|
+
background: color-mix(in srgb, var(--surface) 88%, transparent);
|
|
22348
|
+
color: var(--fg);
|
|
22349
|
+
line-height: 1;
|
|
22350
|
+
box-shadow: 0 2px 8px color-mix(in srgb, #000 28%, transparent);
|
|
22351
|
+
touch-action: manipulation;
|
|
22352
|
+
}
|
|
22353
|
+
.create-session-modal .cs-image-item > .cs-image-remove svg {
|
|
22354
|
+
display: block;
|
|
22355
|
+
width: 16px;
|
|
22356
|
+
height: 16px;
|
|
22357
|
+
fill: none;
|
|
22358
|
+
stroke: currentColor;
|
|
22359
|
+
stroke-width: 2;
|
|
22360
|
+
stroke-linecap: round;
|
|
22361
|
+
}
|
|
22171
22362
|
.create-session-modal fieldset {
|
|
22172
22363
|
margin: 0;
|
|
22173
22364
|
padding: var(--cs-gap);
|
package/dist/dashboard.js
CHANGED
|
@@ -52,7 +52,7 @@ import { createDaemonInternalApi } from './dashboard/daemon-internal-api.js';
|
|
|
52
52
|
import { listTeamReports, readTeamBoard, setTeamBoardEntry } from './services/team-board-store.js';
|
|
53
53
|
import { createCliAdapterSync } from './adapters/cli/registry.js';
|
|
54
54
|
import { hd2dAssetPath, hd2dStatus, startHd2dDownload } from './dashboard/hd2d-assets.js';
|
|
55
|
-
import { installLocalSkillLinks, readSkillRegistry, removeInstalledSkill, removeInstalledSkills, updateInstalledSkillAsync, } from './services/skill-registry-store.js';
|
|
55
|
+
import { buildSkillInstallAuditSummary, installLocalSkillLinks, readSkillRegistry, removeInstalledSkill, removeInstalledSkills, updateInstalledSkillAsync, } from './services/skill-registry-store.js';
|
|
56
56
|
import { redactGitUrlCredentials } from './core/skills/sources.js';
|
|
57
57
|
import { effectiveDefaultWorkingDir, getBot, loadBotConfigs, parseBotConfigsFromText } from './bot-registry.js';
|
|
58
58
|
import { findEntryIndex, readRawConfig, requireConfigPath, writeRawConfigAtomic } from './services/config-store.js';
|
|
@@ -78,6 +78,8 @@ import { aggregateRoleBatch, parseRoleBatchTargets } from './dashboard/roles-bat
|
|
|
78
78
|
import { automateOpenPlatformSetup, vcListenerEventGateError } from './setup/open-platform-automation.js';
|
|
79
79
|
import { VC_MEETING_FEATURE_SCOPES, VC_MEETING_REALTIME_VOICE_SCOPES } from './setup/verify-permissions.js';
|
|
80
80
|
import { maybeInstallTraexPluginOnSettingsChange, TRAEX_RECOMMENDED_SOURCE, TRAEX_RECOMMENDED_REF } from './setup/ensure-herdr-integrations.js';
|
|
81
|
+
import { deriveCreateGroupName, selectCreateSessionTargets } from './core/session-create.js';
|
|
82
|
+
import { parseDashboardImageUploads } from './core/dashboard-images.js';
|
|
81
83
|
import { checkLarkCliVersion, MIN_LARK_CLI_VERSION_FOR_VC_BOT } from './vc-agent/polling-source.js';
|
|
82
84
|
import { larkHosts } from './im/lark/lark-hosts.js';
|
|
83
85
|
import { buildResourceMonitorDaemonSeeds, createResourceMonitorService, handleResourceMonitorApi, toResourceMonitorSessionSeed } from './dashboard/resource-monitor-service.js';
|
|
@@ -676,6 +678,7 @@ function resolveDashboardSettings() {
|
|
|
676
678
|
recommendedSource: TRAEX_RECOMMENDED_SOURCE,
|
|
677
679
|
recommendedRef: TRAEX_RECOMMENDED_REF,
|
|
678
680
|
},
|
|
681
|
+
codexRpcInput: dashboard.codexRpcInput === true, // default OFF until live-verified
|
|
679
682
|
vcMeetingAgent: {
|
|
680
683
|
enabled: global.vcMeetingAgent?.enabled !== false,
|
|
681
684
|
listenerBotAppId: global.vcMeetingAgent?.listenerBotAppId ?? null,
|
|
@@ -1845,10 +1848,32 @@ function startSkillJob(type, run) {
|
|
|
1845
1848
|
job.skills = [result];
|
|
1846
1849
|
}
|
|
1847
1850
|
job.status = 'succeeded';
|
|
1851
|
+
const audits = (job.skills ?? []).map(skill => {
|
|
1852
|
+
try {
|
|
1853
|
+
return buildSkillInstallAuditSummary(skill);
|
|
1854
|
+
}
|
|
1855
|
+
catch {
|
|
1856
|
+
return {
|
|
1857
|
+
name: skill.name,
|
|
1858
|
+
sourceType: skill.source.type,
|
|
1859
|
+
auditError: 'static_scan_failed',
|
|
1860
|
+
};
|
|
1861
|
+
}
|
|
1862
|
+
});
|
|
1863
|
+
logger.info('[skills:audit] job succeeded', {
|
|
1864
|
+
jobId: job.id,
|
|
1865
|
+
operation: type,
|
|
1866
|
+
skills: audits,
|
|
1867
|
+
});
|
|
1848
1868
|
}
|
|
1849
1869
|
catch (err) {
|
|
1850
1870
|
job.error = redactGitUrlCredentials(err?.message ?? String(err));
|
|
1851
1871
|
job.status = 'failed';
|
|
1872
|
+
logger.warn('[skills:audit] job failed', {
|
|
1873
|
+
jobId: job.id,
|
|
1874
|
+
operation: type,
|
|
1875
|
+
error: job.error,
|
|
1876
|
+
});
|
|
1852
1877
|
}
|
|
1853
1878
|
finally {
|
|
1854
1879
|
job.updatedAt = new Date().toISOString();
|
|
@@ -4161,7 +4186,10 @@ const server = createServer(async (req, res) => {
|
|
|
4161
4186
|
return jsonRes(res, 400, { ok: false, error: 'bad_column' });
|
|
4162
4187
|
const bindWorkingDir = typeof parsed.bindWorkingDir === 'string' && parsed.bindWorkingDir.trim()
|
|
4163
4188
|
? parsed.bindWorkingDir.trim() : undefined;
|
|
4164
|
-
const name =
|
|
4189
|
+
const name = deriveCreateGroupName(parsed.name, content);
|
|
4190
|
+
const parsedImages = parseDashboardImageUploads(parsed.images);
|
|
4191
|
+
if (!parsedImages.ok)
|
|
4192
|
+
return jsonRes(res, 400, { ok: false, error: parsedImages.error });
|
|
4165
4193
|
// 解析 creator:lead 模式 = lead bot;一起开工 = pickCreatorForGroup 在选中里挑一个在线的。
|
|
4166
4194
|
let creatorLarkAppId;
|
|
4167
4195
|
if (mode === 'lead') {
|
|
@@ -4218,9 +4246,7 @@ const server = createServer(async (req, res) => {
|
|
|
4218
4246
|
const invalidBotIds = Array.isArray(groupResp.invalidBotIds) ? groupResp.invalidBotIds : [];
|
|
4219
4247
|
// spawn 目标:lead 模式只有 lead;一起开工是所有成功入群的选中 bot。
|
|
4220
4248
|
const joinedIds = selectedIds.filter(id => !invalidBotIds.includes(id) && !!registry.getByAppId(id));
|
|
4221
|
-
const targets = mode
|
|
4222
|
-
? (joinedIds.includes(creatorLarkAppId) ? [creatorLarkAppId] : [])
|
|
4223
|
-
: joinedIds;
|
|
4249
|
+
const targets = selectCreateSessionTargets(mode, joinedIds, creatorLarkAppId);
|
|
4224
4250
|
if (targets.length === 0) {
|
|
4225
4251
|
return jsonRes(res, 200, { ok: true, chatId, shareLink: groupResp.shareLink, spawned: [], failed: [], warning: 'no_spawn_target' });
|
|
4226
4252
|
}
|
|
@@ -4231,7 +4257,7 @@ const server = createServer(async (req, res) => {
|
|
|
4231
4257
|
await Promise.all(targets.map(async (appId) => {
|
|
4232
4258
|
const role = mode === 'lead' ? 'lead' : (targets.length > 1 ? 'collab' : 'solo');
|
|
4233
4259
|
// lead 的 coworker = 所有 sub(除自己);collab 的 coworker = 其它并列 bot(除自己)。
|
|
4234
|
-
const coworkerIds = (mode === 'lead' ?
|
|
4260
|
+
const coworkerIds = (mode === 'lead' ? joinedIds : targets).filter(id => id !== appId);
|
|
4235
4261
|
const coworkers = coworkerIds.map(id => ({ name: nameOf(id) }));
|
|
4236
4262
|
try {
|
|
4237
4263
|
const up = await proxyToDaemon(appId, '/api/sessions/spawn', {
|
|
@@ -4239,6 +4265,7 @@ const server = createServer(async (req, res) => {
|
|
|
4239
4265
|
headers: { 'content-type': 'application/json' },
|
|
4240
4266
|
body: JSON.stringify({
|
|
4241
4267
|
chatId, content, column, role, coworkers,
|
|
4268
|
+
images: parsedImages.images,
|
|
4242
4269
|
postBanner: appId === creatorLarkAppId,
|
|
4243
4270
|
}),
|
|
4244
4271
|
});
|