@entrydesk/cli 1.28.0 → 1.28.1

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/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- import{b as u}from"./chunk-CMZ3SNUK.js";import"./chunk-NOSHH4TO.js";import{a as f,u as p}from"./chunk-W3YAQBZV.js";import"./chunk-KBW7PPBV.js";function d(i,c,b=!1){let n={},e={};for(let o=b?0:1;o<i.length;o++){let t=i[o];if(t==="--json")n.json=!0;else if(t==="--help"||t==="-h")n.help=!0;else if(t==="--profile")n.profile=i[++o];else switch(c){case"login":break;case"task":if(t==="-m"||t==="--message")e.message=i[++o];else if(t==="-a"||t==="--agent")e.agentId=i[++o];else if(t==="--model")e.model=i[++o];else if(t==="--connectors"){let s=i[++o];e.connectors=s?.split(",").map(r=>r.trim())}else t==="-i"||t==="--interactive"?e.interactive=!0:t==="--full-output"?e.fullOutput=!0:t==="-c"||t==="--continue"?e.continue=Number.parseInt(i[++o],10):t==="--plain"?e.plain=!0:t==="--output"?e.output=i[++o]:t==="--file-system"?e.fileSystem=!0:t==="--no-file-system"?e.noFileSystem=!0:t==="--dangerously-auto-approve-tools"&&(e.dangerouslyAutoApproveTools=!0);break;case"agents":if(t==="--name")e.name=i[++o];else if(t==="--description")e.description=i[++o];else if(t==="--system-prompt")e.systemPrompt=i[++o];else if(t==="--model-id")e.modelId=i[++o];else if(t==="--connector-ids"){let s=i[++o];e.connectorIds=s?.split(",").map(r=>r.trim()).filter(Boolean)}else if(t==="--capabilities"){let s=i[++o];e.capabilities=s?.split(",").map(r=>r.trim()).filter(Boolean)}else if(t==="--conversation-starters"){let s=i[++o];e.conversationStarters=s?.split(",").map(r=>r.trim()).filter(Boolean)}else if(t==="--tools"){let s=i[++o];e.tools=s?.split(",").map(r=>r.trim()).filter(Boolean)}else if(t==="--icon-id")e.iconId=i[++o];else if(t==="--limit"){let s=Number.parseInt(i[++o],10);(Number.isNaN(s)||s<1||s>100)&&(console.error("--limit must be an integer between 1 and 100"),process.exit(1)),e.limit=s}else if(t==="--next-key"){let s=i[++o];s||(console.error("--next-key requires a value"),process.exit(1)),e.nextKey=s}else if(t==="--all")e.all=!0;else if(t==="--mine"||t==="--me")e.mine=!0;else if(t==="--add-user")e.addUser=i[++o];else if(t==="--remove-user")e.removeUser=i[++o];else if(t==="--role"){let s=i[++o];s==="owner"||s==="editor"||s==="viewer"?e.role=s:(console.error("--role must be one of: owner, editor, viewer"),process.exit(1))}else t.startsWith("-")||(e.action?e.agentId=t:e.action=t);break;case"meeting":if(t==="--filter"){let s=i[++o];s==="mine"||s==="shared"||s==="all"?e.filter=s:(console.error("--filter must be one of: mine, shared, all"),process.exit(1))}else if(t==="--search")e.search=i[++o];else if(t==="--sort"){let s=i[++o];s==="updated"||s==="updated_at"?e.sortBy="updated_at":s==="start"||s==="start_time"?e.sortBy="start_time":(console.error("--sort must be one of: updated, start"),process.exit(1))}else if(t==="--limit"){let s=Number.parseInt(i[++o],10);(Number.isNaN(s)||s<1||s>100)&&(console.error("--limit must be an integer between 1 and 100"),process.exit(1)),e.limit=s}else if(t==="--next-key"){let s=i[++o];s||(console.error("--next-key requires a value"),process.exit(1)),e.nextKey=s}else if(t==="--all")e.all=!0;else if(t==="--title")e.title=i[++o];else if(t==="--description")e.description=i[++o];else if(t==="--location")e.location=i[++o];else if(t==="--start")e.startTime=i[++o];else if(t==="--end")e.endTime=i[++o];else if(t==="--conference-link")e.conferenceLink=i[++o];else if(t==="--notes")e.notes=i[++o];else if(t==="--status"){let s=i[++o];s==="scheduled"||s==="in_progress"||s==="completed"||s==="cancelled"?e.status=s:(console.error("--status must be one of: scheduled, in_progress, completed, cancelled"),process.exit(1))}else if(t==="--visibility"){let s=i[++o];s==="private"||s==="workspace"?e.visibility=s:(console.error("--visibility must be one of: private, workspace"),process.exit(1))}else if(t==="--raw")e.raw=!0;else if(t==="--add-user")e.addUser=i[++o];else if(t==="--remove-user")e.removeUser=i[++o];else if(t==="--add-team")e.addTeam=i[++o];else if(t==="--remove-team")e.removeTeam=i[++o];else if(t==="--role"){let s=i[++o];s==="viewer"||s==="editor"?e.role=s:(console.error("--role must be one of: viewer, editor"),process.exit(1))}else t.startsWith("-")||(e.action?e.action==="transcript"?e.recordingId=t:e.meetingId=t:e.action=t);break;case"workflow":if(t==="--search")e.search=i[++o];else if(t==="--limit"){let s=Number.parseInt(i[++o],10);(Number.isNaN(s)||s<1||s>100)&&(console.error("--limit must be an integer between 1 and 100"),process.exit(1)),e.limit=s}else if(t==="--next-key"){let s=i[++o];s||(console.error("--next-key requires a value"),process.exit(1)),e.nextKey=s}else if(t==="--all")e.all=!0;else if(t==="--name")e.name=i[++o];else if(t==="--description")e.description=i[++o];else if(t==="--file")e.file=i[++o];else if(t==="--activate")e.activate=!0;else if(t==="--deactivate")e.deactivate=!0;else if(t==="--show-source")e.showSource=!0;else if(t==="--args")e.args=i[++o];else if(t==="--args-file")e.argsFile=i[++o];else if(t==="--wait")e.wait=!0;else if(t==="--add-user")e.addUser=i[++o];else if(t==="--remove-user")e.removeUser=i[++o];else if(t==="--role"){let s=i[++o];s==="owner"||s==="editor"||s==="viewer"?e.role=s:(console.error("--role must be one of: owner, editor, viewer"),process.exit(1))}else t.startsWith("-")||(e.action?e.workflowId?e.action==="run-get"&&!e.runId?e.runId=t:(console.error(`Unexpected positional argument: ${t}`),process.exit(1)):e.workflowId=t:e.action=t);break;case"notifications":if(t==="--tab"){let s=i[++o];s==="all"||s==="action"||s==="info"?e.tab=s:(console.error("--tab must be one of: all, action, info"),process.exit(1))}else if(t==="--event-type")e.eventType=i[++o];else if(t==="--limit"){let s=Number.parseInt(i[++o],10);(Number.isNaN(s)||s<1||s>100)&&(console.error("--limit must be an integer between 1 and 100"),process.exit(1)),e.limit=s}else if(t==="--next-key"){let s=i[++o];s||(console.error("--next-key requires a value"),process.exit(1)),e.nextKey=s}else t==="--all"?e.all=!0:t.startsWith("-")||(e.action?e.notificationId=t:e.action=t);break;case"recordings":if(t==="--title")e.title=i[++o];else if(t==="--model")e.modelId=i[++o];else if(t==="--language")e.language=i[++o];else if(t==="--yes"||t==="-y")e.yes=!0;else if(t==="--search"){let s=i[++o];s&&s.length>200&&(console.error("--search must be at most 200 characters"),process.exit(1)),e.search=s}else if(t==="--limit"){let s=Number.parseInt(i[++o],10);(Number.isNaN(s)||s<1||s>100)&&(console.error("--limit must be an integer between 1 and 100"),process.exit(1)),e.limit=s}else if(t==="--next-key"){let s=i[++o];s||(console.error("--next-key requires a value"),process.exit(1)),e.nextKey=s}else t.startsWith("-")||(e.action?e.action==="import"||e.action==="preview"?e.url||(e.url=t):e.recordingId||(e.recordingId=t):e.action=t);break;case"connectors":if(t==="--token")e.token=i[++o];else if(t==="--yes"||t==="-y")e.yes=!0;else if(t==="--username")e.username=i[++o];else if(t==="--password")e.password=i[++o];else if(t==="--oauth")e.oauth=!0;else if(t==="--all")e.all=!0;else if(t==="--search"){let s=i[++o];s&&s.length>200&&(console.error("--search must be at most 200 characters"),process.exit(1)),e.search=s}else if(t==="--limit"){let s=Number.parseInt(i[++o],10);(Number.isNaN(s)||s<1||s>100)&&(console.error("--limit must be an integer between 1 and 100"),process.exit(1)),e.limit=s}else if(t==="--next-key"){let s=i[++o];s||(console.error("--next-key requires a value"),process.exit(1)),e.nextKey=s}else t.startsWith("-")||(e.action?e.connectorId||(e.connectorId=t):e.action=t);break;case"marketplace":if(t==="--type"){let s=i[++o];u.includes(s)?e.type=s:(console.error(`--type must be one of: ${u.join(", ")}`),process.exit(1))}else if(t==="--tag")e.tag=i[++o];else if(t==="--limit"){let s=Number.parseInt(i[++o],10);(Number.isNaN(s)||s<1||s>100)&&(console.error("--limit must be an integer between 1 and 100"),process.exit(1)),e.limit=s}else if(t==="--cursor"){let s=i[++o];s||(console.error("--cursor requires a value"),process.exit(1)),e.cursor=s}else t.startsWith("-")||(e.action?e.action==="search"?e.tag||(e.tag=t):e.slug||(e.slug=t):e.action=t);break;case"skills":if(t==="--force")e.force=!0;else if(t==="--me"||t==="--mine")e.createdBy="me";else if(t==="--enable")e.enable=!0;else if(t==="--disable")e.disable=!0;else if(t==="--add-user")e.addUser=i[++o];else if(t==="--remove-user")e.removeUser=i[++o];else if(t==="--role"){let s=i[++o];s==="owner"||s==="editor"||s==="viewer"?e.role=s:(console.error("--role must be one of: owner, editor, viewer"),process.exit(1))}else if(t==="-g"||t==="--global")e.global=!0;else if(t==="--local")e.local=!0;else if(t==="--remote")e.remote=!0;else if(t==="--all")e.all=!0;else if(t==="-a"||t==="--agent"){let s=i[o+1];(!s||s.startsWith("-"))&&(console.error("--agent requires a value"),process.exit(1));let r=e.agents??[];r.push(i[++o]),e.agents=r}else t.startsWith("-")||(e.action?e.configKey=t:e.action=t);break;case"schedules":if(t==="--name")e.name=i[++o];else if(t==="--prompt")e.prompt=i[++o];else if(t==="--agent-id")e.agentId=i[++o];else if(t==="--starts-at")e.startsAt=i[++o];else if(t==="--utc-offset")e.utcOffset=i[++o];else if(t==="--repeat-type"){let s=i[++o];s==="no-repeat"||s==="minutes"||s==="hours"||s==="days"||s==="weeks"||s==="months"?e.repeatType=s:(console.error("--repeat-type must be one of: no-repeat, minutes, hours, days, weeks, months"),process.exit(1))}else if(t==="--every")e.every=Number.parseInt(i[++o],10);else if(t==="--time")e.time=i[++o];else if(t==="--days-of-week"){let s=i[++o];e.daysOfWeek=s?.split(",").map(r=>Number.parseInt(r.trim(),10)).filter(r=>!Number.isNaN(r))}else if(t==="--days-of-month"){let s=i[++o];e.daysOfMonth=s?.split(",").map(r=>Number.parseInt(r.trim(),10)).filter(r=>!Number.isNaN(r))}else if(t==="--last-day-of-month")e.lastDayOfMonth=!0;else if(t==="--limit"){let s=Number.parseInt(i[++o],10);(Number.isNaN(s)||s<1||s>100)&&(console.error("--limit must be an integer between 1 and 100"),process.exit(1)),e.limit=s}else if(t==="--next-key"){let s=i[++o];s||(console.error("--next-key requires a value"),process.exit(1)),e.nextKey=s}else t==="--all"?e.all=!0:t.startsWith("-")||(e.action?e.scheduleId=t:e.action=t);break;case"config":!e.action&&!t.startsWith("-")?e.action=t:!e.configKey&&!t.startsWith("-")?e.configKey=t:!e.value&&!t.startsWith("-")&&(e.value=t);break;case"profile":!e.action&&!t.startsWith("-")?e.action=t:!e.name&&!t.startsWith("-")?e.name=t:!e.value&&!t.startsWith("-")&&(e.value=t);break;case"tasks":if(t==="--share"||t==="-s")e.shareId=i[++o];else if(t==="--full-output")e.fullOutput=!0;else if(t==="--output")e.output=i[++o];else if(t==="--search"||t==="-q")e.search=i[++o];else if(t==="--limit"){let s=Number.parseInt(i[++o],10);(Number.isNaN(s)||s<1||s>50)&&(console.error("--limit must be an integer between 1 and 50"),process.exit(1)),e.limit=s}else if(t==="--next-key"){let s=i[++o];s||(console.error("--next-key requires a value"),process.exit(1)),e.nextKey=s}else!e.taskId&&!t.startsWith("-")&&(e.taskId=t);break;case"budget":!e.action&&!t.startsWith("-")?e.action=t:!e.configKey&&!t.startsWith("-")&&(e.configKey=t);break;case"usage":if(t==="--limit")e.limit=Number.parseInt(i[++o],10);else if(t==="--sort-by"){let s=i[++o];(s==="cost"||s==="operations")&&(e.sortBy=s)}else t==="--offset"?e.offset=Number.parseInt(i[++o],10):t==="--period-start"?e.periodStart=i[++o]:t==="-o"||t==="--output"?e.output=i[++o]:!e.action&&!t.startsWith("-")&&(e.action=t);break;case"billing":if(t==="--limit"){let s=Number.parseInt(i[++o],10);(Number.isNaN(s)||s<1||s>100)&&(console.error("--limit must be an integer between 1 and 100"),process.exit(1)),e.limit=s}else if(t==="--next-key"){let s=i[++o];s||(console.error("--next-key requires a value"),process.exit(1)),e.nextKey=s}else t==="--all"?e.all=!0:!e.action&&!t.startsWith("-")&&(e.action=t);break;case"mcp-server":t==="--http"?e.http=!0:(t==="-p"||t==="--port")&&(e.port=Number.parseInt(i[++o],10));break;case"tool":t==="-i"||t==="--input"?e.input=i[++o]:t==="-f"||t==="--input-file"?e.inputFile=i[++o]:t==="-p"||t==="--prefix"?e.prefix=i[++o]:t.startsWith("-")||(e.action?e.name||(e.name=t):e.action=t);break;case"workspaces":t.startsWith("-")||(e.action?e.configKey||(e.configKey=t):e.action=t);break;case"update":t==="--check"&&(e.check=!0);break;default:break}}switch(c){case"login":return{command:"login",...n,...e};case"logout":return{command:"logout",...n,...e};case"status":return{command:"status",...n,...e};case"workspaces":return{command:"workspaces",...n,...e};case"agents":return{command:"agents",...n,...e};case"meeting":return{command:"meeting",...n,...e};case"workflow":return{command:"workflow",...n,...e};case"notifications":return{command:"notifications",...n,...e};case"models":return{command:"models",...n,...e};case"marketplace":return{command:"marketplace",...n,...e};case"recordings":return{command:"recordings",...n,...e};case"connectors":return{command:"connectors",...n,...e};case"skills":return{command:"skills",...n,...e};case"schedules":return{command:"schedules",...n,...e};case"config":return{command:"config",...n,...e};case"profile":return{command:"profile",...n,...e};case"task":return{command:"task",...n,...e};case"tasks":return{command:"tasks",...n,...e};case"budget":return{command:"budget",...n,...e};case"usage":return{command:"usage",...n,...e};case"billing":return{command:"billing",...n,...e};case"mcp-server":return{command:"mcp-server",...n,...e};case"tool":return{command:"tool",...n,...e};case"version":return{command:"version",...n,...e};case"update":return{command:"update",...n,...e};default:return{command:"help",...n,...e}}}var l=process.argv.slice(2);if(l[0]==="--help"||l[0]==="-h"){let{printHelp:i}=await import("./help-TFK3BT5B.js");i(),process.exit(0)}if(l[0]==="--version"||l[0]==="-v"){let{printVersion:i}=await import("./version-IV2RAOLX.js");i(),process.exit(0)}var m=!l[0]||l[0].startsWith("-"),k=m?"task":l[0],a=d(l,k,m);m&&a.command==="task"&&(a.interactive=!0);if(!m&&a.help&&a.command!=="help"){let{COMMANDS_WITH_OWN_HELP:i,printCommandHelp:c}=await import("./help-TFK3BT5B.js");i.has(a.command)||(c(a.command),process.exit(0))}async function h(){try{if(a.command!=="profile"){let i=a.profile||f.getCurrentProfileName();f.ensureProfileExists(i),f.setOverrideProfile(i)}switch(a.command){case"login":{let{runLogin:i}=await import("./login-T5C3DVUY.js");await i(a);break}case"logout":{let{runLogout:i}=await import("./logout-7PRB5MES.js");await i(a);break}case"status":{let{runStatus:i}=await import("./status-44A77ZIL.js");await i(a);break}case"workspaces":{let{runWorkspaces:i}=await import("./workspaces-JOIXH7BA.js");await i(a);break}case"agents":{let{runAgents:i}=await import("./agents-7AT2F2OW.js");await i(a);break}case"meeting":{let{runMeeting:i}=await import("./meeting-XNOB42V4.js");await i(a);break}case"recordings":{let{runRecordings:i}=await import("./recordings-DB6FAOLJ.js");await i(a);break}case"workflow":{let{runWorkflow:i}=await import("./workflow-FRNB3A6E.js");await i(a);break}case"notifications":{let{runNotifications:i}=await import("./notifications-BRSPPWLM.js");await i(a);break}case"models":{let{runModels:i}=await import("./models-BSU7KMZD.js");await i(a);break}case"marketplace":{let{runMarketplace:i}=await import("./marketplace-XCZWWE5C.js");await i(a);break}case"connectors":{let{runConnectors:i}=await import("./connectors-JWI45QZL.js");await i(a);break}case"skills":{let{runSkills:i}=await import("./skills-5PXBXD7R.js");await i(a);break}case"schedules":{let{runSchedules:i}=await import("./schedules-227DDHJ2.js");await i(a);break}case"tasks":{let{runTasks:i}=await import("./tasks-XCOBFIXY.js");await i(a);break}case"budget":{let{runBudget:i}=await import("./budget-MY6JGWFM.js");await i(a);break}case"usage":{let{runUsage:i}=await import("./usage-EL6YUF7G.js");await i(a);break}case"billing":{let{runBilling:i}=await import("./billing-6LOPF6HL.js");await i(a);break}case"config":if(a.action==="help"||l[1]==="--help"){let{renderConfigHelp:i}=await import("./config-help-6KBOPBVR.js");i()}else{let{runConfig:i}=await import("./config-N7DDPTN7.js");await i(a)}break;case"profile":{let{runProfile:i}=await import("./profile-2K3HDLYE.js");await i(a);break}case"task":if(a.help){let{printTaskHelp:i}=await import("./task-H3H6IWN6.js");i()}else{let{runTask:i}=await import("./task-H3H6IWN6.js");await i(a)}break;case"mcp-server":{let{startMcpServer:i}=await import("./mcp-VPY7C36M.js");await i({mode:a.http?"http":"stdio",port:a.port});break}case"tool":{let{runTool:i}=await import("./tool-PUQVTOXK.js");await i(a);break}case"version":{let{printVersion:i}=await import("./version-IV2RAOLX.js");i();break}case"update":{let{runUpdate:i}=await import("./update-Q3JWQRDM.js");await i(a);break}default:{let{printHelp:i}=await import("./help-TFK3BT5B.js");i();break}}}catch(i){p(i)}}h();
2
+ import{b as u}from"./chunk-CPWV7GSV.js";import"./chunk-NOSHH4TO.js";import{a as m,u as p}from"./chunk-W3YAQBZV.js";import"./chunk-KBW7PPBV.js";var h=new Set(["--profile"]),y=new Set(["--json"]);function d(i){let l=0;for(;l<i.length;){let n=i[l];if(h.has(n))l+=2;else if(y.has(n))l+=1;else break}let f=i[l];return!f||f.startsWith("-")?{command:"task",args:i,noCommand:!0}:{command:f,args:[...i.slice(0,l),...i.slice(l+1)],noCommand:!1}}function b(i,l,f=!1){let n={},e={};for(let o=f?0:1;o<i.length;o++){let t=i[o];if(t==="--json")n.json=!0;else if(t==="--help"||t==="-h")n.help=!0;else if(t==="--profile")n.profile=i[++o];else switch(l){case"login":break;case"task":if(t==="-m"||t==="--message")e.message=i[++o];else if(t==="-a"||t==="--agent")e.agentId=i[++o];else if(t==="--model")e.model=i[++o];else if(t==="--connectors"){let s=i[++o];e.connectors=s?.split(",").map(r=>r.trim())}else t==="-i"||t==="--interactive"?e.interactive=!0:t==="--full-output"?e.fullOutput=!0:t==="-c"||t==="--continue"?e.continue=Number.parseInt(i[++o],10):t==="--plain"?e.plain=!0:t==="--output"?e.output=i[++o]:t==="--file-system"?e.fileSystem=!0:t==="--no-file-system"?e.noFileSystem=!0:t==="--dangerously-auto-approve-tools"&&(e.dangerouslyAutoApproveTools=!0);break;case"agents":if(t==="--name")e.name=i[++o];else if(t==="--description")e.description=i[++o];else if(t==="--system-prompt")e.systemPrompt=i[++o];else if(t==="--model-id")e.modelId=i[++o];else if(t==="--connector-ids"){let s=i[++o];e.connectorIds=s?.split(",").map(r=>r.trim()).filter(Boolean)}else if(t==="--capabilities"){let s=i[++o];e.capabilities=s?.split(",").map(r=>r.trim()).filter(Boolean)}else if(t==="--conversation-starters"){let s=i[++o];e.conversationStarters=s?.split(",").map(r=>r.trim()).filter(Boolean)}else if(t==="--tools"){let s=i[++o];e.tools=s?.split(",").map(r=>r.trim()).filter(Boolean)}else if(t==="--icon-id")e.iconId=i[++o];else if(t==="--limit"){let s=Number.parseInt(i[++o],10);(Number.isNaN(s)||s<1||s>100)&&(console.error("--limit must be an integer between 1 and 100"),process.exit(1)),e.limit=s}else if(t==="--next-key"){let s=i[++o];s||(console.error("--next-key requires a value"),process.exit(1)),e.nextKey=s}else if(t==="--all")e.all=!0;else if(t==="--mine"||t==="--me")e.mine=!0;else if(t==="--add-user")e.addUser=i[++o];else if(t==="--remove-user")e.removeUser=i[++o];else if(t==="--role"){let s=i[++o];s==="owner"||s==="editor"||s==="viewer"?e.role=s:(console.error("--role must be one of: owner, editor, viewer"),process.exit(1))}else t.startsWith("-")||(e.action?e.agentId=t:e.action=t);break;case"meeting":if(t==="--filter"){let s=i[++o];s==="mine"||s==="shared"||s==="all"?e.filter=s:(console.error("--filter must be one of: mine, shared, all"),process.exit(1))}else if(t==="--search")e.search=i[++o];else if(t==="--sort"){let s=i[++o];s==="updated"||s==="updated_at"?e.sortBy="updated_at":s==="start"||s==="start_time"?e.sortBy="start_time":(console.error("--sort must be one of: updated, start"),process.exit(1))}else if(t==="--limit"){let s=Number.parseInt(i[++o],10);(Number.isNaN(s)||s<1||s>100)&&(console.error("--limit must be an integer between 1 and 100"),process.exit(1)),e.limit=s}else if(t==="--next-key"){let s=i[++o];s||(console.error("--next-key requires a value"),process.exit(1)),e.nextKey=s}else if(t==="--all")e.all=!0;else if(t==="--title")e.title=i[++o];else if(t==="--description")e.description=i[++o];else if(t==="--location")e.location=i[++o];else if(t==="--start")e.startTime=i[++o];else if(t==="--end")e.endTime=i[++o];else if(t==="--conference-link")e.conferenceLink=i[++o];else if(t==="--notes")e.notes=i[++o];else if(t==="--status"){let s=i[++o];s==="scheduled"||s==="in_progress"||s==="completed"||s==="cancelled"?e.status=s:(console.error("--status must be one of: scheduled, in_progress, completed, cancelled"),process.exit(1))}else if(t==="--visibility"){let s=i[++o];s==="private"||s==="workspace"?e.visibility=s:(console.error("--visibility must be one of: private, workspace"),process.exit(1))}else if(t==="--raw")e.raw=!0;else if(t==="--add-user")e.addUser=i[++o];else if(t==="--remove-user")e.removeUser=i[++o];else if(t==="--add-team")e.addTeam=i[++o];else if(t==="--remove-team")e.removeTeam=i[++o];else if(t==="--role"){let s=i[++o];s==="viewer"||s==="editor"?e.role=s:(console.error("--role must be one of: viewer, editor"),process.exit(1))}else t.startsWith("-")||(e.action?e.action==="transcript"?e.recordingId=t:e.meetingId=t:e.action=t);break;case"workflow":if(t==="--search")e.search=i[++o];else if(t==="--limit"){let s=Number.parseInt(i[++o],10);(Number.isNaN(s)||s<1||s>100)&&(console.error("--limit must be an integer between 1 and 100"),process.exit(1)),e.limit=s}else if(t==="--next-key"){let s=i[++o];s||(console.error("--next-key requires a value"),process.exit(1)),e.nextKey=s}else if(t==="--all")e.all=!0;else if(t==="--name")e.name=i[++o];else if(t==="--description")e.description=i[++o];else if(t==="--file")e.file=i[++o];else if(t==="--activate")e.activate=!0;else if(t==="--deactivate")e.deactivate=!0;else if(t==="--show-source")e.showSource=!0;else if(t==="--args")e.args=i[++o];else if(t==="--args-file")e.argsFile=i[++o];else if(t==="--wait")e.wait=!0;else if(t==="--add-user")e.addUser=i[++o];else if(t==="--remove-user")e.removeUser=i[++o];else if(t==="--role"){let s=i[++o];s==="owner"||s==="editor"||s==="viewer"?e.role=s:(console.error("--role must be one of: owner, editor, viewer"),process.exit(1))}else t.startsWith("-")||(e.action?e.workflowId?e.action==="run-get"&&!e.runId?e.runId=t:(console.error(`Unexpected positional argument: ${t}`),process.exit(1)):e.workflowId=t:e.action=t);break;case"notifications":if(t==="--tab"){let s=i[++o];s==="all"||s==="action"||s==="info"?e.tab=s:(console.error("--tab must be one of: all, action, info"),process.exit(1))}else if(t==="--event-type")e.eventType=i[++o];else if(t==="--limit"){let s=Number.parseInt(i[++o],10);(Number.isNaN(s)||s<1||s>100)&&(console.error("--limit must be an integer between 1 and 100"),process.exit(1)),e.limit=s}else if(t==="--next-key"){let s=i[++o];s||(console.error("--next-key requires a value"),process.exit(1)),e.nextKey=s}else t==="--all"?e.all=!0:t.startsWith("-")||(e.action?e.notificationId=t:e.action=t);break;case"recordings":if(t==="--title")e.title=i[++o];else if(t==="--model")e.modelId=i[++o];else if(t==="--language")e.language=i[++o];else if(t==="--yes"||t==="-y")e.yes=!0;else if(t==="--search"){let s=i[++o];s&&s.length>200&&(console.error("--search must be at most 200 characters"),process.exit(1)),e.search=s}else if(t==="--limit"){let s=Number.parseInt(i[++o],10);(Number.isNaN(s)||s<1||s>100)&&(console.error("--limit must be an integer between 1 and 100"),process.exit(1)),e.limit=s}else if(t==="--next-key"){let s=i[++o];s||(console.error("--next-key requires a value"),process.exit(1)),e.nextKey=s}else t.startsWith("-")||(e.action?e.action==="import"||e.action==="preview"?e.url||(e.url=t):e.recordingId||(e.recordingId=t):e.action=t);break;case"connectors":if(t==="--token")e.token=i[++o];else if(t==="--yes"||t==="-y")e.yes=!0;else if(t==="--username")e.username=i[++o];else if(t==="--password")e.password=i[++o];else if(t==="--oauth")e.oauth=!0;else if(t==="--all")e.all=!0;else if(t==="--search"){let s=i[++o];s&&s.length>200&&(console.error("--search must be at most 200 characters"),process.exit(1)),e.search=s}else if(t==="--limit"){let s=Number.parseInt(i[++o],10);(Number.isNaN(s)||s<1||s>100)&&(console.error("--limit must be an integer between 1 and 100"),process.exit(1)),e.limit=s}else if(t==="--next-key"){let s=i[++o];s||(console.error("--next-key requires a value"),process.exit(1)),e.nextKey=s}else t.startsWith("-")||(e.action?e.connectorId||(e.connectorId=t):e.action=t);break;case"marketplace":if(t==="--type"){let s=i[++o];u.includes(s)?e.type=s:(console.error(`--type must be one of: ${u.join(", ")}`),process.exit(1))}else if(t==="--tag")e.tag=i[++o];else if(t==="--limit"){let s=Number.parseInt(i[++o],10);(Number.isNaN(s)||s<1||s>100)&&(console.error("--limit must be an integer between 1 and 100"),process.exit(1)),e.limit=s}else if(t==="--cursor"){let s=i[++o];s||(console.error("--cursor requires a value"),process.exit(1)),e.cursor=s}else t.startsWith("-")||(e.action?e.action==="search"?e.tag||(e.tag=t):e.slug||(e.slug=t):e.action=t);break;case"skills":if(t==="--force")e.force=!0;else if(t==="--me"||t==="--mine")e.createdBy="me";else if(t==="--enable")e.enable=!0;else if(t==="--disable")e.disable=!0;else if(t==="--add-user")e.addUser=i[++o];else if(t==="--remove-user")e.removeUser=i[++o];else if(t==="--role"){let s=i[++o];s==="owner"||s==="editor"||s==="viewer"?e.role=s:(console.error("--role must be one of: owner, editor, viewer"),process.exit(1))}else if(t==="-g"||t==="--global")e.global=!0;else if(t==="--local")e.local=!0;else if(t==="--remote")e.remote=!0;else if(t==="--all")e.all=!0;else if(t==="-a"||t==="--agent"){let s=i[o+1];(!s||s.startsWith("-"))&&(console.error("--agent requires a value"),process.exit(1));let r=e.agents??[];r.push(i[++o]),e.agents=r}else t.startsWith("-")||(e.action?e.configKey=t:e.action=t);break;case"schedules":if(t==="--name")e.name=i[++o];else if(t==="--prompt")e.prompt=i[++o];else if(t==="--agent-id")e.agentId=i[++o];else if(t==="--starts-at")e.startsAt=i[++o];else if(t==="--utc-offset")e.utcOffset=i[++o];else if(t==="--repeat-type"){let s=i[++o];s==="no-repeat"||s==="minutes"||s==="hours"||s==="days"||s==="weeks"||s==="months"?e.repeatType=s:(console.error("--repeat-type must be one of: no-repeat, minutes, hours, days, weeks, months"),process.exit(1))}else if(t==="--every")e.every=Number.parseInt(i[++o],10);else if(t==="--time")e.time=i[++o];else if(t==="--days-of-week"){let s=i[++o];e.daysOfWeek=s?.split(",").map(r=>Number.parseInt(r.trim(),10)).filter(r=>!Number.isNaN(r))}else if(t==="--days-of-month"){let s=i[++o];e.daysOfMonth=s?.split(",").map(r=>Number.parseInt(r.trim(),10)).filter(r=>!Number.isNaN(r))}else if(t==="--last-day-of-month")e.lastDayOfMonth=!0;else if(t==="--limit"){let s=Number.parseInt(i[++o],10);(Number.isNaN(s)||s<1||s>100)&&(console.error("--limit must be an integer between 1 and 100"),process.exit(1)),e.limit=s}else if(t==="--next-key"){let s=i[++o];s||(console.error("--next-key requires a value"),process.exit(1)),e.nextKey=s}else t==="--all"?e.all=!0:t.startsWith("-")||(e.action?e.scheduleId=t:e.action=t);break;case"config":!e.action&&!t.startsWith("-")?e.action=t:!e.configKey&&!t.startsWith("-")?e.configKey=t:!e.value&&!t.startsWith("-")&&(e.value=t);break;case"profile":!e.action&&!t.startsWith("-")?e.action=t:!e.name&&!t.startsWith("-")?e.name=t:!e.value&&!t.startsWith("-")&&(e.value=t);break;case"tasks":if(t==="--share"||t==="-s")e.shareId=i[++o];else if(t==="--full-output")e.fullOutput=!0;else if(t==="--output")e.output=i[++o];else if(t==="--search"||t==="-q")e.search=i[++o];else if(t==="--limit"){let s=Number.parseInt(i[++o],10);(Number.isNaN(s)||s<1||s>50)&&(console.error("--limit must be an integer between 1 and 50"),process.exit(1)),e.limit=s}else if(t==="--next-key"){let s=i[++o];s||(console.error("--next-key requires a value"),process.exit(1)),e.nextKey=s}else!e.taskId&&!t.startsWith("-")&&(e.taskId=t);break;case"budget":!e.action&&!t.startsWith("-")?e.action=t:!e.configKey&&!t.startsWith("-")&&(e.configKey=t);break;case"usage":if(t==="--limit")e.limit=Number.parseInt(i[++o],10);else if(t==="--sort-by"){let s=i[++o];(s==="cost"||s==="operations")&&(e.sortBy=s)}else t==="--offset"?e.offset=Number.parseInt(i[++o],10):t==="--period-start"?e.periodStart=i[++o]:t==="-o"||t==="--output"?e.output=i[++o]:!e.action&&!t.startsWith("-")&&(e.action=t);break;case"billing":if(t==="--limit"){let s=Number.parseInt(i[++o],10);(Number.isNaN(s)||s<1||s>100)&&(console.error("--limit must be an integer between 1 and 100"),process.exit(1)),e.limit=s}else if(t==="--next-key"){let s=i[++o];s||(console.error("--next-key requires a value"),process.exit(1)),e.nextKey=s}else t==="--all"?e.all=!0:!e.action&&!t.startsWith("-")&&(e.action=t);break;case"mcp-server":t==="--http"?e.http=!0:(t==="-p"||t==="--port")&&(e.port=Number.parseInt(i[++o],10));break;case"tool":t==="-i"||t==="--input"?e.input=i[++o]:t==="-f"||t==="--input-file"?e.inputFile=i[++o]:t==="-p"||t==="--prefix"?e.prefix=i[++o]:t.startsWith("-")||(e.action?e.name||(e.name=t):e.action=t);break;case"workspaces":t.startsWith("-")||(e.action?e.configKey||(e.configKey=t):e.action=t);break;case"update":t==="--check"&&(e.check=!0);break;default:break}}switch(l){case"login":return{command:"login",...n,...e};case"logout":return{command:"logout",...n,...e};case"status":return{command:"status",...n,...e};case"workspaces":return{command:"workspaces",...n,...e};case"agents":return{command:"agents",...n,...e};case"meeting":return{command:"meeting",...n,...e};case"workflow":return{command:"workflow",...n,...e};case"notifications":return{command:"notifications",...n,...e};case"models":return{command:"models",...n,...e};case"marketplace":return{command:"marketplace",...n,...e};case"recordings":return{command:"recordings",...n,...e};case"connectors":return{command:"connectors",...n,...e};case"skills":return{command:"skills",...n,...e};case"schedules":return{command:"schedules",...n,...e};case"config":return{command:"config",...n,...e};case"profile":return{command:"profile",...n,...e};case"task":return{command:"task",...n,...e};case"tasks":return{command:"tasks",...n,...e};case"budget":return{command:"budget",...n,...e};case"usage":return{command:"usage",...n,...e};case"billing":return{command:"billing",...n,...e};case"mcp-server":return{command:"mcp-server",...n,...e};case"tool":return{command:"tool",...n,...e};case"version":return{command:"version",...n,...e};case"update":return{command:"update",...n,...e};default:return{command:"help",...n,...e}}}var c=process.argv.slice(2);if(c[0]==="--help"||c[0]==="-h"){let{printHelp:i}=await import("./help-TFK3BT5B.js");i(),process.exit(0)}if(c[0]==="--version"||c[0]==="-v"){let{printVersion:i}=await import("./version-4X7PCXOW.js");i(),process.exit(0)}var{command:v,args:x,noCommand:k}=d(c),a=b(x,v,!0);k&&a.command==="task"&&(a.interactive=!0);if(!k&&a.help&&a.command!=="help"){let{COMMANDS_WITH_OWN_HELP:i,printCommandHelp:l}=await import("./help-TFK3BT5B.js");i.has(a.command)||(l(a.command),process.exit(0))}async function N(){try{if(a.command!=="profile"){let i=a.profile||m.getCurrentProfileName();m.ensureProfileExists(i),m.setOverrideProfile(i)}switch(a.command){case"login":{let{runLogin:i}=await import("./login-T5C3DVUY.js");await i(a);break}case"logout":{let{runLogout:i}=await import("./logout-7PRB5MES.js");await i(a);break}case"status":{let{runStatus:i}=await import("./status-44A77ZIL.js");await i(a);break}case"workspaces":{let{runWorkspaces:i}=await import("./workspaces-JOIXH7BA.js");await i(a);break}case"agents":{let{runAgents:i}=await import("./agents-LIJMWOZ2.js");await i(a);break}case"meeting":{let{runMeeting:i}=await import("./meeting-QUGQQKHK.js");await i(a);break}case"recordings":{let{runRecordings:i}=await import("./recordings-DB6FAOLJ.js");await i(a);break}case"workflow":{let{runWorkflow:i}=await import("./workflow-RCAZOUFB.js");await i(a);break}case"notifications":{let{runNotifications:i}=await import("./notifications-BRSPPWLM.js");await i(a);break}case"models":{let{runModels:i}=await import("./models-BSU7KMZD.js");await i(a);break}case"marketplace":{let{runMarketplace:i}=await import("./marketplace-XCZWWE5C.js");await i(a);break}case"connectors":{let{runConnectors:i}=await import("./connectors-JWI45QZL.js");await i(a);break}case"skills":{let{runSkills:i}=await import("./skills-QBUDOMP6.js");await i(a);break}case"schedules":{let{runSchedules:i}=await import("./schedules-227DDHJ2.js");await i(a);break}case"tasks":{let{runTasks:i}=await import("./tasks-XCOBFIXY.js");await i(a);break}case"budget":{let{runBudget:i}=await import("./budget-MY6JGWFM.js");await i(a);break}case"usage":{let{runUsage:i}=await import("./usage-EL6YUF7G.js");await i(a);break}case"billing":{let{runBilling:i}=await import("./billing-6LOPF6HL.js");await i(a);break}case"config":if(a.action==="help"||c[1]==="--help"){let{renderConfigHelp:i}=await import("./config-help-6KBOPBVR.js");i()}else{let{runConfig:i}=await import("./config-N7DDPTN7.js");await i(a)}break;case"profile":{let{runProfile:i}=await import("./profile-2K3HDLYE.js");await i(a);break}case"task":if(a.help){let{printTaskHelp:i}=await import("./task-2WCICBUY.js");i()}else{let{runTask:i}=await import("./task-2WCICBUY.js");await i(a)}break;case"mcp-server":{let{startMcpServer:i}=await import("./mcp-VPY7C36M.js");await i({mode:a.http?"http":"stdio",port:a.port});break}case"tool":{let{runTool:i}=await import("./tool-PUQVTOXK.js");await i(a);break}case"version":{let{printVersion:i}=await import("./version-4X7PCXOW.js");i();break}case"update":{let{runUpdate:i}=await import("./update-2PWS4QYE.js");await i(a);break}default:{let{printHelp:i}=await import("./help-TFK3BT5B.js");i();break}}}catch(i){p(i)}}N();
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import{a as g}from"./chunk-CMZ3SNUK.js";import"./chunk-NOSHH4TO.js";import{g as p,s as y,u as h}from"./chunk-W3YAQBZV.js";import"./chunk-KBW7PPBV.js";function a(){console.log(`
2
+ import{a as g}from"./chunk-CPWV7GSV.js";import"./chunk-NOSHH4TO.js";import{g as p,s as y,u as h}from"./chunk-W3YAQBZV.js";import"./chunk-KBW7PPBV.js";function a(){console.log(`
3
3
  Usage: entrydesk meeting [list|get|create|update|delete|summary|transcript|previous|share] [options]
4
4
 
5
5
  Commands:
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import{c as ye}from"./chunk-CMZ3SNUK.js";import"./chunk-NOSHH4TO.js";import{d as O,g as ge,s as he,u as J}from"./chunk-W3YAQBZV.js";import"./chunk-KBW7PPBV.js";import Mt from"crypto";import M from"fs";import h from"fs/promises";import ke from"os";import k from"path";import{Readable as _t}from"stream";import{pipeline as Kt}from"stream/promises";import zt from"adm-zip";import Wt from"archiver";import{isHTTPError as Gt}from"ky";import ne from"fs/promises";import ie from"path";import{execFileSync as kt}from"child_process";import x from"fs";import yt from"os";import $ from"path";import rt from"os";import B from"fs";import Qe from"os";import _ from"path";import le from"fs";import we from"path";var qe="skills-lock.json",V=".entrydesk",ce=1;function Se(){return{version:ce,skills:{}}}function ve(e){return we.join(e,V,qe)}function I(e){try{let t=JSON.parse(le.readFileSync(ve(e),"utf8"));return t.version!==ce||typeof t.skills!="object"||t.skills===null?Se():t}catch{return Se()}}function be(e,t){let o={};for(let s of Object.keys(t.skills).toSorted())o[s]=t.skills[s];let r={version:ce,...t.workspaceId?{workspaceId:t.workspaceId}:{},skills:o},i=ve(e);le.mkdirSync(we.dirname(i),{recursive:!0}),le.writeFileSync(i,`${JSON.stringify(r,null,2)}
2
+ import{c as ye}from"./chunk-CPWV7GSV.js";import"./chunk-NOSHH4TO.js";import{d as O,g as ge,s as he,u as J}from"./chunk-W3YAQBZV.js";import"./chunk-KBW7PPBV.js";import Mt from"crypto";import M from"fs";import h from"fs/promises";import ke from"os";import k from"path";import{Readable as _t}from"stream";import{pipeline as Kt}from"stream/promises";import zt from"adm-zip";import Wt from"archiver";import{isHTTPError as Gt}from"ky";import ne from"fs/promises";import ie from"path";import{execFileSync as kt}from"child_process";import x from"fs";import yt from"os";import $ from"path";import rt from"os";import B from"fs";import Qe from"os";import _ from"path";import le from"fs";import we from"path";var qe="skills-lock.json",V=".entrydesk",ce=1;function Se(){return{version:ce,skills:{}}}function ve(e){return we.join(e,V,qe)}function I(e){try{let t=JSON.parse(le.readFileSync(ve(e),"utf8"));return t.version!==ce||typeof t.skills!="object"||t.skills===null?Se():t}catch{return Se()}}function be(e,t){let o={};for(let s of Object.keys(t.skills).toSorted())o[s]=t.skills[s];let r={version:ce,...t.workspaceId?{workspaceId:t.workspaceId}:{},skills:o},i=ve(e);le.mkdirSync(we.dirname(i),{recursive:!0}),le.writeFileSync(i,`${JSON.stringify(r,null,2)}
3
3
  `,"utf8")}function Z(e,t){return I(e).skills[t]}function F(e,t,o){let r=I(e);r.skills[t]=o,be(e,r)}function Ie(e,t){let o=I(e);if(!(t in o.skills))return!1;let{[t]:r,...i}=o.skills;return be(e,{...o,skills:i}),!0}var et="project.json",tt="global-link.json";function Le(e){try{let t=JSON.parse(B.readFileSync(e,"utf8"));return typeof t.workspaceId!="string"||t.workspaceId===""?void 0:t}catch{return}}function xe(e,t){B.mkdirSync(_.dirname(e),{recursive:!0}),B.writeFileSync(e,`${JSON.stringify(t,null,2)}
4
4
  `,"utf8")}function $e(e){return B.existsSync(e)?(B.rmSync(e),!0):!1}function R(e){return _.join(e,V,et)}function H(){return _.join(Qe.homedir(),V,tt)}function Ee(){return Le(H())}function Y(e){xe(H(),e)}function Pe(){return $e(H())}function ae(e=process.cwd()){let t=_.resolve(e);for(;;){if(B.existsSync(R(t)))return t;let o=_.dirname(t);if(o===t)return;t=o}}function ot(e){return Le(R(e))}function X(e,t){xe(R(e),t)}function je(e){return $e(R(e))}function Ae(e=process.cwd()){let t=ae(e);if(!t)return;let o=ot(t);return o?{rootDir:t,link:o}:void 0}function Ce(e){let t=O();if(e&&t&&e!==t)throw new Error(`This directory is linked to a workspace on ${e}, but the active profile points at ${t}. Re-run 'entrydesk skills link' or switch profile.`)}function q(){process.env.ENTRYDESK_API_URL&&console.error("Note: the recorded apiUrl comes from the ENTRYDESK_API_URL environment variable. This link pins the directory to that API \u2014 if the override was temporary, re-run the link without it.")}function v(e,t){if(e){let r=rt.homedir(),i=Ee();return i?(Ce(i.apiUrl),{rootDir:r,workspaceId:i.workspaceId,linked:!0}):{rootDir:r,workspaceId:t,linked:!1}}let o=Ae(process.cwd());return o?(Ce(o.link.apiUrl),{rootDir:o.rootDir,workspaceId:o.link.workspaceId,linked:!0}):{rootDir:process.cwd(),workspaceId:t,linked:!1}}import E from"fs";import K from"path";function Q(e,t){let o=K.dirname(e);E.mkdirSync(o,{recursive:!0});let r=E.mkdtempSync(K.join(o,`.${K.basename(e)}.tmp-`)),i=K.join(r,"next"),s=K.join(r,"prev");E.mkdirSync(i,{recursive:!0});let c=!1;try{t(i),E.existsSync(e)&&(E.renameSync(e,s),c=!0),E.renameSync(i,e)}catch(n){throw c&&!E.existsSync(e)&&E.renameSync(s,e),n}finally{E.rmSync(r,{recursive:!0,force:!0})}}import{createHash as Re}from"crypto";import ee from"fs";import z from"path";var De=new Set([".git","node_modules","__pycache__",".DS_Store","__MACOSX"]),Ne="SKILL.md";function nt(e){let t=ee.readdirSync(e,{withFileTypes:!0}).filter(r=>!De.has(r.name));if(t.some(r=>r.isFile()&&r.name===Ne))return e;let o=t.filter(r=>r.isDirectory());if(o.length===1){let r=z.join(e,o[0].name);if(ee.existsSync(z.join(r,Ne)))return r}return e}function Te(e,t,o){for(let r of ee.readdirSync(t,{withFileTypes:!0})){if(De.has(r.name))continue;let i=z.join(t,r.name);r.isDirectory()?Te(e,i,o):r.isFile()&&o.push({rel:z.relative(e,i).split(z.sep).join("/"),abs:i})}}function it(e){let t=[];Te(e,e,t),t.sort((r,i)=>r.rel<i.rel?-1:r.rel>i.rel?1:0);let o=Re("sha256");for(let r of t){let i=Re("sha256").update(ee.readFileSync(r.abs)).digest("hex");o.update(r.rel).update("\0").update(i).update("\0")}return o.digest("hex")}function P(e){return it(nt(e))}import L from"fs";import S from"path";var N=[{id:"claude-code",displayName:"Claude Code",skillsSubdir:S.join(".claude","skills"),rootMarker:".claude"},{id:"codex",displayName:"Codex",skillsSubdir:S.join(".codex","skills"),rootMarker:".codex"},{id:"cursor",displayName:"Cursor",skillsSubdir:S.join(".cursor","skills"),rootMarker:".cursor"},{id:"universal",displayName:"Universal (.agents)",skillsSubdir:S.join(".agents","skills"),rootMarker:".agents"}];function te(e,t){return S.join(t,e.skillsSubdir)}function st(e){let t=N.filter(o=>o.id==="universal"||L.existsSync(S.join(e,o.rootMarker)));return t.length>0?t:N.filter(o=>o.id==="universal")}function Ue(e){let t;try{t=L.lstatSync(e)}catch{return}t.isSymbolicLink()?L.unlinkSync(e):t.isDirectory()?L.rmSync(e,{recursive:!0,force:!0}):L.rmSync(e,{force:!0})}function lt(e,t,o,r="symlink"){let i=S.basename(S.dirname(t))||t,s=S.join(t,o);if(L.mkdirSync(t,{recursive:!0}),Ue(s),r==="symlink")try{let c=S.relative(t,e);return L.symlinkSync(c,s,process.platform==="win32"?"junction":"dir"),{agentId:i,linkPath:s,mode:"symlink",ok:!0}}catch{}try{return L.cpSync(e,s,{recursive:!0}),{agentId:i,linkPath:s,mode:"copy",ok:!0}}catch(c){return{agentId:i,linkPath:s,mode:"copy",ok:!1,error:c instanceof Error?c.message:String(c)}}}function Oe(e,t){let o=S.join(e,t);try{L.lstatSync(o)}catch{return!1}return Ue(o),!0}function Fe(e,t){let o;try{o=L.lstatSync(e)}catch{return!1}return o.isSymbolicLink()?S.resolve(S.dirname(e),L.readlinkSync(e))===S.resolve(t):!1}function ct(e,t){return t&&t.length>0?t.includes("*")?[...N]:N.filter(o=>t.includes(o.id)):st(e)}function oe(e,t,o,r="symlink",i){return ct(o,i).map(s=>lt(e,te(s,o),t,r))}import re from"path";var at=/^[a-z0-9]+(?:-[a-z0-9]+)*$/u;function fe(e){if(!at.test(e))throw new Error(`Invalid skill name "${e}": must be lowercase letters, digits and single hyphens (e.g. "my-skill").`)}function b(e,t){fe(t);let o=re.resolve(e,".entrydesk","skills"),r=re.resolve(o,t);if(r!==re.join(o,t)||!r.startsWith(o+re.sep))throw new Error(`Refusing unsafe skill path for "${t}".`);return r}async function j(e,t,o){let r=[],i;do{let s=await e.listAvailableSkills(t,o,{nextKey:i,limit:100});r.push(...s.skills),i=s.nextKey}while(i);return r}import A from"fs";import de from"os";import D from"path";var Be=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/iu,ft=/^([\w.-]+)\/([\w.-]+)(?:\/(.+))?$/u;function dt(e){return e==="~"?de.homedir():e.startsWith("~/")||e.startsWith("~\\")?D.join(de.homedir(),e.slice(2)):e}function ut(e){return e.startsWith("./")||e.startsWith("../")||e.startsWith("/")||e.startsWith("~")||e.startsWith(".\\")||/^[a-zA-Z]:[\\/]/u.test(e)}function pt(e){let t=/^https?:\/\/github\.com\/([\w.-]+)\/([\w.-]+?)(?:\.git)?(?:\/tree\/([^/]+)(?:\/(.+))?)?\/?$/u.exec(e);return t?{type:"github",owner:t[1],repo:t[2],gitRef:t[3],subpath:t[4],url:`https://github.com/${t[1]}/${t[2]}`}:null}function He(e){let t=e.trim();if(ut(t))return{type:"local",path:D.resolve(dt(t))};if(t.startsWith("ed:")){let i=t.slice(3);return{type:"entrydesk",ref:i,isId:Be.test(i)}}if(Be.test(t))return{type:"entrydesk",ref:t,isId:!0};if(t.startsWith("git@")||t.endsWith(".git"))return{type:"git",url:t};let o=pt(t);if(o)return o;if(/^https?:\/\//u.test(t))return{type:"git",url:t};let r=ft.exec(t);return r?{type:"github",owner:r[1],repo:r[2],subpath:r[3],url:`https://github.com/${r[1]}/${r[2]}`}:{type:"entrydesk",ref:t,isId:!1}}function ue(e){return e.type==="github"?"github":e.type}var mt=new Set([".git","node_modules","__pycache__",".DS_Store",".entrydesk"]);function pe(e,t){if(!A.existsSync(D.join(e,"SKILL.md")))throw new Error(`No SKILL.md found at ${e}`);let o=A.realpathSync(e),r=A.existsSync(t)?A.realpathSync(t):D.resolve(t);if(o===r)return;let i=A.mkdtempSync(D.join(de.tmpdir(),"ed-local-skill-")),s=D.join(i,"skill");try{A.cpSync(o,s,{recursive:!0,filter:c=>!mt.has(D.basename(c))}),Q(t,c=>{A.cpSync(s,c,{recursive:!0})})}finally{A.rmSync(i,{recursive:!0,force:!0})}}var gt="skills@1.5.12";function Me(e){try{let t=x.readFileSync($.join(e,"SKILL.md"),"utf8"),o=/^name:\s*(.+?)\s*$/mu.exec(t.split(/^---\s*$/mu)[1]??"");if(o?.[1])return o[1].replace(/^['"]|['"]$/gu,"")}catch{}return $.basename(e)}async function ht(e,t){let{default:o}=await import("adm-zip"),r=new o(e);Q(t,i=>{let s=$.resolve(i)+$.sep;for(let c of r.getEntries()){if(c.isDirectory)continue;let n=$.resolve(i,c.entryName);if(!n.startsWith(s))throw new Error(`Zip entry contains path traversal: ${c.entryName}`);x.mkdirSync($.dirname(n),{recursive:!0}),x.writeFileSync(n,c.getData())}})}async function St(e,t){if(t.isId)return t.ref;let r=(await j(e.client,e.accessToken,e.workspaceId)).find(i=>i.name===t.ref||i.id===t.ref);if(!r)throw new Error(`Skill not found in workspace: ${t.ref}`);return r.id}function wt(e,t,o){let r=x.mkdtempSync($.join(yt.tmpdir(),"ed-npx-skills-")),i=["-y",gt,"add",e,"--copy","--yes"];try{kt("npx",i,{cwd:r,stdio:o?["ignore","pipe","pipe"]:"inherit"})}catch(l){throw x.rmSync(r,{recursive:!0,force:!0}),new Error(`npx skills failed for ${e}. Ensure npx + network are available. (${l instanceof Error?l.message:String(l)})`,{cause:l})}let s=$.join(r,".agents","skills");if(!x.existsSync(s))throw x.rmSync(r,{recursive:!0,force:!0}),new Error(`npx skills produced no skills under ${s}`);let c=x.readdirSync(s,{withFileTypes:!0}).filter(l=>l.isDirectory());if(c.length===0)throw x.rmSync(r,{recursive:!0,force:!0}),new Error("npx skills installed no skill directory");let n=c[0];if(c.length>1){let l=t.type==="github"&&t.subpath?$.basename(t.subpath):void 0,f=l?c.find(a=>a.name===l):void 0;if(!f)throw x.rmSync(r,{recursive:!0,force:!0}),new Error(`npx skills installed [${c.map(a=>a.name).join(", ")}]; ${l?`none matched the subpath "${l}"`:"specify a subpath to pick one"}.`);n=f}return{dir:$.join(s,n.name),tmpRoot:r}}async function _e(e,t){let o=e.configKey;if(!o)throw new Error("Missing source. Usage: entrydesk skills add <source>");let r=He(o),i=!!e.global,s=v(i,t.workspaceId),c=s.rootDir,n={...t,workspaceId:s.workspaceId};if(!s.linked){let u={workspaceId:t.workspaceId,apiUrl:O()};q(),i?Y(u):X(process.cwd(),u)}let l,f,a;if(r.type==="entrydesk"){f=await St(n,r);let u=await n.client.downloadSkillCurrent(n.accessToken,n.workspaceId,f);l=u.name,a=b(c,l);let m=await fetch(u.url);if(!m.ok)throw new Error(`Failed to download ${l}: ${m.status}`);await ht(Buffer.from(await m.arrayBuffer()),a)}else if(r.type==="local")l=Me(r.path),a=b(c,l),pe(r.path,a);else{let{dir:u,tmpRoot:m}=wt(o,r,!!e.json);try{l=Me(u),a=b(c,l),pe(u,a)}finally{x.rmSync(m,{recursive:!0,force:!0})}}let y=P(a),g={source:o,sourceType:ue(r),skillId:f,localHash:y,lastPulledHash:r.type==="entrydesk"?y:"",mode:"symlink",...r.type==="github"?{sourceUrl:r.url,ref:r.gitRef,subpath:r.subpath}:{},...r.type==="git"?{sourceUrl:r.url}:{}};F(c,l,g);let d=oe(a,l,c,"symlink",e.agents);e.json?console.info(JSON.stringify({name:l,sourceType:ue(r),hash:y},null,2)):console.info(`\u2713 added ${l} (${r.type}, ${y.slice(0,12)}) \u2192 agents: ${d.map(u=>u.agentId).join(", ")}`)}import G from"fs";import vt from"os";import W from"path";import bt from"archiver";function It(e){return typeof e!="object"||e===null?!1:e.response?.status===404||/\b404\b/u.test(String(e.message??""))}function Lt(e){return e.remoteHash===null?"create":e.currentHash===e.baseHash?"noop":!e.force&&e.remoteHash!==e.lastPulledHash?"stale":"push"}function xt(e){return new Promise((t,o)=>{let r=[],i=bt("zip",{zlib:{level:9}});i.on("data",s=>r.push(s)),i.on("error",o),i.on("end",()=>t(Buffer.concat(r))),i.directory(e,!1),i.finalize()})}async function $t(e,t){let{url:o}=await e.client.downloadSkillCurrent(e.accessToken,e.workspaceId,t),r=await fetch(o);if(!r.ok)throw new Error(`download for staleness check failed: ${r.status}`);let i=G.mkdtempSync(W.join(vt.tmpdir(),"ed-push-cmp-"));try{let{default:s}=await import("adm-zip");for(let c of new s(Buffer.from(await r.arrayBuffer())).getEntries()){if(c.isDirectory)continue;let n=W.resolve(i,c.entryName);n.startsWith(W.resolve(i)+W.sep)&&(G.mkdirSync(W.dirname(n),{recursive:!0}),G.writeFileSync(n,c.getData()))}return P(i)}finally{G.rmSync(i,{recursive:!0,force:!0})}}async function Ke(e,t,o,r,i,s,c){let n=await xt(r),l=new FormData;l.append("file",new Blob([n],{type:"application/zip"}),`${o}.zip`),c&&l.append("force","true");let f=await e.client.uploadSkill(e.accessToken,e.workspaceId,l);F(t,o,{...s,skillId:f.id,localHash:i,lastPulledHash:i})}async function Et(e,t,o,r,i){let s=b(t,o);if(!G.existsSync(s))throw new Error(`No local copy for ${o}`);let c=P(s);if(r.skillId){let f=null;try{f=await $t(e,r.skillId)}catch(a){if(!It(a))throw a}if(f!==null){let a=Lt({currentHash:c,baseHash:r.localHash,lastPulledHash:r.lastPulledHash,remoteHash:f,force:i});return a==="noop"||a==="stale"||await Ke(e,t,o,s,c,r,!0),a}}let l=(await j(e.client,e.accessToken,e.workspaceId)).find(f=>f.name===o);return l&&!i?"name-conflict":(await Ke(e,t,o,s,c,r,!!l),"create")}async function ze(e,t){let{rootDir:o,workspaceId:r}=v(!!e.global,t.workspaceId),i={...t,workspaceId:r},s=!!e.force,c=e.configKey?[e.configKey]:Object.keys(I(o).skills);if(c.length===0){console.info("Nothing to push \u2014 no tracked skills.");return}let n=!1;for(let l of c){let f=Z(o,l);if(!f){console.info(`\u2717 ${l}: not tracked (run: entrydesk skills add <source>)`),n=!0;continue}let a=await Et(i,o,l,f,s),y={create:`\u2713 pushed ${l} (created in workspace)`,push:`\u2713 pushed ${l}`,noop:`\xB7 ${l} unchanged`,stale:`\u2717 ${l} rejected \u2014 remote changed since last pull. Run 'entrydesk skills pull ${l}' first (or --force).`,"name-conflict":`\u2717 ${l} rejected \u2014 a different skill named "${l}" already exists in the workspace. Pull it first, or --force to overwrite.`};console.info(y[a]),(a==="stale"||a==="name-conflict")&&(n=!0)}n&&(process.exitCode=1)}import me from"fs";import Pt from"path";function jt(e,t,o,r){let i=[],s=[];for(let c of N){let n=Pt.join(te(c,t),e);try{me.lstatSync(n)}catch{continue}r||Fe(n,o)?i.push(c.id):s.push(c.id)}return{removable:i,preserved:s}}async function We(e,t){let o=e.configKey;if(!o)throw new Error("Missing skill name. Usage: entrydesk skills remove <name>");fe(o);let{rootDir:r,workspaceId:i}=v(!!e.global,t.workspaceId),s=Z(r,o),c=b(r,o),n=me.existsSync(c),l=!!s||n,{removable:f,preserved:a}=jt(o,r,c,l);if(!(l||f.length>0)&&!(e.remote&&s?.skillId)){a.length>0?console.info(`Left ${o} untouched in ${a.join(", ")} \u2014 not EntryDesk-managed; remove it manually if intended.`):console.info(`Nothing to remove \u2014 ${o} is not installed.`);return}let g=!1;e.remote&&(s?.skillId?(await t.client.deleteSkill(t.accessToken,i,s.skillId),g=!0):console.info(`\xB7 skipped --remote: no known workspace skillId for ${o} (it was never pushed from here).`));for(let p of N)f.includes(p.id)&&Oe(te(p,r),o);n&&me.rmSync(c,{recursive:!0,force:!0}),Ie(r,o);let d={name:o,canonicalRemoved:n,agentsUnlinked:f,agentsPreserved:a,untracked:!s,remoteDeleted:g};if(e.json){console.info(JSON.stringify(d,null,2));return}let u=f.length>0?` (agents: ${f.join(", ")})`:"",m=a.length>0?` \u2014 kept non-managed entries in ${a.join(", ")}`:"";console.info(`\u2713 removed ${o}${u}${g?" + deleted from workspace":""}${m}`)}import At from"fs";function Ct(e,t,o){return t?(o??e.localHash)===e.lastPulledHash?"synced":"ahead":e.skillId?"remote-deleted":"local-only"}var Ge={synced:"\u2014",ahead:"push (local edits)","local-only":"push (never uploaded)","remote-deleted":"push to restore, or remove","remote-only":"add / pull to install"},Rt={synced:"\u2713",ahead:"\u2191","local-only":"\u2299","remote-deleted":"\u26A0","remote-only":"\u2601"};async function Je(e,t){let o=!!e.global,{rootDir:r,workspaceId:i}=v(o,t.workspaceId),s=o?"global":"project",c=I(r).skills,n=await j(t.client,t.accessToken,i),l=new Map(n.map(d=>[d.id,d])),f=new Map(n.map(d=>[d.name,d])),a=[],y=new Set;for(let[d,u]of Object.entries(c)){let m=u.skillId?l.get(u.skillId):f.get(d);m&&y.add(m.id);let p=b(r,d),w=At.existsSync(p)?P(p):null,T=Ct(u,!!m,w);a.push({name:d,scope:s,state:T,hint:Ge[T]})}for(let d of n)y.has(d.id)||a.push({name:d.name,scope:s,state:"remote-only",hint:Ge["remote-only"]});if(a.sort((d,u)=>d.name<u.name?-1:d.name>u.name?1:0),e.json){console.info(JSON.stringify(a,null,2));return}if(a.length===0){console.info("No skills tracked locally or available in the workspace.");return}let g=(d,u)=>d.padEnd(u);console.info(`${g("NAME",26)}${g("SCOPE",9)}STATUS`);for(let d of a)console.info(`${g(d.name,26)}${g(d.scope,9)}${Rt[d.state]} ${g(d.state,16)}${d.hint}`)}var Ve=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/iu;function Nt(e,t){let o=e.configKey&&Ve.test(e.configKey)?e.configKey:t.workspaceId,r={workspaceId:o,apiUrl:O()};if(q(),e.global)Y(r),console.info(`Linked ${H()} \u2192 workspace ${o}`);else{let i=process.cwd();X(i,r),console.info(`Linked ${R(i)} \u2192 workspace ${o}`)}}function Dt(e){if(e.global){Pe()?console.info(`Unlinked ${H()}`):console.info("No global link found.");return}let t=ae(process.cwd());t&&je(t)?console.info(`Unlinked ${R(t)}`):console.info("No project link found.")}async function Tt(e,t,o,r,i){let s=o.skillId;if(!s){let{skills:p}=await e.client.listAvailableSkills(e.accessToken,e.workspaceId),w=p.find(T=>T.name===o.name);if(!w)throw new Error(`Skill not found in workspace: ${o.name}`);s=w.id}let{url:c,name:n}=await e.client.downloadSkillCurrent(e.accessToken,e.workspaceId,s),l=await fetch(c);if(!l.ok)throw new Error(`Failed to download ${n}: ${l.status}`);let f=Buffer.from(await l.arrayBuffer()),a=b(t,n);await ne.rm(a,{recursive:!0,force:!0}),await ne.mkdir(a,{recursive:!0});let{default:y}=await import("adm-zip"),g=ie.resolve(a)+ie.sep;for(let p of new y(f).getEntries()){if(p.isDirectory)continue;let w=ie.resolve(a,p.entryName);if(!w.startsWith(g))throw new Error(`Zip entry contains path traversal: ${p.entryName}`);await ne.mkdir(ie.dirname(w),{recursive:!0}),await ne.writeFile(w,p.getData())}let d=P(a);F(t,n,{source:s,sourceType:"entrydesk",skillId:s,localHash:d,lastPulledHash:d,mode:"symlink"});let m=oe(a,n,t,"symlink",i);return r||console.info(`\u2713 pulled ${n} (${d.slice(0,12)}) \u2192 agents: ${m.map(p=>p.agentId).join(", ")}`),{name:n,hash:d}}async function Ut(e,t){let{rootDir:o,workspaceId:r}=v(!!e.global,t.workspaceId),i={...t,workspaceId:r},s=!!e.json,c=[];if(e.configKey)c.push(Ve.test(e.configKey)?{skillId:e.configKey}:{name:e.configKey});else{let l=I(o).skills;for(let[f,a]of Object.entries(l))c.push({skillId:a.skillId,name:f});if(c.length===0){console.info("Nothing to pull \u2014 no tracked skills. Try: entrydesk skills pull <name>");return}}let n=[];for(let l of c)n.push(await Tt(i,o,l,s,e.agents));s&&console.info(JSON.stringify(n,null,2))}var Ot=new Set(["add","pull","push","status","remove","link","unlink"]);function Ze(e){return Ot.has(e)}function Ye(e,t){return e.action==="add"?_e(e,t):e.action==="pull"?Ut(e,t):e.action==="push"?ze(e,t):e.action==="status"?Je(e,t):e.action==="remove"?We(e,t):(e.action==="link"?Nt(e,t):e.action==="unlink"&&Dt(e),Promise.resolve())}function Ft(e){return e.all?"all":e.remote&&!e.local?"remote":e.local&&!e.remote?"local":"all"}function Bt(e,t,o){let r=new Map(t.map(n=>[n.name,n])),i=new Map(Object.entries(e)),s=new Set;if(o!=="remote")for(let n of i.keys())s.add(n);if(o!=="local")for(let n of r.keys())s.add(n);let c=[];for(let n of s){let l=i.get(n),f=r.get(n);c.push({name:n,local:!!l,remote:!!f,sourceType:l?.sourceType,skillId:l?.skillId??f?.id})}return c.sort((n,l)=>n.name<l.name?-1:n.name>l.name?1:0),c}function Ht(e){return e.local&&e.remote?"local+remote":e.local?"local-only":"remote-only"}async function Xe(e,t){let o=Ft(e),{rootDir:r,workspaceId:i}=v(!!e.global,t.workspaceId),s=o==="remote"?{}:I(r).skills,c=o==="local"?[]:await j(t.client,t.accessToken,i),n=Bt(s,c,o);if(e.json){console.info(JSON.stringify(n,null,2));return}if(n.length===0){console.info(o==="local"?"No skills tracked locally.":"No skills available in the workspace.");return}let l=(f,a)=>f.padEnd(a);console.info(`${l("NAME",28)}${l("WHERE",14)}SOURCE`);for(let f of n)console.info(`${l(f.name,28)}${l(Ht(f),14)}${f.sourceType??"\u2014"}`)}function C(){console.log(`
5
5
  Usage: entrydesk skills [list|upload|delete|download|toggle|versions|share] [options]