@superblocksteam/vite-plugin-file-sync 2.0.165-next.0 → 2.0.166-next.1

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 (241) hide show
  1. package/dist/ai-service/agent/clark-prompt-metrics.d.ts +8 -0
  2. package/dist/ai-service/agent/clark-prompt-metrics.d.ts.map +1 -0
  3. package/dist/ai-service/agent/clark-prompt-metrics.js +52 -0
  4. package/dist/ai-service/agent/clark-prompt-metrics.js.map +1 -0
  5. package/dist/ai-service/agent/prompts/api-prompts.d.ts.map +1 -1
  6. package/dist/ai-service/agent/prompts/api-prompts.js +5 -3
  7. package/dist/ai-service/agent/prompts/api-prompts.js.map +1 -1
  8. package/dist/ai-service/agent/prompts/build-base-system-prompt.d.ts.map +1 -1
  9. package/dist/ai-service/agent/prompts/build-base-system-prompt.js +46 -8
  10. package/dist/ai-service/agent/prompts/build-base-system-prompt.js.map +1 -1
  11. package/dist/ai-service/agent/tool-result-metrics.d.ts +12 -0
  12. package/dist/ai-service/agent/tool-result-metrics.d.ts.map +1 -1
  13. package/dist/ai-service/agent/tool-result-metrics.js +29 -0
  14. package/dist/ai-service/agent/tool-result-metrics.js.map +1 -1
  15. package/dist/ai-service/agent/tools/apis/attachment-file-inputs.d.ts +17 -0
  16. package/dist/ai-service/agent/tools/apis/attachment-file-inputs.d.ts.map +1 -0
  17. package/dist/ai-service/agent/tools/apis/attachment-file-inputs.js +208 -0
  18. package/dist/ai-service/agent/tools/apis/attachment-file-inputs.js.map +1 -0
  19. package/dist/ai-service/agent/tools/apis/get-sdk-api-docs.d.ts +6 -1
  20. package/dist/ai-service/agent/tools/apis/get-sdk-api-docs.d.ts.map +1 -1
  21. package/dist/ai-service/agent/tools/apis/get-sdk-api-docs.js +53 -19
  22. package/dist/ai-service/agent/tools/apis/get-sdk-api-docs.js.map +1 -1
  23. package/dist/ai-service/agent/tools/apis/sdk-root-documentation.d.ts +20 -0
  24. package/dist/ai-service/agent/tools/apis/sdk-root-documentation.d.ts.map +1 -0
  25. package/dist/ai-service/agent/tools/apis/sdk-root-documentation.js +284 -0
  26. package/dist/ai-service/agent/tools/apis/sdk-root-documentation.js.map +1 -0
  27. package/dist/ai-service/agent/tools/apis/spreadsheet-csv.d.ts +77 -0
  28. package/dist/ai-service/agent/tools/apis/spreadsheet-csv.d.ts.map +1 -0
  29. package/dist/ai-service/agent/tools/apis/spreadsheet-csv.js +627 -0
  30. package/dist/ai-service/agent/tools/apis/spreadsheet-csv.js.map +1 -0
  31. package/dist/ai-service/agent/tools/apis/test-api.d.ts +1 -0
  32. package/dist/ai-service/agent/tools/apis/test-api.d.ts.map +1 -1
  33. package/dist/ai-service/agent/tools/apis/test-api.js +51 -9
  34. package/dist/ai-service/agent/tools/apis/test-api.js.map +1 -1
  35. package/dist/ai-service/agent/tools/app-environment/update-app-environment.d.ts +1 -1
  36. package/dist/ai-service/agent/tools/build-manage-checklist.d.ts +1 -1
  37. package/dist/ai-service/agent/tools/build-read-file.d.ts +50 -6
  38. package/dist/ai-service/agent/tools/build-read-file.d.ts.map +1 -1
  39. package/dist/ai-service/agent/tools/build-read-file.js +153 -40
  40. package/dist/ai-service/agent/tools/build-read-file.js.map +1 -1
  41. package/dist/ai-service/agent/tools/get-logs.d.ts +2 -2
  42. package/dist/ai-service/agent/tools/index.d.ts +3 -2
  43. package/dist/ai-service/agent/tools/index.d.ts.map +1 -1
  44. package/dist/ai-service/agent/tools/index.js +3 -2
  45. package/dist/ai-service/agent/tools/index.js.map +1 -1
  46. package/dist/ai-service/agent/tools/integrations/execute-request.d.ts +15 -15
  47. package/dist/ai-service/agent/tools/read-state-trackers.d.ts +33 -0
  48. package/dist/ai-service/agent/tools/read-state-trackers.d.ts.map +1 -0
  49. package/dist/ai-service/agent/tools/read-state-trackers.js +67 -0
  50. package/dist/ai-service/agent/tools/read-state-trackers.js.map +1 -0
  51. package/dist/ai-service/agent/tools/report-security-findings.d.ts +6 -6
  52. package/dist/ai-service/agent/tools/report-security-findings.d.ts.map +1 -1
  53. package/dist/ai-service/agent/tools/report-security-findings.js +4 -2
  54. package/dist/ai-service/agent/tools/report-security-findings.js.map +1 -1
  55. package/dist/ai-service/agent/tools/subagent-isolation.d.ts +4 -15
  56. package/dist/ai-service/agent/tools/subagent-isolation.d.ts.map +1 -1
  57. package/dist/ai-service/agent/tools/subagent-isolation.js +4 -44
  58. package/dist/ai-service/agent/tools/subagent-isolation.js.map +1 -1
  59. package/dist/ai-service/agent/tools.d.ts.map +1 -1
  60. package/dist/ai-service/agent/tools.js +17 -64
  61. package/dist/ai-service/agent/tools.js.map +1 -1
  62. package/dist/ai-service/agent/tools2/registry.d.ts +1 -0
  63. package/dist/ai-service/agent/tools2/registry.d.ts.map +1 -1
  64. package/dist/ai-service/agent/tools2/registry.js +23 -5
  65. package/dist/ai-service/agent/tools2/registry.js.map +1 -1
  66. package/dist/ai-service/agent/tools2/tools/ask-multi-choice.d.ts +3 -6
  67. package/dist/ai-service/agent/tools2/tools/ask-multi-choice.d.ts.map +1 -1
  68. package/dist/ai-service/agent/tools2/tools/ask-multi-choice.js +65 -2
  69. package/dist/ai-service/agent/tools2/tools/ask-multi-choice.js.map +1 -1
  70. package/dist/ai-service/agent/tools2/tools/attachment-lease-resolver.d.ts +9 -0
  71. package/dist/ai-service/agent/tools2/tools/attachment-lease-resolver.d.ts.map +1 -0
  72. package/dist/ai-service/agent/tools2/tools/attachment-lease-resolver.js +52 -0
  73. package/dist/ai-service/agent/tools2/tools/attachment-lease-resolver.js.map +1 -0
  74. package/dist/ai-service/agent/tools2/tools/bash.d.ts +2 -2
  75. package/dist/ai-service/agent/tools2/tools/download-attachments.d.ts +1 -1
  76. package/dist/ai-service/agent/tools2/tools/download-attachments.d.ts.map +1 -1
  77. package/dist/ai-service/agent/tools2/tools/download-attachments.js +57 -49
  78. package/dist/ai-service/agent/tools2/tools/download-attachments.js.map +1 -1
  79. package/dist/ai-service/agent/tools2/tools/end-test-run.d.ts +3 -3
  80. package/dist/ai-service/agent/tools2/tools/git.d.ts +6 -6
  81. package/dist/ai-service/agent/tools2/tools/grep-metadata.d.ts +1 -1
  82. package/dist/ai-service/agent/tools2/tools/grep.d.ts +1 -1
  83. package/dist/ai-service/agent/tools2/tools/grep.js +1 -1
  84. package/dist/ai-service/agent/tools2/tools/list-attachments.d.ts +1 -1
  85. package/dist/ai-service/agent/tools2/tools/update-test-case-status.d.ts +1 -1
  86. package/dist/ai-service/agent/tools2/tools/web-fetch.d.ts +1 -1
  87. package/dist/ai-service/agent/utils.d.ts +5 -1
  88. package/dist/ai-service/agent/utils.d.ts.map +1 -1
  89. package/dist/ai-service/agent/utils.js +75 -21
  90. package/dist/ai-service/agent/utils.js.map +1 -1
  91. package/dist/ai-service/app-skills/helpers.d.ts +8 -2
  92. package/dist/ai-service/app-skills/helpers.d.ts.map +1 -1
  93. package/dist/ai-service/app-skills/helpers.js +184 -4
  94. package/dist/ai-service/app-skills/helpers.js.map +1 -1
  95. package/dist/ai-service/attachments/text-upload-artifacts.d.ts.map +1 -1
  96. package/dist/ai-service/attachments/text-upload-artifacts.js +1 -1
  97. package/dist/ai-service/attachments/text-upload-artifacts.js.map +1 -1
  98. package/dist/ai-service/attachments/upload-artifact-paths.d.ts +5 -0
  99. package/dist/ai-service/attachments/upload-artifact-paths.d.ts.map +1 -0
  100. package/dist/ai-service/attachments/upload-artifact-paths.js +18 -0
  101. package/dist/ai-service/attachments/upload-artifact-paths.js.map +1 -0
  102. package/dist/ai-service/chat/chat-session-store-metrics.d.ts +6 -0
  103. package/dist/ai-service/chat/chat-session-store-metrics.d.ts.map +1 -1
  104. package/dist/ai-service/chat/chat-session-store-metrics.js +23 -1
  105. package/dist/ai-service/chat/chat-session-store-metrics.js.map +1 -1
  106. package/dist/ai-service/chat/chat-session-store.d.ts +25 -1
  107. package/dist/ai-service/chat/chat-session-store.d.ts.map +1 -1
  108. package/dist/ai-service/chat/chat-session-store.js +70 -4
  109. package/dist/ai-service/chat/chat-session-store.js.map +1 -1
  110. package/dist/ai-service/edit-after-clark.d.ts +58 -0
  111. package/dist/ai-service/edit-after-clark.d.ts.map +1 -0
  112. package/dist/ai-service/edit-after-clark.js +143 -0
  113. package/dist/ai-service/edit-after-clark.js.map +1 -0
  114. package/dist/ai-service/features.d.ts +5 -0
  115. package/dist/ai-service/features.d.ts.map +1 -1
  116. package/dist/ai-service/features.js +5 -0
  117. package/dist/ai-service/features.js.map +1 -1
  118. package/dist/ai-service/index.d.ts +25 -3
  119. package/dist/ai-service/index.d.ts.map +1 -1
  120. package/dist/ai-service/index.js +123 -18
  121. package/dist/ai-service/index.js.map +1 -1
  122. package/dist/ai-service/judge/tools/playwright-action.d.ts +5 -5
  123. package/dist/ai-service/llm/context-v2/context.d.ts +23 -6
  124. package/dist/ai-service/llm/context-v2/context.d.ts.map +1 -1
  125. package/dist/ai-service/llm/context-v2/context.js +48 -13
  126. package/dist/ai-service/llm/context-v2/context.js.map +1 -1
  127. package/dist/ai-service/llm/context-v2/token-tracker.d.ts.map +1 -1
  128. package/dist/ai-service/llm/context-v2/token-tracker.js.map +1 -1
  129. package/dist/ai-service/llm/stream/abort-reason.d.ts +31 -0
  130. package/dist/ai-service/llm/stream/abort-reason.d.ts.map +1 -0
  131. package/dist/ai-service/llm/stream/abort-reason.js +36 -0
  132. package/dist/ai-service/llm/stream/abort-reason.js.map +1 -0
  133. package/dist/ai-service/llm/stream/idle-monitor.d.ts.map +1 -1
  134. package/dist/ai-service/llm/stream/idle-monitor.js +7 -0
  135. package/dist/ai-service/llm/stream/idle-monitor.js.map +1 -1
  136. package/dist/ai-service/llm/stream/observers/attempt-model.d.ts +8 -0
  137. package/dist/ai-service/llm/stream/observers/attempt-model.d.ts.map +1 -0
  138. package/dist/ai-service/llm/stream/observers/attempt-model.js +15 -0
  139. package/dist/ai-service/llm/stream/observers/attempt-model.js.map +1 -0
  140. package/dist/ai-service/llm/stream/orchestrator.d.ts +15 -0
  141. package/dist/ai-service/llm/stream/orchestrator.d.ts.map +1 -1
  142. package/dist/ai-service/llm/stream/orchestrator.js +89 -12
  143. package/dist/ai-service/llm/stream/orchestrator.js.map +1 -1
  144. package/dist/ai-service/migration-prompt-gating.d.ts +1 -0
  145. package/dist/ai-service/migration-prompt-gating.d.ts.map +1 -1
  146. package/dist/ai-service/migration-prompt-gating.js +6 -0
  147. package/dist/ai-service/migration-prompt-gating.js.map +1 -1
  148. package/dist/ai-service/skills/system/_registry.generated.d.ts.map +1 -1
  149. package/dist/ai-service/skills/system/_registry.generated.js +8 -0
  150. package/dist/ai-service/skills/system/_registry.generated.js.map +1 -1
  151. package/dist/ai-service/skills/system/resolve.d.ts.map +1 -1
  152. package/dist/ai-service/skills/system/resolve.js +29 -4
  153. package/dist/ai-service/skills/system/resolve.js.map +1 -1
  154. package/dist/ai-service/skills/system/spreadsheet-import/skill.generated.d.ts +2 -0
  155. package/dist/ai-service/skills/system/spreadsheet-import/skill.generated.d.ts.map +1 -0
  156. package/dist/ai-service/skills/system/spreadsheet-import/skill.generated.js +66 -0
  157. package/dist/ai-service/skills/system/spreadsheet-import/skill.generated.js.map +1 -0
  158. package/dist/ai-service/skills/system/superblocks-frontend/_variants/api-names-legacy.generated.d.ts +2 -0
  159. package/dist/ai-service/skills/system/superblocks-frontend/_variants/api-names-legacy.generated.d.ts.map +1 -0
  160. package/dist/ai-service/skills/system/superblocks-frontend/_variants/api-names-legacy.generated.js +5 -0
  161. package/dist/ai-service/skills/system/superblocks-frontend/_variants/api-names-legacy.generated.js.map +1 -0
  162. package/dist/ai-service/skills/system/superblocks-frontend/_variants/api-names-sdk.generated.d.ts +2 -0
  163. package/dist/ai-service/skills/system/superblocks-frontend/_variants/api-names-sdk.generated.d.ts.map +1 -0
  164. package/dist/ai-service/skills/system/superblocks-frontend/_variants/api-names-sdk.generated.js +5 -0
  165. package/dist/ai-service/skills/system/superblocks-frontend/_variants/api-names-sdk.generated.js.map +1 -0
  166. package/dist/ai-service/skills/system/superblocks-frontend/skill.generated.d.ts +1 -1
  167. package/dist/ai-service/skills/system/superblocks-frontend/skill.generated.d.ts.map +1 -1
  168. package/dist/ai-service/skills/system/superblocks-frontend/skill.generated.js +2 -1
  169. package/dist/ai-service/skills/system/superblocks-frontend/skill.generated.js.map +1 -1
  170. package/dist/ai-service/skills/system/superblocks-migration/skill.generated.d.ts +1 -1
  171. package/dist/ai-service/skills/system/superblocks-migration/skill.generated.d.ts.map +1 -1
  172. package/dist/ai-service/skills/system/superblocks-migration/skill.generated.js +6 -6
  173. package/dist/ai-service/skills/system/superblocks-sdk-api/skill.generated.d.ts +2 -0
  174. package/dist/ai-service/skills/system/superblocks-sdk-api/skill.generated.d.ts.map +1 -0
  175. package/dist/ai-service/skills/system/superblocks-sdk-api/skill.generated.js +29 -0
  176. package/dist/ai-service/skills/system/superblocks-sdk-api/skill.generated.js.map +1 -0
  177. package/dist/ai-service/skills/system/third-party-migration/skill.generated.d.ts +1 -1
  178. package/dist/ai-service/skills/system/third-party-migration/skill.generated.d.ts.map +1 -1
  179. package/dist/ai-service/skills/system/third-party-migration/skill.generated.js +2 -2
  180. package/dist/ai-service/state-machine/clark-fsm.d.ts +14 -1
  181. package/dist/ai-service/state-machine/clark-fsm.d.ts.map +1 -1
  182. package/dist/ai-service/state-machine/clark-fsm.js.map +1 -1
  183. package/dist/ai-service/state-machine/handlers/llm-generating.d.ts.map +1 -1
  184. package/dist/ai-service/state-machine/handlers/llm-generating.js +9 -2
  185. package/dist/ai-service/state-machine/handlers/llm-generating.js.map +1 -1
  186. package/dist/ai-service/state-machine/helpers/abandon-turn-metrics.d.ts +18 -0
  187. package/dist/ai-service/state-machine/helpers/abandon-turn-metrics.d.ts.map +1 -0
  188. package/dist/ai-service/state-machine/helpers/abandon-turn-metrics.js +66 -0
  189. package/dist/ai-service/state-machine/helpers/abandon-turn-metrics.js.map +1 -0
  190. package/dist/ai-service/state-machine/helpers/transition.d.ts.map +1 -1
  191. package/dist/ai-service/state-machine/helpers/transition.js.map +1 -1
  192. package/dist/ai-service/state-machine/traced-fsm.d.ts +12 -3
  193. package/dist/ai-service/state-machine/traced-fsm.d.ts.map +1 -1
  194. package/dist/ai-service/state-machine/traced-fsm.js +17 -5
  195. package/dist/ai-service/state-machine/traced-fsm.js.map +1 -1
  196. package/dist/ai-service/template-renderer.js +43 -7
  197. package/dist/ai-service/template-renderer.js.map +1 -1
  198. package/dist/ai-service/types.d.ts +2 -0
  199. package/dist/ai-service/types.d.ts.map +1 -1
  200. package/dist/ai-service/types.js.map +1 -1
  201. package/dist/ai-service/util/llm-config-utils.d.ts +2 -2
  202. package/dist/ai-service/util/llm-config-utils.d.ts.map +1 -1
  203. package/dist/ai-service/util/llm-config-utils.js +3 -2
  204. package/dist/ai-service/util/llm-config-utils.js.map +1 -1
  205. package/dist/file-sync-vite-plugin.d.ts +12 -3
  206. package/dist/file-sync-vite-plugin.d.ts.map +1 -1
  207. package/dist/file-sync-vite-plugin.js +57 -17
  208. package/dist/file-sync-vite-plugin.js.map +1 -1
  209. package/dist/migration/migration-routes.d.ts.map +1 -1
  210. package/dist/migration/migration-routes.js +42 -23
  211. package/dist/migration/migration-routes.js.map +1 -1
  212. package/dist/npm/normalize-workspace-protocol-for-npm.d.ts.map +1 -1
  213. package/dist/npm/normalize-workspace-protocol-for-npm.js +5 -5
  214. package/dist/npm/normalize-workspace-protocol-for-npm.js.map +1 -1
  215. package/dist/npm/rewrite-platform-workspace-deps.d.ts +2 -0
  216. package/dist/npm/rewrite-platform-workspace-deps.d.ts.map +1 -1
  217. package/dist/npm/rewrite-platform-workspace-deps.js +2 -2
  218. package/dist/npm/rewrite-platform-workspace-deps.js.map +1 -1
  219. package/dist/policy-gate-runner.d.ts.map +1 -1
  220. package/dist/policy-gate-runner.js +3 -0
  221. package/dist/policy-gate-runner.js.map +1 -1
  222. package/dist/socket-manager.d.ts +1 -1
  223. package/dist/socket-manager.d.ts.map +1 -1
  224. package/dist/socket-manager.js +64 -22
  225. package/dist/socket-manager.js.map +1 -1
  226. package/dist/sync-service/index.d.ts +14 -1
  227. package/dist/sync-service/index.d.ts.map +1 -1
  228. package/dist/sync-service/index.js +27 -1
  229. package/dist/sync-service/index.js.map +1 -1
  230. package/dist/sync-service/list-dir.d.ts.map +1 -1
  231. package/dist/sync-service/list-dir.js +15 -1
  232. package/dist/sync-service/list-dir.js.map +1 -1
  233. package/dist/sync-service/snapshot/take-snapshot.d.ts +6 -0
  234. package/dist/sync-service/snapshot/take-snapshot.d.ts.map +1 -1
  235. package/dist/sync-service/snapshot/take-snapshot.js +21 -0
  236. package/dist/sync-service/snapshot/take-snapshot.js.map +1 -1
  237. package/dist/vite-plugin-yaml-types.d.ts +6 -0
  238. package/dist/vite-plugin-yaml-types.d.ts.map +1 -1
  239. package/dist/vite-plugin-yaml-types.js +52 -61
  240. package/dist/vite-plugin-yaml-types.js.map +1 -1
  241. package/package.json +14 -11
@@ -47,13 +47,13 @@ export interface GitToolDeps {
47
47
  deployService?: GitDeployService;
48
48
  }
49
49
  export declare const gitToolFactory: import("../types.js").ToolFactory<GitToolDeps, import("../types.js").Tool<{
50
- operation: "status" | "commit" | "log" | "diff" | "stage" | "create_pr" | "deploy" | "log_from_main" | "merge_abort" | "pull";
50
+ operation: "status" | "commit" | "create_pr" | "deploy" | "diff" | "log" | "log_from_main" | "merge_abort" | "pull" | "stage";
51
51
  message?: string | undefined;
52
52
  title?: string | undefined;
53
- paths?: string[] | undefined;
54
53
  count?: number | undefined;
55
- body?: string | undefined;
56
54
  staged?: boolean | undefined;
55
+ paths?: string[] | undefined;
56
+ body?: string | undefined;
57
57
  sha?: string | undefined;
58
58
  }, {
59
59
  aborted: true;
@@ -94,7 +94,7 @@ export declare const gitToolFactory: import("../types.js").ToolFactory<GitToolDe
94
94
  deployed?: undefined;
95
95
  sha?: undefined;
96
96
  stage?: undefined;
97
- readonly error?: undefined;
97
+ error?: undefined;
98
98
  } | {
99
99
  merged: boolean;
100
100
  conflictedFiles: string[];
@@ -103,7 +103,7 @@ export declare const gitToolFactory: import("../types.js").ToolFactory<GitToolDe
103
103
  deployed?: undefined;
104
104
  sha?: undefined;
105
105
  stage?: undefined;
106
- readonly error?: undefined;
106
+ error?: undefined;
107
107
  } | {
108
108
  readonly merged: true;
109
109
  readonly verificationRequired: "Merge complete. You MUST now run build_debug to verify the app still builds and runs after this merge. Only run build_captureScreenshot if the merge changed the UI and you need to confirm it looks right. If issues are found, fix them immediately.";
@@ -112,7 +112,7 @@ export declare const gitToolFactory: import("../types.js").ToolFactory<GitToolDe
112
112
  deployed?: undefined;
113
113
  sha?: undefined;
114
114
  stage?: undefined;
115
- readonly error?: undefined;
115
+ error?: undefined;
116
116
  } | {
117
117
  deployed: boolean;
118
118
  sha: string;
@@ -117,7 +117,7 @@ export declare const grepMetadataToolFactory: import("../types.js").ToolFactory<
117
117
  hasMore?: boolean;
118
118
  pluginId?: string;
119
119
  isDatabricksIntegration?: boolean;
120
- readonly error?: undefined;
120
+ error?: undefined;
121
121
  }>>;
122
122
  export {};
123
123
  //# sourceMappingURL=grep-metadata.d.ts.map
@@ -9,10 +9,10 @@ export declare const grepToolFactory: import("../types.js").ToolFactory<Deps, im
9
9
  pattern: string;
10
10
  type?: string | undefined;
11
11
  path?: string | undefined;
12
+ "-n"?: boolean | undefined;
12
13
  glob?: string | undefined;
13
14
  "-i"?: boolean | undefined;
14
15
  output_mode?: "content" | "count" | "files_with_matches" | undefined;
15
- "-n"?: boolean | undefined;
16
16
  "-A"?: number | undefined;
17
17
  "-B"?: number | undefined;
18
18
  "-C"?: number | undefined;
@@ -45,7 +45,7 @@ Usage:
45
45
  - Use 'path' to search IN a specific file or directory (e.g., "pages/Home/index.tsx", "components/")
46
46
  - Use 'glob' to FILTER files by pattern (e.g., "*.tsx", "**/*.test.ts") - this is NOT for specifying paths
47
47
  - Output modes: "content" shows matching lines, "files_with_matches" shows only file paths (default), "count" shows match counts
48
- - Use Task tool for open-ended searches requiring multiple rounds
48
+ - For open-ended searches, use iterative Grep and Glob exploration to refine the search
49
49
  - Pattern syntax: Uses ripgrep (not grep) - literal braces need escaping (use interface\\{\\} to find interface{} in Go code)
50
50
  - Multiline matching: By default patterns match within single lines only. For cross-line patterns like struct \\{[\\s\\S]*?field, use multiline: true
51
51
  `,
@@ -13,6 +13,6 @@ export declare const listAttachmentsToolFactory: import("../types.js").ToolFacto
13
13
  } | {
14
14
  attachments: import("../../../attachments/store.js").AttachmentInfo[];
15
15
  count: number;
16
- readonly error?: undefined;
16
+ error?: undefined;
17
17
  }>>;
18
18
  //# sourceMappingURL=list-attachments.d.ts.map
@@ -24,6 +24,6 @@ export declare const updateTestCaseStatusToolFactory: import("../types.js").Tool
24
24
  success: boolean;
25
25
  testCaseId: string;
26
26
  status: "failed" | "running" | "passed" | "skipped";
27
- readonly error?: undefined;
27
+ error?: undefined;
28
28
  }>>;
29
29
  //# sourceMappingURL=update-test-case-status.d.ts.map
@@ -23,8 +23,8 @@ interface WebFetchDeps {
23
23
  * Fetches URL content, converts to markdown, and processes with LLM.
24
24
  */
25
25
  export declare const webFetchToolFactory: import("../types.js").ToolFactory<WebFetchDeps, import("../types.js").Tool<{
26
- prompt: string;
27
26
  url: string;
27
+ prompt: string;
28
28
  }, WebFetchOutput>>;
29
29
  export {};
30
30
  //# sourceMappingURL=web-fetch.d.ts.map
@@ -1,7 +1,11 @@
1
1
  import type { TextStreamPart, ToolSet } from "ai";
2
2
  import type { Clark, ClarkStateHandlerParams } from "../state-machine/clark-fsm.js";
3
3
  export declare const normalizeToBlockStatement: (value: any) => string;
4
- export declare const processStreamChunk: (chunk: TextStreamPart<ToolSet>, clark: Clark, services: ClarkStateHandlerParams, group?: string) => Promise<void>;
4
+ export interface StreamChunkRenderOptions {
5
+ reasoningAsText?: boolean;
6
+ model?: string;
7
+ }
8
+ export declare const processStreamChunk: (chunk: TextStreamPart<ToolSet>, clark: Clark, services: ClarkStateHandlerParams, group?: string, options?: StreamChunkRenderOptions) => Promise<void>;
5
9
  /**
6
10
  * Process stream chunks specifically for the test subagent.
7
11
  *
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/ai-service/agent/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAsBlD,OAAO,KAAK,EACV,KAAK,EACL,uBAAuB,EACxB,MAAM,+BAA+B,CAAC;AAgHvC,eAAO,MAAM,yBAAyB,GAAI,OAAO,GAAG,KAAG,MA0FtD,CAAC;AAiBF,eAAO,MAAM,kBAAkB,GAC7B,OAAO,cAAc,CAAC,OAAO,CAAC,EAC9B,OAAO,KAAK,EACZ,UAAU,uBAAuB,EACjC,QAAQ,MAAM,KACb,OAAO,CAAC,IAAI,CAgZd,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,sBAAsB,GACjC,OAAO,cAAc,CAAC,OAAO,CAAC,EAC9B,OAAO,KAAK,EACZ,UAAU,uBAAuB,KAChC,OAAO,CAAC,IAAI,CAyId,CAAC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/ai-service/agent/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAsBlD,OAAO,KAAK,EACV,KAAK,EACL,uBAAuB,EACxB,MAAM,+BAA+B,CAAC;AAiHvC,eAAO,MAAM,yBAAyB,GAAI,OAAO,GAAG,KAAG,MA0FtD,CAAC;AAiBF,MAAM,WAAW,wBAAwB;IAIvC,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAqFD,eAAO,MAAM,kBAAkB,GAC7B,OAAO,cAAc,CAAC,OAAO,CAAC,EAC9B,OAAO,KAAK,EACZ,UAAU,uBAAuB,EACjC,QAAQ,MAAM,EACd,UAAU,wBAAwB,KACjC,OAAO,CAAC,IAAI,CAyYd,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,sBAAsB,GACjC,OAAO,cAAc,CAAC,OAAO,CAAC,EAC9B,OAAO,KAAK,EACZ,UAAU,uBAAuB,KAChC,OAAO,CAAC,IAAI,CAyId,CAAC"}
@@ -10,6 +10,7 @@ import llmobs from "../llmobs/index.js";
10
10
  import { SKILL_PATH_PREFIXES, SkillLayer } from "../skills/types.js";
11
11
  import { sendUserMessageChannel } from "../state-machine/helpers/peer.js";
12
12
  import { getToolCallSignature } from "../util/tool-signature.js";
13
+ import { recordProgressUpdateRendered } from "./clark-prompt-metrics.js";
13
14
  import { getToolCallArguments, getToolErrorCode, getToolErrorMessage, getToolOutput, } from "./tool-message-utils.js";
14
15
  import { PermissionLevel, ToolExecutionError } from "./tools2/types.js";
15
16
  /**
@@ -173,7 +174,79 @@ const getStoreMessageType = (type) => {
173
174
  return "text";
174
175
  }
175
176
  };
176
- export const processStreamChunk = async (chunk, clark, services, group) => {
177
+ // Reasoning blocks rendered as chat text open a chat message lazily, on their
178
+ // first non-empty delta, so hidden reasoning blocks leave no empty bubble.
179
+ // Maps each open block id to the characters rendered so far. Cleared at every
180
+ // step start so interrupted or retried steps leave nothing behind.
181
+ const reasoningTextBlocksByClark = new WeakMap();
182
+ const pushTextDelta = (clark, services, id, text, group) => {
183
+ void clark.context.peer?.call.aiPushMessage({
184
+ role: "assistant",
185
+ type: "text-delta",
186
+ content: text,
187
+ textBlockId: id,
188
+ ...(group && { group }),
189
+ });
190
+ services.chatSessionStore.recordInProgressMessage({ id, text, type: "text" });
191
+ clark.updateContext((ctx) => ({
192
+ ...ctx,
193
+ partialResponse: {
194
+ text: (ctx.partialResponse?.text ?? "") + text,
195
+ lastUpdatedAt: Date.now(),
196
+ },
197
+ }));
198
+ };
199
+ const processReasoningAsText = (chunk, clark, services, group, model) => {
200
+ let started = reasoningTextBlocksByClark.get(clark);
201
+ if (!started) {
202
+ started = new Map();
203
+ reasoningTextBlocksByClark.set(clark, started);
204
+ }
205
+ if (chunk.type === "reasoning-start") {
206
+ // An aborted block never reaches reasoning-end; forget any stale id so a
207
+ // reused one opens its own message.
208
+ started.delete(chunk.id);
209
+ return;
210
+ }
211
+ if (chunk.type === "reasoning-delta") {
212
+ if (chunk.text.length === 0) {
213
+ return;
214
+ }
215
+ if (!started.has(chunk.id)) {
216
+ services.chatSessionStore.recordInProgressMessage({
217
+ id: chunk.id,
218
+ text: "",
219
+ type: "text",
220
+ });
221
+ }
222
+ started.set(chunk.id, (started.get(chunk.id) ?? 0) + chunk.text.length);
223
+ pushTextDelta(clark, services, chunk.id, chunk.text, group);
224
+ return;
225
+ }
226
+ const chars = started.get(chunk.id);
227
+ if (chars === undefined) {
228
+ return;
229
+ }
230
+ started.delete(chunk.id);
231
+ getLogger().info("[processStreamChunk] Rendered progress update as chat text", {
232
+ blockId: chunk.id,
233
+ chars,
234
+ });
235
+ recordProgressUpdateRendered({ model });
236
+ void services.chatSessionStore.commitMessage(chunk.id, "text", group);
237
+ clark.updateContext({ partialResponse: undefined });
238
+ };
239
+ export const processStreamChunk = async (chunk, clark, services, group, options) => {
240
+ if (chunk.type === "start-step") {
241
+ reasoningTextBlocksByClark.delete(clark);
242
+ }
243
+ if (options?.reasoningAsText &&
244
+ (chunk.type === "reasoning-start" ||
245
+ chunk.type === "reasoning-delta" ||
246
+ chunk.type === "reasoning-end")) {
247
+ processReasoningAsText(chunk, clark, services, group, options.model);
248
+ return;
249
+ }
177
250
  switch (chunk.type) {
178
251
  case "text-start":
179
252
  case "reasoning-start": {
@@ -202,26 +275,7 @@ export const processStreamChunk = async (chunk, clark, services, group) => {
202
275
  break;
203
276
  }
204
277
  case "text-delta":
205
- void clark.context.peer?.call.aiPushMessage({
206
- role: "assistant",
207
- type: "text-delta",
208
- content: chunk.text,
209
- textBlockId: chunk.id,
210
- ...(group && { group }),
211
- });
212
- // record the text in the chat session store
213
- services.chatSessionStore.recordInProgressMessage({
214
- id: chunk.id,
215
- text: chunk.text,
216
- type: getStoreMessageType(chunk.type),
217
- });
218
- clark.updateContext((ctx) => ({
219
- ...ctx,
220
- partialResponse: {
221
- text: (ctx.partialResponse?.text ?? "") + chunk.text,
222
- lastUpdatedAt: Date.now(),
223
- },
224
- }));
278
+ pushTextDelta(clark, services, chunk.id, chunk.text, group);
225
279
  break;
226
280
  case "reasoning-delta": {
227
281
  void clark.context.peer?.call.aiPushMessage({
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/ai-service/agent/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/ai-service/agent/utils.ts"],"names":[],"mappings":"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"}
@@ -2,8 +2,14 @@ import { type AiGenerateRequest, type KnowledgePromotionSelection, type Remember
2
2
  import type { ChatSessionStore } from "../chat/chat-session-store.js";
3
3
  import { type Clark, type ClarkStateHandlerParams } from "../state-machine/clark-fsm.js";
4
4
  /**
5
- * Persist approved knowledge entries to disk and send an `app_knowledge_saved` message.
6
- * On failure, sends a user-visible error message instead.
5
+ * Persist approved knowledge entries to disk, verify each write is visible
6
+ * via a local read-after-write, and send an `app_knowledge_saved` message.
7
+ * `app_knowledge_saved` is reported only once local disk confirms the write
8
+ * is real — never merely once `fs.writeFile` resolves and never gated on
9
+ * DBFS/durability sync (see
10
+ * `docs/adr/0003-knowledge-save-success-is-a-local-read-after-write.md`).
11
+ * On a per-entry failure (including a failed verification), sends a
12
+ * user-visible error message instead.
7
13
  */
8
14
  export declare function saveKnowledgeAndNotify(clark: Clark, params: ClarkStateHandlerParams, chatSessionStore: ChatSessionStore, appRootDirPath: string, responseToMessageId: string, knowledgeEntries: RememberKnowledgeCandidate[], selectedKnowledgeIndices: number[], selectedScopesByIndex: Map<number, KnowledgePromotionSelection>, logLabel: string): Promise<void>;
9
15
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/ai-service/app-skills/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,iBAAiB,EACtB,KAAK,2BAA2B,EAKhC,KAAK,0BAA0B,EAEhC,MAAM,uCAAuC,CAAC;AAQ/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAWtE,OAAO,EAEL,KAAK,KAAK,EACV,KAAK,uBAAuB,EAC7B,MAAM,+BAA+B,CAAC;AAoGvC;;;GAGG;AACH,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,uBAAuB,EAC/B,gBAAgB,EAAE,gBAAgB,EAClC,cAAc,EAAE,MAAM,EACtB,mBAAmB,EAAE,MAAM,EAC3B,gBAAgB,EAAE,0BAA0B,EAAE,EAC9C,wBAAwB,EAAE,MAAM,EAAE,EAClC,qBAAqB,EAAE,GAAG,CAAC,MAAM,EAAE,2BAA2B,CAAC,EAC/D,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CAgPf;AAED;;;;;;;GAOG;AACH,wBAAsB,kCAAkC,CACtD,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,uBAAuB,EAC/B,OAAO,EAAE,iBAAiB,EAC1B,iBAAiB,CAAC,EAAE,MAAM,GACzB,OAAO,CAAC,OAAO,CAAC,CA+MlB"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/ai-service/app-skills/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,iBAAiB,EACtB,KAAK,2BAA2B,EAKhC,KAAK,0BAA0B,EAEhC,MAAM,uCAAuC,CAAC;AAQ/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAYtE,OAAO,EAEL,KAAK,KAAK,EACV,KAAK,uBAAuB,EAC7B,MAAM,+BAA+B,CAAC;AAqQvC;;;;;;;;;GASG;AACH,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,uBAAuB,EAC/B,gBAAgB,EAAE,gBAAgB,EAClC,cAAc,EAAE,MAAM,EACtB,mBAAmB,EAAE,MAAM,EAC3B,gBAAgB,EAAE,0BAA0B,EAAE,EAC9C,wBAAwB,EAAE,MAAM,EAAE,EAClC,qBAAqB,EAAE,GAAG,CAAC,MAAM,EAAE,2BAA2B,CAAC,EAC/D,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CA+Rf;AAED;;;;;;;GAOG;AACH,wBAAsB,kCAAkC,CACtD,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,uBAAuB,EAC/B,OAAO,EAAE,iBAAiB,EAC1B,iBAAiB,CAAC,EAAE,MAAM,GACzB,OAAO,CAAC,OAAO,CAAC,CA+MlB"}
@@ -69,8 +69,145 @@ function pushSaveOutcome(knowledgeEntry, saveOutcomes, outcome) {
69
69
  });
70
70
  }
71
71
  /**
72
- * Persist approved knowledge entries to disk and send an `app_knowledge_saved` message.
73
- * On failure, sends a user-visible error message instead.
72
+ * Source tag passed to `syncCurrentDirectoryWithDraftsNow`. Reuses the plain
73
+ * `requestedFilesSync` action — `setApplicationHash` has no knowledge-specific
74
+ * behavior, so a dedicated source only adds an enum member every exhaustive
75
+ * switch over `ApplicationHashChangeSource` must handle for no behavioral
76
+ * benefit.
77
+ */
78
+ const KNOWLEDGE_SYNC_SOURCE = "requestedFilesSync";
79
+ function hasSyncCurrentDirectoryWithDraftsNow(syncService) {
80
+ return (typeof syncService === "object" &&
81
+ syncService !== null &&
82
+ "syncCurrentDirectoryWithDraftsNow" in syncService &&
83
+ typeof syncService.syncCurrentDirectoryWithDraftsNow === "function");
84
+ }
85
+ /**
86
+ * Best-effort, non-blocking upload of the current working tree (including
87
+ * the knowledge markdown files `AppSkillsManager` just wrote via plain `fs`)
88
+ * so a knowledge write survives a pod recycling before the next autosync
89
+ * pass. This is durability, not correctness: nothing in the write path or
90
+ * its only real consumer (`llm-generating.ts`'s prompt construction, which
91
+ * reads `skills/app/*.md` synchronously off local disk in the same process)
92
+ * depends on this sync having happened. `saveKnowledgeAndNotify` therefore
93
+ * never awaits this before reporting success, and a failure here is logged,
94
+ * not surfaced to the user — see
95
+ * `docs/adr/0003-knowledge-save-success-is-a-local-read-after-write.md`.
96
+ *
97
+ * Retries once on failure: the file watcher never triggers autosync for
98
+ * `skills/app/*.md` (`isSkillFile` fires a UI-only notification instead),
99
+ * so unlike most files, a knowledge write has no other path back to a
100
+ * durability sync short of an unrelated file change. A single retry
101
+ * narrows the pod-recycle data-loss window for a transient failure without
102
+ * adding a real retry queue.
103
+ *
104
+ * Knowledge saves deliberately do NOT go through `AppShell.writeFile()` /
105
+ * the draft-review pipeline. That pipeline stages a draft (see
106
+ * `docs/adr/0001-knowledge-writes-use-immediate-sync-not-draft-review.md`)
107
+ * that only becomes real, uploaded content after a human clicks Accept in
108
+ * the editor, which is wrong for entries already approved via chat.
109
+ * `syncCurrentDirectoryWithDraftsNow` is the same "write via plain fs, then
110
+ * sync now, no human review" method `dev-database-file-sync.ts` uses for
111
+ * `applyMigrations`.
112
+ */
113
+ const KNOWLEDGE_SYNC_MAX_ATTEMPTS = 2;
114
+ const KNOWLEDGE_SYNC_RETRY_DELAY_MS = 2000;
115
+ const sleep = (ms) => {
116
+ const { promise, resolve } = Promise.withResolvers();
117
+ setTimeout(resolve, ms);
118
+ return promise;
119
+ };
120
+ function scheduleKnowledgeDurabilitySync(clark, params) {
121
+ const { syncService } = params;
122
+ if (!hasSyncCurrentDirectoryWithDraftsNow(syncService)) {
123
+ // No runtime sync service configured for this session; see the many
124
+ // `if (syncService)` guards in file-sync-vite-plugin.ts. The write is
125
+ // already durable on the pod's disk and the (only) real consumer reads
126
+ // it from there directly, so there is nothing to schedule.
127
+ return;
128
+ }
129
+ const logSyncFailure = (error) => {
130
+ // Fire-and-forget: nothing awaits this, so a rejection or a synchronous
131
+ // throw from clark.tracer.trace itself would otherwise be unhandled or
132
+ // propagate out of the caller.
133
+ clark.logger.error(`[app-skills] Knowledge durability sync failed after ${KNOWLEDGE_SYNC_MAX_ATTEMPTS} attempt(s) (applicationId=${params.applicationId}, promptId=${clark.context.promptId ?? "unknown"}); write remains on local disk only until an unrelated file change triggers autosync`, getErrorMeta(error));
134
+ };
135
+ try {
136
+ clark.tracer
137
+ .trace({ kind: "task", name: "app_skills.sync" }, async (span) => {
138
+ const startedAt = performance.now();
139
+ clark.tracer.annotate(span, {
140
+ tags: {
141
+ applicationId: params.applicationId,
142
+ promptId: clark.context.promptId ?? "",
143
+ },
144
+ });
145
+ let lastError;
146
+ for (let attempt = 1; attempt <= KNOWLEDGE_SYNC_MAX_ATTEMPTS; attempt++) {
147
+ try {
148
+ const { directoryHash } = await syncService.syncCurrentDirectoryWithDraftsNow(KNOWLEDGE_SYNC_SOURCE);
149
+ clark.tracer.annotate(span, {
150
+ metadata: {
151
+ durationMs: Math.round(performance.now() - startedAt),
152
+ directoryHash,
153
+ attempt,
154
+ },
155
+ });
156
+ return;
157
+ }
158
+ catch (error) {
159
+ lastError = error;
160
+ if (attempt < KNOWLEDGE_SYNC_MAX_ATTEMPTS) {
161
+ await sleep(KNOWLEDGE_SYNC_RETRY_DELAY_MS);
162
+ }
163
+ }
164
+ }
165
+ clark.tracer.annotate(span, {
166
+ error: lastError,
167
+ metadata: {
168
+ durationMs: Math.round(performance.now() - startedAt),
169
+ attempts: KNOWLEDGE_SYNC_MAX_ATTEMPTS,
170
+ },
171
+ });
172
+ throw lastError;
173
+ })
174
+ .catch(logSyncFailure);
175
+ }
176
+ catch (error) {
177
+ logSyncFailure(error);
178
+ }
179
+ }
180
+ /**
181
+ * Verifies a just-completed local write is actually visible on disk before
182
+ * `saveKnowledgeAndNotify` reports success. This is the correctness check
183
+ * ENG-6956 needed: the write path and its only real consumer both operate on
184
+ * the same local disk in the same process, so a read-after-write here is the
185
+ * cheapest possible proof the save is real. Throws (to be caught by the
186
+ * per-entry error handling in `saveKnowledgeAndNotify`) if the disk state
187
+ * doesn't match what was just written.
188
+ */
189
+ async function verifyKnowledgeWriteVisible(manager, expected) {
190
+ if ("deletedName" in expected) {
191
+ const stillPresent = await manager.findFactByName(expected.deletedName);
192
+ if (stillPresent) {
193
+ throw new Error(`Knowledge entry '${expected.deletedName}' still present after delete`);
194
+ }
195
+ return;
196
+ }
197
+ const written = await manager.findFactByName(expected.name);
198
+ if (!written || written.content.trim() !== expected.content.trim()) {
199
+ throw new Error(`Knowledge entry '${expected.name}' not visible on disk after write`);
200
+ }
201
+ }
202
+ /**
203
+ * Persist approved knowledge entries to disk, verify each write is visible
204
+ * via a local read-after-write, and send an `app_knowledge_saved` message.
205
+ * `app_knowledge_saved` is reported only once local disk confirms the write
206
+ * is real — never merely once `fs.writeFile` resolves and never gated on
207
+ * DBFS/durability sync (see
208
+ * `docs/adr/0003-knowledge-save-success-is-a-local-read-after-write.md`).
209
+ * On a per-entry failure (including a failed verification), sends a
210
+ * user-visible error message instead.
74
211
  */
75
212
  export async function saveKnowledgeAndNotify(clark, params, chatSessionStore, appRootDirPath, responseToMessageId, knowledgeEntries, selectedKnowledgeIndices, selectedScopesByIndex, logLabel) {
76
213
  const sendUserMessage = sendUserMessageChannel(clark, chatSessionStore);
@@ -147,6 +284,9 @@ export async function saveKnowledgeAndNotify(clark, params, chatSessionStore, ap
147
284
  continue;
148
285
  }
149
286
  await manager.deleteFact(existing.path);
287
+ await verifyKnowledgeWriteVisible(manager, {
288
+ deletedName: targetName,
289
+ });
150
290
  savedFacts.push({
151
291
  candidateIndex,
152
292
  scope: "app",
@@ -170,6 +310,10 @@ export async function saveKnowledgeAndNotify(clark, params, chatSessionStore, ap
170
310
  description: knowledgeEntry.description,
171
311
  content: knowledgeEntry.content,
172
312
  });
313
+ await verifyKnowledgeWriteVisible(manager, {
314
+ name: knowledgeEntry.name,
315
+ content: knowledgeEntry.content,
316
+ });
173
317
  savedFacts.push({
174
318
  candidateIndex,
175
319
  scope: "app",
@@ -189,6 +333,10 @@ export async function saveKnowledgeAndNotify(clark, params, chatSessionStore, ap
189
333
  description: knowledgeEntry.description,
190
334
  content: knowledgeEntry.content,
191
335
  });
336
+ await verifyKnowledgeWriteVisible(manager, {
337
+ name: knowledgeEntry.name,
338
+ content: knowledgeEntry.content,
339
+ });
192
340
  savedFacts.push({
193
341
  candidateIndex,
194
342
  scope: "app",
@@ -208,6 +356,10 @@ export async function saveKnowledgeAndNotify(clark, params, chatSessionStore, ap
208
356
  description: knowledgeEntry.description,
209
357
  content: knowledgeEntry.content,
210
358
  });
359
+ await verifyKnowledgeWriteVisible(manager, {
360
+ name: knowledgeEntry.name,
361
+ content: knowledgeEntry.content,
362
+ });
211
363
  savedFacts.push({
212
364
  candidateIndex,
213
365
  scope: "app",
@@ -249,9 +401,18 @@ export async function saveKnowledgeAndNotify(clark, params, chatSessionStore, ap
249
401
  }
250
402
  }
251
403
  }
404
+ const hasLocalAppWrite = saveOutcomes.some((outcome) => outcome.scope === "app" &&
405
+ (outcome.status === "created" ||
406
+ outcome.status === "updated" ||
407
+ outcome.status === "deleted"));
408
+ if (hasLocalAppWrite) {
409
+ // Best-effort durability only; never awaited and never gates the
410
+ // success message below — see ADR-0003.
411
+ scheduleKnowledgeDurabilitySync(clark, params);
412
+ }
413
+ const failedCount = saveOutcomes.filter((outcome) => outcome.status === "failed").length;
414
+ const skippedCount = saveOutcomes.filter((outcome) => outcome.status.startsWith("skipped_")).length;
252
415
  if (savedCount > 0) {
253
- const failedCount = saveOutcomes.filter((outcome) => outcome.status === "failed").length;
254
- const skippedCount = saveOutcomes.filter((outcome) => outcome.status.startsWith("skipped_")).length;
255
416
  const summaryParts = [`saved ${savedCount}`];
256
417
  if (skippedCount > 0) {
257
418
  summaryParts.push(`skipped ${skippedCount}`);
@@ -269,6 +430,25 @@ export async function saveKnowledgeAndNotify(clark, params, chatSessionStore, ap
269
430
  saveOutcomes,
270
431
  });
271
432
  }
433
+ else if (skippedCount > 0 && failedCount === 0) {
434
+ // Every entry resolved to skipped_not_found (e.g. a delete retried
435
+ // after it already succeeded). Nothing failed and nothing changed, but
436
+ // silence here reads as the approval vanishing; per-entry failures
437
+ // already get their own message in the catch block above, so this is
438
+ // the only outcome shape that would otherwise get no response at all.
439
+ try {
440
+ await sendUserMessage({
441
+ role: "assistant",
442
+ type: "text",
443
+ content: skippedCount === 1
444
+ ? "That knowledge entry was already removed; nothing to do."
445
+ : "Those knowledge entries were already removed; nothing to do.",
446
+ });
447
+ }
448
+ catch {
449
+ // socket may have dropped; nothing further to do
450
+ }
451
+ }
272
452
  clark.updateContext((ctx) => ({
273
453
  ...ctx,
274
454
  recentKnowledgeSaveOutcomes: saveOutcomes.slice(-25),