@code-yeongyu/senpi 2026.5.19 → 2026.5.20-2

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 (580) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/dist/bun/cli.d.ts.map +1 -1
  3. package/dist/bun/cli.js.map +1 -1
  4. package/dist/cli/args.d.ts +1 -1
  5. package/dist/cli/args.d.ts.map +1 -1
  6. package/dist/cli/args.js.map +1 -1
  7. package/dist/cli/config-selector.d.ts +2 -2
  8. package/dist/cli/config-selector.d.ts.map +1 -1
  9. package/dist/cli/config-selector.js.map +1 -1
  10. package/dist/cli/file-processor.d.ts.map +1 -1
  11. package/dist/cli/file-processor.js.map +1 -1
  12. package/dist/cli/initial-message.d.ts +1 -1
  13. package/dist/cli/initial-message.d.ts.map +1 -1
  14. package/dist/cli/initial-message.js.map +1 -1
  15. package/dist/cli/list-models.d.ts +1 -1
  16. package/dist/cli/list-models.d.ts.map +1 -1
  17. package/dist/cli/list-models.js.map +1 -1
  18. package/dist/cli/session-picker.d.ts +1 -1
  19. package/dist/cli/session-picker.d.ts.map +1 -1
  20. package/dist/cli/session-picker.js.map +1 -1
  21. package/dist/cli.d.ts.map +1 -1
  22. package/dist/cli.js.map +1 -1
  23. package/dist/config.d.ts.map +1 -1
  24. package/dist/config.js.map +1 -1
  25. package/dist/core/agent-session-runtime.d.ts +9 -9
  26. package/dist/core/agent-session-runtime.d.ts.map +1 -1
  27. package/dist/core/agent-session-runtime.js +2 -2
  28. package/dist/core/agent-session-runtime.js.map +1 -1
  29. package/dist/core/agent-session-services.d.ts +8 -8
  30. package/dist/core/agent-session-services.d.ts.map +1 -1
  31. package/dist/core/agent-session-services.js.map +1 -1
  32. package/dist/core/agent-session.d.ts +23 -14
  33. package/dist/core/agent-session.d.ts.map +1 -1
  34. package/dist/core/agent-session.js +36 -6
  35. package/dist/core/agent-session.js.map +1 -1
  36. package/dist/core/auth-guidance.d.ts.map +1 -1
  37. package/dist/core/auth-guidance.js.map +1 -1
  38. package/dist/core/auth-storage.d.ts +1 -1
  39. package/dist/core/auth-storage.d.ts.map +1 -1
  40. package/dist/core/auth-storage.js +1 -1
  41. package/dist/core/auth-storage.js.map +1 -1
  42. package/dist/core/bash-executor.d.ts +1 -1
  43. package/dist/core/bash-executor.d.ts.map +1 -1
  44. package/dist/core/bash-executor.js.map +1 -1
  45. package/dist/core/compaction/branch-summarization.d.ts +4 -4
  46. package/dist/core/compaction/branch-summarization.d.ts.map +1 -1
  47. package/dist/core/compaction/branch-summarization.js.map +1 -1
  48. package/dist/core/compaction/compaction.d.ts +2 -2
  49. package/dist/core/compaction/compaction.d.ts.map +1 -1
  50. package/dist/core/compaction/compaction.js.map +1 -1
  51. package/dist/core/compaction/index.d.ts +3 -3
  52. package/dist/core/compaction/index.d.ts.map +1 -1
  53. package/dist/core/compaction/index.js.map +1 -1
  54. package/dist/core/compaction/utils.d.ts.map +1 -1
  55. package/dist/core/compaction/utils.js.map +1 -1
  56. package/dist/core/dynamic-prompt/build.d.ts +1 -1
  57. package/dist/core/dynamic-prompt/build.d.ts.map +1 -1
  58. package/dist/core/dynamic-prompt/build.js.map +1 -1
  59. package/dist/core/dynamic-prompt/index.d.ts +12 -12
  60. package/dist/core/dynamic-prompt/index.d.ts.map +1 -1
  61. package/dist/core/dynamic-prompt/index.js.map +1 -1
  62. package/dist/core/dynamic-prompt/intent-gate.d.ts +1 -1
  63. package/dist/core/dynamic-prompt/intent-gate.d.ts.map +1 -1
  64. package/dist/core/dynamic-prompt/intent-gate.js.map +1 -1
  65. package/dist/core/dynamic-prompt/tool-categorization.d.ts +1 -1
  66. package/dist/core/dynamic-prompt/tool-categorization.d.ts.map +1 -1
  67. package/dist/core/dynamic-prompt/tool-categorization.js.map +1 -1
  68. package/dist/core/dynamic-prompt/tool-section.d.ts +1 -1
  69. package/dist/core/dynamic-prompt/tool-section.d.ts.map +1 -1
  70. package/dist/core/dynamic-prompt/tool-section.js.map +1 -1
  71. package/dist/core/exec.d.ts.map +1 -1
  72. package/dist/core/exec.js.map +1 -1
  73. package/dist/core/export-html/index.d.ts +1 -1
  74. package/dist/core/export-html/index.d.ts.map +1 -1
  75. package/dist/core/export-html/index.js.map +1 -1
  76. package/dist/core/export-html/tool-renderer.d.ts +2 -2
  77. package/dist/core/export-html/tool-renderer.d.ts.map +1 -1
  78. package/dist/core/export-html/tool-renderer.js.map +1 -1
  79. package/dist/core/extensions/builtin/anthropic-bash/index.d.ts +1 -1
  80. package/dist/core/extensions/builtin/anthropic-bash/index.d.ts.map +1 -1
  81. package/dist/core/extensions/builtin/anthropic-bash/index.js.map +1 -1
  82. package/dist/core/extensions/builtin/anthropic-web-search/index.d.ts +1 -1
  83. package/dist/core/extensions/builtin/anthropic-web-search/index.d.ts.map +1 -1
  84. package/dist/core/extensions/builtin/anthropic-web-search/index.js.map +1 -1
  85. package/dist/core/extensions/builtin/bash-timeout/index.d.ts +3 -3
  86. package/dist/core/extensions/builtin/bash-timeout/index.d.ts.map +1 -1
  87. package/dist/core/extensions/builtin/bash-timeout/index.js.map +1 -1
  88. package/dist/core/extensions/builtin/compaction/checkpoint-state.d.ts +1 -1
  89. package/dist/core/extensions/builtin/compaction/checkpoint-state.d.ts.map +1 -1
  90. package/dist/core/extensions/builtin/compaction/checkpoint-state.js.map +1 -1
  91. package/dist/core/extensions/builtin/compaction/circuit-breaker.d.ts +2 -2
  92. package/dist/core/extensions/builtin/compaction/circuit-breaker.d.ts.map +1 -1
  93. package/dist/core/extensions/builtin/compaction/circuit-breaker.js.map +1 -1
  94. package/dist/core/extensions/builtin/compaction/index.d.ts +1 -1
  95. package/dist/core/extensions/builtin/compaction/index.d.ts.map +1 -1
  96. package/dist/core/extensions/builtin/compaction/index.js.map +1 -1
  97. package/dist/core/extensions/builtin/compaction/openai-remote.d.ts +4 -3
  98. package/dist/core/extensions/builtin/compaction/openai-remote.d.ts.map +1 -1
  99. package/dist/core/extensions/builtin/compaction/openai-remote.js +88 -17
  100. package/dist/core/extensions/builtin/compaction/openai-remote.js.map +1 -1
  101. package/dist/core/extensions/builtin/compaction/per-turn-cap.d.ts +2 -2
  102. package/dist/core/extensions/builtin/compaction/per-turn-cap.d.ts.map +1 -1
  103. package/dist/core/extensions/builtin/compaction/per-turn-cap.js.map +1 -1
  104. package/dist/core/extensions/builtin/compaction/policy.d.ts +2 -2
  105. package/dist/core/extensions/builtin/compaction/policy.d.ts.map +1 -1
  106. package/dist/core/extensions/builtin/compaction/policy.js.map +1 -1
  107. package/dist/core/extensions/builtin/compaction/restoration-tracker.d.ts +1 -1
  108. package/dist/core/extensions/builtin/compaction/restoration-tracker.d.ts.map +1 -1
  109. package/dist/core/extensions/builtin/compaction/restoration-tracker.js.map +1 -1
  110. package/dist/core/extensions/builtin/compaction/speculative.d.ts +5 -5
  111. package/dist/core/extensions/builtin/compaction/speculative.d.ts.map +1 -1
  112. package/dist/core/extensions/builtin/compaction/speculative.js.map +1 -1
  113. package/dist/core/extensions/builtin/compaction/state.d.ts +1 -1
  114. package/dist/core/extensions/builtin/compaction/state.d.ts.map +1 -1
  115. package/dist/core/extensions/builtin/compaction/state.js.map +1 -1
  116. package/dist/core/extensions/builtin/compaction/todo-bridge.d.ts +2 -2
  117. package/dist/core/extensions/builtin/compaction/todo-bridge.d.ts.map +1 -1
  118. package/dist/core/extensions/builtin/compaction/todo-bridge.js.map +1 -1
  119. package/dist/core/extensions/builtin/diff.d.ts +1 -1
  120. package/dist/core/extensions/builtin/diff.d.ts.map +1 -1
  121. package/dist/core/extensions/builtin/diff.js.map +1 -1
  122. package/dist/core/extensions/builtin/files.d.ts +1 -1
  123. package/dist/core/extensions/builtin/files.d.ts.map +1 -1
  124. package/dist/core/extensions/builtin/files.js.map +1 -1
  125. package/dist/core/extensions/builtin/gpt-apply-patch/apply.d.ts +1 -1
  126. package/dist/core/extensions/builtin/gpt-apply-patch/apply.d.ts.map +1 -1
  127. package/dist/core/extensions/builtin/gpt-apply-patch/apply.js.map +1 -1
  128. package/dist/core/extensions/builtin/gpt-apply-patch/errors.d.ts +1 -1
  129. package/dist/core/extensions/builtin/gpt-apply-patch/errors.d.ts.map +1 -1
  130. package/dist/core/extensions/builtin/gpt-apply-patch/errors.js.map +1 -1
  131. package/dist/core/extensions/builtin/gpt-apply-patch/extension.d.ts +1 -1
  132. package/dist/core/extensions/builtin/gpt-apply-patch/extension.d.ts.map +1 -1
  133. package/dist/core/extensions/builtin/gpt-apply-patch/extension.js.map +1 -1
  134. package/dist/core/extensions/builtin/gpt-apply-patch/index.d.ts +11 -11
  135. package/dist/core/extensions/builtin/gpt-apply-patch/index.d.ts.map +1 -1
  136. package/dist/core/extensions/builtin/gpt-apply-patch/index.js.map +1 -1
  137. package/dist/core/extensions/builtin/gpt-apply-patch/params.d.ts +1 -1
  138. package/dist/core/extensions/builtin/gpt-apply-patch/params.d.ts.map +1 -1
  139. package/dist/core/extensions/builtin/gpt-apply-patch/params.js.map +1 -1
  140. package/dist/core/extensions/builtin/gpt-apply-patch/parser.d.ts +1 -1
  141. package/dist/core/extensions/builtin/gpt-apply-patch/parser.d.ts.map +1 -1
  142. package/dist/core/extensions/builtin/gpt-apply-patch/parser.js.map +1 -1
  143. package/dist/core/extensions/builtin/gpt-apply-patch/patch-replace.d.ts +1 -1
  144. package/dist/core/extensions/builtin/gpt-apply-patch/patch-replace.d.ts.map +1 -1
  145. package/dist/core/extensions/builtin/gpt-apply-patch/patch-replace.js.map +1 -1
  146. package/dist/core/extensions/builtin/gpt-apply-patch/preview-format.d.ts +1 -1
  147. package/dist/core/extensions/builtin/gpt-apply-patch/preview-format.d.ts.map +1 -1
  148. package/dist/core/extensions/builtin/gpt-apply-patch/preview-format.js.map +1 -1
  149. package/dist/core/extensions/builtin/gpt-apply-patch/preview.d.ts +1 -1
  150. package/dist/core/extensions/builtin/gpt-apply-patch/preview.d.ts.map +1 -1
  151. package/dist/core/extensions/builtin/gpt-apply-patch/preview.js.map +1 -1
  152. package/dist/core/extensions/builtin/gpt-apply-patch/streaming-parser.d.ts +1 -1
  153. package/dist/core/extensions/builtin/gpt-apply-patch/streaming-parser.d.ts.map +1 -1
  154. package/dist/core/extensions/builtin/gpt-apply-patch/streaming-parser.js.map +1 -1
  155. package/dist/core/extensions/builtin/gpt-apply-patch/streaming-render.d.ts +1 -1
  156. package/dist/core/extensions/builtin/gpt-apply-patch/streaming-render.d.ts.map +1 -1
  157. package/dist/core/extensions/builtin/gpt-apply-patch/streaming-render.js.map +1 -1
  158. package/dist/core/extensions/builtin/gpt-apply-patch/tool.d.ts +1 -1
  159. package/dist/core/extensions/builtin/gpt-apply-patch/tool.d.ts.map +1 -1
  160. package/dist/core/extensions/builtin/gpt-apply-patch/tool.js.map +1 -1
  161. package/dist/core/extensions/builtin/gpt-apply-patch/types.d.ts +2 -2
  162. package/dist/core/extensions/builtin/gpt-apply-patch/types.d.ts.map +1 -1
  163. package/dist/core/extensions/builtin/gpt-apply-patch/types.js.map +1 -1
  164. package/dist/core/extensions/builtin/index.d.ts +5 -5
  165. package/dist/core/extensions/builtin/index.d.ts.map +1 -1
  166. package/dist/core/extensions/builtin/index.js +2 -0
  167. package/dist/core/extensions/builtin/index.js.map +1 -1
  168. package/dist/core/extensions/builtin/kimi-web-search/index.d.ts +3 -0
  169. package/dist/core/extensions/builtin/kimi-web-search/index.d.ts.map +1 -0
  170. package/dist/core/extensions/builtin/kimi-web-search/index.js +208 -0
  171. package/dist/core/extensions/builtin/kimi-web-search/index.js.map +1 -0
  172. package/dist/core/extensions/builtin/openai-web-search/index.d.ts +1 -1
  173. package/dist/core/extensions/builtin/openai-web-search/index.d.ts.map +1 -1
  174. package/dist/core/extensions/builtin/openai-web-search/index.js.map +1 -1
  175. package/dist/core/extensions/builtin/permission-system/arity.d.ts +3 -3
  176. package/dist/core/extensions/builtin/permission-system/arity.d.ts.map +1 -1
  177. package/dist/core/extensions/builtin/permission-system/arity.js +155 -158
  178. package/dist/core/extensions/builtin/permission-system/arity.js.map +1 -1
  179. package/dist/core/extensions/builtin/permission-system/cli.d.ts +2 -2
  180. package/dist/core/extensions/builtin/permission-system/cli.d.ts.map +1 -1
  181. package/dist/core/extensions/builtin/permission-system/cli.js.map +1 -1
  182. package/dist/core/extensions/builtin/permission-system/config.d.ts +1 -1
  183. package/dist/core/extensions/builtin/permission-system/config.d.ts.map +1 -1
  184. package/dist/core/extensions/builtin/permission-system/config.js.map +1 -1
  185. package/dist/core/extensions/builtin/permission-system/evaluate.d.ts +1 -1
  186. package/dist/core/extensions/builtin/permission-system/evaluate.d.ts.map +1 -1
  187. package/dist/core/extensions/builtin/permission-system/evaluate.js.map +1 -1
  188. package/dist/core/extensions/builtin/permission-system/events.d.ts +2 -2
  189. package/dist/core/extensions/builtin/permission-system/events.d.ts.map +1 -1
  190. package/dist/core/extensions/builtin/permission-system/events.js.map +1 -1
  191. package/dist/core/extensions/builtin/permission-system/index.d.ts +1 -1
  192. package/dist/core/extensions/builtin/permission-system/index.d.ts.map +1 -1
  193. package/dist/core/extensions/builtin/permission-system/index.js.map +1 -1
  194. package/dist/core/extensions/builtin/permission-system/non-interactive.d.ts +1 -1
  195. package/dist/core/extensions/builtin/permission-system/non-interactive.d.ts.map +1 -1
  196. package/dist/core/extensions/builtin/permission-system/non-interactive.js.map +1 -1
  197. package/dist/core/extensions/builtin/permission-system/parsers.d.ts +1 -1
  198. package/dist/core/extensions/builtin/permission-system/parsers.d.ts.map +1 -1
  199. package/dist/core/extensions/builtin/permission-system/parsers.js.map +1 -1
  200. package/dist/core/extensions/builtin/permission-system/prompt.d.ts +2 -2
  201. package/dist/core/extensions/builtin/permission-system/prompt.d.ts.map +1 -1
  202. package/dist/core/extensions/builtin/permission-system/prompt.js.map +1 -1
  203. package/dist/core/extensions/builtin/permission-system/service.d.ts +2 -2
  204. package/dist/core/extensions/builtin/permission-system/service.d.ts.map +1 -1
  205. package/dist/core/extensions/builtin/permission-system/service.js.map +1 -1
  206. package/dist/core/extensions/builtin/permission-system/settings.d.ts +2 -2
  207. package/dist/core/extensions/builtin/permission-system/settings.d.ts.map +1 -1
  208. package/dist/core/extensions/builtin/permission-system/settings.js.map +1 -1
  209. package/dist/core/extensions/builtin/permission-system/storage.d.ts +1 -1
  210. package/dist/core/extensions/builtin/permission-system/storage.d.ts.map +1 -1
  211. package/dist/core/extensions/builtin/permission-system/storage.js.map +1 -1
  212. package/dist/core/extensions/builtin/permission-system/types.d.ts +2 -2
  213. package/dist/core/extensions/builtin/permission-system/types.d.ts.map +1 -1
  214. package/dist/core/extensions/builtin/permission-system/types.js +4 -4
  215. package/dist/core/extensions/builtin/permission-system/types.js.map +1 -1
  216. package/dist/core/extensions/builtin/permission-system/wildcard.d.ts +3 -3
  217. package/dist/core/extensions/builtin/permission-system/wildcard.d.ts.map +1 -1
  218. package/dist/core/extensions/builtin/permission-system/wildcard.js +4 -7
  219. package/dist/core/extensions/builtin/permission-system/wildcard.js.map +1 -1
  220. package/dist/core/extensions/builtin/prompt-preset/claude-opus-4-5.d.ts +1 -1
  221. package/dist/core/extensions/builtin/prompt-preset/claude-opus-4-5.d.ts.map +1 -1
  222. package/dist/core/extensions/builtin/prompt-preset/claude-opus-4-5.js.map +1 -1
  223. package/dist/core/extensions/builtin/prompt-preset/claude-opus-4-6.d.ts +1 -1
  224. package/dist/core/extensions/builtin/prompt-preset/claude-opus-4-6.d.ts.map +1 -1
  225. package/dist/core/extensions/builtin/prompt-preset/claude-opus-4-6.js.map +1 -1
  226. package/dist/core/extensions/builtin/prompt-preset/claude-opus-4-7.d.ts +1 -1
  227. package/dist/core/extensions/builtin/prompt-preset/claude-opus-4-7.d.ts.map +1 -1
  228. package/dist/core/extensions/builtin/prompt-preset/claude-opus-4-7.js.map +1 -1
  229. package/dist/core/extensions/builtin/prompt-preset/gpt-5.2.d.ts +1 -1
  230. package/dist/core/extensions/builtin/prompt-preset/gpt-5.2.d.ts.map +1 -1
  231. package/dist/core/extensions/builtin/prompt-preset/gpt-5.2.js.map +1 -1
  232. package/dist/core/extensions/builtin/prompt-preset/gpt-5.3-codex.d.ts +1 -1
  233. package/dist/core/extensions/builtin/prompt-preset/gpt-5.3-codex.d.ts.map +1 -1
  234. package/dist/core/extensions/builtin/prompt-preset/gpt-5.3-codex.js.map +1 -1
  235. package/dist/core/extensions/builtin/prompt-preset/gpt-5.4.d.ts +1 -1
  236. package/dist/core/extensions/builtin/prompt-preset/gpt-5.4.d.ts.map +1 -1
  237. package/dist/core/extensions/builtin/prompt-preset/gpt-5.4.js.map +1 -1
  238. package/dist/core/extensions/builtin/prompt-preset/gpt-5.5.d.ts +1 -1
  239. package/dist/core/extensions/builtin/prompt-preset/gpt-5.5.d.ts.map +1 -1
  240. package/dist/core/extensions/builtin/prompt-preset/gpt-5.5.js.map +1 -1
  241. package/dist/core/extensions/builtin/prompt-preset/gpt-5.d.ts +1 -1
  242. package/dist/core/extensions/builtin/prompt-preset/gpt-5.d.ts.map +1 -1
  243. package/dist/core/extensions/builtin/prompt-preset/gpt-5.js.map +1 -1
  244. package/dist/core/extensions/builtin/prompt-preset/index.d.ts +1 -1
  245. package/dist/core/extensions/builtin/prompt-preset/index.d.ts.map +1 -1
  246. package/dist/core/extensions/builtin/prompt-preset/index.js.map +1 -1
  247. package/dist/core/extensions/builtin/prompt-preset/kimi-k2-6.d.ts +1 -1
  248. package/dist/core/extensions/builtin/prompt-preset/kimi-k2-6.d.ts.map +1 -1
  249. package/dist/core/extensions/builtin/prompt-preset/kimi-k2-6.js.map +1 -1
  250. package/dist/core/extensions/builtin/prompt-preset/presets.d.ts +3 -3
  251. package/dist/core/extensions/builtin/prompt-preset/presets.d.ts.map +1 -1
  252. package/dist/core/extensions/builtin/prompt-preset/presets.js.map +1 -1
  253. package/dist/core/extensions/builtin/prompt-preset/settings.d.ts +1 -1
  254. package/dist/core/extensions/builtin/prompt-preset/settings.d.ts.map +1 -1
  255. package/dist/core/extensions/builtin/prompt-preset/settings.js.map +1 -1
  256. package/dist/core/extensions/builtin/prompt-url-widget.d.ts +1 -1
  257. package/dist/core/extensions/builtin/prompt-url-widget.d.ts.map +1 -1
  258. package/dist/core/extensions/builtin/prompt-url-widget.js.map +1 -1
  259. package/dist/core/extensions/builtin/redraws.d.ts +1 -1
  260. package/dist/core/extensions/builtin/redraws.d.ts.map +1 -1
  261. package/dist/core/extensions/builtin/redraws.js.map +1 -1
  262. package/dist/core/extensions/builtin/service-tier.d.ts +1 -1
  263. package/dist/core/extensions/builtin/service-tier.d.ts.map +1 -1
  264. package/dist/core/extensions/builtin/service-tier.js.map +1 -1
  265. package/dist/core/extensions/builtin/system-messages.d.ts +2 -2
  266. package/dist/core/extensions/builtin/system-messages.d.ts.map +1 -1
  267. package/dist/core/extensions/builtin/system-messages.js.map +1 -1
  268. package/dist/core/extensions/builtin/todotools/continuation/index.d.ts +1 -1
  269. package/dist/core/extensions/builtin/todotools/continuation/index.d.ts.map +1 -1
  270. package/dist/core/extensions/builtin/todotools/continuation/index.js.map +1 -1
  271. package/dist/core/extensions/builtin/todotools/continuation/prompt.d.ts +1 -1
  272. package/dist/core/extensions/builtin/todotools/continuation/prompt.d.ts.map +1 -1
  273. package/dist/core/extensions/builtin/todotools/continuation/prompt.js.map +1 -1
  274. package/dist/core/extensions/builtin/todotools/continuation/runtime.d.ts +2 -2
  275. package/dist/core/extensions/builtin/todotools/continuation/runtime.d.ts.map +1 -1
  276. package/dist/core/extensions/builtin/todotools/continuation/runtime.js.map +1 -1
  277. package/dist/core/extensions/builtin/todotools/index.d.ts +3 -3
  278. package/dist/core/extensions/builtin/todotools/index.d.ts.map +1 -1
  279. package/dist/core/extensions/builtin/todotools/index.js.map +1 -1
  280. package/dist/core/extensions/builtin/todotools/state.d.ts.map +1 -1
  281. package/dist/core/extensions/builtin/todotools/state.js.map +1 -1
  282. package/dist/core/extensions/builtin/todotools/system-messages.d.ts +1 -1
  283. package/dist/core/extensions/builtin/todotools/system-messages.d.ts.map +1 -1
  284. package/dist/core/extensions/builtin/todotools/system-messages.js.map +1 -1
  285. package/dist/core/extensions/builtin/todotools/tools/todoread.d.ts +2 -2
  286. package/dist/core/extensions/builtin/todotools/tools/todoread.d.ts.map +1 -1
  287. package/dist/core/extensions/builtin/todotools/tools/todoread.js.map +1 -1
  288. package/dist/core/extensions/builtin/todotools/tools/todowrite.d.ts +2 -2
  289. package/dist/core/extensions/builtin/todotools/tools/todowrite.d.ts.map +1 -1
  290. package/dist/core/extensions/builtin/todotools/tools/todowrite.js.map +1 -1
  291. package/dist/core/extensions/builtin/tool-pair-guard/index.d.ts +1 -1
  292. package/dist/core/extensions/builtin/tool-pair-guard/index.d.ts.map +1 -1
  293. package/dist/core/extensions/builtin/tool-pair-guard/index.js.map +1 -1
  294. package/dist/core/extensions/builtin/tps.d.ts +1 -1
  295. package/dist/core/extensions/builtin/tps.d.ts.map +1 -1
  296. package/dist/core/extensions/builtin/tps.js.map +1 -1
  297. package/dist/core/extensions/index.d.ts +8 -8
  298. package/dist/core/extensions/index.d.ts.map +1 -1
  299. package/dist/core/extensions/index.js.map +1 -1
  300. package/dist/core/extensions/loader.d.ts +2 -2
  301. package/dist/core/extensions/loader.d.ts.map +1 -1
  302. package/dist/core/extensions/loader.js.map +1 -1
  303. package/dist/core/extensions/runner.d.ts +32 -6
  304. package/dist/core/extensions/runner.d.ts.map +1 -1
  305. package/dist/core/extensions/runner.js +109 -5
  306. package/dist/core/extensions/runner.js.map +1 -1
  307. package/dist/core/extensions/types.d.ts +19 -19
  308. package/dist/core/extensions/types.d.ts.map +1 -1
  309. package/dist/core/extensions/types.js.map +1 -1
  310. package/dist/core/extensions/wrapper.d.ts +2 -2
  311. package/dist/core/extensions/wrapper.d.ts.map +1 -1
  312. package/dist/core/extensions/wrapper.js.map +1 -1
  313. package/dist/core/footer-data-provider.d.ts.map +1 -1
  314. package/dist/core/footer-data-provider.js.map +1 -1
  315. package/dist/core/index.d.ts +8 -8
  316. package/dist/core/index.d.ts.map +1 -1
  317. package/dist/core/index.js.map +1 -1
  318. package/dist/core/keybindings.d.ts.map +1 -1
  319. package/dist/core/keybindings.js.map +1 -1
  320. package/dist/core/model-registry.d.ts +4 -4
  321. package/dist/core/model-registry.d.ts.map +1 -1
  322. package/dist/core/model-registry.js +2 -2
  323. package/dist/core/model-registry.js.map +1 -1
  324. package/dist/core/model-resolver.d.ts +2 -2
  325. package/dist/core/model-resolver.d.ts.map +1 -1
  326. package/dist/core/model-resolver.js.map +1 -1
  327. package/dist/core/package-manager.d.ts +1 -1
  328. package/dist/core/package-manager.d.ts.map +1 -1
  329. package/dist/core/package-manager.js.map +1 -1
  330. package/dist/core/prompt-templates.d.ts +1 -1
  331. package/dist/core/prompt-templates.d.ts.map +1 -1
  332. package/dist/core/prompt-templates.js.map +1 -1
  333. package/dist/core/resolve-config-value.d.ts.map +1 -1
  334. package/dist/core/resolve-config-value.js.map +1 -1
  335. package/dist/core/resource-loader.d.ts +9 -9
  336. package/dist/core/resource-loader.d.ts.map +1 -1
  337. package/dist/core/resource-loader.js.map +1 -1
  338. package/dist/core/sdk.d.ts +14 -14
  339. package/dist/core/sdk.d.ts.map +1 -1
  340. package/dist/core/sdk.js +7 -5
  341. package/dist/core/sdk.js.map +1 -1
  342. package/dist/core/session-manager.d.ts +1 -1
  343. package/dist/core/session-manager.d.ts.map +1 -1
  344. package/dist/core/session-manager.js.map +1 -1
  345. package/dist/core/settings-manager.d.ts +1 -1
  346. package/dist/core/settings-manager.d.ts.map +1 -1
  347. package/dist/core/settings-manager.js +2 -1
  348. package/dist/core/settings-manager.js.map +1 -1
  349. package/dist/core/skills.d.ts +2 -2
  350. package/dist/core/skills.d.ts.map +1 -1
  351. package/dist/core/skills.js.map +1 -1
  352. package/dist/core/slash-commands.d.ts +1 -1
  353. package/dist/core/slash-commands.d.ts.map +1 -1
  354. package/dist/core/slash-commands.js.map +1 -1
  355. package/dist/core/source-info.d.ts +1 -1
  356. package/dist/core/source-info.d.ts.map +1 -1
  357. package/dist/core/source-info.js.map +1 -1
  358. package/dist/core/system-prompt.d.ts +1 -1
  359. package/dist/core/system-prompt.d.ts.map +1 -1
  360. package/dist/core/system-prompt.js +1 -0
  361. package/dist/core/system-prompt.js.map +1 -1
  362. package/dist/core/telemetry.d.ts +1 -1
  363. package/dist/core/telemetry.d.ts.map +1 -1
  364. package/dist/core/telemetry.js.map +1 -1
  365. package/dist/core/tools/bash.d.ts +2 -2
  366. package/dist/core/tools/bash.d.ts.map +1 -1
  367. package/dist/core/tools/bash.js.map +1 -1
  368. package/dist/core/tools/diff-render.d.ts.map +1 -1
  369. package/dist/core/tools/diff-render.js.map +1 -1
  370. package/dist/core/tools/edit-diff.d.ts.map +1 -1
  371. package/dist/core/tools/edit-diff.js.map +1 -1
  372. package/dist/core/tools/edit.d.ts +2 -2
  373. package/dist/core/tools/edit.d.ts.map +1 -1
  374. package/dist/core/tools/edit.js.map +1 -1
  375. package/dist/core/tools/find.d.ts +2 -2
  376. package/dist/core/tools/find.d.ts.map +1 -1
  377. package/dist/core/tools/find.js.map +1 -1
  378. package/dist/core/tools/grep.d.ts +2 -2
  379. package/dist/core/tools/grep.d.ts.map +1 -1
  380. package/dist/core/tools/grep.js.map +1 -1
  381. package/dist/core/tools/index.d.ts +17 -17
  382. package/dist/core/tools/index.d.ts.map +1 -1
  383. package/dist/core/tools/index.js.map +1 -1
  384. package/dist/core/tools/ls.d.ts +2 -2
  385. package/dist/core/tools/ls.d.ts.map +1 -1
  386. package/dist/core/tools/ls.js.map +1 -1
  387. package/dist/core/tools/output-accumulator.d.ts +1 -1
  388. package/dist/core/tools/output-accumulator.d.ts.map +1 -1
  389. package/dist/core/tools/output-accumulator.js.map +1 -1
  390. package/dist/core/tools/read.d.ts +2 -2
  391. package/dist/core/tools/read.d.ts.map +1 -1
  392. package/dist/core/tools/read.js.map +1 -1
  393. package/dist/core/tools/render-utils.d.ts.map +1 -1
  394. package/dist/core/tools/render-utils.js.map +1 -1
  395. package/dist/core/tools/tool-definition-wrapper.d.ts +1 -1
  396. package/dist/core/tools/tool-definition-wrapper.d.ts.map +1 -1
  397. package/dist/core/tools/tool-definition-wrapper.js.map +1 -1
  398. package/dist/core/tools/write.d.ts +1 -1
  399. package/dist/core/tools/write.d.ts.map +1 -1
  400. package/dist/core/tools/write.js.map +1 -1
  401. package/dist/index.d.ts +28 -27
  402. package/dist/index.d.ts.map +1 -1
  403. package/dist/index.js +1 -0
  404. package/dist/index.js.map +1 -1
  405. package/dist/main.d.ts +1 -1
  406. package/dist/main.d.ts.map +1 -1
  407. package/dist/main.js +1 -0
  408. package/dist/main.js.map +1 -1
  409. package/dist/migrations.d.ts.map +1 -1
  410. package/dist/migrations.js.map +1 -1
  411. package/dist/modes/index.d.ts +5 -5
  412. package/dist/modes/index.d.ts.map +1 -1
  413. package/dist/modes/index.js.map +1 -1
  414. package/dist/modes/interactive/components/armin.d.ts.map +1 -1
  415. package/dist/modes/interactive/components/armin.js.map +1 -1
  416. package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
  417. package/dist/modes/interactive/components/assistant-message.js.map +1 -1
  418. package/dist/modes/interactive/components/bash-execution.d.ts +1 -1
  419. package/dist/modes/interactive/components/bash-execution.d.ts.map +1 -1
  420. package/dist/modes/interactive/components/bash-execution.js.map +1 -1
  421. package/dist/modes/interactive/components/bordered-loader.d.ts +1 -1
  422. package/dist/modes/interactive/components/bordered-loader.d.ts.map +1 -1
  423. package/dist/modes/interactive/components/bordered-loader.js.map +1 -1
  424. package/dist/modes/interactive/components/branch-summary-message.d.ts +1 -1
  425. package/dist/modes/interactive/components/branch-summary-message.d.ts.map +1 -1
  426. package/dist/modes/interactive/components/branch-summary-message.js.map +1 -1
  427. package/dist/modes/interactive/components/compaction-summary-message.d.ts +1 -1
  428. package/dist/modes/interactive/components/compaction-summary-message.d.ts.map +1 -1
  429. package/dist/modes/interactive/components/compaction-summary-message.js.map +1 -1
  430. package/dist/modes/interactive/components/config-selector.d.ts +2 -2
  431. package/dist/modes/interactive/components/config-selector.d.ts.map +1 -1
  432. package/dist/modes/interactive/components/config-selector.js.map +1 -1
  433. package/dist/modes/interactive/components/countdown-timer.d.ts +2 -2
  434. package/dist/modes/interactive/components/countdown-timer.d.ts.map +1 -1
  435. package/dist/modes/interactive/components/countdown-timer.js +2 -2
  436. package/dist/modes/interactive/components/countdown-timer.js.map +1 -1
  437. package/dist/modes/interactive/components/custom-editor.d.ts +1 -1
  438. package/dist/modes/interactive/components/custom-editor.d.ts.map +1 -1
  439. package/dist/modes/interactive/components/custom-editor.js.map +1 -1
  440. package/dist/modes/interactive/components/custom-message.d.ts +2 -2
  441. package/dist/modes/interactive/components/custom-message.d.ts.map +1 -1
  442. package/dist/modes/interactive/components/custom-message.js.map +1 -1
  443. package/dist/modes/interactive/components/daxnuts.d.ts.map +1 -1
  444. package/dist/modes/interactive/components/daxnuts.js.map +1 -1
  445. package/dist/modes/interactive/components/diff.d.ts.map +1 -1
  446. package/dist/modes/interactive/components/diff.js.map +1 -1
  447. package/dist/modes/interactive/components/dynamic-border.d.ts.map +1 -1
  448. package/dist/modes/interactive/components/dynamic-border.js.map +1 -1
  449. package/dist/modes/interactive/components/earendil-announcement.d.ts.map +1 -1
  450. package/dist/modes/interactive/components/earendil-announcement.js.map +1 -1
  451. package/dist/modes/interactive/components/extension-editor.d.ts +1 -1
  452. package/dist/modes/interactive/components/extension-editor.d.ts.map +1 -1
  453. package/dist/modes/interactive/components/extension-editor.js.map +1 -1
  454. package/dist/modes/interactive/components/extension-input.d.ts.map +1 -1
  455. package/dist/modes/interactive/components/extension-input.js.map +1 -1
  456. package/dist/modes/interactive/components/extension-selector.d.ts.map +1 -1
  457. package/dist/modes/interactive/components/extension-selector.js.map +1 -1
  458. package/dist/modes/interactive/components/favorite-models-selector.d.ts +1 -1
  459. package/dist/modes/interactive/components/favorite-models-selector.d.ts.map +1 -1
  460. package/dist/modes/interactive/components/favorite-models-selector.js.map +1 -1
  461. package/dist/modes/interactive/components/footer.d.ts +3 -2
  462. package/dist/modes/interactive/components/footer.d.ts.map +1 -1
  463. package/dist/modes/interactive/components/footer.js +42 -42
  464. package/dist/modes/interactive/components/footer.js.map +1 -1
  465. package/dist/modes/interactive/components/index.d.ts +31 -31
  466. package/dist/modes/interactive/components/index.d.ts.map +1 -1
  467. package/dist/modes/interactive/components/index.js.map +1 -1
  468. package/dist/modes/interactive/components/keybinding-hints.d.ts.map +1 -1
  469. package/dist/modes/interactive/components/keybinding-hints.js.map +1 -1
  470. package/dist/modes/interactive/components/login-dialog.d.ts +1 -1
  471. package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -1
  472. package/dist/modes/interactive/components/login-dialog.js +2 -2
  473. package/dist/modes/interactive/components/login-dialog.js.map +1 -1
  474. package/dist/modes/interactive/components/model-selector.d.ts +3 -3
  475. package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
  476. package/dist/modes/interactive/components/model-selector.js.map +1 -1
  477. package/dist/modes/interactive/components/oauth-selector.d.ts +1 -1
  478. package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -1
  479. package/dist/modes/interactive/components/oauth-selector.js.map +1 -1
  480. package/dist/modes/interactive/components/session-selector-search.d.ts +1 -1
  481. package/dist/modes/interactive/components/session-selector-search.d.ts.map +1 -1
  482. package/dist/modes/interactive/components/session-selector-search.js.map +1 -1
  483. package/dist/modes/interactive/components/session-selector.d.ts +3 -3
  484. package/dist/modes/interactive/components/session-selector.d.ts.map +1 -1
  485. package/dist/modes/interactive/components/session-selector.js.map +1 -1
  486. package/dist/modes/interactive/components/settings-selector.d.ts +1 -1
  487. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  488. package/dist/modes/interactive/components/settings-selector.js.map +1 -1
  489. package/dist/modes/interactive/components/show-images-selector.d.ts.map +1 -1
  490. package/dist/modes/interactive/components/show-images-selector.js.map +1 -1
  491. package/dist/modes/interactive/components/skill-invocation-message.d.ts +1 -1
  492. package/dist/modes/interactive/components/skill-invocation-message.d.ts.map +1 -1
  493. package/dist/modes/interactive/components/skill-invocation-message.js.map +1 -1
  494. package/dist/modes/interactive/components/theme-selector.d.ts.map +1 -1
  495. package/dist/modes/interactive/components/theme-selector.js.map +1 -1
  496. package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -1
  497. package/dist/modes/interactive/components/thinking-selector.js.map +1 -1
  498. package/dist/modes/interactive/components/tool-execution.d.ts +1 -1
  499. package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
  500. package/dist/modes/interactive/components/tool-execution.js.map +1 -1
  501. package/dist/modes/interactive/components/tree-selector.d.ts +1 -1
  502. package/dist/modes/interactive/components/tree-selector.d.ts.map +1 -1
  503. package/dist/modes/interactive/components/tree-selector.js.map +1 -1
  504. package/dist/modes/interactive/components/user-message-selector.d.ts.map +1 -1
  505. package/dist/modes/interactive/components/user-message-selector.js.map +1 -1
  506. package/dist/modes/interactive/components/user-message.d.ts.map +1 -1
  507. package/dist/modes/interactive/components/user-message.js.map +1 -1
  508. package/dist/modes/interactive/interactive-mode.d.ts +10 -3
  509. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  510. package/dist/modes/interactive/interactive-mode.js +67 -7
  511. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  512. package/dist/modes/interactive/session-info-format.d.ts +1 -1
  513. package/dist/modes/interactive/session-info-format.d.ts.map +1 -1
  514. package/dist/modes/interactive/session-info-format.js.map +1 -1
  515. package/dist/modes/interactive/startup-tools.d.ts.map +1 -1
  516. package/dist/modes/interactive/startup-tools.js.map +1 -1
  517. package/dist/modes/interactive/theme/theme.d.ts +1 -1
  518. package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  519. package/dist/modes/interactive/theme/theme.js.map +1 -1
  520. package/dist/modes/interactive/working-status.d.ts +3 -0
  521. package/dist/modes/interactive/working-status.d.ts.map +1 -1
  522. package/dist/modes/interactive/working-status.js +10 -0
  523. package/dist/modes/interactive/working-status.js.map +1 -1
  524. package/dist/modes/neo-mode.d.ts +20 -1
  525. package/dist/modes/neo-mode.d.ts.map +1 -1
  526. package/dist/modes/neo-mode.js +30 -2
  527. package/dist/modes/neo-mode.js.map +1 -1
  528. package/dist/modes/print-mode.d.ts +1 -1
  529. package/dist/modes/print-mode.d.ts.map +1 -1
  530. package/dist/modes/print-mode.js.map +1 -1
  531. package/dist/modes/rpc/rpc-client.d.ts +5 -5
  532. package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
  533. package/dist/modes/rpc/rpc-client.js +1 -1
  534. package/dist/modes/rpc/rpc-client.js.map +1 -1
  535. package/dist/modes/rpc/rpc-mode.d.ts +2 -2
  536. package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
  537. package/dist/modes/rpc/rpc-mode.js.map +1 -1
  538. package/dist/modes/rpc/rpc-types.d.ts +4 -4
  539. package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
  540. package/dist/modes/rpc/rpc-types.js.map +1 -1
  541. package/dist/neo-tui-bin/senpi-neo-tui-linux-x64 +0 -0
  542. package/dist/package-manager-cli.d.ts.map +1 -1
  543. package/dist/package-manager-cli.js +40 -1
  544. package/dist/package-manager-cli.js.map +1 -1
  545. package/dist/utils/changelog.d.ts +1 -1
  546. package/dist/utils/changelog.d.ts.map +1 -1
  547. package/dist/utils/changelog.js.map +1 -1
  548. package/dist/utils/clipboard-image.d.ts.map +1 -1
  549. package/dist/utils/clipboard-image.js.map +1 -1
  550. package/dist/utils/clipboard.d.ts.map +1 -1
  551. package/dist/utils/clipboard.js.map +1 -1
  552. package/dist/utils/exif-orientation.d.ts +1 -1
  553. package/dist/utils/exif-orientation.d.ts.map +1 -1
  554. package/dist/utils/exif-orientation.js.map +1 -1
  555. package/dist/utils/image-convert.d.ts.map +1 -1
  556. package/dist/utils/image-convert.js.map +1 -1
  557. package/dist/utils/image-resize.d.ts.map +1 -1
  558. package/dist/utils/image-resize.js.map +1 -1
  559. package/dist/utils/pi-user-agent.d.ts.map +1 -1
  560. package/dist/utils/pi-user-agent.js.map +1 -1
  561. package/dist/utils/shell.d.ts.map +1 -1
  562. package/dist/utils/shell.js.map +1 -1
  563. package/dist/utils/syntax-highlight.d.ts.map +1 -1
  564. package/dist/utils/syntax-highlight.js.map +1 -1
  565. package/dist/utils/tools-manager.d.ts.map +1 -1
  566. package/dist/utils/tools-manager.js.map +1 -1
  567. package/dist/utils/version-check.d.ts +2 -1
  568. package/dist/utils/version-check.d.ts.map +1 -1
  569. package/dist/utils/version-check.js +5 -4
  570. package/dist/utils/version-check.js.map +1 -1
  571. package/dist/utils/windows-self-update.d.ts.map +1 -1
  572. package/dist/utils/windows-self-update.js.map +1 -1
  573. package/docs/settings.md +1 -1
  574. package/examples/extensions/custom-provider-gitlab-duo/test.ts +1 -1
  575. package/examples/extensions/doom-overlay/doom-component.ts +2 -2
  576. package/examples/extensions/doom-overlay/index.ts +3 -3
  577. package/examples/extensions/overlay-qa-tests.ts +97 -66
  578. package/examples/extensions/overlay-test.ts +7 -4
  579. package/examples/extensions/plan-mode/index.ts +1 -1
  580. package/package.json +4 -3
@@ -1 +1 @@
1
- {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/permission-system/storage.ts"],"names":[],"mappings":"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","sourcesContent":["import * as fs from \"node:fs\";\nimport * as path from \"node:path\";\nimport { CONFIG_DIR_NAME } from \"../../../../config.js\";\nimport type { Rule, Ruleset } from \"./types.js\";\n\nconst PERMISSIONS_FILE = \"permissions-approved.jsonl\";\n\nfunction getPermissionsPath(projectDir: string): string {\n\treturn path.join(projectDir, CONFIG_DIR_NAME, PERMISSIONS_FILE);\n}\n\nexport function loadApproved(projectDir: string): Ruleset {\n\tconst filePath = getPermissionsPath(projectDir);\n\n\tif (!fs.existsSync(filePath)) {\n\t\treturn [];\n\t}\n\n\tconst content = fs.readFileSync(filePath, \"utf-8\");\n\tconst lines = content.split(\"\\n\").filter((line) => line.trim() !== \"\");\n\n\tconst rules: Rule[] = [];\n\tfor (const line of lines) {\n\t\ttry {\n\t\t\tconst rule = JSON.parse(line) as Rule;\n\t\t\trules.push(rule);\n\t\t} catch {}\n\t}\n\n\treturn rules;\n}\n\nexport function appendApproved(projectDir: string, rules: Rule[]): void {\n\tif (rules.length === 0) {\n\t\treturn;\n\t}\n\n\tconst filePath = getPermissionsPath(projectDir);\n\tconst dir = path.dirname(filePath);\n\n\tif (!fs.existsSync(dir)) {\n\t\tfs.mkdirSync(dir, { recursive: true });\n\t}\n\n\tconst lines = `${rules.map((rule) => JSON.stringify(rule)).join(\"\\n\")}\\n`;\n\tfs.appendFileSync(filePath, lines, { flag: \"a\" });\n}\n\nexport function clearApproved(projectDir: string): void {\n\tconst filePath = getPermissionsPath(projectDir);\n\n\tif (fs.existsSync(filePath)) {\n\t\tfs.unlinkSync(filePath);\n\t}\n}\n\nexport function compactApproved(projectDir: string): void {\n\tconst filePath = getPermissionsPath(projectDir);\n\n\tif (!fs.existsSync(filePath)) {\n\t\treturn;\n\t}\n\n\tconst rules = loadApproved(projectDir);\n\tconst seen = new Map<string, Rule>();\n\n\tfor (const rule of rules) {\n\t\tconst key = `${rule.permission}:${rule.pattern}`;\n\t\tseen.set(key, rule);\n\t}\n\n\tconst uniqueRules = Array.from(seen.values());\n\tconst lines = uniqueRules.map((rule) => JSON.stringify(rule)).join(\"\\n\");\n\tfs.writeFileSync(filePath, lines ? `${lines}\\n` : \"\", { flag: \"w\" });\n}\n"]}
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/permission-system/storage.ts"],"names":[],"mappings":"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","sourcesContent":["import * as fs from \"node:fs\";\nimport * as path from \"node:path\";\nimport { CONFIG_DIR_NAME } from \"../../../../config.ts\";\nimport type { Rule, Ruleset } from \"./types.ts\";\n\nconst PERMISSIONS_FILE = \"permissions-approved.jsonl\";\n\nfunction getPermissionsPath(projectDir: string): string {\n\treturn path.join(projectDir, CONFIG_DIR_NAME, PERMISSIONS_FILE);\n}\n\nexport function loadApproved(projectDir: string): Ruleset {\n\tconst filePath = getPermissionsPath(projectDir);\n\n\tif (!fs.existsSync(filePath)) {\n\t\treturn [];\n\t}\n\n\tconst content = fs.readFileSync(filePath, \"utf-8\");\n\tconst lines = content.split(\"\\n\").filter((line) => line.trim() !== \"\");\n\n\tconst rules: Rule[] = [];\n\tfor (const line of lines) {\n\t\ttry {\n\t\t\tconst rule = JSON.parse(line) as Rule;\n\t\t\trules.push(rule);\n\t\t} catch {}\n\t}\n\n\treturn rules;\n}\n\nexport function appendApproved(projectDir: string, rules: Rule[]): void {\n\tif (rules.length === 0) {\n\t\treturn;\n\t}\n\n\tconst filePath = getPermissionsPath(projectDir);\n\tconst dir = path.dirname(filePath);\n\n\tif (!fs.existsSync(dir)) {\n\t\tfs.mkdirSync(dir, { recursive: true });\n\t}\n\n\tconst lines = `${rules.map((rule) => JSON.stringify(rule)).join(\"\\n\")}\\n`;\n\tfs.appendFileSync(filePath, lines, { flag: \"a\" });\n}\n\nexport function clearApproved(projectDir: string): void {\n\tconst filePath = getPermissionsPath(projectDir);\n\n\tif (fs.existsSync(filePath)) {\n\t\tfs.unlinkSync(filePath);\n\t}\n}\n\nexport function compactApproved(projectDir: string): void {\n\tconst filePath = getPermissionsPath(projectDir);\n\n\tif (!fs.existsSync(filePath)) {\n\t\treturn;\n\t}\n\n\tconst rules = loadApproved(projectDir);\n\tconst seen = new Map<string, Rule>();\n\n\tfor (const rule of rules) {\n\t\tconst key = `${rule.permission}:${rule.pattern}`;\n\t\tseen.set(key, rule);\n\t}\n\n\tconst uniqueRules = Array.from(seen.values());\n\tconst lines = uniqueRules.map((rule) => JSON.stringify(rule)).join(\"\\n\");\n\tfs.writeFileSync(filePath, lines ? `${lines}\\n` : \"\", { flag: \"w\" });\n}\n"]}
@@ -40,14 +40,14 @@ export declare class RejectedError extends Error {
40
40
  }
41
41
  /** Error thrown when user rejects with feedback for correction */
42
42
  export declare class CorrectedError extends Error {
43
- readonly feedback: string;
44
43
  readonly _tag = "PermissionCorrectedError";
44
+ readonly feedback: string;
45
45
  constructor(feedback: string);
46
46
  }
47
47
  /** Error thrown when a rule denies the permission */
48
48
  export declare class DeniedError extends Error {
49
- readonly patterns: string[];
50
49
  readonly _tag = "PermissionDeniedError";
50
+ readonly patterns: string[];
51
51
  constructor(patterns: string[]);
52
52
  }
53
53
  /** Union of all permission-related errors */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/permission-system/types.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,MAAM,MAAM,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;AAE9C,qDAAqD;AACrD,MAAM,MAAM,IAAI,GAAG;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,6DAA6D;AAC7D,MAAM,MAAM,OAAO,GAAG,IAAI,EAAE,CAAC;AAE7B,6CAA6C;AAC7C,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAE/E,yCAAyC;AACzC,MAAM,MAAM,KAAK,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEjD,qEAAqE;AACrE,MAAM,MAAM,kBAAkB,GAAG,KAAK,GAAG,OAAO,CAAC;AAEjD,mDAAmD;AACnD,MAAM,MAAM,OAAO,GAAG;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,IAAI,CAAC,EAAE;QACN,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;KACf,CAAC;CACF,CAAC;AAEF,iDAAiD;AACjD,MAAM,MAAM,UAAU,GAAG;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,0DAA0D;AAC1D,qBAAa,aAAc,SAAQ,KAAK;IACvC,QAAQ,CAAC,IAAI,6BAA6B;IAE1C,cAGC;CACD;AAED,kEAAkE;AAClE,qBAAa,cAAe,SAAQ,KAAK;aAGZ,QAAQ,EAAE,MAAM;IAF5C,QAAQ,CAAC,IAAI,8BAA8B;IAE3C,YAA4B,QAAQ,EAAE,MAAM,EAG3C;CACD;AAED,qDAAqD;AACrD,qBAAa,WAAY,SAAQ,KAAK;aAGT,QAAQ,EAAE,MAAM,EAAE;IAF9C,QAAQ,CAAC,IAAI,2BAA2B;IAExC,YAA4B,QAAQ,EAAE,MAAM,EAAE,EAG7C;CACD;AAED,6CAA6C;AAC7C,MAAM,MAAM,eAAe,GAAG,aAAa,GAAG,cAAc,GAAG,WAAW,CAAC;AAE3E,qCAAqC;AACrC,MAAM,MAAM,YAAY,GAAG;IAC1B,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,MAAM,EAAE,CAAC,GAAG,EAAE,aAAa,GAAG,cAAc,KAAK,IAAI,CAAC;CACtD,CAAC","sourcesContent":["/** Permission action: allow (grant), deny (block), or ask (prompt user) */\nexport type Action = \"allow\" | \"deny\" | \"ask\";\n\n/** A single permission rule with pattern matching */\nexport type Rule = {\n\tpermission: string;\n\tpattern: string;\n\taction: Action;\n};\n\n/** Ordered list of rules for evaluation (last match wins) */\nexport type Ruleset = Rule[];\n\n/** Configuration format for settings.json */\nexport type PermissionConfig = Record<string, Action | Record<string, Action>>;\n\n/** User reply to a permission request */\nexport type Reply = \"once\" | \"always\" | \"reject\";\n\n/** Final permission decision: user reply or auto-grant from rules */\nexport type PermissionDecision = Reply | \"allow\";\n\n/** Permission request sent to user for approval */\nexport type Request = {\n\tid: string;\n\tsessionID: string;\n\tpermission: string;\n\tpatterns: string[];\n\talways: string[];\n\tmetadata: Record<string, unknown>;\n\ttool?: {\n\t\tmessageID: string;\n\t\tcallID: string;\n\t};\n};\n\n/** Input for replying to a permission request */\nexport type ReplyInput = {\n\trequestID: string;\n\treply: Reply;\n\tmessage?: string;\n};\n\n/** Error thrown when user rejects a permission request */\nexport class RejectedError extends Error {\n\treadonly _tag = \"PermissionRejectedError\";\n\n\tconstructor() {\n\t\tsuper(\"The user rejected permission to use this specific tool call.\");\n\t\tthis.name = \"RejectedError\";\n\t}\n}\n\n/** Error thrown when user rejects with feedback for correction */\nexport class CorrectedError extends Error {\n\treadonly _tag = \"PermissionCorrectedError\";\n\n\tconstructor(public readonly feedback: string) {\n\t\tsuper(`The user rejected permission to use this specific tool call with the following feedback: ${feedback}`);\n\t\tthis.name = \"CorrectedError\";\n\t}\n}\n\n/** Error thrown when a rule denies the permission */\nexport class DeniedError extends Error {\n\treadonly _tag = \"PermissionDeniedError\";\n\n\tconstructor(public readonly patterns: string[]) {\n\t\tsuper(`The user has specified a rule which prevents you from using this specific tool call.`);\n\t\tthis.name = \"DeniedError\";\n\t}\n}\n\n/** Union of all permission-related errors */\nexport type PermissionError = RejectedError | CorrectedError | DeniedError;\n\n/** Internal pending request entry */\nexport type PendingEntry = {\n\tinfo: Request;\n\tresolve: () => void;\n\treject: (err: RejectedError | CorrectedError) => void;\n};\n"]}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/permission-system/types.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,MAAM,MAAM,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;AAE9C,qDAAqD;AACrD,MAAM,MAAM,IAAI,GAAG;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,6DAA6D;AAC7D,MAAM,MAAM,OAAO,GAAG,IAAI,EAAE,CAAC;AAE7B,6CAA6C;AAC7C,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAE/E,yCAAyC;AACzC,MAAM,MAAM,KAAK,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEjD,qEAAqE;AACrE,MAAM,MAAM,kBAAkB,GAAG,KAAK,GAAG,OAAO,CAAC;AAEjD,mDAAmD;AACnD,MAAM,MAAM,OAAO,GAAG;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,IAAI,CAAC,EAAE;QACN,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;KACf,CAAC;CACF,CAAC;AAEF,iDAAiD;AACjD,MAAM,MAAM,UAAU,GAAG;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,0DAA0D;AAC1D,qBAAa,aAAc,SAAQ,KAAK;IACvC,QAAQ,CAAC,IAAI,6BAA6B;IAE1C,cAGC;CACD;AAED,kEAAkE;AAClE,qBAAa,cAAe,SAAQ,KAAK;IACxC,QAAQ,CAAC,IAAI,8BAA8B;IAC3C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B,YAAY,QAAQ,EAAE,MAAM,EAI3B;CACD;AAED,qDAAqD;AACrD,qBAAa,WAAY,SAAQ,KAAK;IACrC,QAAQ,CAAC,IAAI,2BAA2B;IACxC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;IAE5B,YAAY,QAAQ,EAAE,MAAM,EAAE,EAI7B;CACD;AAED,6CAA6C;AAC7C,MAAM,MAAM,eAAe,GAAG,aAAa,GAAG,cAAc,GAAG,WAAW,CAAC;AAE3E,qCAAqC;AACrC,MAAM,MAAM,YAAY,GAAG;IAC1B,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,MAAM,EAAE,CAAC,GAAG,EAAE,aAAa,GAAG,cAAc,KAAK,IAAI,CAAC;CACtD,CAAC","sourcesContent":["/** Permission action: allow (grant), deny (block), or ask (prompt user) */\nexport type Action = \"allow\" | \"deny\" | \"ask\";\n\n/** A single permission rule with pattern matching */\nexport type Rule = {\n\tpermission: string;\n\tpattern: string;\n\taction: Action;\n};\n\n/** Ordered list of rules for evaluation (last match wins) */\nexport type Ruleset = Rule[];\n\n/** Configuration format for settings.json */\nexport type PermissionConfig = Record<string, Action | Record<string, Action>>;\n\n/** User reply to a permission request */\nexport type Reply = \"once\" | \"always\" | \"reject\";\n\n/** Final permission decision: user reply or auto-grant from rules */\nexport type PermissionDecision = Reply | \"allow\";\n\n/** Permission request sent to user for approval */\nexport type Request = {\n\tid: string;\n\tsessionID: string;\n\tpermission: string;\n\tpatterns: string[];\n\talways: string[];\n\tmetadata: Record<string, unknown>;\n\ttool?: {\n\t\tmessageID: string;\n\t\tcallID: string;\n\t};\n};\n\n/** Input for replying to a permission request */\nexport type ReplyInput = {\n\trequestID: string;\n\treply: Reply;\n\tmessage?: string;\n};\n\n/** Error thrown when user rejects a permission request */\nexport class RejectedError extends Error {\n\treadonly _tag = \"PermissionRejectedError\";\n\n\tconstructor() {\n\t\tsuper(\"The user rejected permission to use this specific tool call.\");\n\t\tthis.name = \"RejectedError\";\n\t}\n}\n\n/** Error thrown when user rejects with feedback for correction */\nexport class CorrectedError extends Error {\n\treadonly _tag = \"PermissionCorrectedError\";\n\treadonly feedback: string;\n\n\tconstructor(feedback: string) {\n\t\tsuper(`The user rejected permission to use this specific tool call with the following feedback: ${feedback}`);\n\t\tthis.name = \"CorrectedError\";\n\t\tthis.feedback = feedback;\n\t}\n}\n\n/** Error thrown when a rule denies the permission */\nexport class DeniedError extends Error {\n\treadonly _tag = \"PermissionDeniedError\";\n\treadonly patterns: string[];\n\n\tconstructor(patterns: string[]) {\n\t\tsuper(`The user has specified a rule which prevents you from using this specific tool call.`);\n\t\tthis.name = \"DeniedError\";\n\t\tthis.patterns = patterns;\n\t}\n}\n\n/** Union of all permission-related errors */\nexport type PermissionError = RejectedError | CorrectedError | DeniedError;\n\n/** Internal pending request entry */\nexport type PendingEntry = {\n\tinfo: Request;\n\tresolve: () => void;\n\treject: (err: RejectedError | CorrectedError) => void;\n};\n"]}
@@ -8,22 +8,22 @@ export class RejectedError extends Error {
8
8
  }
9
9
  /** Error thrown when user rejects with feedback for correction */
10
10
  export class CorrectedError extends Error {
11
- feedback;
12
11
  _tag = "PermissionCorrectedError";
12
+ feedback;
13
13
  constructor(feedback) {
14
14
  super(`The user rejected permission to use this specific tool call with the following feedback: ${feedback}`);
15
- this.feedback = feedback;
16
15
  this.name = "CorrectedError";
16
+ this.feedback = feedback;
17
17
  }
18
18
  }
19
19
  /** Error thrown when a rule denies the permission */
20
20
  export class DeniedError extends Error {
21
- patterns;
22
21
  _tag = "PermissionDeniedError";
22
+ patterns;
23
23
  constructor(patterns) {
24
24
  super(`The user has specified a rule which prevents you from using this specific tool call.`);
25
- this.patterns = patterns;
26
25
  this.name = "DeniedError";
26
+ this.patterns = patterns;
27
27
  }
28
28
  }
29
29
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/permission-system/types.ts"],"names":[],"mappings":"AA2CA,0DAA0D;AAC1D,MAAM,OAAO,aAAc,SAAQ,KAAK;IAC9B,IAAI,GAAG,yBAAyB,CAAC;IAE1C,cAAc;QACb,KAAK,CAAC,8DAA8D,CAAC,CAAC;QACtE,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;IAAA,CAC5B;CACD;AAED,kEAAkE;AAClE,MAAM,OAAO,cAAe,SAAQ,KAAK;IAGZ,QAAQ;IAF3B,IAAI,GAAG,0BAA0B,CAAC;IAE3C,YAA4B,QAAgB,EAAE;QAC7C,KAAK,CAAC,4FAA4F,QAAQ,EAAE,CAAC,CAAC;wBADnF,QAAQ;QAEnC,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;IAAA,CAC7B;CACD;AAED,qDAAqD;AACrD,MAAM,OAAO,WAAY,SAAQ,KAAK;IAGT,QAAQ;IAF3B,IAAI,GAAG,uBAAuB,CAAC;IAExC,YAA4B,QAAkB,EAAE;QAC/C,KAAK,CAAC,sFAAsF,CAAC,CAAC;wBADnE,QAAQ;QAEnC,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;IAAA,CAC1B;CACD","sourcesContent":["/** Permission action: allow (grant), deny (block), or ask (prompt user) */\nexport type Action = \"allow\" | \"deny\" | \"ask\";\n\n/** A single permission rule with pattern matching */\nexport type Rule = {\n\tpermission: string;\n\tpattern: string;\n\taction: Action;\n};\n\n/** Ordered list of rules for evaluation (last match wins) */\nexport type Ruleset = Rule[];\n\n/** Configuration format for settings.json */\nexport type PermissionConfig = Record<string, Action | Record<string, Action>>;\n\n/** User reply to a permission request */\nexport type Reply = \"once\" | \"always\" | \"reject\";\n\n/** Final permission decision: user reply or auto-grant from rules */\nexport type PermissionDecision = Reply | \"allow\";\n\n/** Permission request sent to user for approval */\nexport type Request = {\n\tid: string;\n\tsessionID: string;\n\tpermission: string;\n\tpatterns: string[];\n\talways: string[];\n\tmetadata: Record<string, unknown>;\n\ttool?: {\n\t\tmessageID: string;\n\t\tcallID: string;\n\t};\n};\n\n/** Input for replying to a permission request */\nexport type ReplyInput = {\n\trequestID: string;\n\treply: Reply;\n\tmessage?: string;\n};\n\n/** Error thrown when user rejects a permission request */\nexport class RejectedError extends Error {\n\treadonly _tag = \"PermissionRejectedError\";\n\n\tconstructor() {\n\t\tsuper(\"The user rejected permission to use this specific tool call.\");\n\t\tthis.name = \"RejectedError\";\n\t}\n}\n\n/** Error thrown when user rejects with feedback for correction */\nexport class CorrectedError extends Error {\n\treadonly _tag = \"PermissionCorrectedError\";\n\n\tconstructor(public readonly feedback: string) {\n\t\tsuper(`The user rejected permission to use this specific tool call with the following feedback: ${feedback}`);\n\t\tthis.name = \"CorrectedError\";\n\t}\n}\n\n/** Error thrown when a rule denies the permission */\nexport class DeniedError extends Error {\n\treadonly _tag = \"PermissionDeniedError\";\n\n\tconstructor(public readonly patterns: string[]) {\n\t\tsuper(`The user has specified a rule which prevents you from using this specific tool call.`);\n\t\tthis.name = \"DeniedError\";\n\t}\n}\n\n/** Union of all permission-related errors */\nexport type PermissionError = RejectedError | CorrectedError | DeniedError;\n\n/** Internal pending request entry */\nexport type PendingEntry = {\n\tinfo: Request;\n\tresolve: () => void;\n\treject: (err: RejectedError | CorrectedError) => void;\n};\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/permission-system/types.ts"],"names":[],"mappings":"AA2CA,0DAA0D;AAC1D,MAAM,OAAO,aAAc,SAAQ,KAAK;IAC9B,IAAI,GAAG,yBAAyB,CAAC;IAE1C,cAAc;QACb,KAAK,CAAC,8DAA8D,CAAC,CAAC;QACtE,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;IAAA,CAC5B;CACD;AAED,kEAAkE;AAClE,MAAM,OAAO,cAAe,SAAQ,KAAK;IAC/B,IAAI,GAAG,0BAA0B,CAAC;IAClC,QAAQ,CAAS;IAE1B,YAAY,QAAgB,EAAE;QAC7B,KAAK,CAAC,4FAA4F,QAAQ,EAAE,CAAC,CAAC;QAC9G,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAAA,CACzB;CACD;AAED,qDAAqD;AACrD,MAAM,OAAO,WAAY,SAAQ,KAAK;IAC5B,IAAI,GAAG,uBAAuB,CAAC;IAC/B,QAAQ,CAAW;IAE5B,YAAY,QAAkB,EAAE;QAC/B,KAAK,CAAC,sFAAsF,CAAC,CAAC;QAC9F,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;QAC1B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAAA,CACzB;CACD","sourcesContent":["/** Permission action: allow (grant), deny (block), or ask (prompt user) */\nexport type Action = \"allow\" | \"deny\" | \"ask\";\n\n/** A single permission rule with pattern matching */\nexport type Rule = {\n\tpermission: string;\n\tpattern: string;\n\taction: Action;\n};\n\n/** Ordered list of rules for evaluation (last match wins) */\nexport type Ruleset = Rule[];\n\n/** Configuration format for settings.json */\nexport type PermissionConfig = Record<string, Action | Record<string, Action>>;\n\n/** User reply to a permission request */\nexport type Reply = \"once\" | \"always\" | \"reject\";\n\n/** Final permission decision: user reply or auto-grant from rules */\nexport type PermissionDecision = Reply | \"allow\";\n\n/** Permission request sent to user for approval */\nexport type Request = {\n\tid: string;\n\tsessionID: string;\n\tpermission: string;\n\tpatterns: string[];\n\talways: string[];\n\tmetadata: Record<string, unknown>;\n\ttool?: {\n\t\tmessageID: string;\n\t\tcallID: string;\n\t};\n};\n\n/** Input for replying to a permission request */\nexport type ReplyInput = {\n\trequestID: string;\n\treply: Reply;\n\tmessage?: string;\n};\n\n/** Error thrown when user rejects a permission request */\nexport class RejectedError extends Error {\n\treadonly _tag = \"PermissionRejectedError\";\n\n\tconstructor() {\n\t\tsuper(\"The user rejected permission to use this specific tool call.\");\n\t\tthis.name = \"RejectedError\";\n\t}\n}\n\n/** Error thrown when user rejects with feedback for correction */\nexport class CorrectedError extends Error {\n\treadonly _tag = \"PermissionCorrectedError\";\n\treadonly feedback: string;\n\n\tconstructor(feedback: string) {\n\t\tsuper(`The user rejected permission to use this specific tool call with the following feedback: ${feedback}`);\n\t\tthis.name = \"CorrectedError\";\n\t\tthis.feedback = feedback;\n\t}\n}\n\n/** Error thrown when a rule denies the permission */\nexport class DeniedError extends Error {\n\treadonly _tag = \"PermissionDeniedError\";\n\treadonly patterns: string[];\n\n\tconstructor(patterns: string[]) {\n\t\tsuper(`The user has specified a rule which prevents you from using this specific tool call.`);\n\t\tthis.name = \"DeniedError\";\n\t\tthis.patterns = patterns;\n\t}\n}\n\n/** Union of all permission-related errors */\nexport type PermissionError = RejectedError | CorrectedError | DeniedError;\n\n/** Internal pending request entry */\nexport type PendingEntry = {\n\tinfo: Request;\n\tresolve: () => void;\n\treject: (err: RejectedError | CorrectedError) => void;\n};\n"]}
@@ -1,4 +1,4 @@
1
- export declare namespace Wildcard {
2
- function match(value: string, pattern: string): boolean;
3
- }
1
+ export declare const Wildcard: {
2
+ readonly match: (value: string, pattern: string) => boolean;
3
+ };
4
4
  //# sourceMappingURL=wildcard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"wildcard.d.ts","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/permission-system/wildcard.ts"],"names":[],"mappings":"AAAA,yBAAiB,QAAQ,CAAC,CAAC;IAC1B,SAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAoD7D;CACD","sourcesContent":["export namespace Wildcard {\n\texport function match(value: string, pattern: string): boolean {\n\t\tif (value === \"\" && pattern === \"\") {\n\t\t\treturn true;\n\t\t}\n\t\tif (pattern === \"\") {\n\t\t\treturn false;\n\t\t}\n\t\tif (value === \"\" && pattern === \"*\") {\n\t\t\treturn true;\n\t\t}\n\t\tif (value === \"\") {\n\t\t\tfor (let i = 0; i < pattern.length; i++) {\n\t\t\t\tif (pattern[i] !== \"*\") {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\n\t\tlet valueIdx = 0;\n\t\tlet patternIdx = 0;\n\t\tlet starIdx = -1;\n\t\tlet matchIdx = 0;\n\n\t\twhile (valueIdx < value.length) {\n\t\t\tconst patternChar = pattern[patternIdx];\n\t\t\tconst valueChar = value[valueIdx];\n\n\t\t\tif (patternChar === \"?\") {\n\t\t\t\tvalueIdx++;\n\t\t\t\tpatternIdx++;\n\t\t\t} else if (patternChar === \"*\") {\n\t\t\t\tstarIdx = patternIdx;\n\t\t\t\tmatchIdx = valueIdx;\n\t\t\t\tpatternIdx++;\n\t\t\t} else if (patternChar === valueChar) {\n\t\t\t\tvalueIdx++;\n\t\t\t\tpatternIdx++;\n\t\t\t} else if (starIdx >= 0) {\n\t\t\t\tpatternIdx = starIdx + 1;\n\t\t\t\tmatchIdx++;\n\t\t\t\tvalueIdx = matchIdx;\n\t\t\t} else {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\twhile (patternIdx < pattern.length && pattern[patternIdx] === \"*\") {\n\t\t\tpatternIdx++;\n\t\t}\n\n\t\treturn patternIdx === pattern.length;\n\t}\n}\n"]}
1
+ {"version":3,"file":"wildcard.d.ts","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/permission-system/wildcard.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,QAAQ;;CAsDX,CAAC","sourcesContent":["export const Wildcard = {\n\tmatch(value: string, pattern: string): boolean {\n\t\tif (value === \"\" && pattern === \"\") {\n\t\t\treturn true;\n\t\t}\n\t\tif (pattern === \"\") {\n\t\t\treturn false;\n\t\t}\n\t\tif (value === \"\" && pattern === \"*\") {\n\t\t\treturn true;\n\t\t}\n\t\tif (value === \"\") {\n\t\t\tfor (let i = 0; i < pattern.length; i++) {\n\t\t\t\tif (pattern[i] !== \"*\") {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\n\t\tlet valueIdx = 0;\n\t\tlet patternIdx = 0;\n\t\tlet starIdx = -1;\n\t\tlet matchIdx = 0;\n\n\t\twhile (valueIdx < value.length) {\n\t\t\tconst patternChar = pattern[patternIdx];\n\t\t\tconst valueChar = value[valueIdx];\n\n\t\t\tif (patternChar === \"?\") {\n\t\t\t\tvalueIdx++;\n\t\t\t\tpatternIdx++;\n\t\t\t} else if (patternChar === \"*\") {\n\t\t\t\tstarIdx = patternIdx;\n\t\t\t\tmatchIdx = valueIdx;\n\t\t\t\tpatternIdx++;\n\t\t\t} else if (patternChar === valueChar) {\n\t\t\t\tvalueIdx++;\n\t\t\t\tpatternIdx++;\n\t\t\t} else if (starIdx >= 0) {\n\t\t\t\tpatternIdx = starIdx + 1;\n\t\t\t\tmatchIdx++;\n\t\t\t\tvalueIdx = matchIdx;\n\t\t\t} else {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\twhile (patternIdx < pattern.length && pattern[patternIdx] === \"*\") {\n\t\t\tpatternIdx++;\n\t\t}\n\n\t\treturn patternIdx === pattern.length;\n\t},\n} as const;\n"]}
@@ -1,7 +1,5 @@
1
- export { Wildcard };
2
- var Wildcard;
3
- (function (Wildcard) {
4
- function match(value, pattern) {
1
+ export const Wildcard = {
2
+ match(value, pattern) {
5
3
  if (value === "" && pattern === "") {
6
4
  return true;
7
5
  }
@@ -52,7 +50,6 @@ var Wildcard;
52
50
  patternIdx++;
53
51
  }
54
52
  return patternIdx === pattern.length;
55
- }
56
- Wildcard.match = match;
57
- })(Wildcard || (Wildcard = {}));
53
+ },
54
+ };
58
55
  //# sourceMappingURL=wildcard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"wildcard.js","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/permission-system/wildcard.ts"],"names":[],"mappings":"SAAiB,QAAQ;AAAzB,IAAiB,QAsDhB;AAtDD,WAAiB,QAAQ,EAAC;IACzB,SAAgB,KAAK,CAAC,KAAa,EAAE,OAAe,EAAW;QAC9D,IAAI,KAAK,KAAK,EAAE,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;YACpC,OAAO,IAAI,CAAC;QACb,CAAC;QACD,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;YACpB,OAAO,KAAK,CAAC;QACd,CAAC;QACD,IAAI,KAAK,KAAK,EAAE,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC;YACrC,OAAO,IAAI,CAAC;QACb,CAAC;QACD,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;YAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACzC,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;oBACxB,OAAO,KAAK,CAAC;gBACd,CAAC;YACF,CAAC;YACD,OAAO,IAAI,CAAC;QACb,CAAC;QAED,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC;QACjB,IAAI,QAAQ,GAAG,CAAC,CAAC;QAEjB,OAAO,QAAQ,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YAChC,MAAM,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;YACxC,MAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;YAElC,IAAI,WAAW,KAAK,GAAG,EAAE,CAAC;gBACzB,QAAQ,EAAE,CAAC;gBACX,UAAU,EAAE,CAAC;YACd,CAAC;iBAAM,IAAI,WAAW,KAAK,GAAG,EAAE,CAAC;gBAChC,OAAO,GAAG,UAAU,CAAC;gBACrB,QAAQ,GAAG,QAAQ,CAAC;gBACpB,UAAU,EAAE,CAAC;YACd,CAAC;iBAAM,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;gBACtC,QAAQ,EAAE,CAAC;gBACX,UAAU,EAAE,CAAC;YACd,CAAC;iBAAM,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC;gBACzB,UAAU,GAAG,OAAO,GAAG,CAAC,CAAC;gBACzB,QAAQ,EAAE,CAAC;gBACX,QAAQ,GAAG,QAAQ,CAAC;YACrB,CAAC;iBAAM,CAAC;gBACP,OAAO,KAAK,CAAC;YACd,CAAC;QACF,CAAC;QAED,OAAO,UAAU,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,GAAG,EAAE,CAAC;YACnE,UAAU,EAAE,CAAC;QACd,CAAC;QAED,OAAO,UAAU,KAAK,OAAO,CAAC,MAAM,CAAC;IAAA,CACrC;IApDe,SAAA,KAAK,QAoDpB,CAAA;AAAA,CACD,EAtDgB,QAAQ,KAAR,QAAQ,QAsDxB","sourcesContent":["export namespace Wildcard {\n\texport function match(value: string, pattern: string): boolean {\n\t\tif (value === \"\" && pattern === \"\") {\n\t\t\treturn true;\n\t\t}\n\t\tif (pattern === \"\") {\n\t\t\treturn false;\n\t\t}\n\t\tif (value === \"\" && pattern === \"*\") {\n\t\t\treturn true;\n\t\t}\n\t\tif (value === \"\") {\n\t\t\tfor (let i = 0; i < pattern.length; i++) {\n\t\t\t\tif (pattern[i] !== \"*\") {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\n\t\tlet valueIdx = 0;\n\t\tlet patternIdx = 0;\n\t\tlet starIdx = -1;\n\t\tlet matchIdx = 0;\n\n\t\twhile (valueIdx < value.length) {\n\t\t\tconst patternChar = pattern[patternIdx];\n\t\t\tconst valueChar = value[valueIdx];\n\n\t\t\tif (patternChar === \"?\") {\n\t\t\t\tvalueIdx++;\n\t\t\t\tpatternIdx++;\n\t\t\t} else if (patternChar === \"*\") {\n\t\t\t\tstarIdx = patternIdx;\n\t\t\t\tmatchIdx = valueIdx;\n\t\t\t\tpatternIdx++;\n\t\t\t} else if (patternChar === valueChar) {\n\t\t\t\tvalueIdx++;\n\t\t\t\tpatternIdx++;\n\t\t\t} else if (starIdx >= 0) {\n\t\t\t\tpatternIdx = starIdx + 1;\n\t\t\t\tmatchIdx++;\n\t\t\t\tvalueIdx = matchIdx;\n\t\t\t} else {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\twhile (patternIdx < pattern.length && pattern[patternIdx] === \"*\") {\n\t\t\tpatternIdx++;\n\t\t}\n\n\t\treturn patternIdx === pattern.length;\n\t}\n}\n"]}
1
+ {"version":3,"file":"wildcard.js","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/permission-system/wildcard.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,QAAQ,GAAG;IACvB,KAAK,CAAC,KAAa,EAAE,OAAe,EAAW;QAC9C,IAAI,KAAK,KAAK,EAAE,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;YACpC,OAAO,IAAI,CAAC;QACb,CAAC;QACD,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;YACpB,OAAO,KAAK,CAAC;QACd,CAAC;QACD,IAAI,KAAK,KAAK,EAAE,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC;YACrC,OAAO,IAAI,CAAC;QACb,CAAC;QACD,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;YAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACzC,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;oBACxB,OAAO,KAAK,CAAC;gBACd,CAAC;YACF,CAAC;YACD,OAAO,IAAI,CAAC;QACb,CAAC;QAED,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC;QACjB,IAAI,QAAQ,GAAG,CAAC,CAAC;QAEjB,OAAO,QAAQ,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YAChC,MAAM,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;YACxC,MAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;YAElC,IAAI,WAAW,KAAK,GAAG,EAAE,CAAC;gBACzB,QAAQ,EAAE,CAAC;gBACX,UAAU,EAAE,CAAC;YACd,CAAC;iBAAM,IAAI,WAAW,KAAK,GAAG,EAAE,CAAC;gBAChC,OAAO,GAAG,UAAU,CAAC;gBACrB,QAAQ,GAAG,QAAQ,CAAC;gBACpB,UAAU,EAAE,CAAC;YACd,CAAC;iBAAM,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;gBACtC,QAAQ,EAAE,CAAC;gBACX,UAAU,EAAE,CAAC;YACd,CAAC;iBAAM,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC;gBACzB,UAAU,GAAG,OAAO,GAAG,CAAC,CAAC;gBACzB,QAAQ,EAAE,CAAC;gBACX,QAAQ,GAAG,QAAQ,CAAC;YACrB,CAAC;iBAAM,CAAC;gBACP,OAAO,KAAK,CAAC;YACd,CAAC;QACF,CAAC;QAED,OAAO,UAAU,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,GAAG,EAAE,CAAC;YACnE,UAAU,EAAE,CAAC;QACd,CAAC;QAED,OAAO,UAAU,KAAK,OAAO,CAAC,MAAM,CAAC;IAAA,CACrC;CACQ,CAAC","sourcesContent":["export const Wildcard = {\n\tmatch(value: string, pattern: string): boolean {\n\t\tif (value === \"\" && pattern === \"\") {\n\t\t\treturn true;\n\t\t}\n\t\tif (pattern === \"\") {\n\t\t\treturn false;\n\t\t}\n\t\tif (value === \"\" && pattern === \"*\") {\n\t\t\treturn true;\n\t\t}\n\t\tif (value === \"\") {\n\t\t\tfor (let i = 0; i < pattern.length; i++) {\n\t\t\t\tif (pattern[i] !== \"*\") {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\n\t\tlet valueIdx = 0;\n\t\tlet patternIdx = 0;\n\t\tlet starIdx = -1;\n\t\tlet matchIdx = 0;\n\n\t\twhile (valueIdx < value.length) {\n\t\t\tconst patternChar = pattern[patternIdx];\n\t\t\tconst valueChar = value[valueIdx];\n\n\t\t\tif (patternChar === \"?\") {\n\t\t\t\tvalueIdx++;\n\t\t\t\tpatternIdx++;\n\t\t\t} else if (patternChar === \"*\") {\n\t\t\t\tstarIdx = patternIdx;\n\t\t\t\tmatchIdx = valueIdx;\n\t\t\t\tpatternIdx++;\n\t\t\t} else if (patternChar === valueChar) {\n\t\t\t\tvalueIdx++;\n\t\t\t\tpatternIdx++;\n\t\t\t} else if (starIdx >= 0) {\n\t\t\t\tpatternIdx = starIdx + 1;\n\t\t\t\tmatchIdx++;\n\t\t\t\tvalueIdx = matchIdx;\n\t\t\t} else {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\twhile (patternIdx < pattern.length && pattern[patternIdx] === \"*\") {\n\t\t\tpatternIdx++;\n\t\t}\n\n\t\treturn patternIdx === pattern.length;\n\t},\n} as const;\n"]}
@@ -1,3 +1,3 @@
1
- import { type BuildDynamicSystemPromptOptions } from "../../../dynamic-prompt/build.js";
1
+ import { type BuildDynamicSystemPromptOptions } from "../../../dynamic-prompt/build.ts";
2
2
  export declare function buildClaudeOpus45Prompt(options: BuildDynamicSystemPromptOptions): string;
3
3
  //# sourceMappingURL=claude-opus-4-5.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"claude-opus-4-5.d.ts","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/prompt-preset/claude-opus-4-5.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,+BAA+B,EAA4B,MAAM,kCAAkC,CAAC;AAMlH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,+BAA+B,GAAG,MAAM,CAExF","sourcesContent":["import { type BuildDynamicSystemPromptOptions, buildDynamicSystemPrompt } from \"../../../dynamic-prompt/build.js\";\n\nfunction buildClaudeOpus45Tuning(): string {\n\treturn `Break complex tasks into ordered steps with clear dependencies rather than stating only the outcome. When a task must apply to ALL items in a set, state \"apply to every item\" explicitly. Do not add caveats, qualifications, or \"let me know if...\" closers.`;\n}\n\nexport function buildClaudeOpus45Prompt(options: BuildDynamicSystemPromptOptions): string {\n\treturn buildDynamicSystemPrompt({ ...options, tuningSection: buildClaudeOpus45Tuning() });\n}\n"]}
1
+ {"version":3,"file":"claude-opus-4-5.d.ts","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/prompt-preset/claude-opus-4-5.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,+BAA+B,EAA4B,MAAM,kCAAkC,CAAC;AAMlH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,+BAA+B,GAAG,MAAM,CAExF","sourcesContent":["import { type BuildDynamicSystemPromptOptions, buildDynamicSystemPrompt } from \"../../../dynamic-prompt/build.ts\";\n\nfunction buildClaudeOpus45Tuning(): string {\n\treturn `Break complex tasks into ordered steps with clear dependencies rather than stating only the outcome. When a task must apply to ALL items in a set, state \"apply to every item\" explicitly. Do not add caveats, qualifications, or \"let me know if...\" closers.`;\n}\n\nexport function buildClaudeOpus45Prompt(options: BuildDynamicSystemPromptOptions): string {\n\treturn buildDynamicSystemPrompt({ ...options, tuningSection: buildClaudeOpus45Tuning() });\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"claude-opus-4-5.js","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/prompt-preset/claude-opus-4-5.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwC,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAElH,SAAS,uBAAuB,GAAW;IAC1C,OAAO,gQAAgQ,CAAC;AAAA,CACxQ;AAED,MAAM,UAAU,uBAAuB,CAAC,OAAwC,EAAU;IACzF,OAAO,wBAAwB,CAAC,EAAE,GAAG,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,EAAE,CAAC,CAAC;AAAA,CAC1F","sourcesContent":["import { type BuildDynamicSystemPromptOptions, buildDynamicSystemPrompt } from \"../../../dynamic-prompt/build.js\";\n\nfunction buildClaudeOpus45Tuning(): string {\n\treturn `Break complex tasks into ordered steps with clear dependencies rather than stating only the outcome. When a task must apply to ALL items in a set, state \"apply to every item\" explicitly. Do not add caveats, qualifications, or \"let me know if...\" closers.`;\n}\n\nexport function buildClaudeOpus45Prompt(options: BuildDynamicSystemPromptOptions): string {\n\treturn buildDynamicSystemPrompt({ ...options, tuningSection: buildClaudeOpus45Tuning() });\n}\n"]}
1
+ {"version":3,"file":"claude-opus-4-5.js","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/prompt-preset/claude-opus-4-5.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwC,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAElH,SAAS,uBAAuB,GAAW;IAC1C,OAAO,gQAAgQ,CAAC;AAAA,CACxQ;AAED,MAAM,UAAU,uBAAuB,CAAC,OAAwC,EAAU;IACzF,OAAO,wBAAwB,CAAC,EAAE,GAAG,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,EAAE,CAAC,CAAC;AAAA,CAC1F","sourcesContent":["import { type BuildDynamicSystemPromptOptions, buildDynamicSystemPrompt } from \"../../../dynamic-prompt/build.ts\";\n\nfunction buildClaudeOpus45Tuning(): string {\n\treturn `Break complex tasks into ordered steps with clear dependencies rather than stating only the outcome. When a task must apply to ALL items in a set, state \"apply to every item\" explicitly. Do not add caveats, qualifications, or \"let me know if...\" closers.`;\n}\n\nexport function buildClaudeOpus45Prompt(options: BuildDynamicSystemPromptOptions): string {\n\treturn buildDynamicSystemPrompt({ ...options, tuningSection: buildClaudeOpus45Tuning() });\n}\n"]}
@@ -1,3 +1,3 @@
1
- import { type BuildDynamicSystemPromptOptions } from "../../../dynamic-prompt/build.js";
1
+ import { type BuildDynamicSystemPromptOptions } from "../../../dynamic-prompt/build.ts";
2
2
  export declare function buildClaudeOpus46Prompt(options: BuildDynamicSystemPromptOptions): string;
3
3
  //# sourceMappingURL=claude-opus-4-6.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"claude-opus-4-6.d.ts","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/prompt-preset/claude-opus-4-6.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,+BAA+B,EAA4B,MAAM,kCAAkC,CAAC;AAMlH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,+BAA+B,GAAG,MAAM,CAExF","sourcesContent":["import { type BuildDynamicSystemPromptOptions, buildDynamicSystemPrompt } from \"../../../dynamic-prompt/build.js\";\n\nfunction buildClaudeOpus46Tuning(): string {\n\treturn `When a task applies to multiple items, state the full scope explicitly rather than relying on implication. Default output is thorough — constrain with \"one sentence\", \"bullets only\", \"no preamble\" when concise output is needed.`;\n}\n\nexport function buildClaudeOpus46Prompt(options: BuildDynamicSystemPromptOptions): string {\n\treturn buildDynamicSystemPrompt({ ...options, tuningSection: buildClaudeOpus46Tuning() });\n}\n"]}
1
+ {"version":3,"file":"claude-opus-4-6.d.ts","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/prompt-preset/claude-opus-4-6.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,+BAA+B,EAA4B,MAAM,kCAAkC,CAAC;AAMlH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,+BAA+B,GAAG,MAAM,CAExF","sourcesContent":["import { type BuildDynamicSystemPromptOptions, buildDynamicSystemPrompt } from \"../../../dynamic-prompt/build.ts\";\n\nfunction buildClaudeOpus46Tuning(): string {\n\treturn `When a task applies to multiple items, state the full scope explicitly rather than relying on implication. Default output is thorough — constrain with \"one sentence\", \"bullets only\", \"no preamble\" when concise output is needed.`;\n}\n\nexport function buildClaudeOpus46Prompt(options: BuildDynamicSystemPromptOptions): string {\n\treturn buildDynamicSystemPrompt({ ...options, tuningSection: buildClaudeOpus46Tuning() });\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"claude-opus-4-6.js","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/prompt-preset/claude-opus-4-6.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwC,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAElH,SAAS,uBAAuB,GAAW;IAC1C,OAAO,uOAAqO,CAAC;AAAA,CAC7O;AAED,MAAM,UAAU,uBAAuB,CAAC,OAAwC,EAAU;IACzF,OAAO,wBAAwB,CAAC,EAAE,GAAG,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,EAAE,CAAC,CAAC;AAAA,CAC1F","sourcesContent":["import { type BuildDynamicSystemPromptOptions, buildDynamicSystemPrompt } from \"../../../dynamic-prompt/build.js\";\n\nfunction buildClaudeOpus46Tuning(): string {\n\treturn `When a task applies to multiple items, state the full scope explicitly rather than relying on implication. Default output is thorough — constrain with \"one sentence\", \"bullets only\", \"no preamble\" when concise output is needed.`;\n}\n\nexport function buildClaudeOpus46Prompt(options: BuildDynamicSystemPromptOptions): string {\n\treturn buildDynamicSystemPrompt({ ...options, tuningSection: buildClaudeOpus46Tuning() });\n}\n"]}
1
+ {"version":3,"file":"claude-opus-4-6.js","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/prompt-preset/claude-opus-4-6.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwC,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAElH,SAAS,uBAAuB,GAAW;IAC1C,OAAO,uOAAqO,CAAC;AAAA,CAC7O;AAED,MAAM,UAAU,uBAAuB,CAAC,OAAwC,EAAU;IACzF,OAAO,wBAAwB,CAAC,EAAE,GAAG,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,EAAE,CAAC,CAAC;AAAA,CAC1F","sourcesContent":["import { type BuildDynamicSystemPromptOptions, buildDynamicSystemPrompt } from \"../../../dynamic-prompt/build.ts\";\n\nfunction buildClaudeOpus46Tuning(): string {\n\treturn `When a task applies to multiple items, state the full scope explicitly rather than relying on implication. Default output is thorough — constrain with \"one sentence\", \"bullets only\", \"no preamble\" when concise output is needed.`;\n}\n\nexport function buildClaudeOpus46Prompt(options: BuildDynamicSystemPromptOptions): string {\n\treturn buildDynamicSystemPrompt({ ...options, tuningSection: buildClaudeOpus46Tuning() });\n}\n"]}
@@ -1,3 +1,3 @@
1
- import { type BuildDynamicSystemPromptOptions } from "../../../dynamic-prompt/build.js";
1
+ import { type BuildDynamicSystemPromptOptions } from "../../../dynamic-prompt/build.ts";
2
2
  export declare function buildClaudeOpus47Prompt(options: BuildDynamicSystemPromptOptions): string;
3
3
  //# sourceMappingURL=claude-opus-4-7.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"claude-opus-4-7.d.ts","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/prompt-preset/claude-opus-4-7.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,+BAA+B,EAA4B,MAAM,kCAAkC,CAAC;AAQlH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,+BAA+B,GAAG,MAAM,CAExF","sourcesContent":["import { type BuildDynamicSystemPromptOptions, buildDynamicSystemPrompt } from \"../../../dynamic-prompt/build.js\";\n\nfunction buildClaudeOpus47Tuning(): string {\n\treturn `When an instruction names a scope like \"every\", \"all\", or \"for each\", apply it to the full set rather than the first item. When told \"do X then Y\", follow that exact sequence.\n\nMaintain coherent state across extended multi-tool workflows without drifting from the original goal. Do not re-anchor with reminder paragraphs mid-task.`;\n}\n\nexport function buildClaudeOpus47Prompt(options: BuildDynamicSystemPromptOptions): string {\n\treturn buildDynamicSystemPrompt({ ...options, tuningSection: buildClaudeOpus47Tuning() });\n}\n"]}
1
+ {"version":3,"file":"claude-opus-4-7.d.ts","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/prompt-preset/claude-opus-4-7.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,+BAA+B,EAA4B,MAAM,kCAAkC,CAAC;AAQlH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,+BAA+B,GAAG,MAAM,CAExF","sourcesContent":["import { type BuildDynamicSystemPromptOptions, buildDynamicSystemPrompt } from \"../../../dynamic-prompt/build.ts\";\n\nfunction buildClaudeOpus47Tuning(): string {\n\treturn `When an instruction names a scope like \"every\", \"all\", or \"for each\", apply it to the full set rather than the first item. When told \"do X then Y\", follow that exact sequence.\n\nMaintain coherent state across extended multi-tool workflows without drifting from the original goal. Do not re-anchor with reminder paragraphs mid-task.`;\n}\n\nexport function buildClaudeOpus47Prompt(options: BuildDynamicSystemPromptOptions): string {\n\treturn buildDynamicSystemPrompt({ ...options, tuningSection: buildClaudeOpus47Tuning() });\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"claude-opus-4-7.js","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/prompt-preset/claude-opus-4-7.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwC,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAElH,SAAS,uBAAuB,GAAW;IAC1C,OAAO;;0JAEkJ,CAAC;AAAA,CAC1J;AAED,MAAM,UAAU,uBAAuB,CAAC,OAAwC,EAAU;IACzF,OAAO,wBAAwB,CAAC,EAAE,GAAG,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,EAAE,CAAC,CAAC;AAAA,CAC1F","sourcesContent":["import { type BuildDynamicSystemPromptOptions, buildDynamicSystemPrompt } from \"../../../dynamic-prompt/build.js\";\n\nfunction buildClaudeOpus47Tuning(): string {\n\treturn `When an instruction names a scope like \"every\", \"all\", or \"for each\", apply it to the full set rather than the first item. When told \"do X then Y\", follow that exact sequence.\n\nMaintain coherent state across extended multi-tool workflows without drifting from the original goal. Do not re-anchor with reminder paragraphs mid-task.`;\n}\n\nexport function buildClaudeOpus47Prompt(options: BuildDynamicSystemPromptOptions): string {\n\treturn buildDynamicSystemPrompt({ ...options, tuningSection: buildClaudeOpus47Tuning() });\n}\n"]}
1
+ {"version":3,"file":"claude-opus-4-7.js","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/prompt-preset/claude-opus-4-7.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwC,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAElH,SAAS,uBAAuB,GAAW;IAC1C,OAAO;;0JAEkJ,CAAC;AAAA,CAC1J;AAED,MAAM,UAAU,uBAAuB,CAAC,OAAwC,EAAU;IACzF,OAAO,wBAAwB,CAAC,EAAE,GAAG,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,EAAE,CAAC,CAAC;AAAA,CAC1F","sourcesContent":["import { type BuildDynamicSystemPromptOptions, buildDynamicSystemPrompt } from \"../../../dynamic-prompt/build.ts\";\n\nfunction buildClaudeOpus47Tuning(): string {\n\treturn `When an instruction names a scope like \"every\", \"all\", or \"for each\", apply it to the full set rather than the first item. When told \"do X then Y\", follow that exact sequence.\n\nMaintain coherent state across extended multi-tool workflows without drifting from the original goal. Do not re-anchor with reminder paragraphs mid-task.`;\n}\n\nexport function buildClaudeOpus47Prompt(options: BuildDynamicSystemPromptOptions): string {\n\treturn buildDynamicSystemPrompt({ ...options, tuningSection: buildClaudeOpus47Tuning() });\n}\n"]}
@@ -1,3 +1,3 @@
1
- import { type BuildDynamicSystemPromptOptions } from "../../../dynamic-prompt/build.js";
1
+ import { type BuildDynamicSystemPromptOptions } from "../../../dynamic-prompt/build.ts";
2
2
  export declare function buildGpt52Prompt(options: BuildDynamicSystemPromptOptions): string;
3
3
  //# sourceMappingURL=gpt-5.2.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"gpt-5.2.d.ts","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/prompt-preset/gpt-5.2.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,+BAA+B,EAA4B,MAAM,kCAAkC,CAAC;AAelH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,+BAA+B,GAAG,MAAM,CAEjF","sourcesContent":["import { type BuildDynamicSystemPromptOptions, buildDynamicSystemPrompt } from \"../../../dynamic-prompt/build.js\";\nimport { buildFileOperationsTuning } from \"./file-operations.js\";\n\nfunction buildGpt52Tuning(): string {\n\treturn `Constrain verbosity explicitly: \"3-6 sentences\", \"max 5 bullets\", \"no preamble\". Do not over-explain simple tasks.\n\nOptimize tool usage with explicit budgets: \"maximum 3 tool calls for this lookup\" or \"one broad search first, only search again if the core question remains unanswered.\"\n\nImplement EXACTLY and ONLY what was requested. No extra features, no scope drift.\n\nCompact after major milestones, not every turn. Keep the system prompt functionally identical when resuming.\n\n${buildFileOperationsTuning()}`;\n}\n\nexport function buildGpt52Prompt(options: BuildDynamicSystemPromptOptions): string {\n\treturn buildDynamicSystemPrompt({ ...options, tuningSection: buildGpt52Tuning() });\n}\n"]}
1
+ {"version":3,"file":"gpt-5.2.d.ts","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/prompt-preset/gpt-5.2.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,+BAA+B,EAA4B,MAAM,kCAAkC,CAAC;AAelH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,+BAA+B,GAAG,MAAM,CAEjF","sourcesContent":["import { type BuildDynamicSystemPromptOptions, buildDynamicSystemPrompt } from \"../../../dynamic-prompt/build.ts\";\nimport { buildFileOperationsTuning } from \"./file-operations.ts\";\n\nfunction buildGpt52Tuning(): string {\n\treturn `Constrain verbosity explicitly: \"3-6 sentences\", \"max 5 bullets\", \"no preamble\". Do not over-explain simple tasks.\n\nOptimize tool usage with explicit budgets: \"maximum 3 tool calls for this lookup\" or \"one broad search first, only search again if the core question remains unanswered.\"\n\nImplement EXACTLY and ONLY what was requested. No extra features, no scope drift.\n\nCompact after major milestones, not every turn. Keep the system prompt functionally identical when resuming.\n\n${buildFileOperationsTuning()}`;\n}\n\nexport function buildGpt52Prompt(options: BuildDynamicSystemPromptOptions): string {\n\treturn buildDynamicSystemPrompt({ ...options, tuningSection: buildGpt52Tuning() });\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"gpt-5.2.js","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/prompt-preset/gpt-5.2.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwC,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAClH,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAEjE,SAAS,gBAAgB,GAAW;IACnC,OAAO;;;;;;;;EAQN,yBAAyB,EAAE,EAAE,CAAC;AAAA,CAC/B;AAED,MAAM,UAAU,gBAAgB,CAAC,OAAwC,EAAU;IAClF,OAAO,wBAAwB,CAAC,EAAE,GAAG,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC;AAAA,CACnF","sourcesContent":["import { type BuildDynamicSystemPromptOptions, buildDynamicSystemPrompt } from \"../../../dynamic-prompt/build.js\";\nimport { buildFileOperationsTuning } from \"./file-operations.js\";\n\nfunction buildGpt52Tuning(): string {\n\treturn `Constrain verbosity explicitly: \"3-6 sentences\", \"max 5 bullets\", \"no preamble\". Do not over-explain simple tasks.\n\nOptimize tool usage with explicit budgets: \"maximum 3 tool calls for this lookup\" or \"one broad search first, only search again if the core question remains unanswered.\"\n\nImplement EXACTLY and ONLY what was requested. No extra features, no scope drift.\n\nCompact after major milestones, not every turn. Keep the system prompt functionally identical when resuming.\n\n${buildFileOperationsTuning()}`;\n}\n\nexport function buildGpt52Prompt(options: BuildDynamicSystemPromptOptions): string {\n\treturn buildDynamicSystemPrompt({ ...options, tuningSection: buildGpt52Tuning() });\n}\n"]}
1
+ {"version":3,"file":"gpt-5.2.js","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/prompt-preset/gpt-5.2.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwC,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAClH,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAEjE,SAAS,gBAAgB,GAAW;IACnC,OAAO;;;;;;;;EAQN,yBAAyB,EAAE,EAAE,CAAC;AAAA,CAC/B;AAED,MAAM,UAAU,gBAAgB,CAAC,OAAwC,EAAU;IAClF,OAAO,wBAAwB,CAAC,EAAE,GAAG,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC;AAAA,CACnF","sourcesContent":["import { type BuildDynamicSystemPromptOptions, buildDynamicSystemPrompt } from \"../../../dynamic-prompt/build.ts\";\nimport { buildFileOperationsTuning } from \"./file-operations.ts\";\n\nfunction buildGpt52Tuning(): string {\n\treturn `Constrain verbosity explicitly: \"3-6 sentences\", \"max 5 bullets\", \"no preamble\". Do not over-explain simple tasks.\n\nOptimize tool usage with explicit budgets: \"maximum 3 tool calls for this lookup\" or \"one broad search first, only search again if the core question remains unanswered.\"\n\nImplement EXACTLY and ONLY what was requested. No extra features, no scope drift.\n\nCompact after major milestones, not every turn. Keep the system prompt functionally identical when resuming.\n\n${buildFileOperationsTuning()}`;\n}\n\nexport function buildGpt52Prompt(options: BuildDynamicSystemPromptOptions): string {\n\treturn buildDynamicSystemPrompt({ ...options, tuningSection: buildGpt52Tuning() });\n}\n"]}
@@ -1,3 +1,3 @@
1
- import { type BuildDynamicSystemPromptOptions } from "../../../dynamic-prompt/build.js";
1
+ import { type BuildDynamicSystemPromptOptions } from "../../../dynamic-prompt/build.ts";
2
2
  export declare function buildGpt53CodexPrompt(options: BuildDynamicSystemPromptOptions): string;
3
3
  //# sourceMappingURL=gpt-5.3-codex.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"gpt-5.3-codex.d.ts","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/prompt-preset/gpt-5.3-codex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,+BAA+B,EAA4B,MAAM,kCAAkC,CAAC;AAalH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,+BAA+B,GAAG,MAAM,CAEtF","sourcesContent":["import { type BuildDynamicSystemPromptOptions, buildDynamicSystemPrompt } from \"../../../dynamic-prompt/build.js\";\nimport { buildFileOperationsTuning } from \"./file-operations.js\";\n\nfunction buildGpt53CodexTuning(): string {\n\treturn `Bias hard toward action. Implement directly with reasonable assumptions rather than stopping to ask. Do not produce upfront plans or preambles before acting — start working immediately.\n\nDo not re-state the goal between steps. When a milestone completes, move to the next without summarizing unless the user asked for a summary.\n\nAfter compaction, continue from the current state rather than re-deriving prior conclusions. Treat compacted items as opaque.\n\n${buildFileOperationsTuning()}`;\n}\n\nexport function buildGpt53CodexPrompt(options: BuildDynamicSystemPromptOptions): string {\n\treturn buildDynamicSystemPrompt({ ...options, tuningSection: buildGpt53CodexTuning() });\n}\n"]}
1
+ {"version":3,"file":"gpt-5.3-codex.d.ts","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/prompt-preset/gpt-5.3-codex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,+BAA+B,EAA4B,MAAM,kCAAkC,CAAC;AAalH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,+BAA+B,GAAG,MAAM,CAEtF","sourcesContent":["import { type BuildDynamicSystemPromptOptions, buildDynamicSystemPrompt } from \"../../../dynamic-prompt/build.ts\";\nimport { buildFileOperationsTuning } from \"./file-operations.ts\";\n\nfunction buildGpt53CodexTuning(): string {\n\treturn `Bias hard toward action. Implement directly with reasonable assumptions rather than stopping to ask. Do not produce upfront plans or preambles before acting — start working immediately.\n\nDo not re-state the goal between steps. When a milestone completes, move to the next without summarizing unless the user asked for a summary.\n\nAfter compaction, continue from the current state rather than re-deriving prior conclusions. Treat compacted items as opaque.\n\n${buildFileOperationsTuning()}`;\n}\n\nexport function buildGpt53CodexPrompt(options: BuildDynamicSystemPromptOptions): string {\n\treturn buildDynamicSystemPrompt({ ...options, tuningSection: buildGpt53CodexTuning() });\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"gpt-5.3-codex.js","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/prompt-preset/gpt-5.3-codex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwC,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAClH,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAEjE,SAAS,qBAAqB,GAAW;IACxC,OAAO;;;;;;EAMN,yBAAyB,EAAE,EAAE,CAAC;AAAA,CAC/B;AAED,MAAM,UAAU,qBAAqB,CAAC,OAAwC,EAAU;IACvF,OAAO,wBAAwB,CAAC,EAAE,GAAG,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,EAAE,CAAC,CAAC;AAAA,CACxF","sourcesContent":["import { type BuildDynamicSystemPromptOptions, buildDynamicSystemPrompt } from \"../../../dynamic-prompt/build.js\";\nimport { buildFileOperationsTuning } from \"./file-operations.js\";\n\nfunction buildGpt53CodexTuning(): string {\n\treturn `Bias hard toward action. Implement directly with reasonable assumptions rather than stopping to ask. Do not produce upfront plans or preambles before acting — start working immediately.\n\nDo not re-state the goal between steps. When a milestone completes, move to the next without summarizing unless the user asked for a summary.\n\nAfter compaction, continue from the current state rather than re-deriving prior conclusions. Treat compacted items as opaque.\n\n${buildFileOperationsTuning()}`;\n}\n\nexport function buildGpt53CodexPrompt(options: BuildDynamicSystemPromptOptions): string {\n\treturn buildDynamicSystemPrompt({ ...options, tuningSection: buildGpt53CodexTuning() });\n}\n"]}
1
+ {"version":3,"file":"gpt-5.3-codex.js","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/prompt-preset/gpt-5.3-codex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwC,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAClH,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAEjE,SAAS,qBAAqB,GAAW;IACxC,OAAO;;;;;;EAMN,yBAAyB,EAAE,EAAE,CAAC;AAAA,CAC/B;AAED,MAAM,UAAU,qBAAqB,CAAC,OAAwC,EAAU;IACvF,OAAO,wBAAwB,CAAC,EAAE,GAAG,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,EAAE,CAAC,CAAC;AAAA,CACxF","sourcesContent":["import { type BuildDynamicSystemPromptOptions, buildDynamicSystemPrompt } from \"../../../dynamic-prompt/build.ts\";\nimport { buildFileOperationsTuning } from \"./file-operations.ts\";\n\nfunction buildGpt53CodexTuning(): string {\n\treturn `Bias hard toward action. Implement directly with reasonable assumptions rather than stopping to ask. Do not produce upfront plans or preambles before acting — start working immediately.\n\nDo not re-state the goal between steps. When a milestone completes, move to the next without summarizing unless the user asked for a summary.\n\nAfter compaction, continue from the current state rather than re-deriving prior conclusions. Treat compacted items as opaque.\n\n${buildFileOperationsTuning()}`;\n}\n\nexport function buildGpt53CodexPrompt(options: BuildDynamicSystemPromptOptions): string {\n\treturn buildDynamicSystemPrompt({ ...options, tuningSection: buildGpt53CodexTuning() });\n}\n"]}
@@ -1,3 +1,3 @@
1
- import { type BuildDynamicSystemPromptOptions } from "../../../dynamic-prompt/build.js";
1
+ import { type BuildDynamicSystemPromptOptions } from "../../../dynamic-prompt/build.ts";
2
2
  export declare function buildGpt54Prompt(options: BuildDynamicSystemPromptOptions): string;
3
3
  //# sourceMappingURL=gpt-5.4.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"gpt-5.4.d.ts","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/prompt-preset/gpt-5.4.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,+BAA+B,EAA4B,MAAM,kCAAkC,CAAC;AAalH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,+BAA+B,GAAG,MAAM,CAEjF","sourcesContent":["import { type BuildDynamicSystemPromptOptions, buildDynamicSystemPrompt } from \"../../../dynamic-prompt/build.js\";\nimport { buildFileOperationsTuning } from \"./file-operations.js\";\n\nfunction buildGpt54Tuning(): string {\n\treturn `Use explicit section structure and step sequences for multi-step tasks — ordered steps with dependencies. When a specific response shape is needed, declare exact fields and order upfront, no extra text.\n\nDefault to medium reasoning effort. Escalate to high only for multi-constraint optimization, subtle bugs, or novel architecture decisions. Use low for classification, extraction, formatting.\n\nState when each tool should and should not be called. Specify parallel vs sequential tool use.\n\n${buildFileOperationsTuning()}`;\n}\n\nexport function buildGpt54Prompt(options: BuildDynamicSystemPromptOptions): string {\n\treturn buildDynamicSystemPrompt({ ...options, tuningSection: buildGpt54Tuning() });\n}\n"]}
1
+ {"version":3,"file":"gpt-5.4.d.ts","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/prompt-preset/gpt-5.4.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,+BAA+B,EAA4B,MAAM,kCAAkC,CAAC;AAalH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,+BAA+B,GAAG,MAAM,CAEjF","sourcesContent":["import { type BuildDynamicSystemPromptOptions, buildDynamicSystemPrompt } from \"../../../dynamic-prompt/build.ts\";\nimport { buildFileOperationsTuning } from \"./file-operations.ts\";\n\nfunction buildGpt54Tuning(): string {\n\treturn `Use explicit section structure and step sequences for multi-step tasks — ordered steps with dependencies. When a specific response shape is needed, declare exact fields and order upfront, no extra text.\n\nDefault to medium reasoning effort. Escalate to high only for multi-constraint optimization, subtle bugs, or novel architecture decisions. Use low for classification, extraction, formatting.\n\nState when each tool should and should not be called. Specify parallel vs sequential tool use.\n\n${buildFileOperationsTuning()}`;\n}\n\nexport function buildGpt54Prompt(options: BuildDynamicSystemPromptOptions): string {\n\treturn buildDynamicSystemPrompt({ ...options, tuningSection: buildGpt54Tuning() });\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"gpt-5.4.js","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/prompt-preset/gpt-5.4.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwC,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAClH,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAEjE,SAAS,gBAAgB,GAAW;IACnC,OAAO;;;;;;EAMN,yBAAyB,EAAE,EAAE,CAAC;AAAA,CAC/B;AAED,MAAM,UAAU,gBAAgB,CAAC,OAAwC,EAAU;IAClF,OAAO,wBAAwB,CAAC,EAAE,GAAG,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC;AAAA,CACnF","sourcesContent":["import { type BuildDynamicSystemPromptOptions, buildDynamicSystemPrompt } from \"../../../dynamic-prompt/build.js\";\nimport { buildFileOperationsTuning } from \"./file-operations.js\";\n\nfunction buildGpt54Tuning(): string {\n\treturn `Use explicit section structure and step sequences for multi-step tasks — ordered steps with dependencies. When a specific response shape is needed, declare exact fields and order upfront, no extra text.\n\nDefault to medium reasoning effort. Escalate to high only for multi-constraint optimization, subtle bugs, or novel architecture decisions. Use low for classification, extraction, formatting.\n\nState when each tool should and should not be called. Specify parallel vs sequential tool use.\n\n${buildFileOperationsTuning()}`;\n}\n\nexport function buildGpt54Prompt(options: BuildDynamicSystemPromptOptions): string {\n\treturn buildDynamicSystemPrompt({ ...options, tuningSection: buildGpt54Tuning() });\n}\n"]}
1
+ {"version":3,"file":"gpt-5.4.js","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/prompt-preset/gpt-5.4.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwC,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAClH,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAEjE,SAAS,gBAAgB,GAAW;IACnC,OAAO;;;;;;EAMN,yBAAyB,EAAE,EAAE,CAAC;AAAA,CAC/B;AAED,MAAM,UAAU,gBAAgB,CAAC,OAAwC,EAAU;IAClF,OAAO,wBAAwB,CAAC,EAAE,GAAG,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC;AAAA,CACnF","sourcesContent":["import { type BuildDynamicSystemPromptOptions, buildDynamicSystemPrompt } from \"../../../dynamic-prompt/build.ts\";\nimport { buildFileOperationsTuning } from \"./file-operations.ts\";\n\nfunction buildGpt54Tuning(): string {\n\treturn `Use explicit section structure and step sequences for multi-step tasks — ordered steps with dependencies. When a specific response shape is needed, declare exact fields and order upfront, no extra text.\n\nDefault to medium reasoning effort. Escalate to high only for multi-constraint optimization, subtle bugs, or novel architecture decisions. Use low for classification, extraction, formatting.\n\nState when each tool should and should not be called. Specify parallel vs sequential tool use.\n\n${buildFileOperationsTuning()}`;\n}\n\nexport function buildGpt54Prompt(options: BuildDynamicSystemPromptOptions): string {\n\treturn buildDynamicSystemPrompt({ ...options, tuningSection: buildGpt54Tuning() });\n}\n"]}
@@ -1,3 +1,3 @@
1
- import { type BuildDynamicSystemPromptOptions } from "../../../dynamic-prompt/build.js";
1
+ import { type BuildDynamicSystemPromptOptions } from "../../../dynamic-prompt/build.ts";
2
2
  export declare function buildGpt55Prompt(options: BuildDynamicSystemPromptOptions): string;
3
3
  //# sourceMappingURL=gpt-5.5.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"gpt-5.5.d.ts","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/prompt-preset/gpt-5.5.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,+BAA+B,EAA4B,MAAM,kCAAkC,CAAC;AAmBlH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,+BAA+B,GAAG,MAAM,CAEjF","sourcesContent":["import { type BuildDynamicSystemPromptOptions, buildDynamicSystemPrompt } from \"../../../dynamic-prompt/build.js\";\nimport { buildFileOperationsTuning } from \"./file-operations.js\";\n\nfunction buildGpt55Tuning(): string {\n\treturn `Reason efficiently. Default to low or medium reasoning effort and re-evaluate before escalating; what earlier models needed walked through step by step, you can now hand off as an outcome plus a stopping condition. Skip mechanical step-by-step recitation when the goal is concrete - long process prompts narrow the search space and make answers feel mechanical. Prefer outcome-first framing: define the destination, the constraints, and the stopping condition, then let the path emerge from the work.\n\nThe intent gate routing line is non-optional. Every turn opens with one short read of what the user wants and what you are doing about it. If the latest message overrides earlier intent, drop the earlier path and serve the current request - do not keep pursuing an authorization the user did not re-issue this turn.\n\nPreamble: before the first tool call on any multi-step or tool-heavy task, send one short visible update that names your first concrete step. One or two sentences, then act. No \"Got it -\", \"Sure thing\", \"Done -\", or \"Great question\" openers.\n\nTodo discipline. For any non-trivial task (2+ steps, uncertain scope, multiple items), call \\`todowrite\\` with atomic items before starting. Mark exactly one item \\`in_progress\\` at a time. Mark items \\`completed\\` immediately when finished; never batch. Update the todo list when scope shifts. Trivial single-step asks do not need a todo list.\n\nDig deeper. The first plausible answer is often a symptom, not the root cause. When a finding feels too simple for the complexity of the question, walk one more layer down - callers, error paths, ownership, side effects - before settling. A null check on \\`foo()\\` is not the fix when the real problem is the upstream parser swallowing errors. Prefer the root fix unless the time budget forces otherwise.\n\nReserve absolutes (NEVER, ALWAYS, must, only) for true invariants - safety, type-safety, required output fields, actions that should never happen. For judgment calls (when to search, when to ask, when to use a tool, when to verify), use decision rules; the model follows them better than scolding language and they generalize to cases a hard rule did not anticipate.\n\n${buildFileOperationsTuning()}`;\n}\n\nexport function buildGpt55Prompt(options: BuildDynamicSystemPromptOptions): string {\n\treturn buildDynamicSystemPrompt({ ...options, tuningSection: buildGpt55Tuning() });\n}\n"]}
1
+ {"version":3,"file":"gpt-5.5.d.ts","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/prompt-preset/gpt-5.5.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,+BAA+B,EAA4B,MAAM,kCAAkC,CAAC;AAmBlH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,+BAA+B,GAAG,MAAM,CAEjF","sourcesContent":["import { type BuildDynamicSystemPromptOptions, buildDynamicSystemPrompt } from \"../../../dynamic-prompt/build.ts\";\nimport { buildFileOperationsTuning } from \"./file-operations.ts\";\n\nfunction buildGpt55Tuning(): string {\n\treturn `Reason efficiently. Default to low or medium reasoning effort and re-evaluate before escalating; what earlier models needed walked through step by step, you can now hand off as an outcome plus a stopping condition. Skip mechanical step-by-step recitation when the goal is concrete - long process prompts narrow the search space and make answers feel mechanical. Prefer outcome-first framing: define the destination, the constraints, and the stopping condition, then let the path emerge from the work.\n\nThe intent gate routing line is non-optional. Every turn opens with one short read of what the user wants and what you are doing about it. If the latest message overrides earlier intent, drop the earlier path and serve the current request - do not keep pursuing an authorization the user did not re-issue this turn.\n\nPreamble: before the first tool call on any multi-step or tool-heavy task, send one short visible update that names your first concrete step. One or two sentences, then act. No \"Got it -\", \"Sure thing\", \"Done -\", or \"Great question\" openers.\n\nTodo discipline. For any non-trivial task (2+ steps, uncertain scope, multiple items), call \\`todowrite\\` with atomic items before starting. Mark exactly one item \\`in_progress\\` at a time. Mark items \\`completed\\` immediately when finished; never batch. Update the todo list when scope shifts. Trivial single-step asks do not need a todo list.\n\nDig deeper. The first plausible answer is often a symptom, not the root cause. When a finding feels too simple for the complexity of the question, walk one more layer down - callers, error paths, ownership, side effects - before settling. A null check on \\`foo()\\` is not the fix when the real problem is the upstream parser swallowing errors. Prefer the root fix unless the time budget forces otherwise.\n\nReserve absolutes (NEVER, ALWAYS, must, only) for true invariants - safety, type-safety, required output fields, actions that should never happen. For judgment calls (when to search, when to ask, when to use a tool, when to verify), use decision rules; the model follows them better than scolding language and they generalize to cases a hard rule did not anticipate.\n\n${buildFileOperationsTuning()}`;\n}\n\nexport function buildGpt55Prompt(options: BuildDynamicSystemPromptOptions): string {\n\treturn buildDynamicSystemPrompt({ ...options, tuningSection: buildGpt55Tuning() });\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"gpt-5.5.js","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/prompt-preset/gpt-5.5.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwC,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAClH,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAEjE,SAAS,gBAAgB,GAAW;IACnC,OAAO;;;;;;;;;;;;EAYN,yBAAyB,EAAE,EAAE,CAAC;AAAA,CAC/B;AAED,MAAM,UAAU,gBAAgB,CAAC,OAAwC,EAAU;IAClF,OAAO,wBAAwB,CAAC,EAAE,GAAG,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC;AAAA,CACnF","sourcesContent":["import { type BuildDynamicSystemPromptOptions, buildDynamicSystemPrompt } from \"../../../dynamic-prompt/build.js\";\nimport { buildFileOperationsTuning } from \"./file-operations.js\";\n\nfunction buildGpt55Tuning(): string {\n\treturn `Reason efficiently. Default to low or medium reasoning effort and re-evaluate before escalating; what earlier models needed walked through step by step, you can now hand off as an outcome plus a stopping condition. Skip mechanical step-by-step recitation when the goal is concrete - long process prompts narrow the search space and make answers feel mechanical. Prefer outcome-first framing: define the destination, the constraints, and the stopping condition, then let the path emerge from the work.\n\nThe intent gate routing line is non-optional. Every turn opens with one short read of what the user wants and what you are doing about it. If the latest message overrides earlier intent, drop the earlier path and serve the current request - do not keep pursuing an authorization the user did not re-issue this turn.\n\nPreamble: before the first tool call on any multi-step or tool-heavy task, send one short visible update that names your first concrete step. One or two sentences, then act. No \"Got it -\", \"Sure thing\", \"Done -\", or \"Great question\" openers.\n\nTodo discipline. For any non-trivial task (2+ steps, uncertain scope, multiple items), call \\`todowrite\\` with atomic items before starting. Mark exactly one item \\`in_progress\\` at a time. Mark items \\`completed\\` immediately when finished; never batch. Update the todo list when scope shifts. Trivial single-step asks do not need a todo list.\n\nDig deeper. The first plausible answer is often a symptom, not the root cause. When a finding feels too simple for the complexity of the question, walk one more layer down - callers, error paths, ownership, side effects - before settling. A null check on \\`foo()\\` is not the fix when the real problem is the upstream parser swallowing errors. Prefer the root fix unless the time budget forces otherwise.\n\nReserve absolutes (NEVER, ALWAYS, must, only) for true invariants - safety, type-safety, required output fields, actions that should never happen. For judgment calls (when to search, when to ask, when to use a tool, when to verify), use decision rules; the model follows them better than scolding language and they generalize to cases a hard rule did not anticipate.\n\n${buildFileOperationsTuning()}`;\n}\n\nexport function buildGpt55Prompt(options: BuildDynamicSystemPromptOptions): string {\n\treturn buildDynamicSystemPrompt({ ...options, tuningSection: buildGpt55Tuning() });\n}\n"]}
1
+ {"version":3,"file":"gpt-5.5.js","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/prompt-preset/gpt-5.5.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwC,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAClH,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAEjE,SAAS,gBAAgB,GAAW;IACnC,OAAO;;;;;;;;;;;;EAYN,yBAAyB,EAAE,EAAE,CAAC;AAAA,CAC/B;AAED,MAAM,UAAU,gBAAgB,CAAC,OAAwC,EAAU;IAClF,OAAO,wBAAwB,CAAC,EAAE,GAAG,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC;AAAA,CACnF","sourcesContent":["import { type BuildDynamicSystemPromptOptions, buildDynamicSystemPrompt } from \"../../../dynamic-prompt/build.ts\";\nimport { buildFileOperationsTuning } from \"./file-operations.ts\";\n\nfunction buildGpt55Tuning(): string {\n\treturn `Reason efficiently. Default to low or medium reasoning effort and re-evaluate before escalating; what earlier models needed walked through step by step, you can now hand off as an outcome plus a stopping condition. Skip mechanical step-by-step recitation when the goal is concrete - long process prompts narrow the search space and make answers feel mechanical. Prefer outcome-first framing: define the destination, the constraints, and the stopping condition, then let the path emerge from the work.\n\nThe intent gate routing line is non-optional. Every turn opens with one short read of what the user wants and what you are doing about it. If the latest message overrides earlier intent, drop the earlier path and serve the current request - do not keep pursuing an authorization the user did not re-issue this turn.\n\nPreamble: before the first tool call on any multi-step or tool-heavy task, send one short visible update that names your first concrete step. One or two sentences, then act. No \"Got it -\", \"Sure thing\", \"Done -\", or \"Great question\" openers.\n\nTodo discipline. For any non-trivial task (2+ steps, uncertain scope, multiple items), call \\`todowrite\\` with atomic items before starting. Mark exactly one item \\`in_progress\\` at a time. Mark items \\`completed\\` immediately when finished; never batch. Update the todo list when scope shifts. Trivial single-step asks do not need a todo list.\n\nDig deeper. The first plausible answer is often a symptom, not the root cause. When a finding feels too simple for the complexity of the question, walk one more layer down - callers, error paths, ownership, side effects - before settling. A null check on \\`foo()\\` is not the fix when the real problem is the upstream parser swallowing errors. Prefer the root fix unless the time budget forces otherwise.\n\nReserve absolutes (NEVER, ALWAYS, must, only) for true invariants - safety, type-safety, required output fields, actions that should never happen. For judgment calls (when to search, when to ask, when to use a tool, when to verify), use decision rules; the model follows them better than scolding language and they generalize to cases a hard rule did not anticipate.\n\n${buildFileOperationsTuning()}`;\n}\n\nexport function buildGpt55Prompt(options: BuildDynamicSystemPromptOptions): string {\n\treturn buildDynamicSystemPrompt({ ...options, tuningSection: buildGpt55Tuning() });\n}\n"]}
@@ -1,3 +1,3 @@
1
- import { type BuildDynamicSystemPromptOptions } from "../../../dynamic-prompt/build.js";
1
+ import { type BuildDynamicSystemPromptOptions } from "../../../dynamic-prompt/build.ts";
2
2
  export declare function buildGpt5Prompt(options: BuildDynamicSystemPromptOptions): string;
3
3
  //# sourceMappingURL=gpt-5.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"gpt-5.d.ts","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/prompt-preset/gpt-5.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,+BAA+B,EAA4B,MAAM,kCAAkC,CAAC;AAWlH,wBAAgB,eAAe,CAAC,OAAO,EAAE,+BAA+B,GAAG,MAAM,CAEhF","sourcesContent":["import { type BuildDynamicSystemPromptOptions, buildDynamicSystemPrompt } from \"../../../dynamic-prompt/build.js\";\nimport { buildFileOperationsTuning } from \"./file-operations.js\";\n\nfunction buildGpt5Tuning(): string {\n\treturn `Focus on what \"done\" looks like rather than chaining intermediate confirmations when the goal is already concrete. Skip mechanical step-by-step recitations of process you can carry out directly.\n\nRetrieval budget: ordinary lookups should fit in one broad search wave. Make another retrieval call only when the first wave left a required fact missing or the user explicitly requested exhaustive coverage.\n\n${buildFileOperationsTuning()}`;\n}\n\nexport function buildGpt5Prompt(options: BuildDynamicSystemPromptOptions): string {\n\treturn buildDynamicSystemPrompt({ ...options, tuningSection: buildGpt5Tuning() });\n}\n"]}
1
+ {"version":3,"file":"gpt-5.d.ts","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/prompt-preset/gpt-5.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,+BAA+B,EAA4B,MAAM,kCAAkC,CAAC;AAWlH,wBAAgB,eAAe,CAAC,OAAO,EAAE,+BAA+B,GAAG,MAAM,CAEhF","sourcesContent":["import { type BuildDynamicSystemPromptOptions, buildDynamicSystemPrompt } from \"../../../dynamic-prompt/build.ts\";\nimport { buildFileOperationsTuning } from \"./file-operations.ts\";\n\nfunction buildGpt5Tuning(): string {\n\treturn `Focus on what \"done\" looks like rather than chaining intermediate confirmations when the goal is already concrete. Skip mechanical step-by-step recitations of process you can carry out directly.\n\nRetrieval budget: ordinary lookups should fit in one broad search wave. Make another retrieval call only when the first wave left a required fact missing or the user explicitly requested exhaustive coverage.\n\n${buildFileOperationsTuning()}`;\n}\n\nexport function buildGpt5Prompt(options: BuildDynamicSystemPromptOptions): string {\n\treturn buildDynamicSystemPrompt({ ...options, tuningSection: buildGpt5Tuning() });\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"gpt-5.js","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/prompt-preset/gpt-5.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwC,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAClH,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAEjE,SAAS,eAAe,GAAW;IAClC,OAAO;;;;EAIN,yBAAyB,EAAE,EAAE,CAAC;AAAA,CAC/B;AAED,MAAM,UAAU,eAAe,CAAC,OAAwC,EAAU;IACjF,OAAO,wBAAwB,CAAC,EAAE,GAAG,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,CAAC,CAAC;AAAA,CAClF","sourcesContent":["import { type BuildDynamicSystemPromptOptions, buildDynamicSystemPrompt } from \"../../../dynamic-prompt/build.js\";\nimport { buildFileOperationsTuning } from \"./file-operations.js\";\n\nfunction buildGpt5Tuning(): string {\n\treturn `Focus on what \"done\" looks like rather than chaining intermediate confirmations when the goal is already concrete. Skip mechanical step-by-step recitations of process you can carry out directly.\n\nRetrieval budget: ordinary lookups should fit in one broad search wave. Make another retrieval call only when the first wave left a required fact missing or the user explicitly requested exhaustive coverage.\n\n${buildFileOperationsTuning()}`;\n}\n\nexport function buildGpt5Prompt(options: BuildDynamicSystemPromptOptions): string {\n\treturn buildDynamicSystemPrompt({ ...options, tuningSection: buildGpt5Tuning() });\n}\n"]}
1
+ {"version":3,"file":"gpt-5.js","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/prompt-preset/gpt-5.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwC,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAClH,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAEjE,SAAS,eAAe,GAAW;IAClC,OAAO;;;;EAIN,yBAAyB,EAAE,EAAE,CAAC;AAAA,CAC/B;AAED,MAAM,UAAU,eAAe,CAAC,OAAwC,EAAU;IACjF,OAAO,wBAAwB,CAAC,EAAE,GAAG,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,CAAC,CAAC;AAAA,CAClF","sourcesContent":["import { type BuildDynamicSystemPromptOptions, buildDynamicSystemPrompt } from \"../../../dynamic-prompt/build.ts\";\nimport { buildFileOperationsTuning } from \"./file-operations.ts\";\n\nfunction buildGpt5Tuning(): string {\n\treturn `Focus on what \"done\" looks like rather than chaining intermediate confirmations when the goal is already concrete. Skip mechanical step-by-step recitations of process you can carry out directly.\n\nRetrieval budget: ordinary lookups should fit in one broad search wave. Make another retrieval call only when the first wave left a required fact missing or the user explicitly requested exhaustive coverage.\n\n${buildFileOperationsTuning()}`;\n}\n\nexport function buildGpt5Prompt(options: BuildDynamicSystemPromptOptions): string {\n\treturn buildDynamicSystemPrompt({ ...options, tuningSection: buildGpt5Tuning() });\n}\n"]}
@@ -1,3 +1,3 @@
1
- import type { ExtensionAPI } from "../../types.js";
1
+ import type { ExtensionAPI } from "../../types.ts";
2
2
  export default function promptPresetExtension(pi: ExtensionAPI): void;
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/prompt-preset/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAsC,MAAM,gBAAgB,CAAC;AAgDvF,MAAM,CAAC,OAAO,UAAU,qBAAqB,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI,CA2BpE","sourcesContent":["import type { BuildDynamicSystemPromptOptions } from \"../../../dynamic-prompt/build.js\";\nimport { SettingsManager } from \"../../../settings-manager.js\";\nimport type { ExtensionAPI, ExtensionContext, ModelSelectEvent } from \"../../types.js\";\nimport { resolvePreset, resolvePresetName } from \"./presets.js\";\nimport { loadPromptPresetSettings } from \"./settings.js\";\n\ninterface SystemPromptOptionsLike {\n\tcwd?: string;\n\tselectedTools?: string[];\n\ttoolSnippets?: Record<string, string>;\n\tpromptGuidelines?: string[];\n\tcontextFiles?: Array<{ path: string; content: string }>;\n\tskills?: BuildDynamicSystemPromptOptions[\"skills\"];\n}\n\nfunction eventOptionsToBuilderInput(\n\tevent: { systemPromptOptions: SystemPromptOptionsLike | undefined },\n\tctx: Pick<ExtensionContext, \"cwd\">,\n): Partial<BuildDynamicSystemPromptOptions> {\n\tconst options = event.systemPromptOptions ?? {};\n\treturn {\n\t\tcwd: options.cwd ?? ctx.cwd,\n\t\tselectedTools: options.selectedTools,\n\t\ttoolSnippets: options.toolSnippets,\n\t\tpromptGuidelines: options.promptGuidelines,\n\t\tcontextFiles: options.contextFiles,\n\t\tskills: options.skills,\n\t};\n}\n\nfunction getSettings(ctx: ExtensionContext): ReturnType<typeof loadPromptPresetSettings> {\n\treturn loadPromptPresetSettings(SettingsManager.create(ctx.cwd));\n}\n\nfunction getPresetName(ctx: ExtensionContext, event?: Pick<ModelSelectEvent, \"model\">): string {\n\tconst model = event?.model ?? ctx.model;\n\tif (!model) {\n\t\treturn \"fallback (senpi-current)\";\n\t}\n\treturn resolvePresetName(model, getSettings(ctx)) ?? \"fallback (senpi-current)\";\n}\n\nfunction refreshHeader(ctx: ExtensionContext, event?: Pick<ModelSelectEvent, \"model\">): void {\n\tconst presetName = getPresetName(ctx, event);\n\tctx.ui.setHeader((_tui, theme) => ({\n\t\trender: () => [theme.fg(\"accent\", theme.bold(`Prompt preset: ${presetName}`))],\n\t\tinvalidate: () => {},\n\t}));\n}\n\nexport default function promptPresetExtension(pi: ExtensionAPI): void {\n\tpi.on(\"before_agent_start\", async (event, ctx) => {\n\t\tconst model = ctx.model;\n\t\tif (!model) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst preset = resolvePreset(model, getSettings(ctx), eventOptionsToBuilderInput(event, ctx));\n\t\tif (!preset) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\treturn { systemPrompt: preset.prompt };\n\t});\n\n\tpi.on(\"session_start\", async (_event, ctx) => {\n\t\trefreshHeader(ctx);\n\t});\n\n\tpi.on(\"model_select\", async (event, ctx) => {\n\t\trefreshHeader(ctx, event);\n\t\tconst preset = resolvePreset(event.model, getSettings(ctx), eventOptionsToBuilderInput(event, ctx));\n\t\treturn {\n\t\t\tsystemPrompt: preset?.prompt ?? null,\n\t\t\tsystemPromptName: preset?.name ?? \"fallback (senpi-current)\",\n\t\t};\n\t});\n}\n"]}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/prompt-preset/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAsC,MAAM,gBAAgB,CAAC;AAgDvF,MAAM,CAAC,OAAO,UAAU,qBAAqB,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI,CA2BpE","sourcesContent":["import type { BuildDynamicSystemPromptOptions } from \"../../../dynamic-prompt/build.ts\";\nimport { SettingsManager } from \"../../../settings-manager.ts\";\nimport type { ExtensionAPI, ExtensionContext, ModelSelectEvent } from \"../../types.ts\";\nimport { resolvePreset, resolvePresetName } from \"./presets.ts\";\nimport { loadPromptPresetSettings } from \"./settings.ts\";\n\ninterface SystemPromptOptionsLike {\n\tcwd?: string;\n\tselectedTools?: string[];\n\ttoolSnippets?: Record<string, string>;\n\tpromptGuidelines?: string[];\n\tcontextFiles?: Array<{ path: string; content: string }>;\n\tskills?: BuildDynamicSystemPromptOptions[\"skills\"];\n}\n\nfunction eventOptionsToBuilderInput(\n\tevent: { systemPromptOptions: SystemPromptOptionsLike | undefined },\n\tctx: Pick<ExtensionContext, \"cwd\">,\n): Partial<BuildDynamicSystemPromptOptions> {\n\tconst options = event.systemPromptOptions ?? {};\n\treturn {\n\t\tcwd: options.cwd ?? ctx.cwd,\n\t\tselectedTools: options.selectedTools,\n\t\ttoolSnippets: options.toolSnippets,\n\t\tpromptGuidelines: options.promptGuidelines,\n\t\tcontextFiles: options.contextFiles,\n\t\tskills: options.skills,\n\t};\n}\n\nfunction getSettings(ctx: ExtensionContext): ReturnType<typeof loadPromptPresetSettings> {\n\treturn loadPromptPresetSettings(SettingsManager.create(ctx.cwd));\n}\n\nfunction getPresetName(ctx: ExtensionContext, event?: Pick<ModelSelectEvent, \"model\">): string {\n\tconst model = event?.model ?? ctx.model;\n\tif (!model) {\n\t\treturn \"fallback (senpi-current)\";\n\t}\n\treturn resolvePresetName(model, getSettings(ctx)) ?? \"fallback (senpi-current)\";\n}\n\nfunction refreshHeader(ctx: ExtensionContext, event?: Pick<ModelSelectEvent, \"model\">): void {\n\tconst presetName = getPresetName(ctx, event);\n\tctx.ui.setHeader((_tui, theme) => ({\n\t\trender: () => [theme.fg(\"accent\", theme.bold(`Prompt preset: ${presetName}`))],\n\t\tinvalidate: () => {},\n\t}));\n}\n\nexport default function promptPresetExtension(pi: ExtensionAPI): void {\n\tpi.on(\"before_agent_start\", async (event, ctx) => {\n\t\tconst model = ctx.model;\n\t\tif (!model) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst preset = resolvePreset(model, getSettings(ctx), eventOptionsToBuilderInput(event, ctx));\n\t\tif (!preset) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\treturn { systemPrompt: preset.prompt };\n\t});\n\n\tpi.on(\"session_start\", async (_event, ctx) => {\n\t\trefreshHeader(ctx);\n\t});\n\n\tpi.on(\"model_select\", async (event, ctx) => {\n\t\trefreshHeader(ctx, event);\n\t\tconst preset = resolvePreset(event.model, getSettings(ctx), eventOptionsToBuilderInput(event, ctx));\n\t\treturn {\n\t\t\tsystemPrompt: preset?.prompt ?? null,\n\t\t\tsystemPromptName: preset?.name ?? \"fallback (senpi-current)\",\n\t\t};\n\t});\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/prompt-preset/index.ts"],"names":[],"mappings":"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","sourcesContent":["import type { BuildDynamicSystemPromptOptions } from \"../../../dynamic-prompt/build.js\";\nimport { SettingsManager } from \"../../../settings-manager.js\";\nimport type { ExtensionAPI, ExtensionContext, ModelSelectEvent } from \"../../types.js\";\nimport { resolvePreset, resolvePresetName } from \"./presets.js\";\nimport { loadPromptPresetSettings } from \"./settings.js\";\n\ninterface SystemPromptOptionsLike {\n\tcwd?: string;\n\tselectedTools?: string[];\n\ttoolSnippets?: Record<string, string>;\n\tpromptGuidelines?: string[];\n\tcontextFiles?: Array<{ path: string; content: string }>;\n\tskills?: BuildDynamicSystemPromptOptions[\"skills\"];\n}\n\nfunction eventOptionsToBuilderInput(\n\tevent: { systemPromptOptions: SystemPromptOptionsLike | undefined },\n\tctx: Pick<ExtensionContext, \"cwd\">,\n): Partial<BuildDynamicSystemPromptOptions> {\n\tconst options = event.systemPromptOptions ?? {};\n\treturn {\n\t\tcwd: options.cwd ?? ctx.cwd,\n\t\tselectedTools: options.selectedTools,\n\t\ttoolSnippets: options.toolSnippets,\n\t\tpromptGuidelines: options.promptGuidelines,\n\t\tcontextFiles: options.contextFiles,\n\t\tskills: options.skills,\n\t};\n}\n\nfunction getSettings(ctx: ExtensionContext): ReturnType<typeof loadPromptPresetSettings> {\n\treturn loadPromptPresetSettings(SettingsManager.create(ctx.cwd));\n}\n\nfunction getPresetName(ctx: ExtensionContext, event?: Pick<ModelSelectEvent, \"model\">): string {\n\tconst model = event?.model ?? ctx.model;\n\tif (!model) {\n\t\treturn \"fallback (senpi-current)\";\n\t}\n\treturn resolvePresetName(model, getSettings(ctx)) ?? \"fallback (senpi-current)\";\n}\n\nfunction refreshHeader(ctx: ExtensionContext, event?: Pick<ModelSelectEvent, \"model\">): void {\n\tconst presetName = getPresetName(ctx, event);\n\tctx.ui.setHeader((_tui, theme) => ({\n\t\trender: () => [theme.fg(\"accent\", theme.bold(`Prompt preset: ${presetName}`))],\n\t\tinvalidate: () => {},\n\t}));\n}\n\nexport default function promptPresetExtension(pi: ExtensionAPI): void {\n\tpi.on(\"before_agent_start\", async (event, ctx) => {\n\t\tconst model = ctx.model;\n\t\tif (!model) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst preset = resolvePreset(model, getSettings(ctx), eventOptionsToBuilderInput(event, ctx));\n\t\tif (!preset) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\treturn { systemPrompt: preset.prompt };\n\t});\n\n\tpi.on(\"session_start\", async (_event, ctx) => {\n\t\trefreshHeader(ctx);\n\t});\n\n\tpi.on(\"model_select\", async (event, ctx) => {\n\t\trefreshHeader(ctx, event);\n\t\tconst preset = resolvePreset(event.model, getSettings(ctx), eventOptionsToBuilderInput(event, ctx));\n\t\treturn {\n\t\t\tsystemPrompt: preset?.prompt ?? null,\n\t\t\tsystemPromptName: preset?.name ?? \"fallback (senpi-current)\",\n\t\t};\n\t});\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/prompt-preset/index.ts"],"names":[],"mappings":"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","sourcesContent":["import type { BuildDynamicSystemPromptOptions } from \"../../../dynamic-prompt/build.ts\";\nimport { SettingsManager } from \"../../../settings-manager.ts\";\nimport type { ExtensionAPI, ExtensionContext, ModelSelectEvent } from \"../../types.ts\";\nimport { resolvePreset, resolvePresetName } from \"./presets.ts\";\nimport { loadPromptPresetSettings } from \"./settings.ts\";\n\ninterface SystemPromptOptionsLike {\n\tcwd?: string;\n\tselectedTools?: string[];\n\ttoolSnippets?: Record<string, string>;\n\tpromptGuidelines?: string[];\n\tcontextFiles?: Array<{ path: string; content: string }>;\n\tskills?: BuildDynamicSystemPromptOptions[\"skills\"];\n}\n\nfunction eventOptionsToBuilderInput(\n\tevent: { systemPromptOptions: SystemPromptOptionsLike | undefined },\n\tctx: Pick<ExtensionContext, \"cwd\">,\n): Partial<BuildDynamicSystemPromptOptions> {\n\tconst options = event.systemPromptOptions ?? {};\n\treturn {\n\t\tcwd: options.cwd ?? ctx.cwd,\n\t\tselectedTools: options.selectedTools,\n\t\ttoolSnippets: options.toolSnippets,\n\t\tpromptGuidelines: options.promptGuidelines,\n\t\tcontextFiles: options.contextFiles,\n\t\tskills: options.skills,\n\t};\n}\n\nfunction getSettings(ctx: ExtensionContext): ReturnType<typeof loadPromptPresetSettings> {\n\treturn loadPromptPresetSettings(SettingsManager.create(ctx.cwd));\n}\n\nfunction getPresetName(ctx: ExtensionContext, event?: Pick<ModelSelectEvent, \"model\">): string {\n\tconst model = event?.model ?? ctx.model;\n\tif (!model) {\n\t\treturn \"fallback (senpi-current)\";\n\t}\n\treturn resolvePresetName(model, getSettings(ctx)) ?? \"fallback (senpi-current)\";\n}\n\nfunction refreshHeader(ctx: ExtensionContext, event?: Pick<ModelSelectEvent, \"model\">): void {\n\tconst presetName = getPresetName(ctx, event);\n\tctx.ui.setHeader((_tui, theme) => ({\n\t\trender: () => [theme.fg(\"accent\", theme.bold(`Prompt preset: ${presetName}`))],\n\t\tinvalidate: () => {},\n\t}));\n}\n\nexport default function promptPresetExtension(pi: ExtensionAPI): void {\n\tpi.on(\"before_agent_start\", async (event, ctx) => {\n\t\tconst model = ctx.model;\n\t\tif (!model) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst preset = resolvePreset(model, getSettings(ctx), eventOptionsToBuilderInput(event, ctx));\n\t\tif (!preset) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\treturn { systemPrompt: preset.prompt };\n\t});\n\n\tpi.on(\"session_start\", async (_event, ctx) => {\n\t\trefreshHeader(ctx);\n\t});\n\n\tpi.on(\"model_select\", async (event, ctx) => {\n\t\trefreshHeader(ctx, event);\n\t\tconst preset = resolvePreset(event.model, getSettings(ctx), eventOptionsToBuilderInput(event, ctx));\n\t\treturn {\n\t\t\tsystemPrompt: preset?.prompt ?? null,\n\t\t\tsystemPromptName: preset?.name ?? \"fallback (senpi-current)\",\n\t\t};\n\t});\n}\n"]}
@@ -1,3 +1,3 @@
1
- import { type BuildDynamicSystemPromptOptions } from "../../../dynamic-prompt/build.js";
1
+ import { type BuildDynamicSystemPromptOptions } from "../../../dynamic-prompt/build.ts";
2
2
  export declare function buildKimiK26Prompt(options: BuildDynamicSystemPromptOptions): string;
3
3
  //# sourceMappingURL=kimi-k2-6.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"kimi-k2-6.d.ts","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/prompt-preset/kimi-k2-6.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,+BAA+B,EAA4B,MAAM,kCAAkC,CAAC;AAQlH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,+BAA+B,GAAG,MAAM,CAEnF","sourcesContent":["import { type BuildDynamicSystemPromptOptions, buildDynamicSystemPrompt } from \"../../../dynamic-prompt/build.js\";\n\nfunction buildKimiK26Tuning(): string {\n\treturn `Avoid restating the user's request, do not re-derive facts you already established this turn, and skip filler verification language (\"let me confirm again\", \"to be sure\", \"just to double-check\").\n\nThe intent gate routing line is required every turn. On confirmation turns where the user already chose an option in plain words, acknowledge that choice and execute, not re-litigate alternatives the user already eliminated.`;\n}\n\nexport function buildKimiK26Prompt(options: BuildDynamicSystemPromptOptions): string {\n\treturn buildDynamicSystemPrompt({ ...options, tuningSection: buildKimiK26Tuning() });\n}\n"]}
1
+ {"version":3,"file":"kimi-k2-6.d.ts","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/prompt-preset/kimi-k2-6.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,+BAA+B,EAA4B,MAAM,kCAAkC,CAAC;AAQlH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,+BAA+B,GAAG,MAAM,CAEnF","sourcesContent":["import { type BuildDynamicSystemPromptOptions, buildDynamicSystemPrompt } from \"../../../dynamic-prompt/build.ts\";\n\nfunction buildKimiK26Tuning(): string {\n\treturn `Avoid restating the user's request, do not re-derive facts you already established this turn, and skip filler verification language (\"let me confirm again\", \"to be sure\", \"just to double-check\").\n\nThe intent gate routing line is required every turn. On confirmation turns where the user already chose an option in plain words, acknowledge that choice and execute, not re-litigate alternatives the user already eliminated.`;\n}\n\nexport function buildKimiK26Prompt(options: BuildDynamicSystemPromptOptions): string {\n\treturn buildDynamicSystemPrompt({ ...options, tuningSection: buildKimiK26Tuning() });\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"kimi-k2-6.js","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/prompt-preset/kimi-k2-6.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwC,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAElH,SAAS,kBAAkB,GAAW;IACrC,OAAO;;iOAEyN,CAAC;AAAA,CACjO;AAED,MAAM,UAAU,kBAAkB,CAAC,OAAwC,EAAU;IACpF,OAAO,wBAAwB,CAAC,EAAE,GAAG,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,EAAE,CAAC,CAAC;AAAA,CACrF","sourcesContent":["import { type BuildDynamicSystemPromptOptions, buildDynamicSystemPrompt } from \"../../../dynamic-prompt/build.js\";\n\nfunction buildKimiK26Tuning(): string {\n\treturn `Avoid restating the user's request, do not re-derive facts you already established this turn, and skip filler verification language (\"let me confirm again\", \"to be sure\", \"just to double-check\").\n\nThe intent gate routing line is required every turn. On confirmation turns where the user already chose an option in plain words, acknowledge that choice and execute, not re-litigate alternatives the user already eliminated.`;\n}\n\nexport function buildKimiK26Prompt(options: BuildDynamicSystemPromptOptions): string {\n\treturn buildDynamicSystemPrompt({ ...options, tuningSection: buildKimiK26Tuning() });\n}\n"]}
1
+ {"version":3,"file":"kimi-k2-6.js","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/prompt-preset/kimi-k2-6.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwC,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAElH,SAAS,kBAAkB,GAAW;IACrC,OAAO;;iOAEyN,CAAC;AAAA,CACjO;AAED,MAAM,UAAU,kBAAkB,CAAC,OAAwC,EAAU;IACpF,OAAO,wBAAwB,CAAC,EAAE,GAAG,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,EAAE,CAAC,CAAC;AAAA,CACrF","sourcesContent":["import { type BuildDynamicSystemPromptOptions, buildDynamicSystemPrompt } from \"../../../dynamic-prompt/build.ts\";\n\nfunction buildKimiK26Tuning(): string {\n\treturn `Avoid restating the user's request, do not re-derive facts you already established this turn, and skip filler verification language (\"let me confirm again\", \"to be sure\", \"just to double-check\").\n\nThe intent gate routing line is required every turn. On confirmation turns where the user already chose an option in plain words, acknowledge that choice and execute, not re-litigate alternatives the user already eliminated.`;\n}\n\nexport function buildKimiK26Prompt(options: BuildDynamicSystemPromptOptions): string {\n\treturn buildDynamicSystemPrompt({ ...options, tuningSection: buildKimiK26Tuning() });\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  import type { Api, Model } from "@earendil-works/pi-ai";
2
- import type { BuildDynamicSystemPromptOptions } from "../../../dynamic-prompt/build.js";
3
- import { type PromptPresetName, type PromptPresetSettings } from "./settings.js";
4
- export type { PromptPresetSettings } from "./settings.js";
2
+ import type { BuildDynamicSystemPromptOptions } from "../../../dynamic-prompt/build.ts";
3
+ import { type PromptPresetName, type PromptPresetSettings } from "./settings.ts";
4
+ export type { PromptPresetSettings } from "./settings.ts";
5
5
  type ResolvedPresetName = Exclude<PromptPresetName, "auto">;
6
6
  type ModelWithPromptPresetMetadata = Pick<Model<Api>, "id" | "provider"> & {
7
7
  name?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/prompt-preset/presets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,kCAAkC,CAAC;AAUxF,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,oBAAoB,EAAqB,MAAM,eAAe,CAAC;AAEpG,YAAY,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAE1D,KAAK,kBAAkB,GAAG,OAAO,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;AAC5D,KAAK,6BAA6B,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,UAAU,CAAC,GAAG;IAC1E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,WAAW,oBAAoB;IACpC,IAAI,EAAE,kBAAkB,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;CACf;AAiDD,wBAAgB,iBAAiB,CAChC,KAAK,EAAE,6BAA6B,EACpC,QAAQ,EAAE,oBAAoB,GAC5B,kBAAkB,GAAG,SAAS,CAsBhC;AAoCD,wBAAgB,aAAa,CAC5B,KAAK,EAAE,6BAA6B,EACpC,QAAQ,EAAE,oBAAoB,EAC9B,OAAO,CAAC,EAAE,OAAO,CAAC,+BAA+B,CAAC,GAChD,oBAAoB,GAAG,SAAS,CAMlC","sourcesContent":["import type { Api, Model } from \"@earendil-works/pi-ai\";\nimport type { BuildDynamicSystemPromptOptions } from \"../../../dynamic-prompt/build.js\";\nimport { buildClaudeOpus45Prompt } from \"./claude-opus-4-5.js\";\nimport { buildClaudeOpus46Prompt } from \"./claude-opus-4-6.js\";\nimport { buildClaudeOpus47Prompt } from \"./claude-opus-4-7.js\";\nimport { buildGpt52Prompt } from \"./gpt-5.2.js\";\nimport { buildGpt53CodexPrompt } from \"./gpt-5.3-codex.js\";\nimport { buildGpt54Prompt } from \"./gpt-5.4.js\";\nimport { buildGpt55Prompt } from \"./gpt-5.5.js\";\nimport { buildGpt5Prompt } from \"./gpt-5.js\";\nimport { buildKimiK26Prompt } from \"./kimi-k2-6.js\";\nimport { type PromptPresetName, type PromptPresetSettings, parsePromptPreset } from \"./settings.js\";\n\nexport type { PromptPresetSettings } from \"./settings.js\";\n\ntype ResolvedPresetName = Exclude<PromptPresetName, \"auto\">;\ntype ModelWithPromptPresetMetadata = Pick<Model<Api>, \"id\" | \"provider\"> & {\n\tname?: string;\n\tpromptPreset?: string;\n};\n\nexport interface ResolvedPromptPreset {\n\tname: ResolvedPresetName;\n\tprompt: string;\n}\n\nfunction normalizeModelId(modelId: string): string {\n\treturn modelId.toLowerCase().replace(/\\s+/g, \"-\");\n}\n\ntype Gpt5Version = \"gpt-5.2\" | \"gpt-5.3-codex\" | \"gpt-5.4\" | \"gpt-5.5\";\n\nfunction extractGpt5Version(modelId: string): Gpt5Version | undefined {\n\tconst normalized = normalizeModelId(modelId);\n\tif (normalized.includes(\"gpt-5.5\")) {\n\t\treturn \"gpt-5.5\";\n\t}\n\tif (normalized.includes(\"gpt-5.4\")) {\n\t\treturn \"gpt-5.4\";\n\t}\n\tif (normalized.includes(\"gpt-5.3\")) {\n\t\treturn \"gpt-5.3-codex\";\n\t}\n\tif (normalized.includes(\"gpt-5.2\")) {\n\t\treturn \"gpt-5.2\";\n\t}\n\treturn undefined;\n}\n\nfunction hasKimiK26Signal(value: string): boolean {\n\treturn /(?:^|[/@._-])kimi-k2(?:[._-]|p)6(?:$|[/@._-])/.test(normalizeModelId(value));\n}\n\nfunction isKimiK26Model(model: ModelWithPromptPresetMetadata): boolean {\n\treturn hasKimiK26Signal(model.id) || (model.name !== undefined && hasKimiK26Signal(model.name));\n}\n\ntype ClaudeOpusVersion = \"claude-opus-4-7\" | \"claude-opus-4-6\" | \"claude-opus-4-5\";\n\nfunction extractClaudeOpusVersion(modelId: string): ClaudeOpusVersion | undefined {\n\tconst normalized = normalizeModelId(modelId);\n\tif (normalized.includes(\"opus-4-7\")) {\n\t\treturn \"claude-opus-4-7\";\n\t}\n\tif (normalized.includes(\"opus-4-6\")) {\n\t\treturn \"claude-opus-4-6\";\n\t}\n\tif (normalized.includes(\"opus-4-5\") || normalized.includes(\"opus-4.5\")) {\n\t\treturn \"claude-opus-4-5\";\n\t}\n\treturn undefined;\n}\n\nexport function resolvePresetName(\n\tmodel: ModelWithPromptPresetMetadata,\n\tsettings: PromptPresetSettings,\n): ResolvedPresetName | undefined {\n\tif (settings.promptPreset !== \"auto\") {\n\t\treturn settings.promptPreset;\n\t}\n\n\tconst modelPromptPreset = parsePromptPreset(model.promptPreset);\n\tif (modelPromptPreset && modelPromptPreset !== \"auto\") {\n\t\treturn modelPromptPreset;\n\t}\n\n\tconst gpt5Version = extractGpt5Version(model.id);\n\tif (gpt5Version) {\n\t\treturn gpt5Version;\n\t}\n\tif (isKimiK26Model(model)) {\n\t\treturn \"kimi-k2-6\";\n\t}\n\tconst claudeVersion = extractClaudeOpusVersion(model.id);\n\tif (claudeVersion) {\n\t\treturn claudeVersion;\n\t}\n\treturn undefined;\n}\n\nfunction buildPreset(name: ResolvedPresetName, options: BuildDynamicSystemPromptOptions): ResolvedPromptPreset {\n\tswitch (name) {\n\t\tcase \"gpt-5.5\":\n\t\t\treturn { name, prompt: buildGpt55Prompt(options) };\n\t\tcase \"gpt-5.4\":\n\t\t\treturn { name, prompt: buildGpt54Prompt(options) };\n\t\tcase \"gpt-5.3-codex\":\n\t\t\treturn { name, prompt: buildGpt53CodexPrompt(options) };\n\t\tcase \"gpt-5.2\":\n\t\t\treturn { name, prompt: buildGpt52Prompt(options) };\n\t\tcase \"gpt-5\":\n\t\t\treturn { name, prompt: buildGpt5Prompt(options) };\n\t\tcase \"kimi-k2-6\":\n\t\t\treturn { name, prompt: buildKimiK26Prompt(options) };\n\t\tcase \"claude-opus-4-7\":\n\t\t\treturn { name, prompt: buildClaudeOpus47Prompt(options) };\n\t\tcase \"claude-opus-4-6\":\n\t\t\treturn { name, prompt: buildClaudeOpus46Prompt(options) };\n\t\tcase \"claude-opus-4-5\":\n\t\t\treturn { name, prompt: buildClaudeOpus45Prompt(options) };\n\t}\n}\n\nfunction withDefaults(options: Partial<BuildDynamicSystemPromptOptions> = {}): BuildDynamicSystemPromptOptions {\n\treturn {\n\t\tcwd: options.cwd ?? \"\",\n\t\tselectedTools: options.selectedTools ?? [],\n\t\ttoolSnippets: options.toolSnippets ?? {},\n\t\tpromptGuidelines: options.promptGuidelines ?? [],\n\t\tcontextFiles: options.contextFiles ?? [],\n\t\tskills: options.skills ?? [],\n\t};\n}\n\nexport function resolvePreset(\n\tmodel: ModelWithPromptPresetMetadata,\n\tsettings: PromptPresetSettings,\n\toptions?: Partial<BuildDynamicSystemPromptOptions>,\n): ResolvedPromptPreset | undefined {\n\tconst name = resolvePresetName(model, settings);\n\tif (!name) {\n\t\treturn undefined;\n\t}\n\treturn buildPreset(name, withDefaults(options));\n}\n"]}
1
+ {"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../../../../../src/core/extensions/builtin/prompt-preset/presets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,kCAAkC,CAAC;AAUxF,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,oBAAoB,EAAqB,MAAM,eAAe,CAAC;AAEpG,YAAY,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAE1D,KAAK,kBAAkB,GAAG,OAAO,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;AAC5D,KAAK,6BAA6B,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,UAAU,CAAC,GAAG;IAC1E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,WAAW,oBAAoB;IACpC,IAAI,EAAE,kBAAkB,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;CACf;AAiDD,wBAAgB,iBAAiB,CAChC,KAAK,EAAE,6BAA6B,EACpC,QAAQ,EAAE,oBAAoB,GAC5B,kBAAkB,GAAG,SAAS,CAsBhC;AAoCD,wBAAgB,aAAa,CAC5B,KAAK,EAAE,6BAA6B,EACpC,QAAQ,EAAE,oBAAoB,EAC9B,OAAO,CAAC,EAAE,OAAO,CAAC,+BAA+B,CAAC,GAChD,oBAAoB,GAAG,SAAS,CAMlC","sourcesContent":["import type { Api, Model } from \"@earendil-works/pi-ai\";\nimport type { BuildDynamicSystemPromptOptions } from \"../../../dynamic-prompt/build.ts\";\nimport { buildClaudeOpus45Prompt } from \"./claude-opus-4-5.ts\";\nimport { buildClaudeOpus46Prompt } from \"./claude-opus-4-6.ts\";\nimport { buildClaudeOpus47Prompt } from \"./claude-opus-4-7.ts\";\nimport { buildGpt52Prompt } from \"./gpt-5.2.ts\";\nimport { buildGpt53CodexPrompt } from \"./gpt-5.3-codex.ts\";\nimport { buildGpt54Prompt } from \"./gpt-5.4.ts\";\nimport { buildGpt55Prompt } from \"./gpt-5.5.ts\";\nimport { buildGpt5Prompt } from \"./gpt-5.ts\";\nimport { buildKimiK26Prompt } from \"./kimi-k2-6.ts\";\nimport { type PromptPresetName, type PromptPresetSettings, parsePromptPreset } from \"./settings.ts\";\n\nexport type { PromptPresetSettings } from \"./settings.ts\";\n\ntype ResolvedPresetName = Exclude<PromptPresetName, \"auto\">;\ntype ModelWithPromptPresetMetadata = Pick<Model<Api>, \"id\" | \"provider\"> & {\n\tname?: string;\n\tpromptPreset?: string;\n};\n\nexport interface ResolvedPromptPreset {\n\tname: ResolvedPresetName;\n\tprompt: string;\n}\n\nfunction normalizeModelId(modelId: string): string {\n\treturn modelId.toLowerCase().replace(/\\s+/g, \"-\");\n}\n\ntype Gpt5Version = \"gpt-5.2\" | \"gpt-5.3-codex\" | \"gpt-5.4\" | \"gpt-5.5\";\n\nfunction extractGpt5Version(modelId: string): Gpt5Version | undefined {\n\tconst normalized = normalizeModelId(modelId);\n\tif (normalized.includes(\"gpt-5.5\")) {\n\t\treturn \"gpt-5.5\";\n\t}\n\tif (normalized.includes(\"gpt-5.4\")) {\n\t\treturn \"gpt-5.4\";\n\t}\n\tif (normalized.includes(\"gpt-5.3\")) {\n\t\treturn \"gpt-5.3-codex\";\n\t}\n\tif (normalized.includes(\"gpt-5.2\")) {\n\t\treturn \"gpt-5.2\";\n\t}\n\treturn undefined;\n}\n\nfunction hasKimiK26Signal(value: string): boolean {\n\treturn /(?:^|[/@._-])kimi-k2(?:[._-]|p)6(?:$|[/@._-])/.test(normalizeModelId(value));\n}\n\nfunction isKimiK26Model(model: ModelWithPromptPresetMetadata): boolean {\n\treturn hasKimiK26Signal(model.id) || (model.name !== undefined && hasKimiK26Signal(model.name));\n}\n\ntype ClaudeOpusVersion = \"claude-opus-4-7\" | \"claude-opus-4-6\" | \"claude-opus-4-5\";\n\nfunction extractClaudeOpusVersion(modelId: string): ClaudeOpusVersion | undefined {\n\tconst normalized = normalizeModelId(modelId);\n\tif (normalized.includes(\"opus-4-7\")) {\n\t\treturn \"claude-opus-4-7\";\n\t}\n\tif (normalized.includes(\"opus-4-6\")) {\n\t\treturn \"claude-opus-4-6\";\n\t}\n\tif (normalized.includes(\"opus-4-5\") || normalized.includes(\"opus-4.5\")) {\n\t\treturn \"claude-opus-4-5\";\n\t}\n\treturn undefined;\n}\n\nexport function resolvePresetName(\n\tmodel: ModelWithPromptPresetMetadata,\n\tsettings: PromptPresetSettings,\n): ResolvedPresetName | undefined {\n\tif (settings.promptPreset !== \"auto\") {\n\t\treturn settings.promptPreset;\n\t}\n\n\tconst modelPromptPreset = parsePromptPreset(model.promptPreset);\n\tif (modelPromptPreset && modelPromptPreset !== \"auto\") {\n\t\treturn modelPromptPreset;\n\t}\n\n\tconst gpt5Version = extractGpt5Version(model.id);\n\tif (gpt5Version) {\n\t\treturn gpt5Version;\n\t}\n\tif (isKimiK26Model(model)) {\n\t\treturn \"kimi-k2-6\";\n\t}\n\tconst claudeVersion = extractClaudeOpusVersion(model.id);\n\tif (claudeVersion) {\n\t\treturn claudeVersion;\n\t}\n\treturn undefined;\n}\n\nfunction buildPreset(name: ResolvedPresetName, options: BuildDynamicSystemPromptOptions): ResolvedPromptPreset {\n\tswitch (name) {\n\t\tcase \"gpt-5.5\":\n\t\t\treturn { name, prompt: buildGpt55Prompt(options) };\n\t\tcase \"gpt-5.4\":\n\t\t\treturn { name, prompt: buildGpt54Prompt(options) };\n\t\tcase \"gpt-5.3-codex\":\n\t\t\treturn { name, prompt: buildGpt53CodexPrompt(options) };\n\t\tcase \"gpt-5.2\":\n\t\t\treturn { name, prompt: buildGpt52Prompt(options) };\n\t\tcase \"gpt-5\":\n\t\t\treturn { name, prompt: buildGpt5Prompt(options) };\n\t\tcase \"kimi-k2-6\":\n\t\t\treturn { name, prompt: buildKimiK26Prompt(options) };\n\t\tcase \"claude-opus-4-7\":\n\t\t\treturn { name, prompt: buildClaudeOpus47Prompt(options) };\n\t\tcase \"claude-opus-4-6\":\n\t\t\treturn { name, prompt: buildClaudeOpus46Prompt(options) };\n\t\tcase \"claude-opus-4-5\":\n\t\t\treturn { name, prompt: buildClaudeOpus45Prompt(options) };\n\t}\n}\n\nfunction withDefaults(options: Partial<BuildDynamicSystemPromptOptions> = {}): BuildDynamicSystemPromptOptions {\n\treturn {\n\t\tcwd: options.cwd ?? \"\",\n\t\tselectedTools: options.selectedTools ?? [],\n\t\ttoolSnippets: options.toolSnippets ?? {},\n\t\tpromptGuidelines: options.promptGuidelines ?? [],\n\t\tcontextFiles: options.contextFiles ?? [],\n\t\tskills: options.skills ?? [],\n\t};\n}\n\nexport function resolvePreset(\n\tmodel: ModelWithPromptPresetMetadata,\n\tsettings: PromptPresetSettings,\n\toptions?: Partial<BuildDynamicSystemPromptOptions>,\n): ResolvedPromptPreset | undefined {\n\tconst name = resolvePresetName(model, settings);\n\tif (!name) {\n\t\treturn undefined;\n\t}\n\treturn buildPreset(name, withDefaults(options));\n}\n"]}