@duckmind/dm-darwin-x64 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.
Files changed (69) hide show
  1. package/extensions/.dm-extensions.json +25 -1
  2. package/extensions/dm-phone/README.md +23 -0
  3. package/extensions/dm-phone/index.ts +12 -0
  4. package/extensions/dm-phone/node_modules/.package-lock.json +29 -0
  5. package/extensions/dm-phone/node_modules/ws/LICENSE +20 -0
  6. package/extensions/dm-phone/node_modules/ws/README.md +548 -0
  7. package/extensions/dm-phone/node_modules/ws/browser.js +8 -0
  8. package/extensions/dm-phone/node_modules/ws/index.js +22 -0
  9. package/extensions/dm-phone/node_modules/ws/lib/buffer-util.js +131 -0
  10. package/extensions/dm-phone/node_modules/ws/lib/constants.js +19 -0
  11. package/extensions/dm-phone/node_modules/ws/lib/event-target.js +292 -0
  12. package/extensions/dm-phone/node_modules/ws/lib/extension.js +203 -0
  13. package/extensions/dm-phone/node_modules/ws/lib/limiter.js +55 -0
  14. package/extensions/dm-phone/node_modules/ws/lib/permessage-deflate.js +528 -0
  15. package/extensions/dm-phone/node_modules/ws/lib/receiver.js +706 -0
  16. package/extensions/dm-phone/node_modules/ws/lib/sender.js +602 -0
  17. package/extensions/dm-phone/node_modules/ws/lib/stream.js +161 -0
  18. package/extensions/dm-phone/node_modules/ws/lib/subprotocol.js +62 -0
  19. package/extensions/dm-phone/node_modules/ws/lib/validation.js +152 -0
  20. package/extensions/dm-phone/node_modules/ws/lib/websocket-server.js +554 -0
  21. package/extensions/dm-phone/node_modules/ws/lib/websocket.js +1393 -0
  22. package/extensions/dm-phone/node_modules/ws/package.json +70 -0
  23. package/extensions/dm-phone/node_modules/ws/wrapper.mjs +21 -0
  24. package/extensions/dm-phone/package-lock.json +66 -0
  25. package/extensions/dm-phone/package.json +35 -0
  26. package/extensions/dm-phone/phone-session-pool.ts +8 -0
  27. package/extensions/dm-phone/public/app/attachments.js +233 -0
  28. package/extensions/dm-phone/public/app/autocomplete-controller.js +81 -0
  29. package/extensions/dm-phone/public/app/autocomplete.js +135 -0
  30. package/extensions/dm-phone/public/app/bindings.js +178 -0
  31. package/extensions/dm-phone/public/app/command-catalog.js +76 -0
  32. package/extensions/dm-phone/public/app/commands.js +370 -0
  33. package/extensions/dm-phone/public/app/constants.js +60 -0
  34. package/extensions/dm-phone/public/app/formatters.js +131 -0
  35. package/extensions/dm-phone/public/app/handlers.js +442 -0
  36. package/extensions/dm-phone/public/app/main.js +6 -0
  37. package/extensions/dm-phone/public/app/markdown.js +105 -0
  38. package/extensions/dm-phone/public/app/messages.js +418 -0
  39. package/extensions/dm-phone/public/app/sheet-actions.js +113 -0
  40. package/extensions/dm-phone/public/app/sheet-navigation.js +19 -0
  41. package/extensions/dm-phone/public/app/sheets-view.js +272 -0
  42. package/extensions/dm-phone/public/app/state.js +95 -0
  43. package/extensions/dm-phone/public/app/tool-rendering.js +562 -0
  44. package/extensions/dm-phone/public/app/transport.js +176 -0
  45. package/extensions/dm-phone/public/app/ui.js +409 -0
  46. package/extensions/dm-phone/public/app.js +1 -0
  47. package/extensions/dm-phone/public/icon.svg +15 -0
  48. package/extensions/dm-phone/public/index.html +147 -0
  49. package/extensions/dm-phone/public/manifest.webmanifest +17 -0
  50. package/extensions/dm-phone/public/styles.css +1139 -0
  51. package/extensions/dm-phone/public/sw.js +78 -0
  52. package/extensions/dm-phone/src/extension/phone-args.ts +121 -0
  53. package/extensions/dm-phone/src/extension/phone-paths.ts +250 -0
  54. package/extensions/dm-phone/src/extension/phone-quota.ts +188 -0
  55. package/extensions/dm-phone/src/extension/phone-runtime.ts +154 -0
  56. package/extensions/dm-phone/src/extension/phone-server-runtime.ts +1217 -0
  57. package/extensions/dm-phone/src/extension/phone-sessions.ts +139 -0
  58. package/extensions/dm-phone/src/extension/phone-static.ts +30 -0
  59. package/extensions/dm-phone/src/extension/phone-tailscale.ts +148 -0
  60. package/extensions/dm-phone/src/extension/phone-theme.ts +85 -0
  61. package/extensions/dm-phone/src/extension/register-phone-child-extension.ts +112 -0
  62. package/extensions/dm-phone/src/extension/register-phone-extension.ts +106 -0
  63. package/extensions/dm-phone/src/extension/types.ts +73 -0
  64. package/extensions/dm-phone/src/session-pool/parent-session-worker.ts +881 -0
  65. package/extensions/dm-phone/src/session-pool/session-pool.ts +470 -0
  66. package/extensions/dm-phone/src/session-pool/session-worker.ts +734 -0
  67. package/extensions/dm-phone/src/session-pool/types.ts +105 -0
  68. package/extensions/dm-phone/src/session-pool/utils.ts +23 -0
  69. package/package.json +1 -1
@@ -0,0 +1,105 @@
1
+ import type { WebSocket } from "ws";
2
+
3
+ export type SessionKind = "parent" | "parallel";
4
+
5
+ export type SessionSummary = {
6
+ id: string;
7
+ kind: SessionKind;
8
+ sessionId: string | null;
9
+ sessionFile: string | null;
10
+ sessionName: string | null;
11
+ label: string;
12
+ secondaryLabel: string;
13
+ firstUserPreview: string | null;
14
+ lastUserPreview: string | null;
15
+ model: { id: string; name: string; provider: string } | null;
16
+ isRunning: boolean;
17
+ isStreaming: boolean;
18
+ isCompacting: boolean;
19
+ messageCount: number;
20
+ pendingMessageCount: number;
21
+ hasPendingUiRequest: boolean;
22
+ lastError: string;
23
+ lastActivityAt: number;
24
+ childPid: number | null;
25
+ cwd?: string | null;
26
+ mirrorsCli?: boolean;
27
+ };
28
+
29
+ export type PendingRequest = {
30
+ resolve: (value: any) => void;
31
+ reject: (error: Error) => void;
32
+ timer: NodeJS.Timeout;
33
+ };
34
+
35
+ export type PendingClientResponse = {
36
+ ws: WebSocket;
37
+ responseCommand?: string;
38
+ responseData?: Record<string, unknown>;
39
+ onSuccess?: (payload: any) => void;
40
+ onError?: (payload: any) => void;
41
+ };
42
+
43
+ export type SessionSnapshot = {
44
+ state: any;
45
+ messages: any[];
46
+ commands: any[];
47
+ liveAssistantMessage: any;
48
+ liveTools: any[];
49
+ };
50
+
51
+ export type ClientState = {
52
+ activeSessionId: string | null;
53
+ };
54
+
55
+ export type SessionWorkerOptions<TWorker> = {
56
+ cwd: string;
57
+ send: (ws: WebSocket, payload: unknown) => void;
58
+ onActivity: () => void;
59
+ onStateChange: () => void;
60
+ onEnvelope: (worker: TWorker, envelope: any) => void;
61
+ shouldAutoRestart: (worker: TWorker) => boolean;
62
+ };
63
+
64
+ export type SessionStatus = {
65
+ childRunning: boolean;
66
+ cwd: string;
67
+ previousCwd: string | null;
68
+ isStreaming: boolean;
69
+ isCompacting: boolean;
70
+ lastError: string;
71
+ childPid: number | null;
72
+ sessionWorkerId: string;
73
+ sessionKind: SessionKind;
74
+ };
75
+
76
+ export interface SessionController {
77
+ id: string;
78
+ kind: SessionKind;
79
+ cwd: string;
80
+ previousCwd: string | null;
81
+ currentSessionFile: string | null;
82
+ lastError: string;
83
+ lastActivityAt: number;
84
+ pendingUiRequest: any;
85
+ ensureStarted(startOptions?: { sessionFile?: string | null }): Promise<void>;
86
+ request(command: Record<string, unknown>, timeoutMs?: number): Promise<any>;
87
+ refreshCachedSnapshot(timeoutMs?: number): Promise<SessionSnapshot>;
88
+ getSnapshot(): Promise<SessionSnapshot>;
89
+ sendClientCommand(command: Record<string, unknown>, meta?: PendingClientResponse): Promise<string | undefined>;
90
+ reload(): Promise<void>;
91
+ dispose(): Promise<void>;
92
+ getStatus(): SessionStatus;
93
+ getSummary(): SessionSummary;
94
+ getCachedSnapshot(): SessionSnapshot;
95
+ setTrackedCwd?(cwd: string, previousCwd?: string | null): void;
96
+ }
97
+
98
+ export type PhoneSessionPoolOptions = {
99
+ cwd: string;
100
+ send: (ws: WebSocket, payload: unknown) => void;
101
+ onActivity: () => void;
102
+ buildStatusMeta: () => Record<string, unknown>;
103
+ createDefaultSession: () => SessionController;
104
+ createParallelSession: (sessionFile?: string | null) => SessionController;
105
+ };
@@ -0,0 +1,23 @@
1
+ export function contentToPreviewText(content: unknown): string {
2
+ if (typeof content === "string") {
3
+ return content.replace(/\s+/g, " ").trim();
4
+ }
5
+
6
+ if (!Array.isArray(content)) {
7
+ return "";
8
+ }
9
+
10
+ return content
11
+ .map((part: any) => {
12
+ if (part?.type === "text") return part.text || "";
13
+ if (part?.type === "image") return "[image]";
14
+ return "";
15
+ })
16
+ .join(" ")
17
+ .replace(/\s+/g, " ")
18
+ .trim();
19
+ }
20
+
21
+ export function shortId(value: unknown): string {
22
+ return String(value || "").trim().slice(0, 8);
23
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@duckmind/dm-darwin-x64",
3
- "version": "0.13.6",
3
+ "version": "0.13.7",
4
4
  "description": "DuckMind (dm) binary payload for darwin x64",
5
5
  "license": "MIT",
6
6
  "os": [