@jx-grxf/patchpilot 0.4.0 → 1.2.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 (180) hide show
  1. package/.env.example +17 -1
  2. package/README.md +113 -23
  3. package/SECURITY.md +7 -1
  4. package/dist/cli.js +103 -14
  5. package/dist/cli.js.map +1 -1
  6. package/dist/core/agent.d.ts +47 -1
  7. package/dist/core/agent.js +667 -76
  8. package/dist/core/agent.js.map +1 -1
  9. package/dist/core/cleanup.d.ts +3 -0
  10. package/dist/core/cleanup.js +29 -0
  11. package/dist/core/cleanup.js.map +1 -0
  12. package/dist/core/clipboard.d.ts +14 -0
  13. package/dist/core/clipboard.js +134 -0
  14. package/dist/core/clipboard.js.map +1 -0
  15. package/dist/core/codex.d.ts +8 -0
  16. package/dist/core/codex.js +28 -2
  17. package/dist/core/codex.js.map +1 -1
  18. package/dist/core/compaction.d.ts +23 -0
  19. package/dist/core/compaction.js +145 -0
  20. package/dist/core/compaction.js.map +1 -0
  21. package/dist/core/contextFormat.d.ts +21 -0
  22. package/dist/core/contextFormat.js +87 -0
  23. package/dist/core/contextFormat.js.map +1 -0
  24. package/dist/core/contextItem.d.ts +41 -0
  25. package/dist/core/contextItem.js +93 -0
  26. package/dist/core/contextItem.js.map +1 -0
  27. package/dist/core/contextStore.d.ts +48 -0
  28. package/dist/core/contextStore.js +306 -0
  29. package/dist/core/contextStore.js.map +1 -0
  30. package/dist/core/doctor.d.ts +4 -1
  31. package/dist/core/doctor.js +122 -3
  32. package/dist/core/doctor.js.map +1 -1
  33. package/dist/core/gemini.js +10 -4
  34. package/dist/core/gemini.js.map +1 -1
  35. package/dist/core/geminiWrapper.d.ts +92 -0
  36. package/dist/core/geminiWrapper.js +1258 -0
  37. package/dist/core/geminiWrapper.js.map +1 -0
  38. package/dist/core/http.js +70 -6
  39. package/dist/core/http.js.map +1 -1
  40. package/dist/core/json.d.ts +1 -1
  41. package/dist/core/json.js +81 -19
  42. package/dist/core/json.js.map +1 -1
  43. package/dist/core/memory.d.ts +16 -0
  44. package/dist/core/memory.js +108 -0
  45. package/dist/core/memory.js.map +1 -0
  46. package/dist/core/modelClient.js +7 -0
  47. package/dist/core/modelClient.js.map +1 -1
  48. package/dist/core/nvidia.d.ts +1 -1
  49. package/dist/core/nvidia.js +13 -4
  50. package/dist/core/nvidia.js.map +1 -1
  51. package/dist/core/ollama.js +13 -3
  52. package/dist/core/ollama.js.map +1 -1
  53. package/dist/core/openrouter.js +15 -6
  54. package/dist/core/openrouter.js.map +1 -1
  55. package/dist/core/projectInit.d.ts +6 -0
  56. package/dist/core/projectInit.js +44 -0
  57. package/dist/core/projectInit.js.map +1 -0
  58. package/dist/core/reasoning.js +6 -0
  59. package/dist/core/reasoning.js.map +1 -1
  60. package/dist/core/session.d.ts +1 -0
  61. package/dist/core/session.js +55 -3
  62. package/dist/core/session.js.map +1 -1
  63. package/dist/core/tokenAccounting.d.ts +4 -0
  64. package/dist/core/tokenAccounting.js +75 -13
  65. package/dist/core/tokenAccounting.js.map +1 -1
  66. package/dist/core/types.d.ts +65 -5
  67. package/dist/core/types.js +30 -1
  68. package/dist/core/types.js.map +1 -1
  69. package/dist/core/updateCheck.d.ts +19 -0
  70. package/dist/core/updateCheck.js +103 -0
  71. package/dist/core/updateCheck.js.map +1 -0
  72. package/dist/core/workspace.d.ts +37 -0
  73. package/dist/core/workspace.js +1535 -84
  74. package/dist/core/workspace.js.map +1 -1
  75. package/dist/tui/App.d.ts +1 -0
  76. package/dist/tui/App.js +1841 -140
  77. package/dist/tui/App.js.map +1 -1
  78. package/dist/tui/commands.js +141 -9
  79. package/dist/tui/commands.js.map +1 -1
  80. package/dist/tui/components/ApprovalPanel.js +16 -1
  81. package/dist/tui/components/ApprovalPanel.js.map +1 -1
  82. package/dist/tui/components/CommandSuggestions.js +33 -5
  83. package/dist/tui/components/CommandSuggestions.js.map +1 -1
  84. package/dist/tui/components/Composer.d.ts +3 -0
  85. package/dist/tui/components/Composer.js +57 -5
  86. package/dist/tui/components/Composer.js.map +1 -1
  87. package/dist/tui/components/ExperimentalPanel.d.ts +10 -0
  88. package/dist/tui/components/ExperimentalPanel.js +38 -0
  89. package/dist/tui/components/ExperimentalPanel.js.map +1 -0
  90. package/dist/tui/components/Header.js +3 -3
  91. package/dist/tui/components/Header.js.map +1 -1
  92. package/dist/tui/components/OnboardingPanel.d.ts +25 -1
  93. package/dist/tui/components/OnboardingPanel.js +87 -25
  94. package/dist/tui/components/OnboardingPanel.js.map +1 -1
  95. package/dist/tui/components/Sidebar.js +17 -13
  96. package/dist/tui/components/Sidebar.js.map +1 -1
  97. package/dist/tui/components/StartupBanner.d.ts +4 -0
  98. package/dist/tui/components/StartupBanner.js +9 -0
  99. package/dist/tui/components/StartupBanner.js.map +1 -0
  100. package/dist/tui/components/Transcript.d.ts +7 -0
  101. package/dist/tui/components/Transcript.js +87 -17
  102. package/dist/tui/components/Transcript.js.map +1 -1
  103. package/dist/tui/contextCommands.d.ts +8 -0
  104. package/dist/tui/contextCommands.js +205 -0
  105. package/dist/tui/contextCommands.js.map +1 -0
  106. package/dist/tui/experimental/AnimatedText.d.ts +38 -0
  107. package/dist/tui/experimental/AnimatedText.js +55 -0
  108. package/dist/tui/experimental/AnimatedText.js.map +1 -0
  109. package/dist/tui/experimental/Banner.d.ts +10 -0
  110. package/dist/tui/experimental/Banner.js +33 -0
  111. package/dist/tui/experimental/Banner.js.map +1 -0
  112. package/dist/tui/experimental/CommandPalette.d.ts +11 -0
  113. package/dist/tui/experimental/CommandPalette.js +25 -0
  114. package/dist/tui/experimental/CommandPalette.js.map +1 -0
  115. package/dist/tui/experimental/ExperimentalShell.d.ts +58 -0
  116. package/dist/tui/experimental/ExperimentalShell.js +366 -0
  117. package/dist/tui/experimental/ExperimentalShell.js.map +1 -0
  118. package/dist/tui/experimental/ThemePicker.d.ts +13 -0
  119. package/dist/tui/experimental/ThemePicker.js +12 -0
  120. package/dist/tui/experimental/ThemePicker.js.map +1 -0
  121. package/dist/tui/experimental/attachments.d.ts +35 -0
  122. package/dist/tui/experimental/attachments.js +244 -0
  123. package/dist/tui/experimental/attachments.js.map +1 -0
  124. package/dist/tui/experimental/composer.d.ts +24 -0
  125. package/dist/tui/experimental/composer.js +84 -0
  126. package/dist/tui/experimental/composer.js.map +1 -0
  127. package/dist/tui/experimental/geminiPricing.d.ts +16 -0
  128. package/dist/tui/experimental/geminiPricing.js +39 -0
  129. package/dist/tui/experimental/geminiPricing.js.map +1 -0
  130. package/dist/tui/experimental/layout.d.ts +46 -0
  131. package/dist/tui/experimental/layout.js +112 -0
  132. package/dist/tui/experimental/layout.js.map +1 -0
  133. package/dist/tui/experimental/theme.d.ts +35 -0
  134. package/dist/tui/experimental/theme.js +86 -0
  135. package/dist/tui/experimental/theme.js.map +1 -0
  136. package/dist/tui/experimental/transcriptRows.d.ts +20 -0
  137. package/dist/tui/experimental/transcriptRows.js +169 -0
  138. package/dist/tui/experimental/transcriptRows.js.map +1 -0
  139. package/dist/tui/experimental/ultraModes.d.ts +46 -0
  140. package/dist/tui/experimental/ultraModes.js +95 -0
  141. package/dist/tui/experimental/ultraModes.js.map +1 -0
  142. package/dist/tui/experimental/ultramaxx.d.ts +19 -0
  143. package/dist/tui/experimental/ultramaxx.js +43 -0
  144. package/dist/tui/experimental/ultramaxx.js.map +1 -0
  145. package/dist/tui/format.d.ts +4 -2
  146. package/dist/tui/format.js +21 -7
  147. package/dist/tui/format.js.map +1 -1
  148. package/dist/tui/hosts.js +7 -1
  149. package/dist/tui/hosts.js.map +1 -1
  150. package/dist/tui/layout.d.ts +26 -0
  151. package/dist/tui/layout.js +66 -0
  152. package/dist/tui/layout.js.map +1 -0
  153. package/dist/tui/modelSelection.d.ts +1 -1
  154. package/dist/tui/modelSelection.js +8 -6
  155. package/dist/tui/modelSelection.js.map +1 -1
  156. package/dist/tui/modes.d.ts +8 -1
  157. package/dist/tui/modes.js +20 -2
  158. package/dist/tui/modes.js.map +1 -1
  159. package/dist/tui/onboardingPreferences.d.ts +37 -0
  160. package/dist/tui/onboardingPreferences.js +118 -0
  161. package/dist/tui/onboardingPreferences.js.map +1 -0
  162. package/dist/tui/runStatus.d.ts +50 -0
  163. package/dist/tui/runStatus.js +164 -0
  164. package/dist/tui/runStatus.js.map +1 -0
  165. package/dist/tui/types.d.ts +8 -0
  166. package/dist/tui/types.js.map +1 -1
  167. package/docs/architecture.md +115 -0
  168. package/docs/gemini-wrapper.md +110 -0
  169. package/docs/product-context.md +43 -0
  170. package/docs/releases/v0.1.1-beta.md +18 -0
  171. package/docs/releases/v0.2.1.md +1 -1
  172. package/docs/releases/v0.3.1-beta.md +4 -0
  173. package/docs/releases/v0.4.0.md +1 -1
  174. package/docs/releases/v1.0.0.md +28 -0
  175. package/docs/releases/v1.0.1.md +25 -0
  176. package/docs/releases/v1.1.0.md +30 -0
  177. package/docs/releases/v1.2.0.md +28 -0
  178. package/docs/showcase/patchpilot-banner.png +0 -0
  179. package/docs/showcase/patchpilot-logo.png +0 -0
  180. package/package.json +8 -3
@@ -1 +1 @@
1
- {"version":3,"file":"tokenAccounting.js","sourceRoot":"","sources":["../../src/core/tokenAccounting.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tokenAccounting.js","sourceRoot":"","sources":["../../src/core/tokenAccounting.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ export type ChatMessage = {
3
3
  role: ChatRole;
4
4
  content: string;
5
5
  };
6
- export type ModelProvider = "ollama" | "gemini" | "codex" | "openrouter" | "nvidia";
6
+ export type ModelProvider = "ollama" | "gemini" | "gemini-wrapper" | "codex" | "openrouter" | "nvidia";
7
7
  export type ReasoningEffort = "low" | "medium" | "high" | "xhigh";
8
8
  export type ProviderReasoningEffort = ReasoningEffort | "none";
9
9
  export type ModelChatOptions = {
@@ -13,24 +13,46 @@ export type ModelChatOptions = {
13
13
  reasoningEffort?: ProviderReasoningEffort;
14
14
  signal?: AbortSignal;
15
15
  };
16
+ export type ModelFileAnalysisOptions = {
17
+ model: string;
18
+ path: string;
19
+ prompt: string;
20
+ signal?: AbortSignal;
21
+ };
16
22
  export type ModelChatResult = {
17
23
  content: string;
18
24
  telemetry: ModelTelemetry;
19
25
  };
26
+ export type ModelDescriptor = {
27
+ id: string;
28
+ modelName?: string;
29
+ displayName?: string;
30
+ description?: string;
31
+ isAvailable?: boolean;
32
+ capacity?: number;
33
+ capacityField?: number;
34
+ advancedOnly?: boolean;
35
+ legacy?: boolean;
36
+ };
20
37
  export type ModelClient = {
21
38
  chat(options: ModelChatOptions): Promise<ModelChatResult>;
22
39
  listModels(): Promise<string[]>;
40
+ listModelDescriptors?(): Promise<ModelDescriptor[]>;
41
+ supportsFileAnalysis?(): boolean;
42
+ analyzeFile?(options: ModelFileAnalysisOptions): Promise<ModelChatResult>;
23
43
  };
24
44
  export type AgentWorkState = "idle" | "inspecting" | "planning" | "reading" | "editing" | "verifying" | "waiting_approval" | "done" | "error";
25
- export type AgentToolName = "list_files" | "read_file" | "read_range" | "file_info" | "search_text" | "inspect_document" | "git_status" | "git_diff" | "list_changed_files" | "list_scripts" | "write_file" | "apply_patch" | "run_script" | "run_tests" | "run_shell";
45
+ export declare const AGENT_TOOL_NAMES: readonly ["update_todo", "list_files", "find_files", "read_file", "read_range", "file_info", "search_text", "inspect_document", "memory_remember", "memory_search", "git_status", "git_diff", "git_log", "git_show", "list_changed_files", "list_scripts", "repo_overview", "test_list", "dependency_tree", "write_file", "edit_file", "create_pdf", "create_docx", "apply_patch", "run_script", "run_tests", "run_shell"];
46
+ export declare const MAX_TOOL_CALLS_PER_RESPONSE = 12;
47
+ export type AgentToolName = (typeof AGENT_TOOL_NAMES)[number];
26
48
  export type AgentToolCall = {
27
49
  name: AgentToolName;
28
50
  arguments: Record<string, unknown>;
29
51
  };
30
52
  export type ToolRisk = "low" | "medium" | "high";
31
53
  export type ToolSideEffect = "none" | "write" | "shell";
32
- export type ToolPermission = "none" | "write" | "shell";
33
- export type ToolCategory = "read" | "search" | "write" | "shell" | "git" | "test" | "document";
54
+ export type ToolPermission = "none" | "write" | "shell" | "external_file";
55
+ export type ToolCategory = "state" | "read" | "search" | "write" | "shell" | "git" | "test" | "document" | "memory";
34
56
  export type ToolSpec = {
35
57
  name: AgentToolName;
36
58
  description: string;
@@ -47,6 +69,7 @@ export type ApprovalRequest = {
47
69
  risk: ToolRisk;
48
70
  preview: string;
49
71
  arguments: Record<string, unknown>;
72
+ bypassable?: boolean;
50
73
  };
51
74
  export type AgentResponse = {
52
75
  action: "tools";
@@ -57,6 +80,12 @@ export type AgentResponse = {
57
80
  message: string;
58
81
  };
59
82
  export type SubagentRole = "planner" | "reviewer" | "explorer";
83
+ export type AgentTodoStatus = "pending" | "in_progress" | "completed";
84
+ export type AgentTodoItem = {
85
+ id: string;
86
+ content: string;
87
+ status: AgentTodoStatus;
88
+ };
60
89
  export type AgentEvent = {
61
90
  type: "status";
62
91
  message: string;
@@ -79,12 +108,18 @@ export type AgentEvent = {
79
108
  type: "tool";
80
109
  name: AgentToolName;
81
110
  summary: string;
111
+ content?: string;
82
112
  ok: boolean;
83
113
  workState: AgentWorkState;
84
114
  toolCallId?: string;
85
115
  category?: ToolCategory;
86
116
  preview?: string;
87
117
  metadata?: Record<string, unknown>;
118
+ } | {
119
+ type: "todo";
120
+ items: AgentTodoItem[];
121
+ summary: string;
122
+ workState: AgentWorkState;
88
123
  } | {
89
124
  type: "approval";
90
125
  request: ApprovalRequest;
@@ -117,6 +152,11 @@ export type SessionEvent = {
117
152
  sessionId: string;
118
153
  workspace: string;
119
154
  createdAt: string;
155
+ } | {
156
+ type: "session.resumed";
157
+ sessionId: string;
158
+ workspace: string;
159
+ resumedAt: string;
120
160
  } | {
121
161
  type: "run.started";
122
162
  runId: string;
@@ -146,6 +186,12 @@ export type SessionEvent = {
146
186
  request: ApprovalRequest;
147
187
  decision: PermissionDecision;
148
188
  createdAt: string;
189
+ } | {
190
+ type: "todo.updated";
191
+ runId: string;
192
+ items: AgentTodoItem[];
193
+ summary: string;
194
+ createdAt: string;
149
195
  } | {
150
196
  type: "tool.completed";
151
197
  runId: string;
@@ -165,6 +211,19 @@ export type SessionEvent = {
165
211
  runId: string;
166
212
  message: string;
167
213
  failedAt: string;
214
+ } | {
215
+ type: "context.pinned";
216
+ runId?: string;
217
+ itemId: string;
218
+ pinned: boolean;
219
+ label?: string;
220
+ createdAt: string;
221
+ } | {
222
+ type: "context.compacted";
223
+ runId?: string;
224
+ summaryId: string;
225
+ itemIds: string[];
226
+ createdAt: string;
168
227
  };
169
228
  export type ModelTelemetry = {
170
229
  promptTokens: number;
@@ -178,7 +237,7 @@ export type ModelTelemetry = {
178
237
  totalDurationMs: number;
179
238
  estimatedCostUsd: number | null;
180
239
  tokenSource: "provider" | "estimated";
181
- costSource: "api-pricing" | "local" | "unknown";
240
+ costSource: "api-pricing" | "local" | "unknown" | "fallback-pricing" | "free-route";
182
241
  };
183
242
  export type SessionTelemetry = {
184
243
  requests: number;
@@ -188,4 +247,5 @@ export type SessionTelemetry = {
188
247
  responseTokens: number;
189
248
  totalTokens: number;
190
249
  estimatedCostUsd: number | null;
250
+ costSource: "api-pricing" | "local" | "unknown" | "fallback-pricing" | "free-route" | "mixed";
191
251
  };
@@ -1,2 +1,31 @@
1
- export {};
1
+ export const AGENT_TOOL_NAMES = [
2
+ "update_todo",
3
+ "list_files",
4
+ "find_files",
5
+ "read_file",
6
+ "read_range",
7
+ "file_info",
8
+ "search_text",
9
+ "inspect_document",
10
+ "memory_remember",
11
+ "memory_search",
12
+ "git_status",
13
+ "git_diff",
14
+ "git_log",
15
+ "git_show",
16
+ "list_changed_files",
17
+ "list_scripts",
18
+ "repo_overview",
19
+ "test_list",
20
+ "dependency_tree",
21
+ "write_file",
22
+ "edit_file",
23
+ "create_pdf",
24
+ "create_docx",
25
+ "apply_patch",
26
+ "run_script",
27
+ "run_tests",
28
+ "run_shell"
29
+ ];
30
+ export const MAX_TOOL_CALLS_PER_RESPONSE = 12;
2
31
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AA8DA,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,aAAa;IACb,YAAY;IACZ,YAAY;IACZ,WAAW;IACX,YAAY;IACZ,WAAW;IACX,aAAa;IACb,kBAAkB;IAClB,iBAAiB;IACjB,eAAe;IACf,YAAY;IACZ,UAAU;IACV,SAAS;IACT,UAAU;IACV,oBAAoB;IACpB,cAAc;IACd,eAAe;IACf,WAAW;IACX,iBAAiB;IACjB,YAAY;IACZ,WAAW;IACX,YAAY;IACZ,aAAa;IACb,aAAa;IACb,YAAY;IACZ,WAAW;IACX,WAAW;CACH,CAAC;AAEX,MAAM,CAAC,MAAM,2BAA2B,GAAG,EAAE,CAAC"}
@@ -0,0 +1,19 @@
1
+ export type UpdateCheckResult = {
2
+ available: false;
3
+ currentVersion: string;
4
+ latestVersion: string | null;
5
+ source: "npm" | "github" | "none";
6
+ } | {
7
+ available: true;
8
+ currentVersion: string;
9
+ latestVersion: string;
10
+ source: "npm" | "github";
11
+ command: string;
12
+ };
13
+ export type UpdateInstallResult = {
14
+ version: string;
15
+ command: string;
16
+ };
17
+ export declare function checkForPatchPilotUpdate(currentVersion: string, signal?: AbortSignal): Promise<UpdateCheckResult>;
18
+ export declare function installPatchPilotUpdate(version: string): Promise<UpdateInstallResult>;
19
+ export declare function updateCommand(): string;
@@ -0,0 +1,103 @@
1
+ import { execFile } from "node:child_process";
2
+ import { promisify } from "node:util";
3
+ const execFileAsync = promisify(execFile);
4
+ const packageName = "@jx-grxf/patchpilot";
5
+ const githubLatestReleaseUrl = "https://api.github.com/repos/jx-grxf/PatchPilot/releases/latest";
6
+ export async function checkForPatchPilotUpdate(currentVersion, signal) {
7
+ const npmVersion = await fetchLatestNpmVersion(signal).catch(() => null);
8
+ if (npmVersion) {
9
+ return toUpdateResult(currentVersion, npmVersion, "npm");
10
+ }
11
+ const githubVersion = await fetchLatestGithubReleaseVersion(signal).catch(() => null);
12
+ if (githubVersion) {
13
+ return toUpdateResult(currentVersion, githubVersion, "github");
14
+ }
15
+ return {
16
+ available: false,
17
+ currentVersion,
18
+ latestVersion: null,
19
+ source: "none"
20
+ };
21
+ }
22
+ export async function installPatchPilotUpdate(version) {
23
+ const command = updateCommand();
24
+ await execFileAsync("npm", ["update", "-g", packageName], {
25
+ timeout: 180_000,
26
+ maxBuffer: 2_000_000,
27
+ windowsHide: true
28
+ });
29
+ return {
30
+ version,
31
+ command
32
+ };
33
+ }
34
+ export function updateCommand() {
35
+ return `npm update -g ${packageName}`;
36
+ }
37
+ function toUpdateResult(currentVersion, latestVersion, source) {
38
+ if (compareSemver(latestVersion, currentVersion) <= 0) {
39
+ return {
40
+ available: false,
41
+ currentVersion,
42
+ latestVersion,
43
+ source
44
+ };
45
+ }
46
+ return {
47
+ available: true,
48
+ currentVersion,
49
+ latestVersion,
50
+ source,
51
+ command: updateCommand()
52
+ };
53
+ }
54
+ async function fetchLatestNpmVersion(signal) {
55
+ const response = await fetch(`https://registry.npmjs.org/${encodeURIComponent(packageName)}/latest`, {
56
+ headers: {
57
+ Accept: "application/json"
58
+ },
59
+ signal
60
+ });
61
+ if (!response.ok) {
62
+ return null;
63
+ }
64
+ const payload = (await response.json());
65
+ return typeof payload.version === "string" ? payload.version : null;
66
+ }
67
+ async function fetchLatestGithubReleaseVersion(signal) {
68
+ const response = await fetch(githubLatestReleaseUrl, {
69
+ headers: {
70
+ Accept: "application/vnd.github+json",
71
+ "User-Agent": "PatchPilot"
72
+ },
73
+ signal
74
+ });
75
+ if (!response.ok) {
76
+ return null;
77
+ }
78
+ const payload = (await response.json());
79
+ return normalizeVersion(typeof payload.tag_name === "string" ? payload.tag_name : typeof payload.name === "string" ? payload.name : "");
80
+ }
81
+ function compareSemver(left, right) {
82
+ const leftParts = parseVersion(left);
83
+ const rightParts = parseVersion(right);
84
+ for (let index = 0; index < 3; index += 1) {
85
+ const diff = leftParts[index] - rightParts[index];
86
+ if (diff !== 0) {
87
+ return diff;
88
+ }
89
+ }
90
+ return 0;
91
+ }
92
+ function parseVersion(value) {
93
+ const [major = "0", minor = "0", patch = "0"] = normalizeVersion(value).split(".");
94
+ return [readVersionPart(major), readVersionPart(minor), readVersionPart(patch)];
95
+ }
96
+ function normalizeVersion(value) {
97
+ return value.trim().replace(/^v/i, "");
98
+ }
99
+ function readVersionPart(value) {
100
+ const parsed = Number.parseInt(value.replace(/[^0-9].*$/, ""), 10);
101
+ return Number.isFinite(parsed) ? parsed : 0;
102
+ }
103
+ //# sourceMappingURL=updateCheck.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"updateCheck.js","sourceRoot":"","sources":["../../src/core/updateCheck.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,17 @@
1
1
  import type { AgentToolCall, AgentToolName, ApprovalRequest, PermissionDecision, ToolResult, ToolSpec } from "./types.js";
2
+ type DocumentAnalyzer = (request: {
3
+ path: string;
4
+ prompt: string;
5
+ signal?: AbortSignal;
6
+ }) => Promise<string>;
2
7
  export type WorkspaceToolsOptions = {
3
8
  root: string;
4
9
  allowWrite: boolean;
5
10
  allowShell: boolean;
11
+ allowShellMetacharacters?: boolean;
12
+ allowExternalFileAnalysis?: boolean;
13
+ documentAnalyzer?: DocumentAnalyzer;
14
+ memoryEnabled?: boolean;
6
15
  timeoutMs?: number;
7
16
  signal?: AbortSignal;
8
17
  approvalHandler?: (request: ApprovalRequest) => Promise<PermissionDecision>;
@@ -14,31 +23,59 @@ export declare class WorkspaceTools {
14
23
  private readonly rootRealPath;
15
24
  private readonly allowWrite;
16
25
  private readonly allowShell;
26
+ private readonly allowShellMetacharacters;
27
+ private readonly allowExternalFileAnalysis;
28
+ private readonly memoryEnabled;
29
+ private readonly documentAnalyzer?;
17
30
  private readonly timeoutMs;
18
31
  private readonly signal?;
19
32
  private readonly approvalHandler?;
20
33
  private readonly sessionApprovals;
21
34
  constructor(options: WorkspaceToolsOptions);
22
35
  execute(call: AgentToolCall): Promise<ToolResult>;
36
+ private updateTodo;
23
37
  resolveInsideWorkspace(requestedPath: string): string;
24
38
  normalizeWorkspaceRelativePath(requestedPath: string): string;
25
39
  private listFiles;
40
+ private findFiles;
26
41
  private readFile;
27
42
  private readRange;
28
43
  private fileInfo;
29
44
  private inspectDocument;
45
+ private readTextDocument;
46
+ private analyzeDocumentWithProvider;
47
+ private providerAnalysisTimeoutMs;
48
+ private memoryRemember;
49
+ private memorySearch;
30
50
  private searchText;
31
51
  private writeFile;
52
+ private createPdf;
53
+ private createDocx;
54
+ private requestWriteApproval;
55
+ private editFile;
32
56
  private gitStatus;
33
57
  private gitDiff;
58
+ private gitLog;
59
+ private gitShow;
34
60
  private listChangedFiles;
35
61
  private listScripts;
62
+ private repoOverview;
63
+ private testList;
64
+ private dependencyTree;
36
65
  private applyPatch;
37
66
  private runScript;
38
67
  private runTests;
68
+ private runPackageScript;
39
69
  private runShell;
40
70
  private readPackageScripts;
71
+ private readPackageJsonObject;
41
72
  private requestApproval;
42
73
  private resolveReadPath;
74
+ private resolveDocumentPath;
43
75
  private resolveWritePath;
76
+ private assertSafeResolvedWorkspacePath;
77
+ private validatePatchTargets;
78
+ private validateShellPathArguments;
44
79
  }
80
+ export declare function isSensitivePath(value: string): boolean;
81
+ export {};