feat(environment): system_launch, preference whitelist and operator prompts on COM; declared refusals headlessly

user_pick_point / user_select answer {cancelled: true} on ESC (DISP_E_EXCEPTION)
and {timed_out: true} past COM_CALL_TIMEOUT; preferences_set refuses read-only,
unknown and out-of-range keys before any ActiveX call.

The read-only key is Files.PrinterStyleSheetPath, not the spec's
PrintStyleSheetPath: IAcadPreferencesFiles has no member of that name
(measured live on AutoCAD 2026 / R25.1), and a misspelt key would make
preferences_get() raise on every live call.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FKFStjEFzpGyLq5bMpWxTd
This commit is contained in:
Umut CAN
2026-09-21 18:34:09 +03:00
co-authored by Claude Opus 5
parent c7dd72410a
commit b83a74e969
9 changed files with 1153 additions and 11 deletions
+83 -2
View File
@@ -3,7 +3,7 @@
"schema_version": 1,
"package_version": "1.5.1",
"totals": {
"tools": 179,
"tools": 185,
"resources": 8,
"prompts": 5,
"groups": 20
@@ -24,7 +24,7 @@
"pid": 9,
"premium": 12,
"solids": 5,
"system": 7,
"system": 13,
"templates": 2,
"transactions": 3,
"validation": 1,
@@ -2141,6 +2141,61 @@
"readOnlyHint": true
}
},
{
"name": "system_launch",
"group": "system",
"cost": "safe",
"summary": "Attach to the running AutoCAD or start it, optionally opening a file (live only).",
"tags": [
"system"
],
"annotations": {
"title": "Launch / Attach AutoCAD",
"readOnlyHint": false,
"destructiveHint": false
}
},
{
"name": "system_preferences_get",
"group": "system",
"cost": "read",
"summary": "Read AutoCAD preferences from the whitelist (OPTIONS dialog values; live only).",
"tags": [
"system"
],
"annotations": {
"title": "Get Preferences",
"readOnlyHint": true
}
},
{
"name": "system_preferences_set",
"group": "system",
"cost": "safe",
"summary": "Change one whitelisted AutoCAD preference; reports old and new (live only).",
"tags": [
"system"
],
"annotations": {
"title": "Set Preference",
"readOnlyHint": false,
"destructiveHint": false
}
},
{
"name": "system_prompt_message",
"group": "system",
"cost": "safe",
"summary": "Print a message on AutoCAD's command line (live only).",
"tags": [
"system"
],
"annotations": {
"title": "Command-Line Message",
"readOnlyHint": false,
"destructiveHint": false
}
},
{
"name": "system_run_command",
"group": "system",
@@ -2346,6 +2401,32 @@
"destructiveHint": false
}
},
{
"name": "user_pick_point",
"group": "system",
"cost": "read",
"summary": "Ask the operator to pick a point on screen (live only; blocks until they do).",
"tags": [
"system"
],
"annotations": {
"title": "Ask Operator: Pick Point",
"readOnlyHint": true
}
},
{
"name": "user_select",
"group": "system",
"cost": "read",
"summary": "Ask the operator to select one entity or a set on screen (live only).",
"tags": [
"system"
],
"annotations": {
"title": "Ask Operator: Select",
"readOnlyHint": true
}
},
{
"name": "validation_check",
"group": "validation",