@prbe.ai/electron-sdk 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 (54) hide show
  1. package/dist/agent.d.ts +105 -0
  2. package/dist/agent.d.ts.map +1 -0
  3. package/dist/agent.js +861 -0
  4. package/dist/agent.js.map +1 -0
  5. package/dist/assets/index.d.ts +6 -0
  6. package/dist/assets/index.d.ts.map +1 -0
  7. package/dist/assets/index.js +13 -0
  8. package/dist/assets/index.js.map +1 -0
  9. package/dist/index.d.ts +16 -0
  10. package/dist/index.d.ts.map +1 -0
  11. package/dist/index.js +62 -0
  12. package/dist/index.js.map +1 -0
  13. package/dist/interactions.d.ts +56 -0
  14. package/dist/interactions.d.ts.map +1 -0
  15. package/dist/interactions.js +27 -0
  16. package/dist/interactions.js.map +1 -0
  17. package/dist/models.d.ts +212 -0
  18. package/dist/models.d.ts.map +1 -0
  19. package/dist/models.js +120 -0
  20. package/dist/models.js.map +1 -0
  21. package/dist/serialization.d.ts +49 -0
  22. package/dist/serialization.d.ts.map +1 -0
  23. package/dist/serialization.js +69 -0
  24. package/dist/serialization.js.map +1 -0
  25. package/dist/state.d.ts +67 -0
  26. package/dist/state.d.ts.map +1 -0
  27. package/dist/state.js +270 -0
  28. package/dist/state.js.map +1 -0
  29. package/dist/tools/bash.d.ts +30 -0
  30. package/dist/tools/bash.d.ts.map +1 -0
  31. package/dist/tools/bash.js +247 -0
  32. package/dist/tools/bash.js.map +1 -0
  33. package/dist/tools/filesystem.d.ts +63 -0
  34. package/dist/tools/filesystem.d.ts.map +1 -0
  35. package/dist/tools/filesystem.js +573 -0
  36. package/dist/tools/filesystem.js.map +1 -0
  37. package/dist/tools/index.d.ts +46 -0
  38. package/dist/tools/index.d.ts.map +1 -0
  39. package/dist/tools/index.js +171 -0
  40. package/dist/tools/index.js.map +1 -0
  41. package/dist/tools/interactive.d.ts +15 -0
  42. package/dist/tools/interactive.d.ts.map +1 -0
  43. package/dist/tools/interactive.js +57 -0
  44. package/dist/tools/interactive.js.map +1 -0
  45. package/dist/tools/logs.d.ts +72 -0
  46. package/dist/tools/logs.d.ts.map +1 -0
  47. package/dist/tools/logs.js +366 -0
  48. package/dist/tools/logs.js.map +1 -0
  49. package/dist/types.d.ts +14 -0
  50. package/dist/types.d.ts.map +1 -0
  51. package/dist/types.js +32 -0
  52. package/dist/types.js.map +1 -0
  53. package/package.json +35 -0
  54. package/src/assets/probe-mark.svg +5 -0
@@ -0,0 +1,105 @@
1
+ /**
2
+ * agent.ts — PRBEAgent class
3
+ *
4
+ * Main entry point for the PRBE debug agent SDK.
5
+ * Handles WebSocket connection to middleware, investigation lifecycle,
6
+ * background polling for context requests, file uploads, and persistence.
7
+ *
8
+ * Mirrors PRBEAgent.swift behavior.
9
+ */
10
+ import type { PRBEAgentConfig, PRBEToolParameter, PollResponse, TicketInfoOut } from "./models";
11
+ import { PRBEAgentState } from "./state";
12
+ import { PRBELogCapture } from "./tools/logs";
13
+ import { InvestigationSource } from "./interactions";
14
+ import type { PRBEInteractionRequester, InteractionPayload, InteractionResponse } from "./interactions";
15
+ export declare class PRBEAgent implements PRBEInteractionRequester {
16
+ readonly state: PRBEAgentState;
17
+ readonly logCapture: PRBELogCapture;
18
+ private readonly config;
19
+ private readonly interactionHandler?;
20
+ private readonly registry;
21
+ private readonly grantedPaths;
22
+ private userCancelled;
23
+ private activeWS;
24
+ private pollingTimer;
25
+ private persistedData;
26
+ private fetchAbortController;
27
+ private currentInvestigationSource;
28
+ private currentCRId;
29
+ /** Files flagged during the current tool call — uploaded immediately after the tool returns. */
30
+ private pendingFlaggedFiles;
31
+ private get agentID();
32
+ private get trackedTicketIDs();
33
+ private set trackedTicketIDs(value);
34
+ private get respondedCRIDs();
35
+ private set respondedCRIDs(value);
36
+ private syncPolling;
37
+ private addTrackedTicket;
38
+ constructor(config: PRBEAgentConfig);
39
+ private hookElectronLog;
40
+ private hookRendererLogs;
41
+ private static mapElectronLogLevel;
42
+ get investigationSource(): InvestigationSource;
43
+ requestUserInteraction(payload: InteractionPayload): Promise<InteractionResponse>;
44
+ /**
45
+ * Add an additional root directory to the runtime allowed roots.
46
+ */
47
+ addAllowedRoot(rootPath: string): void;
48
+ /**
49
+ * Register a custom tool that the middleware can invoke during investigations.
50
+ */
51
+ registerTool(name: string, description: string, parameters: PRBEToolParameter[], handler: (args: Record<string, unknown>) => Promise<string>): void;
52
+ /**
53
+ * User-initiated investigation. Updates `state` events/report directly.
54
+ */
55
+ investigate(query: string, contextRequestID?: string): Promise<void>;
56
+ /**
57
+ * Cancel user-initiated investigation only (does not cancel background CRs).
58
+ */
59
+ cancelInvestigation(): void;
60
+ /**
61
+ * Cancel everything — user investigation and polling.
62
+ */
63
+ cancel(): void;
64
+ /**
65
+ * Poll the backend for context requests on tracked tickets.
66
+ */
67
+ poll(): Promise<PollResponse | null>;
68
+ /**
69
+ * Fetch ticket display info for all tracked tickets.
70
+ */
71
+ fetchTicketInfo(): Promise<TicketInfoOut[]>;
72
+ stopPolling(): void;
73
+ resumePolling(): void;
74
+ /**
75
+ * Destroy the agent — stops polling, stops console capture, closes WS.
76
+ */
77
+ destroy(): void;
78
+ /**
79
+ * Reset all persisted data (agent ID, tracked tickets, responded CRs).
80
+ * Also clears in-memory state.
81
+ */
82
+ resetPersistedData(): void;
83
+ /**
84
+ * Delete the persisted data file. Can be called without an agent instance.
85
+ */
86
+ static clearPersistedData(): void;
87
+ private investigateForCR;
88
+ private connectToProxy;
89
+ private sendCancel;
90
+ private extractArgs;
91
+ private extractUploadPrefix;
92
+ private static backgroundUpload;
93
+ private startPolling;
94
+ /**
95
+ * Abort all in-flight fetch requests to prevent orphaned DNS lookups
96
+ * that can crash the c-ares resolver during process shutdown.
97
+ */
98
+ private abortInFlightRequests;
99
+ /**
100
+ * Get an AbortSignal for fetch requests. Creates a new controller if needed.
101
+ */
102
+ private getFetchSignal;
103
+ private post;
104
+ }
105
+ //# sourceMappingURL=agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}