@adhdev/daemon-core 0.9.76-rc.56 → 0.9.76-rc.57
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 +22 -10
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +22 -10
- package/dist/index.mjs.map +1 -1
- package/dist/types.d.ts +9 -0
- package/package.json +1 -1
- package/src/mesh/coordinator-prompt.ts +3 -3
- package/src/providers/chat-message-normalization.ts +12 -5
- package/src/providers/read-chat-contract.ts +8 -0
- package/src/types.ts +9 -0
package/dist/index.mjs
CHANGED
|
@@ -666,7 +666,7 @@ function buildRulesSection(coordinatorCliType) {
|
|
|
666
666
|
- **Respect explicit provider requests.** If the user names an agent/provider, pass the matching provider type to \`mesh_launch_session\`: Hermes \u2192 \`hermes-cli\`, Claude Code/Claude \u2192 \`claude-cli\`, Codex \u2192 \`codex-cli\`, Gemini \u2192 \`gemini-cli\`. Never substitute \`claude-cli\` just because the coordinator itself is Claude Code.
|
|
667
667
|
- **Front-load the task message.** When calling \`mesh_send_task\`, include everything the agent needs: what files to touch, what the problem is, what the fix should look like. The agent won't ask follow-up questions.
|
|
668
668
|
- **Don't inspect code.** Trust the agent's output. Verify via \`mesh_git_status\`, not by reading source files.
|
|
669
|
-
- **Don't over-parallelize.** Start with 1-2 concurrent tasks. Scale up if they succeed.
|
|
669
|
+
- **Don't over-parallelize.** Start with 1-2 concurrent tasks. Scale up if they succeed. Never launch a duplicate session or second worker solely because \`mesh_read_chat\` has no final assistant message while the delegated session is still showing tool/terminal activity.
|
|
670
670
|
- **Handle failures gracefully.** If a task fails, read the chat to understand why, then retry or reassign.
|
|
671
671
|
- **Keep the user informed.** Report progress after each delegation round \u2014 one or two sentences, not a narration.
|
|
672
672
|
- **Respect node capabilities.** Don't send build tasks to read-only nodes. Don't push from nodes that aren't allowed to.
|
|
@@ -702,8 +702,8 @@ var init_coordinator_prompt = __esm({
|
|
|
702
702
|
b. If you need branch isolation for parallel work, call \`mesh_clone_node\` to create a worktree node first.
|
|
703
703
|
c. If no session exists, call \`mesh_launch_session\` to start one.
|
|
704
704
|
d. Call \`mesh_send_task\` with a **complete, self-contained** instruction that includes all context the agent needs (file paths, line numbers, what to change, why). Do not send partial instructions expecting future follow-up.
|
|
705
|
-
4. **Monitor** \u2014
|
|
706
|
-
5. **Verify** \u2014 When a task reports completion, call \`mesh_git_status\` to verify changes were made.
|
|
705
|
+
4. **Monitor** \u2014 Prefer event-driven completion/status notifications. Do **not** poll \`mesh_read_chat\` repeatedly just because the delegated session has not produced a final assistant message yet; tool/terminal activity means work may still be in progress. Use at most one compact \`mesh_read_chat\` check after a completion/approval signal, an explicit user status request, or a real timeout/stall. Handle approvals via \`mesh_approve\`.
|
|
706
|
+
5. **Verify** \u2014 When a task reports completion or git work is visible, call \`mesh_git_status\` to verify changes were made.
|
|
707
707
|
6. **Checkpoint** \u2014 Call \`mesh_checkpoint\` to save the work.
|
|
708
708
|
7. **Clean up** \u2014 Remove worktree nodes via \`mesh_remove_node\` after their work is merged or no longer needed.
|
|
709
709
|
8. **Report** \u2014 Summarize what was done, what changed, and any issues.`;
|
|
@@ -7963,18 +7963,22 @@ function readMessageMeta(message) {
|
|
|
7963
7963
|
function readStringField(value) {
|
|
7964
7964
|
return typeof value === "string" ? value.trim().toLowerCase() : "";
|
|
7965
7965
|
}
|
|
7966
|
+
function readVisibilityField(message, meta) {
|
|
7967
|
+
const record = message;
|
|
7968
|
+
return readStringField(record.visibility ?? record.transcriptVisibility ?? meta?.visibility ?? meta?.transcriptVisibility);
|
|
7969
|
+
}
|
|
7966
7970
|
function isExplicitlyHiddenFromTranscript(message, meta) {
|
|
7967
7971
|
const record = message;
|
|
7968
|
-
const visibility =
|
|
7969
|
-
const audience = readStringField(record.audience
|
|
7970
|
-
const source = readStringField(record.source
|
|
7971
|
-
return visibility === "hidden" || visibility === "debug" || visibility === "internal" || audience === "debug" || audience === "trace" || audience === "internal" || source === "runtime_status" || source === "provider_chrome" || source === "control" || record.internal === true || record.isInternal === true || record.debug === true || meta?.internal === true || meta?.isInternal === true || meta?.debug === true || meta?.statusOnly === true || meta?.controlOnly === true;
|
|
7972
|
+
const visibility = readVisibilityField(message, meta);
|
|
7973
|
+
const audience = readStringField(record.audience ?? meta?.audience);
|
|
7974
|
+
const source = readStringField(record.source ?? meta?.source);
|
|
7975
|
+
return visibility === "hidden" || visibility === "debug" || visibility === "internal" || audience === "debug" || audience === "trace" || audience === "internal" || source === "runtime_status" || source === "runtime_activity" || source === "provider_chrome" || source === "control" || record.internal === true || record.isInternal === true || record.debug === true || meta?.internal === true || meta?.isInternal === true || meta?.debug === true || meta?.statusOnly === true || meta?.controlOnly === true;
|
|
7972
7976
|
}
|
|
7973
7977
|
function isExplicitlyVisibleInTranscript(message, meta) {
|
|
7974
7978
|
const record = message;
|
|
7975
|
-
const visibility =
|
|
7976
|
-
const audience = readStringField(record.audience
|
|
7977
|
-
return visibility === "visible" || visibility === "user" || audience === "chat" || record.userFacing === true || meta?.userFacing === true;
|
|
7979
|
+
const visibility = readVisibilityField(message, meta);
|
|
7980
|
+
const audience = readStringField(record.audience ?? meta?.audience);
|
|
7981
|
+
return visibility === "visible" || visibility === "user" || visibility === "chat" || audience === "chat" || record.userFacing === true || meta?.userFacing === true;
|
|
7978
7982
|
}
|
|
7979
7983
|
function isUserFacingChatMessage(message) {
|
|
7980
7984
|
if (!message) return false;
|
|
@@ -9962,6 +9966,14 @@ function validateMessage(message, source, index) {
|
|
|
9962
9966
|
if (typeof message.senderName === "string") normalized.senderName = message.senderName;
|
|
9963
9967
|
if (typeof message._type === "string") normalized._type = message._type;
|
|
9964
9968
|
if (typeof message._sub === "string") normalized._sub = message._sub;
|
|
9969
|
+
if (typeof message.visibility === "string") normalized.visibility = message.visibility;
|
|
9970
|
+
if (typeof message.transcriptVisibility === "string") normalized.transcriptVisibility = message.transcriptVisibility;
|
|
9971
|
+
if (typeof message.audience === "string") normalized.audience = message.audience;
|
|
9972
|
+
if (typeof message.source === "string") normalized.source = message.source;
|
|
9973
|
+
if (typeof message.userFacing === "boolean") normalized.userFacing = message.userFacing;
|
|
9974
|
+
if (typeof message.internal === "boolean") normalized.internal = message.internal;
|
|
9975
|
+
if (typeof message.isInternal === "boolean") normalized.isInternal = message.isInternal;
|
|
9976
|
+
if (typeof message.debug === "boolean") normalized.debug = message.debug;
|
|
9965
9977
|
return normalized;
|
|
9966
9978
|
}
|
|
9967
9979
|
function validateModal(activeModal, status, source) {
|