@claude-view/plugin 0.27.0 → 0.29.0

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 (149) hide show
  1. package/.claude-plugin/plugin.json +2 -2
  2. package/README.md +65 -14
  3. package/dist/client.d.ts +5 -0
  4. package/dist/client.d.ts.map +1 -1
  5. package/dist/client.js +30 -0
  6. package/dist/client.js.map +1 -1
  7. package/dist/server.d.ts.map +1 -1
  8. package/dist/server.js +10 -2
  9. package/dist/server.js.map +1 -1
  10. package/dist/tools/generated/classify.d.ts +3 -0
  11. package/dist/tools/generated/classify.d.ts.map +1 -0
  12. package/dist/tools/generated/classify.js +48 -0
  13. package/dist/tools/generated/classify.js.map +1 -0
  14. package/dist/tools/generated/coaching.d.ts +3 -0
  15. package/dist/tools/generated/coaching.d.ts.map +1 -0
  16. package/dist/tools/generated/coaching.js +45 -0
  17. package/dist/tools/generated/coaching.js.map +1 -0
  18. package/dist/tools/generated/contributions.d.ts +3 -0
  19. package/dist/tools/generated/contributions.d.ts.map +1 -0
  20. package/dist/tools/generated/contributions.js +56 -0
  21. package/dist/tools/generated/contributions.js.map +1 -0
  22. package/dist/tools/generated/export.d.ts +3 -0
  23. package/dist/tools/generated/export.d.ts.map +1 -0
  24. package/dist/tools/generated/export.js +18 -0
  25. package/dist/tools/generated/export.js.map +1 -0
  26. package/dist/tools/generated/facets.d.ts +3 -0
  27. package/dist/tools/generated/facets.d.ts.map +1 -0
  28. package/dist/tools/generated/facets.js +48 -0
  29. package/dist/tools/generated/facets.js.map +1 -0
  30. package/dist/tools/generated/health.d.ts +3 -0
  31. package/dist/tools/generated/health.d.ts.map +1 -0
  32. package/dist/tools/generated/health.js +36 -0
  33. package/dist/tools/generated/health.js.map +1 -0
  34. package/dist/tools/generated/ide.d.ts +3 -0
  35. package/dist/tools/generated/ide.d.ts.map +1 -0
  36. package/dist/tools/generated/ide.js +30 -0
  37. package/dist/tools/generated/ide.js.map +1 -0
  38. package/dist/tools/generated/index.d.ts +3 -0
  39. package/dist/tools/generated/index.d.ts.map +1 -0
  40. package/dist/tools/generated/index.js +57 -0
  41. package/dist/tools/generated/index.js.map +1 -0
  42. package/dist/tools/generated/insights.d.ts +3 -0
  43. package/dist/tools/generated/insights.d.ts.map +1 -0
  44. package/dist/tools/generated/insights.js +73 -0
  45. package/dist/tools/generated/insights.js.map +1 -0
  46. package/dist/tools/generated/jobs.d.ts +3 -0
  47. package/dist/tools/generated/jobs.d.ts.map +1 -0
  48. package/dist/tools/generated/jobs.js +16 -0
  49. package/dist/tools/generated/jobs.js.map +1 -0
  50. package/dist/tools/generated/monitor.d.ts +3 -0
  51. package/dist/tools/generated/monitor.d.ts.map +1 -0
  52. package/dist/tools/generated/monitor.js +16 -0
  53. package/dist/tools/generated/monitor.js.map +1 -0
  54. package/dist/tools/generated/oauth.d.ts +3 -0
  55. package/dist/tools/generated/oauth.d.ts.map +1 -0
  56. package/dist/tools/generated/oauth.js +36 -0
  57. package/dist/tools/generated/oauth.js.map +1 -0
  58. package/dist/tools/generated/pairing.d.ts +3 -0
  59. package/dist/tools/generated/pairing.d.ts.map +1 -0
  60. package/dist/tools/generated/pairing.js +38 -0
  61. package/dist/tools/generated/pairing.js.map +1 -0
  62. package/dist/tools/generated/plans.d.ts +3 -0
  63. package/dist/tools/generated/plans.d.ts.map +1 -0
  64. package/dist/tools/generated/plans.js +18 -0
  65. package/dist/tools/generated/plans.js.map +1 -0
  66. package/dist/tools/generated/plugins.d.ts +3 -0
  67. package/dist/tools/generated/plugins.d.ts.map +1 -0
  68. package/dist/tools/generated/plugins.js +73 -0
  69. package/dist/tools/generated/plugins.js.map +1 -0
  70. package/dist/tools/generated/processes.d.ts +3 -0
  71. package/dist/tools/generated/processes.d.ts.map +1 -0
  72. package/dist/tools/generated/processes.js +32 -0
  73. package/dist/tools/generated/processes.js.map +1 -0
  74. package/dist/tools/generated/projects.d.ts +3 -0
  75. package/dist/tools/generated/projects.d.ts.map +1 -0
  76. package/dist/tools/generated/projects.js +45 -0
  77. package/dist/tools/generated/projects.js.map +1 -0
  78. package/dist/tools/generated/prompts.d.ts +3 -0
  79. package/dist/tools/generated/prompts.d.ts.map +1 -0
  80. package/dist/tools/generated/prompts.js +48 -0
  81. package/dist/tools/generated/prompts.js.map +1 -0
  82. package/dist/tools/generated/reports.d.ts +3 -0
  83. package/dist/tools/generated/reports.d.ts.map +1 -0
  84. package/dist/tools/generated/reports.js +53 -0
  85. package/dist/tools/generated/reports.js.map +1 -0
  86. package/dist/tools/generated/settings.d.ts +3 -0
  87. package/dist/tools/generated/settings.d.ts.map +1 -0
  88. package/dist/tools/generated/settings.js +41 -0
  89. package/dist/tools/generated/settings.js.map +1 -0
  90. package/dist/tools/generated/share.d.ts +3 -0
  91. package/dist/tools/generated/share.d.ts.map +1 -0
  92. package/dist/tools/generated/share.js +40 -0
  93. package/dist/tools/generated/share.js.map +1 -0
  94. package/dist/tools/generated/sync.d.ts +3 -0
  95. package/dist/tools/generated/sync.d.ts.map +1 -0
  96. package/dist/tools/generated/sync.js +36 -0
  97. package/dist/tools/generated/sync.js.map +1 -0
  98. package/dist/tools/generated/system.d.ts +3 -0
  99. package/dist/tools/generated/system.d.ts.map +1 -0
  100. package/dist/tools/generated/system.js +68 -0
  101. package/dist/tools/generated/system.js.map +1 -0
  102. package/dist/tools/generated/teams.d.ts +3 -0
  103. package/dist/tools/generated/teams.d.ts.map +1 -0
  104. package/dist/tools/generated/teams.js +40 -0
  105. package/dist/tools/generated/teams.js.map +1 -0
  106. package/dist/tools/generated/telemetry.d.ts +3 -0
  107. package/dist/tools/generated/telemetry.d.ts.map +1 -0
  108. package/dist/tools/generated/telemetry.js +18 -0
  109. package/dist/tools/generated/telemetry.js.map +1 -0
  110. package/dist/tools/generated/turns.d.ts +3 -0
  111. package/dist/tools/generated/turns.d.ts.map +1 -0
  112. package/dist/tools/generated/turns.js +18 -0
  113. package/dist/tools/generated/turns.js.map +1 -0
  114. package/dist/tools/generated/workflows.d.ts +3 -0
  115. package/dist/tools/generated/workflows.d.ts.map +1 -0
  116. package/dist/tools/generated/workflows.js +64 -0
  117. package/dist/tools/generated/workflows.js.map +1 -0
  118. package/dist/tools/live.d.ts +1 -10
  119. package/dist/tools/live.d.ts.map +1 -1
  120. package/dist/tools/live.js.map +1 -1
  121. package/dist/tools/sessions.d.ts +1 -10
  122. package/dist/tools/sessions.d.ts.map +1 -1
  123. package/dist/tools/sessions.js.map +1 -1
  124. package/dist/tools/stats.d.ts +1 -10
  125. package/dist/tools/stats.d.ts.map +1 -1
  126. package/dist/tools/stats.js.map +1 -1
  127. package/dist/tools/types.d.ts +10 -0
  128. package/dist/tools/types.d.ts.map +1 -0
  129. package/dist/tools/types.js +2 -0
  130. package/dist/tools/types.js.map +1 -0
  131. package/package.json +19 -7
  132. package/skills/coaching/SKILL.md +176 -0
  133. package/skills/coaching/SKILL.md.tmpl +52 -0
  134. package/skills/daily-cost/SKILL.md +132 -0
  135. package/skills/daily-cost/SKILL.md.tmpl +45 -0
  136. package/skills/export-data/SKILL.md +169 -0
  137. package/skills/export-data/SKILL.md.tmpl +45 -0
  138. package/skills/insights/SKILL.md +174 -0
  139. package/skills/insights/SKILL.md.tmpl +50 -0
  140. package/skills/project-overview/SKILL.md +181 -0
  141. package/skills/project-overview/SKILL.md.tmpl +57 -0
  142. package/skills/search/SKILL.md +167 -0
  143. package/skills/search/SKILL.md.tmpl +43 -0
  144. package/skills/session-recap/SKILL.md +131 -0
  145. package/skills/session-recap/SKILL.md.tmpl +42 -0
  146. package/skills/standup/SKILL.md +132 -0
  147. package/skills/standup/SKILL.md.tmpl +48 -0
  148. package/skills/team-status/SKILL.md +173 -0
  149. package/skills/team-status/SKILL.md.tmpl +49 -0
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "claude-view",
3
- "description": "Mission Control for Claude Code — auto-starts a web dashboard, provides session/cost/fluency tools, and adds /session-recap, /daily-cost, /standup skills.",
4
- "version": "0.8.0",
3
+ "description": "Mission Control for Claude Code — auto-starts a web dashboard, provides 90 MCP tools (sessions, stats, live monitoring, projects, teams, insights, coaching, and more), and adds 9 skills including /session-recap, /daily-cost, /standup, /coaching, /insights, and /team-status.",
4
+ "version": "0.29.0",
5
5
  "author": {
6
6
  "name": "tombelieber",
7
7
  "email": "nicholasgee1997@gmail.com"
package/README.md CHANGED
@@ -6,7 +6,7 @@
6
6
  <a href="https://github.com/tombelieber/claude-view/blob/main/LICENSE"><img src="https://img.shields.io/badge/License-MIT-blue.svg" alt="License: MIT"></a>
7
7
  </p>
8
8
 
9
- Mission Control plugin for [Claude Code](https://docs.anthropic.com/en/docs/claude-code). Auto-starts the [claude-view](https://claudeview.ai) web dashboard, provides 8 session/cost/fluency MCP tools, and adds `/session-recap`, `/daily-cost`, `/standup` skills.
9
+ Mission Control plugin for [Claude Code](https://docs.anthropic.com/en/docs/claude-code). Auto-starts the [claude-view](https://claudeview.ai) web dashboard, provides 86 MCP tools across 30 categories, and adds 9 skills for common workflows.
10
10
 
11
11
  ## Install
12
12
 
@@ -34,24 +34,75 @@ Every time you start a Claude Code session, the plugin checks if the claude-view
34
34
  is running. If not, it starts it in the background. Web dashboard appears at
35
35
  `http://localhost:47892`.
36
36
 
37
- ### 8 MCP Tools (available to Claude)
38
- | Tool | Purpose |
39
- |------|---------|
40
- | `list_sessions` | List/filter/paginate sessions |
41
- | `get_session` | Full session detail + commits |
42
- | `search_sessions` | Full-text search across sessions |
37
+ ## Tools (86)
38
+
39
+ ### Hand-written (curated output) — 8 tools
40
+
41
+ These tools have hand-crafted response shaping for optimal Claude consumption.
42
+
43
+ | Tool | Description |
44
+ |------|-------------|
45
+ | `list_sessions` | List/filter/paginate sessions with summaries |
46
+ | `get_session` | Full session detail + commits + derived metrics |
47
+ | `search_sessions` | Full-text search across all sessions |
43
48
  | `get_stats` | Dashboard overview: projects, skills, trends |
44
- | `get_fluency_score` | AI Fluency Score (0-100) |
45
- | `get_token_stats` | Token usage breakdown |
46
- | `list_live_sessions` | Currently running sessions |
47
- | `get_live_summary` | Aggregate: cost today, attention count |
49
+ | `get_fluency_score` | AI Fluency Score (0-100 composite) |
50
+ | `get_token_stats` | Token usage breakdown (input/output/cache) |
51
+ | `list_live_sessions` | Currently running sessions with real-time state |
52
+ | `get_live_summary` | Aggregate: cost today, attention count, tokens |
53
+
54
+ ### Auto-generated (JSON passthrough) — 78 tools
55
+
56
+ Generated from the OpenAPI spec. 78 tools across 27 categories.
57
+
58
+ <details>
59
+ <summary>Show all generated tools</summary>
60
+
61
+ | Tag | Tools | Example |
62
+ |-----|-------|---------|
63
+ | classify | 4 | `classify_start_classification` |
64
+ | coaching | 3 | `coaching_list_rules` |
65
+ | contributions | 3 | `contributions_get_contributions` |
66
+ | export | 1 | `export_sessions` |
67
+ | facets | 4 | `facets_facet_badges` |
68
+ | health | 3 | `health_config` |
69
+ | ide | 2 | `ide_get_detect` |
70
+ | insights | 5 | `insights_get_insights` |
71
+ | jobs | 1 | `jobs_list_jobs` |
72
+ | models | 1 | `models_list_models` |
73
+ | monitor | 1 | `monitor_snapshot` |
74
+ | oauth | 3 | `oauth_get_auth_identity` |
75
+ | pairing | 3 | `pairing_list_devices` |
76
+ | plans | 1 | `plans_get_session_plans` |
77
+ | plugins | 6 | `plugins_list_plugins` |
78
+ | processes | 2 | `processes_cleanup_processes` |
79
+ | projects | 3 | `projects_list_projects` |
80
+ | prompts | 3 | `prompts_list_prompts` |
81
+ | reports | 4 | `reports_list_reports` |
82
+ | settings | 3 | `settings_get_settings` |
83
+ | share | 3 | `share_create_share` |
84
+ | sync | 3 | `sync_indexing_status` |
85
+ | system | 6 | `system_check_path` |
86
+ | teams | 3 | `teams_list_teams` |
87
+ | telemetry | 1 | `telemetry_set_consent` |
88
+ | turns | 1 | `turns_get_session_turns` |
89
+ | workflows | 5 | `workflows_list_workflows` |
90
+
91
+ </details>
92
+
93
+ ### 9 Skills
48
94
 
49
- ### 3 Skills
50
95
  | Skill | Trigger |
51
96
  |-------|---------|
52
- | `/session-recap` | "recap my last session", "summarize session" |
97
+ | `/session-recap` | "recap my last session", "session summary" |
53
98
  | `/daily-cost` | "how much did I spend today", "cost report" |
54
- | `/standup` | "standup update", "what did I work on" |
99
+ | `/standup` | "standup update", "what did I work on today" |
100
+ | `/coaching` | "how can I improve", "coaching tips", "add a coaching rule" |
101
+ | `/insights` | "what patterns do you see", "behavioral analysis" |
102
+ | `/project-overview` | "show me project X", "project summary" |
103
+ | `/search` | "find where I discussed X", "search for Y" |
104
+ | `/export-data` | "export my sessions", "download data", "export to CSV" |
105
+ | `/team-status` | "team status", "what's the team doing", "who's active" |
55
106
 
56
107
  ## Configuration
57
108
 
package/dist/client.d.ts CHANGED
@@ -2,5 +2,10 @@ export declare class ClaudeViewClient {
2
2
  readonly baseUrl: string;
3
3
  constructor(port?: number);
4
4
  get<T = unknown>(path: string, params?: Record<string, string | number | undefined>): Promise<T>;
5
+ request<T = unknown>(method: string, path: string, options?: {
6
+ params?: Record<string, string | number | undefined>;
7
+ body?: unknown;
8
+ timeout?: number;
9
+ }): Promise<T>;
5
10
  }
6
11
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,qBAAa,gBAAgB;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;gBAEZ,IAAI,CAAC,EAAE,MAAM;IAKnB,GAAG,CAAC,CAAC,GAAG,OAAO,EACnB,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,GACnD,OAAO,CAAC,CAAC,CAAC;CA6Bd"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,qBAAa,gBAAgB;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;gBAEZ,IAAI,CAAC,EAAE,MAAM;IAKnB,GAAG,CAAC,CAAC,GAAG,OAAO,EACnB,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,GACnD,OAAO,CAAC,CAAC,CAAC;IA8BP,OAAO,CAAC,CAAC,GAAG,OAAO,EACvB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;QACR,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,CAAA;QACpD,IAAI,CAAC,EAAE,OAAO,CAAA;QACd,OAAO,CAAC,EAAE,MAAM,CAAA;KACjB,GACA,OAAO,CAAC,CAAC,CAAC;CAkCd"}
package/dist/client.js CHANGED
@@ -29,5 +29,35 @@ export class ClaudeViewClient {
29
29
  }
30
30
  return response.json();
31
31
  }
32
+ async request(method, path, options) {
33
+ const url = new URL(path, this.baseUrl);
34
+ if (options?.params) {
35
+ for (const [key, value] of Object.entries(options.params)) {
36
+ if (value !== undefined) {
37
+ url.searchParams.set(key, String(value));
38
+ }
39
+ }
40
+ }
41
+ let response;
42
+ try {
43
+ const fetchOpts = {
44
+ method,
45
+ headers: { Accept: 'application/json', 'Content-Type': 'application/json' },
46
+ signal: AbortSignal.timeout(options?.timeout ?? 10_000),
47
+ };
48
+ if (options?.body !== undefined) {
49
+ fetchOpts.body = JSON.stringify(options.body);
50
+ }
51
+ response = await fetch(url.toString(), fetchOpts);
52
+ }
53
+ catch {
54
+ throw new Error(`claude-view server not detected at ${this.baseUrl}. Start it with: npx claude-view`);
55
+ }
56
+ if (!response.ok) {
57
+ const body = await response.text().catch(() => '');
58
+ throw new Error(`claude-view API error ${response.status}: ${body}`);
59
+ }
60
+ return response.json();
61
+ }
32
62
  }
33
63
  //# sourceMappingURL=client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,gBAAgB;IAClB,OAAO,CAAQ;IAExB,YAAY,IAAa;QACvB,MAAM,YAAY,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,KAAK,CAAC,CAAA;QAC5E,IAAI,CAAC,OAAO,GAAG,oBAAoB,YAAY,EAAE,CAAA;IACnD,CAAC;IAED,KAAK,CAAC,GAAG,CACP,IAAY,EACZ,MAAoD;QAEpD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;QACvC,IAAI,MAAM,EAAE,CAAC;YACX,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAClD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBACxB,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;gBAC1C,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,QAAkB,CAAA;QACtB,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE;gBACrC,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE;gBACvC,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;aACpC,CAAC,CAAA;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,KAAK,CACb,sCAAsC,IAAI,CAAC,OAAO,kCAAkC,CACrF,CAAA;QACH,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAA;YAClD,MAAM,IAAI,KAAK,CAAC,yBAAyB,QAAQ,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC,CAAA;QACtE,CAAC;QAED,OAAO,QAAQ,CAAC,IAAI,EAAgB,CAAA;IACtC,CAAC;CACF"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AAOnE,eAAO,MAAM,UAAU,QAAmB,CAAA;AAE1C,wBAAgB,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM,aA+BzC"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AAenE,eAAO,MAAM,UAAU,QAAmB,CAAA;AAE1C,wBAAgB,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM,aA+BzC"}
package/dist/server.js CHANGED
@@ -1,15 +1,23 @@
1
+ import { createRequire } from 'node:module';
1
2
  import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
3
  import { ClaudeViewClient } from './client.js';
4
+ import { allGeneratedTools } from './tools/generated/index.js';
3
5
  import { liveTools } from './tools/live.js';
4
6
  import { sessionTools } from './tools/sessions.js';
5
7
  import { statsTools } from './tools/stats.js';
6
- const ALL_TOOLS = [...sessionTools, ...statsTools, ...liveTools];
8
+ const require = createRequire(import.meta.url);
9
+ const { version } = require('../package.json');
10
+ // Hand-written tools take precedence — dedup by name
11
+ const HAND_WRITTEN = [...sessionTools, ...statsTools, ...liveTools];
12
+ const handWrittenNames = new Set(HAND_WRITTEN.map(t => t.name));
13
+ const dedupedGenerated = allGeneratedTools.filter(t => !handWrittenNames.has(t.name));
14
+ const ALL_TOOLS = [...HAND_WRITTEN, ...dedupedGenerated];
7
15
  export const TOOL_COUNT = ALL_TOOLS.length;
8
16
  export function createServer(port) {
9
17
  const client = new ClaudeViewClient(port);
10
18
  const server = new McpServer({
11
19
  name: 'claude-view',
12
- version: '0.8.0',
20
+ version,
13
21
  });
14
22
  for (const tool of ALL_TOOLS) {
15
23
  server.registerTool(tool.name, {
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAE7C,MAAM,SAAS,GAAG,CAAC,GAAG,YAAY,EAAE,GAAG,UAAU,EAAE,GAAG,SAAS,CAAC,CAAA;AAChE,MAAM,CAAC,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,CAAA;AAE1C,MAAM,UAAU,YAAY,CAAC,IAAa;IACxC,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAA;IAEzC,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,IAAI,EAAE,aAAa;QACnB,OAAO,EAAE,OAAO;KACjB,CAAC,CAAA;IAEF,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC7B,MAAM,CAAC,YAAY,CACjB,IAAI,CAAC,IAAI,EACT;YACE,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,WAAW,EAAE,IAAI,CAAC,WAAW;SAC9B,EACD,KAAK,EAAE,IAAS,EAAE,EAAE;YAClB,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;gBAC/C,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAA;YAC/D,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAClB,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,UAAU,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC;oBACnE,OAAO,EAAE,IAAI;iBACd,CAAA;YACH,CAAC;QACH,CAAC,CACF,CAAA;IACH,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAE7C,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAC9C,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAwB,CAAA;AAErE,qDAAqD;AACrD,MAAM,YAAY,GAAG,CAAC,GAAG,YAAY,EAAE,GAAG,UAAU,EAAE,GAAG,SAAS,CAAC,CAAA;AACnE,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;AAC/D,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;AACrF,MAAM,SAAS,GAAG,CAAC,GAAG,YAAY,EAAE,GAAG,gBAAgB,CAAC,CAAA;AACxD,MAAM,CAAC,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,CAAA;AAE1C,MAAM,UAAU,YAAY,CAAC,IAAa;IACxC,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAA;IAEzC,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,IAAI,EAAE,aAAa;QACnB,OAAO;KACR,CAAC,CAAA;IAEF,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC7B,MAAM,CAAC,YAAY,CACjB,IAAI,CAAC,IAAI,EACT;YACE,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,WAAW,EAAE,IAAI,CAAC,WAAW;SAC9B,EACD,KAAK,EAAE,IAAS,EAAE,EAAE;YAClB,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;gBAC/C,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAA;YAC/D,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAClB,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,UAAU,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC;oBACnE,OAAO,EAAE,IAAI;iBACd,CAAA;YACH,CAAC;QACH,CAAC,CACF,CAAA;IACH,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { ToolDef } from '../types.js';
2
+ export declare const classifyGeneratedTools: ToolDef[];
3
+ //# sourceMappingURL=classify.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"classify.d.ts","sourceRoot":"","sources":["../../../src/tools/generated/classify.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAE1C,eAAO,MAAM,sBAAsB,EAAE,OAAO,EA2C3C,CAAA"}
@@ -0,0 +1,48 @@
1
+ // AUTO-GENERATED — DO NOT EDIT
2
+ // Generated from openapi.json by scripts/codegen-from-openapi.ts
3
+ import { z } from 'zod';
4
+ export const classifyGeneratedTools = [
5
+ {
6
+ name: 'classify_start_classification',
7
+ description: 'Trigger a classification job.',
8
+ inputSchema: z.object({}),
9
+ annotations: { readOnlyHint: false, destructiveHint: false, openWorldHint: false },
10
+ handler: async (client, args) => {
11
+ const result = await client.request('POST', '/api/classify');
12
+ return JSON.stringify(result, null, 2);
13
+ },
14
+ },
15
+ {
16
+ name: 'classify_cancel_classification',
17
+ description: 'Cancel a running classification job.',
18
+ inputSchema: z.object({}),
19
+ annotations: { readOnlyHint: false, destructiveHint: false, openWorldHint: false },
20
+ handler: async (client, args) => {
21
+ const result = await client.request('POST', '/api/classify/cancel');
22
+ return JSON.stringify(result, null, 2);
23
+ },
24
+ },
25
+ {
26
+ name: 'classify_single_session',
27
+ description: 'Classify a single session synchronously.',
28
+ inputSchema: z.object({
29
+ session_id: z.string(),
30
+ }),
31
+ annotations: { readOnlyHint: false, destructiveHint: false, openWorldHint: false },
32
+ handler: async (client, args) => {
33
+ const result = await client.request('POST', `/api/classify/single/${encodeURIComponent(String(args.session_id))}`);
34
+ return JSON.stringify(result, null, 2);
35
+ },
36
+ },
37
+ {
38
+ name: 'classify_get_classification_status',
39
+ description: 'Get classification status.',
40
+ inputSchema: z.object({}),
41
+ annotations: { readOnlyHint: true, destructiveHint: false, openWorldHint: false },
42
+ handler: async (client, args) => {
43
+ const result = await client.request('GET', '/api/classify/status');
44
+ return JSON.stringify(result, null, 2);
45
+ },
46
+ }
47
+ ];
48
+ //# sourceMappingURL=classify.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"classify.js","sourceRoot":"","sources":["../../../src/tools/generated/classify.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,iEAAiE;AAEjE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,MAAM,CAAC,MAAM,sBAAsB,GAAc;IAC/C;QACE,IAAI,EAAE,+BAA+B;QACrC,WAAW,EAAE,+BAA+B;QAC5C,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;QACzB,WAAW,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE;QAClF,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;YAC9B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;YAC5D,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;QACxC,CAAC;KACF;IACD;QACE,IAAI,EAAE,gCAAgC;QACtC,WAAW,EAAE,sCAAsC;QACnD,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;QACzB,WAAW,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE;QAClF,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;YAC9B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAA;YACnE,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;QACxC,CAAC;KACF;IACD;QACE,IAAI,EAAE,yBAAyB;QAC/B,WAAW,EAAE,0CAA0C;QACvD,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACtB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;SACvB,CAAC;QACA,WAAW,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE;QAClF,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;YAC9B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,wBAAwB,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAA;YAClH,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;QACxC,CAAC;KACF;IACD;QACE,IAAI,EAAE,oCAAoC;QAC1C,WAAW,EAAE,4BAA4B;QACzC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;QACzB,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE;QACjF,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;YAC9B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,sBAAsB,CAAC,CAAA;YAClE,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;QACxC,CAAC;KACF;CACF,CAAA"}
@@ -0,0 +1,3 @@
1
+ import type { ToolDef } from '../types.js';
2
+ export declare const coachingGeneratedTools: ToolDef[];
3
+ //# sourceMappingURL=coaching.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coaching.d.ts","sourceRoot":"","sources":["../../../src/tools/generated/coaching.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAE1C,eAAO,MAAM,sBAAsB,EAAE,OAAO,EAwC3C,CAAA"}
@@ -0,0 +1,45 @@
1
+ // AUTO-GENERATED — DO NOT EDIT
2
+ // Generated from openapi.json by scripts/codegen-from-openapi.ts
3
+ import { z } from 'zod';
4
+ export const coachingGeneratedTools = [
5
+ {
6
+ name: 'coaching_list_rules',
7
+ description: 'List all coaching rules from the rules directory.',
8
+ inputSchema: z.object({}),
9
+ annotations: { readOnlyHint: true, destructiveHint: false, openWorldHint: false },
10
+ handler: async (client, args) => {
11
+ const result = await client.request('GET', '/api/coaching/rules');
12
+ return JSON.stringify(result, null, 2);
13
+ },
14
+ },
15
+ {
16
+ name: 'coaching_apply_rule',
17
+ description: 'Create a new coaching rule file.',
18
+ inputSchema: z.object({
19
+ impactScore: z.number(),
20
+ patternId: z.string(),
21
+ recommendation: z.string(),
22
+ sampleSize: z.number(),
23
+ scope: z.string(),
24
+ title: z.string(),
25
+ }),
26
+ annotations: { readOnlyHint: false, destructiveHint: false, openWorldHint: false },
27
+ handler: async (client, args) => {
28
+ const result = await client.request('POST', '/api/coaching/rules', { body: { impactScore: args.impactScore, patternId: args.patternId, recommendation: args.recommendation, sampleSize: args.sampleSize, scope: args.scope, title: args.title } });
29
+ return JSON.stringify(result, null, 2);
30
+ },
31
+ },
32
+ {
33
+ name: 'coaching_remove_rule',
34
+ description: 'Remove a coaching rule file.',
35
+ inputSchema: z.object({
36
+ id: z.string(),
37
+ }),
38
+ annotations: { readOnlyHint: false, destructiveHint: true, openWorldHint: false },
39
+ handler: async (client, args) => {
40
+ const result = await client.request('DELETE', `/api/coaching/rules/${encodeURIComponent(String(args.id))}`);
41
+ return JSON.stringify(result, null, 2);
42
+ },
43
+ }
44
+ ];
45
+ //# sourceMappingURL=coaching.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coaching.js","sourceRoot":"","sources":["../../../src/tools/generated/coaching.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,iEAAiE;AAEjE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,MAAM,CAAC,MAAM,sBAAsB,GAAc;IAC/C;QACE,IAAI,EAAE,qBAAqB;QAC3B,WAAW,EAAE,mDAAmD;QAChE,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;QACzB,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE;QACjF,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;YAC9B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,qBAAqB,CAAC,CAAA;YACjE,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;QACxC,CAAC;KACF;IACD;QACE,IAAI,EAAE,qBAAqB;QAC3B,WAAW,EAAE,kCAAkC;QAC/C,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACtB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;YACvB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;YACrB,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;YAC1B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;YACtB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;YACjB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;SAClB,CAAC;QACA,WAAW,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE;QAClF,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;YAC9B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,qBAAqB,EAAE,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;YAClP,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;QACxC,CAAC;KACF;IACD;QACE,IAAI,EAAE,sBAAsB;QAC5B,WAAW,EAAE,8BAA8B;QAC3C,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACtB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;SACf,CAAC;QACA,WAAW,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE;QACjF,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;YAC9B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,uBAAuB,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAA;YAC3G,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;QACxC,CAAC;KACF;CACF,CAAA"}
@@ -0,0 +1,3 @@
1
+ import type { ToolDef } from '../types.js';
2
+ export declare const contributionsGeneratedTools: ToolDef[];
3
+ //# sourceMappingURL=contributions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contributions.d.ts","sourceRoot":"","sources":["../../../src/tools/generated/contributions.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAE1C,eAAO,MAAM,2BAA2B,EAAE,OAAO,EAmDhD,CAAA"}
@@ -0,0 +1,56 @@
1
+ // AUTO-GENERATED — DO NOT EDIT
2
+ // Generated from openapi.json by scripts/codegen-from-openapi.ts
3
+ import { z } from 'zod';
4
+ export const contributionsGeneratedTools = [
5
+ {
6
+ name: 'contributions_get_contributions',
7
+ description: 'Main contributions page data.',
8
+ inputSchema: z.object({
9
+ range: z.string().optional(),
10
+ from: z.string().optional(),
11
+ to: z.string().optional(),
12
+ projectId: z.string().optional(),
13
+ branch: z.string().optional(),
14
+ }),
15
+ annotations: { readOnlyHint: true, destructiveHint: false, openWorldHint: false },
16
+ handler: async (client, args) => {
17
+ const result = await client.request('GET', '/api/contributions', { params: { range: args.range, from: args.from, to: args.to, projectId: args.projectId, branch: args.branch } });
18
+ return JSON.stringify(result, null, 2);
19
+ },
20
+ },
21
+ {
22
+ name: 'contributions_get_branch_sessions',
23
+ description: 'Sessions for a branch.',
24
+ inputSchema: z.object({
25
+ name: z.string(),
26
+ range: z.string().optional(),
27
+ from: z.string().optional(),
28
+ to: z.string().optional(),
29
+ projectId: z.string().optional(),
30
+ limit: z.number().optional(),
31
+ }),
32
+ annotations: { readOnlyHint: true, destructiveHint: false, openWorldHint: false },
33
+ handler: async (client, args) => {
34
+ const result = await client.request('GET', `/api/contributions/branches/${encodeURIComponent(String(args.name))}/sessions`, { params: { range: args.range, from: args.from, to: args.to, projectId: args.projectId, limit: args.limit } });
35
+ return JSON.stringify(result, null, 2);
36
+ },
37
+ },
38
+ {
39
+ name: 'contributions_get_session_contribution',
40
+ description: 'Session contribution detail.',
41
+ inputSchema: z.object({
42
+ id: z.string(),
43
+ range: z.string(),
44
+ from: z.string(),
45
+ to: z.string(),
46
+ projectId: z.string(),
47
+ branch: z.string(),
48
+ }),
49
+ annotations: { readOnlyHint: true, destructiveHint: false, openWorldHint: false },
50
+ handler: async (client, args) => {
51
+ const result = await client.request('GET', `/api/contributions/sessions/${encodeURIComponent(String(args.id))}`);
52
+ return JSON.stringify(result, null, 2);
53
+ },
54
+ }
55
+ ];
56
+ //# sourceMappingURL=contributions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contributions.js","sourceRoot":"","sources":["../../../src/tools/generated/contributions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { ToolDef } from '../types.js';
2
+ export declare const exportGeneratedTools: ToolDef[];
3
+ //# sourceMappingURL=export.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../../src/tools/generated/export.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAE1C,eAAO,MAAM,oBAAoB,EAAE,OAAO,EAazC,CAAA"}
@@ -0,0 +1,18 @@
1
+ // AUTO-GENERATED — DO NOT EDIT
2
+ // Generated from openapi.json by scripts/codegen-from-openapi.ts
3
+ import { z } from 'zod';
4
+ export const exportGeneratedTools = [
5
+ {
6
+ name: 'export_sessions',
7
+ description: 'Export all sessions.',
8
+ inputSchema: z.object({
9
+ format: z.string().optional(),
10
+ }),
11
+ annotations: { readOnlyHint: true, destructiveHint: false, openWorldHint: false },
12
+ handler: async (client, args) => {
13
+ const result = await client.request('GET', '/api/export/sessions', { params: { format: args.format } });
14
+ return JSON.stringify(result, null, 2);
15
+ },
16
+ }
17
+ ];
18
+ //# sourceMappingURL=export.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"export.js","sourceRoot":"","sources":["../../../src/tools/generated/export.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,iEAAiE;AAEjE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,MAAM,CAAC,MAAM,oBAAoB,GAAc;IAC7C;QACE,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,sBAAsB;QACnC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACtB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC9B,CAAC;QACA,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE;QACjF,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;YAC9B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,sBAAsB,EAAE,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;YACvG,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;QACxC,CAAC;KACF;CACF,CAAA"}
@@ -0,0 +1,3 @@
1
+ import type { ToolDef } from '../types.js';
2
+ export declare const facetsGeneratedTools: ToolDef[];
3
+ //# sourceMappingURL=facets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"facets.d.ts","sourceRoot":"","sources":["../../../src/tools/generated/facets.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAE1C,eAAO,MAAM,oBAAoB,EAAE,OAAO,EA2CzC,CAAA"}
@@ -0,0 +1,48 @@
1
+ // AUTO-GENERATED — DO NOT EDIT
2
+ // Generated from openapi.json by scripts/codegen-from-openapi.ts
3
+ import { z } from 'zod';
4
+ export const facetsGeneratedTools = [
5
+ {
6
+ name: 'facets_facet_badges',
7
+ description: 'Quality badges (outcome + satisfaction) for the requested session IDs. Returns a JSON map keyed by session ID.',
8
+ inputSchema: z.object({
9
+ ids: z.string().optional(),
10
+ }),
11
+ annotations: { readOnlyHint: true, destructiveHint: false, openWorldHint: false },
12
+ handler: async (client, args) => {
13
+ const result = await client.request('GET', '/api/facets/badges', { params: { ids: args.ids } });
14
+ return JSON.stringify(result, null, 2);
15
+ },
16
+ },
17
+ {
18
+ name: 'facets_trigger_facet_ingest',
19
+ description: 'Start facet ingest from the Claude Code insights cache. Returns immediately with `{"status": "started"}` or `{"status": "already_running"}` if an ingest is already in progress.',
20
+ inputSchema: z.object({}),
21
+ annotations: { readOnlyHint: false, destructiveHint: false, openWorldHint: false },
22
+ handler: async (client, args) => {
23
+ const result = await client.request('POST', '/api/facets/ingest/trigger');
24
+ return JSON.stringify(result, null, 2);
25
+ },
26
+ },
27
+ {
28
+ name: 'facets_pattern_alert',
29
+ description: 'Check the most recent sessions for a negative satisfaction pattern. Returns `{pattern, count, tip}` if a pattern is detected, or `{pattern: null}` otherwise.',
30
+ inputSchema: z.object({}),
31
+ annotations: { readOnlyHint: true, destructiveHint: false, openWorldHint: false },
32
+ handler: async (client, args) => {
33
+ const result = await client.request('GET', '/api/facets/pattern-alert');
34
+ return JSON.stringify(result, null, 2);
35
+ },
36
+ },
37
+ {
38
+ name: 'facets_facet_stats',
39
+ description: 'Aggregate statistics across all session facets.',
40
+ inputSchema: z.object({}),
41
+ annotations: { readOnlyHint: true, destructiveHint: false, openWorldHint: false },
42
+ handler: async (client, args) => {
43
+ const result = await client.request('GET', '/api/facets/stats');
44
+ return JSON.stringify(result, null, 2);
45
+ },
46
+ }
47
+ ];
48
+ //# sourceMappingURL=facets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"facets.js","sourceRoot":"","sources":["../../../src/tools/generated/facets.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,iEAAiE;AAEjE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,MAAM,CAAC,MAAM,oBAAoB,GAAc;IAC7C;QACE,IAAI,EAAE,qBAAqB;QAC3B,WAAW,EAAE,gHAAgH;QAC7H,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACtB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC3B,CAAC;QACA,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE;QACjF,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;YAC9B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,oBAAoB,EAAE,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;YAC/F,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;QACxC,CAAC;KACF;IACD;QACE,IAAI,EAAE,6BAA6B;QACnC,WAAW,EAAE,kLAAkL;QAC/L,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;QACzB,WAAW,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE;QAClF,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;YAC9B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,4BAA4B,CAAC,CAAA;YACzE,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;QACxC,CAAC;KACF;IACD;QACE,IAAI,EAAE,sBAAsB;QAC5B,WAAW,EAAE,+JAA+J;QAC5K,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;QACzB,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE;QACjF,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;YAC9B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,2BAA2B,CAAC,CAAA;YACvE,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;QACxC,CAAC;KACF;IACD;QACE,IAAI,EAAE,oBAAoB;QAC1B,WAAW,EAAE,iDAAiD;QAC9D,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;QACzB,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE;QACjF,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;YAC9B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAA;YAC/D,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;QACxC,CAAC;KACF;CACF,CAAA"}
@@ -0,0 +1,3 @@
1
+ import type { ToolDef } from '../types.js';
2
+ export declare const healthGeneratedTools: ToolDef[];
3
+ //# sourceMappingURL=health.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../../src/tools/generated/health.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAE1C,eAAO,MAAM,oBAAoB,EAAE,OAAO,EA+BzC,CAAA"}
@@ -0,0 +1,36 @@
1
+ // AUTO-GENERATED — DO NOT EDIT
2
+ // Generated from openapi.json by scripts/codegen-from-openapi.ts
3
+ import { z } from 'zod';
4
+ export const healthGeneratedTools = [
5
+ {
6
+ name: 'health_config',
7
+ description: 'Config (GET /api/config)',
8
+ inputSchema: z.object({}),
9
+ annotations: { readOnlyHint: true, destructiveHint: false, openWorldHint: false },
10
+ handler: async (client, args) => {
11
+ const result = await client.request('GET', '/api/config');
12
+ return JSON.stringify(result, null, 2);
13
+ },
14
+ },
15
+ {
16
+ name: 'health_check',
17
+ description: 'Health check endpoint.',
18
+ inputSchema: z.object({}),
19
+ annotations: { readOnlyHint: true, destructiveHint: false, openWorldHint: false },
20
+ handler: async (client, args) => {
21
+ const result = await client.request('GET', '/api/health');
22
+ return JSON.stringify(result, null, 2);
23
+ },
24
+ },
25
+ {
26
+ name: 'health_get_status',
27
+ description: 'Get index metadata and data freshness info.',
28
+ inputSchema: z.object({}),
29
+ annotations: { readOnlyHint: true, destructiveHint: false, openWorldHint: false },
30
+ handler: async (client, args) => {
31
+ const result = await client.request('GET', '/api/status');
32
+ return JSON.stringify(result, null, 2);
33
+ },
34
+ }
35
+ ];
36
+ //# sourceMappingURL=health.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health.js","sourceRoot":"","sources":["../../../src/tools/generated/health.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,iEAAiE;AAEjE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,MAAM,CAAC,MAAM,oBAAoB,GAAc;IAC7C;QACE,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,0BAA0B;QACvC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;QACzB,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE;QACjF,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;YAC9B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,aAAa,CAAC,CAAA;YACzD,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;QACxC,CAAC;KACF;IACD;QACE,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,wBAAwB;QACrC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;QACzB,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE;QACjF,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;YAC9B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,aAAa,CAAC,CAAA;YACzD,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;QACxC,CAAC;KACF;IACD;QACE,IAAI,EAAE,mBAAmB;QACzB,WAAW,EAAE,6CAA6C;QAC1D,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;QACzB,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE;QACjF,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;YAC9B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,aAAa,CAAC,CAAA;YACzD,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;QACxC,CAAC;KACF;CACF,CAAA"}
@@ -0,0 +1,3 @@
1
+ import type { ToolDef } from '../types.js';
2
+ export declare const ideGeneratedTools: ToolDef[];
3
+ //# sourceMappingURL=ide.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ide.d.ts","sourceRoot":"","sources":["../../../src/tools/generated/ide.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAE1C,eAAO,MAAM,iBAAiB,EAAE,OAAO,EAyBtC,CAAA"}
@@ -0,0 +1,30 @@
1
+ // AUTO-GENERATED — DO NOT EDIT
2
+ // Generated from openapi.json by scripts/codegen-from-openapi.ts
3
+ import { z } from 'zod';
4
+ export const ideGeneratedTools = [
5
+ {
6
+ name: 'ide_get_detect',
7
+ description: '`GET /api/ide/detect` — return cached list of installed IDEs.',
8
+ inputSchema: z.object({}),
9
+ annotations: { readOnlyHint: true, destructiveHint: false, openWorldHint: false },
10
+ handler: async (client, args) => {
11
+ const result = await client.request('GET', '/api/ide/detect');
12
+ return JSON.stringify(result, null, 2);
13
+ },
14
+ },
15
+ {
16
+ name: 'ide_post_open',
17
+ description: '`POST /api/ide/open` — open a file in the requested IDE.',
18
+ inputSchema: z.object({
19
+ filePath: z.string().describe('Relative path to the file within the project (optional).').optional(),
20
+ ide: z.string().describe('The IDE id to open (must match an id from the detect response).'),
21
+ projectPath: z.string().describe('Absolute path to the project directory.'),
22
+ }),
23
+ annotations: { readOnlyHint: false, destructiveHint: false, openWorldHint: false },
24
+ handler: async (client, args) => {
25
+ const result = await client.request('POST', '/api/ide/open', { body: { filePath: args.filePath, ide: args.ide, projectPath: args.projectPath } });
26
+ return JSON.stringify(result, null, 2);
27
+ },
28
+ }
29
+ ];
30
+ //# sourceMappingURL=ide.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ide.js","sourceRoot":"","sources":["../../../src/tools/generated/ide.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,iEAAiE;AAEjE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,MAAM,CAAC,MAAM,iBAAiB,GAAc;IAC1C;QACE,IAAI,EAAE,gBAAgB;QACtB,WAAW,EAAE,+DAA+D;QAC5E,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;QACzB,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE;QACjF,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;YAC9B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAA;YAC7D,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;QACxC,CAAC;KACF;IACD;QACE,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,0DAA0D;QACvE,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACtB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0DAA0D,CAAC,CAAC,QAAQ,EAAE;YACpG,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iEAAiE,CAAC;YAC3F,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC;SAC5E,CAAC;QACA,WAAW,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE;QAClF,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;YAC9B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,eAAe,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAA;YACjJ,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;QACxC,CAAC;KACF;CACF,CAAA"}
@@ -0,0 +1,3 @@
1
+ import type { ToolDef } from '../types.js';
2
+ export declare const allGeneratedTools: ToolDef[];
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/generated/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AA4B1C,eAAO,MAAM,iBAAiB,EAAE,OAAO,EA2BtC,CAAA"}