@elliotding/ai-agent-mcp 0.2.21 → 0.2.22

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 (66) hide show
  1. package/dist/client-adapters/codex-adapter.d.ts +48 -0
  2. package/dist/client-adapters/codex-adapter.d.ts.map +1 -0
  3. package/dist/client-adapters/codex-adapter.js +69 -0
  4. package/dist/client-adapters/codex-adapter.js.map +1 -0
  5. package/dist/client-adapters/cursor-adapter.d.ts +36 -0
  6. package/dist/client-adapters/cursor-adapter.d.ts.map +1 -0
  7. package/dist/client-adapters/cursor-adapter.js +65 -0
  8. package/dist/client-adapters/cursor-adapter.js.map +1 -0
  9. package/dist/client-adapters/index.d.ts +89 -0
  10. package/dist/client-adapters/index.d.ts.map +1 -0
  11. package/dist/client-adapters/index.js +49 -0
  12. package/dist/client-adapters/index.js.map +1 -0
  13. package/dist/config/index.d.ts +19 -1
  14. package/dist/config/index.d.ts.map +1 -1
  15. package/dist/config/index.js +12 -2
  16. package/dist/config/index.js.map +1 -1
  17. package/dist/prompts/manager.d.ts +18 -0
  18. package/dist/prompts/manager.d.ts.map +1 -1
  19. package/dist/prompts/manager.js +51 -5
  20. package/dist/prompts/manager.js.map +1 -1
  21. package/dist/server/http.d.ts +10 -6
  22. package/dist/server/http.d.ts.map +1 -1
  23. package/dist/server/http.js +83 -89
  24. package/dist/server/http.js.map +1 -1
  25. package/dist/server/streamable-http.d.ts +28 -0
  26. package/dist/server/streamable-http.d.ts.map +1 -0
  27. package/dist/server/streamable-http.js +126 -0
  28. package/dist/server/streamable-http.js.map +1 -0
  29. package/dist/server.d.ts +8 -1
  30. package/dist/server.d.ts.map +1 -1
  31. package/dist/server.js +60 -96
  32. package/dist/server.js.map +1 -1
  33. package/dist/telemetry/manager.d.ts +5 -0
  34. package/dist/telemetry/manager.d.ts.map +1 -1
  35. package/dist/telemetry/manager.js +5 -0
  36. package/dist/telemetry/manager.js.map +1 -1
  37. package/dist/tools/manage-subscription.d.ts.map +1 -1
  38. package/dist/tools/manage-subscription.js +33 -2
  39. package/dist/tools/manage-subscription.js.map +1 -1
  40. package/dist/tools/policy-generator.d.ts +31 -0
  41. package/dist/tools/policy-generator.d.ts.map +1 -0
  42. package/dist/tools/policy-generator.js +53 -0
  43. package/dist/tools/policy-generator.js.map +1 -0
  44. package/dist/tools/resolve-prompt-content.d.ts.map +1 -1
  45. package/dist/tools/resolve-prompt-content.js +14 -1
  46. package/dist/tools/resolve-prompt-content.js.map +1 -1
  47. package/dist/tools/search-resources.d.ts.map +1 -1
  48. package/dist/tools/search-resources.js +24 -0
  49. package/dist/tools/search-resources.js.map +1 -1
  50. package/dist/tools/sync-resources.d.ts.map +1 -1
  51. package/dist/tools/sync-resources.js +134 -39
  52. package/dist/tools/sync-resources.js.map +1 -1
  53. package/dist/tools/uninstall-resource.d.ts.map +1 -1
  54. package/dist/tools/uninstall-resource.js +21 -3
  55. package/dist/tools/uninstall-resource.js.map +1 -1
  56. package/dist/types/tools.d.ts +78 -1
  57. package/dist/types/tools.d.ts.map +1 -1
  58. package/dist/utils/codex-paths.d.ts +35 -0
  59. package/dist/utils/codex-paths.d.ts.map +1 -0
  60. package/dist/utils/codex-paths.js +49 -0
  61. package/dist/utils/codex-paths.js.map +1 -0
  62. package/package.json +1 -1
  63. package/dist/transport/sse.d.ts +0 -29
  64. package/dist/transport/sse.d.ts.map +0 -1
  65. package/dist/transport/sse.js +0 -271
  66. package/dist/transport/sse.js.map +0 -1
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Codex Policy Generator
3
+ *
4
+ * Aggregates all subscribed CSP routing rule contents into a single
5
+ * `csp-routing-policy.md` markdown file that is injected into Codex via
6
+ * the `developer_instructions` key in `~/.codex/config.toml`.
7
+ *
8
+ * Design rationale:
9
+ * - Codex does not support per-file `.mdc` rule directories like Cursor does.
10
+ * - The `developer_instructions` config key accepts a freeform string that
11
+ * Codex loads at session startup as additional system instructions.
12
+ * - Rather than dumping raw rule content into config.toml (size / escaping
13
+ * issues), we write a stable policy file path and instruct Codex to read it.
14
+ * - The policy file itself is a well-structured markdown document that Codex
15
+ * can parse and apply during the session.
16
+ */
17
+ export interface RuleContent {
18
+ name: string;
19
+ content: string;
20
+ }
21
+ /**
22
+ * Generates the aggregated `csp-routing-policy.md` content from the given
23
+ * list of rule contents.
24
+ *
25
+ * The output format is a self-describing markdown document with:
26
+ * - A header section explaining the file purpose.
27
+ * - One `##` section per rule, using the rule name as the heading.
28
+ * - A generation timestamp for cache-busting diagnostics.
29
+ */
30
+ export declare function generatePolicyContent(rules: RuleContent[]): string;
31
+ //# sourceMappingURL=policy-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policy-generator.d.ts","sourceRoot":"","sources":["../../src/tools/policy-generator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,MAAM,CAyBlE"}
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ /**
3
+ * Codex Policy Generator
4
+ *
5
+ * Aggregates all subscribed CSP routing rule contents into a single
6
+ * `csp-routing-policy.md` markdown file that is injected into Codex via
7
+ * the `developer_instructions` key in `~/.codex/config.toml`.
8
+ *
9
+ * Design rationale:
10
+ * - Codex does not support per-file `.mdc` rule directories like Cursor does.
11
+ * - The `developer_instructions` config key accepts a freeform string that
12
+ * Codex loads at session startup as additional system instructions.
13
+ * - Rather than dumping raw rule content into config.toml (size / escaping
14
+ * issues), we write a stable policy file path and instruct Codex to read it.
15
+ * - The policy file itself is a well-structured markdown document that Codex
16
+ * can parse and apply during the session.
17
+ */
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ exports.generatePolicyContent = generatePolicyContent;
20
+ /**
21
+ * Generates the aggregated `csp-routing-policy.md` content from the given
22
+ * list of rule contents.
23
+ *
24
+ * The output format is a self-describing markdown document with:
25
+ * - A header section explaining the file purpose.
26
+ * - One `##` section per rule, using the rule name as the heading.
27
+ * - A generation timestamp for cache-busting diagnostics.
28
+ */
29
+ function generatePolicyContent(rules) {
30
+ const timestamp = new Date().toISOString();
31
+ const ruleSections = rules
32
+ .map(({ name, content }) => {
33
+ const sanitisedName = name.replace(/[`*#]/g, ' ').trim();
34
+ return `## ${sanitisedName}\n\n${content.trim()}`;
35
+ })
36
+ .join('\n\n---\n\n');
37
+ return [
38
+ '---',
39
+ 'title: CSP AI Agent Routing Policy',
40
+ `generated_at: ${timestamp}`,
41
+ `rule_count: ${rules.length}`,
42
+ '---',
43
+ '',
44
+ '# CSP AI Agent Routing Policy',
45
+ '',
46
+ '> Auto-generated by CSP AI Agent MCP. Do not edit manually.',
47
+ '> This file is refreshed automatically on `sync_resources`.',
48
+ '',
49
+ ruleSections,
50
+ '',
51
+ ].join('\n');
52
+ }
53
+ //# sourceMappingURL=policy-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policy-generator.js","sourceRoot":"","sources":["../../src/tools/policy-generator.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;AAgBH,sDAyBC;AAlCD;;;;;;;;GAQG;AACH,SAAgB,qBAAqB,CAAC,KAAoB;IACxD,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAE3C,MAAM,YAAY,GAAG,KAAK;SACvB,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE;QACzB,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QACzD,OAAO,MAAM,aAAa,OAAO,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;IACpD,CAAC,CAAC;SACD,IAAI,CAAC,aAAa,CAAC,CAAC;IAEvB,OAAO;QACL,KAAK;QACL,oCAAoC;QACpC,iBAAiB,SAAS,EAAE;QAC5B,eAAe,KAAK,CAAC,MAAM,EAAE;QAC7B,KAAK;QACL,EAAE;QACF,+BAA+B;QAC/B,EAAE;QACF,6DAA6D;QAC7D,6DAA6D;QAC7D,EAAE;QACF,YAAY;QACZ,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"resolve-prompt-content.d.ts","sourceRoot":"","sources":["../../src/tools/resolve-prompt-content.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAQH,OAAO,KAAK,EAEV,0BAA0B,EAC1B,UAAU,EACX,MAAM,gBAAgB,CAAC;AAExB,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,UAAU,CAAC,0BAA0B,CAAC,CAAC,CA6EjD;AA8KD,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsCpC,CAAC"}
1
+ {"version":3,"file":"resolve-prompt-content.d.ts","sourceRoot":"","sources":["../../src/tools/resolve-prompt-content.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AASH,OAAO,KAAK,EAEV,0BAA0B,EAC1B,UAAU,EACX,MAAM,gBAAgB,CAAC;AAExB,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,UAAU,CAAC,0BAA0B,CAAC,CAAC,CAmGjD;AA8KD,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsCpC,CAAC"}
@@ -65,6 +65,7 @@ const index_js_1 = require("../prompts/index.js");
65
65
  const client_js_1 = require("../api/client.js");
66
66
  const multi_source_manager_js_1 = require("../git/multi-source-manager.js");
67
67
  const md_reference_expander_js_1 = require("../utils/md-reference-expander.js");
68
+ const index_js_2 = require("../telemetry/index.js");
68
69
  async function resolvePromptContent(params) {
69
70
  const p = params;
70
71
  const promptName = typeof p.prompt_name === 'string' && p.prompt_name.trim() !== ''
@@ -120,6 +121,18 @@ async function resolvePromptContent(params) {
120
121
  resourceId: resolved.meta.resource_id,
121
122
  contentSource: resolved.contentSource,
122
123
  }, 'resolve_prompt_content: prompt resolved successfully');
124
+ // Record telemetry directly on the server side so that invocations are always
125
+ // counted regardless of whether the AI Agent subsequently calls track_usage.
126
+ // Only commands and skills reach this path (rules are injected silently).
127
+ let usageRecorded = false;
128
+ if (userToken) {
129
+ await index_js_2.telemetry
130
+ .recordInvocation(resolved.meta.resource_id, resolved.meta.resource_type, resolved.meta.resource_name, userToken, jiraId)
131
+ .then(() => { usageRecorded = true; })
132
+ .catch((err) => {
133
+ logger_1.logger.warn({ resourceId: resolved.meta.resource_id, error: err.message }, 'resolve_prompt_content: telemetry recordInvocation failed (non-critical)');
134
+ });
135
+ }
123
136
  return {
124
137
  success: true,
125
138
  data: {
@@ -130,7 +143,7 @@ async function resolvePromptContent(params) {
130
143
  description: resolved.description,
131
144
  content: resolved.content,
132
145
  content_source: resolved.contentSource,
133
- usage_tracked: Boolean(userToken),
146
+ usage_tracked: usageRecorded,
134
147
  },
135
148
  };
136
149
  }
@@ -1 +1 @@
1
- {"version":3,"file":"resolve-prompt-content.js","sourceRoot":"","sources":["../../src/tools/resolve-prompt-content.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resolve-prompt-content.js","sourceRoot":"","sources":["../../src/tools/resolve-prompt-content.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeH,oDAqGC;AAlHD,2CAA6B;AAC7B,4CAAyC;AACzC,kDAAoD;AACpD,gDAA6C;AAC7C,4EAAuE;AACvE,gFAAuE;AACvE,oDAAkD;AAO3C,KAAK,UAAU,oBAAoB,CACxC,MAAe;IAEf,MAAM,CAAC,GAAG,MAAoC,CAAC;IAC/C,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,WAAW,KAAK,QAAQ,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE;QACjF,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE;QACtB,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,WAAW,KAAK,QAAQ,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE;QACjF,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE;QACtB,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;IACvE,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE;QACrE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE;QAClB,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,YAAY,GAAG,OAAO,CAAC,CAAC,aAAa,KAAK,QAAQ,IAAI,CAAC,CAAC,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE;QACvF,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,EAAE;QACxB,CAAC,CAAC,SAAS,CAAC;IAEd,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,EAAE,CAAC;QAC/B,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE;gBACL,IAAI,EAAE,kBAAkB;gBACxB,OAAO,EAAE,+CAA+C;aACzD;SACF,CAAC;IACJ,CAAC;IAED,0EAA0E;IAC1E,0EAA0E;IAC1E,wEAAwE;IACxE,qEAAqE;IACrE,uDAAuD;IACvD,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,kBAAkB,CAAC,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;IAC7E,CAAC;IAED,yEAAyE;IACzE,MAAM,QAAQ,GAAG,MAAM,wBAAa,CAAC,iCAAiC,CAAC;QACrE,UAAU;QACV,UAAU;QACV,SAAS;QACT,MAAM;KACP,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,MAAM,GAAG,UAAU,IAAI,UAAU,IAAI,SAAS,CAAC;QACrD,eAAM,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,EAAE,0CAA0C,CAAC,CAAC;QACpF,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE;gBACL,IAAI,EAAE,kBAAkB;gBACxB,OAAO,EAAE,WAAW,MAAM,sDAAsD;aACjF;SACF,CAAC;IACJ,CAAC;IAED,eAAM,CAAC,IAAI,CACT;QACE,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,UAAU,EAAE,QAAQ,CAAC,IAAI,CAAC,WAAW;QACrC,aAAa,EAAE,QAAQ,CAAC,aAAa;KACtC,EACD,sDAAsD,CACvD,CAAC;IAEF,8EAA8E;IAC9E,6EAA6E;IAC7E,0EAA0E;IAC1E,IAAI,aAAa,GAAG,KAAK,CAAC;IAC1B,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,oBAAS;aACZ,gBAAgB,CACf,QAAQ,CAAC,IAAI,CAAC,WAAW,EACzB,QAAQ,CAAC,IAAI,CAAC,aAAoC,EAClD,QAAQ,CAAC,IAAI,CAAC,aAAa,EAC3B,SAAS,EACT,MAAM,CACP;aACA,IAAI,CAAC,GAAG,EAAE,GAAG,aAAa,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;aACrC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACb,eAAM,CAAC,IAAI,CACT,EAAE,UAAU,EAAE,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAG,GAAa,CAAC,OAAO,EAAE,EACxE,0EAA0E,CAC3E,CAAC;QACJ,CAAC,CAAC,CAAC;IACP,CAAC;IAED,OAAO;QACL,OAAO,EAAE,IAAI;QACb,IAAI,EAAE;YACJ,WAAW,EAAE,QAAQ,CAAC,UAAU;YAChC,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAC,WAAW;YACtC,aAAa,EAAE,QAAQ,CAAC,IAAI,CAAC,aAAa;YAC1C,aAAa,EAAE,QAAQ,CAAC,IAAI,CAAC,aAAa;YAC1C,WAAW,EAAE,QAAQ,CAAC,WAAW;YACjC,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,cAAc,EAAE,QAAQ,CAAC,aAAa;YACtC,aAAa,EAAE,aAAa;SAC7B;KACF,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,KAAK,UAAU,kBAAkB,CAC/B,UAA8B,EAC9B,UAA8B,EAC9B,YAAoB,EACpB,SAAiB;IAEjB,+CAA+C;IAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAClE,IAAI,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC3D,eAAM,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,wDAAwD,CAAC,CAAC;QAClG,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE;gBACL,IAAI,EAAE,uBAAuB;gBAC7B,OAAO,EAAE,0BAA0B,YAAY,wDAAwD;aACxG;SACF,CAAC;IACJ,CAAC;IAED,iEAAiE;IACjE,IAAI,YAAgC,CAAC;IACrC,IAAI,kBAAsC,CAAC;IAC3C,IAAI,YAAY,GAAwB,OAAO,CAAC;IAEhD,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,UAAU,GAAG,wBAAa,CAAC,eAAe,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QACxE,IAAI,UAAU,EAAE,CAAC;YACf,YAAY,GAAG,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC;YAC7C,kBAAkB,GAAG,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC;YACjD,YAAY,GAAG,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC;QAC/C,CAAC;IACH,CAAC;SAAM,IAAI,UAAU,EAAE,CAAC;QACtB,MAAM,UAAU,GAAG,wBAAa,CAAC,eAAe,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QACxE,IAAI,UAAU,EAAE,CAAC;YACf,YAAY,GAAG,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC;YAC7C,kBAAkB,GAAG,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC;YACjD,YAAY,GAAG,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,IAAI,CAAC,YAAY,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACzC,MAAM,MAAM,GAAG,UAAU,IAAI,UAAU,IAAI,SAAS,CAAC;QACrD,eAAM,CAAC,IAAI,CACT,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,EACxC,2EAA2E,CAC5E,CAAC;QACF,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE;gBACL,IAAI,EAAE,kBAAkB;gBACxB,OAAO,EAAE,oBAAoB,MAAM,uDAAuD;aAC3F;SACF,CAAC;IACJ,CAAC;IAED,6DAA6D;IAC7D,MAAM,YAAY,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAE/F,0EAA0E;IAC1E,6EAA6E;IAC7E,0EAA0E;IAC1E,oEAAoE;IACpE,eAAM,CAAC,IAAI,CACT,EAAE,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,kBAAkB,EAAE,EAC5D,sDAAsD,CACvD,CAAC;IACF,IAAI,CAAC;QACH,MAAM,cAAc,GAAG,MAAM,qBAAS,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,SAAS,IAAI,SAAS,CAAC,CAAC;QACpG,MAAM,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,CAAC;QACpF,IAAI,OAAO,EAAE,CAAC;YACZ,eAAM,CAAC,IAAI,CACT,EAAE,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAC9F,kEAAkE,CACnE,CAAC;YACF,MAAM,EAAE,eAAe,EAAE,GAAG,IAAA,6CAAkB,EAAC,OAAO,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;YACpF,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE;oBACJ,WAAW,EAAE,SAAS,YAAY,IAAI,QAAQ,EAAE;oBAChD,WAAW,EAAE,kBAAkB;oBAC/B,aAAa,EAAE,YAAY;oBAC3B,aAAa,EAAE,YAAY;oBAC3B,WAAW,EAAE,2BAA2B,QAAQ,EAAE;oBAClD,OAAO,EAAE,eAAe;oBACxB,cAAc,EAAE,KAAK;oBACrB,aAAa,EAAE,KAAK;iBACrB;aACF,CAAC;QACJ,CAAC;QACD,eAAM,CAAC,IAAI,CACT,EAAE,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,iBAAiB,EAAE,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EACpG,kGAAkG,CACnG,CAAC;IACJ,CAAC;IAAC,OAAO,MAAM,EAAE,CAAC;QAChB,eAAM,CAAC,IAAI,CACT,EAAE,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAG,MAAgB,CAAC,OAAO,EAAE,EAC1E,0FAA0F,CAC3F,CAAC;IACJ,CAAC;IAED,0EAA0E;IAC1E,uEAAuE;IACvE,wEAAwE;IACxE,gEAAgE;IAChE,eAAM,CAAC,IAAI,CACT,EAAE,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,EACxC,+DAA+D,CAChE,CAAC;IACF,MAAM,WAAW,GAAG,MAAM,+CAAqB,CAAC,iBAAiB,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;IAC9F,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,CAAC;IAE7E,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,eAAM,CAAC,IAAI,CACT,EAAE,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EACxF,uEAAuE,CACxE,CAAC;QACF,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE;gBACL,IAAI,EAAE,yBAAyB;gBAC/B,OAAO,EACL,SAAS,QAAQ,4BAA4B,YAAY,KAAK;oBAC9D,kEAAkE;oBAClE,0BAA0B,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,EAAE;aACpF;SACF,CAAC;IACJ,CAAC;IAED,eAAM,CAAC,IAAI,CACT,EAAE,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,EAClG,qEAAqE,CACtE,CAAC;IAEF,2EAA2E;IAC3E,MAAM,EAAE,eAAe,EAAE,GAAG,IAAA,6CAAkB,EAAC,SAAS,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;IAEtF,eAAM,CAAC,IAAI,CACT,EAAE,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,eAAe,CAAC,MAAM,EAAE,EAC/E,iEAAiE,CAClE,CAAC;IAEF,OAAO;QACL,OAAO,EAAE,IAAI;QACb,IAAI,EAAE;YACJ,WAAW,EAAE,SAAS,YAAY,IAAI,QAAQ,EAAE;YAChD,WAAW,EAAE,kBAAkB;YAC/B,aAAa,EAAE,YAAY;YAC3B,aAAa,EAAE,YAAY;YAC3B,WAAW,EAAE,2BAA2B,QAAQ,EAAE;YAClD,OAAO,EAAE,eAAe;YACxB,cAAc,EAAE,OAAO;YACvB,aAAa,EAAE,KAAK;SACrB;KACF,CAAC;AACJ,CAAC;AAEY,QAAA,wBAAwB,GAAG;IACtC,IAAI,EAAE,wBAAwB;IAC9B,WAAW,EACT,0GAA0G;QAC1G,2IAA2I;QAC3I,gFAAgF;QAChF,kFAAkF;QAClF,4GAA4G;QAC5G,uGAAuG;IACzG,WAAW,EAAE;QACX,IAAI,EAAE,QAAiB;QACvB,UAAU,EAAE;YACV,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,+DAA+D;aAC7E;YACD,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,qDAAqD;aACnE;YACD,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,qEAAqE;aACnF;YACD,OAAO,EAAE;gBACP,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,+CAA+C;aAC7D;YACD,aAAa,EAAE;gBACb,IAAI,EAAE,QAAQ;gBACd,WAAW,EACT,mFAAmF;oBACnF,sGAAsG;oBACtG,kFAAkF;aACrF;SACF;KACF;IACD,OAAO,EAAE,oBAAoB;CAC9B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"search-resources.d.ts","sourceRoot":"","sources":["../../src/tools/search-resources.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,KAAK,EAAyB,qBAAqB,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAmD/F,wBAAsB,eAAe,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC,CAkHjG;AAGD,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6B/B,CAAC"}
1
+ {"version":3,"file":"search-resources.d.ts","sourceRoot":"","sources":["../../src/tools/search-resources.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,KAAK,EAAyB,qBAAqB,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAoD/F,wBAAsB,eAAe,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC,CAkJjG;AAGD,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6B/B,CAAC"}
@@ -12,6 +12,7 @@ const manager_1 = require("../filesystem/manager");
12
12
  const cursor_paths_js_1 = require("../utils/cursor-paths.js");
13
13
  const errors_1 = require("../types/errors");
14
14
  const search_1 = require("../search");
15
+ const index_js_1 = require("../prompts/index.js");
15
16
  // Search coordinator singleton
16
17
  const searchCoordinator = new search_1.SearchCoordinator();
17
18
  // Simple in-memory cache
@@ -88,6 +89,20 @@ async function searchResources(params) {
88
89
  enhancedResults: enhancedResults.length,
89
90
  topScore: enhancedResults[0]?.score
90
91
  }, 'Search enhancement applied');
92
+ // Build a local subscription set from registered prompts for the current user.
93
+ // The server-side is_subscribed flag may be stale (token mismatch, cache, etc.)
94
+ // so we override it with the authoritative local promptManager state.
95
+ const userToken = typedParams.user_token ?? '';
96
+ const localSubscribedNames = new Set(index_js_1.promptManager.promptNames(userToken).map((promptName) => {
97
+ // Prompt names are "<type>/<resource_name>" where resource_name is already
98
+ // lowercased with spaces replaced by '-' (see buildPromptName).
99
+ // Extract just the resource_name portion for comparison against search results.
100
+ const slashIdx = promptName.indexOf('/');
101
+ return slashIdx >= 0 ? promptName.slice(slashIdx + 1) : promptName;
102
+ }));
103
+ // Normalize API resource names the same way buildPromptName does so the
104
+ // comparison is case/whitespace insensitive.
105
+ const normalizeResourceName = (name) => name.toLowerCase().replace(/\s+/g, '-');
91
106
  // Check subscription and installation status for each result
92
107
  const finalResults = await Promise.all(enhancedResults.map(async (resource) => {
93
108
  // Check if installed locally in the Cursor directory for this resource type
@@ -100,8 +115,17 @@ async function searchResources(params) {
100
115
  // Unknown type or path check failed — treat as not installed
101
116
  isInstalled = false;
102
117
  }
118
+ // Override is_subscribed with the local promptManager state.
119
+ // Local state is authoritative: if the prompt is registered in-memory,
120
+ // the resource is definitely subscribed regardless of the API response.
121
+ const locallySubscribed = localSubscribedNames.has(normalizeResourceName(resource.name));
122
+ const isSubscribed = locallySubscribed || Boolean(resource.is_subscribed);
123
+ if (locallySubscribed && !resource.is_subscribed) {
124
+ logger_1.logger.debug({ resourceName: resource.name, normalizedName: normalizeResourceName(resource.name), apiIsSubscribed: resource.is_subscribed }, 'search_resources: overriding is_subscribed=false from API with local promptManager state (true)');
125
+ }
103
126
  return {
104
127
  ...resource,
128
+ is_subscribed: isSubscribed,
105
129
  is_installed: isInstalled,
106
130
  };
107
131
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"search-resources.js","sourceRoot":"","sources":["../../src/tools/search-resources.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"search-resources.js","sourceRoot":"","sources":["../../src/tools/search-resources.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"sync-resources.d.ts","sourceRoot":"","sources":["../../src/tools/sync-resources.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAeH,OAAO,KAAK,EAEV,mBAAmB,EAEnB,UAAU,EACX,MAAM,gBAAgB,CAAC;AAoIxB,wBAAsB,aAAa,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC,CAuiC7F;AAGD,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8J7B,CAAC"}
1
+ {"version":3,"file":"sync-resources.d.ts","sourceRoot":"","sources":["../../src/tools/sync-resources.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAeH,OAAO,KAAK,EAEV,mBAAmB,EAEnB,UAAU,EACX,MAAM,gBAAgB,CAAC;AAuIxB,wBAAsB,aAAa,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC,CAwpC7F;AAGD,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8J7B,CAAC"}
@@ -62,6 +62,9 @@ const errors_1 = require("../types/errors");
62
62
  const index_js_1 = require("../telemetry/index.js");
63
63
  const index_js_2 = require("../prompts/index.js");
64
64
  const md_reference_expander_js_1 = require("../utils/md-reference-expander.js");
65
+ const index_js_3 = require("../client-adapters/index.js");
66
+ const policy_generator_js_1 = require("./policy-generator.js");
67
+ const index_js_4 = require("../config/index.js");
65
68
  const downloadCache = new Map();
66
69
  function syncCacheKey(userToken, resourceId) {
67
70
  return `${userToken}::${resourceId}`;
@@ -171,6 +174,13 @@ async function syncResources(params) {
171
174
  ? new Set(typedParams.resource_ids)
172
175
  : null;
173
176
  const confirmedFullSync = typedParams._confirmed_full_sync === true;
177
+ // Resolve client adapter: prefer the caller-supplied agent_profile, fall
178
+ // back to the server-wide config.agentProfile (set via CSP_AGENT_PROFILE).
179
+ const resolvedProfile = typedParams.agent_profile ?? index_js_4.config.agentProfile ?? 'cursor';
180
+ const clientAdapter = index_js_3.adapterRegistry.get(resolvedProfile);
181
+ // Collect per-rule content for Codex policy aggregation (stage 4).
182
+ // Each entry is raw rule markdown to be merged into csp-routing-policy.md.
183
+ const codexRuleContents = [];
174
184
  (0, logger_1.logToolStep)('sync_resources', 'Parameters validated', {
175
185
  mode,
176
186
  scope,
@@ -736,8 +746,10 @@ async function syncResources(params) {
736
746
  // not on this (possibly remote Linux) server.
737
747
  if (sub.type === 'mcp') {
738
748
  const mcpConfigFile = resourceFiles.find((f) => path.basename(f.path) === 'mcp-config.json');
739
- // ~/.cursor/mcp.json on the user's machine
740
- const mcpJsonPath = `${(0, cursor_paths_1.getCursorRootDirForClient)()}/mcp.json`;
749
+ // Config path differs per client: mcp.json (Cursor) vs config.toml (Codex)
750
+ const mcpJsonPath = resolvedProfile === 'codex'
751
+ ? clientAdapter.getMcpConfigPath() // ~/.codex/config.toml
752
+ : `${(0, cursor_paths_1.getCursorRootDirForClient)()}/mcp.json`;
741
753
  // ── Optimization: skip if already configured (incremental mode only) ────
742
754
  // In incremental mode, if the AI Agent reports this MCP server is already
743
755
  // in ~/.cursor/mcp.json, skip downloading and generating write_file actions.
@@ -785,7 +797,25 @@ async function syncResources(params) {
785
797
  catch {
786
798
  logger_1.logger.warn({ resourceId: sub.id, resourceName: sub.name }, 'sync_resources: failed to parse mcp-config.json — treating as empty config');
787
799
  }
788
- if (typeof cfg['command'] === 'string') {
800
+ if (resolvedProfile === 'codex') {
801
+ // ── Codex MCP: inject server entry into config.toml via merge_toml ──
802
+ // The Codex CLI reads MCP server configuration from ~/.codex/config.toml.
803
+ // We emit a merge_toml action for the AI Agent to update that file.
804
+ // The value is the JSON-serialised mcp-config entry so the agent can
805
+ // parse and embed it in the correct TOML table.
806
+ const tomlPath = clientAdapter.getMcpConfigPath();
807
+ const serverName = cfg['name'] ?? sub.name;
808
+ localActions.push({
809
+ action: 'merge_toml',
810
+ toml_path: tomlPath,
811
+ key: `mcp.servers.${serverName}`,
812
+ value: JSON.stringify(cfg),
813
+ overwrite: false,
814
+ });
815
+ logger_1.logger.info({ resourceId: sub.id, resourceName: sub.name, serverName, tomlPath, profile: 'codex' }, 'sync_resources: Codex MCP — merge_toml action queued');
816
+ (0, logger_1.logToolStep)('sync_resources', 'Codex MCP: merge_toml queued', { resourceId: sub.id });
817
+ }
818
+ else if (typeof cfg['command'] === 'string') {
789
819
  // ── Format A: local executable ──────────────────────────────────
790
820
  const installDir = `${(0, cursor_paths_1.getCursorTypeDirForClient)('mcp')}/${sub.name}`;
791
821
  const writeActions = [];
@@ -867,43 +897,57 @@ async function syncResources(params) {
867
897
  }
868
898
  else {
869
899
  // No mcp-config.json: heuristic fallback
870
- const installDir = `${(0, cursor_paths_1.getCursorTypeDirForClient)('mcp')}/${sub.name}`;
871
- const writeActions = [];
872
- for (const file of resourceFiles) {
873
- const normalised = path.normalize(file.path);
874
- if (normalised.startsWith('..'))
875
- continue;
876
- const fileDest = `${installDir}/${normalised}`;
900
+ if (resolvedProfile === 'codex') {
901
+ // Codex: emit a bare merge_toml with minimal entry
902
+ const tomlPath = clientAdapter.getMcpConfigPath();
877
903
  localActions.push({
878
- action: 'write_file',
879
- path: fileDest,
880
- ...encodeForRender(file.path, file.content),
904
+ action: 'merge_toml',
905
+ toml_path: tomlPath,
906
+ key: `mcp.servers.${sub.name}`,
907
+ value: JSON.stringify({ command: 'node', args: [] }),
908
+ overwrite: false,
881
909
  });
882
- writeActions.push(fileDest);
910
+ logger_1.logger.info({ resourceId: sub.id, resourceName: sub.name, tomlPath, profile: 'codex' }, 'sync_resources: Codex MCP heuristic — merge_toml action queued (no mcp-config.json)');
911
+ }
912
+ else {
913
+ const installDir = `${(0, cursor_paths_1.getCursorTypeDirForClient)('mcp')}/${sub.name}`;
914
+ const writeActions = [];
915
+ for (const file of resourceFiles) {
916
+ const normalised = path.normalize(file.path);
917
+ if (normalised.startsWith('..'))
918
+ continue;
919
+ const fileDest = `${installDir}/${normalised}`;
920
+ localActions.push({
921
+ action: 'write_file',
922
+ path: fileDest,
923
+ ...encodeForRender(file.path, file.content),
924
+ });
925
+ writeActions.push(fileDest);
926
+ }
927
+ const jsEntry = resourceFiles.find((f) => f.path.endsWith('.js'));
928
+ const pyEntry = resourceFiles.find((f) => f.path.endsWith('.py'));
929
+ const entryFile = jsEntry ?? pyEntry ?? resourceFiles[0];
930
+ const cmd = jsEntry ? 'node' : 'python3';
931
+ const entryPath = `${installDir}/${entryFile?.path ?? ''}`;
932
+ localActions.push({
933
+ action: 'merge_mcp_json',
934
+ mcp_json_path: mcpJsonPath,
935
+ server_name: sub.name,
936
+ entry: { command: cmd, args: [entryPath] },
937
+ skip_if_exists: true,
938
+ });
939
+ logger_1.logger.info({
940
+ resourceId: sub.id,
941
+ resourceName: sub.name,
942
+ format: 'heuristic',
943
+ installDir,
944
+ mcpJsonPath,
945
+ cmd,
946
+ entryPath,
947
+ writeFiles: writeActions,
948
+ }, 'sync_resources: MCP heuristic fallback — write_file + merge_mcp_json actions queued');
949
+ (0, logger_1.logToolStep)('sync_resources', 'MCP heuristic fallback: write_file + merge_mcp_json queued', { resourceId: sub.id });
883
950
  }
884
- const jsEntry = resourceFiles.find((f) => f.path.endsWith('.js'));
885
- const pyEntry = resourceFiles.find((f) => f.path.endsWith('.py'));
886
- const entryFile = jsEntry ?? pyEntry ?? resourceFiles[0];
887
- const cmd = jsEntry ? 'node' : 'python3';
888
- const entryPath = `${installDir}/${entryFile?.path ?? ''}`;
889
- localActions.push({
890
- action: 'merge_mcp_json',
891
- mcp_json_path: mcpJsonPath,
892
- server_name: sub.name,
893
- entry: { command: cmd, args: [entryPath] },
894
- skip_if_exists: true,
895
- });
896
- logger_1.logger.info({
897
- resourceId: sub.id,
898
- resourceName: sub.name,
899
- format: 'heuristic',
900
- installDir,
901
- mcpJsonPath,
902
- cmd,
903
- entryPath,
904
- writeFiles: writeActions,
905
- }, 'sync_resources: MCP heuristic fallback — write_file + merge_mcp_json actions queued');
906
- (0, logger_1.logToolStep)('sync_resources', 'MCP heuristic fallback: write_file + merge_mcp_json queued', { resourceId: sub.id });
907
951
  }
908
952
  tally.synced++;
909
953
  details.push({ id: sub.id, name: sub.name, action: 'synced', version: resourceVersion });
@@ -917,11 +961,25 @@ async function syncResources(params) {
917
961
  // or has different content, the AI writes it unconditionally, which also
918
962
  // recovers files that were accidentally deleted by the user.
919
963
  //
920
- // DUAL-LAYER STRATEGY (v1.6):
964
+ // DUAL-LAYER STRATEGY (v1.6, Cursor only):
921
965
  // - scope='global' → write to ~/.cursor/rules/ only (macOS support)
922
966
  // - scope='workspace' → write to ${WORKSPACE}/.cursor/rules/ only (Windows support)
923
967
  // - scope='all' → write to BOTH locations (maximum compatibility)
968
+ //
969
+ // CODEX STRATEGY: rules are aggregated into csp-routing-policy.md and injected
970
+ // via developer_instructions in config.toml (no .mdc files written to disk).
924
971
  if (sub.type === 'rule') {
972
+ if (resolvedProfile === 'codex') {
973
+ // Collect rule content for policy aggregation; no individual file actions.
974
+ for (const file of resourceFiles) {
975
+ codexRuleContents.push({ name: sub.name, content: file.content });
976
+ }
977
+ logger_1.logger.info({ resourceId: sub.id, resourceName: sub.name, profile: 'codex' }, 'sync_resources: Rule collected for Codex policy aggregation');
978
+ tally.synced++;
979
+ details.push({ id: sub.id, name: sub.name, action: 'synced', version: resourceVersion });
980
+ continue;
981
+ }
982
+ // ── Cursor: dual-layer .mdc file strategy (unchanged) ──────────────
925
983
  const writeActions = [];
926
984
  // Determine target directories based on scope parameter
927
985
  const targetDirs = [];
@@ -1000,7 +1058,43 @@ async function syncResources(params) {
1000
1058
  else if (resourceIds) {
1001
1059
  logger_1.logger.info({ resourceIdsFilter: [...resourceIds], expectedPromptCount: expectedPromptNames.size }, 'sync_resources: skipping pruneStalePrompts — resource_ids filter active (partial sync)');
1002
1060
  }
1003
- // ── Step 5: Health score ───────────────────────────────────────────────
1061
+ // ── Step 5 (Codex): Aggregate collected rules into policy actions ──────
1062
+ // If any rule content was collected during this sync run, materialise the
1063
+ // csp-routing-policy.md file and emit a merge_toml action to inject it
1064
+ // into developer_instructions in ~/.codex/config.toml.
1065
+ let restartRequired = false;
1066
+ let restartHint;
1067
+ if (resolvedProfile === 'codex' && codexRuleContents.length > 0) {
1068
+ try {
1069
+ const policyStrategy = clientAdapter.getPolicyStrategy();
1070
+ const policyContent = (0, policy_generator_js_1.generatePolicyContent)(codexRuleContents);
1071
+ const policyFile = policyStrategy.policyFile ?? '~/.csp-ai-agent/codex/csp-routing-policy.md';
1072
+ const tomlPath = policyStrategy.configTomlPath ?? '~/.codex/config.toml';
1073
+ const tomlKey = policyStrategy.configTomlKey ?? 'developer_instructions';
1074
+ // 1. Write the policy markdown file
1075
+ localActions.push({
1076
+ action: 'write_file',
1077
+ path: policyFile,
1078
+ content: policyContent,
1079
+ encoding: 'utf8',
1080
+ });
1081
+ // 2. Inject the policy file reference into developer_instructions
1082
+ localActions.push({
1083
+ action: 'merge_toml',
1084
+ toml_path: tomlPath,
1085
+ key: tomlKey,
1086
+ value: `Please read and follow the CSP routing policy at: ${policyFile}`,
1087
+ overwrite: false,
1088
+ });
1089
+ restartRequired = true;
1090
+ restartHint = `CSP routing policy has been updated. Please restart Codex for the policy to take effect: codex`;
1091
+ logger_1.logger.info({ profile: 'codex', policyFile, tomlPath, ruleCount: codexRuleContents.length }, 'sync_resources: Codex policy materialised — merge_toml action queued');
1092
+ }
1093
+ catch (err) {
1094
+ logger_1.logger.error({ error: err instanceof Error ? err.message : String(err) }, 'sync_resources: Failed to generate Codex policy');
1095
+ }
1096
+ }
1097
+ // ── Step 6: Health score ───────────────────────────────────────────────
1004
1098
  const healthScore = tally.total > 0
1005
1099
  ? Math.round(((tally.synced + tally.cached + tally.skipped) / tally.total) * 100)
1006
1100
  : 100;
@@ -1011,6 +1105,7 @@ async function syncResources(params) {
1011
1105
  details,
1012
1106
  ...(skippedResources.length > 0 ? { skipped_resources: skippedResources } : {}),
1013
1107
  ...(localActions.length > 0 ? { local_actions_required: localActions } : {}),
1108
+ ...(restartRequired ? { restart_required: true, restart_hint: restartHint } : {}),
1014
1109
  };
1015
1110
  const duration = Date.now() - startTime;
1016
1111
  (0, logger_1.logToolCall)('sync_resources', 'user-id', params, duration);