@jingyi0605/codingns 0.2.5 → 0.3.5

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 (227) hide show
  1. package/bin/codingns.mjs +278 -2
  2. package/dist/public/assets/{TerminalPage-BkjqU9NG.js → TerminalPage-CgrfstRm.js} +19 -19
  3. package/dist/public/assets/index-Cek6u0b9.css +1 -0
  4. package/dist/public/assets/index-THHY79si.js +122 -0
  5. package/dist/public/index.html +2 -2
  6. package/dist/server/config/env.d.ts +4 -0
  7. package/dist/server/config/env.js +67 -3
  8. package/dist/server/config/env.js.map +1 -1
  9. package/dist/server/modules/auth/auth-service.d.ts +18 -1
  10. package/dist/server/modules/auth/auth-service.js +168 -7
  11. package/dist/server/modules/auth/auth-service.js.map +1 -1
  12. package/dist/server/modules/butler/butler-codex-model-policy.d.ts +1 -0
  13. package/dist/server/modules/butler/butler-codex-model-policy.js +36 -0
  14. package/dist/server/modules/butler/butler-codex-model-policy.js.map +1 -0
  15. package/dist/server/modules/butler/butler-control-session-service.d.ts +16 -2
  16. package/dist/server/modules/butler/butler-control-session-service.js +58 -210
  17. package/dist/server/modules/butler/butler-control-session-service.js.map +1 -1
  18. package/dist/server/modules/butler/butler-controller.d.ts +17 -0
  19. package/dist/server/modules/butler/butler-controller.js +20 -1
  20. package/dist/server/modules/butler/butler-controller.js.map +1 -1
  21. package/dist/server/modules/butler/butler-follow-up-service.js +7 -3
  22. package/dist/server/modules/butler/butler-follow-up-service.js.map +1 -1
  23. package/dist/server/modules/butler/butler-inbox-analysis-service.d.ts +36 -0
  24. package/dist/server/modules/butler/butler-inbox-analysis-service.js +375 -0
  25. package/dist/server/modules/butler/butler-inbox-analysis-service.js.map +1 -0
  26. package/dist/server/modules/butler/butler-inbox-instruction-adapter.d.ts +23 -0
  27. package/dist/server/modules/butler/butler-inbox-instruction-adapter.js +96 -0
  28. package/dist/server/modules/butler/butler-inbox-instruction-adapter.js.map +1 -0
  29. package/dist/server/modules/butler/butler-inbox-service.d.ts +39 -2
  30. package/dist/server/modules/butler/butler-inbox-service.js +392 -2
  31. package/dist/server/modules/butler/butler-inbox-service.js.map +1 -1
  32. package/dist/server/modules/butler/butler-session-service.d.ts +9 -0
  33. package/dist/server/modules/butler/butler-session-service.js +277 -68
  34. package/dist/server/modules/butler/butler-session-service.js.map +1 -1
  35. package/dist/server/modules/butler/butler-session-summary-service.d.ts +1 -0
  36. package/dist/server/modules/butler/butler-session-summary-service.js +48 -23
  37. package/dist/server/modules/butler/butler-session-summary-service.js.map +1 -1
  38. package/dist/server/modules/butler/butler-workspace-context.d.ts +13 -0
  39. package/dist/server/modules/butler/butler-workspace-context.js +223 -0
  40. package/dist/server/modules/butler/butler-workspace-context.js.map +1 -0
  41. package/dist/server/modules/client/client-controller.d.ts +6 -0
  42. package/dist/server/modules/client/client-controller.js +30 -8
  43. package/dist/server/modules/client/client-controller.js.map +1 -1
  44. package/dist/server/modules/client/client-service.d.ts +22 -10
  45. package/dist/server/modules/client/client-service.js +77 -100
  46. package/dist/server/modules/client/client-service.js.map +1 -1
  47. package/dist/server/modules/client/npm-global-package-service.d.ts +21 -0
  48. package/dist/server/modules/client/npm-global-package-service.js +210 -0
  49. package/dist/server/modules/client/npm-global-package-service.js.map +1 -0
  50. package/dist/server/modules/client/service-update-task-service.d.ts +15 -0
  51. package/dist/server/modules/client/service-update-task-service.js +147 -0
  52. package/dist/server/modules/client/service-update-task-service.js.map +1 -0
  53. package/dist/server/modules/client/service-update-types.d.ts +30 -0
  54. package/dist/server/modules/client/service-update-types.js +2 -0
  55. package/dist/server/modules/client/service-update-types.js.map +1 -0
  56. package/dist/server/modules/debug-target/debug-target-service.d.ts +5 -2
  57. package/dist/server/modules/debug-target/debug-target-service.js +170 -10
  58. package/dist/server/modules/debug-target/debug-target-service.js.map +1 -1
  59. package/dist/server/modules/file/file-constants.d.ts +1 -0
  60. package/dist/server/modules/file/file-constants.js +1 -0
  61. package/dist/server/modules/file/file-constants.js.map +1 -1
  62. package/dist/server/modules/file/file-controller.js +12 -3
  63. package/dist/server/modules/file/file-controller.js.map +1 -1
  64. package/dist/server/modules/file/file-preview-link-service.js +6 -37
  65. package/dist/server/modules/file/file-preview-link-service.js.map +1 -1
  66. package/dist/server/modules/file/file-preview-service.d.ts +6 -12
  67. package/dist/server/modules/file/file-preview-service.js +114 -28
  68. package/dist/server/modules/file/file-preview-service.js.map +1 -1
  69. package/dist/server/modules/file/file-preview-types.d.ts +37 -0
  70. package/dist/server/modules/file/file-preview-types.js +84 -0
  71. package/dist/server/modules/file/file-preview-types.js.map +1 -0
  72. package/dist/server/modules/git/git-controller.d.ts +6 -0
  73. package/dist/server/modules/git/git-controller.js +13 -0
  74. package/dist/server/modules/git/git-controller.js.map +1 -1
  75. package/dist/server/modules/git/git-read-service.d.ts +2 -1
  76. package/dist/server/modules/git/git-read-service.js +100 -0
  77. package/dist/server/modules/git/git-read-service.js.map +1 -1
  78. package/dist/server/modules/git/types.d.ts +23 -0
  79. package/dist/server/modules/model-switch/cc-switch-adapter.d.ts +36 -0
  80. package/dist/server/modules/model-switch/cc-switch-adapter.js +317 -0
  81. package/dist/server/modules/model-switch/cc-switch-adapter.js.map +1 -0
  82. package/dist/server/modules/model-switch/model-switch-controller.d.ts +11 -0
  83. package/dist/server/modules/model-switch/model-switch-controller.js +30 -0
  84. package/dist/server/modules/model-switch/model-switch-controller.js.map +1 -0
  85. package/dist/server/modules/model-switch/model-switch-service.d.ts +16 -0
  86. package/dist/server/modules/model-switch/model-switch-service.js +29 -0
  87. package/dist/server/modules/model-switch/model-switch-service.js.map +1 -0
  88. package/dist/server/modules/preferences/profile-service.d.ts +1 -0
  89. package/dist/server/modules/preferences/profile-service.js +9 -0
  90. package/dist/server/modules/preferences/profile-service.js.map +1 -1
  91. package/dist/server/modules/sessions/codex-app-server-helper-process.js +3 -0
  92. package/dist/server/modules/sessions/codex-app-server-helper-process.js.map +1 -1
  93. package/dist/server/modules/sessions/session-activity-authority-service.d.ts +3 -1
  94. package/dist/server/modules/sessions/session-activity-authority-service.js +16 -1
  95. package/dist/server/modules/sessions/session-activity-authority-service.js.map +1 -1
  96. package/dist/server/modules/sessions/session-activity-inspector.d.ts +1 -1
  97. package/dist/server/modules/sessions/session-activity-inspector.js +52 -9
  98. package/dist/server/modules/sessions/session-activity-inspector.js.map +1 -1
  99. package/dist/server/modules/sessions/session-controller.d.ts +3 -3
  100. package/dist/server/modules/sessions/session-controller.js +3 -3
  101. package/dist/server/modules/sessions/session-controller.js.map +1 -1
  102. package/dist/server/modules/sessions/session-history-service.d.ts +11 -2
  103. package/dist/server/modules/sessions/session-history-service.js +373 -78
  104. package/dist/server/modules/sessions/session-history-service.js.map +1 -1
  105. package/dist/server/modules/sessions/session-live-runtime-service.d.ts +9 -4
  106. package/dist/server/modules/sessions/session-live-runtime-service.js +59 -11
  107. package/dist/server/modules/sessions/session-live-runtime-service.js.map +1 -1
  108. package/dist/server/modules/sessions/session-message-attachment-service.d.ts +8 -8
  109. package/dist/server/modules/sessions/session-message-attachment-service.js +25 -34
  110. package/dist/server/modules/sessions/session-message-attachment-service.js.map +1 -1
  111. package/dist/server/modules/sessions/session-provider-error-mapper.js +7 -0
  112. package/dist/server/modules/sessions/session-provider-error-mapper.js.map +1 -1
  113. package/dist/server/modules/skills/skill-controller.d.ts +23 -0
  114. package/dist/server/modules/skills/skill-controller.js +35 -0
  115. package/dist/server/modules/skills/skill-controller.js.map +1 -0
  116. package/dist/server/modules/skills/skill-manager-service.d.ts +86 -0
  117. package/dist/server/modules/skills/skill-manager-service.js +557 -0
  118. package/dist/server/modules/skills/skill-manager-service.js.map +1 -0
  119. package/dist/server/modules/skills/skill-reconciler.d.ts +21 -0
  120. package/dist/server/modules/skills/skill-reconciler.js +99 -0
  121. package/dist/server/modules/skills/skill-reconciler.js.map +1 -0
  122. package/dist/server/modules/skills/skill-sync-planner.d.ts +8 -0
  123. package/dist/server/modules/skills/skill-sync-planner.js +20 -0
  124. package/dist/server/modules/skills/skill-sync-planner.js.map +1 -0
  125. package/dist/server/modules/skills/skill-target-adapter.d.ts +34 -0
  126. package/dist/server/modules/skills/skill-target-adapter.js +65 -0
  127. package/dist/server/modules/skills/skill-target-adapter.js.map +1 -0
  128. package/dist/server/modules/tailscale/tailscale-controller.d.ts +15 -0
  129. package/dist/server/modules/tailscale/tailscale-controller.js +33 -0
  130. package/dist/server/modules/tailscale/tailscale-controller.js.map +1 -0
  131. package/dist/server/modules/tailscale/tailscale-helper-client.d.ts +41 -0
  132. package/dist/server/modules/tailscale/tailscale-helper-client.js +135 -0
  133. package/dist/server/modules/tailscale/tailscale-helper-client.js.map +1 -0
  134. package/dist/server/modules/tailscale/tailscale-helper-process.d.ts +1 -0
  135. package/dist/server/modules/tailscale/tailscale-helper-process.js +327 -0
  136. package/dist/server/modules/tailscale/tailscale-helper-process.js.map +1 -0
  137. package/dist/server/modules/tailscale/tailscale-manager.d.ts +41 -0
  138. package/dist/server/modules/tailscale/tailscale-manager.js +263 -0
  139. package/dist/server/modules/tailscale/tailscale-manager.js.map +1 -0
  140. package/dist/server/modules/tailscale/tailscale-service.d.ts +43 -0
  141. package/dist/server/modules/tailscale/tailscale-service.js +201 -0
  142. package/dist/server/modules/tailscale/tailscale-service.js.map +1 -0
  143. package/dist/server/modules/tasks/task-lane-executors.js +3 -0
  144. package/dist/server/modules/tasks/task-lane-executors.js.map +1 -1
  145. package/dist/server/modules/tasks/task-types.d.ts +2 -0
  146. package/dist/server/modules/tasks/task-types.js +3 -1
  147. package/dist/server/modules/tasks/task-types.js.map +1 -1
  148. package/dist/server/modules/terminal/command-template-service.js +10 -1
  149. package/dist/server/modules/terminal/command-template-service.js.map +1 -1
  150. package/dist/server/modules/terminal/template-port-runtime.d.ts +12 -1
  151. package/dist/server/modules/terminal/template-port-runtime.js +189 -17
  152. package/dist/server/modules/terminal/template-port-runtime.js.map +1 -1
  153. package/dist/server/modules/terminal/terminal-service.js +30 -3
  154. package/dist/server/modules/terminal/terminal-service.js.map +1 -1
  155. package/dist/server/modules/workspace/workspace-code-composition.js +95 -2
  156. package/dist/server/modules/workspace/workspace-code-composition.js.map +1 -1
  157. package/dist/server/routes/butler.js +4 -0
  158. package/dist/server/routes/butler.js.map +1 -1
  159. package/dist/server/routes/client.js +2 -0
  160. package/dist/server/routes/client.js.map +1 -1
  161. package/dist/server/routes/git.js +1 -0
  162. package/dist/server/routes/git.js.map +1 -1
  163. package/dist/server/routes/sessions.js +1 -1
  164. package/dist/server/routes/sessions.js.map +1 -1
  165. package/dist/server/routes/skills.d.ts +3 -0
  166. package/dist/server/routes/skills.js +7 -0
  167. package/dist/server/routes/skills.js.map +1 -0
  168. package/dist/server/routes/system.d.ts +4 -0
  169. package/dist/server/routes/system.js +11 -0
  170. package/dist/server/routes/system.js.map +1 -0
  171. package/dist/server/server/create-server.d.ts +16 -0
  172. package/dist/server/server/create-server.js +91 -8
  173. package/dist/server/server/create-server.js.map +1 -1
  174. package/dist/server/shared/errors/app-error.d.ts +2 -0
  175. package/dist/server/shared/errors/app-error.js +2 -0
  176. package/dist/server/shared/errors/app-error.js.map +1 -1
  177. package/dist/server/shared/http/error-handler.d.ts +2 -1
  178. package/dist/server/shared/http/error-handler.js +3 -2
  179. package/dist/server/shared/http/error-handler.js.map +1 -1
  180. package/dist/server/shared/utils/command-availability.d.ts +1 -0
  181. package/dist/server/shared/utils/command-availability.js +26 -3
  182. package/dist/server/shared/utils/command-availability.js.map +1 -1
  183. package/dist/server/storage/repositories/auth-login-attempt-repository.d.ts +9 -0
  184. package/dist/server/storage/repositories/auth-login-attempt-repository.js +59 -0
  185. package/dist/server/storage/repositories/auth-login-attempt-repository.js.map +1 -0
  186. package/dist/server/storage/repositories/butler-control-session-repository.d.ts +3 -0
  187. package/dist/server/storage/repositories/butler-control-session-repository.js +80 -4
  188. package/dist/server/storage/repositories/butler-control-session-repository.js.map +1 -1
  189. package/dist/server/storage/repositories/butler-inbox-item-repository.js +54 -3
  190. package/dist/server/storage/repositories/butler-inbox-item-repository.js.map +1 -1
  191. package/dist/server/storage/repositories/instance-tailscale-repository.d.ts +10 -0
  192. package/dist/server/storage/repositories/instance-tailscale-repository.js +112 -0
  193. package/dist/server/storage/repositories/instance-tailscale-repository.js.map +1 -0
  194. package/dist/server/storage/repositories/managed-skill-repository.d.ts +11 -0
  195. package/dist/server/storage/repositories/managed-skill-repository.js +102 -0
  196. package/dist/server/storage/repositories/managed-skill-repository.js.map +1 -0
  197. package/dist/server/storage/repositories/skill-target-binding-repository.d.ts +10 -0
  198. package/dist/server/storage/repositories/skill-target-binding-repository.js +77 -0
  199. package/dist/server/storage/repositories/skill-target-binding-repository.js.map +1 -0
  200. package/dist/server/storage/repositories/terminal-instance-repository.js +1 -1
  201. package/dist/server/storage/repositories/terminal-instance-repository.js.map +1 -1
  202. package/dist/server/storage/repositories/user-preference-profile-repository.js +6 -3
  203. package/dist/server/storage/repositories/user-preference-profile-repository.js.map +1 -1
  204. package/dist/server/storage/sqlite/client.js +137 -0
  205. package/dist/server/storage/sqlite/client.js.map +1 -1
  206. package/dist/server/storage/sqlite/schema.sql +84 -1
  207. package/dist/server/types/domain.d.ts +109 -1
  208. package/dist/server/ws/ws-server.js +4 -4
  209. package/dist/server/ws/ws-server.js.map +1 -1
  210. package/node_modules/@codingns/session-sync-core/dist/patch-builder.d.ts +23 -0
  211. package/node_modules/@codingns/session-sync-core/dist/patch-builder.js +162 -0
  212. package/node_modules/@codingns/session-sync-core/dist/patch-builder.js.map +1 -1
  213. package/node_modules/@codingns/session-sync-core/dist/providers/codex.d.ts +1 -0
  214. package/node_modules/@codingns/session-sync-core/dist/providers/codex.js +89 -33
  215. package/node_modules/@codingns/session-sync-core/dist/providers/codex.js.map +1 -1
  216. package/node_modules/@codingns/session-sync-core/dist/runtime/active-run-registry.js +18 -2
  217. package/node_modules/@codingns/session-sync-core/dist/runtime/active-run-registry.js.map +1 -1
  218. package/node_modules/@codingns/session-sync-core/dist/runtime/codex-runtime.d.ts +3 -1
  219. package/node_modules/@codingns/session-sync-core/dist/runtime/codex-runtime.js +238 -53
  220. package/node_modules/@codingns/session-sync-core/dist/runtime/codex-runtime.js.map +1 -1
  221. package/node_modules/@codingns/session-sync-core/dist/runtime/provider-runtime-service.js +1 -0
  222. package/node_modules/@codingns/session-sync-core/dist/runtime/provider-runtime-service.js.map +1 -1
  223. package/node_modules/@codingns/session-sync-core/dist/runtime/types.d.ts +6 -2
  224. package/node_modules/@codingns/session-sync-core/dist/types.d.ts +1 -1
  225. package/package.json +1 -1
  226. package/dist/public/assets/index-C6U8-9jg.css +0 -1
  227. package/dist/public/assets/index-CKSumuV2.js +0 -109
@@ -1 +1 @@
1
- {"version":3,"file":"ws-server.js","sourceRoot":"","sources":["../../../src/ws/ws-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ws-server.js","sourceRoot":"","sources":["../../../src/ws/ws-server.ts"],"names":[],"mappings":"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"}
@@ -28,6 +28,29 @@ export declare function buildApplyPatchFromClaudeWrite(input: Record<string, unk
28
28
  * 转换后前端仍可显示变更文件列表。
29
29
  */
30
30
  export declare function buildApplyPatchFromOpenCodePatch(files: string[]): string | null;
31
+ /**
32
+ * 将只包含文件路径和变更类型的结果转换成 apply_patch。
33
+ * 这类数据常见于 Codex 的 `fileChange` 事件,本身没有 diff,
34
+ * 但前端至少可以据此展示文件级编辑摘要。
35
+ */
36
+ export declare function buildApplyPatchFromFileChangeList(changes: Array<{
37
+ path?: string | null;
38
+ kind?: string | null;
39
+ }>): string | null;
40
+ /**
41
+ * 将供应商返回的“松散 patch 输入”兜底规范成 apply_patch。
42
+ * 常见坏格式有两种:
43
+ * 1. 只有 `@@ ...` hunk,没有 `*** Begin Patch`
44
+ * 2. 只有文件路径列表,真正的 diff 已经丢了
45
+ */
46
+ export declare function normalizeApplyPatchText(input: string, options?: {
47
+ fallbackPaths?: string[];
48
+ }): string | null;
49
+ /**
50
+ * 从工具输出文本中提取“Updated the following files”里的文件路径。
51
+ * Codex 的 apply_patch 成功结果经常只在这里保留目标文件列表。
52
+ */
53
+ export declare function extractApplyPatchTargetPathsFromToolOutput(output: string): string[];
31
54
  /**
32
55
  * 将通用文件编辑类工具参数转换为 apply_patch。
33
56
  * 兼容 Gemini 等 provider 常见的字段风格:
@@ -67,6 +67,108 @@ export function buildApplyPatchFromOpenCodePatch(files) {
67
67
  hunks: []
68
68
  })));
69
69
  }
70
+ /**
71
+ * 将只包含文件路径和变更类型的结果转换成 apply_patch。
72
+ * 这类数据常见于 Codex 的 `fileChange` 事件,本身没有 diff,
73
+ * 但前端至少可以据此展示文件级编辑摘要。
74
+ */
75
+ export function buildApplyPatchFromFileChangeList(changes) {
76
+ const normalizedChanges = changes
77
+ .map((change) => {
78
+ const filePath = normalizePatchPath(change.path);
79
+ if (!filePath) {
80
+ return null;
81
+ }
82
+ return {
83
+ filePath,
84
+ action: normalizePatchAction(change.kind)
85
+ };
86
+ })
87
+ .filter((change) => Boolean(change));
88
+ if (normalizedChanges.length === 0) {
89
+ return null;
90
+ }
91
+ return buildApplyPatchText(normalizedChanges.map((change) => {
92
+ if (change.action === "add") {
93
+ return {
94
+ action: "add",
95
+ filePath: change.filePath,
96
+ contentLines: []
97
+ };
98
+ }
99
+ if (change.action === "delete") {
100
+ return {
101
+ action: "delete",
102
+ filePath: change.filePath
103
+ };
104
+ }
105
+ return {
106
+ action: "update",
107
+ filePath: change.filePath,
108
+ hunks: []
109
+ };
110
+ }));
111
+ }
112
+ /**
113
+ * 将供应商返回的“松散 patch 输入”兜底规范成 apply_patch。
114
+ * 常见坏格式有两种:
115
+ * 1. 只有 `@@ ...` hunk,没有 `*** Begin Patch`
116
+ * 2. 只有文件路径列表,真正的 diff 已经丢了
117
+ */
118
+ export function normalizeApplyPatchText(input, options) {
119
+ const normalizedInput = input.replace(/\r\n/g, "\n").trim();
120
+ if (!normalizedInput) {
121
+ return null;
122
+ }
123
+ if (isFullApplyPatchText(normalizedInput)) {
124
+ return normalizedInput;
125
+ }
126
+ const fallbackPaths = dedupePatchPaths(options?.fallbackPaths ?? []);
127
+ if (fallbackPaths.length !== 1 || !looksLikeLooseApplyPatchBody(normalizedInput)) {
128
+ return null;
129
+ }
130
+ return [
131
+ "*** Begin Patch",
132
+ `*** Update File: ${fallbackPaths[0]}`,
133
+ normalizedInput,
134
+ "*** End Patch"
135
+ ].join("\n");
136
+ }
137
+ /**
138
+ * 从工具输出文本中提取“Updated the following files”里的文件路径。
139
+ * Codex 的 apply_patch 成功结果经常只在这里保留目标文件列表。
140
+ */
141
+ export function extractApplyPatchTargetPathsFromToolOutput(output) {
142
+ const resolvedText = unwrapToolOutputText(output);
143
+ if (!resolvedText) {
144
+ return [];
145
+ }
146
+ const lines = resolvedText.replace(/\r\n/g, "\n").split("\n");
147
+ const collected = [];
148
+ let inUpdatedFilesSection = false;
149
+ for (const rawLine of lines) {
150
+ const line = rawLine.trim();
151
+ if (!inUpdatedFilesSection) {
152
+ if (/^Success\.\s+Updated the following files:/i.test(line)) {
153
+ inUpdatedFilesSection = true;
154
+ }
155
+ continue;
156
+ }
157
+ if (!line) {
158
+ if (collected.length > 0) {
159
+ break;
160
+ }
161
+ continue;
162
+ }
163
+ const matched = line.match(/^[A-Z?]\s+(.+)$/);
164
+ const candidatePath = normalizePatchPath(matched?.[1] ?? line);
165
+ if (!candidatePath) {
166
+ break;
167
+ }
168
+ collected.push(candidatePath);
169
+ }
170
+ return dedupePatchPaths(collected);
171
+ }
70
172
  /**
71
173
  * 将通用文件编辑类工具参数转换为 apply_patch。
72
174
  * 兼容 Gemini 等 provider 常见的字段风格:
@@ -123,6 +225,9 @@ function buildApplyPatchText(entries) {
123
225
  lines.push(`+${contentLine}`);
124
226
  }
125
227
  }
228
+ else if (entry.action === "delete") {
229
+ lines.push(`*** Delete File: ${entry.filePath}`);
230
+ }
126
231
  else {
127
232
  lines.push(`*** Update File: ${entry.filePath}`);
128
233
  if (entry.hunks.length === 0) {
@@ -189,4 +294,61 @@ function normalizeEditRecord(value) {
189
294
  newLines: newValue.length > 0 ? newValue.split("\n") : []
190
295
  };
191
296
  }
297
+ function normalizePatchAction(value) {
298
+ const normalized = value?.trim().toLowerCase() ?? "";
299
+ if (normalized === "add" || normalized === "create" || normalized === "new") {
300
+ return "add";
301
+ }
302
+ if (normalized === "delete" || normalized === "remove" || normalized === "removed") {
303
+ return "delete";
304
+ }
305
+ return "update";
306
+ }
307
+ function normalizePatchPath(value) {
308
+ return typeof value === "string" ? value.trim() : "";
309
+ }
310
+ function dedupePatchPaths(paths) {
311
+ return [...new Set(paths.map((path) => normalizePatchPath(path)).filter((path) => path.length > 0))];
312
+ }
313
+ function isFullApplyPatchText(input) {
314
+ return input.includes("*** Begin Patch") && input.includes("*** End Patch");
315
+ }
316
+ function looksLikeLooseApplyPatchBody(input) {
317
+ return (input.startsWith("@@") ||
318
+ input.startsWith("*** Update File: ") ||
319
+ input.startsWith("*** Add File: ") ||
320
+ input.startsWith("*** Delete File: ") ||
321
+ input.includes("\n@@") ||
322
+ input.startsWith("+") ||
323
+ input.startsWith("-"));
324
+ }
325
+ function unwrapToolOutputText(output) {
326
+ const normalized = output.trim();
327
+ if (!normalized) {
328
+ return "";
329
+ }
330
+ if (!normalized.startsWith("{")) {
331
+ return normalized;
332
+ }
333
+ try {
334
+ const parsed = JSON.parse(normalized);
335
+ if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) {
336
+ return normalized;
337
+ }
338
+ const record = parsed;
339
+ if (typeof record.output === "string" && record.output.trim().length > 0) {
340
+ return record.output;
341
+ }
342
+ if (typeof record.result === "string" && record.result.trim().length > 0) {
343
+ return record.result;
344
+ }
345
+ if (typeof record.message === "string" && record.message.trim().length > 0) {
346
+ return record.message;
347
+ }
348
+ }
349
+ catch {
350
+ return normalized;
351
+ }
352
+ return normalized;
353
+ }
192
354
  //# sourceMappingURL=patch-builder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"patch-builder.js","sourceRoot":"","sources":["../src/patch-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"patch-builder.js","sourceRoot":"","sources":["../src/patch-builder.ts"],"names":[],"mappings":"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"}
@@ -55,6 +55,7 @@ export declare class CodexAdapter implements ProviderAdapter {
55
55
  private touchHistoryCache;
56
56
  private buildForkResultFromTransport;
57
57
  private touchSessionSummaryCache;
58
+ private isForkedChildHistoryAligned;
58
59
  private resolveCodexSessionId;
59
60
  private resolveIndexedTitle;
60
61
  private readSpawnedAgentRelationIndex;
@@ -39,7 +39,10 @@ export class CodexAdapter {
39
39
  const sessionIdentity = this.readSessionIdentity(filePath, fileSessionId);
40
40
  if (cachedSummary
41
41
  && cachedSummary.mtimeMs === stats.mtimeMs
42
- && cachedSummary.size === stats.size) {
42
+ && cachedSummary.size === stats.size
43
+ && (!cachedSummary.summary
44
+ || !sessionIdentity
45
+ || cachedSummary.summary.providerSessionId === sessionIdentity.threadId)) {
43
46
  this.touchSessionSummaryCache(filePath, cachedSummary);
44
47
  if (cachedSummary.summary
45
48
  && hasUsableCodexTitle(cachedSummary.summary.title)
@@ -61,7 +64,9 @@ export class CodexAdapter {
61
64
  if (knownByPath
62
65
  && knownByPath.sourceMtimeMs === stats.mtimeMs
63
66
  && knownByPath.sourceSizeBytes === stats.size
64
- && hasUsableCodexTitle(knownByPath.title)) {
67
+ && hasUsableCodexTitle(knownByPath.title)
68
+ && (!sessionIdentity
69
+ || knownByPath.providerSessionId === sessionIdentity.threadId)) {
65
70
  if (normalizeWorkspacePath(knownByPath.workspacePath) === targetPath) {
66
71
  retainedSummaries.push({
67
72
  filePath,
@@ -206,11 +211,22 @@ export class CodexAdapter {
206
211
  }
207
212
  async readSessionHistory(providerSessionId, rawStoreRef, cursor, limit, direction = "forward") {
208
213
  const resolvedStoreRef = this.resolveSessionFilePath(rawStoreRef, providerSessionId);
214
+ if (!existsSync(resolvedStoreRef)) {
215
+ return {
216
+ messages: [],
217
+ cursor,
218
+ nextCursor: null,
219
+ total: 0
220
+ };
221
+ }
209
222
  const messages = this.getParsedMessages(resolvedStoreRef, providerSessionId);
210
223
  return sliceHistory(messages, cursor, limit, direction);
211
224
  }
212
225
  async readRecentSessionHistory(providerSessionId, rawStoreRef, totalMessageCount, limit) {
213
226
  const resolvedStoreRef = this.resolveSessionFilePath(rawStoreRef, providerSessionId);
227
+ if (!existsSync(resolvedStoreRef)) {
228
+ return null;
229
+ }
214
230
  const stats = statSync(resolvedStoreRef);
215
231
  const cached = this.historyCache.get(resolvedStoreRef);
216
232
  if (cached
@@ -242,8 +258,11 @@ export class CodexAdapter {
242
258
  subscribeSession(providerSessionId, rawStoreRef, cursor, limit, onEvent) {
243
259
  let currentCursor = cursor;
244
260
  const resolvedStoreRef = this.resolveSessionFilePath(rawStoreRef, providerSessionId);
245
- let lastMtime = statSync(resolvedStoreRef).mtimeMs;
261
+ let lastMtime = existsSync(resolvedStoreRef) ? statSync(resolvedStoreRef).mtimeMs : 0;
246
262
  const timer = setInterval(async () => {
263
+ if (!existsSync(resolvedStoreRef)) {
264
+ return;
265
+ }
247
266
  const nextStat = statSync(resolvedStoreRef);
248
267
  if (nextStat.mtimeMs <= lastMtime) {
249
268
  return;
@@ -353,39 +372,33 @@ export class CodexAdapter {
353
372
  const targetSnapshot = applyForkSourceMessageSnapshot(targetMessage, options.sourceMessageSnapshot);
354
373
  const threadReadResult = await transport.readThread(providerSessionId);
355
374
  const threadSnapshot = extractCodexThreadHistorySnapshot(threadReadResult);
356
- if (threadSnapshot.kind === "turns") {
357
- const rollbackPlan = buildCodexTurnRollbackPlan(threadSnapshot, parsedMessages, targetSnapshot);
358
- const forked = await transport.forkThread(providerSessionId);
359
- const finalized = rollbackPlan.numTurnsToRollback > 0
360
- ? await transport.rollbackThread(forked.providerSessionId, rollbackPlan.numTurnsToRollback)
361
- : forked;
362
- return await this.buildForkResultFromTransport({
363
- providerSessionId: finalized.providerSessionId,
364
- rawStoreRef: finalized.rawStoreRef,
365
- workspacePath,
366
- fallbackParentProviderSessionId: providerSessionId,
367
- forkMethod: "native_message_fork",
368
- forkSourceType: "message",
369
- providerSourceMessageId: null
370
- });
371
- }
372
375
  const truncatedHistory = truncateCodexThreadHistory(threadSnapshot.value, parsedMessages, targetSnapshot);
373
376
  if (truncatedHistory.length === 0) {
374
377
  throw new Error("CODEX_FORK_HISTORY_EMPTY");
375
378
  }
376
- const resumed = await transport.resumeThreadFromHistory({
377
- providerSessionId: null,
378
- workspacePath,
379
- history: truncatedHistory
380
- });
379
+ if (threadSnapshot.kind !== "turns") {
380
+ throw new Error("CODEX_RECONSTRUCTED_MESSAGE_FORK_NOT_SUPPORTED");
381
+ }
382
+ const rollbackPlan = buildCodexTurnRollbackPlan(threadSnapshot, parsedMessages, targetSnapshot);
383
+ const forked = await transport.forkThread(providerSessionId);
384
+ const finalized = rollbackPlan.numTurnsToRollback > 0
385
+ ? await transport.rollbackThread(forked.providerSessionId, rollbackPlan.numTurnsToRollback)
386
+ : forked;
387
+ const childThreadReadResult = await transport.readThread(finalized.providerSessionId);
388
+ if (!this.isForkedChildHistoryAligned(childThreadReadResult, truncatedHistory)) {
389
+ throw new Error("CODEX_NATIVE_MESSAGE_FORK_DIRTY");
390
+ }
381
391
  return await this.buildForkResultFromTransport({
382
- providerSessionId: resumed.providerSessionId,
383
- rawStoreRef: resumed.rawStoreRef,
392
+ providerSessionId: finalized.providerSessionId,
393
+ rawStoreRef: finalized.rawStoreRef,
384
394
  workspacePath,
385
395
  fallbackParentProviderSessionId: providerSessionId,
386
396
  forkMethod: "native_message_fork",
387
397
  forkSourceType: "message",
388
- providerSourceMessageId: null
398
+ providerSourceMessageId: null,
399
+ messageCountOverride: targetSnapshot.sequence,
400
+ inheritedPrefixMessageCountOverride: targetSnapshot.sequence,
401
+ lastMessageAtOverride: targetSnapshot.timestamp
389
402
  });
390
403
  }
391
404
  finally {
@@ -687,8 +700,16 @@ export class CodexAdapter {
687
700
  return [...activeFiles, ...archivedFiles];
688
701
  }
689
702
  resolveSessionFilePath(rawStoreRef, providerSessionId) {
703
+ const matchedByThreadId = this.findSessionFileByThreadId(providerSessionId);
690
704
  if (existsSync(rawStoreRef)) {
691
- return rawStoreRef;
705
+ const boundThreadId = this.readThreadIdFromRawStore(rawStoreRef);
706
+ if (!boundThreadId || boundThreadId === providerSessionId) {
707
+ return rawStoreRef;
708
+ }
709
+ if (matchedByThreadId) {
710
+ return matchedByThreadId;
711
+ }
712
+ return buildSyntheticCodexHistoryPath(this.options.homeDir, providerSessionId);
692
713
  }
693
714
  const fileName = basename(rawStoreRef) || `${providerSessionId}.jsonl`;
694
715
  const match = fileName.match(/^rollout-(\d{4})-(\d{2})-(\d{2})T.+\.jsonl$/);
@@ -702,11 +723,13 @@ export class CodexAdapter {
702
723
  if (matchedPath) {
703
724
  return matchedPath;
704
725
  }
705
- const matchedByThreadId = this.findSessionFileByThreadId(providerSessionId);
706
726
  if (matchedByThreadId) {
707
727
  return matchedByThreadId;
708
728
  }
709
- return rawStoreRef;
729
+ if (isSyntheticCodexHistoryPath(rawStoreRef)) {
730
+ return rawStoreRef;
731
+ }
732
+ return buildSyntheticCodexHistoryPath(this.options.homeDir, providerSessionId);
710
733
  }
711
734
  findSessionFileByThreadId(providerSessionId) {
712
735
  for (const filePath of this.listSessionFiles()) {
@@ -790,13 +813,13 @@ export class CodexAdapter {
790
813
  workspacePath: input.workspacePath,
791
814
  rawStoreRef: resolvedStoreRef,
792
815
  isArchived: resolveCodexArchivedState(threadMetadata, resolvedStoreRef),
793
- lastMessageAt: messages.at(-1)?.timestamp ?? nextTimestamp(),
794
- messageCount: messages.length,
816
+ lastMessageAt: input.lastMessageAtOverride ?? messages.at(-1)?.timestamp ?? nextTimestamp(),
817
+ messageCount: input.messageCountOverride ?? messages.length,
795
818
  parentProviderSessionId: input.fallbackParentProviderSessionId
796
819
  },
797
820
  forkMethod: input.forkMethod,
798
821
  forkSourceType: input.forkSourceType,
799
- inheritedPrefixMessageCount: messages.length,
822
+ inheritedPrefixMessageCount: input.inheritedPrefixMessageCountOverride ?? messages.length,
800
823
  providerSourceMessageId: input.providerSourceMessageId
801
824
  };
802
825
  }
@@ -811,6 +834,24 @@ export class CodexAdapter {
811
834
  this.sessionSummaryCache.delete(oldestKey);
812
835
  }
813
836
  }
837
+ isForkedChildHistoryAligned(childThreadReadResult, expectedHistory) {
838
+ const expectedSignatures = collectCodexForkComparableSignatures(expectedHistory);
839
+ if (expectedSignatures.length === 0) {
840
+ return false;
841
+ }
842
+ let childHistory;
843
+ try {
844
+ childHistory = extractCodexThreadHistory(childThreadReadResult);
845
+ }
846
+ catch {
847
+ return false;
848
+ }
849
+ const childSignatures = collectCodexForkComparableSignatures(childHistory);
850
+ if (childSignatures.length !== expectedSignatures.length) {
851
+ return false;
852
+ }
853
+ return expectedSignatures.every((signature, index) => childSignatures[index] === signature);
854
+ }
814
855
  resolveCodexSessionId(metaPayload, providerSessionId) {
815
856
  const metaId = ensureText(metaPayload.id).trim();
816
857
  const normalizedProviderSessionId = ensureText(providerSessionId).trim();
@@ -1534,6 +1575,13 @@ function buildCodexActiveSessionPath(homeDir, fileName) {
1534
1575
  }
1535
1576
  return join(homeDir, "sessions", match[1], match[2], match[3], fileName);
1536
1577
  }
1578
+ function buildSyntheticCodexHistoryPath(homeDir, providerSessionId) {
1579
+ return join(homeDir, "runtime", "codex", `${providerSessionId}.jsonl`);
1580
+ }
1581
+ function isSyntheticCodexHistoryPath(rawStoreRef) {
1582
+ const normalized = rawStoreRef.replaceAll("\\", "/").toLowerCase();
1583
+ return normalized.includes("/runtime/codex/") || normalized.startsWith("runtime/codex/");
1584
+ }
1537
1585
  function hasUsableCodexTitle(title) {
1538
1586
  return normalizeCodexIndexedTitle(title) !== null;
1539
1587
  }
@@ -1829,6 +1877,14 @@ function applyForkSourceMessageSnapshot(targetMessage, snapshot) {
1829
1877
  content: snapshot.content
1830
1878
  };
1831
1879
  }
1880
+ function collectCodexForkComparableSignatures(history) {
1881
+ try {
1882
+ return normalizeCodexThreadHistorySnapshot(history).comparableEntries.map((entry) => entry.signature);
1883
+ }
1884
+ catch {
1885
+ return [];
1886
+ }
1887
+ }
1832
1888
  function stringifyCodexThreadMessageContent(content) {
1833
1889
  if (typeof content === "string") {
1834
1890
  return content.trim();