@caupulican/pi-adaptative 0.90.12 → 0.91.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 (278) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/README.md +8 -10
  3. package/dist/bundled-resources/skills/icm-architect/LICENSE +21 -0
  4. package/dist/bundled-resources/skills/icm-architect/SKILL.md +112 -0
  5. package/dist/bundled-resources/skills/icm-architect/assets/templates/CLAUDE.md +27 -0
  6. package/dist/bundled-resources/skills/icm-architect/assets/templates/CONTEXT.md +14 -0
  7. package/dist/bundled-resources/skills/icm-architect/assets/templates/node.md +29 -0
  8. package/dist/bundled-resources/skills/icm-architect/assets/templates/object.md +43 -0
  9. package/dist/bundled-resources/skills/icm-architect/assets/templates/process.md +38 -0
  10. package/dist/bundled-resources/skills/icm-architect/assets/templates/questionnaire.md +9 -0
  11. package/dist/bundled-resources/skills/icm-architect/assets/templates/schema.md +24 -0
  12. package/dist/bundled-resources/skills/icm-architect/assets/templates/stage-CONTEXT.md +21 -0
  13. package/dist/bundled-resources/skills/icm-architect/references/core.md +92 -0
  14. package/dist/bundled-resources/skills/icm-architect/references/forms.md +182 -0
  15. package/dist/bundled-resources/skills/icm-architect/references/system-map.md +122 -0
  16. package/dist/cli/args.d.ts.map +1 -1
  17. package/dist/cli/args.js +2 -1
  18. package/dist/cli/args.js.map +1 -1
  19. package/dist/core/agent-paths.d.ts +2 -2
  20. package/dist/core/agent-paths.d.ts.map +1 -1
  21. package/dist/core/agent-paths.js +1 -0
  22. package/dist/core/agent-paths.js.map +1 -1
  23. package/dist/core/agent-session.d.ts +12 -0
  24. package/dist/core/agent-session.d.ts.map +1 -1
  25. package/dist/core/agent-session.js +40 -10
  26. package/dist/core/agent-session.js.map +1 -1
  27. package/dist/core/autonomy/lane-tool-surface.d.ts.map +1 -1
  28. package/dist/core/autonomy/lane-tool-surface.js +2 -0
  29. package/dist/core/autonomy/lane-tool-surface.js.map +1 -1
  30. package/dist/core/background-tool-task-controller.d.ts +9 -0
  31. package/dist/core/background-tool-task-controller.d.ts.map +1 -1
  32. package/dist/core/background-tool-task-controller.js +23 -0
  33. package/dist/core/background-tool-task-controller.js.map +1 -1
  34. package/dist/core/bash-executor.js +3 -3
  35. package/dist/core/bash-executor.js.map +1 -1
  36. package/dist/core/context/local-graph-memory-provider.d.ts +9 -0
  37. package/dist/core/context/local-graph-memory-provider.d.ts.map +1 -0
  38. package/dist/core/context/local-graph-memory-provider.js +122 -0
  39. package/dist/core/context/local-graph-memory-provider.js.map +1 -0
  40. package/dist/core/context/tool-output-packer.d.ts +2 -2
  41. package/dist/core/context/tool-output-packer.d.ts.map +1 -1
  42. package/dist/core/context/tool-output-packer.js +3 -3
  43. package/dist/core/context/tool-output-packer.js.map +1 -1
  44. package/dist/core/context-gc.d.ts.map +1 -1
  45. package/dist/core/context-gc.js +2 -0
  46. package/dist/core/context-gc.js.map +1 -1
  47. package/dist/core/default-tool-surface.d.ts.map +1 -1
  48. package/dist/core/default-tool-surface.js +5 -0
  49. package/dist/core/default-tool-surface.js.map +1 -1
  50. package/dist/core/delegation/worker-agent-control-coordinator.d.ts +1 -0
  51. package/dist/core/delegation/worker-agent-control-coordinator.d.ts.map +1 -1
  52. package/dist/core/delegation/worker-agent-control-coordinator.js +16 -8
  53. package/dist/core/delegation/worker-agent-control-coordinator.js.map +1 -1
  54. package/dist/core/delegation/worker-agent-control.d.ts +2 -0
  55. package/dist/core/delegation/worker-agent-control.d.ts.map +1 -1
  56. package/dist/core/delegation/worker-agent-control.js.map +1 -1
  57. package/dist/core/delegation/worker-context-inheritance-policy.d.ts +3 -3
  58. package/dist/core/delegation/worker-context-inheritance-policy.js +4 -4
  59. package/dist/core/delegation/worker-context-inheritance-policy.js.map +1 -1
  60. package/dist/core/delegation/worker-delegation-controller.d.ts +1 -5
  61. package/dist/core/delegation/worker-delegation-controller.d.ts.map +1 -1
  62. package/dist/core/delegation/worker-delegation-controller.js +19 -9
  63. package/dist/core/delegation/worker-delegation-controller.js.map +1 -1
  64. package/dist/core/delegation/worker-tree-budget-coordinator.d.ts +2 -0
  65. package/dist/core/delegation/worker-tree-budget-coordinator.d.ts.map +1 -1
  66. package/dist/core/delegation/worker-tree-budget-coordinator.js +6 -0
  67. package/dist/core/delegation/worker-tree-budget-coordinator.js.map +1 -1
  68. package/dist/core/extensions/runner.d.ts.map +1 -1
  69. package/dist/core/extensions/runner.js +1 -0
  70. package/dist/core/extensions/runner.js.map +1 -1
  71. package/dist/core/foreground-terminal-handoff-controller.d.ts +0 -1
  72. package/dist/core/foreground-terminal-handoff-controller.d.ts.map +1 -1
  73. package/dist/core/foreground-terminal-handoff-controller.js +1 -2
  74. package/dist/core/foreground-terminal-handoff-controller.js.map +1 -1
  75. package/dist/core/goals/goal-continuation-controller.d.ts +7 -1
  76. package/dist/core/goals/goal-continuation-controller.d.ts.map +1 -1
  77. package/dist/core/goals/goal-continuation-controller.js +16 -0
  78. package/dist/core/goals/goal-continuation-controller.js.map +1 -1
  79. package/dist/core/goals/goal-runtime-snapshot.d.ts +3 -0
  80. package/dist/core/goals/goal-runtime-snapshot.d.ts.map +1 -1
  81. package/dist/core/goals/goal-runtime-snapshot.js +8 -1
  82. package/dist/core/goals/goal-runtime-snapshot.js.map +1 -1
  83. package/dist/core/goals/goal-session-controller.d.ts +2 -0
  84. package/dist/core/goals/goal-session-controller.d.ts.map +1 -1
  85. package/dist/core/goals/goal-session-controller.js +1 -0
  86. package/dist/core/goals/goal-session-controller.js.map +1 -1
  87. package/dist/core/goals/goal-tool-core.d.ts +18 -0
  88. package/dist/core/goals/goal-tool-core.d.ts.map +1 -1
  89. package/dist/core/goals/goal-tool-core.js +62 -0
  90. package/dist/core/goals/goal-tool-core.js.map +1 -1
  91. package/dist/core/goals/natural-language-goal.d.ts.map +1 -1
  92. package/dist/core/goals/natural-language-goal.js +4 -2
  93. package/dist/core/goals/natural-language-goal.js.map +1 -1
  94. package/dist/core/human-input-controller.d.ts +3 -34
  95. package/dist/core/human-input-controller.d.ts.map +1 -1
  96. package/dist/core/human-input-controller.js +3 -161
  97. package/dist/core/human-input-controller.js.map +1 -1
  98. package/dist/core/keybindings.d.ts +5 -0
  99. package/dist/core/keybindings.d.ts.map +1 -1
  100. package/dist/core/keybindings.js +2 -0
  101. package/dist/core/keybindings.js.map +1 -1
  102. package/dist/core/learning/reflection-turn-analysis.d.ts.map +1 -1
  103. package/dist/core/learning/reflection-turn-analysis.js +10 -1
  104. package/dist/core/learning/reflection-turn-analysis.js.map +1 -1
  105. package/dist/core/memory/providers/file-store.d.ts.map +1 -1
  106. package/dist/core/memory/providers/file-store.js +4 -0
  107. package/dist/core/memory/providers/file-store.js.map +1 -1
  108. package/dist/core/memory-controller.d.ts +3 -0
  109. package/dist/core/memory-controller.d.ts.map +1 -1
  110. package/dist/core/memory-controller.js +18 -0
  111. package/dist/core/memory-controller.js.map +1 -1
  112. package/dist/core/model-capability.d.ts.map +1 -1
  113. package/dist/core/model-capability.js +1 -0
  114. package/dist/core/model-capability.js.map +1 -1
  115. package/dist/core/orchestration/work-state-projection.d.ts +4 -0
  116. package/dist/core/orchestration/work-state-projection.d.ts.map +1 -1
  117. package/dist/core/orchestration/work-state-projection.js +11 -0
  118. package/dist/core/orchestration/work-state-projection.js.map +1 -1
  119. package/dist/core/pipelines/context.d.ts +6 -0
  120. package/dist/core/pipelines/context.d.ts.map +1 -0
  121. package/dist/core/pipelines/context.js +102 -0
  122. package/dist/core/pipelines/context.js.map +1 -0
  123. package/dist/core/pipelines/discover.d.ts +11 -0
  124. package/dist/core/pipelines/discover.d.ts.map +1 -0
  125. package/dist/core/pipelines/discover.js +147 -0
  126. package/dist/core/pipelines/discover.js.map +1 -0
  127. package/dist/core/pipelines/increment.d.ts +24 -0
  128. package/dist/core/pipelines/increment.d.ts.map +1 -0
  129. package/dist/core/pipelines/increment.js +121 -0
  130. package/dist/core/pipelines/increment.js.map +1 -0
  131. package/dist/core/pipelines/index.d.ts +8 -0
  132. package/dist/core/pipelines/index.d.ts.map +1 -0
  133. package/dist/core/pipelines/index.js +8 -0
  134. package/dist/core/pipelines/index.js.map +1 -0
  135. package/dist/core/pipelines/parse-contract.d.ts +10 -0
  136. package/dist/core/pipelines/parse-contract.d.ts.map +1 -0
  137. package/dist/core/pipelines/parse-contract.js +105 -0
  138. package/dist/core/pipelines/parse-contract.js.map +1 -0
  139. package/dist/core/pipelines/run-state.d.ts +26 -0
  140. package/dist/core/pipelines/run-state.d.ts.map +1 -0
  141. package/dist/core/pipelines/run-state.js +135 -0
  142. package/dist/core/pipelines/run-state.js.map +1 -0
  143. package/dist/core/pipelines/session-pipeline-run.d.ts +6 -0
  144. package/dist/core/pipelines/session-pipeline-run.d.ts.map +1 -0
  145. package/dist/core/pipelines/session-pipeline-run.js +18 -0
  146. package/dist/core/pipelines/session-pipeline-run.js.map +1 -0
  147. package/dist/core/pipelines/types.d.ts +91 -0
  148. package/dist/core/pipelines/types.d.ts.map +1 -0
  149. package/dist/core/pipelines/types.js +44 -0
  150. package/dist/core/pipelines/types.js.map +1 -0
  151. package/dist/core/reflection-controller.d.ts +2 -0
  152. package/dist/core/reflection-controller.d.ts.map +1 -1
  153. package/dist/core/reflection-controller.js +53 -30
  154. package/dist/core/reflection-controller.js.map +1 -1
  155. package/dist/core/resource-loader.d.ts +21 -0
  156. package/dist/core/resource-loader.d.ts.map +1 -1
  157. package/dist/core/resource-loader.js +45 -18
  158. package/dist/core/resource-loader.js.map +1 -1
  159. package/dist/core/runtime-builder.d.ts +3 -0
  160. package/dist/core/runtime-builder.d.ts.map +1 -1
  161. package/dist/core/runtime-builder.js +49 -1
  162. package/dist/core/runtime-builder.js.map +1 -1
  163. package/dist/core/sdk.d.ts.map +1 -1
  164. package/dist/core/sdk.js +3 -0
  165. package/dist/core/sdk.js.map +1 -1
  166. package/dist/core/session-role.d.ts.map +1 -1
  167. package/dist/core/session-role.js +2 -0
  168. package/dist/core/session-role.js.map +1 -1
  169. package/dist/core/settings-manager.d.ts +12 -0
  170. package/dist/core/settings-manager.d.ts.map +1 -1
  171. package/dist/core/settings-manager.js +43 -9
  172. package/dist/core/settings-manager.js.map +1 -1
  173. package/dist/core/system-prompt-builder.js +1 -1
  174. package/dist/core/system-prompt-builder.js.map +1 -1
  175. package/dist/core/system-prompt.d.ts +1 -1
  176. package/dist/core/system-prompt.d.ts.map +1 -1
  177. package/dist/core/system-prompt.js +30 -22
  178. package/dist/core/system-prompt.js.map +1 -1
  179. package/dist/core/tasks/task-projection.d.ts +2 -0
  180. package/dist/core/tasks/task-projection.d.ts.map +1 -1
  181. package/dist/core/tasks/task-projection.js +1 -0
  182. package/dist/core/tasks/task-projection.js.map +1 -1
  183. package/dist/core/tasks/task-state.d.ts.map +1 -1
  184. package/dist/core/tasks/task-state.js +6 -1
  185. package/dist/core/tasks/task-state.js.map +1 -1
  186. package/dist/core/tools/bash.d.ts.map +1 -1
  187. package/dist/core/tools/bash.js +11 -3
  188. package/dist/core/tools/bash.js.map +1 -1
  189. package/dist/core/tools/delegate.d.ts.map +1 -1
  190. package/dist/core/tools/delegate.js +9 -3
  191. package/dist/core/tools/delegate.js.map +1 -1
  192. package/dist/core/tools/edit.d.ts.map +1 -1
  193. package/dist/core/tools/edit.js +47 -5
  194. package/dist/core/tools/edit.js.map +1 -1
  195. package/dist/core/tools/goal.d.ts +16 -1
  196. package/dist/core/tools/goal.d.ts.map +1 -1
  197. package/dist/core/tools/goal.js +14 -2
  198. package/dist/core/tools/goal.js.map +1 -1
  199. package/dist/core/tools/index.d.ts +1 -1
  200. package/dist/core/tools/index.d.ts.map +1 -1
  201. package/dist/core/tools/index.js +1 -1
  202. package/dist/core/tools/index.js.map +1 -1
  203. package/dist/core/tools/output-accumulator.d.ts +5 -0
  204. package/dist/core/tools/output-accumulator.d.ts.map +1 -1
  205. package/dist/core/tools/output-accumulator.js +33 -2
  206. package/dist/core/tools/output-accumulator.js.map +1 -1
  207. package/dist/core/tools/pipeline.d.ts +35 -0
  208. package/dist/core/tools/pipeline.d.ts.map +1 -0
  209. package/dist/core/tools/pipeline.js +203 -0
  210. package/dist/core/tools/pipeline.js.map +1 -0
  211. package/dist/core/tools/skill-audit.d.ts.map +1 -1
  212. package/dist/core/tools/skill-audit.js +2 -1
  213. package/dist/core/tools/skill-audit.js.map +1 -1
  214. package/dist/core/tools/skill.d.ts.map +1 -1
  215. package/dist/core/tools/skill.js +2 -1
  216. package/dist/core/tools/skill.js.map +1 -1
  217. package/dist/core/tools/skillify.d.ts.map +1 -1
  218. package/dist/core/tools/skillify.js +3 -1
  219. package/dist/core/tools/skillify.js.map +1 -1
  220. package/dist/core/tools/task-steps.d.ts +1 -1
  221. package/dist/core/tools/task-steps.d.ts.map +1 -1
  222. package/dist/core/tools/task-steps.js +9 -0
  223. package/dist/core/tools/task-steps.js.map +1 -1
  224. package/dist/core/tools/tool-task.d.ts.map +1 -1
  225. package/dist/core/tools/tool-task.js +5 -1
  226. package/dist/core/tools/tool-task.js.map +1 -1
  227. package/dist/core/tools/write.d.ts.map +1 -1
  228. package/dist/core/tools/write.js +1 -0
  229. package/dist/core/tools/write.js.map +1 -1
  230. package/dist/index.d.ts +1 -1
  231. package/dist/index.d.ts.map +1 -1
  232. package/dist/index.js +1 -1
  233. package/dist/index.js.map +1 -1
  234. package/dist/modes/interactive/components/settings-selector.d.ts +3 -0
  235. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  236. package/dist/modes/interactive/components/settings-selector.js +66 -0
  237. package/dist/modes/interactive/components/settings-selector.js.map +1 -1
  238. package/dist/modes/interactive/components/skill-invocation-message.js +1 -1
  239. package/dist/modes/interactive/components/skill-invocation-message.js.map +1 -1
  240. package/dist/modes/interactive/components/tool-execution.d.ts +6 -1
  241. package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
  242. package/dist/modes/interactive/components/tool-execution.js +20 -1
  243. package/dist/modes/interactive/components/tool-execution.js.map +1 -1
  244. package/dist/modes/interactive/components/tool-group.d.ts +4 -0
  245. package/dist/modes/interactive/components/tool-group.d.ts.map +1 -1
  246. package/dist/modes/interactive/components/tool-group.js +96 -7
  247. package/dist/modes/interactive/components/tool-group.js.map +1 -1
  248. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  249. package/dist/modes/interactive/interactive-mode.js +8 -10
  250. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  251. package/dist/modes/interactive/key-handlers.d.ts +1 -0
  252. package/dist/modes/interactive/key-handlers.d.ts.map +1 -1
  253. package/dist/modes/interactive/key-handlers.js +2 -1
  254. package/dist/modes/interactive/key-handlers.js.map +1 -1
  255. package/dist/modes/interactive/settings-selector-flow.d.ts.map +1 -1
  256. package/dist/modes/interactive/settings-selector-flow.js +12 -0
  257. package/dist/modes/interactive/settings-selector-flow.js.map +1 -1
  258. package/docs/extensions.md +7 -5
  259. package/docs/harness-architecture.md +3 -4
  260. package/docs/keybindings.md +3 -2
  261. package/docs/quickstart.md +4 -4
  262. package/docs/sdk.md +3 -1
  263. package/docs/settings.md +16 -2
  264. package/docs/task-steps.md +1 -0
  265. package/docs/usage.md +6 -7
  266. package/docs/worker-profiles.md +1 -1
  267. package/docs/worktree-sync.md +1 -1
  268. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  269. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  270. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  271. package/examples/extensions/minimal-mode.ts +1 -1
  272. package/examples/extensions/sandbox/package-lock.json +2 -2
  273. package/examples/extensions/sandbox/package.json +1 -1
  274. package/examples/extensions/with-deps/package-lock.json +2 -2
  275. package/examples/extensions/with-deps/package.json +1 -1
  276. package/examples/sdk/07-context-files.ts +5 -2
  277. package/npm-shrinkwrap.json +12 -12
  278. package/package.json +4 -4
@@ -1,5 +1,5 @@
1
1
  import { existsSync, readFileSync, statSync } from "node:fs";
2
- import { join, resolve, sep } from "node:path";
2
+ import { dirname, join, resolve, sep } from "node:path";
3
3
  import chalk from "chalk";
4
4
  import { CONFIG_DIR_NAME, getBundledExtensionsDir, getBundledPromptsDir, getBundledSkillsDir } from "../config.js";
5
5
  import { loadThemeFromPath } from "../modes/interactive/theme/theme.js";
@@ -62,6 +62,13 @@ function sanitizeContextFileContent(filePath, content) {
62
62
  * so a profile-DENIED file's content is never processed into the session — only its embedded
63
63
  * `<resource-profile>` blocks are read for discovery (see {@link loadRawProjectContextFiles}).
64
64
  */
65
+ export function isGlobalAgentsFile(filePath, agentDir, platform = process.platform) {
66
+ const fileDir = canonicalizePath(dirname(filePath));
67
+ const resolvedAgentDir = canonicalizePath(agentDir);
68
+ return platform === "win32"
69
+ ? fileDir.toLowerCase() === resolvedAgentDir.toLowerCase()
70
+ : fileDir === resolvedAgentDir;
71
+ }
65
72
  function loadRawContextFilesFromDir(dir) {
66
73
  const candidates = ["AGENTS.md", "AGENTS.MD", "CLAUDE.md", "CLAUDE.MD", "GEMINI.md", "GEMINI.MD"];
67
74
  const files = [];
@@ -103,7 +110,7 @@ export function loadRawProjectContextFiles(options) {
103
110
  seenPathIdentities.add(identity);
104
111
  contextFiles.push(globalContext);
105
112
  }
106
- if (options.projectTrusted !== false) {
113
+ if (options.includeProject === true && options.projectTrusted !== false) {
107
114
  const ancestorContextFiles = [];
108
115
  let currentDir = resolvedCwd;
109
116
  const root = resolve("/");
@@ -137,10 +144,15 @@ export function loadRawProjectContextFiles(options) {
137
144
  * only the allowed subset instead, so denied content is never processed.
138
145
  */
139
146
  export function loadProjectContextFiles(options) {
140
- return loadRawProjectContextFiles(options).map((file) => ({
141
- path: file.path,
142
- content: sanitizeContextFileContent(file.path, file.rawContent),
143
- }));
147
+ return loadRawProjectContextFiles({
148
+ cwd: options.cwd,
149
+ agentDir: options.agentDir,
150
+ projectTrusted: options.projectTrusted,
151
+ includeProject: options.includeProject === true,
152
+ platform: options.platform,
153
+ }).map((file) => isGlobalAgentsFile(file.path, options.agentDir, options.platform)
154
+ ? { path: file.path, content: sanitizeContextFileContent(file.path, file.rawContent) }
155
+ : { path: file.path });
144
156
  }
145
157
  export class DefaultResourceLoader {
146
158
  constructor(options) {
@@ -216,6 +228,20 @@ export class DefaultResourceLoader {
216
228
  return allowed && !blocked;
217
229
  });
218
230
  }
231
+ /**
232
+ * Re-scan the user skills directory plus already-discovered skill paths so a newly written or
233
+ * archived skill is visible to `skill` search/load without a full extension reload.
234
+ */
235
+ refreshSkills() {
236
+ if (this.noSkills)
237
+ return;
238
+ const userSkillsDir = resourceDir("skills", this.agentDir);
239
+ const nextPaths = existsSync(userSkillsDir)
240
+ ? this.mergePaths(this.lastSkillPaths, [userSkillsDir])
241
+ : this.lastSkillPaths;
242
+ this.lastSkillPaths = nextPaths;
243
+ this.updateSkillsFromPaths(nextPaths);
244
+ }
219
245
  getPrompts() {
220
246
  return { prompts: this.prompts, diagnostics: this.promptDiagnostics };
221
247
  }
@@ -744,15 +770,14 @@ export class DefaultResourceLoader {
744
770
  this.themeDiagnostics.push({ type: "error", message: "Theme path does not exist", path: resolved });
745
771
  }
746
772
  }
747
- // Read RAW content once. Sanitization/threat-scanning/exposure is deferred until AFTER the
748
- // agents filter, so a profile-denied context file's content is never processed into the session.
749
- const rawAgentsFiles = this.noContextFiles
750
- ? []
751
- : loadRawProjectContextFiles({
752
- cwd: this.cwd,
753
- agentDir: this.agentDir,
754
- projectTrusted: this.settingsManager.isProjectTrusted(),
755
- });
773
+ // Global agent-dir files always load. Project/ancestor files are discovered only when
774
+ // this directory/project opts in (`projectContextFiles: "on-demand"`) and `-nc` is not set.
775
+ const rawAgentsFiles = loadRawProjectContextFiles({
776
+ cwd: this.cwd,
777
+ agentDir: this.agentDir,
778
+ projectTrusted: this.settingsManager.isProjectTrusted(),
779
+ includeProject: !this.noContextFiles && this.settingsManager.getProjectContextFiles() === "on-demand",
780
+ });
756
781
  const agentEmbeddedProfiles = {};
757
782
  const activeProfileNames = this.settingsManager.getActiveResourceProfileNames();
758
783
  // DISCOVERY read (metadata only, never loading): an embedded <resource-profile> block can live
@@ -781,9 +806,11 @@ export class DefaultResourceLoader {
781
806
  const blocked = matchesResourceProfilePattern(file.path, agentProfileFilter.block, this.cwd);
782
807
  return allowed && !blocked;
783
808
  })
784
- // Sanitize (strip profile blocks + scan threats) ONLY for allowed files the denied
785
- // files' raw content was used solely for profile-block discovery above.
786
- .map((file) => ({ path: file.path, content: sanitizeContextFileContent(file.path, file.rawContent) })),
809
+ // Global files are sanitized and injected. Project files stay path-only so the
810
+ // model can read them on demand; denied files are dropped before this map.
811
+ .map((file) => isGlobalAgentsFile(file.path, this.agentDir)
812
+ ? { path: file.path, content: sanitizeContextFileContent(file.path, file.rawContent) }
813
+ : { path: file.path }),
787
814
  };
788
815
  // Strict UAC silently denying AGENTS.md/CLAUDE.md context is a sharp footgun for lean
789
816
  // profiles — surface it loudly instead of letting instructions vanish without a trace.