@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.js
CHANGED
|
@@ -671,7 +671,7 @@ function buildRulesSection(coordinatorCliType) {
|
|
|
671
671
|
- **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.
|
|
672
672
|
- **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.
|
|
673
673
|
- **Don't inspect code.** Trust the agent's output. Verify via \`mesh_git_status\`, not by reading source files.
|
|
674
|
-
- **Don't over-parallelize.** Start with 1-2 concurrent tasks. Scale up if they succeed.
|
|
674
|
+
- **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.
|
|
675
675
|
- **Handle failures gracefully.** If a task fails, read the chat to understand why, then retry or reassign.
|
|
676
676
|
- **Keep the user informed.** Report progress after each delegation round \u2014 one or two sentences, not a narration.
|
|
677
677
|
- **Respect node capabilities.** Don't send build tasks to read-only nodes. Don't push from nodes that aren't allowed to.
|
|
@@ -707,8 +707,8 @@ var init_coordinator_prompt = __esm({
|
|
|
707
707
|
b. If you need branch isolation for parallel work, call \`mesh_clone_node\` to create a worktree node first.
|
|
708
708
|
c. If no session exists, call \`mesh_launch_session\` to start one.
|
|
709
709
|
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.
|
|
710
|
-
4. **Monitor** \u2014
|
|
711
|
-
5. **Verify** \u2014 When a task reports completion, call \`mesh_git_status\` to verify changes were made.
|
|
710
|
+
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\`.
|
|
711
|
+
5. **Verify** \u2014 When a task reports completion or git work is visible, call \`mesh_git_status\` to verify changes were made.
|
|
712
712
|
6. **Checkpoint** \u2014 Call \`mesh_checkpoint\` to save the work.
|
|
713
713
|
7. **Clean up** \u2014 Remove worktree nodes via \`mesh_remove_node\` after their work is merged or no longer needed.
|
|
714
714
|
8. **Report** \u2014 Summarize what was done, what changed, and any issues.`;
|
|
@@ -8161,18 +8161,22 @@ function readMessageMeta(message) {
|
|
|
8161
8161
|
function readStringField(value) {
|
|
8162
8162
|
return typeof value === "string" ? value.trim().toLowerCase() : "";
|
|
8163
8163
|
}
|
|
8164
|
+
function readVisibilityField(message, meta) {
|
|
8165
|
+
const record = message;
|
|
8166
|
+
return readStringField(record.visibility ?? record.transcriptVisibility ?? meta?.visibility ?? meta?.transcriptVisibility);
|
|
8167
|
+
}
|
|
8164
8168
|
function isExplicitlyHiddenFromTranscript(message, meta) {
|
|
8165
8169
|
const record = message;
|
|
8166
|
-
const visibility =
|
|
8167
|
-
const audience = readStringField(record.audience
|
|
8168
|
-
const source = readStringField(record.source
|
|
8169
|
-
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;
|
|
8170
|
+
const visibility = readVisibilityField(message, meta);
|
|
8171
|
+
const audience = readStringField(record.audience ?? meta?.audience);
|
|
8172
|
+
const source = readStringField(record.source ?? meta?.source);
|
|
8173
|
+
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;
|
|
8170
8174
|
}
|
|
8171
8175
|
function isExplicitlyVisibleInTranscript(message, meta) {
|
|
8172
8176
|
const record = message;
|
|
8173
|
-
const visibility =
|
|
8174
|
-
const audience = readStringField(record.audience
|
|
8175
|
-
return visibility === "visible" || visibility === "user" || audience === "chat" || record.userFacing === true || meta?.userFacing === true;
|
|
8177
|
+
const visibility = readVisibilityField(message, meta);
|
|
8178
|
+
const audience = readStringField(record.audience ?? meta?.audience);
|
|
8179
|
+
return visibility === "visible" || visibility === "user" || visibility === "chat" || audience === "chat" || record.userFacing === true || meta?.userFacing === true;
|
|
8176
8180
|
}
|
|
8177
8181
|
function isUserFacingChatMessage(message) {
|
|
8178
8182
|
if (!message) return false;
|
|
@@ -10160,6 +10164,14 @@ function validateMessage(message, source, index) {
|
|
|
10160
10164
|
if (typeof message.senderName === "string") normalized.senderName = message.senderName;
|
|
10161
10165
|
if (typeof message._type === "string") normalized._type = message._type;
|
|
10162
10166
|
if (typeof message._sub === "string") normalized._sub = message._sub;
|
|
10167
|
+
if (typeof message.visibility === "string") normalized.visibility = message.visibility;
|
|
10168
|
+
if (typeof message.transcriptVisibility === "string") normalized.transcriptVisibility = message.transcriptVisibility;
|
|
10169
|
+
if (typeof message.audience === "string") normalized.audience = message.audience;
|
|
10170
|
+
if (typeof message.source === "string") normalized.source = message.source;
|
|
10171
|
+
if (typeof message.userFacing === "boolean") normalized.userFacing = message.userFacing;
|
|
10172
|
+
if (typeof message.internal === "boolean") normalized.internal = message.internal;
|
|
10173
|
+
if (typeof message.isInternal === "boolean") normalized.isInternal = message.isInternal;
|
|
10174
|
+
if (typeof message.debug === "boolean") normalized.debug = message.debug;
|
|
10163
10175
|
return normalized;
|
|
10164
10176
|
}
|
|
10165
10177
|
function validateModal(activeModal, status, source) {
|