claude-code-workflow 6.3.20 → 6.3.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.
@@ -1 +1 @@
1
- {"version":3,"file":"discovery-routes.d.ts","sourceRoot":"","sources":["../../../src/core/routes/discovery-routes.ts"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAgQ/C,wBAAsB,qBAAqB,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,CAwT/E"}
1
+ {"version":3,"file":"discovery-routes.d.ts","sourceRoot":"","sources":["../../../src/core/routes/discovery-routes.ts"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AA4T/C,wBAAsB,qBAAqB,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,CAgU/E"}
@@ -53,12 +53,29 @@ function readDiscoveryIndex(discoveriesDir) {
53
53
  if (existsSync(statePath)) {
54
54
  try {
55
55
  const state = JSON.parse(readFileSync(statePath, 'utf8'));
56
+ // Extract perspectives - handle both old and new formats
57
+ let perspectives = [];
58
+ if (state.perspectives && Array.isArray(state.perspectives)) {
59
+ // New format: string array or old format: object array
60
+ if (state.perspectives.length > 0 && typeof state.perspectives[0] === 'object') {
61
+ perspectives = state.perspectives.map((p) => p.name || p.perspective || '');
62
+ }
63
+ else {
64
+ perspectives = state.perspectives;
65
+ }
66
+ }
67
+ else if (state.metadata?.perspectives) {
68
+ // Legacy format
69
+ perspectives = state.metadata.perspectives;
70
+ }
71
+ // Extract created_at - handle both formats
72
+ const created_at = state.created_at || state.metadata?.created_at;
56
73
  discoveries.push({
57
74
  discovery_id: entry.name,
58
75
  target_pattern: state.target_pattern,
59
- perspectives: state.metadata?.perspectives || [],
60
- created_at: state.metadata?.created_at,
61
- completed_at: state.completed_at
76
+ perspectives,
77
+ created_at,
78
+ completed_at: state.completed_at || state.updated_at
62
79
  });
63
80
  }
64
81
  catch {
@@ -102,29 +119,68 @@ function readDiscoveryProgress(discoveriesDir, discoveryId) {
102
119
  if (existsSync(statePath)) {
103
120
  try {
104
121
  const state = JSON.parse(readFileSync(statePath, 'utf8'));
105
- // New merged schema: perspectives array + results object
122
+ // Check if perspectives is an array
106
123
  if (state.perspectives && Array.isArray(state.perspectives)) {
107
- const completed = state.perspectives.filter((p) => p.status === 'completed').length;
108
- const total = state.perspectives.length;
109
- return {
110
- discovery_id: discoveryId,
111
- phase: state.phase,
112
- last_update: state.updated_at || state.created_at,
113
- progress: {
114
- perspective_analysis: {
115
- total,
116
- completed,
117
- in_progress: state.perspectives.filter((p) => p.status === 'in_progress').length,
118
- percent_complete: total > 0 ? Math.round((completed / total) * 100) : 0
124
+ // Detect format: object array (old) vs string array (new)
125
+ const isObjectArray = state.perspectives.length > 0 && typeof state.perspectives[0] === 'object';
126
+ if (isObjectArray) {
127
+ // Old merged schema: perspectives is array of objects with status
128
+ const completed = state.perspectives.filter((p) => p.status === 'completed').length;
129
+ const total = state.perspectives.length;
130
+ return {
131
+ discovery_id: discoveryId,
132
+ phase: state.phase,
133
+ last_update: state.updated_at || state.created_at,
134
+ progress: {
135
+ perspective_analysis: {
136
+ total,
137
+ completed,
138
+ in_progress: state.perspectives.filter((p) => p.status === 'in_progress').length,
139
+ percent_complete: total > 0 ? Math.round((completed / total) * 100) : 0
140
+ },
141
+ external_research: state.external_research || { enabled: false, completed: false },
142
+ aggregation: { completed: state.phase === 'aggregation' || state.phase === 'complete' },
143
+ issue_generation: { completed: state.phase === 'complete', issues_count: state.results?.issues_generated || 0 }
119
144
  },
120
- external_research: state.external_research || { enabled: false, completed: false },
121
- aggregation: { completed: state.phase === 'aggregation' || state.phase === 'complete' },
122
- issue_generation: { completed: state.phase === 'complete', issues_count: state.results?.issues_generated || 0 }
123
- },
124
- agent_status: state.perspectives
125
- };
145
+ agent_status: state.perspectives
146
+ };
147
+ }
148
+ else {
149
+ // New schema: perspectives is string array, status in perspectives_completed/perspectives_failed
150
+ const total = state.perspectives.length;
151
+ const completedList = state.perspectives_completed || [];
152
+ const failedList = state.perspectives_failed || [];
153
+ const completed = completedList.length;
154
+ const failed = failedList.length;
155
+ const inProgress = total - completed - failed;
156
+ return {
157
+ discovery_id: discoveryId,
158
+ phase: state.phase,
159
+ last_update: state.updated_at || state.created_at,
160
+ progress: {
161
+ perspective_analysis: {
162
+ total,
163
+ completed,
164
+ failed,
165
+ in_progress: inProgress,
166
+ percent_complete: total > 0 ? Math.round(((completed + failed) / total) * 100) : 0
167
+ },
168
+ external_research: state.external_research || { enabled: false, completed: false },
169
+ aggregation: { completed: state.phase === 'aggregation' || state.phase === 'complete' },
170
+ issue_generation: {
171
+ completed: state.phase === 'complete',
172
+ issues_count: state.results?.issues_generated || state.issues_generated || 0
173
+ }
174
+ },
175
+ // Convert string array to object array for UI compatibility
176
+ agent_status: state.perspectives.map((p) => ({
177
+ name: p,
178
+ status: completedList.includes(p) ? 'completed' : (failedList.includes(p) ? 'failed' : 'pending')
179
+ }))
180
+ };
181
+ }
126
182
  }
127
- // Old schema: metadata.perspectives (backward compat)
183
+ // Legacy schema: metadata.perspectives (backward compat)
128
184
  if (state.metadata?.perspectives) {
129
185
  return {
130
186
  discovery_id: discoveryId,
@@ -273,12 +329,18 @@ export async function handleDiscoveryRoutes(ctx) {
273
329
  const enrichedDiscoveries = index.discoveries.map((d) => {
274
330
  const state = readDiscoveryState(discoveriesDir, d.discovery_id);
275
331
  const progress = readDiscoveryProgress(discoveriesDir, d.discovery_id);
332
+ // Extract statistics - handle both old and new formats
333
+ // New format: stats in state.results object
334
+ // Old format: stats directly in state
335
+ const total_findings = state?.results?.total_findings ?? state?.total_findings ?? 0;
336
+ const issues_generated = state?.results?.issues_generated ?? state?.issues_generated ?? 0;
337
+ const priority_distribution = state?.results?.priority_distribution ?? state?.priority_distribution ?? {};
276
338
  return {
277
339
  ...d,
278
340
  phase: state?.phase || 'unknown',
279
- total_findings: state?.total_findings || 0,
280
- issues_generated: state?.issues_generated || 0,
281
- priority_distribution: state?.priority_distribution || {},
341
+ total_findings,
342
+ issues_generated,
343
+ priority_distribution,
282
344
  progress: progress?.progress || null
283
345
  };
284
346
  });
@@ -1 +1 @@
1
- {"version":3,"file":"discovery-routes.js","sourceRoot":"","sources":["../../../src/core/routes/discovery-routes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"discovery-routes.js","sourceRoot":"","sources":["../../../src/core/routes/discovery-routes.ts"],"names":[],"mappings":"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"}
@@ -60,12 +60,30 @@ function readDiscoveryIndex(discoveriesDir: string): { discoveries: any[]; total
60
60
  if (existsSync(statePath)) {
61
61
  try {
62
62
  const state = JSON.parse(readFileSync(statePath, 'utf8'));
63
+
64
+ // Extract perspectives - handle both old and new formats
65
+ let perspectives: string[] = [];
66
+ if (state.perspectives && Array.isArray(state.perspectives)) {
67
+ // New format: string array or old format: object array
68
+ if (state.perspectives.length > 0 && typeof state.perspectives[0] === 'object') {
69
+ perspectives = state.perspectives.map((p: any) => p.name || p.perspective || '');
70
+ } else {
71
+ perspectives = state.perspectives;
72
+ }
73
+ } else if (state.metadata?.perspectives) {
74
+ // Legacy format
75
+ perspectives = state.metadata.perspectives;
76
+ }
77
+
78
+ // Extract created_at - handle both formats
79
+ const created_at = state.created_at || state.metadata?.created_at;
80
+
63
81
  discoveries.push({
64
82
  discovery_id: entry.name,
65
83
  target_pattern: state.target_pattern,
66
- perspectives: state.metadata?.perspectives || [],
67
- created_at: state.metadata?.created_at,
68
- completed_at: state.completed_at
84
+ perspectives,
85
+ created_at,
86
+ completed_at: state.completed_at || state.updated_at
69
87
  });
70
88
  } catch {
71
89
  // Skip invalid entries
@@ -110,29 +128,71 @@ function readDiscoveryProgress(discoveriesDir: string, discoveryId: string): any
110
128
  if (existsSync(statePath)) {
111
129
  try {
112
130
  const state = JSON.parse(readFileSync(statePath, 'utf8'));
113
- // New merged schema: perspectives array + results object
131
+
132
+ // Check if perspectives is an array
114
133
  if (state.perspectives && Array.isArray(state.perspectives)) {
115
- const completed = state.perspectives.filter((p: any) => p.status === 'completed').length;
116
- const total = state.perspectives.length;
117
- return {
118
- discovery_id: discoveryId,
119
- phase: state.phase,
120
- last_update: state.updated_at || state.created_at,
121
- progress: {
122
- perspective_analysis: {
123
- total,
124
- completed,
125
- in_progress: state.perspectives.filter((p: any) => p.status === 'in_progress').length,
126
- percent_complete: total > 0 ? Math.round((completed / total) * 100) : 0
134
+ // Detect format: object array (old) vs string array (new)
135
+ const isObjectArray = state.perspectives.length > 0 && typeof state.perspectives[0] === 'object';
136
+
137
+ if (isObjectArray) {
138
+ // Old merged schema: perspectives is array of objects with status
139
+ const completed = state.perspectives.filter((p: any) => p.status === 'completed').length;
140
+ const total = state.perspectives.length;
141
+ return {
142
+ discovery_id: discoveryId,
143
+ phase: state.phase,
144
+ last_update: state.updated_at || state.created_at,
145
+ progress: {
146
+ perspective_analysis: {
147
+ total,
148
+ completed,
149
+ in_progress: state.perspectives.filter((p: any) => p.status === 'in_progress').length,
150
+ percent_complete: total > 0 ? Math.round((completed / total) * 100) : 0
151
+ },
152
+ external_research: state.external_research || { enabled: false, completed: false },
153
+ aggregation: { completed: state.phase === 'aggregation' || state.phase === 'complete' },
154
+ issue_generation: { completed: state.phase === 'complete', issues_count: state.results?.issues_generated || 0 }
127
155
  },
128
- external_research: state.external_research || { enabled: false, completed: false },
129
- aggregation: { completed: state.phase === 'aggregation' || state.phase === 'complete' },
130
- issue_generation: { completed: state.phase === 'complete', issues_count: state.results?.issues_generated || 0 }
131
- },
132
- agent_status: state.perspectives
133
- };
156
+ agent_status: state.perspectives
157
+ };
158
+ } else {
159
+ // New schema: perspectives is string array, status in perspectives_completed/perspectives_failed
160
+ const total = state.perspectives.length;
161
+ const completedList = state.perspectives_completed || [];
162
+ const failedList = state.perspectives_failed || [];
163
+ const completed = completedList.length;
164
+ const failed = failedList.length;
165
+ const inProgress = total - completed - failed;
166
+
167
+ return {
168
+ discovery_id: discoveryId,
169
+ phase: state.phase,
170
+ last_update: state.updated_at || state.created_at,
171
+ progress: {
172
+ perspective_analysis: {
173
+ total,
174
+ completed,
175
+ failed,
176
+ in_progress: inProgress,
177
+ percent_complete: total > 0 ? Math.round(((completed + failed) / total) * 100) : 0
178
+ },
179
+ external_research: state.external_research || { enabled: false, completed: false },
180
+ aggregation: { completed: state.phase === 'aggregation' || state.phase === 'complete' },
181
+ issue_generation: {
182
+ completed: state.phase === 'complete',
183
+ issues_count: state.results?.issues_generated || state.issues_generated || 0
184
+ }
185
+ },
186
+ // Convert string array to object array for UI compatibility
187
+ agent_status: state.perspectives.map((p: string) => ({
188
+ name: p,
189
+ status: completedList.includes(p) ? 'completed' : (failedList.includes(p) ? 'failed' : 'pending')
190
+ }))
191
+ };
192
+ }
134
193
  }
135
- // Old schema: metadata.perspectives (backward compat)
194
+
195
+ // Legacy schema: metadata.perspectives (backward compat)
136
196
  if (state.metadata?.perspectives) {
137
197
  return {
138
198
  discovery_id: discoveryId,
@@ -294,12 +354,20 @@ export async function handleDiscoveryRoutes(ctx: RouteContext): Promise<boolean>
294
354
  const enrichedDiscoveries = index.discoveries.map((d: any) => {
295
355
  const state = readDiscoveryState(discoveriesDir, d.discovery_id);
296
356
  const progress = readDiscoveryProgress(discoveriesDir, d.discovery_id);
357
+
358
+ // Extract statistics - handle both old and new formats
359
+ // New format: stats in state.results object
360
+ // Old format: stats directly in state
361
+ const total_findings = state?.results?.total_findings ?? state?.total_findings ?? 0;
362
+ const issues_generated = state?.results?.issues_generated ?? state?.issues_generated ?? 0;
363
+ const priority_distribution = state?.results?.priority_distribution ?? state?.priority_distribution ?? {};
364
+
297
365
  return {
298
366
  ...d,
299
367
  phase: state?.phase || 'unknown',
300
- total_findings: state?.total_findings || 0,
301
- issues_generated: state?.issues_generated || 0,
302
- priority_distribution: state?.priority_distribution || {},
368
+ total_findings,
369
+ issues_generated,
370
+ priority_distribution,
303
371
  progress: progress?.progress || null
304
372
  };
305
373
  });
@@ -174,7 +174,7 @@ function refreshRecentPaths() {
174
174
  */
175
175
  async function removeRecentPathFromList(path) {
176
176
  try {
177
- const response = await fetch('/api/remove-recent-path', {
177
+ const response = await csrfFetch('/api/remove-recent-path', {
178
178
  method: 'POST',
179
179
  headers: { 'Content-Type': 'application/json' },
180
180
  body: JSON.stringify({ path })
@@ -350,7 +350,7 @@ async function loadCliToolsConfig() {
350
350
  */
351
351
  async function updateCliToolEnabled(tool, enabled) {
352
352
  try {
353
- const response = await fetch('/api/cli/tools-config/' + tool, {
353
+ const response = await csrfFetch('/api/cli/tools-config/' + tool, {
354
354
  method: 'PUT',
355
355
  headers: { 'Content-Type': 'application/json' },
356
356
  body: JSON.stringify({ enabled: enabled })
@@ -796,7 +796,7 @@ function setDefaultCliTool(tool) {
796
796
  // Save to config
797
797
  if (window.claudeCliToolsConfig) {
798
798
  window.claudeCliToolsConfig.defaultTool = tool;
799
- fetch('/api/cli/tools-config', {
799
+ csrfFetch('/api/cli/tools-config', {
800
800
  method: 'PUT',
801
801
  headers: { 'Content-Type': 'application/json' },
802
802
  body: JSON.stringify({ defaultTool: tool })
@@ -851,7 +851,7 @@ function getCacheInjectionMode() {
851
851
 
852
852
  async function setCacheInjectionMode(mode) {
853
853
  try {
854
- const response = await fetch('/api/cli/tools-config/cache', {
854
+ const response = await csrfFetch('/api/cli/tools-config/cache', {
855
855
  method: 'PUT',
856
856
  headers: { 'Content-Type': 'application/json' },
857
857
  body: JSON.stringify({ injectionMode: mode })
@@ -1021,7 +1021,7 @@ async function startCodexLensInstall() {
1021
1021
  }, 1500);
1022
1022
 
1023
1023
  try {
1024
- const response = await fetch('/api/codexlens/bootstrap', {
1024
+ const response = await csrfFetch('/api/codexlens/bootstrap', {
1025
1025
  method: 'POST',
1026
1026
  headers: { 'Content-Type': 'application/json' },
1027
1027
  body: JSON.stringify({})
@@ -1171,7 +1171,7 @@ async function startCodexLensUninstall() {
1171
1171
  }, 500);
1172
1172
 
1173
1173
  try {
1174
- const response = await fetch('/api/codexlens/uninstall', {
1174
+ const response = await csrfFetch('/api/codexlens/uninstall', {
1175
1175
  method: 'POST',
1176
1176
  headers: { 'Content-Type': 'application/json' },
1177
1177
  body: JSON.stringify({})
@@ -1257,7 +1257,7 @@ async function initCodexLensIndex() {
1257
1257
  console.log('[CodexLens] Initializing index for path:', targetPath);
1258
1258
 
1259
1259
  try {
1260
- const response = await fetch('/api/codexlens/init', {
1260
+ const response = await csrfFetch('/api/codexlens/init', {
1261
1261
  method: 'POST',
1262
1262
  headers: { 'Content-Type': 'application/json' },
1263
1263
  body: JSON.stringify({ path: targetPath })
@@ -1424,7 +1424,7 @@ async function startSemanticInstall() {
1424
1424
  }, 2000);
1425
1425
 
1426
1426
  try {
1427
- const response = await fetch('/api/codexlens/semantic/install', {
1427
+ const response = await csrfFetch('/api/codexlens/semantic/install', {
1428
1428
  method: 'POST',
1429
1429
  headers: { 'Content-Type': 'application/json' },
1430
1430
  body: JSON.stringify({})
@@ -449,7 +449,7 @@ async function saveHook(scope, event, hookData) {
449
449
  // Convert to Claude Code format before saving
450
450
  const convertedHookData = convertToClaudeCodeFormat(hookData);
451
451
 
452
- const response = await fetch('/api/hooks', {
452
+ const response = await csrfFetch('/api/hooks', {
453
453
  method: 'POST',
454
454
  headers: { 'Content-Type': 'application/json' },
455
455
  body: JSON.stringify({
@@ -478,7 +478,7 @@ async function saveHook(scope, event, hookData) {
478
478
 
479
479
  async function removeHook(scope, event, hookIndex) {
480
480
  try {
481
- const response = await fetch('/api/hooks', {
481
+ const response = await csrfFetch('/api/hooks', {
482
482
  method: 'DELETE',
483
483
  headers: { 'Content-Type': 'application/json' },
484
484
  body: JSON.stringify({
@@ -252,7 +252,7 @@ async function cleanIndexProject(projectId) {
252
252
 
253
253
  // The project ID is the directory name in the index folder
254
254
  // We need to construct the full path or use a clean API
255
- const response = await fetch('/api/codexlens/clean', {
255
+ const response = await csrfFetch('/api/codexlens/clean', {
256
256
  method: 'POST',
257
257
  headers: { 'Content-Type': 'application/json' },
258
258
  body: JSON.stringify({ projectId: projectId })
@@ -282,7 +282,7 @@ async function cleanAllIndexesConfirm() {
282
282
  try {
283
283
  showRefreshToast(t('index.cleaning') || 'Cleaning indexes...', 'info');
284
284
 
285
- const response = await fetch('/api/codexlens/clean', {
285
+ const response = await csrfFetch('/api/codexlens/clean', {
286
286
  method: 'POST',
287
287
  headers: { 'Content-Type': 'application/json' },
288
288
  body: JSON.stringify({ all: true })
@@ -91,7 +91,7 @@ function getCliMode() {
91
91
  */
92
92
  async function addCodexMcpServer(serverName, serverConfig) {
93
93
  try {
94
- const response = await fetch('/api/codex-mcp-add', {
94
+ const response = await csrfFetch('/api/codex-mcp-add', {
95
95
  method: 'POST',
96
96
  headers: { 'Content-Type': 'application/json' },
97
97
  body: JSON.stringify({
@@ -123,7 +123,7 @@ async function addCodexMcpServer(serverName, serverConfig) {
123
123
  */
124
124
  async function removeCodexMcpServer(serverName) {
125
125
  try {
126
- const response = await fetch('/api/codex-mcp-remove', {
126
+ const response = await csrfFetch('/api/codex-mcp-remove', {
127
127
  method: 'POST',
128
128
  headers: { 'Content-Type': 'application/json' },
129
129
  body: JSON.stringify({ serverName })
@@ -152,7 +152,7 @@ async function removeCodexMcpServer(serverName) {
152
152
  */
153
153
  async function toggleCodexMcpServer(serverName, enabled) {
154
154
  try {
155
- const response = await fetch('/api/codex-mcp-toggle', {
155
+ const response = await csrfFetch('/api/codex-mcp-toggle', {
156
156
  method: 'POST',
157
157
  headers: { 'Content-Type': 'application/json' },
158
158
  body: JSON.stringify({ serverName, enabled })
@@ -205,7 +205,7 @@ async function copyCodexServerToClaude(serverName, serverConfig) {
205
205
 
206
206
  async function toggleMcpServer(serverName, enable) {
207
207
  try {
208
- const response = await fetch('/api/mcp-toggle', {
208
+ const response = await csrfFetch('/api/mcp-toggle', {
209
209
  method: 'POST',
210
210
  headers: { 'Content-Type': 'application/json' },
211
211
  body: JSON.stringify({
@@ -239,7 +239,7 @@ async function copyMcpServerToProject(serverName, serverConfig, configType = nul
239
239
  configType = preferredProjectConfigType;
240
240
  }
241
241
 
242
- const response = await fetch('/api/mcp-copy-server', {
242
+ const response = await csrfFetch('/api/mcp-copy-server', {
243
243
  method: 'POST',
244
244
  headers: { 'Content-Type': 'application/json' },
245
245
  body: JSON.stringify({
@@ -316,7 +316,7 @@ function showConfigTypeDialog() {
316
316
 
317
317
  async function removeMcpServerFromProject(serverName) {
318
318
  try {
319
- const response = await fetch('/api/mcp-remove-server', {
319
+ const response = await csrfFetch('/api/mcp-remove-server', {
320
320
  method: 'POST',
321
321
  headers: { 'Content-Type': 'application/json' },
322
322
  body: JSON.stringify({
@@ -343,7 +343,7 @@ async function removeMcpServerFromProject(serverName) {
343
343
 
344
344
  async function addGlobalMcpServer(serverName, serverConfig) {
345
345
  try {
346
- const response = await fetch('/api/mcp-add-global-server', {
346
+ const response = await csrfFetch('/api/mcp-add-global-server', {
347
347
  method: 'POST',
348
348
  headers: { 'Content-Type': 'application/json' },
349
349
  body: JSON.stringify({
@@ -370,7 +370,7 @@ async function addGlobalMcpServer(serverName, serverConfig) {
370
370
 
371
371
  async function removeGlobalMcpServer(serverName) {
372
372
  try {
373
- const response = await fetch('/api/mcp-remove-global-server', {
373
+ const response = await csrfFetch('/api/mcp-remove-global-server', {
374
374
  method: 'POST',
375
375
  headers: { 'Content-Type': 'application/json' },
376
376
  body: JSON.stringify({
@@ -809,7 +809,7 @@ async function submitMcpCreateFromJson() {
809
809
 
810
810
  for (const [name, config] of Object.entries(servers)) {
811
811
  try {
812
- const response = await fetch('/api/mcp-copy-server', {
812
+ const response = await csrfFetch('/api/mcp-copy-server', {
813
813
  method: 'POST',
814
814
  headers: { 'Content-Type': 'application/json' },
815
815
  body: JSON.stringify({
@@ -854,7 +854,7 @@ async function createMcpServerWithConfig(name, serverConfig, scope = 'project')
854
854
 
855
855
  if (scope === 'codex') {
856
856
  // Create in Codex config.toml
857
- response = await fetch('/api/codex-mcp-add', {
857
+ response = await csrfFetch('/api/codex-mcp-add', {
858
858
  method: 'POST',
859
859
  headers: { 'Content-Type': 'application/json' },
860
860
  body: JSON.stringify({
@@ -864,7 +864,7 @@ async function createMcpServerWithConfig(name, serverConfig, scope = 'project')
864
864
  });
865
865
  scopeLabel = 'Codex';
866
866
  } else if (scope === 'global') {
867
- response = await fetch('/api/mcp-add-global-server', {
867
+ response = await csrfFetch('/api/mcp-add-global-server', {
868
868
  method: 'POST',
869
869
  headers: { 'Content-Type': 'application/json' },
870
870
  body: JSON.stringify({
@@ -874,7 +874,7 @@ async function createMcpServerWithConfig(name, serverConfig, scope = 'project')
874
874
  });
875
875
  scopeLabel = 'global';
876
876
  } else {
877
- response = await fetch('/api/mcp-copy-server', {
877
+ response = await csrfFetch('/api/mcp-copy-server', {
878
878
  method: 'POST',
879
879
  headers: { 'Content-Type': 'application/json' },
880
880
  body: JSON.stringify({
@@ -1006,7 +1006,7 @@ async function installCcwToolsMcp(scope = 'workspace') {
1006
1006
 
1007
1007
  if (scope === 'global') {
1008
1008
  // Install to global (~/.claude.json mcpServers)
1009
- const response = await fetch('/api/mcp-add-global-server', {
1009
+ const response = await csrfFetch('/api/mcp-add-global-server', {
1010
1010
  method: 'POST',
1011
1011
  headers: { 'Content-Type': 'application/json' },
1012
1012
  body: JSON.stringify({
@@ -1028,7 +1028,7 @@ async function installCcwToolsMcp(scope = 'workspace') {
1028
1028
  } else {
1029
1029
  // Install to workspace (use preferredProjectConfigType)
1030
1030
  const configType = preferredProjectConfigType;
1031
- const response = await fetch('/api/mcp-copy-server', {
1031
+ const response = await csrfFetch('/api/mcp-copy-server', {
1032
1032
  method: 'POST',
1033
1033
  headers: { 'Content-Type': 'application/json' },
1034
1034
  body: JSON.stringify({
@@ -1074,7 +1074,7 @@ async function updateCcwToolsMcp(scope = 'workspace') {
1074
1074
 
1075
1075
  if (scope === 'global') {
1076
1076
  // Update global (~/.claude.json mcpServers)
1077
- const response = await fetch('/api/mcp-add-global-server', {
1077
+ const response = await csrfFetch('/api/mcp-add-global-server', {
1078
1078
  method: 'POST',
1079
1079
  headers: { 'Content-Type': 'application/json' },
1080
1080
  body: JSON.stringify({
@@ -1096,7 +1096,7 @@ async function updateCcwToolsMcp(scope = 'workspace') {
1096
1096
  } else {
1097
1097
  // Update workspace (use preferredProjectConfigType)
1098
1098
  const configType = preferredProjectConfigType;
1099
- const response = await fetch('/api/mcp-copy-server', {
1099
+ const response = await csrfFetch('/api/mcp-copy-server', {
1100
1100
  method: 'POST',
1101
1101
  headers: { 'Content-Type': 'application/json' },
1102
1102
  body: JSON.stringify({
@@ -415,7 +415,7 @@ async function cleanProjectStorage(projectId) {
415
415
  }
416
416
 
417
417
  try {
418
- const res = await fetch('/api/storage/clean', {
418
+ const res = await csrfFetch('/api/storage/clean', {
419
419
  method: 'POST',
420
420
  headers: { 'Content-Type': 'application/json' },
421
421
  body: JSON.stringify({ projectId })
@@ -451,7 +451,7 @@ async function cleanAllStorageConfirm() {
451
451
  }
452
452
 
453
453
  try {
454
- const res = await fetch('/api/storage/clean', {
454
+ const res = await csrfFetch('/api/storage/clean', {
455
455
  method: 'POST',
456
456
  headers: { 'Content-Type': 'application/json' },
457
457
  body: JSON.stringify({ all: true })
@@ -568,7 +568,7 @@ async function executeSidebarUpdateTask(taskId) {
568
568
  }
569
569
 
570
570
  try {
571
- const response = await fetch('/api/update-claude-md', {
571
+ const response = await csrfFetch('/api/update-claude-md', {
572
572
  method: 'POST',
573
573
  headers: { 'Content-Type': 'application/json' },
574
574
  body: JSON.stringify({
@@ -2752,7 +2752,7 @@ async function installSemanticDeps() {
2752
2752
  '<div class="text-sm text-muted-foreground animate-pulse">' + t('codexlens.installingDeps') + '</div>';
2753
2753
 
2754
2754
  try {
2755
- var response = await fetch('/api/codexlens/semantic/install', { method: 'POST' });
2755
+ var response = await csrfFetch('/api/codexlens/semantic/install', { method: 'POST' });
2756
2756
  var result = await response.json();
2757
2757
 
2758
2758
  if (result.success) {
@@ -3613,7 +3613,7 @@ async function initCodexLensIndex(indexType, embeddingModel, embeddingBackend, m
3613
3613
  // Install semantic dependencies first
3614
3614
  showRefreshToast(t('codexlens.installingDeps') || 'Installing semantic dependencies...', 'info');
3615
3615
  try {
3616
- var installResponse = await fetch('/api/codexlens/semantic/install', { method: 'POST' });
3616
+ var installResponse = await csrfFetch('/api/codexlens/semantic/install', { method: 'POST' });
3617
3617
  var installResult = await installResponse.json();
3618
3618
 
3619
3619
  if (!installResult.success) {
@@ -5383,7 +5383,7 @@ function initCodexLensManagerPageEvents(currentConfig) {
5383
5383
  saveBtn.disabled = true;
5384
5384
  saveBtn.innerHTML = '<span class="animate-pulse">' + t('common.saving') + '</span>';
5385
5385
  try {
5386
- var response = await fetch('/api/codexlens/config', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ index_dir: newIndexDir }) });
5386
+ var response = await csrfFetch('/api/codexlens/config', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ index_dir: newIndexDir }) });
5387
5387
  var result = await response.json();
5388
5388
  if (result.success) { showRefreshToast(t('codexlens.configSaved'), 'success'); renderCodexLensManager(); }
5389
5389
  else { showRefreshToast(t('common.saveFailed') + ': ' + result.error, 'error'); }
@@ -1114,7 +1114,7 @@ async function deleteInsight(insightId) {
1114
1114
  if (!confirm(t('memory.confirmDeleteInsight'))) return;
1115
1115
 
1116
1116
  try {
1117
- var response = await fetch('/api/memory/insights/' + insightId, { method: 'DELETE' });
1117
+ var response = await csrfFetch('/api/memory/insights/' + insightId, { method: 'DELETE' });
1118
1118
  if (!response.ok) throw new Error('Failed to delete insight');
1119
1119
 
1120
1120
  selectedInsight = null;
@@ -431,7 +431,7 @@ async function deletePromptInsight(insightId) {
431
431
  if (!confirm(isZh() ? '确定要删除这条洞察记录吗?' : 'Are you sure you want to delete this insight?')) return;
432
432
 
433
433
  try {
434
- var response = await fetch('/api/memory/insights/' + insightId, { method: 'DELETE' });
434
+ var response = await csrfFetch('/api/memory/insights/' + insightId, { method: 'DELETE' });
435
435
  if (!response.ok) throw new Error('Failed to delete insight');
436
436
 
437
437
  selectedPromptInsight = null;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-code-workflow",
3
- "version": "6.3.20",
3
+ "version": "6.3.22",
4
4
  "description": "JSON-driven multi-agent development framework with intelligent CLI orchestration (Gemini/Qwen/Codex), context-first architecture, and automated workflow execution",
5
5
  "type": "module",
6
6
  "main": "ccw/src/index.js",