@gxp-dev/tools 2.0.75 → 2.0.76

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.
@@ -15,13 +15,25 @@
15
15
  const args = process.argv.slice(2)
16
16
  const command = args[0]
17
17
 
18
+ // Kick off a best-effort npm version check on every gxdev invocation. The
19
+ // util throttles itself to at most one network hit per 24 hours and stays
20
+ // fully non-blocking — if it fails, the CLI is unaffected.
21
+ const {
22
+ maybeRunBackgroundCheck,
23
+ registerCliExitReminder,
24
+ getCachedUpdateInfo,
25
+ } = require("./lib/utils/version-check")
26
+ maybeRunBackgroundCheck()
27
+
18
28
  // TUI activation: bare `ui` command OR any invocation with `--ui`.
19
29
  const uiFlagPresent = args.includes("--ui")
20
30
  const isBareUiCommand = command === "ui"
21
31
  const wantsUi = uiFlagPresent || isBareUiCommand
22
32
 
23
33
  if (!wantsUi) {
24
- // Default path — delegate straight to yargs-driven CLI.
34
+ // Plain CLI path — have the utility print an update reminder on exit
35
+ // (stderr) if the cached info says we're behind.
36
+ registerCliExitReminder()
25
37
  require("./lib/cli")
26
38
  return
27
39
  }
@@ -75,7 +87,8 @@ switch (isBareUiCommand ? null : command) {
75
87
  ;(async () => {
76
88
  try {
77
89
  const { startTUI } = await import(tuiPath)
78
- startTUI({ autoStart, args: tuiArgs })
90
+ const updateInfo = getCachedUpdateInfo()
91
+ startTUI({ autoStart, args: tuiArgs, updateInfo })
79
92
  } catch (err) {
80
93
  if (err && err.message === "NO_TTY") {
81
94
  console.error("The GxP TUI requires an interactive terminal (TTY).")
@@ -171,7 +171,21 @@ function copyBundleFiles(projectPath, paths, overwrite = false) {
171
171
  {
172
172
  src: ".claude/settings.json",
173
173
  dest: ".claude/settings.json",
174
- desc: "Claude Code MCP settings (GxP API server)",
174
+ desc: "Claude Code project settings (auto-allow gxp-api MCP tools)",
175
+ },
176
+ // Canonical project-scoped MCP config files. The AI CLIs each look for
177
+ // their own file at the project root and auto-load the `gxp-api` server
178
+ // from there. The `gxp-api-server` binary is installed on PATH by
179
+ // @gxp-dev/tools, so no extra install step is required.
180
+ {
181
+ src: "mcp.json",
182
+ dest: ".mcp.json",
183
+ desc: ".mcp.json (Claude Code project-scoped MCP config)",
184
+ },
185
+ {
186
+ src: "gemini/settings.json",
187
+ dest: ".gemini/settings.json",
188
+ desc: ".gemini/settings.json (Gemini CLI project-scoped MCP config)",
175
189
  },
176
190
  ]
177
191
 
@@ -43,12 +43,20 @@ interface ExtractedConfig {
43
43
  }>
44
44
  }
45
45
 
46
+ export interface UpdateInfo {
47
+ currentVersion: string
48
+ latestVersion: string | null
49
+ updateAvailable: boolean
50
+ lastCheckedAt: number | null
51
+ }
52
+
46
53
  export interface AppProps {
47
54
  autoStart?: string[]
48
55
  args?: Record<string, unknown>
56
+ updateInfo?: UpdateInfo | null
49
57
  }
50
58
 
51
- export default function App({ autoStart, args }: AppProps) {
59
+ export default function App({ autoStart, args, updateInfo }: AppProps) {
52
60
  const { exit } = useApp()
53
61
  const { stdout } = useStdout()
54
62
  const [showAIPanel, setShowAIPanel] = useState(false)
@@ -808,7 +816,7 @@ Keyboard shortcuts:
808
816
  {currentService ? (
809
817
  <LogPanel logs={currentService.logs} maxHeight={logPanelHeight} />
810
818
  ) : (
811
- <WelcomeScreen />
819
+ <WelcomeScreen updateInfo={updateInfo} />
812
820
  )}
813
821
  </Box>
814
822
 
@@ -21,7 +21,21 @@ const LOGO = `
21
21
  ╚═════╝ ╚═╝ ╚═╝╚═╝
22
22
  `
23
23
 
24
- export default function WelcomeScreen() {
24
+ interface UpdateInfo {
25
+ currentVersion: string
26
+ latestVersion: string | null
27
+ updateAvailable: boolean
28
+ lastCheckedAt: number | null
29
+ }
30
+
31
+ interface WelcomeScreenProps {
32
+ updateInfo?: UpdateInfo | null
33
+ }
34
+
35
+ export default function WelcomeScreen({ updateInfo }: WelcomeScreenProps = {}) {
36
+ const showUpdateBanner =
37
+ !!updateInfo && updateInfo.updateAvailable && !!updateInfo.latestVersion
38
+
25
39
  return (
26
40
  <Box
27
41
  flexDirection="column"
@@ -39,6 +53,30 @@ export default function WelcomeScreen() {
39
53
  <Text dimColor>v{pkg.version}</Text>
40
54
  </Box>
41
55
 
56
+ {showUpdateBanner && updateInfo && (
57
+ <Box
58
+ marginTop={1}
59
+ paddingX={2}
60
+ borderStyle="round"
61
+ borderColor="yellow"
62
+ flexDirection="column"
63
+ alignItems="center"
64
+ >
65
+ <Text>
66
+ <Text color="yellow">📦 </Text>
67
+ <Text bold color="yellow">
68
+ Update available:
69
+ </Text>{" "}
70
+ <Text>{updateInfo.currentVersion}</Text>
71
+ <Text color="gray"> → </Text>
72
+ <Text color="cyan">{updateInfo.latestVersion}</Text>
73
+ </Text>
74
+ <Text color="gray">
75
+ Run <Text color="cyan">npm i -g @gxp-dev/tools</Text> to update
76
+ </Text>
77
+ </Box>
78
+ )}
79
+
42
80
  <Box marginTop={1}>
43
81
  <Text color="gray">
44
82
  Interactive development environment for GxP plugins
@@ -9,9 +9,17 @@ import { serviceManager } from "./services/index.js"
9
9
  // Load .env from the current working directory (project directory)
10
10
  dotenv.config({ path: path.join(process.cwd(), ".env") })
11
11
 
12
+ export interface UpdateInfo {
13
+ currentVersion: string
14
+ latestVersion: string | null
15
+ updateAvailable: boolean
16
+ lastCheckedAt: number | null
17
+ }
18
+
12
19
  interface TUIOptions {
13
20
  autoStart?: string[] // Commands to auto-start (e.g., ['dev', 'socket'])
14
21
  args?: Record<string, unknown> // Command arguments
22
+ updateInfo?: UpdateInfo | null // Cached npm version-check result (for landing page banner)
15
23
  }
16
24
 
17
25
  export function startTUI(options: TUIOptions = {}) {
@@ -30,7 +38,11 @@ export function startTUI(options: TUIOptions = {}) {
30
38
  }
31
39
 
32
40
  const { waitUntilExit } = render(
33
- <App autoStart={options.autoStart} args={options.args} />,
41
+ <App
42
+ autoStart={options.autoStart}
43
+ args={options.args}
44
+ updateInfo={options.updateInfo}
45
+ />,
34
46
  )
35
47
 
36
48
  waitUntilExit().then(() => {
@@ -971,6 +971,14 @@ function buildInteractiveInitialPrompt(projectName, description, provider) {
971
971
  ? " You can also delegate to the `gxp-developer` subagent defined in `.claude/agents/gxp-developer.md`."
972
972
  : ""
973
973
 
974
+ const mcpFixCommand =
975
+ {
976
+ claude: "claude mcp add gxp-api gxp-api-server",
977
+ codex: "codex mcp add gxp-api gxp-api-server",
978
+ gemini:
979
+ "add the `gxp-api` server to `~/.gemini/settings.json` under `mcpServers` with command `gxp-api-server`",
980
+ }[provider] || "see the provider's MCP docs"
981
+
974
982
  return [
975
983
  `I just ran \`gxdev init\` to scaffold a new GxP plugin called "${projectName}"${
976
984
  description ? ` (${description})` : ""
@@ -978,8 +986,12 @@ function buildInteractiveInitialPrompt(projectName, description, provider) {
978
986
  "",
979
987
  `Start a new GxP plugin development session. First read \`${instructionFile}\` and \`app-instructions.md\` in this project — they describe the workflow, conventions, and the full set of tools available to you.${claudeAgentHint}`,
980
988
  "",
989
+ "**Step 0 — smoke-test the `gxp-api` MCP server before asking me anything.** The server is defined in `.mcp.json` / `.gemini/settings.json` at the project root and provided by the `gxp-api-server` binary that ships with `@gxp-dev/tools` (already on your PATH — verify with `which gxp-api-server`). Call `api_list_tags` immediately:",
990
+ "- If it returns a list of tags → the MCP is live; load the tag list into memory so your first question to me can be grounded in the platform's actual resources (attendees, events, quizzes, posts, forms, etc.) rather than abstract categories.",
991
+ `- If \`api_list_tags\` (or any other \`api_*\` / \`config_*\` / \`docs_*\` tool) is not available, the MCP didn't register. Tell me so and suggest I run \`${mcpFixCommand}\`, then restart this session. Do not proceed without the MCP — every operationId, event, and dependency you plan with must come from it.`,
992
+ "",
981
993
  "You have the `gxp-api` MCP server available with 29 tools across five families:",
982
- "- **API spec discovery** — `search_api_endpoints`, `api_list_operation_ids`, `api_get_operation_parameters`, `api_find_endpoints_by_schema`, `api_generate_dependency`, `get_endpoint_details`.",
994
+ "- **API spec discovery** — `search_api_endpoints`, `api_list_operation_ids`, `api_get_operation_parameters`, `api_find_endpoints_by_schema`, `api_generate_dependency`, `get_endpoint_details`, `api_list_tags`.",
983
995
  "- **WebSocket events** — `api_find_events_for_operation` (maps an operationId to the AsyncAPI events it triggers), `api_list_events`, `search_websocket_events`.",
984
996
  "- **Config editing** — `config_add_card`, `config_add_field`, `config_list_field_types`, `config_get_field_schema`, `config_extract_strings`, `config_validate`, etc. Every mutation is linter-guarded against the schemas in `bin/lib/lint/schemas/`.",
985
997
  "- **Docs search** — `docs_search`, `docs_get_page`, `docs_list_pages` (full-text search across docs.gxp.dev).",
@@ -1004,6 +1016,44 @@ function buildInteractiveInitialPrompt(projectName, description, provider) {
1004
1016
  ].join("\n")
1005
1017
  }
1006
1018
 
1019
+ /**
1020
+ * Best-effort registration of the `gxp-api` MCP server with the selected
1021
+ * provider's CLI at user scope. The project-scoped `.mcp.json` /
1022
+ * `.gemini/settings.json` files already cover the common case, but a
1023
+ * user-scope registration is more forgiving — it works when the agent is
1024
+ * launched from a subdirectory, and it sidesteps Claude's first-run approval
1025
+ * prompt because the user explicitly opted in by picking an agent.
1026
+ *
1027
+ * Silent on failure: if the CLI doesn't support `mcp add` or the server is
1028
+ * already registered, we just fall back to the project config files.
1029
+ *
1030
+ * @param {string} provider - claude | codex | gemini
1031
+ * @returns {void}
1032
+ */
1033
+ function registerMcpWithProviderCli(provider) {
1034
+ const commands = {
1035
+ claude: ["mcp", "add", "gxp-api", "gxp-api-server"],
1036
+ codex: ["mcp", "add", "gxp-api", "gxp-api-server"],
1037
+ }
1038
+ const args = commands[provider]
1039
+ if (!args) {
1040
+ // Gemini doesn't ship a stable `mcp add` subcommand; rely on the
1041
+ // shipped `.gemini/settings.json` instead.
1042
+ return
1043
+ }
1044
+ try {
1045
+ const result = require("child_process").spawnSync(provider, args, {
1046
+ stdio: "ignore",
1047
+ timeout: 5000,
1048
+ })
1049
+ if (result.status === 0) {
1050
+ console.log(` ✓ Registered gxp-api with ${provider} (user scope).`)
1051
+ }
1052
+ } catch {
1053
+ // Best-effort — ignore failures.
1054
+ }
1055
+ }
1056
+
1007
1057
  /**
1008
1058
  * Launch the selected AI CLI in interactive mode with an initial prompt.
1009
1059
  * The user talks to the agent directly in the terminal; the agent is
@@ -1052,21 +1102,29 @@ function launchInteractiveAISession(
1052
1102
  return
1053
1103
  }
1054
1104
 
1105
+ // Register the MCP server with the provider's CLI at user scope as a
1106
+ // belt-and-suspenders measure on top of the project-scoped config files
1107
+ // that init already shipped.
1108
+ registerMcpWithProviderCli(provider)
1109
+
1055
1110
  console.log("")
1056
1111
  console.log("─".repeat(50))
1057
1112
  console.log(`🚀 Launching ${provider} in interactive mode...`)
1058
1113
  console.log("─".repeat(50))
1059
1114
  console.log("")
1060
1115
  console.log(
1061
- " The agent will read this project's instruction files, greet you,",
1116
+ " The `gxp-api` MCP server is configured in .mcp.json / .gemini/settings.json",
1117
+ )
1118
+ console.log(
1119
+ " at the project root (binary: gxp-api-server, installed with @gxp-dev/tools).",
1062
1120
  )
1063
1121
  console.log(
1064
- " and ask what you want to build. Answer its questions it will",
1122
+ " The agent will smoke-test it first, then greet you and ask what you want",
1065
1123
  )
1066
1124
  console.log(
1067
- " keep asking until it has enough detail, then plan, confirm, and",
1125
+ " to build. Answer its questions — it will keep asking until it has enough",
1068
1126
  )
1069
- console.log(" implement. Exit the agent when you're done.")
1127
+ console.log(" detail, then plan, confirm, and implement.")
1070
1128
  console.log("")
1071
1129
 
1072
1130
  // Do NOT pass shell: true here. The initial prompt contains backticks,
@@ -10,6 +10,7 @@ const files = require("./files")
10
10
  const prompts = require("./prompts")
11
11
  const aiScaffold = require("./ai-scaffold")
12
12
  const extractConfig = require("./extract-config")
13
+ const versionCheck = require("./version-check")
13
14
 
14
15
  module.exports = {
15
16
  ...paths,
@@ -18,4 +19,5 @@ module.exports = {
18
19
  ...prompts,
19
20
  ...aiScaffold,
20
21
  ...extractConfig,
22
+ ...versionCheck,
21
23
  }
@@ -0,0 +1,255 @@
1
+ /**
2
+ * Version Check
3
+ *
4
+ * Compares the installed gxdev version against the latest on npm.
5
+ *
6
+ * Design:
7
+ * - The npm registry is hit **at most once per 24 hours** per user. The latest
8
+ * version is cached in `~/.gxp-dev/version-check.json`.
9
+ * - All cache reads and the "is an update available?" check are synchronous so
10
+ * they can run from a `process.on("exit")` handler or a React render.
11
+ * - The actual network fetch is fire-and-forget (`maybeRunBackgroundCheck`).
12
+ * It never throws, never blocks, and never delays CLI exit.
13
+ * - Users can disable the check entirely with `GXP_NO_VERSION_CHECK=1`.
14
+ *
15
+ * Consequence: the first ever `gxdev` invocation only populates the cache — the
16
+ * update banner shows on the *next* run. That's an intentional tradeoff so the
17
+ * first run is never blocked on a slow/unreachable registry.
18
+ */
19
+
20
+ const fs = require("fs")
21
+ const path = require("path")
22
+ const os = require("os")
23
+ const https = require("https")
24
+
25
+ const CACHE_DIR = path.join(os.homedir(), ".gxp-dev")
26
+ const CACHE_FILE = path.join(CACHE_DIR, "version-check.json")
27
+ const CHECK_TTL_MS = 24 * 60 * 60 * 1000 // 24 hours
28
+ const FETCH_TIMEOUT_MS = 3000
29
+ const PACKAGE_JSON_PATH = path.join(__dirname, "..", "..", "..", "package.json")
30
+
31
+ let cliReminderRegistered = false
32
+
33
+ function isDisabled() {
34
+ return process.env.GXP_NO_VERSION_CHECK === "1"
35
+ }
36
+
37
+ function getPackageInfo() {
38
+ try {
39
+ const pkg = require(PACKAGE_JSON_PATH)
40
+ if (!pkg || !pkg.name || !pkg.version) {
41
+ return null
42
+ }
43
+ return { name: pkg.name, currentVersion: pkg.version }
44
+ } catch {
45
+ return null
46
+ }
47
+ }
48
+
49
+ function readCache() {
50
+ try {
51
+ const raw = fs.readFileSync(CACHE_FILE, "utf-8")
52
+ const parsed = JSON.parse(raw)
53
+ if (!parsed || typeof parsed !== "object") {
54
+ return null
55
+ }
56
+ return parsed
57
+ } catch {
58
+ return null
59
+ }
60
+ }
61
+
62
+ function writeCache(data) {
63
+ try {
64
+ if (!fs.existsSync(CACHE_DIR)) {
65
+ fs.mkdirSync(CACHE_DIR, { recursive: true })
66
+ }
67
+ fs.writeFileSync(CACHE_FILE, JSON.stringify(data, null, 2))
68
+ } catch {
69
+ // Cache failures are non-fatal — the CLI should still work.
70
+ }
71
+ }
72
+
73
+ function cacheIsFresh(cache) {
74
+ if (!cache || !cache.lastCheckedAt) {
75
+ return false
76
+ }
77
+ return Date.now() - cache.lastCheckedAt < CHECK_TTL_MS
78
+ }
79
+
80
+ /**
81
+ * Compare two semver-like strings.
82
+ * Returns 1 if a > b, -1 if a < b, 0 if equal. Strips pre-release suffixes.
83
+ */
84
+ function compareVersions(a, b) {
85
+ const parse = (v) =>
86
+ String(v)
87
+ .split("-")[0]
88
+ .split(".")
89
+ .map((n) => parseInt(n, 10) || 0)
90
+ const pa = parse(a)
91
+ const pb = parse(b)
92
+ for (let i = 0; i < Math.max(pa.length, pb.length); i++) {
93
+ const ai = pa[i] || 0
94
+ const bi = pb[i] || 0
95
+ if (ai > bi) {
96
+ return 1
97
+ }
98
+ if (ai < bi) {
99
+ return -1
100
+ }
101
+ }
102
+ return 0
103
+ }
104
+
105
+ function fetchLatestVersion(packageName) {
106
+ return new Promise((resolve, reject) => {
107
+ const url = `https://registry.npmjs.org/${encodeURIComponent(packageName)}/latest`
108
+ const req = https.get(
109
+ url,
110
+ { timeout: FETCH_TIMEOUT_MS, headers: { Accept: "application/json" } },
111
+ (res) => {
112
+ if (res.statusCode !== 200) {
113
+ res.resume()
114
+ reject(new Error(`HTTP ${res.statusCode}`))
115
+ return
116
+ }
117
+ let data = ""
118
+ res.setEncoding("utf8")
119
+ res.on("data", (chunk) => {
120
+ data += chunk
121
+ })
122
+ res.on("end", () => {
123
+ try {
124
+ const body = JSON.parse(data)
125
+ if (body && typeof body.version === "string") {
126
+ resolve(body.version)
127
+ } else {
128
+ reject(new Error("Missing version in registry response"))
129
+ }
130
+ } catch (err) {
131
+ reject(err)
132
+ }
133
+ })
134
+ },
135
+ )
136
+ req.on("error", reject)
137
+ req.on("timeout", () => {
138
+ req.destroy(new Error("timeout"))
139
+ })
140
+ })
141
+ }
142
+
143
+ /**
144
+ * Synchronously derive update status from the cache + installed package.json.
145
+ * Returns null if version info can't be determined.
146
+ *
147
+ * Shape: { currentVersion, latestVersion, updateAvailable, lastCheckedAt }
148
+ */
149
+ function getCachedUpdateInfo() {
150
+ if (isDisabled()) {
151
+ return null
152
+ }
153
+ const pkg = getPackageInfo()
154
+ if (!pkg) {
155
+ return null
156
+ }
157
+ const cache = readCache()
158
+ if (!cache || !cache.latestVersion) {
159
+ return {
160
+ currentVersion: pkg.currentVersion,
161
+ latestVersion: null,
162
+ updateAvailable: false,
163
+ lastCheckedAt: cache && cache.lastCheckedAt ? cache.lastCheckedAt : null,
164
+ }
165
+ }
166
+ const updateAvailable =
167
+ compareVersions(cache.latestVersion, pkg.currentVersion) > 0
168
+ return {
169
+ currentVersion: pkg.currentVersion,
170
+ latestVersion: cache.latestVersion,
171
+ updateAvailable,
172
+ lastCheckedAt: cache.lastCheckedAt,
173
+ }
174
+ }
175
+
176
+ /**
177
+ * Kick off a non-blocking registry check if the cache is stale. Safe to call
178
+ * on every gxdev invocation — throttled by the 24h TTL and silent on any
179
+ * failure. The process holds the socket open briefly while the request runs,
180
+ * but `.unref()` means it won't keep the process alive on its own.
181
+ */
182
+ function maybeRunBackgroundCheck() {
183
+ if (isDisabled()) {
184
+ return
185
+ }
186
+ const pkg = getPackageInfo()
187
+ if (!pkg) {
188
+ return
189
+ }
190
+ const cache = readCache()
191
+ if (cacheIsFresh(cache)) {
192
+ return
193
+ }
194
+ const fetchPromise = fetchLatestVersion(pkg.name)
195
+ fetchPromise
196
+ .then((latestVersion) => {
197
+ writeCache({
198
+ packageName: pkg.name,
199
+ latestVersion,
200
+ lastCheckedAt: Date.now(),
201
+ })
202
+ })
203
+ .catch(() => {
204
+ // Swallow errors — we'll retry next run.
205
+ })
206
+ }
207
+
208
+ function formatCliReminder(info) {
209
+ if (!info || !info.updateAvailable || !info.latestVersion) {
210
+ return ""
211
+ }
212
+ const yellow = (s) => `\x1b[33m${s}\x1b[0m`
213
+ const cyan = (s) => `\x1b[36m${s}\x1b[0m`
214
+ const bold = (s) => `\x1b[1m${s}\x1b[0m`
215
+ return [
216
+ "",
217
+ yellow("────────────────────────────────────────────────────────"),
218
+ `${yellow("📦")} ${bold("gxdev update available:")} ${info.currentVersion} → ${cyan(info.latestVersion)}`,
219
+ ` Update with ${cyan("npm i -g @gxp-dev/tools")}`,
220
+ yellow("────────────────────────────────────────────────────────"),
221
+ ].join("\n")
222
+ }
223
+
224
+ /**
225
+ * Install a process.on("exit") handler that prints a one-time reminder if the
226
+ * cached info says an update is available. Safe to call multiple times — only
227
+ * the first call registers. Meant for the plain-CLI path; the TUI renders its
228
+ * banner inline instead.
229
+ */
230
+ function registerCliExitReminder() {
231
+ if (isDisabled() || cliReminderRegistered) {
232
+ return
233
+ }
234
+ cliReminderRegistered = true
235
+ process.on("exit", () => {
236
+ try {
237
+ const info = getCachedUpdateInfo()
238
+ if (info && info.updateAvailable) {
239
+ // Emit to stderr so it never pollutes stdout pipelines
240
+ // (e.g. `gxdev lint --json | jq ...`).
241
+ process.stderr.write(formatCliReminder(info) + "\n")
242
+ }
243
+ } catch {
244
+ // Never crash during exit.
245
+ }
246
+ })
247
+ }
248
+
249
+ module.exports = {
250
+ getCachedUpdateInfo,
251
+ maybeRunBackgroundCheck,
252
+ registerCliExitReminder,
253
+ formatCliReminder,
254
+ compareVersions,
255
+ }
package/dist/tui/App.d.ts CHANGED
@@ -5,9 +5,16 @@ export interface Service {
5
5
  status: ServiceStatus;
6
6
  logs: string[];
7
7
  }
8
+ export interface UpdateInfo {
9
+ currentVersion: string;
10
+ latestVersion: string | null;
11
+ updateAvailable: boolean;
12
+ lastCheckedAt: number | null;
13
+ }
8
14
  export interface AppProps {
9
15
  autoStart?: string[];
10
16
  args?: Record<string, unknown>;
17
+ updateInfo?: UpdateInfo | null;
11
18
  }
12
- export default function App({ autoStart, args }: AppProps): import("react/jsx-runtime").JSX.Element;
19
+ export default function App({ autoStart, args, updateInfo }: AppProps): import("react/jsx-runtime").JSX.Element;
13
20
  //# sourceMappingURL=App.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../bin/lib/tui/App.tsx"],"names":[],"mappings":"AAQA,OAAO,EAUN,aAAa,EAMb,MAAM,qBAAqB,CAAA;AAE5B,MAAM,WAAW,OAAO;IACvB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,aAAa,CAAA;IACrB,IAAI,EAAE,MAAM,EAAE,CAAA;CACd;AAcD,MAAM,WAAW,QAAQ;IACxB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC9B;AAED,MAAM,CAAC,OAAO,UAAU,GAAG,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,QAAQ,2CA2wBxD"}
1
+ {"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../bin/lib/tui/App.tsx"],"names":[],"mappings":"AAQA,OAAO,EAUN,aAAa,EAMb,MAAM,qBAAqB,CAAA;AAE5B,MAAM,WAAW,OAAO;IACvB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,aAAa,CAAA;IACrB,IAAI,EAAE,MAAM,EAAE,CAAA;CACd;AAcD,MAAM,WAAW,UAAU;IAC1B,cAAc,EAAE,MAAM,CAAA;IACtB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,eAAe,EAAE,OAAO,CAAA;IACxB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;CAC5B;AAED,MAAM,WAAW,QAAQ;IACxB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC9B,UAAU,CAAC,EAAE,UAAU,GAAG,IAAI,CAAA;CAC9B;AAED,MAAM,CAAC,OAAO,UAAU,GAAG,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,QAAQ,2CA2wBpE"}
package/dist/tui/App.js CHANGED
@@ -8,7 +8,7 @@ import LogPanel from "./components/LogPanel.js";
8
8
  import CommandInput from "./components/CommandInput.js";
9
9
  import AIPanel from "./components/AIPanel.js";
10
10
  import { serviceManager, startVite, stopVite, startSocket, stopSocket, startExtension, stopExtension, listSocketEvents, sendSocketEvent, aiService, getAvailableProviders, getProviderStatus, } from "./services/index.js";
11
- export default function App({ autoStart, args }) {
11
+ export default function App({ autoStart, args, updateInfo }) {
12
12
  const { exit } = useApp();
13
13
  const { stdout } = useStdout();
14
14
  const [showAIPanel, setShowAIPanel] = useState(false);
@@ -617,7 +617,7 @@ Keyboard shortcuts:
617
617
  const fixedRows = 10;
618
618
  const availableForLog = terminalHeight - fixedRows - suggestionRows;
619
619
  const logPanelHeight = Math.max(3, availableForLog); // Minimum 3 rows for log panel
620
- return (_jsxs(Box, { flexDirection: "column", height: terminalHeight, children: [_jsx(Header, { projectName: process.cwd().split("/").pop() || "gxdev" }), services.length > 0 && (_jsx(TabBar, { services: services, activeTab: activeTab, onTabChange: setActiveTab })), _jsx(Box, { height: logPanelHeight, flexDirection: "column", borderStyle: "single", borderColor: "gray", overflow: "hidden", children: currentService ? (_jsx(LogPanel, { logs: currentService.logs, maxHeight: logPanelHeight })) : (_jsx(WelcomeScreen, {})) }), _jsx(CommandInput, { onSubmit: handleCommand, activeService: currentService
620
+ return (_jsxs(Box, { flexDirection: "column", height: terminalHeight, children: [_jsx(Header, { projectName: process.cwd().split("/").pop() || "gxdev" }), services.length > 0 && (_jsx(TabBar, { services: services, activeTab: activeTab, onTabChange: setActiveTab })), _jsx(Box, { height: logPanelHeight, flexDirection: "column", borderStyle: "single", borderColor: "gray", overflow: "hidden", children: currentService ? (_jsx(LogPanel, { logs: currentService.logs, maxHeight: logPanelHeight })) : (_jsx(WelcomeScreen, { updateInfo: updateInfo })) }), _jsx(CommandInput, { onSubmit: handleCommand, activeService: currentService
621
621
  ? {
622
622
  id: currentService.id,
623
623
  name: currentService.name,
@@ -1 +1 @@
1
- {"version":3,"file":"App.js","sourceRoot":"","sources":["../../bin/lib/tui/App.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"App.js","sourceRoot":"","sources":["../../bin/lib/tui/App.tsx"],"names":[],"mappings":"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"}
@@ -1,2 +1,12 @@
1
- export default function WelcomeScreen(): import("react/jsx-runtime").JSX.Element;
1
+ interface UpdateInfo {
2
+ currentVersion: string;
3
+ latestVersion: string | null;
4
+ updateAvailable: boolean;
5
+ lastCheckedAt: number | null;
6
+ }
7
+ interface WelcomeScreenProps {
8
+ updateInfo?: UpdateInfo | null;
9
+ }
10
+ export default function WelcomeScreen({ updateInfo }?: WelcomeScreenProps): import("react/jsx-runtime").JSX.Element;
11
+ export {};
2
12
  //# sourceMappingURL=WelcomeScreen.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"WelcomeScreen.d.ts","sourceRoot":"","sources":["../../../bin/lib/tui/components/WelcomeScreen.tsx"],"names":[],"mappings":"AAuBA,MAAM,CAAC,OAAO,UAAU,aAAa,4CA2HpC"}
1
+ {"version":3,"file":"WelcomeScreen.d.ts","sourceRoot":"","sources":["../../../bin/lib/tui/components/WelcomeScreen.tsx"],"names":[],"mappings":"AAuBA,UAAU,UAAU;IACnB,cAAc,EAAE,MAAM,CAAA;IACtB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,eAAe,EAAE,OAAO,CAAA;IACxB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;CAC5B;AAED,UAAU,kBAAkB;IAC3B,UAAU,CAAC,EAAE,UAAU,GAAG,IAAI,CAAA;CAC9B;AAED,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EAAE,UAAU,EAAE,GAAE,kBAAuB,2CAsJ5E"}
@@ -17,7 +17,8 @@ const LOGO = `
17
17
  ╚██████╔╝██╔╝ ██╗██║
18
18
  ╚═════╝ ╚═╝ ╚═╝╚═╝
19
19
  `;
20
- export default function WelcomeScreen() {
21
- return (_jsxs(Box, { flexDirection: "column", alignItems: "center", justifyContent: "center", flexGrow: 1, padding: 1, children: [_jsx(Text, { color: "blue", children: LOGO }), _jsxs(Box, { marginTop: 1, flexDirection: "column", alignItems: "center", children: [_jsx(Text, { bold: true, color: "white", children: "GxP DevStudio" }), _jsxs(Text, { dimColor: true, children: ["v", pkg.version] })] }), _jsx(Box, { marginTop: 1, children: _jsx(Text, { color: "gray", children: "Interactive development environment for GxP plugins" }) }), _jsxs(Box, { marginTop: 2, flexDirection: "row", justifyContent: "center", children: [_jsxs(Box, { flexDirection: "column", marginRight: 4, children: [_jsx(Text, { color: "cyan", bold: true, children: "Quick Start" }), _jsxs(Box, { marginTop: 1, flexDirection: "column", children: [_jsxs(Text, { children: [" ", _jsx(Text, { color: "yellow", children: "/dev" }), " Start Vite + Socket.IO"] }), _jsxs(Text, { children: [" ", _jsx(Text, { color: "yellow", children: "/dev --no-socket" }), " Start Vite only (no Socket)"] }), _jsxs(Text, { children: [" ", _jsx(Text, { color: "yellow", children: "/dev --with-mock" }), " Start with Mock API"] }), _jsxs(Text, { children: [" ", _jsx(Text, { color: "yellow", children: "/socket" }), " Start Socket.IO server"] }), _jsxs(Text, { children: [" ", _jsx(Text, { color: "yellow", children: "/ext chrome" }), " Launch Chrome extension"] }), _jsxs(Text, { children: [" ", _jsx(Text, { color: "yellow", children: "/help" }), " Show all commands"] })] })] }), _jsxs(Box, { flexDirection: "column", marginLeft: 4, children: [_jsx(Text, { color: "cyan", bold: true, children: "Keyboard Shortcuts" }), _jsxs(Box, { marginTop: 1, flexDirection: "column", children: [_jsxs(Text, { children: [" ", _jsx(Text, { color: "green", children: "Tab" }), " Cycle through tabs"] }), _jsxs(Text, { children: [" ", _jsx(Text, { color: "green", children: "Left/Right" }), " Switch tabs"] }), _jsxs(Text, { children: [" ", _jsx(Text, { color: "green", children: "Ctrl+K" }), " Stop current service"] }), _jsxs(Text, { children: [" ", _jsx(Text, { color: "green", children: "Ctrl+L" }), " Clear current log"] }), _jsxs(Text, { children: [" ", _jsx(Text, { color: "green", children: "Ctrl+C" }), " Exit application"] })] })] })] }), _jsxs(Box, { marginTop: 2, flexDirection: "column", alignItems: "center", children: [_jsx(Text, { color: "cyan", bold: true, children: "Socket Events" }), _jsxs(Box, { marginTop: 1, flexDirection: "column", alignItems: "center", children: [_jsxs(Text, { color: "gray", children: ["Use ", _jsx(Text, { color: "yellow", children: "/socket list" }), " to see available events"] }), _jsxs(Text, { color: "gray", children: ["Use ", _jsx(Text, { color: "yellow", children: "/socket send EventName" }), " to simulate events"] })] })] }), _jsxs(Box, { marginTop: 2, flexDirection: "column", alignItems: "center", children: [_jsx(Text, { color: "cyan", bold: true, children: "Browser Extensions" }), _jsxs(Box, { marginTop: 1, flexDirection: "column", alignItems: "center", children: [_jsx(Text, { color: "gray", children: "Test your plugin on live GxP pages with the browser extension" }), _jsx(Text, { color: "gray", children: "Open DevTools and use the \"GxP Inspector\" panel to select components" })] })] }), _jsx(Box, { marginTop: 2, children: _jsx(Text, { dimColor: true, children: "Type a command below to get started..." }) })] }));
20
+ export default function WelcomeScreen({ updateInfo } = {}) {
21
+ const showUpdateBanner = !!updateInfo && updateInfo.updateAvailable && !!updateInfo.latestVersion;
22
+ return (_jsxs(Box, { flexDirection: "column", alignItems: "center", justifyContent: "center", flexGrow: 1, padding: 1, children: [_jsx(Text, { color: "blue", children: LOGO }), _jsxs(Box, { marginTop: 1, flexDirection: "column", alignItems: "center", children: [_jsx(Text, { bold: true, color: "white", children: "GxP DevStudio" }), _jsxs(Text, { dimColor: true, children: ["v", pkg.version] })] }), showUpdateBanner && updateInfo && (_jsxs(Box, { marginTop: 1, paddingX: 2, borderStyle: "round", borderColor: "yellow", flexDirection: "column", alignItems: "center", children: [_jsxs(Text, { children: [_jsx(Text, { color: "yellow", children: "\uD83D\uDCE6 " }), _jsx(Text, { bold: true, color: "yellow", children: "Update available:" }), " ", _jsx(Text, { children: updateInfo.currentVersion }), _jsx(Text, { color: "gray", children: " \u2192 " }), _jsx(Text, { color: "cyan", children: updateInfo.latestVersion })] }), _jsxs(Text, { color: "gray", children: ["Run ", _jsx(Text, { color: "cyan", children: "npm i -g @gxp-dev/tools" }), " to update"] })] })), _jsx(Box, { marginTop: 1, children: _jsx(Text, { color: "gray", children: "Interactive development environment for GxP plugins" }) }), _jsxs(Box, { marginTop: 2, flexDirection: "row", justifyContent: "center", children: [_jsxs(Box, { flexDirection: "column", marginRight: 4, children: [_jsx(Text, { color: "cyan", bold: true, children: "Quick Start" }), _jsxs(Box, { marginTop: 1, flexDirection: "column", children: [_jsxs(Text, { children: [" ", _jsx(Text, { color: "yellow", children: "/dev" }), " Start Vite + Socket.IO"] }), _jsxs(Text, { children: [" ", _jsx(Text, { color: "yellow", children: "/dev --no-socket" }), " Start Vite only (no Socket)"] }), _jsxs(Text, { children: [" ", _jsx(Text, { color: "yellow", children: "/dev --with-mock" }), " Start with Mock API"] }), _jsxs(Text, { children: [" ", _jsx(Text, { color: "yellow", children: "/socket" }), " Start Socket.IO server"] }), _jsxs(Text, { children: [" ", _jsx(Text, { color: "yellow", children: "/ext chrome" }), " Launch Chrome extension"] }), _jsxs(Text, { children: [" ", _jsx(Text, { color: "yellow", children: "/help" }), " Show all commands"] })] })] }), _jsxs(Box, { flexDirection: "column", marginLeft: 4, children: [_jsx(Text, { color: "cyan", bold: true, children: "Keyboard Shortcuts" }), _jsxs(Box, { marginTop: 1, flexDirection: "column", children: [_jsxs(Text, { children: [" ", _jsx(Text, { color: "green", children: "Tab" }), " Cycle through tabs"] }), _jsxs(Text, { children: [" ", _jsx(Text, { color: "green", children: "Left/Right" }), " Switch tabs"] }), _jsxs(Text, { children: [" ", _jsx(Text, { color: "green", children: "Ctrl+K" }), " Stop current service"] }), _jsxs(Text, { children: [" ", _jsx(Text, { color: "green", children: "Ctrl+L" }), " Clear current log"] }), _jsxs(Text, { children: [" ", _jsx(Text, { color: "green", children: "Ctrl+C" }), " Exit application"] })] })] })] }), _jsxs(Box, { marginTop: 2, flexDirection: "column", alignItems: "center", children: [_jsx(Text, { color: "cyan", bold: true, children: "Socket Events" }), _jsxs(Box, { marginTop: 1, flexDirection: "column", alignItems: "center", children: [_jsxs(Text, { color: "gray", children: ["Use ", _jsx(Text, { color: "yellow", children: "/socket list" }), " to see available events"] }), _jsxs(Text, { color: "gray", children: ["Use ", _jsx(Text, { color: "yellow", children: "/socket send EventName" }), " to simulate events"] })] })] }), _jsxs(Box, { marginTop: 2, flexDirection: "column", alignItems: "center", children: [_jsx(Text, { color: "cyan", bold: true, children: "Browser Extensions" }), _jsxs(Box, { marginTop: 1, flexDirection: "column", alignItems: "center", children: [_jsx(Text, { color: "gray", children: "Test your plugin on live GxP pages with the browser extension" }), _jsx(Text, { color: "gray", children: "Open DevTools and use the \"GxP Inspector\" panel to select components" })] })] }), _jsx(Box, { marginTop: 2, children: _jsx(Text, { dimColor: true, children: "Type a command below to get started..." }) })] }));
22
23
  }
23
24
  //# sourceMappingURL=WelcomeScreen.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"WelcomeScreen.js","sourceRoot":"","sources":["../../../bin/lib/tui/components/WelcomeScreen.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WelcomeScreen.js","sourceRoot":"","sources":["../../../bin/lib/tui/components/WelcomeScreen.tsx"],"names":[],"mappings":"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"}
@@ -1,7 +1,14 @@
1
1
  #!/usr/bin/env node
2
+ export interface UpdateInfo {
3
+ currentVersion: string;
4
+ latestVersion: string | null;
5
+ updateAvailable: boolean;
6
+ lastCheckedAt: number | null;
7
+ }
2
8
  interface TUIOptions {
3
9
  autoStart?: string[];
4
10
  args?: Record<string, unknown>;
11
+ updateInfo?: UpdateInfo | null;
5
12
  }
6
13
  export declare function startTUI(options?: TUIOptions): void;
7
14
  export default startTUI;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../bin/lib/tui/index.tsx"],"names":[],"mappings":";AAWA,UAAU,UAAU;IACnB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC9B;AAED,wBAAgB,QAAQ,CAAC,OAAO,GAAE,UAAe,QAwBhD;AAUD,eAAe,QAAQ,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../bin/lib/tui/index.tsx"],"names":[],"mappings":";AAWA,MAAM,WAAW,UAAU;IAC1B,cAAc,EAAE,MAAM,CAAA;IACtB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,eAAe,EAAE,OAAO,CAAA;IACxB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;CAC5B;AAED,UAAU,UAAU;IACnB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC9B,UAAU,CAAC,EAAE,UAAU,GAAG,IAAI,CAAA;CAC9B;AAED,wBAAgB,QAAQ,CAAC,OAAO,GAAE,UAAe,QA4BhD;AAUD,eAAe,QAAQ,CAAA"}
package/dist/tui/index.js CHANGED
@@ -20,7 +20,7 @@ export function startTUI(options = {}) {
20
20
  if (!stdinIsTTY) {
21
21
  throw new Error("NO_TTY");
22
22
  }
23
- const { waitUntilExit } = render(_jsx(App, { autoStart: options.autoStart, args: options.args }));
23
+ const { waitUntilExit } = render(_jsx(App, { autoStart: options.autoStart, args: options.args, updateInfo: options.updateInfo }));
24
24
  waitUntilExit().then(() => {
25
25
  // Ensure all services are stopped before exiting
26
26
  serviceManager.forceStopAll();
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../bin/lib/tui/index.tsx"],"names":[],"mappings":";;AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,CAAA;AAC5B,OAAO,MAAM,MAAM,QAAQ,CAAA;AAC3B,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,GAAG,MAAM,UAAU,CAAA;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEpD,mEAAmE;AACnE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,CAAA;AAOzD,MAAM,UAAU,QAAQ,CAAC,UAAsB,EAAE;IAChD,qEAAqE;IACrE,sBAAsB;IACtB,+BAA+B;IAC/B,qCAAqC;IACrC,4BAA4B;IAC5B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAA;IAC3B,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,KAAK,IAAI,CAAA;IAEvC,qEAAqE;IACrE,gEAAgE;IAChE,IAAI,CAAC,UAAU,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAA;IAC1B,CAAC;IAED,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,CAC/B,KAAC,GAAG,IAAC,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,GAAI,CACzD,CAAA;IAED,aAAa,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;QACzB,iDAAiD;QACjD,cAAc,CAAC,YAAY,EAAE,CAAA;QAC7B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAChB,CAAC,CAAC,CAAA;AACH,CAAC;AAED,kCAAkC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAA;AACnC,MAAM,MAAM,GACX,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACtE,IAAI,MAAM,EAAE,CAAC;IACZ,QAAQ,EAAE,CAAA;AACX,CAAC;AAED,eAAe,QAAQ,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../bin/lib/tui/index.tsx"],"names":[],"mappings":";;AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,CAAA;AAC5B,OAAO,MAAM,MAAM,QAAQ,CAAA;AAC3B,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,GAAG,MAAM,UAAU,CAAA;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEpD,mEAAmE;AACnE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,CAAA;AAezD,MAAM,UAAU,QAAQ,CAAC,UAAsB,EAAE;IAChD,qEAAqE;IACrE,sBAAsB;IACtB,+BAA+B;IAC/B,qCAAqC;IACrC,4BAA4B;IAC5B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAA;IAC3B,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,KAAK,IAAI,CAAA;IAEvC,qEAAqE;IACrE,gEAAgE;IAChE,IAAI,CAAC,UAAU,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAA;IAC1B,CAAC;IAED,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,CAC/B,KAAC,GAAG,IACH,SAAS,EAAE,OAAO,CAAC,SAAS,EAC5B,IAAI,EAAE,OAAO,CAAC,IAAI,EAClB,UAAU,EAAE,OAAO,CAAC,UAAU,GAC7B,CACF,CAAA;IAED,aAAa,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;QACzB,iDAAiD;QACjD,cAAc,CAAC,YAAY,EAAE,CAAA;QAC7B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAChB,CAAC,CAAC,CAAA;AACH,CAAC;AAED,kCAAkC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAA;AACnC,MAAM,MAAM,GACX,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACtE,IAAI,MAAM,EAAE,CAAC;IACZ,QAAQ,EAAE,CAAA;AACX,CAAC;AAED,eAAe,QAAQ,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gxp-dev/tools",
3
- "version": "2.0.75",
3
+ "version": "2.0.76",
4
4
  "description": "Dev tools to create platform plugins",
5
5
  "type": "commonjs",
6
6
  "publishConfig": {
@@ -28,6 +28,8 @@ Ask clarifying questions. Don't guess — a single clarification prevents a larg
28
28
 
29
29
  The `gxp-api` MCP server is your source of truth for the platform. Never invent endpoints or event names.
30
30
 
31
+ **Before anything else, confirm the MCP is live** — call `api_list_tags`. The server is configured in `.mcp.json` at the project root and provided by the `gxp-api-server` binary that ships with `@gxp-dev/tools` (on PATH; verify with `which gxp-api-server`). If the `api_*` / `config_*` / `docs_*` tools aren't available, tell the user to run `claude mcp add gxp-api gxp-api-server` and restart the session. Do not proceed without it.
32
+
31
33
  **API discovery:**
32
34
 
33
35
  - `api_list_tags` — enumerate tags so you can browse.
@@ -1,9 +1,5 @@
1
1
  {
2
- "mcpServers": {
3
- "gxp-api": {
4
- "command": "gxp-api-server",
5
- "args": [],
6
- "env": {}
7
- }
2
+ "permissions": {
3
+ "allow": ["mcp__gxp-api"]
8
4
  }
9
5
  }
@@ -21,6 +21,8 @@ Ask clarifying questions instead of guessing. A 30-second question beats a 30-mi
21
21
 
22
22
  Use the `gxp-api` MCP server to ground the implementation in the real platform — never invent endpoints or event names.
23
23
 
24
+ **Verify the MCP is live before planning anything** by calling `api_list_tags`. The server is defined in `.mcp.json` at the project root and provided by the `gxp-api-server` binary that ships with `@gxp-dev/tools` (on PATH — check with `which gxp-api-server`). If the `api_*` / `config_*` / `docs_*` tools aren't available, tell the user to run `claude mcp add gxp-api gxp-api-server` (or `codex mcp add …` / add it to `~/.gemini/settings.json`) and restart the session. Do not proceed without the MCP.
25
+
24
26
  - **Find endpoints** — `api_list_tags`, `api_list_operation_ids` (optionally scoped by tag), `search_api_endpoints` (keyword).
25
27
  - **Inspect a specific endpoint** — `api_get_operation_parameters`, `get_endpoint_details`.
26
28
  - **Find endpoints by payload shape** — `api_find_endpoints_by_schema` (search by request/response field names).
@@ -18,6 +18,8 @@ Before writing anything, clarify with the client:
18
18
 
19
19
  Ground the implementation in real platform endpoints and events. Do not invent API paths or event names.
20
20
 
21
+ **Verify the MCP is live first** — call `api_list_tags`. The server is defined in `.gemini/settings.json` at the project root and provided by the `gxp-api-server` binary that ships with `@gxp-dev/tools` (on PATH). If the tools aren't available, tell the user to add `gxp-api` to `~/.gemini/settings.json` under `mcpServers` with command `gxp-api-server`, then restart the session.
22
+
21
23
  - Endpoints — `api_list_tags`, `api_list_operation_ids`, `search_api_endpoints`, `api_get_operation_parameters`, `get_endpoint_details`.
22
24
  - Find by payload shape — `api_find_endpoints_by_schema`.
23
25
  - WebSocket events — `api_find_events_for_operation` (maps operationId → events via `x-triggered-by`), `api_list_events`, `search_websocket_events`, `get_asyncapi_spec`. Run for every planned operationId so you subscribe instead of polling.
@@ -0,0 +1,8 @@
1
+ {
2
+ "mcpServers": {
3
+ "gxp-api": {
4
+ "command": "gxp-api-server",
5
+ "args": []
6
+ }
7
+ }
8
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "mcpServers": {
3
+ "gxp-api": {
4
+ "command": "gxp-api-server",
5
+ "args": []
6
+ }
7
+ }
8
+ }