agent-debugger 0.1.0

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 (64) hide show
  1. package/README.md +131 -0
  2. package/bin/agent-debugger +2 -0
  3. package/dist/src/adapters/base.d.ts +45 -0
  4. package/dist/src/adapters/base.d.ts.map +1 -0
  5. package/dist/src/adapters/base.js +3 -0
  6. package/dist/src/adapters/base.js.map +1 -0
  7. package/dist/src/adapters/go.d.ts +27 -0
  8. package/dist/src/adapters/go.d.ts.map +1 -0
  9. package/dist/src/adapters/go.js +144 -0
  10. package/dist/src/adapters/go.js.map +1 -0
  11. package/dist/src/adapters/node.d.ts +27 -0
  12. package/dist/src/adapters/node.d.ts.map +1 -0
  13. package/dist/src/adapters/node.js +197 -0
  14. package/dist/src/adapters/node.js.map +1 -0
  15. package/dist/src/adapters/python.d.ts +27 -0
  16. package/dist/src/adapters/python.d.ts.map +1 -0
  17. package/dist/src/adapters/python.js +152 -0
  18. package/dist/src/adapters/python.js.map +1 -0
  19. package/dist/src/adapters/registry.d.ts +10 -0
  20. package/dist/src/adapters/registry.d.ts.map +1 -0
  21. package/dist/src/adapters/registry.js +45 -0
  22. package/dist/src/adapters/registry.js.map +1 -0
  23. package/dist/src/adapters/rust.d.ts +27 -0
  24. package/dist/src/adapters/rust.d.ts.map +1 -0
  25. package/dist/src/adapters/rust.js +149 -0
  26. package/dist/src/adapters/rust.js.map +1 -0
  27. package/dist/src/cli.d.ts +4 -0
  28. package/dist/src/cli.d.ts.map +1 -0
  29. package/dist/src/cli.js +326 -0
  30. package/dist/src/cli.js.map +1 -0
  31. package/dist/src/daemon.d.ts +3 -0
  32. package/dist/src/daemon.d.ts.map +1 -0
  33. package/dist/src/daemon.js +136 -0
  34. package/dist/src/daemon.js.map +1 -0
  35. package/dist/src/dap-client.d.ts +35 -0
  36. package/dist/src/dap-client.d.ts.map +1 -0
  37. package/dist/src/dap-client.js +256 -0
  38. package/dist/src/dap-client.js.map +1 -0
  39. package/dist/src/dap-types.d.ts +52 -0
  40. package/dist/src/dap-types.d.ts.map +1 -0
  41. package/dist/src/dap-types.js +3 -0
  42. package/dist/src/dap-types.js.map +1 -0
  43. package/dist/src/protocol.d.ts +253 -0
  44. package/dist/src/protocol.d.ts.map +1 -0
  45. package/dist/src/protocol.js +50 -0
  46. package/dist/src/protocol.js.map +1 -0
  47. package/dist/src/session.d.ts +30 -0
  48. package/dist/src/session.d.ts.map +1 -0
  49. package/dist/src/session.js +407 -0
  50. package/dist/src/session.js.map +1 -0
  51. package/dist/src/util/paths.d.ts +5 -0
  52. package/dist/src/util/paths.d.ts.map +1 -0
  53. package/dist/src/util/paths.js +7 -0
  54. package/dist/src/util/paths.js.map +1 -0
  55. package/dist/src/util/ports.d.ts +3 -0
  56. package/dist/src/util/ports.d.ts.map +1 -0
  57. package/dist/src/util/ports.js +19 -0
  58. package/dist/src/util/ports.js.map +1 -0
  59. package/dist/test/protocol.test.d.ts +2 -0
  60. package/dist/test/protocol.test.d.ts.map +1 -0
  61. package/dist/test/protocol.test.js +25 -0
  62. package/dist/test/protocol.test.js.map +1 -0
  63. package/package.json +55 -0
  64. package/skills/agent-debugger/SKILL.md +225 -0
@@ -0,0 +1,256 @@
1
+ /** DAP (Debug Adapter Protocol) client over TCP.*/
2
+ import { Socket } from "node:net";
3
+ import { EventEmitter } from "node:events";
4
+ export class DAPClient extends EventEmitter {
5
+ sock = null;
6
+ seq = 0;
7
+ pending = new Map();
8
+ /** Deferred promises for requestAsync — survives dispatch resolution. */
9
+ asyncResponses = new Map();
10
+ eventQueue = [];
11
+ buffer = Buffer.alloc(0);
12
+ capabilities = {};
13
+ /** Connect to a DAP server with retry loop. */
14
+ async connect(host, port, timeout = 10000) {
15
+ const deadline = Date.now() + timeout;
16
+ let lastErr = null;
17
+ while (Date.now() < deadline) {
18
+ try {
19
+ await this.tryConnect(host, port, Math.min(1000, deadline - Date.now()));
20
+ return;
21
+ }
22
+ catch (err) {
23
+ lastErr = err;
24
+ await sleep(100);
25
+ }
26
+ }
27
+ throw new Error(`Could not connect to ${host}:${port} within ${timeout}ms: ${lastErr?.message}`);
28
+ }
29
+ tryConnect(host, port, timeout) {
30
+ return new Promise((resolve, reject) => {
31
+ const sock = new Socket();
32
+ const timer = setTimeout(() => {
33
+ sock.destroy();
34
+ reject(new Error("Connection timeout"));
35
+ }, timeout);
36
+ sock.once("connect", () => {
37
+ clearTimeout(timer);
38
+ this.sock = sock;
39
+ this.setupSocket();
40
+ resolve();
41
+ });
42
+ sock.once("error", (err) => {
43
+ clearTimeout(timer);
44
+ sock.destroy();
45
+ reject(err);
46
+ });
47
+ sock.connect(port, host);
48
+ });
49
+ }
50
+ setupSocket() {
51
+ if (!this.sock)
52
+ return;
53
+ this.sock.on("data", (chunk) => {
54
+ this.buffer = Buffer.concat([this.buffer, chunk]);
55
+ this.processBuffer();
56
+ });
57
+ this.sock.on("close", () => {
58
+ for (const [seq, pending] of this.pending) {
59
+ clearTimeout(pending.timer);
60
+ pending.reject(new Error("Connection closed"));
61
+ this.pending.delete(seq);
62
+ }
63
+ // Also reject any async deferred that hasn't resolved
64
+ for (const [seq, deferred] of this.asyncResponses) {
65
+ if (!deferred.settled) {
66
+ deferred.reject(new Error("Connection closed"));
67
+ }
68
+ this.asyncResponses.delete(seq);
69
+ }
70
+ });
71
+ this.sock.on("error", () => {
72
+ // Handled by close
73
+ });
74
+ }
75
+ processBuffer() {
76
+ while (true) {
77
+ const headerEnd = this.buffer.indexOf("\r\n\r\n");
78
+ if (headerEnd === -1)
79
+ return;
80
+ const header = this.buffer.subarray(0, headerEnd).toString("ascii");
81
+ let contentLength = null;
82
+ for (const line of header.split("\r\n")) {
83
+ if (line.toLowerCase().startsWith("content-length:")) {
84
+ contentLength = parseInt(line.split(":")[1].trim(), 10);
85
+ }
86
+ }
87
+ if (contentLength === null)
88
+ return;
89
+ const bodyStart = headerEnd + 4;
90
+ const bodyEnd = bodyStart + contentLength;
91
+ if (this.buffer.length < bodyEnd)
92
+ return;
93
+ const body = this.buffer.subarray(bodyStart, bodyEnd).toString("utf-8");
94
+ this.buffer = this.buffer.subarray(bodyEnd);
95
+ const msg = JSON.parse(body);
96
+ this.dispatch(msg);
97
+ }
98
+ }
99
+ dispatch(msg) {
100
+ if (msg.type === "response") {
101
+ const resp = msg;
102
+ // Check async responses first (requestAsync + waitForResponse)
103
+ const deferred = this.asyncResponses.get(resp.request_seq);
104
+ if (deferred) {
105
+ deferred.resolve(resp);
106
+ // Don't delete — waitForResponse may not have been called yet.
107
+ // It gets cleaned up there.
108
+ }
109
+ // Also resolve any pending entry (from request())
110
+ const pending = this.pending.get(resp.request_seq);
111
+ if (pending) {
112
+ clearTimeout(pending.timer);
113
+ this.pending.delete(resp.request_seq);
114
+ pending.resolve(resp);
115
+ }
116
+ }
117
+ else if (msg.type === "event") {
118
+ const evt = msg;
119
+ this.eventQueue.push(evt);
120
+ this.emit("event", evt);
121
+ this.emit(`event:${evt.event}`, evt);
122
+ }
123
+ }
124
+ send(msg) {
125
+ if (!this.sock)
126
+ throw new Error("Not connected");
127
+ const body = Buffer.from(JSON.stringify(msg), "utf-8");
128
+ const header = Buffer.from(`Content-Length: ${body.length}\r\n\r\n`, "ascii");
129
+ this.sock.write(Buffer.concat([header, body]));
130
+ }
131
+ /** Send a request and wait for the response. */
132
+ request(command, args, timeout = 30000) {
133
+ return new Promise((resolve, reject) => {
134
+ this.seq++;
135
+ const seq = this.seq;
136
+ const timer = setTimeout(() => {
137
+ this.pending.delete(seq);
138
+ reject(new Error(`DAP request '${command}' timed out after ${timeout}ms`));
139
+ }, timeout);
140
+ this.pending.set(seq, { resolve, reject, timer });
141
+ const msg = { seq, type: "request", command };
142
+ if (args)
143
+ msg.arguments = args;
144
+ this.send(msg);
145
+ });
146
+ }
147
+ /** Send a request without waiting. Returns the seq for later retrieval via waitForResponse. */
148
+ requestAsync(command, args) {
149
+ this.seq++;
150
+ const seq = this.seq;
151
+ const msg = { seq, type: "request", command };
152
+ if (args)
153
+ msg.arguments = args;
154
+ // Create a deferred that survives dispatch resolution
155
+ const deferred = createDeferred();
156
+ this.asyncResponses.set(seq, deferred);
157
+ this.send(msg);
158
+ return seq;
159
+ }
160
+ /** Wait for response to a previously sent async request. */
161
+ async waitForResponse(seq, timeout = 30000) {
162
+ const deferred = this.asyncResponses.get(seq);
163
+ if (!deferred) {
164
+ throw new Error(`No pending async request with seq ${seq}`);
165
+ }
166
+ // Race the deferred promise against a timeout
167
+ const result = await Promise.race([
168
+ deferred.promise,
169
+ new Promise((_, reject) => {
170
+ setTimeout(() => reject(new Error(`DAP request seq=${seq} timed out after ${timeout}ms`)), timeout);
171
+ }),
172
+ ]);
173
+ // Clean up
174
+ this.asyncResponses.delete(seq);
175
+ return result;
176
+ }
177
+ /** Wait for a specific DAP event. */
178
+ waitForEvent(eventName, timeout = 30000) {
179
+ // Check queue first
180
+ const idx = this.eventQueue.findIndex((e) => e.event === eventName);
181
+ if (idx !== -1) {
182
+ return Promise.resolve(this.eventQueue.splice(idx, 1)[0]);
183
+ }
184
+ return new Promise((resolve) => {
185
+ const timer = setTimeout(() => {
186
+ this.removeListener(`event:${eventName}`, handler);
187
+ resolve(null);
188
+ }, timeout);
189
+ const handler = (evt) => {
190
+ clearTimeout(timer);
191
+ this.removeListener(`event:${eventName}`, handler);
192
+ // Remove from queue if it was also queued
193
+ const qi = this.eventQueue.indexOf(evt);
194
+ if (qi !== -1)
195
+ this.eventQueue.splice(qi, 1);
196
+ resolve(evt);
197
+ };
198
+ this.once(`event:${eventName}`, handler);
199
+ });
200
+ }
201
+ /** Drain all events of a given type from the queue. */
202
+ drainEvents(eventName) {
203
+ if (eventName) {
204
+ const matched = this.eventQueue.filter((e) => e.event === eventName);
205
+ this.eventQueue = this.eventQueue.filter((e) => e.event !== eventName);
206
+ return matched;
207
+ }
208
+ const all = [...this.eventQueue];
209
+ this.eventQueue = [];
210
+ return all;
211
+ }
212
+ getCapabilities() {
213
+ return this.capabilities;
214
+ }
215
+ /** Disconnect from the DAP server. */
216
+ async disconnect(terminate = true) {
217
+ try {
218
+ await this.request("disconnect", { restart: false, terminateDebuggee: terminate }, 5000);
219
+ }
220
+ catch {
221
+ // Best effort
222
+ }
223
+ finally {
224
+ if (this.sock) {
225
+ this.sock.destroy();
226
+ this.sock = null;
227
+ }
228
+ for (const [, pending] of this.pending) {
229
+ clearTimeout(pending.timer);
230
+ }
231
+ this.pending.clear();
232
+ this.asyncResponses.clear();
233
+ }
234
+ }
235
+ async close() {
236
+ await this.disconnect(true);
237
+ }
238
+ }
239
+ function sleep(ms) {
240
+ return new Promise((resolve) => setTimeout(resolve, ms));
241
+ }
242
+ function createDeferred() {
243
+ let resolve;
244
+ let reject;
245
+ const deferred = {
246
+ settled: false,
247
+ };
248
+ deferred.promise = new Promise((res, rej) => {
249
+ resolve = (val) => { deferred.settled = true; res(val); };
250
+ reject = (err) => { deferred.settled = true; rej(err); };
251
+ });
252
+ deferred.resolve = resolve;
253
+ deferred.reject = reject;
254
+ return deferred;
255
+ }
256
+ //# sourceMappingURL=dap-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dap-client.js","sourceRoot":"","sources":["../../src/dap-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ /** DAP (Debug Adapter Protocol) message type definitions. */
2
+ export interface DAPMessage {
3
+ seq: number;
4
+ type: "request" | "response" | "event";
5
+ }
6
+ export interface DAPRequest extends DAPMessage {
7
+ type: "request";
8
+ command: string;
9
+ arguments?: Record<string, unknown>;
10
+ }
11
+ export interface DAPResponse extends DAPMessage {
12
+ type: "response";
13
+ request_seq: number;
14
+ success: boolean;
15
+ command: string;
16
+ message?: string;
17
+ body?: Record<string, unknown>;
18
+ }
19
+ export interface DAPEvent extends DAPMessage {
20
+ type: "event";
21
+ event: string;
22
+ body?: Record<string, unknown>;
23
+ }
24
+ export interface StackFrame {
25
+ id: number;
26
+ name: string;
27
+ line: number;
28
+ column: number;
29
+ source?: {
30
+ name?: string;
31
+ path?: string;
32
+ sourceReference?: number;
33
+ };
34
+ }
35
+ export interface Variable {
36
+ name: string;
37
+ value: string;
38
+ type?: string;
39
+ variablesReference: number;
40
+ }
41
+ export interface Scope {
42
+ name: string;
43
+ variablesReference: number;
44
+ expensive: boolean;
45
+ }
46
+ export interface Breakpoint {
47
+ id?: number;
48
+ verified: boolean;
49
+ line?: number;
50
+ message?: string;
51
+ }
52
+ //# sourceMappingURL=dap-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dap-types.d.ts","sourceRoot":"","sources":["../../src/dap-types.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAE7D,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,SAAS,GAAG,UAAU,GAAG,OAAO,CAAC;CACxC;AAED,MAAM,WAAW,UAAW,SAAQ,UAAU;IAC5C,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,WAAY,SAAQ,UAAU;IAC7C,IAAI,EAAE,UAAU,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,QAAS,SAAQ,UAAU;IAC1C,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE;QACP,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;CACH;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,kBAAkB,EAAE,MAAM,CAAC;IAC3B,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB"}
@@ -0,0 +1,3 @@
1
+ /** DAP (Debug Adapter Protocol) message type definitions. */
2
+ export {};
3
+ //# sourceMappingURL=dap-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dap-types.js","sourceRoot":"","sources":["../../src/dap-types.ts"],"names":[],"mappings":"AAAA,6DAA6D"}
@@ -0,0 +1,253 @@
1
+ /** Daemon <-> CLI protocol schemas. Newline-delimited JSON. */
2
+ import { z } from "zod";
3
+ export declare const StartCommand: z.ZodObject<{
4
+ action: z.ZodLiteral<"start">;
5
+ script: z.ZodString;
6
+ language: z.ZodOptional<z.ZodString>;
7
+ breakpoints: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
8
+ runtime: z.ZodOptional<z.ZodString>;
9
+ args: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
10
+ cwd: z.ZodOptional<z.ZodString>;
11
+ stop_on_entry: z.ZodOptional<z.ZodBoolean>;
12
+ }, "strip", z.ZodTypeAny, {
13
+ action: "start";
14
+ script: string;
15
+ language?: string | undefined;
16
+ breakpoints?: string[] | undefined;
17
+ runtime?: string | undefined;
18
+ args?: string[] | undefined;
19
+ cwd?: string | undefined;
20
+ stop_on_entry?: boolean | undefined;
21
+ }, {
22
+ action: "start";
23
+ script: string;
24
+ language?: string | undefined;
25
+ breakpoints?: string[] | undefined;
26
+ runtime?: string | undefined;
27
+ args?: string[] | undefined;
28
+ cwd?: string | undefined;
29
+ stop_on_entry?: boolean | undefined;
30
+ }>;
31
+ export declare const VarsCommand: z.ZodObject<{
32
+ action: z.ZodLiteral<"vars">;
33
+ }, "strip", z.ZodTypeAny, {
34
+ action: "vars";
35
+ }, {
36
+ action: "vars";
37
+ }>;
38
+ export declare const StackCommand: z.ZodObject<{
39
+ action: z.ZodLiteral<"stack">;
40
+ }, "strip", z.ZodTypeAny, {
41
+ action: "stack";
42
+ }, {
43
+ action: "stack";
44
+ }>;
45
+ export declare const EvalCommand: z.ZodObject<{
46
+ action: z.ZodLiteral<"eval">;
47
+ expression: z.ZodString;
48
+ }, "strip", z.ZodTypeAny, {
49
+ action: "eval";
50
+ expression: string;
51
+ }, {
52
+ action: "eval";
53
+ expression: string;
54
+ }>;
55
+ export declare const StepCommand: z.ZodObject<{
56
+ action: z.ZodLiteral<"step">;
57
+ kind: z.ZodOptional<z.ZodEnum<["over", "into", "out"]>>;
58
+ }, "strip", z.ZodTypeAny, {
59
+ action: "step";
60
+ kind?: "over" | "into" | "out" | undefined;
61
+ }, {
62
+ action: "step";
63
+ kind?: "over" | "into" | "out" | undefined;
64
+ }>;
65
+ export declare const ContinueCommand: z.ZodObject<{
66
+ action: z.ZodLiteral<"continue">;
67
+ }, "strip", z.ZodTypeAny, {
68
+ action: "continue";
69
+ }, {
70
+ action: "continue";
71
+ }>;
72
+ export declare const BreakCommand: z.ZodObject<{
73
+ action: z.ZodLiteral<"break">;
74
+ file: z.ZodString;
75
+ line: z.ZodNumber;
76
+ condition: z.ZodOptional<z.ZodString>;
77
+ }, "strip", z.ZodTypeAny, {
78
+ action: "break";
79
+ file: string;
80
+ line: number;
81
+ condition?: string | undefined;
82
+ }, {
83
+ action: "break";
84
+ file: string;
85
+ line: number;
86
+ condition?: string | undefined;
87
+ }>;
88
+ export declare const SourceCommand: z.ZodObject<{
89
+ action: z.ZodLiteral<"source">;
90
+ file: z.ZodOptional<z.ZodString>;
91
+ line: z.ZodOptional<z.ZodNumber>;
92
+ }, "strip", z.ZodTypeAny, {
93
+ action: "source";
94
+ file?: string | undefined;
95
+ line?: number | undefined;
96
+ }, {
97
+ action: "source";
98
+ file?: string | undefined;
99
+ line?: number | undefined;
100
+ }>;
101
+ export declare const StatusCommand: z.ZodObject<{
102
+ action: z.ZodLiteral<"status">;
103
+ }, "strip", z.ZodTypeAny, {
104
+ action: "status";
105
+ }, {
106
+ action: "status";
107
+ }>;
108
+ export declare const CloseCommand: z.ZodObject<{
109
+ action: z.ZodLiteral<"close">;
110
+ }, "strip", z.ZodTypeAny, {
111
+ action: "close";
112
+ }, {
113
+ action: "close";
114
+ }>;
115
+ export declare const Command: z.ZodDiscriminatedUnion<"action", [z.ZodObject<{
116
+ action: z.ZodLiteral<"start">;
117
+ script: z.ZodString;
118
+ language: z.ZodOptional<z.ZodString>;
119
+ breakpoints: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
120
+ runtime: z.ZodOptional<z.ZodString>;
121
+ args: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
122
+ cwd: z.ZodOptional<z.ZodString>;
123
+ stop_on_entry: z.ZodOptional<z.ZodBoolean>;
124
+ }, "strip", z.ZodTypeAny, {
125
+ action: "start";
126
+ script: string;
127
+ language?: string | undefined;
128
+ breakpoints?: string[] | undefined;
129
+ runtime?: string | undefined;
130
+ args?: string[] | undefined;
131
+ cwd?: string | undefined;
132
+ stop_on_entry?: boolean | undefined;
133
+ }, {
134
+ action: "start";
135
+ script: string;
136
+ language?: string | undefined;
137
+ breakpoints?: string[] | undefined;
138
+ runtime?: string | undefined;
139
+ args?: string[] | undefined;
140
+ cwd?: string | undefined;
141
+ stop_on_entry?: boolean | undefined;
142
+ }>, z.ZodObject<{
143
+ action: z.ZodLiteral<"vars">;
144
+ }, "strip", z.ZodTypeAny, {
145
+ action: "vars";
146
+ }, {
147
+ action: "vars";
148
+ }>, z.ZodObject<{
149
+ action: z.ZodLiteral<"stack">;
150
+ }, "strip", z.ZodTypeAny, {
151
+ action: "stack";
152
+ }, {
153
+ action: "stack";
154
+ }>, z.ZodObject<{
155
+ action: z.ZodLiteral<"eval">;
156
+ expression: z.ZodString;
157
+ }, "strip", z.ZodTypeAny, {
158
+ action: "eval";
159
+ expression: string;
160
+ }, {
161
+ action: "eval";
162
+ expression: string;
163
+ }>, z.ZodObject<{
164
+ action: z.ZodLiteral<"step">;
165
+ kind: z.ZodOptional<z.ZodEnum<["over", "into", "out"]>>;
166
+ }, "strip", z.ZodTypeAny, {
167
+ action: "step";
168
+ kind?: "over" | "into" | "out" | undefined;
169
+ }, {
170
+ action: "step";
171
+ kind?: "over" | "into" | "out" | undefined;
172
+ }>, z.ZodObject<{
173
+ action: z.ZodLiteral<"continue">;
174
+ }, "strip", z.ZodTypeAny, {
175
+ action: "continue";
176
+ }, {
177
+ action: "continue";
178
+ }>, z.ZodObject<{
179
+ action: z.ZodLiteral<"break">;
180
+ file: z.ZodString;
181
+ line: z.ZodNumber;
182
+ condition: z.ZodOptional<z.ZodString>;
183
+ }, "strip", z.ZodTypeAny, {
184
+ action: "break";
185
+ file: string;
186
+ line: number;
187
+ condition?: string | undefined;
188
+ }, {
189
+ action: "break";
190
+ file: string;
191
+ line: number;
192
+ condition?: string | undefined;
193
+ }>, z.ZodObject<{
194
+ action: z.ZodLiteral<"source">;
195
+ file: z.ZodOptional<z.ZodString>;
196
+ line: z.ZodOptional<z.ZodNumber>;
197
+ }, "strip", z.ZodTypeAny, {
198
+ action: "source";
199
+ file?: string | undefined;
200
+ line?: number | undefined;
201
+ }, {
202
+ action: "source";
203
+ file?: string | undefined;
204
+ line?: number | undefined;
205
+ }>, z.ZodObject<{
206
+ action: z.ZodLiteral<"status">;
207
+ }, "strip", z.ZodTypeAny, {
208
+ action: "status";
209
+ }, {
210
+ action: "status";
211
+ }>, z.ZodObject<{
212
+ action: z.ZodLiteral<"close">;
213
+ }, "strip", z.ZodTypeAny, {
214
+ action: "close";
215
+ }, {
216
+ action: "close";
217
+ }>]>;
218
+ export type Command = z.infer<typeof Command>;
219
+ export interface LocationInfo {
220
+ file: string;
221
+ line: number;
222
+ function: string;
223
+ }
224
+ export interface BreakpointInfo {
225
+ file: string;
226
+ line: number;
227
+ verified: boolean;
228
+ }
229
+ export interface VariableInfo {
230
+ name: string;
231
+ value: string;
232
+ type: string;
233
+ }
234
+ export interface CommandResult {
235
+ error?: string;
236
+ status?: string;
237
+ reason?: string;
238
+ location?: LocationInfo | null;
239
+ breakpoints?: BreakpointInfo[];
240
+ variables?: VariableInfo[];
241
+ count?: number;
242
+ frames?: LocationInfo[];
243
+ result?: string;
244
+ type?: string;
245
+ exitCode?: number | null;
246
+ source?: string;
247
+ file?: string;
248
+ line?: number;
249
+ verified?: boolean;
250
+ state?: string;
251
+ message?: string;
252
+ }
253
+ //# sourceMappingURL=protocol.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../src/protocol.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAE/D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;EASvB,CAAC;AAEH,eAAO,MAAM,WAAW;;;;;;EAA0C,CAAC;AACnE,eAAO,MAAM,YAAY;;;;;;EAA2C,CAAC;AAErE,eAAO,MAAM,WAAW;;;;;;;;;EAGtB,CAAC;AAEH,eAAO,MAAM,WAAW;;;;;;;;;EAGtB,CAAC;AAEH,eAAO,MAAM,eAAe;;;;;;EAA8C,CAAC;AAE3E,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;EAKvB,CAAC;AAEH,eAAO,MAAM,aAAa;;;;;;;;;;;;EAIxB,CAAC;AAEH,eAAO,MAAM,aAAa;;;;;;EAA4C,CAAC;AACvE,eAAO,MAAM,YAAY;;;;;;EAA2C,CAAC;AAErE,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAWlB,CAAC;AAEH,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;AAI9C,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;IAC/B,WAAW,CAAC,EAAE,cAAc,EAAE,CAAC;IAC/B,SAAS,CAAC,EAAE,YAAY,EAAE,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,YAAY,EAAE,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB"}
@@ -0,0 +1,50 @@
1
+ /** Daemon <-> CLI protocol schemas. Newline-delimited JSON. */
2
+ import { z } from "zod";
3
+ // --- Commands (CLI -> Daemon) ---
4
+ export const StartCommand = z.object({
5
+ action: z.literal("start"),
6
+ script: z.string(),
7
+ language: z.string().optional(),
8
+ breakpoints: z.array(z.string()).optional(),
9
+ runtime: z.string().optional(),
10
+ args: z.array(z.string()).optional(),
11
+ cwd: z.string().optional(),
12
+ stop_on_entry: z.boolean().optional(),
13
+ });
14
+ export const VarsCommand = z.object({ action: z.literal("vars") });
15
+ export const StackCommand = z.object({ action: z.literal("stack") });
16
+ export const EvalCommand = z.object({
17
+ action: z.literal("eval"),
18
+ expression: z.string(),
19
+ });
20
+ export const StepCommand = z.object({
21
+ action: z.literal("step"),
22
+ kind: z.enum(["over", "into", "out"]).optional(),
23
+ });
24
+ export const ContinueCommand = z.object({ action: z.literal("continue") });
25
+ export const BreakCommand = z.object({
26
+ action: z.literal("break"),
27
+ file: z.string(),
28
+ line: z.number(),
29
+ condition: z.string().optional(),
30
+ });
31
+ export const SourceCommand = z.object({
32
+ action: z.literal("source"),
33
+ file: z.string().optional(),
34
+ line: z.number().optional(),
35
+ });
36
+ export const StatusCommand = z.object({ action: z.literal("status") });
37
+ export const CloseCommand = z.object({ action: z.literal("close") });
38
+ export const Command = z.discriminatedUnion("action", [
39
+ StartCommand,
40
+ VarsCommand,
41
+ StackCommand,
42
+ EvalCommand,
43
+ StepCommand,
44
+ ContinueCommand,
45
+ BreakCommand,
46
+ SourceCommand,
47
+ StatusCommand,
48
+ CloseCommand,
49
+ ]);
50
+ //# sourceMappingURL=protocol.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../src/protocol.ts"],"names":[],"mappings":"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"}