@elliotding/ai-agent-mcp 0.2.21 → 0.2.23
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.
- package/dist/api/client.d.ts +4 -1
- package/dist/api/client.d.ts.map +1 -1
- package/dist/api/client.js +7 -1
- package/dist/api/client.js.map +1 -1
- package/dist/client-adapters/codex-adapter.d.ts +49 -0
- package/dist/client-adapters/codex-adapter.d.ts.map +1 -0
- package/dist/client-adapters/codex-adapter.js +72 -0
- package/dist/client-adapters/codex-adapter.js.map +1 -0
- package/dist/client-adapters/cursor-adapter.d.ts +37 -0
- package/dist/client-adapters/cursor-adapter.d.ts.map +1 -0
- package/dist/client-adapters/cursor-adapter.js +68 -0
- package/dist/client-adapters/cursor-adapter.js.map +1 -0
- package/dist/client-adapters/index.d.ts +91 -0
- package/dist/client-adapters/index.d.ts.map +1 -0
- package/dist/client-adapters/index.js +49 -0
- package/dist/client-adapters/index.js.map +1 -0
- package/dist/config/index.d.ts +19 -1
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +12 -2
- package/dist/config/index.js.map +1 -1
- package/dist/prompts/manager.d.ts +73 -0
- package/dist/prompts/manager.d.ts.map +1 -1
- package/dist/prompts/manager.js +243 -7
- package/dist/prompts/manager.js.map +1 -1
- package/dist/server/http.d.ts +10 -6
- package/dist/server/http.d.ts.map +1 -1
- package/dist/server/http.js +130 -89
- package/dist/server/http.js.map +1 -1
- package/dist/server/streamable-http.d.ts +28 -0
- package/dist/server/streamable-http.d.ts.map +1 -0
- package/dist/server/streamable-http.js +147 -0
- package/dist/server/streamable-http.js.map +1 -0
- package/dist/server.d.ts +8 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +60 -96
- package/dist/server.js.map +1 -1
- package/dist/telemetry/manager.d.ts +5 -0
- package/dist/telemetry/manager.d.ts.map +1 -1
- package/dist/telemetry/manager.js +5 -0
- package/dist/telemetry/manager.js.map +1 -1
- package/dist/tools/manage-subscription.d.ts.map +1 -1
- package/dist/tools/manage-subscription.js +162 -20
- package/dist/tools/manage-subscription.js.map +1 -1
- package/dist/tools/policy-generator.d.ts +31 -0
- package/dist/tools/policy-generator.d.ts.map +1 -0
- package/dist/tools/policy-generator.js +53 -0
- package/dist/tools/policy-generator.js.map +1 -0
- package/dist/tools/query-usage-stats.d.ts +8 -0
- package/dist/tools/query-usage-stats.d.ts.map +1 -1
- package/dist/tools/query-usage-stats.js +26 -1
- package/dist/tools/query-usage-stats.js.map +1 -1
- package/dist/tools/resolve-prompt-content.d.ts.map +1 -1
- package/dist/tools/resolve-prompt-content.js +39 -1
- package/dist/tools/resolve-prompt-content.js.map +1 -1
- package/dist/tools/search-resources.d.ts +5 -0
- package/dist/tools/search-resources.d.ts.map +1 -1
- package/dist/tools/search-resources.js +73 -7
- package/dist/tools/search-resources.js.map +1 -1
- package/dist/tools/sync-resources.d.ts.map +1 -1
- package/dist/tools/sync-resources.js +284 -99
- package/dist/tools/sync-resources.js.map +1 -1
- package/dist/tools/uninstall-resource.d.ts.map +1 -1
- package/dist/tools/uninstall-resource.js +100 -12
- package/dist/tools/uninstall-resource.js.map +1 -1
- package/dist/types/tools.d.ts +128 -1
- package/dist/types/tools.d.ts.map +1 -1
- package/dist/utils/codex-paths.d.ts +39 -0
- package/dist/utils/codex-paths.d.ts.map +1 -0
- package/dist/utils/codex-paths.js +56 -0
- package/dist/utils/codex-paths.js.map +1 -0
- package/package.json +1 -1
- package/dist/transport/sse.d.ts +0 -29
- package/dist/transport/sse.d.ts.map +0 -1
- package/dist/transport/sse.js +0 -271
- package/dist/transport/sse.js.map +0 -1
|
@@ -12,7 +12,18 @@ const errors_1 = require("../types/errors");
|
|
|
12
12
|
const sync_resources_1 = require("./sync-resources");
|
|
13
13
|
const uninstall_resource_1 = require("./uninstall-resource");
|
|
14
14
|
const index_js_1 = require("../prompts/index.js");
|
|
15
|
-
const
|
|
15
|
+
const index_js_2 = require("../client-adapters/index.js");
|
|
16
|
+
const index_js_3 = require("../config/index.js");
|
|
17
|
+
function buildLocalActionsSummary(localActions) {
|
|
18
|
+
if (!localActions || localActions.length === 0) {
|
|
19
|
+
return undefined;
|
|
20
|
+
}
|
|
21
|
+
return {
|
|
22
|
+
action_count: localActions.length,
|
|
23
|
+
action_types: Array.from(new Set(localActions.map((action) => action.action))),
|
|
24
|
+
message: 'Execute every local_actions_required item immediately on the user\'s local machine before treating this subscription change as complete or verifying local state.',
|
|
25
|
+
};
|
|
26
|
+
}
|
|
16
27
|
async function manageSubscription(params) {
|
|
17
28
|
const startTime = Date.now();
|
|
18
29
|
// Type assertion for params
|
|
@@ -29,22 +40,33 @@ async function manageSubscription(params) {
|
|
|
29
40
|
logger_1.logger.debug({ resourceIds: typedParams.resource_ids, autoSync: typedParams.auto_sync }, 'Subscribing to resources...');
|
|
30
41
|
// Subscribe to resources
|
|
31
42
|
const subResult = await client_1.apiClient.subscribe(typedParams.resource_ids, typedParams.auto_sync, undefined, typedParams.user_token);
|
|
43
|
+
index_js_1.promptManager.clearSuppressedSubscriptions(typedParams.user_token ?? '', typedParams.resource_ids);
|
|
32
44
|
logger_1.logger.info({ count: subResult.subscriptions.length }, 'Resources subscribed successfully');
|
|
33
45
|
// Auto-sync newly subscribed resources immediately (default: true)
|
|
34
46
|
const shouldAutoSync = typedParams.auto_sync !== false;
|
|
35
47
|
let syncSummary;
|
|
36
48
|
let syncDetails;
|
|
37
49
|
let pendingSetup;
|
|
38
|
-
|
|
39
|
-
|
|
50
|
+
let subscribeLocalActions;
|
|
51
|
+
const resourceIdsForAutoSync = Array.from(new Set(typedParams.resource_ids));
|
|
52
|
+
if (shouldAutoSync && resourceIdsForAutoSync.length > 0) {
|
|
53
|
+
logger_1.logger.info({
|
|
54
|
+
resourceIds: resourceIdsForAutoSync,
|
|
55
|
+
newlyCreatedSubscriptionCount: subResult.subscriptions.length,
|
|
56
|
+
}, 'Auto-syncing requested subscribed resources...');
|
|
40
57
|
// Scope auto-sync to only the newly subscribed resource(s).
|
|
41
58
|
// Passing resource_ids prevents processing all other subscribed resources,
|
|
42
59
|
// which would generate unnecessary local_actions and waste context window.
|
|
60
|
+
// Important: sync the requested ids even when the subscribe API returns
|
|
61
|
+
// zero newly-created rows. Default/baseline resources can be locally
|
|
62
|
+
// suppressed and then restored without creating a server-side row; they
|
|
63
|
+
// still need prompt registration and local actions rebuilt immediately.
|
|
43
64
|
const syncResult = await (0, sync_resources_1.syncResources)({
|
|
44
65
|
mode: 'incremental',
|
|
45
66
|
scope: typedParams.scope || 'global',
|
|
46
67
|
user_token: typedParams.user_token,
|
|
47
|
-
resource_ids:
|
|
68
|
+
resource_ids: resourceIdsForAutoSync,
|
|
69
|
+
agent_profile: typedParams.agent_profile,
|
|
48
70
|
});
|
|
49
71
|
if (syncResult.success && syncResult.data) {
|
|
50
72
|
const sd = syncResult.data;
|
|
@@ -53,6 +75,9 @@ async function manageSubscription(params) {
|
|
|
53
75
|
if (sd.pending_setup && sd.pending_setup.length > 0) {
|
|
54
76
|
pendingSetup = sd.pending_setup;
|
|
55
77
|
}
|
|
78
|
+
if (sd.local_actions_required && sd.local_actions_required.length > 0) {
|
|
79
|
+
subscribeLocalActions = sd.local_actions_required;
|
|
80
|
+
}
|
|
56
81
|
logger_1.logger.info({ summary: sd.summary }, 'Auto-sync after subscribe completed');
|
|
57
82
|
}
|
|
58
83
|
else {
|
|
@@ -62,10 +87,11 @@ async function manageSubscription(params) {
|
|
|
62
87
|
}
|
|
63
88
|
// Build per-resource sync hint so the AI knows to use resource_ids
|
|
64
89
|
// for a scoped incremental sync instead of syncing all resources.
|
|
65
|
-
const subscribedIds =
|
|
90
|
+
const subscribedIds = resourceIdsForAutoSync;
|
|
66
91
|
const syncHint = subscribedIds.length > 0
|
|
67
|
-
? `To sync ONLY the
|
|
92
|
+
? `To sync ONLY the requested resource(s), call: sync_resources(mode="incremental", resource_ids=${JSON.stringify(subscribedIds)}). This avoids returning local_actions for ALL subscribed resources and drastically reduces context overhead.`
|
|
68
93
|
: undefined;
|
|
94
|
+
const subscribeLocalActionsSummary = buildLocalActionsSummary(subscribeLocalActions);
|
|
69
95
|
result = {
|
|
70
96
|
action: 'subscribe',
|
|
71
97
|
success: true,
|
|
@@ -76,13 +102,24 @@ async function manageSubscription(params) {
|
|
|
76
102
|
subscribed_at: sub.subscribed_at,
|
|
77
103
|
})),
|
|
78
104
|
message: [
|
|
79
|
-
`Successfully
|
|
105
|
+
`Successfully processed subscribe request for ${resourceIdsForAutoSync.length} resource id${resourceIdsForAutoSync.length > 1 ? 's' : ''}.`,
|
|
106
|
+
`Server created ${subResult.subscriptions.length} new subscription${subResult.subscriptions.length !== 1 ? 's' : ''}.`,
|
|
107
|
+
subResult.subscriptions.length === 0 && shouldAutoSync
|
|
108
|
+
? 'Requested resource(s) may already be subscribed or provided by baseline defaults; scoped auto-sync was still executed.'
|
|
109
|
+
: null,
|
|
80
110
|
syncSummary,
|
|
81
111
|
syncHint,
|
|
112
|
+
subscribeLocalActions && subscribeLocalActions.length > 0
|
|
113
|
+
? `IMPORTANT: ${subscribeLocalActions.length} local action(s) are still pending. Execute local_actions_required or fetch csp-ai-agent-setup before treating the resource as installed.`
|
|
114
|
+
: null,
|
|
82
115
|
'If you need to execute a newly subscribed Command or Skill in this same conversation, call resolve_prompt_content next to retrieve the real prompt body.',
|
|
83
116
|
].filter(Boolean).join(' '),
|
|
84
117
|
...(syncDetails ? { sync_details: syncDetails } : {}),
|
|
85
118
|
...(pendingSetup ? { pending_setup: pendingSetup } : {}),
|
|
119
|
+
...(subscribeLocalActions ? { local_actions_required: subscribeLocalActions } : {}),
|
|
120
|
+
...(subscribeLocalActionsSummary
|
|
121
|
+
? { setup_required: true, local_actions_summary: subscribeLocalActionsSummary }
|
|
122
|
+
: {}),
|
|
86
123
|
};
|
|
87
124
|
break;
|
|
88
125
|
}
|
|
@@ -91,6 +128,12 @@ async function manageSubscription(params) {
|
|
|
91
128
|
if (!typedParams.resource_ids || typedParams.resource_ids.length === 0) {
|
|
92
129
|
throw (0, errors_1.createValidationError)('resource_ids', 'array', 'resource_ids is required for unsubscribe action');
|
|
93
130
|
}
|
|
131
|
+
// Resolve the client adapter: prefer caller-supplied agent_profile, fall
|
|
132
|
+
// back to server-wide config (set via CSP_AGENT_PROFILE env var).
|
|
133
|
+
// This mirrors the same resolution logic in sync-resources.ts so that
|
|
134
|
+
// Codex unsubscribes emit remove_toml_entry instead of remove_mcp_json_entry.
|
|
135
|
+
const resolvedUnsubProfile = typedParams.agent_profile ?? index_js_3.config.agentProfile ?? 'cursor';
|
|
136
|
+
const unsubClientAdapter = index_js_2.adapterRegistry.get(resolvedUnsubProfile);
|
|
94
137
|
logger_1.logger.debug({ resourceIds: typedParams.resource_ids }, 'Unsubscribing from resources...');
|
|
95
138
|
// Build resource_id → type and resource_id → name maps from the current
|
|
96
139
|
// subscription list so uninstall actions can be scoped precisely to
|
|
@@ -110,9 +153,21 @@ async function manageSubscription(params) {
|
|
|
110
153
|
catch (e) {
|
|
111
154
|
logger_1.logger.warn({ error: e.message }, 'Could not fetch subscriptions for type resolution — uninstall will emit both rule+mcp actions as fallback');
|
|
112
155
|
}
|
|
113
|
-
// Cancel server-side subscription
|
|
114
|
-
|
|
115
|
-
|
|
156
|
+
// Cancel server-side subscription. Baseline/default subscriptions may
|
|
157
|
+
// be exposed by list/search but have no removable user row on the
|
|
158
|
+
// server; in that case the API returns removed_count=0. Do not abort
|
|
159
|
+
// local cleanup here: apply a local suppression after verification so
|
|
160
|
+
// prompts/list/search/sync are consistent for this user.
|
|
161
|
+
const unsubscribeResponse = await client_1.apiClient.unsubscribe(typedParams.resource_ids, typedParams.user_token);
|
|
162
|
+
const serverRemovedAll = unsubscribeResponse.removed_count === typedParams.resource_ids.length;
|
|
163
|
+
if (!serverRemovedAll) {
|
|
164
|
+
logger_1.logger.warn({
|
|
165
|
+
requested: unsubscribeResponse.requested_count,
|
|
166
|
+
removed: unsubscribeResponse.removed_count,
|
|
167
|
+
resourceIds: typedParams.resource_ids,
|
|
168
|
+
}, 'Unsubscribe API reported partial removal; continuing local cleanup and will verify list state');
|
|
169
|
+
}
|
|
170
|
+
logger_1.logger.info({ requested: unsubscribeResponse.requested_count, removed: unsubscribeResponse.removed_count }, 'Server-side subscriptions removed');
|
|
116
171
|
// Uninstall local files and MCP config for each resource.
|
|
117
172
|
// For Command/Skill: unregister MCP Prompt instead of deleting local files.
|
|
118
173
|
const uninstallResults = [];
|
|
@@ -139,8 +194,10 @@ async function manageSubscription(params) {
|
|
|
139
194
|
// find no matching prompts and skip the skill cleanup branch entirely.
|
|
140
195
|
// Instead, we directly build the delete_file local_actions for the AI to execute.
|
|
141
196
|
if (resourceType === 'skill') {
|
|
142
|
-
|
|
143
|
-
|
|
197
|
+
// Use adapter-resolved path so Codex cleans ~/.csp-ai-agent/codex/skills/<name>/
|
|
198
|
+
// instead of the Cursor-only ~/.csp-ai-agent/skills/<name>/.
|
|
199
|
+
const skillDir = unsubClientAdapter.getSkillDir(resourceName);
|
|
200
|
+
const manifestFile = `${unsubClientAdapter.getManifestDir()}/${resourceName}.md`;
|
|
144
201
|
unsubscribeLocalActions.push({ action: 'delete_file', path: skillDir, recursive: true }, { action: 'delete_file', path: manifestFile, recursive: false });
|
|
145
202
|
logger_1.logger.info({ resourceName, skillDir, manifestFile }, 'Local skill directory and manifest queued for deletion on unsubscribe');
|
|
146
203
|
}
|
|
@@ -175,8 +232,15 @@ async function manageSubscription(params) {
|
|
|
175
232
|
for (const pattern of patternsToTry) {
|
|
176
233
|
const uninstallResult = await (0, uninstall_resource_1.uninstallResource)({
|
|
177
234
|
resource_id_or_name: pattern,
|
|
235
|
+
resource_id: resourceId,
|
|
178
236
|
remove_from_account: false, // already unsubscribed above
|
|
237
|
+
user_token: typedParams.user_token,
|
|
179
238
|
...(resolvedType ? { resource_type: resolvedType } : {}),
|
|
239
|
+
// Always forward the resolved agent_profile so uninstall_resource emits
|
|
240
|
+
// the correct config action:
|
|
241
|
+
// Cursor → remove_mcp_json_entry targeting ~/.cursor/mcp.json
|
|
242
|
+
// Codex → remove_toml_entry targeting ~/.codex/config.toml
|
|
243
|
+
agent_profile: resolvedUnsubProfile,
|
|
180
244
|
});
|
|
181
245
|
if (uninstallResult.success && uninstallResult.data && uninstallResult.data.removed_resources.length > 0) {
|
|
182
246
|
// Collect local_actions_required (e.g. remove_mcp_json_entry for mcp-type resources,
|
|
@@ -196,6 +260,43 @@ async function manageSubscription(params) {
|
|
|
196
260
|
}
|
|
197
261
|
const removedCount = uninstallResults.filter(r => r.removed).length;
|
|
198
262
|
const notFoundCount = uninstallResults.filter(r => !r.removed).length;
|
|
263
|
+
// Verify server-side unsubscription with retry (up to 3 attempts, 300 ms apart).
|
|
264
|
+
// The API may have a short propagation delay before list reflects the removal.
|
|
265
|
+
const removedIds = new Set(typedParams.resource_ids);
|
|
266
|
+
let verifiedRemoval = false;
|
|
267
|
+
let stillPresentIds = [];
|
|
268
|
+
for (let attempt = 0; attempt < 3; attempt++) {
|
|
269
|
+
if (attempt > 0) {
|
|
270
|
+
await new Promise((resolve) => setTimeout(resolve, 300));
|
|
271
|
+
}
|
|
272
|
+
try {
|
|
273
|
+
const verifySubs = await client_1.apiClient.getSubscriptions({}, typedParams.user_token);
|
|
274
|
+
const stillPresent = verifySubs.subscriptions.filter((s) => removedIds.has(s.id));
|
|
275
|
+
stillPresentIds = stillPresent.map((s) => s.id);
|
|
276
|
+
if (stillPresent.length === 0) {
|
|
277
|
+
verifiedRemoval = true;
|
|
278
|
+
break;
|
|
279
|
+
}
|
|
280
|
+
logger_1.logger.info({ attempt, stillPresent: stillPresent.map((s) => s.id) }, 'manage_subscription unsubscribe: server list still contains removed IDs, retrying verification');
|
|
281
|
+
}
|
|
282
|
+
catch (verifyErr) {
|
|
283
|
+
logger_1.logger.warn({ attempt, error: verifyErr.message }, 'manage_subscription unsubscribe: verification list call failed, skipping retry');
|
|
284
|
+
break;
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
const localSuppressionApplied = stillPresentIds.length > 0;
|
|
288
|
+
if (localSuppressionApplied) {
|
|
289
|
+
index_js_1.promptManager.suppressSubscriptions(typedParams.user_token ?? '', stillPresentIds);
|
|
290
|
+
verifiedRemoval = true;
|
|
291
|
+
logger_1.logger.info({ stillPresentIds }, 'manage_subscription unsubscribe: applied local suppression for server-visible default subscriptions');
|
|
292
|
+
}
|
|
293
|
+
if (!verifiedRemoval) {
|
|
294
|
+
logger_1.logger.warn({ resourceIds: typedParams.resource_ids }, 'manage_subscription unsubscribe: server list still shows resources after 3 verification attempts and no local suppression was applied');
|
|
295
|
+
}
|
|
296
|
+
const unsubscribeLocalActionsSummary = buildLocalActionsSummary(unsubscribeLocalActions);
|
|
297
|
+
if (unsubscribeLocalActions.length > 0) {
|
|
298
|
+
index_js_1.promptManager.storeSyncActions(typedParams.user_token ?? '', unsubscribeLocalActions);
|
|
299
|
+
}
|
|
199
300
|
result = {
|
|
200
301
|
action: 'unsubscribe',
|
|
201
302
|
success: true,
|
|
@@ -204,31 +305,49 @@ async function manageSubscription(params) {
|
|
|
204
305
|
removedCount > 0 ? `Removed local files for ${removedCount} resource${removedCount > 1 ? 's' : ''}.` : null,
|
|
205
306
|
notFoundCount > 0 ? `${notFoundCount} resource${notFoundCount > 1 ? 's were' : ' was'} not installed locally.` : null,
|
|
206
307
|
unsubscribeLocalActions.length > 0
|
|
207
|
-
? `
|
|
308
|
+
? `IMPORTANT: You MUST execute ALL ${unsubscribeLocalActions.length} action(s) in local_actions_required immediately before verifying local filesystem or config state. Do not report C5/C9 cleanup complete until these actions have been applied.`
|
|
309
|
+
: null,
|
|
310
|
+
localSuppressionApplied
|
|
311
|
+
? `NOTE: ${stillPresentIds.length} default/baseline subscription${stillPresentIds.length > 1 ? 's were' : ' was'} still returned by the server, so a local unsubscribe override was applied for this MCP session.`
|
|
312
|
+
: null,
|
|
313
|
+
!verifiedRemoval
|
|
314
|
+
? `WARNING: The server subscription list may still show these resources due to propagation delay. If manage_subscription(list) still returns them, wait 1-2 seconds and retry.`
|
|
208
315
|
: null,
|
|
209
316
|
].filter(Boolean).join(' '),
|
|
210
317
|
sync_details: uninstallResults.map(r => ({ id: r.id, name: r.id, action: r.removed ? 'uninstalled' : 'not_found_locally' })),
|
|
211
318
|
...(unsubscribeLocalActions.length > 0 ? { local_actions_required: unsubscribeLocalActions } : {}),
|
|
319
|
+
...(unsubscribeLocalActionsSummary
|
|
320
|
+
? {
|
|
321
|
+
setup_required: true,
|
|
322
|
+
local_actions_block_completion: true,
|
|
323
|
+
local_actions_summary: unsubscribeLocalActionsSummary,
|
|
324
|
+
}
|
|
325
|
+
: {}),
|
|
212
326
|
};
|
|
213
|
-
logger_1.logger.info({ count: typedParams.resource_ids.length, removedCount }, 'Resources unsubscribed and local files cleaned up');
|
|
327
|
+
logger_1.logger.info({ count: typedParams.resource_ids.length, removedCount, verifiedRemoval }, 'Resources unsubscribed and local files cleaned up');
|
|
214
328
|
break;
|
|
215
329
|
}
|
|
216
330
|
case 'list': {
|
|
217
331
|
logger_1.logger.debug({ scope: typedParams.scope || 'all' }, 'Listing subscriptions...');
|
|
218
332
|
// Get subscriptions list
|
|
219
333
|
const subs = await client_1.apiClient.getSubscriptions({}, typedParams.user_token);
|
|
334
|
+
const visibleSubscriptions = index_js_1.promptManager.filterSuppressedSubscriptions(typedParams.user_token ?? '', subs.subscriptions);
|
|
335
|
+
const hiddenCount = subs.subscriptions.length - visibleSubscriptions.length;
|
|
220
336
|
result = {
|
|
221
337
|
action: 'list',
|
|
222
338
|
success: true,
|
|
223
|
-
subscriptions:
|
|
339
|
+
subscriptions: visibleSubscriptions.map(sub => ({
|
|
224
340
|
id: sub.id,
|
|
225
341
|
name: sub.name,
|
|
226
342
|
type: sub.type,
|
|
227
343
|
subscribed_at: sub.subscribed_at,
|
|
228
344
|
})),
|
|
229
|
-
message:
|
|
345
|
+
message: [
|
|
346
|
+
`Found ${visibleSubscriptions.length} subscription${visibleSubscriptions.length !== 1 ? 's' : ''}`,
|
|
347
|
+
hiddenCount > 0 ? `(${hiddenCount} locally unsubscribed default subscription${hiddenCount > 1 ? 's are' : ' is'} hidden)` : null,
|
|
348
|
+
].filter(Boolean).join(' '),
|
|
230
349
|
};
|
|
231
|
-
logger_1.logger.info({ total:
|
|
350
|
+
logger_1.logger.info({ total: visibleSubscriptions.length, hiddenCount }, 'Subscriptions listed successfully');
|
|
232
351
|
break;
|
|
233
352
|
}
|
|
234
353
|
case 'batch_subscribe': {
|
|
@@ -238,18 +357,26 @@ async function manageSubscription(params) {
|
|
|
238
357
|
}
|
|
239
358
|
logger_1.logger.debug({ count: typedParams.resource_ids.length, autoSync: typedParams.auto_sync }, 'Batch subscribing to resources...');
|
|
240
359
|
const batchSubResult = await client_1.apiClient.subscribe(typedParams.resource_ids, typedParams.auto_sync, undefined, typedParams.user_token);
|
|
360
|
+
index_js_1.promptManager.clearSuppressedSubscriptions(typedParams.user_token ?? '', typedParams.resource_ids);
|
|
241
361
|
logger_1.logger.info({ count: batchSubResult.subscriptions.length }, 'Batch subscription completed');
|
|
242
362
|
// Auto-sync newly subscribed resources immediately (default: true)
|
|
243
363
|
const shouldBatchAutoSync = typedParams.auto_sync !== false;
|
|
244
364
|
let batchSyncSummary;
|
|
245
365
|
let batchSyncDetails;
|
|
246
366
|
let batchPendingSetup;
|
|
247
|
-
|
|
248
|
-
|
|
367
|
+
let batchLocalActions;
|
|
368
|
+
const batchResourceIdsForAutoSync = Array.from(new Set(typedParams.resource_ids));
|
|
369
|
+
if (shouldBatchAutoSync && batchResourceIdsForAutoSync.length > 0) {
|
|
370
|
+
logger_1.logger.info({
|
|
371
|
+
requestedCount: batchResourceIdsForAutoSync.length,
|
|
372
|
+
newlyCreatedSubscriptionCount: batchSubResult.subscriptions.length,
|
|
373
|
+
}, 'Auto-syncing requested batch subscribed resources...');
|
|
249
374
|
const batchSyncResult = await (0, sync_resources_1.syncResources)({
|
|
250
375
|
mode: 'incremental',
|
|
251
376
|
scope: typedParams.scope || 'global',
|
|
252
377
|
user_token: typedParams.user_token,
|
|
378
|
+
resource_ids: batchResourceIdsForAutoSync,
|
|
379
|
+
agent_profile: typedParams.agent_profile,
|
|
253
380
|
});
|
|
254
381
|
if (batchSyncResult.success && batchSyncResult.data) {
|
|
255
382
|
const sd = batchSyncResult.data;
|
|
@@ -258,11 +385,15 @@ async function manageSubscription(params) {
|
|
|
258
385
|
if (sd.pending_setup && sd.pending_setup.length > 0) {
|
|
259
386
|
batchPendingSetup = sd.pending_setup;
|
|
260
387
|
}
|
|
388
|
+
if (sd.local_actions_required && sd.local_actions_required.length > 0) {
|
|
389
|
+
batchLocalActions = sd.local_actions_required;
|
|
390
|
+
}
|
|
261
391
|
}
|
|
262
392
|
else {
|
|
263
393
|
batchSyncSummary = 'Auto-sync failed — run sync_resources manually if needed';
|
|
264
394
|
}
|
|
265
395
|
}
|
|
396
|
+
const batchLocalActionsSummary = buildLocalActionsSummary(batchLocalActions);
|
|
266
397
|
result = {
|
|
267
398
|
action: 'batch_subscribe',
|
|
268
399
|
success: true,
|
|
@@ -273,11 +404,22 @@ async function manageSubscription(params) {
|
|
|
273
404
|
subscribed_at: sub.subscribed_at,
|
|
274
405
|
})),
|
|
275
406
|
message: [
|
|
276
|
-
`Successfully batch
|
|
407
|
+
`Successfully processed batch subscribe request for ${batchResourceIdsForAutoSync.length} resource id${batchResourceIdsForAutoSync.length > 1 ? 's' : ''}.`,
|
|
408
|
+
`Server created ${batchSubResult.subscriptions.length} new subscription${batchSubResult.subscriptions.length !== 1 ? 's' : ''}.`,
|
|
409
|
+
batchSubResult.subscriptions.length === 0 && shouldBatchAutoSync
|
|
410
|
+
? 'Requested resource(s) may already be subscribed or provided by baseline defaults; scoped auto-sync was still executed.'
|
|
411
|
+
: null,
|
|
277
412
|
batchSyncSummary,
|
|
413
|
+
batchLocalActions && batchLocalActions.length > 0
|
|
414
|
+
? `IMPORTANT: ${batchLocalActions.length} local action(s) are still pending. Execute local_actions_required or fetch csp-ai-agent-setup before treating these resources as installed.`
|
|
415
|
+
: null,
|
|
278
416
|
].filter(Boolean).join(' '),
|
|
279
417
|
...(batchSyncDetails ? { sync_details: batchSyncDetails } : {}),
|
|
280
418
|
...(batchPendingSetup ? { pending_setup: batchPendingSetup } : {}),
|
|
419
|
+
...(batchLocalActions ? { local_actions_required: batchLocalActions } : {}),
|
|
420
|
+
...(batchLocalActionsSummary
|
|
421
|
+
? { setup_required: true, local_actions_summary: batchLocalActionsSummary }
|
|
422
|
+
: {}),
|
|
281
423
|
};
|
|
282
424
|
break;
|
|
283
425
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manage-subscription.js","sourceRoot":"","sources":["../../src/tools/manage-subscription.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"manage-subscription.js","sourceRoot":"","sources":["../../src/tools/manage-subscription.ts"],"names":[],"mappings":"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"}
|
|
@@ -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"}
|
|
@@ -5,11 +5,13 @@
|
|
|
5
5
|
* Returns aggregated usage data including user info and resource usage list.
|
|
6
6
|
*/
|
|
7
7
|
import { ToolResult } from '../types/tools';
|
|
8
|
+
import type { AgentProfile } from '../client-adapters/index.js';
|
|
8
9
|
export interface QueryUsageStatsParams {
|
|
9
10
|
resource_type?: 'command' | 'skill' | 'rule' | 'mcp' | 'all';
|
|
10
11
|
start_date?: string;
|
|
11
12
|
end_date?: string;
|
|
12
13
|
user_token?: string;
|
|
14
|
+
agent_profile?: 'cursor' | 'codex';
|
|
13
15
|
}
|
|
14
16
|
export interface UsageStatsResource {
|
|
15
17
|
resource_id: string;
|
|
@@ -18,6 +20,7 @@ export interface UsageStatsResource {
|
|
|
18
20
|
invocation_count: number;
|
|
19
21
|
}
|
|
20
22
|
export interface UsageStatsResult {
|
|
23
|
+
agent_profile: AgentProfile;
|
|
21
24
|
user_id: number;
|
|
22
25
|
user_name: string;
|
|
23
26
|
user_email: string;
|
|
@@ -59,6 +62,11 @@ export declare const queryUsageStatsTool: {
|
|
|
59
62
|
type: string;
|
|
60
63
|
description: string;
|
|
61
64
|
};
|
|
65
|
+
agent_profile: {
|
|
66
|
+
type: string;
|
|
67
|
+
enum: string[];
|
|
68
|
+
description: string;
|
|
69
|
+
};
|
|
62
70
|
};
|
|
63
71
|
required: never[];
|
|
64
72
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-usage-stats.d.ts","sourceRoot":"","sources":["../../src/tools/query-usage-stats.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"query-usage-stats.d.ts","sourceRoot":"","sources":["../../src/tools/query-usage-stats.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAEhE,MAAM,WAAW,qBAAqB;IACpC,aAAa,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC;IAC7D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;CACpC;AAED,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC/B,aAAa,EAAE,YAAY,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,kBAAkB,EAAE,CAAC;CACtC;AAED;;;;;;;;GAQG;AACH,wBAAsB,eAAe,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,CA2H5F;AAGD,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsD/B,CAAC"}
|
|
@@ -9,7 +9,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
9
9
|
exports.queryUsageStatsTool = void 0;
|
|
10
10
|
exports.queryUsageStats = queryUsageStats;
|
|
11
11
|
const client_1 = require("../api/client");
|
|
12
|
+
const index_js_1 = require("../telemetry/index.js");
|
|
12
13
|
const logger_1 = require("../utils/logger");
|
|
14
|
+
const index_js_2 = require("../config/index.js");
|
|
13
15
|
/**
|
|
14
16
|
* Query current user's resource usage statistics.
|
|
15
17
|
*
|
|
@@ -22,10 +24,12 @@ const logger_1 = require("../utils/logger");
|
|
|
22
24
|
async function queryUsageStats(params) {
|
|
23
25
|
const p = params;
|
|
24
26
|
const userToken = p.user_token ?? '';
|
|
27
|
+
const agentProfile = p.agent_profile ?? index_js_2.config.agentProfile ?? 'cursor';
|
|
25
28
|
(0, logger_1.logToolStep)('query_usage_stats', 'Starting usage stats query', {
|
|
26
29
|
resource_type: p.resource_type ?? 'all',
|
|
27
30
|
start_date: p.start_date,
|
|
28
31
|
end_date: p.end_date,
|
|
32
|
+
agent_profile: agentProfile,
|
|
29
33
|
has_token: !!userToken,
|
|
30
34
|
});
|
|
31
35
|
// Validate user token
|
|
@@ -40,6 +44,17 @@ async function queryUsageStats(params) {
|
|
|
40
44
|
};
|
|
41
45
|
}
|
|
42
46
|
try {
|
|
47
|
+
try {
|
|
48
|
+
index_js_1.telemetry.setUserToken(userToken);
|
|
49
|
+
await index_js_1.telemetry.flush();
|
|
50
|
+
(0, logger_1.logToolStep)('query_usage_stats', 'Flushed local telemetry before querying remote usage');
|
|
51
|
+
}
|
|
52
|
+
catch (flushError) {
|
|
53
|
+
logger_1.logger.warn({
|
|
54
|
+
tool: 'query_usage_stats',
|
|
55
|
+
error: flushError instanceof Error ? flushError.message : String(flushError),
|
|
56
|
+
}, 'Telemetry flush failed before usage query; continuing with remote read');
|
|
57
|
+
}
|
|
43
58
|
// Build API request parameters
|
|
44
59
|
const apiParams = {};
|
|
45
60
|
if (p.resource_type && p.resource_type !== 'all') {
|
|
@@ -73,13 +88,17 @@ async function queryUsageStats(params) {
|
|
|
73
88
|
};
|
|
74
89
|
}
|
|
75
90
|
(0, logger_1.logToolStep)('query_usage_stats', 'Successfully retrieved usage stats', {
|
|
91
|
+
agent_profile: agentProfile,
|
|
76
92
|
user_id: response.data.user_id,
|
|
77
93
|
total_invocations: response.data.total_invocations,
|
|
78
94
|
resource_count: response.data.resource_usage.length,
|
|
79
95
|
});
|
|
80
96
|
return {
|
|
81
97
|
success: true,
|
|
82
|
-
data:
|
|
98
|
+
data: {
|
|
99
|
+
...response.data,
|
|
100
|
+
agent_profile: agentProfile,
|
|
101
|
+
},
|
|
83
102
|
};
|
|
84
103
|
}
|
|
85
104
|
catch (error) {
|
|
@@ -116,6 +135,7 @@ Supports optional filtering by:
|
|
|
116
135
|
- resource_type: Filter by 'command', 'skill', 'rule', or 'mcp' (default: all types)
|
|
117
136
|
- start_date: Filter events from this date onward (yyyy-MM-dd format)
|
|
118
137
|
- end_date: Filter events up to this date (yyyy-MM-dd format)
|
|
138
|
+
- agent_profile: Echo the resolved caller profile ('cursor' or 'codex') for release-check verification
|
|
119
139
|
|
|
120
140
|
User identity is automatically derived from the Authorization token.
|
|
121
141
|
|
|
@@ -146,6 +166,11 @@ Example usage:
|
|
|
146
166
|
type: 'string',
|
|
147
167
|
description: 'User authentication token (auto-injected by MCP server)',
|
|
148
168
|
},
|
|
169
|
+
agent_profile: {
|
|
170
|
+
type: 'string',
|
|
171
|
+
enum: ['cursor', 'codex'],
|
|
172
|
+
description: 'AI client profile to echo in the response for release-check verification',
|
|
173
|
+
},
|
|
149
174
|
},
|
|
150
175
|
required: [],
|
|
151
176
|
},
|