@duckmind/dm-darwin-arm64 0.33.2 → 0.33.4
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 +0 -0
- package/extensions/.dm-extensions.json +1 -34
- package/extensions/greedysearch-dm/bin/cdp.mjs +1 -1
- package/package.json +1 -1
- package/extensions/dm-ask/CHANGELOG.md +0 -149
- package/extensions/dm-ask/LICENSE +0 -21
- package/extensions/dm-ask/README.md +0 -94
- package/extensions/dm-ask/ask-ui.ts +0 -238
- package/extensions/dm-ask/ask.ts +0 -348
- package/extensions/dm-ask/btw-ui.test.ts +0 -270
- package/extensions/dm-ask/btw.command.test.ts +0 -152
- package/extensions/dm-ask/btw.test.ts +0 -340
- package/extensions/dm-ask/docs/cover.png +0 -0
- package/extensions/dm-ask/docs/cover.svg +0 -70
- package/extensions/dm-ask/docs/overlay.jpg +0 -0
- package/extensions/dm-ask/docs/vertical-cover.png +0 -0
- package/extensions/dm-ask/docs/vertical-cover.svg +0 -147
- package/extensions/dm-ask/index.ts +0 -17
- package/extensions/dm-ask/package.json +0 -44
- package/extensions/dm-ask/prompts/ask-system.txt +0 -9
|
@@ -1,147 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 540 1200" role="img" aria-label="dm-ask — Side questions without polluting the main conversation" preserveAspectRatio="xMidYMid meet">
|
|
2
|
-
<title>dm-ask — Side questions without polluting the main conversation</title>
|
|
3
|
-
<defs>
|
|
4
|
-
<style>
|
|
5
|
-
.mono { font-family: 'JetBrains Mono', 'Fira Code', 'SFMono-Regular', ui-monospace, Menlo, Consolas, monospace; }
|
|
6
|
-
.ink { fill: #F4EFE6; }
|
|
7
|
-
.paper { fill: #0E0D0B; }
|
|
8
|
-
.muted { fill: #7A7468; }
|
|
9
|
-
.dim { fill: #4A463F; }
|
|
10
|
-
.accent { fill: #FF7A3D; }
|
|
11
|
-
.mint { fill: #6FD0B8; }
|
|
12
|
-
.rule { stroke: #2A2620; }
|
|
13
|
-
.rule-bright { stroke: #FF7A3D; }
|
|
14
|
-
</style>
|
|
15
|
-
<filter id="grain" x="0" y="0" width="100%" height="100%">
|
|
16
|
-
<feTurbulence type="fractalNoise" baseFrequency="1.4" numOctaves="2" seed="19"/>
|
|
17
|
-
<feColorMatrix values="0 0 0 0 0.96 0 0 0 0 0.94 0 0 0 0 0.88 0 0 0 0.06 0"/>
|
|
18
|
-
</filter>
|
|
19
|
-
<pattern id="grid" width="32" height="32" patternUnits="userSpaceOnUse">
|
|
20
|
-
<path d="M32 0 H0 V32" fill="none" stroke="#161411" stroke-width="0.5"/>
|
|
21
|
-
</pattern>
|
|
22
|
-
<pattern id="dots" width="6" height="6" patternUnits="userSpaceOnUse">
|
|
23
|
-
<circle cx="3" cy="3" r="0.6" fill="#231F1A"/>
|
|
24
|
-
</pattern>
|
|
25
|
-
<radialGradient id="vignette" cx="50%" cy="50%" r="70%">
|
|
26
|
-
<stop offset="60%" stop-color="#0E0D0B" stop-opacity="0"/>
|
|
27
|
-
<stop offset="100%" stop-color="#000" stop-opacity="0.55"/>
|
|
28
|
-
</radialGradient>
|
|
29
|
-
</defs>
|
|
30
|
-
|
|
31
|
-
<rect width="540" height="1200" class="paper"/>
|
|
32
|
-
<rect width="540" height="1200" fill="url(#grid)" opacity="0.55"/>
|
|
33
|
-
<rect width="540" height="1200" fill="url(#dots)" opacity="0.4"/>
|
|
34
|
-
<rect width="540" height="1200" filter="url(#grain)" opacity="0.5"/>
|
|
35
|
-
<rect width="540" height="1200" fill="url(#vignette)"/>
|
|
36
|
-
|
|
37
|
-
<g class="rule-bright" stroke-width="1" fill="none" opacity="0.95">
|
|
38
|
-
<path d="M24 56 L40 56 M40 40 L40 56"/>
|
|
39
|
-
<path d="M516 56 L500 56 M500 40 L500 56"/>
|
|
40
|
-
<path d="M24 1144 L40 1144 M40 1160 L40 1144"/>
|
|
41
|
-
<path d="M516 1144 L500 1144 M500 1160 L500 1144"/>
|
|
42
|
-
</g>
|
|
43
|
-
|
|
44
|
-
<line x1="40" y1="56" x2="500" y2="56" class="rule" stroke-width="1"/>
|
|
45
|
-
<text class="mono muted" x="40" y="44" font-size="9" letter-spacing="2">@JUICESHARP · PI EXTENSION · NO. 005 – ASK</text>
|
|
46
|
-
<text class="mono muted" x="500" y="44" font-size="9" letter-spacing="2" text-anchor="end">MIT · v0.9 · 540 × 1200</text>
|
|
47
|
-
|
|
48
|
-
<text class="mono ink" x="40" y="124" font-size="56" font-weight="700" letter-spacing="-2">rpiv<tspan class="accent">-</tspan>ask</text>
|
|
49
|
-
<line x1="40" y1="138" x2="100" y2="138" class="rule-bright" stroke-width="2"/>
|
|
50
|
-
<text class="mono muted" x="40" y="160" font-size="12" letter-spacing="0.3">A side question that doesn’t pollute the chat.</text>
|
|
51
|
-
<text class="mono dim" x="40" y="178" font-size="9" letter-spacing="1.4">READ-ONLY CLONE · EPHEMERAL · NO DISK</text>
|
|
52
|
-
|
|
53
|
-
<text class="mono muted" x="40" y="222" font-size="9" letter-spacing="2">FIG. 01 — NO-POLLUTION SIDECHANNEL</text>
|
|
54
|
-
<text class="mono muted" x="500" y="222" font-size="9" letter-spacing="2" text-anchor="end">/ask • in memory only</text>
|
|
55
|
-
<line x1="40" y1="232" x2="500" y2="232" class="rule" stroke-width="0.75"/>
|
|
56
|
-
|
|
57
|
-
<!-- HERO: stacked — main transcript above (dim), ask overlay below (highlighted) -->
|
|
58
|
-
|
|
59
|
-
<!-- TOP: main transcript (dim) -->
|
|
60
|
-
<text class="mono dim" x="40" y="270" font-size="9" letter-spacing="1.8">MAIN TRANSCRIPT • UNTOUCHED</text>
|
|
61
|
-
<g opacity="0.6" transform="translate(40 282)">
|
|
62
|
-
<rect x="0" y="0" width="460" height="14" fill="#15120E" stroke="#221E18" stroke-width="0.5"/>
|
|
63
|
-
<rect x="0" y="18" width="380" height="14" fill="#15120E" stroke="#221E18" stroke-width="0.5"/>
|
|
64
|
-
<rect x="0" y="36" width="440" height="14" fill="#15120E" stroke="#221E18" stroke-width="0.5"/>
|
|
65
|
-
<rect x="0" y="54" width="320" height="14" fill="#15120E" stroke="#221E18" stroke-width="0.5"/>
|
|
66
|
-
<rect x="0" y="72" width="420" height="14" fill="#15120E" stroke="#221E18" stroke-width="0.5"/>
|
|
67
|
-
<rect x="0" y="90" width="360" height="14" fill="#15120E" stroke="#221E18" stroke-width="0.5"/>
|
|
68
|
-
<rect x="0" y="108" width="400" height="14" fill="#15120E" stroke="#221E18" stroke-width="0.5"/>
|
|
69
|
-
<text class="mono muted" x="6" y="11" font-size="9.5">user › let’s migrate websockets to SSE</text>
|
|
70
|
-
<text class="mono muted" x="6" y="29" font-size="9.5">assistant › on it — reading transport</text>
|
|
71
|
-
<text class="mono muted" x="6" y="47" font-size="9.5">tool › read src/transport/socket.ts</text>
|
|
72
|
-
<text class="mono muted" x="6" y="65" font-size="9.5">assistant › ready to draft plan</text>
|
|
73
|
-
<text class="mono muted" x="6" y="83" font-size="9.5">user › quick question first…</text>
|
|
74
|
-
<text class="mono muted" x="6" y="101" font-size="9.5">assistant › sure, what’s up?</text>
|
|
75
|
-
<text class="mono muted" x="6" y="119" font-size="9.5">user › using /ask to keep this clean</text>
|
|
76
|
-
</g>
|
|
77
|
-
|
|
78
|
-
<!-- read-only clone arrow on right -->
|
|
79
|
-
<g transform="translate(460 320)">
|
|
80
|
-
<line x1="0" y1="0" x2="0" y2="80" class="rule-bright" stroke-width="1.4" stroke-dasharray="3 3"/>
|
|
81
|
-
<path d="M-7 70 L0 84 L7 70" fill="none" stroke="#FF7A3D" stroke-width="1.4" stroke-linejoin="round" stroke-linecap="round"/>
|
|
82
|
-
<text class="mono accent" x="-12" y="-2" font-size="9" letter-spacing="1.4" text-anchor="end" font-weight="700">READ-ONLY</text>
|
|
83
|
-
<text class="mono muted" x="-12" y="14" font-size="9" letter-spacing="1.2" text-anchor="end">CLONE</text>
|
|
84
|
-
<text class="mono muted" x="-12" y="28" font-size="9" letter-spacing="1.2" text-anchor="end">tools: []</text>
|
|
85
|
-
</g>
|
|
86
|
-
|
|
87
|
-
<!-- horizontal seam (editor row) -->
|
|
88
|
-
<line x1="40" y1="436" x2="500" y2="436" class="rule" stroke-width="0.5" stroke-dasharray="1 4"/>
|
|
89
|
-
<text class="mono dim" x="40" y="430" font-size="9" letter-spacing="1.8">EDITOR ROW</text>
|
|
90
|
-
<text class="mono dim" x="500" y="430" font-size="9" letter-spacing="1.8" text-anchor="end">↓ OVERLAY ANCHORED HERE</text>
|
|
91
|
-
|
|
92
|
-
<!-- BOTTOM: ask overlay (hero panel) -->
|
|
93
|
-
<g transform="translate(40 450)">
|
|
94
|
-
<rect x="0" y="0" width="460" height="540" fill="#13110D" stroke="#FF7A3D" stroke-width="1"/>
|
|
95
|
-
|
|
96
|
-
<!-- Banner -->
|
|
97
|
-
<rect x="0" y="0" width="460" height="28" fill="#1B0F08"/>
|
|
98
|
-
<text class="mono accent" x="14" y="19" font-size="12" letter-spacing="1.4" font-weight="700">/ask</text>
|
|
99
|
-
<text class="mono ink" x="60" y="19" font-size="11">why did we switch from sockets to SSE</text>
|
|
100
|
-
<text class="mono ink" x="60" y="33" font-size="11" opacity="0">.</text>
|
|
101
|
-
<text class="mono muted" x="446" y="19" font-size="9" letter-spacing="1.2" text-anchor="end">Esc</text>
|
|
102
|
-
|
|
103
|
-
<!-- Echo line of question continuation -->
|
|
104
|
-
<text class="mono muted" x="14" y="56" font-size="11">last week?</text>
|
|
105
|
-
|
|
106
|
-
<!-- Thinking indicator (faint) -->
|
|
107
|
-
<text class="mono dim" x="14" y="80" font-size="11">…</text>
|
|
108
|
-
|
|
109
|
-
<!-- Answer body -->
|
|
110
|
-
<text class="mono muted" x="14" y="110" font-size="11">› resilience: SSE survives proxies that</text>
|
|
111
|
-
<text class="mono muted" x="14" y="126" font-size="11"> buffer or drop ws connections.</text>
|
|
112
|
-
<text class="mono muted" x="14" y="146" font-size="11">› the team was tired of the ping-pong</text>
|
|
113
|
-
<text class="mono muted" x="14" y="162" font-size="11"> reconnect dance under restrictive</text>
|
|
114
|
-
<text class="mono muted" x="14" y="178" font-size="11"> corporate networks.</text>
|
|
115
|
-
<text class="mono muted" x="14" y="198" font-size="11">› server-push only, so back-channel</text>
|
|
116
|
-
<text class="mono muted" x="14" y="214" font-size="11"> moved to plain fetch — trades</text>
|
|
117
|
-
<text class="mono muted" x="14" y="230" font-size="11"> bidirectionality for stability.</text>
|
|
118
|
-
<text class="mono muted" x="14" y="250" font-size="11">› see commit b3e21f and the post-</text>
|
|
119
|
-
<text class="mono muted" x="14" y="266" font-size="11"> mortem in thoughts/research/.</text>
|
|
120
|
-
|
|
121
|
-
<!-- Prior history strip -->
|
|
122
|
-
<line x1="14" y1="296" x2="446" y2="296" class="rule" stroke-width="0.5" stroke-dasharray="1 3"/>
|
|
123
|
-
<text class="mono dim" x="14" y="312" font-size="9" letter-spacing="1.6">PRIOR /ask IN THIS SESSION</text>
|
|
124
|
-
<text class="mono muted" x="14" y="332" font-size="10.5">☺ what was the SSE timeout default?</text>
|
|
125
|
-
<text class="mono muted" x="14" y="348" font-size="10.5">› 60s; configurable via X-Heartbeat…</text>
|
|
126
|
-
<text class="mono muted" x="14" y="368" font-size="10.5">☺ can curl tail it for debugging?</text>
|
|
127
|
-
<text class="mono muted" x="14" y="384" font-size="10.5">› yes — curl -N URL streams events…</text>
|
|
128
|
-
|
|
129
|
-
<!-- Footer of overlay -->
|
|
130
|
-
<line x1="14" y1="488" x2="446" y2="488" class="rule" stroke-width="0.5" stroke-dasharray="1 3"/>
|
|
131
|
-
<text class="mono dim" x="14" y="510" font-size="9" letter-spacing="1.4">↑↓ scroll · x clear · Esc close</text>
|
|
132
|
-
<text class="mono mint" x="446" y="510" font-size="9" letter-spacing="1.4" text-anchor="end" font-weight="700">EPHEMERAL</text>
|
|
133
|
-
<text class="mono dim" x="446" y="524" font-size="9" letter-spacing="1.4" text-anchor="end">never written to disk</text>
|
|
134
|
-
</g>
|
|
135
|
-
|
|
136
|
-
<text class="mono muted" x="40" y="1024" font-size="9" letter-spacing="1.4">PROCESS-SCOPED via globalThis[Symbol.for("dm-ask")]</text>
|
|
137
|
-
<text class="mono muted" x="40" y="1040" font-size="9" letter-spacing="1.4">SNAPSHOT INVALIDATED on session_compact / session_tree</text>
|
|
138
|
-
|
|
139
|
-
<line x1="40" y1="1100" x2="500" y2="1100" class="rule" stroke-width="0.5" stroke-dasharray="1 3"/>
|
|
140
|
-
<text class="mono muted" x="40" y="1118" font-size="9" letter-spacing="1.8">ASK → ANSWER → DISCARD</text>
|
|
141
|
-
|
|
142
|
-
<line x1="40" y1="1144" x2="500" y2="1144" class="rule" stroke-width="1"/>
|
|
143
|
-
<text class="mono muted" x="40" y="1168" font-size="9.5" letter-spacing="1.8">
|
|
144
|
-
<tspan class="accent">▶</tspan> DM install npm:dm-ask
|
|
145
|
-
</text>
|
|
146
|
-
<text class="mono muted" x="500" y="1168" font-size="9" letter-spacing="2" text-anchor="end">SIDECHANNEL</text>
|
|
147
|
-
</svg>
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* dm-ask — DM extension entry point.
|
|
3
|
-
*
|
|
4
|
-
* Registers /ask command + 2 lifecycle hooks (message_end snapshot,
|
|
5
|
-
* session_compact/tree invalidation). No tool, no model picker, no disk
|
|
6
|
-
* persistence. History lives in process-scoped globalThis state — survives
|
|
7
|
-
* /new, /fork, /reload, /resume; lost on DM process exit.
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
|
|
11
|
-
import { registerAskCommand, registerInvalidationHooks, registerMessageEndSnapshot } from "./ask.js";
|
|
12
|
-
|
|
13
|
-
export default function (pi: ExtensionAPI): void {
|
|
14
|
-
registerAskCommand(pi);
|
|
15
|
-
registerMessageEndSnapshot(pi);
|
|
16
|
-
registerInvalidationHooks(pi);
|
|
17
|
-
}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "dm-ask",
|
|
3
|
-
"version": "1.5.0",
|
|
4
|
-
"description": "DM extension that answers side questions while the main agent keeps running",
|
|
5
|
-
"type": "module",
|
|
6
|
-
"files": [
|
|
7
|
-
"*.ts",
|
|
8
|
-
"README.md",
|
|
9
|
-
"LICENSE",
|
|
10
|
-
"CHANGELOG.md",
|
|
11
|
-
"prompts",
|
|
12
|
-
"docs"
|
|
13
|
-
],
|
|
14
|
-
"pi": {
|
|
15
|
-
"extensions": [
|
|
16
|
-
"./index.ts"
|
|
17
|
-
]
|
|
18
|
-
},
|
|
19
|
-
"keywords": [
|
|
20
|
-
"duckmind",
|
|
21
|
-
"dm",
|
|
22
|
-
"ask",
|
|
23
|
-
"side-question",
|
|
24
|
-
"widget"
|
|
25
|
-
],
|
|
26
|
-
"repository": {
|
|
27
|
-
"type": "git",
|
|
28
|
-
"url": "git+https://github.com/que-nguyen/dm.git",
|
|
29
|
-
"directory": "extensions/dm-ask"
|
|
30
|
-
},
|
|
31
|
-
"bugs": {
|
|
32
|
-
"url": "https://github.com/que-nguyen/dm/issues"
|
|
33
|
-
},
|
|
34
|
-
"homepage": "https://github.com/que-nguyen/dm#readme",
|
|
35
|
-
"scripts": {
|
|
36
|
-
"test": "vitest run"
|
|
37
|
-
},
|
|
38
|
-
"peerDependencies": {
|
|
39
|
-
"@mariozechner/pi-ai": "*",
|
|
40
|
-
"@mariozechner/pi-coding-agent": "*",
|
|
41
|
-
"@mariozechner/pi-tui": "*"
|
|
42
|
-
},
|
|
43
|
-
"devDependencies": {}
|
|
44
|
-
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
You are answering a quick side question while the user's main DM session continues working.
|
|
2
|
-
|
|
3
|
-
You are given the user's primary conversation as the message context — treat it as background. Do NOT try to "continue" the assistant's prior work or pick up a tool call mid-flight; the side question is its own self-contained ask.
|
|
4
|
-
|
|
5
|
-
Answer directly and concisely. Prefer compact bullets or short paragraphs. Cite files, functions, and line numbers when grounding a claim in the context. If the context is insufficient to answer, say so briefly instead of guessing.
|
|
6
|
-
|
|
7
|
-
You have NO tools available. You will NOT call tools, even if the prior assistant turns demonstrate tool use. Reply in plain text only.
|
|
8
|
-
|
|
9
|
-
When a "Recent /ask questions across sessions" appendix is present below, treat it as a high-level pattern hint about what the user has been thinking about lately — useful only when the side question explicitly asks about patterns, trends, or recent topics.
|