← Commit history

fusion-lane: the 22 cloud verbs at platform tier; since 0.31.0 on the four new verbs

Colby Knox ·5426551e79 ·2d ago ·parent 355022d
1 file changed +589−4
tools/proposed/fusion-lane.json+589−4
@@ -539,7 +539,7 @@   "longRunning": false,   "timeoutSeconds": 120,   "proposedBy": "fusion-lane",-  "since": "0.30.14",+  "since": "0.31.0",   "agreedBy": [    "altium-lane",    "kicad-lane"@@ -573,7 +573,7 @@   "longRunning": false,   "timeoutSeconds": 30,   "proposedBy": "fusion-lane",-  "since": "0.30.14",+  "since": "0.31.0",   "agreedBy": [    "altium-lane",    "kicad-lane"@@ -611,7 +611,7 @@   "longRunning": false,   "timeoutSeconds": 30,   "proposedBy": "fusion-lane",-  "since": "0.30.14",+  "since": "0.31.0",   "agreedBy": [    "altium-lane",    "kicad-lane"@@ -641,10 +641,595 @@   "longRunning": false,   "timeoutSeconds": 30,   "proposedBy": "fusion-lane",-  "since": "0.30.14",+  "since": "0.31.0",   "agreedBy": [    "altium-lane",    "kicad-lane"   ]+ },+ {+  "name": "aps_status",+  "tier": "platform",+  "summary": "APS state: configured, signed in, token live, never-charge meter. When configured:false the hint sends you to your org's shared app ID on the wiki (adom-wiki settings get <org> autodesk-aps) before anything else; the fusion-aps-org-setup skill covers new boxes and first-time orgs.",+  "input": {},+  "output": {+   "configured": "bool",+   "neverCharge": "bool",+   "signedIn": "bool"+  },+  "hint": "Fusion's cloud (the Autodesk hub, library.io), the counterpart of Altium 365's a365_* verbs.",+  "pitfalls": [],+  "related": [],+  "example": {},+  "longRunning": false,+  "timeoutSeconds": 20,+  "proposedBy": "fusion-lane",+  "since": "0.31.0",+  "agreedBy": [+   "standard-lane"+  ]+ },+ {+  "name": "aps_signin",+  "tier": "platform",+  "summary": "Open the Autodesk sign-in in the REMEMBERED browser+profile (not the OS default); a background listener captures the token. Pass {exe,profileDir,name} to use+remember a specific browser, or {allowDefaultBrowser:true} to fall back to the OS default. If nothing is remembered, returns needsExtensionOpen so the caller opens authUrl in the user's real browser via nbrowser_open_window.",+  "input": {+   "allowDefaultBrowser": "optional bool",+   "exe": "optional str (browser binary to launch+remember)",+   "name": "optional str",+   "profileDir": "optional str (e.g. 'Default','Profile 2')"+  },+  "output": {+   "authUrl": "str",+   "needsExtensionOpen": "bool",+   "openedVia": "str",+   "success": "bool"+  },+  "hint": "Fusion's cloud (the Autodesk hub, library.io), the counterpart of Altium 365's a365_* verbs.",+  "pitfalls": [],+  "related": [],+  "example": {},+  "longRunning": false,+  "timeoutSeconds": 30,+  "proposedBy": "fusion-lane",+  "since": "0.31.0",+  "agreedBy": [+   "standard-lane"+  ]+ },+ {+  "name": "aps_set_client_id",+  "tier": "platform",+  "summary": "Set the org's APS (PKCE) client id used for cloud search. Get it from your org's members-only wiki settings: adom-wiki settings get <org> autodesk-aps (never from another machine's config file). When the org has none yet, the reply's hint gives the adom-wiki settings set command that shares it, so every other box adopts it in two calls (fusion-aps-org-setup skill). Public identifier, no secret.",+  "input": {+   "clientId": "required str"+  },+  "output": {+   "success": "bool"+  },+  "hint": "Fusion's cloud (the Autodesk hub, library.io), the counterpart of Altium 365's a365_* verbs.",+  "pitfalls": [],+  "related": [],+  "example": {+   "clientId": "D5nn...EPAq"+  },+  "longRunning": false,+  "timeoutSeconds": 20,+  "proposedBy": "fusion-lane",+  "since": "0.31.0",+  "agreedBy": [+   "standard-lane"+  ]+ },+ {+  "name": "aps_browse",+  "tier": "platform",+  "summary": "Browse hubs/projects/folders without launching Fusion.",+  "input": {+   "folderId": "optional str",+   "hubId": "optional str",+   "projectId": "optional str"+  },+  "output": {+   "items": "[{name,type,id}]"+  },+  "hint": "Fusion's cloud (the Autodesk hub, library.io), the counterpart of Altium 365's a365_* verbs.",+  "pitfalls": [],+  "related": [],+  "example": {},+  "longRunning": false,+  "timeoutSeconds": 60,+  "proposedBy": "fusion-lane",+  "since": "0.31.0",+  "agreedBy": [+   "standard-lane"+  ]+ },+ {+  "name": "aps_search",+  "tier": "platform",+  "summary": "Server-indexed search across the whole team hub: about 20-30 s hub-wide, a few seconds with projectId (not a 30-min folder walk). Budget 120 s. A ZERO from the server index is not absence: the reply then carries data.fallback (a name scan of the newest 400 items), data.completeness, and a hint to fusion_aps_browse a known sibling's folder (issue #85).",+  "input": {+   "hubId": "optional str",+   "limit": "optional int (default 50)",+   "projectId": "optional str",+   "query": "required str"+  },+  "output": {+   "count": "int",+   "results": "[{name,id,projectName,lastModified}]"+  },+  "hint": "Fusion's cloud (the Autodesk hub, library.io), the counterpart of Altium 365's a365_* verbs.",+  "pitfalls": [],+  "related": [],+  "example": {+   "limit": 10,+   "query": "Molecule"+  },+  "longRunning": false,+  "timeoutSeconds": 120,+  "proposedBy": "fusion-lane",+  "since": "0.31.0",+  "agreedBy": [+   "standard-lane"+  ]+ },+ {+  "name": "aps_recent",+  "tier": "platform",+  "summary": "Most-recently-modified designs across the team hub, newest first.",+  "input": {+   "limit": "optional int (default 25)"+  },+  "output": {+   "count": "int",+   "results": "[...]"+  },+  "hint": "Fusion's cloud (the Autodesk hub, library.io), the counterpart of Altium 365's a365_* verbs.",+  "pitfalls": [],+  "related": [],+  "example": {+   "limit": 25+  },+  "longRunning": false,+  "timeoutSeconds": 120,+  "proposedBy": "fusion-lane",+  "since": "0.31.0",+  "agreedBy": [+   "standard-lane"+  ]+ },+ {+  "name": "aps_file_info",+  "tier": "platform",+  "summary": "Version history + who/when/size for a file (tip + recent versions).",+  "input": {+   "query": "str  OR  projectId+urn"+  },+  "output": {+   "tip": "{...}",+   "versionCount": "int",+   "versions": "[...]"+  },+  "hint": "Fusion's cloud (the Autodesk hub, library.io), the counterpart of Altium 365's a365_* verbs.",+  "pitfalls": [],+  "related": [],+  "example": {+   "query": "BME690 Molecule"+  },+  "longRunning": false,+  "timeoutSeconds": 40,+  "proposedBy": "fusion-lane",+  "since": "0.31.0",+  "agreedBy": [+   "standard-lane"+  ]+ },+ {+  "name": "aps_versions",+  "tier": "platform",+  "summary": "Full (uncapped) version history of a file.",+  "input": {+   "query": "str  OR  projectId+urn"+  },+  "output": {+   "versionCount": "int",+   "versions": "[...]"+  },+  "hint": "Fusion's cloud (the Autodesk hub, library.io), the counterpart of Altium 365's a365_* verbs.",+  "pitfalls": [],+  "related": [],+  "example": {+   "query": "BME690 Molecule"+  },+  "longRunning": false,+  "timeoutSeconds": 40,+  "proposedBy": "fusion-lane",+  "since": "0.31.0",+  "agreedBy": [+   "standard-lane"+  ]+ },+ {+  "name": "aps_download",+  "tier": "platform",+  "summary": "Download a cloud file to the local machine (no Fusion needed).",+  "input": {+   "fileName": "optional str",+   "query": "str OR projectId+urn",+   "saveDir": "optional str"+  },+  "output": {+   "bytes": "int",+   "path": "str"+  },+  "hint": "Fusion's cloud (the Autodesk hub, library.io), the counterpart of Altium 365's a365_* verbs.",+  "pitfalls": [],+  "related": [],+  "example": {+   "query": "BME690 Molecule"+  },+  "longRunning": false,+  "timeoutSeconds": 90,+  "proposedBy": "fusion-lane",+  "since": "0.31.0",+  "agreedBy": [+   "standard-lane"+  ]+ },+ {+  "name": "aps_upload",+  "tier": "platform",+  "summary": "Upload a local file as a NEW cloud file (free Data Management; needs data:write scope). ⛔ FOLDER HYGIENE: NEVER pass a project ROOT folderId - the bridge REFUSES it (refused_root_upload). Loose files in a shared root clutter the team's cloud. Create/choose a real subfolder first (fusion_aps_create_folder under an 'Adom AI Workspace' folder), or just use fusion_make_3d_package / fusion_build_library_3d which auto-target a non-root workspace. To RELOCATE an existing file, MOVE it (preserves its urn) - do NOT delete + re-upload (mints a new urn, breaks 3D bindings). See the fusion-cloud-hygiene skill.",+  "input": {+   "fileName": "optional str",+   "folderId": "required str (NON-ROOT subfolder)",+   "localPath": "required str",+   "projectId": "required str"+  },+  "output": {+   "bytes": "int",+   "itemUrn": "str"+  },+  "hint": "Fusion's cloud (the Autodesk hub, library.io), the counterpart of Altium 365's a365_* verbs.",+  "pitfalls": [],+  "related": [],+  "example": {+   "folderId": "urn:...",+   "localPath": "C:/x.f3d",+   "projectId": "a.YnVz..."+  },+  "longRunning": false,+  "timeoutSeconds": 90,+  "proposedBy": "fusion-lane",+  "since": "0.31.0",+  "agreedBy": [+   "standard-lane"+  ]+ },+ {+  "name": "aps_create_folder",+  "tier": "platform",+  "summary": "Create a subfolder in a project (free; needs data:create scope). Use this to make an 'Adom AI Workspace' folder + per-task subfolders so the bridge never dumps loose files in the shared project root. See fusion-cloud-hygiene.",+  "input": {+   "name": "required str",+   "parentFolderId": "required str",+   "projectId": "required str"+  },+  "output": {+   "folderId": "str"+  },+  "hint": "Fusion's cloud (the Autodesk hub, library.io), the counterpart of Altium 365's a365_* verbs.",+  "pitfalls": [],+  "related": [],+  "example": {+   "name": "Adom AI Workspace",+   "parentFolderId": "urn:...",+   "projectId": "a.YnVz..."+  },+  "longRunning": false,+  "timeoutSeconds": 50,+  "proposedBy": "fusion-lane",+  "since": "0.31.0",+  "agreedBy": [+   "standard-lane"+  ]+ },+ {+  "name": "aps_open",+  "tier": "platform",+  "summary": "Find a cloud design by name and open it in Fusion (any folder depth). Fire-and-poll.",+  "input": {+   "query": "required str",+   "wait": "optional bool"+  },+  "output": {+   "match": "{name}",+   "opening": "bool",+   "statusVerb": "str"+  },+  "hint": "Fusion's cloud (the Autodesk hub, library.io), the counterpart of Altium 365's a365_* verbs.",+  "pitfalls": [],+  "related": [],+  "example": {+   "query": "BME690 Molecule"+  },+  "longRunning": true,+  "timeoutSeconds": 60,+  "proposedBy": "fusion-lane",+  "since": "0.31.0",+  "agreedBy": [+   "standard-lane"+  ]+ },+ {+  "name": "list_cloud_projects",+  "tier": "platform",+  "summary": "List the cloud PROJECTS visible to the signed-in Fusion session (hub walk - slow on big teams; prefer fusion_aps_search for finding files).",+  "input": {},+  "output": {+   "projects": "list",+   "success": "bool"+  },+  "hint": "Fusion's cloud (the Autodesk hub, library.io), the counterpart of Altium 365's a365_* verbs.",+  "pitfalls": [],+  "related": [],+  "example": {},+  "longRunning": true,+  "timeoutSeconds": 120,+  "proposedBy": "fusion-lane",+  "since": "0.31.0",+  "agreedBy": [+   "standard-lane"+  ]+ },+ {+  "name": "list_cloud_files",+  "tier": "platform",+  "summary": "List files/folders in a cloud project (optionally a subfolder).",+  "input": {+   "folderPath": "optional str",+   "projectName": "optional str (defaults to active project)"+  },+  "output": {+   "files": "list",+   "success": "bool"+  },+  "hint": "Fusion's cloud (the Autodesk hub, library.io), the counterpart of Altium 365's a365_* verbs.",+  "pitfalls": [],+  "related": [],+  "example": {+   "projectName": "Main"+  },+  "longRunning": true,+  "timeoutSeconds": 120,+  "proposedBy": "fusion-lane",+  "since": "0.31.0",+  "agreedBy": [+   "standard-lane"+  ]+ },+ {+  "name": "create_cloud_folder",+  "tier": "platform",+  "summary": "Create a subfolder in a cloud project through the signed-in Fusion session's Data API (no APS needed). Idempotent: an existing folder of that name is returned with alreadyExisted:true instead of a duplicate. Folder names are matched case-insensitively. For an APS-side create without Fusion running, use fusion_aps_create_folder.",+  "input": {+   "folderName": "required str",+   "parentPath": "optional str (parent folder path; default the project root)",+   "projectName": "optional str (default the active project)"+  },+  "output": {+   "alreadyExisted": "bool (only when it already existed)",+   "folderId": "str",+   "folderName": "str",+   "parentFolder": "str",+   "project": "str",+   "success": "bool"+  },+  "hint": "Fusion's cloud (the Autodesk hub, library.io), the counterpart of Altium 365's a365_* verbs.",+  "pitfalls": [],+  "related": [],+  "example": {+   "folderName": "AI-Scratch",+   "projectName": "Main"+  },+  "longRunning": false,+  "timeoutSeconds": 60,+  "proposedBy": "fusion-lane",+  "since": "0.31.0",+  "agreedBy": [+   "standard-lane"+  ]+ },+ {+  "name": "delete_cloud_file",+  "tier": "platform",+  "summary": "DESTRUCTIVE: delete ONE cloud file through the signed-in Fusion session's Data API. Looks in exactly one folder (projectName + folderPath, no recursion) for an exact case-insensitive name match, or for the lineage urn when fileId is given (the precise form; prefer it in shared folders). Refuses without fileName or fileId. Large folders time out on the scan; give a precise folderPath. Use fusion_cleanup_cloud_files to delete a LIST of urns with dryRun support.",+  "input": {+   "fileId": "optional str (lineage urn for a precise delete; lineageUrn is accepted as an alias)",+   "fileName": "required str unless fileId is given (exact name match in one folder)",+   "folderPath": "optional str (default the project root)",+   "projectName": "optional str (default the active project)"+  },+  "output": {+   "fileId": "str",+   "fileName": "str",+   "folder": "str",+   "project": "str",+   "success": "bool"+  },+  "hint": "Fusion's cloud (the Autodesk hub, library.io), the counterpart of Altium 365's a365_* verbs.",+  "pitfalls": [],+  "related": [],+  "example": {+   "fileName": "verbtest-scratch",+   "folderPath": "AI-Scratch",+   "projectName": "Main"+  },+  "longRunning": false,+  "timeoutSeconds": 60,+  "proposedBy": "fusion-lane",+  "since": "0.31.0",+  "agreedBy": [+   "standard-lane"+  ]+ },+ {+  "name": "cleanup_cloud_files",+  "tier": "platform",+  "summary": "PRECISELY delete a list of cloud files by lineage urn - SAFE cleanup of AI-created clutter. Deletes ONLY the exact fileIds given (never name-guessing), so it can't touch a teammate's file in a shared folder. Loops server-side. Get the ids from fusion_aps_browse (item .id). Use this to remove f3d files the bridge created. A big list takes minutes (relay may time out at ~60s while deletes continue server-side - re-browse to confirm).",+  "input": {+   "fileIds": "required [<lineage urn>]",+   "folderPath": "optional str (default root - where the files live)",+   "projectName": "optional str (default active project)"+  },+  "output": {+   "deletedCount": "int",+   "failed": "[{fileId,error}]",+   "failedCount": "int",+   "success": "bool"+  },+  "hint": "Fusion's cloud (the Autodesk hub, library.io), the counterpart of Altium 365's a365_* verbs.",+  "pitfalls": [],+  "related": [],+  "example": {+   "fileIds": [+    "urn:adsk.wipprod:dm.lineage:abc123"+   ],+   "projectName": "Adom"+  },+  "longRunning": true,+  "timeoutSeconds": 1800,+  "proposedBy": "fusion-lane",+  "since": "0.31.0",+  "agreedBy": [+   "standard-lane"+  ]+ },+ {+  "name": "managed_library_create",+  "tier": "platform",+  "summary": "Create a NEW managed library on library.io FROM the library in front (which must already be saved in a Fusion Hub). Drives MANAGE > LIBRARY.IO > Push, then completes Fusion's Create Managed Library dialog. PITFALL: a managed library created under one Autodesk account is NOT visible to another account until its managed FOLDER is shared on library.io - proven live, so do not assume hub membership shares it.",+  "input": {+   "description": "optional str",+   "name": "optional str (defaults to the library's own name)"+  },+  "output": {+   "alerts": "[...]",+   "library": "str",+   "success": "bool"+  },+  "hint": "Fusion's cloud (the Autodesk hub, library.io), the counterpart of Altium 365's a365_* verbs.",+  "pitfalls": [],+  "related": [],+  "example": {},+  "longRunning": true,+  "timeoutSeconds": 240,+  "proposedBy": "fusion-lane",+  "since": "0.31.0",+  "agreedBy": [+   "standard-lane"+  ]+ },+ {+  "name": "managed_library_link",+  "tier": "platform",+  "summary": "Link the library IN FRONT to an existing managed library on library.io. With no name, opens Fusion's Select Managed Library picker, returns its rows as records (name/type/version/managedFolder/description) and CANCELS - a safe read-only listing of what this Autodesk account can reach. With name, selects that row and confirms. SAFETY: after linking, Fusion offers to force-update your library FROM the managed one; 'Replace Local Library' would destroy your parts, so this verb answers CANCEL by default - pass onUpdatePrompt to choose deliberately. A managed library owned by ANOTHER Autodesk account does NOT appear until its managed FOLDER is shared with this account on library.io; being in the same Fusion hub is not enough.",+  "input": {+   "name": "optional str (exact library name from the picker; omit to list read-only)",+   "onUpdatePrompt": "optional str cancel|merge|replace (default cancel; replace OVERWRITES the local library)"+  },+  "output": {+   "alerts": "[...]",+   "linkedTo": "str?",+   "listedOnly": "bool?",+   "managedLibraries": "[{name,type,version,managedFolder,description}]",+   "success": "bool",+   "updatePrompt": "obj?"+  },+  "hint": "Fusion's cloud (the Autodesk hub, library.io), the counterpart of Altium 365's a365_* verbs.",+  "pitfalls": [],+  "related": [],+  "example": {},+  "longRunning": true,+  "timeoutSeconds": 180,+  "proposedBy": "fusion-lane",+  "since": "0.31.0",+  "agreedBy": [+   "standard-lane"+  ]+ },+ {+  "name": "managed_library_push",+  "tier": "platform",+  "summary": "Push a NEW VERSION of the library in front up to its linked managed library on library.io. Clicking the menu item alone does NOT push: Fusion raises a CEF 'Create New Version' confirmation and THAT is what creates the version, so this verb completes it and fails with confirm_missing rather than reporting a false pass. On a library that is not linked yet, Fusion offers Create Managed Library instead and this reports not_linked_yet - use fusion_managed_library_create. NOTE: Library Manager keeps showing the IMPORTED version number after a push, so the row gains an update-available badge instead of incrementing.",+  "input": {+   "onConfirm": "optional str create|cancel (default create)"+  },+  "output": {+   "alerts": "[...]",+   "confirmed": "obj",+   "library": "str",+   "success": "bool"+  },+  "hint": "Fusion's cloud (the Autodesk hub, library.io), the counterpart of Altium 365's a365_* verbs.",+  "pitfalls": [],+  "related": [],+  "example": {},+  "longRunning": true,+  "timeoutSeconds": 240,+  "proposedBy": "fusion-lane",+  "since": "0.31.0",+  "agreedBy": [+   "standard-lane"+  ]+ },+ {+  "name": "managed_library_pull",+  "tier": "platform",+  "summary": "Pull the newest version FROM library.io into the linked library in front. A pull ends in ONE of two CEF dialogs and BOTH block the add-in until answered: the force-update prompt when content differs (answered MERGE by default, since pull is an explicit request for the managed content - pass onUpdatePrompt:'replace' to overwrite local parts entirely, or 'cancel' to back out), or 'Up to Date' when already current. If neither appears, nothing was pulled and this reports failure rather than a false pass - Fusion greys Pull out on a library that was never linked.",+  "input": {+   "onUpdatePrompt": "optional str merge|replace|cancel (default merge)"+  },+  "output": {+   "alerts": "[...]",+   "library": "str",+   "success": "bool",+   "upToDate": "bool",+   "updatePrompt": "obj?"+  },+  "hint": "Fusion's cloud (the Autodesk hub, library.io), the counterpart of Altium 365's a365_* verbs.",+  "pitfalls": [],+  "related": [],+  "example": {},+  "longRunning": true,+  "timeoutSeconds": 240,+  "proposedBy": "fusion-lane",+  "since": "0.31.0",+  "agreedBy": [+   "standard-lane"+  ]+ },+ {+  "name": "managed_library_unlink",+  "tier": "platform",+  "summary": "Unlink the library in front from its managed library on library.io. Fusion greys this out on a library that was never linked, so a silent no-op there is expected.",+  "input": {},+  "output": {+   "alerts": "[...]",+   "library": "str",+   "success": "bool"+  },+  "hint": "Fusion's cloud (the Autodesk hub, library.io), the counterpart of Altium 365's a365_* verbs.",+  "pitfalls": [],+  "related": [],+  "example": {},+  "longRunning": true,+  "timeoutSeconds": 180,+  "proposedBy": "fusion-lane",+  "since": "0.31.0",+  "agreedBy": [+   "standard-lane"+  ]  } ]