@automagik/genie 4.260430.3 → 4.260430.5

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/genie.js CHANGED
@@ -3450,7 +3450,7 @@ To install use this command:
3450
3450
 
3451
3451
  $ bun add react-devtools-core@7 -d
3452
3452
  `.trim()+`
3453
- `);else throw error2}reconciler.injectIntoDevTools();_r=reconciler,flushSync=_r.flushSyncFromReconciler??_r.flushSync});function useEffectEvent(handler){let handlerRef=import_react6.useRef(handler);return import_react6.useLayoutEffect(()=>{handlerRef.current=handler}),import_react6.useCallback((...args)=>{let fn=handlerRef.current;return fn(...args)},[])}function renderPluginFailurePlaceholder(registry3,pluginFailurePlaceholder,failure,pluginId,slot){if(!pluginFailurePlaceholder)return null;try{return pluginFailurePlaceholder(failure)}catch(error2){return registry3.reportPluginError({pluginId,slot,phase:"error_placeholder",source:"react",error:error2}),null}}var import_react5,import_react6,import_react7,import_react8,import_react9,import_react10,import_react11,import_react12,useKeyboard=(handler,options={release:!1})=>{let{keyHandler}=useAppContext(),stableHandler=useEffectEvent(handler);import_react5.useEffect(()=>{if(keyHandler?.on("keypress",stableHandler),options?.release)keyHandler?.on("keyrelease",stableHandler);return()=>{if(keyHandler?.off("keypress",stableHandler),options?.release)keyHandler?.off("keyrelease",stableHandler)}},[keyHandler,options.release])},PluginErrorBoundary;var init_react=__esm(async()=>{init_chunk_2mx7fq49();await __promiseAll([init_chunk_bpzk94k3(),init_core(),init_core(),init_core()]);import_react5=__toESM(require_react_development(),1),import_react6=__toESM(require_react_development(),1),import_react7=__toESM(require_react_development(),1),import_react8=__toESM(require_react_development(),1),import_react9=__toESM(require_react_development(),1),import_react10=__toESM(require_react_development(),1),import_react11=__toESM(require_react_development(),1),import_react12=__toESM(require_react_development(),1);PluginErrorBoundary=class PluginErrorBoundary extends import_react10.default.Component{constructor(props){super(props);this.state={failure:null}}componentDidCatch(error2){let failure=this.props.registry.reportPluginError({pluginId:this.props.pluginId,slot:this.props.slotName,phase:"render",source:"react",error:error2});this.setState({failure})}componentDidUpdate(previousProps){if(previousProps.resetToken!==this.props.resetToken&&this.state.failure)this.setState({failure:null})}render(){if(this.state.failure){let placeholder=renderPluginFailurePlaceholder(this.props.registry,this.props.pluginFailurePlaceholder,this.state.failure,this.props.pluginId,this.props.slotName);if(placeholder===null||placeholder===void 0||placeholder===!1)return this.props.fallbackOnFailure??null;return placeholder}return this.props.children}};extend3({"time-to-first-draw":TimeToFirstDrawRenderable})});function assertNonEmptyName(field,value){if(typeof value!=="string"||value.length===0)throw Error(`buildSpawnInvocation: "${field}" is required and must be a non-empty string`)}function assertSafeBranchName(field,value){if(!SAFE_BRANCH_NAME.test(value))throw Error(`buildSpawnInvocation: "${field}" contains unsafe characters for a branch name (got ${JSON.stringify(value)}); allowed: letters, digits, '.', '_', '-', '/'`)}function buildSpawnAgentArgv(intent){assertNonEmptyName("name",intent.name);let argv=["spawn",intent.name];if(intent.team!==void 0&&intent.team.length>0)argv.push("--team",intent.team);if(intent.session!==void 0&&intent.session.length>0)argv.push("--session",intent.session);if(intent.window!==void 0&&intent.window.length>0)argv.push("--window",intent.window);if(intent.newWindow===!0)argv.push("--new-window");if(intent.prompt!==void 0&&intent.prompt.length>0)argv.push("--prompt",intent.prompt);return argv}function buildCreateTeamArgv(intent){assertNonEmptyName("name",intent.name),assertSafeBranchName("name",intent.name);let argv=["team","create",intent.name];if(intent.repo!==void 0&&intent.repo.length>0)argv.push("--repo",intent.repo);if(intent.baseBranch!==void 0&&intent.baseBranch.length>0)argv.push("--base",intent.baseBranch);return argv}function buildSpawnInvocation(intent){let argv;switch(intent.kind){case"spawn-agent":argv=buildSpawnAgentArgv(intent);break;case"create-team":argv=buildCreateTeamArgv(intent);break;default:throw Error(`buildSpawnInvocation: unknown intent "kind" (got ${JSON.stringify(intent?.kind)})`)}return{cli:argv.map(shellQuote).join(" "),argv}}var SAFE_BRANCH_NAME;var init_spawn_invocation=__esm(()=>{init_team_lead_command();SAFE_BRANCH_NAME=/^[A-Za-z0-9._/-]+$/});function buildMenuItems(node){switch(node.type){case"agent":return buildAgentItems(node);case"session":return buildSessionItems();case"window":return buildWindowItems();case"pane":return buildPaneItems(node);default:return[]}}function buildAgentItems(node){if(node.wsAgentState==="running")return[{label:"Clone",shortcut:"N",action:"agent-new-window"},{label:"New window",shortcut:"W",action:"new-empty-window"},{label:"Spawn into\u2026",shortcut:"I",action:"spawn-into"},{label:"Rename...",shortcut:"R",action:"rename-session",needsInput:!0,separator:!0},{label:"Remove",shortcut:"K",action:"kill"}];return[{label:"Start",shortcut:"S",action:"spawn"},{label:"Spawn into\u2026",shortcut:"I",action:"spawn-into"}]}function buildSessionItems(){return[{label:"New window",shortcut:"N",action:"new-window"},{label:"Spawn here\u2026",shortcut:"H",action:"spawn-here"},{label:"Rename...",shortcut:"R",action:"rename-session",needsInput:!0,separator:!0},{label:"Kill session",shortcut:"K",action:"kill-session"}]}function buildWindowItems(){return[{label:"New agent",shortcut:"N",action:"window-new-agent"},{label:"Spawn here\u2026",shortcut:"H",action:"spawn-here"},{label:"New pane",shortcut:"P",action:"split-pane"},{label:"Rename...",shortcut:"R",action:"rename-window",needsInput:!0,separator:!0},{label:"Close window",shortcut:"K",action:"kill-window"}]}function buildPaneItems(node){let isClaude=node.data.command==="claude",items=[];if(isClaude&&!node.data.isDead)items.push({label:"Clone agent",shortcut:"C",action:"clone-agent"});return items.push({label:"Rename...",shortcut:"R",action:"rename-pane",needsInput:!0,separator:!0}),items.push({label:"Kill pane",shortcut:"K",action:"kill-pane"}),items}function isClaudeLikeCommandTitle(command,title,processCommand){let cmd=(command??"").toLowerCase(),lowerTitle=(title??"").toLowerCase();return CLAUDE_EXECUTABLE.test(processCommand??"")||cmd==="claude"||cmd.includes("claude")||lowerTitle.includes("claude")}function isClaudeLikePane(pane){return!pane.isDead&&isClaudeLikeCommandTitle(pane.command,pane.title,pane.processCommand)}var CLAUDE_EXECUTABLE;var init_pane_detection=__esm(()=>{CLAUDE_EXECUTABLE=/(^|[/\s])claude(\s|$)/i});var exports_db2={};__export(exports_db2,{mergeWorkState:()=>mergeWorkState,loadExecutors:()=>loadExecutors,loadAssignments:()=>loadAssignments,loadAgentWorkStates:()=>loadAgentWorkStates});async function loadExecutors(){let{getConnection:getConnection2}=await Promise.resolve().then(() => (init_db(),exports_db));return(await(await getConnection2())`
3453
+ `);else throw error2}reconciler.injectIntoDevTools();_r=reconciler,flushSync=_r.flushSyncFromReconciler??_r.flushSync});function useEffectEvent(handler){let handlerRef=import_react6.useRef(handler);return import_react6.useLayoutEffect(()=>{handlerRef.current=handler}),import_react6.useCallback((...args)=>{let fn=handlerRef.current;return fn(...args)},[])}function renderPluginFailurePlaceholder(registry3,pluginFailurePlaceholder,failure,pluginId,slot){if(!pluginFailurePlaceholder)return null;try{return pluginFailurePlaceholder(failure)}catch(error2){return registry3.reportPluginError({pluginId,slot,phase:"error_placeholder",source:"react",error:error2}),null}}var import_react5,import_react6,import_react7,import_react8,import_react9,import_react10,import_react11,import_react12,useKeyboard=(handler,options={release:!1})=>{let{keyHandler}=useAppContext(),stableHandler=useEffectEvent(handler);import_react5.useEffect(()=>{if(keyHandler?.on("keypress",stableHandler),options?.release)keyHandler?.on("keyrelease",stableHandler);return()=>{if(keyHandler?.off("keypress",stableHandler),options?.release)keyHandler?.off("keyrelease",stableHandler)}},[keyHandler,options.release])},PluginErrorBoundary;var init_react=__esm(async()=>{init_chunk_2mx7fq49();await __promiseAll([init_chunk_bpzk94k3(),init_core(),init_core(),init_core()]);import_react5=__toESM(require_react_development(),1),import_react6=__toESM(require_react_development(),1),import_react7=__toESM(require_react_development(),1),import_react8=__toESM(require_react_development(),1),import_react9=__toESM(require_react_development(),1),import_react10=__toESM(require_react_development(),1),import_react11=__toESM(require_react_development(),1),import_react12=__toESM(require_react_development(),1);PluginErrorBoundary=class PluginErrorBoundary extends import_react10.default.Component{constructor(props){super(props);this.state={failure:null}}componentDidCatch(error2){let failure=this.props.registry.reportPluginError({pluginId:this.props.pluginId,slot:this.props.slotName,phase:"render",source:"react",error:error2});this.setState({failure})}componentDidUpdate(previousProps){if(previousProps.resetToken!==this.props.resetToken&&this.state.failure)this.setState({failure:null})}render(){if(this.state.failure){let placeholder=renderPluginFailurePlaceholder(this.props.registry,this.props.pluginFailurePlaceholder,this.state.failure,this.props.pluginId,this.props.slotName);if(placeholder===null||placeholder===void 0||placeholder===!1)return this.props.fallbackOnFailure??null;return placeholder}return this.props.children}};extend3({"time-to-first-draw":TimeToFirstDrawRenderable})});function assertNonEmptyName(field,value){if(typeof value!=="string"||value.length===0)throw Error(`buildSpawnInvocation: "${field}" is required and must be a non-empty string`)}function assertSafeBranchName(field,value){if(!SAFE_BRANCH_NAME.test(value))throw Error(`buildSpawnInvocation: "${field}" contains unsafe characters for a branch name (got ${JSON.stringify(value)}); allowed: letters, digits, '.', '_', '-', '/'`)}function buildSpawnAgentArgv(intent){assertNonEmptyName("name",intent.name);let argv=["spawn",intent.name];if(intent.team!==void 0&&intent.team.length>0)argv.push("--team",intent.team);if(intent.session!==void 0&&intent.session.length>0)argv.push("--session",intent.session);if(intent.window!==void 0&&intent.window.length>0)argv.push("--window",intent.window);if(intent.newWindow===!0)argv.push("--new-window");if(intent.prompt!==void 0&&intent.prompt.length>0)argv.push("--prompt",intent.prompt);return argv}function buildCreateTeamArgv(intent){assertNonEmptyName("name",intent.name),assertSafeBranchName("name",intent.name);let argv=["team","create",intent.name];if(intent.repo!==void 0&&intent.repo.length>0)argv.push("--repo",intent.repo);if(intent.baseBranch!==void 0&&intent.baseBranch.length>0)argv.push("--base",intent.baseBranch);return argv}function buildSpawnInvocation(intent){let argv;switch(intent.kind){case"spawn-agent":argv=buildSpawnAgentArgv(intent);break;case"create-team":argv=buildCreateTeamArgv(intent);break;default:throw Error(`buildSpawnInvocation: unknown intent "kind" (got ${JSON.stringify(intent?.kind)})`)}return{cli:argv.map(shellQuote).join(" "),argv}}var SAFE_BRANCH_NAME;var init_spawn_invocation=__esm(()=>{init_team_lead_command();SAFE_BRANCH_NAME=/^[A-Za-z0-9._/-]+$/});function buildMenuItems(node){switch(node.type){case"agent":return buildAgentItems(node);case"session":return buildSessionItems();case"window":return buildWindowItems();case"pane":return buildPaneItems(node);default:return[]}}function buildAgentItems(node){if(node.wsAgentState==="running")return[{label:"Clone",shortcut:"N",action:"agent-new-window"},{label:"New window",shortcut:"W",action:"new-empty-window"},{label:"Spawn into\u2026",shortcut:"I",action:"spawn-into"},{label:"Rename...",shortcut:"R",action:"rename-session",needsInput:!0,separator:!0},{label:"Remove",shortcut:"K",action:"kill"}];return[{label:"Start",shortcut:"S",action:"spawn"},{label:"Spawn into\u2026",shortcut:"I",action:"spawn-into"}]}function buildSessionItems(){return[{label:"New window",shortcut:"N",action:"new-window"},{label:"Spawn here\u2026",shortcut:"H",action:"spawn-here"},{label:"Rename...",shortcut:"R",action:"rename-session",needsInput:!0,separator:!0},{label:"Kill session",shortcut:"K",action:"kill-session"}]}function buildWindowItems(){return[{label:"New agent",shortcut:"N",action:"window-new-agent"},{label:"Spawn here\u2026",shortcut:"H",action:"spawn-here"},{label:"New pane",shortcut:"P",action:"split-pane"},{label:"Rename...",shortcut:"R",action:"rename-window",needsInput:!0,separator:!0},{label:"Close window",shortcut:"K",action:"kill-window"}]}function buildPaneItems(node){let isClaude=node.data.command==="claude",items=[];if(isClaude&&!node.data.isDead)items.push({label:"Clone agent",shortcut:"C",action:"clone-agent"});return items.push({label:"Rename...",shortcut:"R",action:"rename-pane",needsInput:!0,separator:!0}),items.push({label:"Kill pane",shortcut:"K",action:"kill-pane"}),items}function hasClaudeActiveTitle(title,command){return(title??"").startsWith("\u2733 ")&&!PLAIN_SHELL_COMMANDS.has(command)}function isClaudeLikeCommandTitle(command,title,processCommand){let cmd=(command??"").toLowerCase(),lowerTitle=(title??"").toLowerCase();return CLAUDE_EXECUTABLE.test(processCommand??"")||hasClaudeActiveTitle(title,cmd)||cmd==="claude"||cmd.includes("claude")||lowerTitle.includes("claude")}function isClaudeLikePane(pane){return!pane.isDead&&isClaudeLikeCommandTitle(pane.command,pane.title,pane.processCommand)}var CLAUDE_EXECUTABLE,PLAIN_SHELL_COMMANDS;var init_pane_detection=__esm(()=>{CLAUDE_EXECUTABLE=/(^|[/\s])claude(\s|$)/i,PLAIN_SHELL_COMMANDS=new Set(["bash","fish","login","sh","tmux","zsh"])});var exports_db2={};__export(exports_db2,{mergeWorkState:()=>mergeWorkState,loadExecutors:()=>loadExecutors,loadAssignments:()=>loadAssignments,loadAgentWorkStates:()=>loadAgentWorkStates});async function loadExecutors(){let{getConnection:getConnection2}=await Promise.resolve().then(() => (init_db(),exports_db));return(await(await getConnection2())`
3454
3454
  SELECT e.id, e.agent_id, e.provider, e.transport, e.pid, e.tmux_session,
3455
3455
  e.tmux_pane_id, e.state, e.metadata, e.started_at,
3456
3456
  a.custom_name AS agent_name, a.role, a.team
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@automagik/genie",
3
- "version": "4.260430.3",
3
+ "version": "4.260430.5",
4
4
  "description": "Collaborative terminal toolkit for human + AI workflows. NOTE: the npm distribution is being soft-deprecated — the canonical install is `curl -fsSL https://get.automagik.dev/genie | bash` (cosign + SLSA verified). See https://automagik.dev/genie/security/distribution-sovereignty",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "genie",
3
- "version": "4.260430.3",
3
+ "version": "4.260430.5",
4
4
  "description": "Human-AI partnership for Claude Code. Share a terminal, orchestrate workers, evolve together. Brainstorm ideas, turn them into wishes, execute with /work, validate with /review, and ship as one team.",
5
5
  "author": {
6
6
  "name": "Namastex Labs"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "genie-plugin",
3
- "version": "4.260430.3",
3
+ "version": "4.260430.5",
4
4
  "private": true,
5
5
  "description": "Runtime dependencies for genie bundled CLIs",
6
6
  "type": "module",