@adhdev/daemon-standalone 0.9.82-rc.544 → 0.9.82-rc.546
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/public/index.html
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
<meta name="description" content="ADHDev self-hosted dashboard for controlling AI agents" />
|
|
8
8
|
<link rel="icon" href="/otter-logo.png" />
|
|
9
9
|
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap" rel="stylesheet" />
|
|
10
|
-
<script type="module" crossorigin src="/assets/index-
|
|
10
|
+
<script type="module" crossorigin src="/assets/index-CFipsywm.js"></script>
|
|
11
11
|
<link rel="modulepreload" crossorigin href="/assets/vendor-MlvUnxKA.js">
|
|
12
12
|
<link rel="stylesheet" crossorigin href="/assets/index-D_scUWf6.css">
|
|
13
13
|
</head>
|
|
@@ -3822,6 +3822,14 @@ function findInFlightDuplicate(ctx, message, targetNodeId) {
|
|
|
3822
3822
|
return null;
|
|
3823
3823
|
}
|
|
3824
3824
|
async function meshEnqueueTask(ctx, args) {
|
|
3825
|
+
const message = readString(args.message);
|
|
3826
|
+
if (!message) {
|
|
3827
|
+
return JSON.stringify({
|
|
3828
|
+
success: false,
|
|
3829
|
+
code: "invalid_message",
|
|
3830
|
+
error: "mesh_enqueue_task requires a non-empty string `message`."
|
|
3831
|
+
});
|
|
3832
|
+
}
|
|
3825
3833
|
const taskMode = readString(args.task_mode) || readString(args.taskMode);
|
|
3826
3834
|
const readonly = args.readonly === true || args.read_only === true;
|
|
3827
3835
|
const requiredTags = (0, import_daemon_core4.normalizeMeshCapabilityTags)(Array.isArray(args.requiredTags) ? args.requiredTags : args.required_tags);
|
|
@@ -3855,7 +3863,7 @@ async function meshEnqueueTask(ctx, args) {
|
|
|
3855
3863
|
} else if (preferWorktree) {
|
|
3856
3864
|
targetNodeId = resolvePreferredWorktreeNodeId(ctx) || void 0;
|
|
3857
3865
|
}
|
|
3858
|
-
const duplicateSuspect = allowDuplicate ? null : findInFlightDuplicate(ctx,
|
|
3866
|
+
const duplicateSuspect = allowDuplicate ? null : findInFlightDuplicate(ctx, message, targetNodeId);
|
|
3859
3867
|
if (duplicateSuspect && blockDuplicate) {
|
|
3860
3868
|
return JSON.stringify({
|
|
3861
3869
|
success: false,
|
|
@@ -3865,7 +3873,7 @@ async function meshEnqueueTask(ctx, args) {
|
|
|
3865
3873
|
});
|
|
3866
3874
|
}
|
|
3867
3875
|
try {
|
|
3868
|
-
const task = (0, import_daemon_core4.enqueueTask)(ctx.mesh.id,
|
|
3876
|
+
const task = (0, import_daemon_core4.enqueueTask)(ctx.mesh.id, message, {
|
|
3869
3877
|
taskMode,
|
|
3870
3878
|
...readonly ? { readonly: true } : {},
|
|
3871
3879
|
requiredTags,
|
|
@@ -3919,7 +3927,7 @@ async function meshEnqueueTask(ctx, args) {
|
|
|
3919
3927
|
if (!(0, import_daemon_core4.nodeSatisfiesRequiredTags)(requiredTags, (0, import_daemon_core4.buildMeshNodeCapabilityTags)(node))) continue;
|
|
3920
3928
|
dispatchPromises.push(
|
|
3921
3929
|
ipcDispatchToRemoteAgent(ctx, node, {
|
|
3922
|
-
message
|
|
3930
|
+
message,
|
|
3923
3931
|
meshContext: {
|
|
3924
3932
|
meshId: ctx.mesh.id,
|
|
3925
3933
|
nodeId: node.id,
|
|
@@ -3930,7 +3938,7 @@ async function meshEnqueueTask(ctx, args) {
|
|
|
3930
3938
|
if (result.success) {
|
|
3931
3939
|
try {
|
|
3932
3940
|
const providerType = result.providerType;
|
|
3933
|
-
const descriptor = summarizeTaskMessage(
|
|
3941
|
+
const descriptor = summarizeTaskMessage(message);
|
|
3934
3942
|
(0, import_daemon_core4.appendLedgerEntry)(ctx.mesh.id, {
|
|
3935
3943
|
kind: "task_dispatched",
|
|
3936
3944
|
nodeId: node.id,
|
|
@@ -3940,7 +3948,7 @@ async function meshEnqueueTask(ctx, args) {
|
|
|
3940
3948
|
source: "queue",
|
|
3941
3949
|
via: "p2p_direct",
|
|
3942
3950
|
taskId: task.id,
|
|
3943
|
-
message
|
|
3951
|
+
message,
|
|
3944
3952
|
taskTitle: descriptor.taskTitle,
|
|
3945
3953
|
taskSummary: descriptor.taskSummary,
|
|
3946
3954
|
...task.taskMode ? { taskMode: task.taskMode } : {},
|
|
@@ -3988,14 +3996,14 @@ async function meshEnqueueTask(ctx, args) {
|
|
|
3988
3996
|
});
|
|
3989
3997
|
}
|
|
3990
3998
|
} catch (e) {
|
|
3991
|
-
const
|
|
3992
|
-
if (
|
|
3993
|
-
return JSON.stringify({ success: false, code: "live_debug_readonly_guardrail_violation", taskMode, error:
|
|
3999
|
+
const message2 = e?.message || String(e);
|
|
4000
|
+
if (message2.includes("live_debug_readonly_guardrail_violation")) {
|
|
4001
|
+
return JSON.stringify({ success: false, code: "live_debug_readonly_guardrail_violation", taskMode, error: message2 });
|
|
3994
4002
|
}
|
|
3995
|
-
if (
|
|
3996
|
-
return JSON.stringify({ success: false, code: "dependency_cycle_detected", dependsOn, error:
|
|
4003
|
+
if (message2.includes("dependency_cycle_detected")) {
|
|
4004
|
+
return JSON.stringify({ success: false, code: "dependency_cycle_detected", dependsOn, error: message2 });
|
|
3997
4005
|
}
|
|
3998
|
-
return JSON.stringify({ success: false, error:
|
|
4006
|
+
return JSON.stringify({ success: false, error: message2 });
|
|
3999
4007
|
}
|
|
4000
4008
|
}
|
|
4001
4009
|
async function meshViewQueue(ctx, args) {
|
|
@@ -6234,10 +6242,18 @@ async function meshPruneStaleDirect(ctx, args = {}) {
|
|
|
6234
6242
|
}, null, 2);
|
|
6235
6243
|
}
|
|
6236
6244
|
async function meshSendTask(ctx, args) {
|
|
6245
|
+
const message = readString(args.message);
|
|
6246
|
+
if (!message) {
|
|
6247
|
+
return JSON.stringify({
|
|
6248
|
+
success: false,
|
|
6249
|
+
code: "invalid_message",
|
|
6250
|
+
error: "mesh_send_task requires a non-empty string `message`."
|
|
6251
|
+
});
|
|
6252
|
+
}
|
|
6237
6253
|
const requestedTaskMode = readString(args.task_mode) || readString(args.taskMode);
|
|
6238
6254
|
const readonly = args.readonly === true || args.read_only === true;
|
|
6239
6255
|
const missionId = readString(args.missionId) || readString(args.mission_id) || void 0;
|
|
6240
|
-
const modeValidation = (0, import_daemon_core4.validateMeshTaskModeRequest)(requestedTaskMode,
|
|
6256
|
+
const modeValidation = (0, import_daemon_core4.validateMeshTaskModeRequest)(requestedTaskMode, message, readonly);
|
|
6241
6257
|
if (!modeValidation.valid) {
|
|
6242
6258
|
return JSON.stringify({
|
|
6243
6259
|
success: false,
|
|
@@ -6329,7 +6345,7 @@ async function meshSendTask(ctx, args) {
|
|
|
6329
6345
|
const coordinatorDaemonId = resolveCoordinatorDaemonId(ctx);
|
|
6330
6346
|
const result2 = await ipcDispatchToRemoteAgent(ctx, node, {
|
|
6331
6347
|
session_id: args.session_id,
|
|
6332
|
-
message
|
|
6348
|
+
message,
|
|
6333
6349
|
providerType: cached?.providerType,
|
|
6334
6350
|
verifiedSession: explicitTargetSession,
|
|
6335
6351
|
meshContext: {
|
|
@@ -6354,7 +6370,7 @@ async function meshSendTask(ctx, args) {
|
|
|
6354
6370
|
nodeId: args.node_id,
|
|
6355
6371
|
sessionId: dispatchedSessionId,
|
|
6356
6372
|
providerType,
|
|
6357
|
-
payload: buildDirectTaskPayload(
|
|
6373
|
+
payload: buildDirectTaskPayload(message, "p2p_direct", {
|
|
6358
6374
|
taskId,
|
|
6359
6375
|
taskMode,
|
|
6360
6376
|
providerType,
|
|
@@ -6371,13 +6387,13 @@ async function meshSendTask(ctx, args) {
|
|
|
6371
6387
|
nodeId: args.node_id,
|
|
6372
6388
|
sessionId: dispatchedSessionId,
|
|
6373
6389
|
providerType: providerType || void 0,
|
|
6374
|
-
message
|
|
6390
|
+
message,
|
|
6375
6391
|
taskMode: taskMode || void 0,
|
|
6376
6392
|
via: "p2p_direct",
|
|
6377
6393
|
dispatchedAt
|
|
6378
6394
|
});
|
|
6379
6395
|
if (missionId) {
|
|
6380
|
-
(0, import_daemon_core4.recordDirectDispatchTask)(ctx.mesh.id,
|
|
6396
|
+
(0, import_daemon_core4.recordDirectDispatchTask)(ctx.mesh.id, message, {
|
|
6381
6397
|
id: taskId,
|
|
6382
6398
|
missionId,
|
|
6383
6399
|
assignedNodeId: args.node_id,
|
|
@@ -6487,7 +6503,7 @@ async function meshSendTask(ctx, args) {
|
|
|
6487
6503
|
sessionId: args.session_id,
|
|
6488
6504
|
providerType: resolvedProviderType,
|
|
6489
6505
|
kind: "task",
|
|
6490
|
-
message
|
|
6506
|
+
message,
|
|
6491
6507
|
status: "queued"
|
|
6492
6508
|
});
|
|
6493
6509
|
return JSON.stringify({
|
|
@@ -6515,7 +6531,7 @@ async function meshSendTask(ctx, args) {
|
|
|
6515
6531
|
nodeId: args.node_id,
|
|
6516
6532
|
sessionId: args.session_id,
|
|
6517
6533
|
providerType: resolvedProviderType,
|
|
6518
|
-
payload: buildDirectTaskPayload(
|
|
6534
|
+
payload: buildDirectTaskPayload(message, "local_direct", {
|
|
6519
6535
|
taskId,
|
|
6520
6536
|
taskMode,
|
|
6521
6537
|
providerType: resolvedProviderType,
|
|
@@ -6535,7 +6551,7 @@ async function meshSendTask(ctx, args) {
|
|
|
6535
6551
|
nodeId: args.node_id,
|
|
6536
6552
|
sessionId: args.session_id,
|
|
6537
6553
|
providerType: resolvedProviderType || void 0,
|
|
6538
|
-
message
|
|
6554
|
+
message,
|
|
6539
6555
|
taskMode: taskMode || void 0,
|
|
6540
6556
|
via: "local_direct",
|
|
6541
6557
|
dispatchedToIdleSession: sessionWasIdle,
|
|
@@ -6552,7 +6568,7 @@ async function meshSendTask(ctx, args) {
|
|
|
6552
6568
|
cliType: resolvedProviderType,
|
|
6553
6569
|
providerType: resolvedProviderType,
|
|
6554
6570
|
action: "send_chat",
|
|
6555
|
-
message
|
|
6571
|
+
message,
|
|
6556
6572
|
meshContext: {
|
|
6557
6573
|
meshId: ctx.mesh.id,
|
|
6558
6574
|
nodeId: args.node_id,
|
|
@@ -6580,7 +6596,7 @@ async function meshSendTask(ctx, args) {
|
|
|
6580
6596
|
}
|
|
6581
6597
|
if (missionId) {
|
|
6582
6598
|
try {
|
|
6583
|
-
(0, import_daemon_core4.recordDirectDispatchTask)(ctx.mesh.id,
|
|
6599
|
+
(0, import_daemon_core4.recordDirectDispatchTask)(ctx.mesh.id, message, {
|
|
6584
6600
|
id: taskId,
|
|
6585
6601
|
missionId,
|
|
6586
6602
|
assignedNodeId: args.node_id,
|
|
@@ -6602,7 +6618,7 @@ async function meshSendTask(ctx, args) {
|
|
|
6602
6618
|
providerType: resolvedProviderType || void 0,
|
|
6603
6619
|
taskId,
|
|
6604
6620
|
kind: "task",
|
|
6605
|
-
message
|
|
6621
|
+
message,
|
|
6606
6622
|
status: sessionWasIdle ? "delivered" : "delivering"
|
|
6607
6623
|
});
|
|
6608
6624
|
deliveryId = delivery.id;
|
|
@@ -6625,7 +6641,7 @@ async function meshSendTask(ctx, args) {
|
|
|
6625
6641
|
...computeIdleDispatchAckRisk(sessionWasIdle, dispatchPreRecorded, args.session_id)
|
|
6626
6642
|
});
|
|
6627
6643
|
}
|
|
6628
|
-
const task = (0, import_daemon_core4.enqueueTask)(ctx.mesh.id,
|
|
6644
|
+
const task = (0, import_daemon_core4.enqueueTask)(ctx.mesh.id, message, {
|
|
6629
6645
|
targetNodeId: args.node_id,
|
|
6630
6646
|
targetSessionId: args.session_id,
|
|
6631
6647
|
taskMode,
|