@duckmind/dm-darwin-arm64 0.13.6 → 0.13.7
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/extensions/.dm-extensions.json +25 -1
- package/extensions/dm-phone/README.md +23 -0
- package/extensions/dm-phone/index.ts +12 -0
- package/extensions/dm-phone/node_modules/.package-lock.json +29 -0
- package/extensions/dm-phone/node_modules/ws/LICENSE +20 -0
- package/extensions/dm-phone/node_modules/ws/README.md +548 -0
- package/extensions/dm-phone/node_modules/ws/browser.js +8 -0
- package/extensions/dm-phone/node_modules/ws/index.js +22 -0
- package/extensions/dm-phone/node_modules/ws/lib/buffer-util.js +131 -0
- package/extensions/dm-phone/node_modules/ws/lib/constants.js +19 -0
- package/extensions/dm-phone/node_modules/ws/lib/event-target.js +292 -0
- package/extensions/dm-phone/node_modules/ws/lib/extension.js +203 -0
- package/extensions/dm-phone/node_modules/ws/lib/limiter.js +55 -0
- package/extensions/dm-phone/node_modules/ws/lib/permessage-deflate.js +528 -0
- package/extensions/dm-phone/node_modules/ws/lib/receiver.js +706 -0
- package/extensions/dm-phone/node_modules/ws/lib/sender.js +602 -0
- package/extensions/dm-phone/node_modules/ws/lib/stream.js +161 -0
- package/extensions/dm-phone/node_modules/ws/lib/subprotocol.js +62 -0
- package/extensions/dm-phone/node_modules/ws/lib/validation.js +152 -0
- package/extensions/dm-phone/node_modules/ws/lib/websocket-server.js +554 -0
- package/extensions/dm-phone/node_modules/ws/lib/websocket.js +1393 -0
- package/extensions/dm-phone/node_modules/ws/package.json +70 -0
- package/extensions/dm-phone/node_modules/ws/wrapper.mjs +21 -0
- package/extensions/dm-phone/package-lock.json +66 -0
- package/extensions/dm-phone/package.json +35 -0
- package/extensions/dm-phone/phone-session-pool.ts +8 -0
- package/extensions/dm-phone/public/app/attachments.js +233 -0
- package/extensions/dm-phone/public/app/autocomplete-controller.js +81 -0
- package/extensions/dm-phone/public/app/autocomplete.js +135 -0
- package/extensions/dm-phone/public/app/bindings.js +178 -0
- package/extensions/dm-phone/public/app/command-catalog.js +76 -0
- package/extensions/dm-phone/public/app/commands.js +370 -0
- package/extensions/dm-phone/public/app/constants.js +60 -0
- package/extensions/dm-phone/public/app/formatters.js +131 -0
- package/extensions/dm-phone/public/app/handlers.js +442 -0
- package/extensions/dm-phone/public/app/main.js +6 -0
- package/extensions/dm-phone/public/app/markdown.js +105 -0
- package/extensions/dm-phone/public/app/messages.js +418 -0
- package/extensions/dm-phone/public/app/sheet-actions.js +113 -0
- package/extensions/dm-phone/public/app/sheet-navigation.js +19 -0
- package/extensions/dm-phone/public/app/sheets-view.js +272 -0
- package/extensions/dm-phone/public/app/state.js +95 -0
- package/extensions/dm-phone/public/app/tool-rendering.js +562 -0
- package/extensions/dm-phone/public/app/transport.js +176 -0
- package/extensions/dm-phone/public/app/ui.js +409 -0
- package/extensions/dm-phone/public/app.js +1 -0
- package/extensions/dm-phone/public/icon.svg +15 -0
- package/extensions/dm-phone/public/index.html +147 -0
- package/extensions/dm-phone/public/manifest.webmanifest +17 -0
- package/extensions/dm-phone/public/styles.css +1139 -0
- package/extensions/dm-phone/public/sw.js +78 -0
- package/extensions/dm-phone/src/extension/phone-args.ts +121 -0
- package/extensions/dm-phone/src/extension/phone-paths.ts +250 -0
- package/extensions/dm-phone/src/extension/phone-quota.ts +188 -0
- package/extensions/dm-phone/src/extension/phone-runtime.ts +154 -0
- package/extensions/dm-phone/src/extension/phone-server-runtime.ts +1217 -0
- package/extensions/dm-phone/src/extension/phone-sessions.ts +139 -0
- package/extensions/dm-phone/src/extension/phone-static.ts +30 -0
- package/extensions/dm-phone/src/extension/phone-tailscale.ts +148 -0
- package/extensions/dm-phone/src/extension/phone-theme.ts +85 -0
- package/extensions/dm-phone/src/extension/register-phone-child-extension.ts +112 -0
- package/extensions/dm-phone/src/extension/register-phone-extension.ts +106 -0
- package/extensions/dm-phone/src/extension/types.ts +73 -0
- package/extensions/dm-phone/src/session-pool/parent-session-worker.ts +881 -0
- package/extensions/dm-phone/src/session-pool/session-pool.ts +470 -0
- package/extensions/dm-phone/src/session-pool/session-worker.ts +734 -0
- package/extensions/dm-phone/src/session-pool/types.ts +105 -0
- package/extensions/dm-phone/src/session-pool/utils.ts +23 -0
- package/package.json +1 -1
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
|
|
6
|
+
<meta name="theme-color" content="#0b0f14" />
|
|
7
|
+
<title>DM Phone</title>
|
|
8
|
+
<link rel="manifest" href="/manifest.webmanifest?v=20260323-1" />
|
|
9
|
+
<link rel="icon" href="/icon.svg" type="image/svg+xml" />
|
|
10
|
+
<link rel="apple-touch-icon" href="/icon.svg" />
|
|
11
|
+
<link rel="stylesheet" href="/styles.css?v=20260323-1" />
|
|
12
|
+
</head>
|
|
13
|
+
<body>
|
|
14
|
+
<button id="session-sidebar-button" class="sidebar-toggle-button secondary" aria-label="Open session browser" title="Open session browser">☰ Sessions</button>
|
|
15
|
+
|
|
16
|
+
<div class="app-shell">
|
|
17
|
+
<header class="topbar">
|
|
18
|
+
<div>
|
|
19
|
+
<div class="eyebrow">DM Phone</div>
|
|
20
|
+
<h1>DM, but couch-friendly</h1>
|
|
21
|
+
<p class="subtitle">Your current DM setup, extensions, skills, and prompts — in a phone UI.</p>
|
|
22
|
+
</div>
|
|
23
|
+
<div class="status-pill" id="connection-pill">Connecting…</div>
|
|
24
|
+
</header>
|
|
25
|
+
|
|
26
|
+
<section class="status-card">
|
|
27
|
+
<div class="status-grid">
|
|
28
|
+
<div>
|
|
29
|
+
<div class="label">Working directory</div>
|
|
30
|
+
<div class="value mono" id="cwd-value">—</div>
|
|
31
|
+
</div>
|
|
32
|
+
<div>
|
|
33
|
+
<div class="label">Session</div>
|
|
34
|
+
<div class="value" id="session-value">—</div>
|
|
35
|
+
</div>
|
|
36
|
+
<div>
|
|
37
|
+
<div class="label">Model</div>
|
|
38
|
+
<div class="value" id="model-value">—</div>
|
|
39
|
+
</div>
|
|
40
|
+
<div>
|
|
41
|
+
<div class="label">Thinking</div>
|
|
42
|
+
<div class="value" id="thinking-value">—</div>
|
|
43
|
+
</div>
|
|
44
|
+
<div>
|
|
45
|
+
<div class="label">State</div>
|
|
46
|
+
<div class="value" id="streaming-value">Idle</div>
|
|
47
|
+
</div>
|
|
48
|
+
<div>
|
|
49
|
+
<div class="label">Server</div>
|
|
50
|
+
<div class="value mono" id="server-value">—</div>
|
|
51
|
+
</div>
|
|
52
|
+
</div>
|
|
53
|
+
<div class="button-row compact">
|
|
54
|
+
<button id="actions-button" class="secondary">Actions</button>
|
|
55
|
+
<button id="refresh-button" class="secondary">Refresh</button>
|
|
56
|
+
<button id="tree-browser-button" class="secondary">Tree</button>
|
|
57
|
+
<button id="abort-button" class="danger">Abort</button>
|
|
58
|
+
</div>
|
|
59
|
+
</section>
|
|
60
|
+
|
|
61
|
+
<section id="banner" class="banner hidden"></section>
|
|
62
|
+
<section id="widget-stack" class="widget-stack hidden"></section>
|
|
63
|
+
|
|
64
|
+
<main id="messages" class="messages" aria-live="polite"></main>
|
|
65
|
+
|
|
66
|
+
<section class="composer-wrap">
|
|
67
|
+
<div class="composer">
|
|
68
|
+
<input id="image-input" type="file" accept="image/*" multiple class="hidden" />
|
|
69
|
+
<div id="attachment-strip" class="attachment-strip hidden"></div>
|
|
70
|
+
<section id="command-strip" class="command-strip hidden"></section>
|
|
71
|
+
<div class="composer-input-row">
|
|
72
|
+
<textarea
|
|
73
|
+
id="prompt-input"
|
|
74
|
+
rows="1"
|
|
75
|
+
maxlength="20000"
|
|
76
|
+
placeholder="Message DM…"
|
|
77
|
+
autocomplete="off"
|
|
78
|
+
autocapitalize="sentences"
|
|
79
|
+
spellcheck="true"
|
|
80
|
+
enterkeyhint="enter"
|
|
81
|
+
></textarea>
|
|
82
|
+
<button id="stop-button" class="composer-inline-button stop-button danger hidden" aria-label="Stop response" title="Stop response">Stop</button>
|
|
83
|
+
<button id="send-button" class="composer-inline-button send-button" aria-label="Send message" title="Send message">></button>
|
|
84
|
+
</div>
|
|
85
|
+
<div class="composer-actions">
|
|
86
|
+
<button id="attach-image-button" class="secondary">Attach</button>
|
|
87
|
+
<button id="insert-command-button" class="secondary">Commands</button>
|
|
88
|
+
<button id="cd-command-button" class="secondary">/cd</button>
|
|
89
|
+
<button id="steer-button" class="secondary hidden">Steer</button>
|
|
90
|
+
</div>
|
|
91
|
+
<div id="quota-row" class="quota-row hidden" aria-live="polite">
|
|
92
|
+
<div id="quota-meta-row" class="quota-meta-row hidden">
|
|
93
|
+
<span id="quota-cwd" class="quota-pill cwd-pill mono"></span>
|
|
94
|
+
</div>
|
|
95
|
+
<div id="quota-pills-row" class="quota-pills-row hidden">
|
|
96
|
+
<span id="quota-context" class="quota-pill quota-context-pill mono hidden"></span>
|
|
97
|
+
<span id="quota-primary" class="quota-pill"></span>
|
|
98
|
+
<span id="quota-secondary" class="quota-pill"></span>
|
|
99
|
+
</div>
|
|
100
|
+
</div>
|
|
101
|
+
</div>
|
|
102
|
+
</section>
|
|
103
|
+
</div>
|
|
104
|
+
|
|
105
|
+
<div id="login-modal" class="modal-backdrop hidden">
|
|
106
|
+
<div class="modal-card narrow">
|
|
107
|
+
<h2>Access token required</h2>
|
|
108
|
+
<p class="modal-copy">Enter the app token configured in <code>/phone-start</code>.</p>
|
|
109
|
+
<input id="token-input" type="password" placeholder="App token" autocomplete="new-password" autocapitalize="none" autocorrect="off" spellcheck="false" />
|
|
110
|
+
<div class="button-row">
|
|
111
|
+
<button id="token-save-button">Connect</button>
|
|
112
|
+
</div>
|
|
113
|
+
</div>
|
|
114
|
+
</div>
|
|
115
|
+
|
|
116
|
+
<div id="ui-modal" class="modal-backdrop hidden">
|
|
117
|
+
<div class="modal-card">
|
|
118
|
+
<h2 id="ui-modal-title">Action required</h2>
|
|
119
|
+
<p id="ui-modal-message" class="modal-copy"></p>
|
|
120
|
+
<div id="ui-modal-options" class="option-list"></div>
|
|
121
|
+
<textarea id="ui-modal-input" class="hidden" rows="8"></textarea>
|
|
122
|
+
<div class="button-row" id="ui-modal-buttons"></div>
|
|
123
|
+
</div>
|
|
124
|
+
</div>
|
|
125
|
+
|
|
126
|
+
<div id="sheet-modal" class="modal-backdrop hidden">
|
|
127
|
+
<div class="modal-card sheet-card">
|
|
128
|
+
<div class="sheet-header">
|
|
129
|
+
<div>
|
|
130
|
+
<div class="eyebrow">DM control center</div>
|
|
131
|
+
<h2 id="sheet-title">Actions</h2>
|
|
132
|
+
</div>
|
|
133
|
+
<div class="sheet-header-actions">
|
|
134
|
+
<button id="sheet-saved-sessions-button" class="secondary hidden">Saved sessions</button>
|
|
135
|
+
<button id="sheet-close-button" class="secondary">Close</button>
|
|
136
|
+
</div>
|
|
137
|
+
</div>
|
|
138
|
+
<div id="sheet-content" class="sheet-content"></div>
|
|
139
|
+
</div>
|
|
140
|
+
</div>
|
|
141
|
+
|
|
142
|
+
<button id="jump-to-latest-button" class="jump-to-latest-button hidden secondary" type="button" aria-label="Jump to latest message">▾</button>
|
|
143
|
+
<div id="toast-host" class="toast-host"></div>
|
|
144
|
+
|
|
145
|
+
<script type="module" src="/app.js?v=20260323-2"></script>
|
|
146
|
+
</body>
|
|
147
|
+
</html>
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "DM Phone",
|
|
3
|
+
"short_name": "DM Phone",
|
|
4
|
+
"description": "A phone-friendly remote UI for DM running on your PC.",
|
|
5
|
+
"start_url": "/",
|
|
6
|
+
"display": "standalone",
|
|
7
|
+
"background_color": "#0b0f14",
|
|
8
|
+
"theme_color": "#0b0f14",
|
|
9
|
+
"icons": [
|
|
10
|
+
{
|
|
11
|
+
"src": "/icon.svg",
|
|
12
|
+
"sizes": "any",
|
|
13
|
+
"type": "image/svg+xml",
|
|
14
|
+
"purpose": "any maskable"
|
|
15
|
+
}
|
|
16
|
+
]
|
|
17
|
+
}
|