genexus-mcp 2.18.0 → 2.19.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.
- package/cli/commands/axi.js +16 -7
- package/cli/index.js +4 -0
- package/package.json +1 -1
- package/publish/GxMcp.Gateway.deps.json +2 -2
- package/publish/GxMcp.Gateway.dll +0 -0
- package/publish/GxMcp.Gateway.exe +0 -0
- package/publish/config.json +8 -8
- package/publish/tool_definitions.json +2 -2
- package/publish/worker/GxMcp.Worker.exe +0 -0
package/cli/commands/axi.js
CHANGED
|
@@ -1389,7 +1389,12 @@ async function handleInit(options, ctx) {
|
|
|
1389
1389
|
addKbToConfig(created.targetConfigPath, kbName, resolution.kb.value);
|
|
1390
1390
|
|
|
1391
1391
|
let patchResult = { patched: [], failed: [], skipped: [] };
|
|
1392
|
-
|
|
1392
|
+
// issue #32 item 3: register the client(s) by default. Previously init wrote only
|
|
1393
|
+
// config.json and returned clientsPatchedCount:0 unless --write-clients was passed —
|
|
1394
|
+
// non-obvious, so users had to `claude mcp add` manually. Now non-interactive init
|
|
1395
|
+
// patches DETECTED (already-installed) clients unless --no-write-clients is given.
|
|
1396
|
+
const shouldWriteClients = !options.noWriteClients;
|
|
1397
|
+
if (shouldWriteClients) {
|
|
1393
1398
|
const ids = resolveClientIds(options);
|
|
1394
1399
|
const validation = validateClientIds(ids);
|
|
1395
1400
|
if (!validation.ok) {
|
|
@@ -1417,8 +1422,11 @@ async function handleInit(options, ctx) {
|
|
|
1417
1422
|
}
|
|
1418
1423
|
|
|
1419
1424
|
const help = [];
|
|
1420
|
-
if (patchResult.patched.length === 0 &&
|
|
1421
|
-
help.push('
|
|
1425
|
+
if (patchResult.patched.length === 0 && shouldWriteClients) {
|
|
1426
|
+
help.push('No installed AI client config was found to patch. Pass --all-clients to write configs for all known clients, or register manually.');
|
|
1427
|
+
help.push(`For a GLOBAL (all-projects) registration that does not depend on the current directory, point your client at this config via the GX_CONFIG_PATH env var, e.g.: claude mcp add genexus -e GX_CONFIG_PATH="${created.targetConfigPath}" -- <launcher>`);
|
|
1428
|
+
} else if (patchResult.patched.length === 0 && !shouldWriteClients) {
|
|
1429
|
+
help.push('Client patching was skipped (--no-write-clients). Register manually, or set GX_CONFIG_PATH to this config for global use.');
|
|
1422
1430
|
}
|
|
1423
1431
|
if (patchResult.patched.length > 0 && process.platform === 'win32' && !process.env.GENEXUS_MCP_GATEWAY_EXE) {
|
|
1424
1432
|
help.push('Windows + corporate AppLocker: the npx launcher resolves the gateway from %LOCALAPPDATA%\\npm-cache, which is commonly blocked. If clients fail with "Failed to connect" / Access denied, reinstall to a whitelisted path via scripts/install.ps1.');
|
|
@@ -2001,13 +2009,14 @@ function commandHelpMap() {
|
|
|
2001
2009
|
examples: ['genexus-mcp config show', 'genexus-mcp config show --full --format json']
|
|
2002
2010
|
},
|
|
2003
2011
|
init: {
|
|
2004
|
-
usage: 'genexus-mcp init [--kb <path>] [--gx <path>] [--write-clients] [--clients <csv>] [--all-clients] [--no-smoke] [--warm] [--format ...] OR genexus-mcp init --interactive',
|
|
2012
|
+
usage: 'genexus-mcp init [--kb <path>] [--gx <path>] [--no-write-clients] [--clients <csv>] [--all-clients] [--no-smoke] [--warm] [--format ...] OR genexus-mcp init --interactive',
|
|
2005
2013
|
examples: [
|
|
2006
|
-
'genexus-mcp init # zero-config: auto-discovers GX
|
|
2014
|
+
'genexus-mcp init # zero-config: auto-discovers GX + KB, and registers detected AI clients',
|
|
2007
2015
|
'genexus-mcp init --kb "C:\\KBs\\MyKB" --gx "C:\\Program Files (x86)\\GeneXus\\GeneXus18"',
|
|
2008
2016
|
'genexus-mcp init --interactive # prompts per detected agent (Claude Desktop/Code, Gemini CLI, Cursor, Codex CLI, OpenCode, ...)',
|
|
2009
|
-
'genexus-mcp init --kb <path> --gx <path> --
|
|
2010
|
-
'genexus-mcp init --kb <path> --gx <path> --no-
|
|
2017
|
+
'genexus-mcp init --kb <path> --gx <path> --clients claude-code,gemini-cli,cursor # register only these',
|
|
2018
|
+
'genexus-mcp init --kb <path> --gx <path> --no-write-clients # write config.json only; register clients yourself',
|
|
2019
|
+
'genexus-mcp init --kb <path> --gx <path> --all-clients # register every known client, installed or not'
|
|
2011
2020
|
]
|
|
2012
2021
|
},
|
|
2013
2022
|
whoami: {
|
package/cli/index.js
CHANGED
|
@@ -274,6 +274,10 @@ function parseArgs(argv) {
|
|
|
274
274
|
case 'write-clients':
|
|
275
275
|
result.options.writeClients = true;
|
|
276
276
|
break;
|
|
277
|
+
// issue #32 item 3: init now patches detected clients by default; this opts out.
|
|
278
|
+
case 'no-write-clients':
|
|
279
|
+
result.options.noWriteClients = true;
|
|
280
|
+
break;
|
|
277
281
|
case 'mcp-smoke':
|
|
278
282
|
result.options.mcpSmoke = true;
|
|
279
283
|
break;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "genexus-mcp",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.19.0",
|
|
4
4
|
"mcpName": "io.github.lennix1337/genexus",
|
|
5
5
|
"description": "GeneXus 18 MCP server — read, edit, and analyze GeneXus knowledge base objects (transactions, web panels, procedures, SDTs) directly from Claude, Cursor, and other AI agents over the Model Context Protocol.",
|
|
6
6
|
"keywords": [
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"targets": {
|
|
8
8
|
".NETCoreApp,Version=v8.0": {},
|
|
9
9
|
".NETCoreApp,Version=v8.0/win-x64": {
|
|
10
|
-
"GxMcp.Gateway/2.
|
|
10
|
+
"GxMcp.Gateway/2.19.0": {
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"Newtonsoft.Json": "13.0.3",
|
|
13
13
|
"System.Management": "10.0.5",
|
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
}
|
|
67
67
|
},
|
|
68
68
|
"libraries": {
|
|
69
|
-
"GxMcp.Gateway/2.
|
|
69
|
+
"GxMcp.Gateway/2.19.0": {
|
|
70
70
|
"type": "project",
|
|
71
71
|
"serviceable": false,
|
|
72
72
|
"sha512": ""
|
|
Binary file
|
|
Binary file
|
package/publish/config.json
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
{
|
|
2
|
+
"GeneXus": {
|
|
3
|
+
"WorkerExecutable": "C:\\Projetos\\Genexus18MCP\\publish\\\\worker\\\\GxMcp.Worker.exe",
|
|
4
|
+
"InstallationPath": "C:\\\\Program Files (x86)\\\\GeneXus\\\\GeneXus18"
|
|
5
|
+
},
|
|
2
6
|
"Environment": {
|
|
3
7
|
"KBPath": "C:\\\\KBs\\\\YourKB"
|
|
4
8
|
},
|
|
9
|
+
"Logging": {
|
|
10
|
+
"Level": "Debug",
|
|
11
|
+
"Path": "logs"
|
|
12
|
+
},
|
|
5
13
|
"Server": {
|
|
6
14
|
"HttpPort": 5000,
|
|
7
15
|
"McpStdio": true
|
|
8
|
-
},
|
|
9
|
-
"Logging": {
|
|
10
|
-
"Path": "logs",
|
|
11
|
-
"Level": "Debug"
|
|
12
|
-
},
|
|
13
|
-
"GeneXus": {
|
|
14
|
-
"InstallationPath": "C:\\\\Program Files (x86)\\\\GeneXus\\\\GeneXus18",
|
|
15
|
-
"WorkerExecutable": "C:\\Projetos\\Genexus18MCP\\publish\\\\worker\\\\GxMcp.Worker.exe"
|
|
16
16
|
}
|
|
17
17
|
}
|
|
@@ -32,13 +32,13 @@
|
|
|
32
32
|
{"name":"genexus_compare","description":"Diff two KB objects — IDE 'Compare Objects' parity over the SDK's IComparerService. mode=content (default) diffs full object content; mode=properties diffs top-level properties only. Read-only.","inputSchema":{"type":"object","required":["objectA","objectB"],"properties":{"objectA":{"type":"string"},"objectB":{"type":"string"},"type":{"type":"string","description":"Object type filter applied to both lookups, e.g. 'Transaction'."},"mode":{"type":"string","enum":["content","properties"],"description":"content (default) or properties."},"kb":{"type":"string","description":"KB alias."}},"examples":[{"objectA":"Customer","objectB":"CustomerV2"},{"objectA":"Customer","objectB":"CustomerV2","mode":"properties"}]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},
|
|
33
33
|
{"name":"genexus_module","description":"GeneXus Module Manager over the SDK's IModuleManagerService. action=list (read-only: installed Module KB objects) | install (opcFile=<path to .opc file>, or name[+version] to install a named module) | install_builtin (name=<built-in module>) | update (name+version).","inputSchema":{"type":"object","required":["action"],"properties":{"action":{"type":"string","enum":["install","install_builtin","update","list"]},"opcFile":{"type":"string","description":"install: absolute path to a .opc module package file."},"name":{"type":"string","description":"install (by name)/install_builtin/update: module name."},"version":{"type":"string","description":"install (by name)/update: target module version."},"kb":{"type":"string","description":"KB alias."}},"examples":[{"action":"list"},{"action":"install_builtin","name":"GeneXusGAM"}]},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false}},
|
|
34
34
|
{"name":"genexus_merge","description":"Merge two (or three, with an ancestor) KB objects via the SDK's IMergeService. mode=objects only (mode=models is unsupported — needs multiple KBModel instances not available in this worker). Omit objectBase for a 2-way merge (ignoreConflicts applies); pass objectBase for a 3-way merge. dryRun (default true) reports what would merge via IComparerService WITHOUT writing; dryRun=false performs the merge and saves it. WRITE + destructive.","inputSchema":{"type":"object","required":["objectLeft","objectRight"],"properties":{"mode":{"type":"string","enum":["objects"],"description":"Only 'objects' is supported."},"objectLeft":{"type":"string"},"objectRight":{"type":"string"},"objectBase":{"type":"string","description":"Optional common ancestor. Omit for a 2-way merge; pass for a 3-way merge."},"type":{"type":"string","description":"Object type filter applied to all lookups, e.g. 'Transaction'."},"ignoreConflicts":{"type":"boolean","description":"2-way merge only: let the SDK auto-resolve conflicting parts instead of failing. Default false."},"dryRun":{"type":"boolean","default":true,"description":"true (default): report-only, no SDK MergeObjects call, nothing written. false: perform the merge and save it."},"kb":{"type":"string","description":"KB alias."}},"examples":[{"objectLeft":"Customer","objectRight":"CustomerV2"},{"objectBase":"CustomerBase","objectLeft":"Customer","objectRight":"CustomerV2","dryRun":false}]},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false}},
|
|
35
|
-
{"name":"genexus_gxserver","description":"GxServer (Team Development) sync. Read: status|pending|conflicts|history. Write (destructive; requires a GXserver-linked KB): commit (message) | update | lock (target) | resolve (targets[] via MarkAsResolved). Returns {connected:false} when KB is not linked.","inputSchema":{"type":"object","required":["action"],"properties":{"action":{"type":"string","enum":["status","pending","conflicts","history","commit","update","lock","resolve"]},"limit":{"type":"integer","description":"history only; default 10, max 200."},"message":{"type":"string","description":"commit: commit comment."},"force":{"type":"boolean","description":"commit: force commit despite pending server-side changes."},"target":{"type":"string","description":"lock: object name to lock."},"targets":{"type":"array","items":{"type":"string"},"description":"resolve: object names with an active conflict to mark resolved."},"kb":{"type":"string","description":"KB alias."}},"examples":[{"action":"status"},{"action":"history","limit":20},{"action":"commit","message":"Fix Customer validation"},{"action":"resolve","targets":["Customer"]}]},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false}},
|
|
35
|
+
{"name":"genexus_gxserver","description":"GxServer (Team Development) sync. Read: status|pending|conflicts|history. Write (destructive; requires a GXserver-linked KB): commit (message; optional targets[] = commit ONLY those pending objects, leaving the rest uncommitted) | update | lock (target) | resolve (targets[] via MarkAsResolved). Returns {connected:false} when KB is not linked.","inputSchema":{"type":"object","required":["action"],"properties":{"action":{"type":"string","enum":["status","pending","conflicts","history","commit","update","lock","resolve"]},"limit":{"type":"integer","description":"history only; default 10, max 200."},"message":{"type":"string","description":"commit: commit comment."},"force":{"type":"boolean","description":"commit: force commit despite pending server-side changes."},"target":{"type":"string","description":"lock: object name to lock."},"targets":{"type":"array","items":{"type":"string"},"description":"commit: partial commit — object names to commit (all other pending objects are excluded). resolve: object names with an active conflict to mark resolved. Names must appear in action=pending; unknown names refuse the whole commit."},"kb":{"type":"string","description":"KB alias."}},"examples":[{"action":"status"},{"action":"history","limit":20},{"action":"commit","message":"Fix Customer validation"},{"action":"commit","message":"Ship my proc only","targets":["ApiCtlObjTransicionar"]},{"action":"resolve","targets":["Customer"]}]},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false}},
|
|
36
36
|
{"name":"genexus_kb_version","description":"KB model-version management (Create Version/Branch/Activate/Revert) over the SDK's KBVersionHelper — the IDE Version menu's code path. action=list is read-only; freeze/branch/set_active/revert mutate the KB's version tree.","inputSchema":{"type":"object","required":["action"],"properties":{"action":{"type":"string","enum":["list","freeze","branch","set_active","revert"]},"name":{"type":"string","description":"New version/branch name (freeze/branch)."},"description":{"type":"string","description":"New version/branch description (freeze/branch)."},"parentVersion":{"type":"string","description":"Parent version name (freeze/branch). Defaults to the active version."},"targetVersion":{"type":"string","description":"Version to activate (set_active) or revert to (revert)."},"fromVersion":{"type":"string","description":"revert: source version. Defaults to the active version."},"backupModel":{"type":"boolean","description":"freeze: back up the KB model. Default false."},"includeEnvironments":{"type":"boolean","description":"branch: include environments. Default false."},"autoUpdate":{"type":"boolean","description":"set_active: auto-update the working model. Default false."},"kb":{"type":"string","description":"KB alias."}},"examples":[{"action":"list"},{"action":"freeze","name":"v1.0","description":"Release 1.0"},{"action":"set_active","targetVersion":"Trunk"}]},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false}},
|
|
37
37
|
{"name":"genexus_browser","description":"Headless-browser verification umbrella. action=smoke (HTTP 200 + clean console), a11y (axe), wcag (caption/tooltip lint), capture (console/network/exceptions), cross (multi-engine), preview (render WebPanel + capture HTML/a11y/screenshot, optionally diff baseline). preview uses mode=render|run (default render; run auto-resolves the KB launcher, IDE F5 parity).","inputSchema":{"type":"object","required":["action"],"properties":{"action":{"type":"string","enum":["smoke","a11y","wcag","capture","cross","preview"]},"name":{"type":"string","description":"WebPanel name."},"mode":{"type":"string","enum":["render","run"],"description":"preview only."},"capture":{"type":"array","items":{"type":"string"},"description":"capture|cross|preview channels: console|network|exceptions|html|a11y|screenshot."},"browsers":{"type":"array","items":{"type":"string","enum":["chrome","firefox","safari","webkit"]},"description":"cross only."},"parms":{"type":"object","description":"preview only."},"launcher":{"type":"string","description":"preview only."},"buildFirst":{"type":"boolean","description":"preview only."},"waitMs":{"type":"integer","description":"preview only."},"diffBaseline":{"type":"boolean","description":"preview only."},"updateBaseline":{"type":"boolean","description":"preview only."},"fill":{"type":"object","description":"preview only."},"click":{"type":"string","description":"preview only."},"auth":{"type":"object","description":"preview only."},"emulate":{"type":"string","enum":["iPhone12","iPhone15Pro","iPadPro","Pixel7","desktop1920","desktop1280"],"description":"preview only."},"network":{"type":"string","enum":["fast","slow3g","fast3g","offline"],"description":"preview only."},"kb":{"type":"string","description":"KB alias."}},"examples":[{"action":"preview","name":"WPMain"},{"action":"cross","name":"WPMain","browsers":["chrome","firefox"]}]},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},
|
|
38
38
|
{"name":"genexus_db","description":"Database umbrella. action: drift_check|drift_report (Transaction↔DB schema drift) | optimize_analyze|optimize_suggest|optimize_report (static index advisor) | sql_ddl|sql_navigation (SQL for Transaction/Procedure) | sample_data (fake INSERTs) | types_list|types_describe|types_validate (Domains/SDT constraints) | translations_import.","inputSchema":{"type":"object","required":["action"],"properties":{"action":{"type":"string","enum":["drift_check","drift_report","optimize_analyze","optimize_suggest","optimize_report","sql_ddl","sql_navigation","sample_data","types_list","types_describe","types_validate","translations_import"]},"name":{"type":"string","description":"Object/transaction/type name."},"trn":{"type":"string","description":"sample_data: Transaction name."},"rows":{"type":"integer","description":"sample_data: 1-1000; default 5."},"includeSubordinated":{"type":"boolean","description":"sql_ddl only."},"levelNumber":{"type":"integer","description":"sql_navigation only."},"includeExecutionPlan":{"type":"boolean","description":"sql_navigation."},"includeIndexAdvisor":{"type":"boolean","description":"sql_navigation."},"format":{"type":"string","enum":["json","markdown"],"description":"optimize_report only."},"kind":{"type":"string","enum":["domain","sdt","all"],"description":"types_list filter."},"value":{"type":"string","description":"types_validate."},"type":{"type":"string","description":"types_validate / disambiguator."},"inputPath":{"type":"string","description":"translations_import: CSV path."},"kb":{"type":"string","description":"KB alias."}},"examples":[{"action":"drift_check"},{"action":"sql_ddl","name":"Customer"}]},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}},
|
|
39
39
|
{"name":"genexus_versioning","description":"Versioning umbrella. action: history_list|history_get|history_save|history_restore (snapshot store; restore+discard=true is IDE 'Discard changes' parity) | undo (revert last N edits) | time_travel (recover bytes from a past git commit) | blame (git blame an object part) | diff (text: mode=textVsText|currentVsText) | diff_generated (against=last-build|git-head).","inputSchema":{"type":"object","required":["action"],"properties":{"action":{"type":"string","enum":["history_list","history_get","history_save","history_restore","undo","time_travel","blame","diff","diff_generated"]},"name":{"type":"string"},"part":{"type":"string"},"versionId":{"type":"integer"},"snapshot":{"type":"string"},"discard":{"type":"boolean"},"dryRun":{"type":"boolean"},"last":{"type":"integer","description":"undo: default 1, max 20."},"at":{"type":"string","description":"time_travel: ISO-8601 or commit sha."},"line":{"type":"integer","description":"blame: 1-based line number to annotate."},"filePath":{"type":"string","description":"blame: absolute or KB-relative file path."},"context":{"type":"integer","description":"blame: surrounding lines of context."},"mode":{"type":"string","enum":["textVsText","currentVsText"],"description":"diff."},"left":{"type":"string","description":"diff: left-side text or snapshot label."},"right":{"type":"string","description":"diff: right-side text or snapshot label."},"against":{"type":"string","enum":["last-build","git-head"],"description":"diff_generated."},"kb":{"type":"string","description":"KB alias."}},"examples":[{"action":"history_list","name":"Customer"},{"action":"time_travel","name":"Customer","at":"2026-05-20T10:00:00Z"}]},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false}},
|
|
40
40
|
{"name":"genexus_io","description":"IO umbrella for assets, part text exchange, screenshots, OCR. action: asset_find|asset_read|asset_write (binary asset CRUD) | export_part|import_part (object part to/from a text file) | export_unified (full object envelope JSON) | screenshot_publish (copy PNG to .gx/published-screenshots) | ocr (Tesseract stub).","inputSchema":{"type":"object","required":["action"],"properties":{"action":{"type":"string","enum":["asset_find","asset_read","asset_write","export_part","import_part","export_unified","screenshot_publish","ocr"]},"path":{"type":"string","description":"asset/screenshot_publish/ocr: file path."},"name":{"type":"string","description":"export/import/export_unified: object name."},"outputPath":{"type":"string","description":"export_part: destination file path."},"inputPath":{"type":"string","description":"import_part: source file path."},"part":{"type":"string","description":"export/import_part: part name (e.g. Source)."},"type":{"type":"string","description":"export/import/export_unified disambiguator."},"overwrite":{"type":"boolean","description":"export_part: overwrite if exists."},"pattern":{"type":"string","description":"asset_find: glob pattern."},"relativeRoot":{"type":"string","description":"asset_find: root for relative paths."},"limit":{"type":"integer","description":"asset_find: max results."},"includeContent":{"type":"boolean","description":"asset_find: inline file content."},"maxBytes":{"type":"integer","description":"asset_read: max bytes to return."},"contentBase64":{"type":"string","description":"asset_write: base64-encoded file content."},"kb":{"type":"string","description":"KB alias."}},"examples":[{"action":"asset_read","path":"C:\\KBs\\MyKb\\custom.xml"},{"action":"export_part","name":"Customer","part":"Source","outputPath":"C:\\tmp\\Customer.gxp"}]},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}},
|
|
41
|
-
{"name":"genexus_variable","description":"Variables part CRUD. action: add | delete (idempotent; refuses GAM/WWP+ framework-managed vars) | modify (atomically change type; preserves name+description). length/decimals override the type-embedded size (e.g. long API-key strings); collection=true declares a collection var; add with no typeName inherits a same-named attribute's type. async=true returns an operationId for lifecycle polling. dryRun=true previews the change without persisting.
|
|
41
|
+
{"name":"genexus_variable","description":"Variables part CRUD. action: add | delete (idempotent; refuses GAM/WWP+ framework-managed vars) | modify (atomically change type; preserves name+description). For add, pass EITHER varName (single) OR variables:[{varName,typeName,length,decimals,collection},...] to add many in one call (one save; per-item Added/Exists/Failed outcomes). length/decimals override the type-embedded size (e.g. long API-key strings); collection=true declares a collection var; add with no typeName inherits a same-named attribute's type. VarChar persists as VARCHAR (not CHARACTER). async=true returns an operationId for lifecycle polling. dryRun=true previews the change without persisting. typeName required for modify.","inputSchema":{"type":"object","required":["action","name"],"properties":{"action":{"type":"string","enum":["add","delete","modify"]},"name":{"type":"string"},"varName":{"type":"string","description":"Single-variable form (add/delete/modify). For batch add use variables[] instead."},"variables":{"type":"array","description":"Batch add only: one object per variable — {varName, typeName?, length?, decimals?, collection?}. Added before a single save.","items":{"type":"object","required":["varName"],"properties":{"varName":{"type":"string"},"typeName":{"type":"string"},"length":{"type":"integer"},"decimals":{"type":"integer"},"collection":{"type":"boolean"}}}},"typeName":{"type":"string","description":"Primitive (Character/Numeric/VarChar/Date/...), SDT/BC/Domain name. VarChar keeps VARCHAR semantics."},"length":{"type":"integer","description":"add/modify optional: overrides the length parsed from typeName (fixes the Character(20) default)."},"decimals":{"type":"integer","description":"add/modify optional: overrides decimals parsed from typeName."},"collection":{"type":"boolean","description":"add/modify optional: declare the variable as a collection."},"basedOn":{"type":"string","description":"modify optional: Domain."},"dryRun":{"type":"boolean","default":false,"description":"When true, returns what would change without persisting."},"async":{"type":"boolean","description":"Run as a background job. Result returns operationId/job_id for genexus_lifecycle polling."},"estimated_seconds":{"type":"integer","description":"When async=true, expected runtime used for progress/job metadata (default 30)."},"kb":{"type":"string","description":"KB alias."}},"examples":[{"action":"add","name":"MyPanel","varName":"&Choice","typeName":"Numeric"},{"action":"add","name":"MyProc","variables":[{"varName":"&ApiKey","typeName":"VarChar","length":80},{"varName":"&CmdNro","typeName":"Numeric","length":9}]},{"action":"delete","name":"MyPanel","varName":"&OldVar"}]},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}},
|
|
42
42
|
{"name":"genexus_telemetry","description":"Observability umbrella. action: executions (recent invocations) | watch_event (ops mentioning an event) | friction_append|friction_tail (.gx/friction.jsonl) | learning_report (aggregate friction) | logs (worker_debug.log tail) | profile_analyze|profile_hotspots|profile_correlate (GeneXus profiler XML).","inputSchema":{"type":"object","required":["action"],"properties":{"action":{"type":"string","enum":["executions","watch_event","friction_append","friction_tail","learning_report","logs","profile_analyze","profile_hotspots","profile_correlate"]},"target":{"type":"string","description":"executions/watch_event: object name to filter."},"event":{"type":"string","description":"watch_event: event name to match in operation payload."},"last":{"type":"integer","description":"executions/watch_event: max results."},"tool":{"type":"string","description":"friction_append: tool name that produced the friction entry."},"message":{"type":"string","description":"friction_append: description of the friction encountered."},"severity":{"type":"string","enum":["info","warn","error","critical"],"description":"friction_append: severity level."},"n":{"type":"integer","description":"friction_tail: number of recent lines to return."},"since":{"type":"string","description":"learning_report/logs: ISO-8601 start time filter."},"until":{"type":"string","description":"learning_report: ISO-8601 end time filter."},"tail":{"type":"integer","description":"logs: number of tail lines from worker_debug.log."},"filterCorrelation":{"type":"string","description":"logs: filter by correlation/operation ID."},"grep":{"type":"string","description":"logs: substring filter on log lines."},"path":{"type":"string","description":"profile_*: path to the GeneXus profiler XML file."},"top":{"type":"integer","description":"profile_hotspots: top-N hottest procedures to return."},"kb":{"type":"string","description":"KB alias."}},"examples":[{"action":"executions"},{"action":"friction_tail","n":20}]},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}},
|
|
43
43
|
{"name":"genexus_create","description":"Creation umbrella. action: object (Transaction/Procedure/WebPanel/SDT/API/Domain/Dashboard/Folder/Module; type='API' scaffolds a REST API object — routes use ONE HTTP-verb block per object 'Verb { route => Object; }' (mixing Get+Post blocks is unsupported); type='Folder'/'Module' create containers but objects CANNOT be moved into them via the tools (SDK folder/module placement is read-only); SDT takes optional firstItem/firstItemType; Domain takes dataType+length or enumValues; NOT WWP — use genexus_apply_pattern) | popup (popup WebPanel with Form type='layout' body) | sd_panel_create|sd_panel_inspect|sd_panel_edit | save_as (clone parts) | scaffold|translate|sample (forge) | template (kpi_header|empty_state|confirm_dialog).","inputSchema":{"type":"object","required":["action"],"properties":{"action":{"type":"string","enum":["object","popup","sd_panel_create","sd_panel_inspect","sd_panel_edit","save_as","scaffold","translate","sample","template"]},"type":{"type":"string"},"name":{"type":"string"},"newName":{"type":"string","description":"save_as."},"description":{"type":"string"},"dataType":{"type":"string","description":"object Domain."},"length":{"type":"integer","description":"object Domain."},"decimals":{"type":"integer","description":"object Domain."},"signed":{"type":"boolean","description":"object Domain."},"basedOn":{"type":"string","description":"object Domain."},"enumValues":{"type":"array","items":{"type":"object"},"description":"object Domain enum."},"firstItem":{"type":"string","description":"object SDT optional: name of the first structure item to seed (SDK requires ≥1). Defaults to Item1. Use to avoid the throwaway Item1."},"firstItemType":{"type":"string","description":"object SDT optional: type of the seeded first item (Character/Numeric/VarChar/…). Defaults to VarChar."},"spec":{"type":"object","description":"popup."},"part":{"type":"string","description":"sd_panel_edit/template."},"content":{"type":"string","description":"sd_panel_edit/scaffold/translate."},"includePatternInstance":{"type":"boolean","description":"save_as."},"overwrite":{"type":"boolean","description":"save_as."},"dryRun":{"type":"boolean","description":"popup/save_as/template/object."},"template":{"type":"string","enum":["kpi_header","empty_state","confirm_dialog"],"description":"template."},"args":{"type":"object","description":"template."},"kb":{"type":"string","description":"KB alias."}},"examples":[{"action":"object","name":"NewPanel","type":"WebPanel"},{"action":"object","name":"CustomerApi","type":"API"},{"action":"popup","name":"MyPopup","spec":{"host":"Customer"}}]},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}}
|
|
44
44
|
]
|
|
Binary file
|