@duckmind/dm-darwin-x64 0.66.4 → 0.66.5
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/dm +2 -2
- package/extensions/.dm-extensions.json +3 -3
- package/extensions/dm-lens/clients/dispatch/runners/utils/runner-helpers.js +1 -1
- package/extensions/dm-mcp-adapter/mcp-keyring-helper.cjs +1 -1
- package/extensions/dm-ponytail/hooks/ponytail-activate.js +1 -1
- package/extensions/dm-ponytail/hooks/ponytail-instructions.js +1 -1
- package/extensions/dm-subagents/src/runs/background/runner-aliases.js +2 -2
- package/extensions/dm-subagents/src/runs/foreground/prompt-audit.js +1 -4
- package/extensions/dm-subagents/src/runs/shared/child-session.js +6 -8
- package/extensions/dm-subagents/src/watchdog/permission-arbiter.js +1 -9
- package/extensions/dm-subagents/src/watchdog/review.js +1 -4
- package/package.json +1 -1
package/dm
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"status": "ok",
|
|
3
|
-
"prepared_at": "2026-
|
|
3
|
+
"prepared_at": "2026-09-26T14:18:07.586308+00:00",
|
|
4
4
|
"managed_entries": [
|
|
5
5
|
{
|
|
6
6
|
"id": "dm-context",
|
|
@@ -442,8 +442,8 @@
|
|
|
442
442
|
"src/workflows/workflow-settlement.js"
|
|
443
443
|
],
|
|
444
444
|
"file_count": 296,
|
|
445
|
-
"before_bytes":
|
|
446
|
-
"after_bytes":
|
|
445
|
+
"before_bytes": 4855886,
|
|
446
|
+
"after_bytes": 4169414,
|
|
447
447
|
"runtime_specifier_rewrites": 189,
|
|
448
448
|
"runtime_filename_rewrites": 273,
|
|
449
449
|
"declaration_files_removed": 1
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var __dirname = "/Users/que/Projects/dm-release-
|
|
1
|
+
var __dirname = "/Users/que/Projects/dm-release-495/source/dm-mono/packages/coding-agent/dist/extensions/dm-lens/clients/dispatch/runners/utils";
|
|
2
2
|
import * as fs from "node:fs";
|
|
3
3
|
import * as path from "node:path";
|
|
4
4
|
import { fileURLToPath } from "node:url";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var __filename = "/Users/que/Projects/dm-release-
|
|
1
|
+
var __filename = "/Users/que/Projects/dm-release-495/source/dm-mono/packages/coding-agent/dist/extensions/dm-mcp-adapter/mcp-keyring-helper.cjs";
|
|
2
2
|
const { createRequire } = require("node:module");
|
|
3
3
|
const { dirname, join } = require("node:path");
|
|
4
4
|
const requireFromHere = createRequire(__filename);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var __dirname = "/Users/que/Projects/dm-release-
|
|
1
|
+
var __dirname = "/Users/que/Projects/dm-release-495/source/dm-mono/packages/coding-agent/dist/extensions/dm-ponytail/hooks";
|
|
2
2
|
const fs = require("fs");
|
|
3
3
|
const path = require("path");
|
|
4
4
|
const { getDefaultMode, getClaudeDir, isShellSafe } = require("./ponytail-config");
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var __dirname = "/Users/que/Projects/dm-release-
|
|
1
|
+
var __dirname = "/Users/que/Projects/dm-release-495/source/dm-mono/packages/coding-agent/dist/extensions/dm-ponytail/hooks";
|
|
2
2
|
const fs = require("fs");
|
|
3
3
|
const path = require("path");
|
|
4
4
|
const { DEFAULT_MODE, normalizeMode, normalizePersistedMode } = require("./ponytail-config");
|
|
@@ -15,8 +15,8 @@ export const HOST_PEER_ALIASES = [
|
|
|
15
15
|
{ specifier: "typebox/value", pkg: "typebox", subpath: "./value" }
|
|
16
16
|
];
|
|
17
17
|
const CHORD_PEER_ALIASES = [
|
|
18
|
-
{ specifier: "@
|
|
19
|
-
{ specifier: "@
|
|
18
|
+
{ specifier: "@earendil-works/chord", pkg: "@earendil-works/chord", subpath: "." },
|
|
19
|
+
{ specifier: "@earendil-works/chord/context", pkg: "@earendil-works/chord", subpath: "./context" }
|
|
20
20
|
];
|
|
21
21
|
function readManifest(packageDir) {
|
|
22
22
|
try {
|
|
@@ -34,7 +34,7 @@ export async function rewritePromptWithGuidance(input) {
|
|
|
34
34
|
const model = input.ctx.model;
|
|
35
35
|
if (!model)
|
|
36
36
|
throw new Error("Prompt redo needs the current session model to rewrite the authored task.");
|
|
37
|
-
const [{ Agent }, { convertToLlm
|
|
37
|
+
const [{ Agent }, { convertToLlm }, { streamSimple }] = await Promise.all([
|
|
38
38
|
import("@duckmind/dm-agent-core"),
|
|
39
39
|
import("@duckmind/dm-coding-agent"),
|
|
40
40
|
import("@duckmind/dm-ai/compat")
|
|
@@ -51,9 +51,6 @@ export async function rewritePromptWithGuidance(input) {
|
|
|
51
51
|
});
|
|
52
52
|
const ctxThinking = input.ctx.getThinkingLevel?.();
|
|
53
53
|
const agent = new Agent({
|
|
54
|
-
runExecutor: createDurableAgentExecutor(() => {
|
|
55
|
-
return;
|
|
56
|
-
}),
|
|
57
54
|
initialState: {
|
|
58
55
|
systemPrompt: [
|
|
59
56
|
"Rewrite one subagent authored task from Prompt Audit context.",
|
|
@@ -22,15 +22,14 @@ export function childSessionHasQueuedMessages(session) {
|
|
|
22
22
|
return false;
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
|
-
function childRegistry(dm, agentDir
|
|
26
|
-
|
|
27
|
-
return dm.ModelRegistry.create(authStorage, path.join(agentDir, "models.json"));
|
|
25
|
+
function childRegistry(dm, agentDir) {
|
|
26
|
+
return dm.ModelRegistry.create(dm.AuthStorage.create(path.join(agentDir, "auth.json")), path.join(agentDir, "models.json"));
|
|
28
27
|
}
|
|
29
|
-
function childRuntime(dm, agentDir
|
|
28
|
+
function childRuntime(dm, agentDir) {
|
|
30
29
|
const legacy = dm.ModelRuntime;
|
|
31
30
|
if (legacy?.create)
|
|
32
31
|
return legacy.create().then((runtime) => ({ runtime }));
|
|
33
|
-
const registry = childRegistry(dm, agentDir
|
|
32
|
+
const registry = childRegistry(dm, agentDir);
|
|
34
33
|
return Promise.resolve({
|
|
35
34
|
registry,
|
|
36
35
|
runtime: {
|
|
@@ -199,8 +198,7 @@ export function createDefaultChildSessionFactory(options = {}) {
|
|
|
199
198
|
async create(launch) {
|
|
200
199
|
const dm = await loadPiCodingAgent();
|
|
201
200
|
const agentDir = getAgentDir();
|
|
202
|
-
const
|
|
203
|
-
const { runtime: modelRuntime, registry: modelRegistry } = launch.parentProviderRegistry || detachedUltra ? await childRuntime(dm, agentDir, launch.parentProviderRegistry, launch.model) : await sharedRuntime(dm, agentDir);
|
|
201
|
+
const { runtime: modelRuntime, registry: modelRegistry } = launch.parentProviderRegistry ? await childRuntime(dm, agentDir) : await sharedRuntime(dm, agentDir);
|
|
204
202
|
const settingsManager = dm.SettingsManager.create(launch.cwd, agentDir);
|
|
205
203
|
const themeKey = Symbol.for("@duckmind/dm-coding-agent:theme");
|
|
206
204
|
const themeInitialized = Boolean(globalThis[themeKey]);
|
|
@@ -249,7 +247,7 @@ export function createDefaultChildSessionFactory(options = {}) {
|
|
|
249
247
|
const { session } = await dm.createAgentSession({
|
|
250
248
|
cwd: launch.cwd,
|
|
251
249
|
agentDir,
|
|
252
|
-
...modelRegistry ? { modelRegistry
|
|
250
|
+
...modelRegistry ? { modelRegistry } : {},
|
|
253
251
|
...resolvedModel?.model ? { model: resolvedModel.model } : {},
|
|
254
252
|
...resolvedModel?.thinkingLevel ? { thinkingLevel: resolvedModel.thinkingLevel } : {},
|
|
255
253
|
...launch.tools ? { tools: launch.tools } : {},
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Agent } from "@duckmind/dm-agent-core";
|
|
2
|
-
import {
|
|
2
|
+
import { convertToLlm } from "@duckmind/dm-coding-agent";
|
|
3
3
|
import { streamSimple } from "@duckmind/dm-ai/compat";
|
|
4
4
|
import { Type } from "typebox";
|
|
5
5
|
import { appendPermissionAudit, permissionArgsPreview } from "../runs/shared/permissions.js";
|
|
@@ -92,9 +92,6 @@ export function createWatchdogPermissionArbiter(options = {}) {
|
|
|
92
92
|
`);
|
|
93
93
|
const tools = [tool];
|
|
94
94
|
agent = new Agent({
|
|
95
|
-
runExecutor: createDurableAgentExecutor(() => {
|
|
96
|
-
return;
|
|
97
|
-
}),
|
|
98
95
|
initialState: {
|
|
99
96
|
systemPrompt,
|
|
100
97
|
model: selection.model,
|
|
@@ -109,11 +106,6 @@ export function createWatchdogPermissionArbiter(options = {}) {
|
|
|
109
106
|
});
|
|
110
107
|
await agent.prompt(`Tool: ${request.toolName}
|
|
111
108
|
Redacted arguments: ${preview}`);
|
|
112
|
-
if (request.signal?.aborted || request.ctx.signal?.aborted)
|
|
113
|
-
return finish(false, "Watchdog permission decision was cancelled.", "cancelled");
|
|
114
|
-
const terminal = agent.state.messages.findLast((message) => message.role === "assistant");
|
|
115
|
-
if (terminal?.stopReason !== "stop")
|
|
116
|
-
return finish(false, "Watchdog permission arbiter did not complete successfully.", "error");
|
|
117
109
|
if (!decision)
|
|
118
110
|
return finish(false, "Watchdog permission arbiter returned no decision.", "malformed");
|
|
119
111
|
const approved = decision.decision === "approve";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Agent } from "@duckmind/dm-agent-core";
|
|
2
|
-
import {
|
|
2
|
+
import { createReadOnlyTools, convertToLlm } from "@duckmind/dm-coding-agent";
|
|
3
3
|
import { streamSimple } from "@duckmind/dm-ai/compat";
|
|
4
4
|
import { Type } from "typebox";
|
|
5
5
|
import { resolveModelCandidate } from "../runs/shared/model-resolution.js";
|
|
@@ -287,9 +287,6 @@ async function runWatchdogAttempt(ctx, request, options) {
|
|
|
287
287
|
hasDiff: diffBaseline !== undefined
|
|
288
288
|
});
|
|
289
289
|
const agent = new Agent({
|
|
290
|
-
runExecutor: createDurableAgentExecutor(() => {
|
|
291
|
-
return;
|
|
292
|
-
}),
|
|
293
290
|
initialState: {
|
|
294
291
|
systemPrompt,
|
|
295
292
|
model: selection.model,
|