@oxgeneral/orch 1.0.16 → 1.0.17
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/cli.js +1 -1
- package/package.json +1 -1
- package/skills/orch/SKILL.md +23 -0
package/dist/cli.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import {a as a$3,e}from'./chunk-3AXNSYCM.js';import {k as k$1}from'./chunk-ZMLF5HI5.js';import {a as a$1,b,i}from'./chunk-64WUDYEM.js';import {a as a$2,b as b$1}from'./chunk-IKNBPOQL.js';import R from'path';import {Command}from'commander';function l(o){let t=o.noColor||"NO_COLOR"in process.env||false,i=o.ascii||process.env.TERM==="dumb"||false;return {projectRoot:e(),json:o.json??false,quiet:o.quiet??false,noColor:t,ascii:i}}var d={task:async(o,t)=>{(await import('./task-2LI5CMI4.js')).registerTaskCommand(o,t);},agent:async(o,t)=>{(await import('./agent-TU6OC7ZT.js')).registerAgentCommand(o,t);},status:async(o,t)=>{(await import('./status-NYHZ7Q5G.js')).registerStatusCommand(o,t);},logs:async(o,t)=>{(await import('./logs-CU3NC24O.js')).registerLogsCommand(o,t);},config:async(o,t)=>{(await import('./config-OOB7QEKM.js')).registerConfigCommand(o,t);},context:async(o,t)=>{(await import('./context-FXRERFSP.js')).registerContextCommand(o,t);},msg:async(o,t)=>{(await import('./msg-4ELI7Q52.js')).registerMsgCommand(o,t);},goal:async(o,t)=>{(await import('./goal-RNNZYMNR.js')).registerGoalCommand(o,t);},team:async(o,t)=>{(await import('./team-VCJSUDWX.js')).registerTeamCommand(o,t);},org:async(o,t)=>{(await import('./org-KLYK6MMJ.js')).registerOrgCommand(o,t);}},m={run:async(o,t)=>{(await import('./run-PX7O3ILN.js')).registerRunCommand(o,t);},doctor:async(o,t)=>{(await import('./doctor-SKIWAKHW.js')).registerDoctorCommand(o,t);},tui:async(o,t)=>{(await import('./tui-24NBO5U6.js')).registerTuiCommand(o,t);},serve:async(o,t)=>{(await import('./serve-JOIPYKKG.js')).registerServeCommand(o,t);}},a=new Command;a.name("orchestry").description("Agents Organizations \u2014 CLI orchestrator for AI agents").version("1.0.
|
|
2
|
+
import {a as a$3,e}from'./chunk-3AXNSYCM.js';import {k as k$1}from'./chunk-ZMLF5HI5.js';import {a as a$1,b,i}from'./chunk-64WUDYEM.js';import {a as a$2,b as b$1}from'./chunk-IKNBPOQL.js';import R from'path';import {Command}from'commander';function l(o){let t=o.noColor||"NO_COLOR"in process.env||false,i=o.ascii||process.env.TERM==="dumb"||false;return {projectRoot:e(),json:o.json??false,quiet:o.quiet??false,noColor:t,ascii:i}}var d={task:async(o,t)=>{(await import('./task-2LI5CMI4.js')).registerTaskCommand(o,t);},agent:async(o,t)=>{(await import('./agent-TU6OC7ZT.js')).registerAgentCommand(o,t);},status:async(o,t)=>{(await import('./status-NYHZ7Q5G.js')).registerStatusCommand(o,t);},logs:async(o,t)=>{(await import('./logs-CU3NC24O.js')).registerLogsCommand(o,t);},config:async(o,t)=>{(await import('./config-OOB7QEKM.js')).registerConfigCommand(o,t);},context:async(o,t)=>{(await import('./context-FXRERFSP.js')).registerContextCommand(o,t);},msg:async(o,t)=>{(await import('./msg-4ELI7Q52.js')).registerMsgCommand(o,t);},goal:async(o,t)=>{(await import('./goal-RNNZYMNR.js')).registerGoalCommand(o,t);},team:async(o,t)=>{(await import('./team-VCJSUDWX.js')).registerTeamCommand(o,t);},org:async(o,t)=>{(await import('./org-KLYK6MMJ.js')).registerOrgCommand(o,t);}},m={run:async(o,t)=>{(await import('./run-PX7O3ILN.js')).registerRunCommand(o,t);},doctor:async(o,t)=>{(await import('./doctor-SKIWAKHW.js')).registerDoctorCommand(o,t);},tui:async(o,t)=>{(await import('./tui-24NBO5U6.js')).registerTuiCommand(o,t);},serve:async(o,t)=>{(await import('./serve-JOIPYKKG.js')).registerServeCommand(o,t);}},a=new Command;a.name("orchestry").description("Agents Organizations \u2014 CLI orchestrator for AI agents").version("1.0.17").option("--json","Output as JSON").option("--quiet","Minimal output (IDs only)").option("--no-color","Disable colors").option("--ascii","ASCII-only output (no Unicode)").hook("preAction",async o=>{let t=o.opts();t.ascii&&a$1(true),t.color===false&&b(true);});var x=[["task","Manage tasks"],["agent","Manage agents"],["status","Show orchestrator status"],["logs","View run logs"],["config","Manage configuration"],["context","Shared context store for inter-agent data exchange"],["msg","Inter-agent messaging"],["goal","Manage goals"],["team","Manage teams"],["org","Pre-built AI companies"],["run","Run tasks"],["doctor","Check adapters and dependencies"],["tui","Launch TUI dashboard"],["serve","Headless daemon mode with structured logs"],["init","Initialize project"],["update","Check for updates"]],L=new Set(x.map(([o])=>o));async function k(){a.parseOptions(process.argv);let o=a.opts(),t=process.argv.slice(2).find(e=>!e.startsWith("-")),i$1=t!==void 0&&L.has(t);if((process.argv.includes("--help")||process.argv.includes("-h")||process.argv.includes("--version")||process.argv.includes("-V"))&&!i$1){for(let[e,n]of x)a.command(e).description(n);await a.parseAsync(process.argv);return}if(t==="init"){let{registerInitCommand:e}=await import('./init-6OVZBN6B.js');e(a);}else if(t==="update"){let{registerUpdateCommand:e}=await import('./update-W54LAATS.js');e(a);}let g=process.argv.length<=2;if(g&&!await k$1(R.join(process.cwd(),a$3))){let{runInit:e}=await import('./init-6OVZBN6B.js');await e();let n=l({json:o.json,quiet:o.quiet,noColor:o.color===false,ascii:o.ascii}),{buildFullContainer:s}=await import('./container-RFWMXKD6.js'),p=await s(n);await m.tui(a,p),await a.parseAsync([...process.argv,"tui"]);return}let u=l({json:o.json,quiet:o.quiet,noColor:o.color===false,ascii:o.ascii}),j=!t||t in m,{buildFullContainer:A,buildLightContainer:M}=await import('./container-RFWMXKD6.js');try{if(j){let e=await A(u),n=t?m[t]:void 0;n?await n(a,e):await Promise.all(Object.values(m).map(p=>p(a,e)));let s=t?d[t]:void 0;s&&await s(a,e);}else {let e=await M(u),n=d[t];n?await n(a,e):await Promise.all(Object.values(d).map(s=>s(a,e)));}}catch(e){if(e instanceof b$1){if(t==="doctor"){let{registerDoctorCommand:n}=await import('./doctor-SKIWAKHW.js');n(a);}if(t==="init"||t==="doctor"||t==="update"){await a.parseAsync(process.argv);return}i(e.message,e.hint),process.exit(e.exitCode);}throw e}g&&process.argv.push("tui");let r,f=t==="tui"||t==="update"||t==="serve",S=f?Promise.resolve(null):import('./update-check-R5ABF6HE.js').then(e=>(r=e,e.checkForUpdateSWR(a.version()??"0.0.0")));if(await a.parseAsync(process.argv),!f){let e=await S;e&&r&&(r.printUpdateNotification(e),e.updateAvailable&&r.backgroundInstall(e.latest).catch(()=>{}));}}k().catch(o=>{o instanceof a$2&&(i(o.message,o.hint),process.exit(o.exitCode)),i(o instanceof Error?o.message:String(o)),process.env.ORCHESTRY_DEBUG&&console.error(o),process.exit(1);});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oxgeneral/orch",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.17",
|
|
4
4
|
"description": "AI agent runtime — orchestrate Claude, Cursor, Codex & OpenCode as one team. Multi-agent task automation with state machine, auto-retry, inter-agent messaging, goals and teams. Zero-config CLI + programmatic API.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"engines": {
|
package/skills/orch/SKILL.md
CHANGED
|
@@ -279,6 +279,29 @@ The assigned agent enters **autonomous mode**: it analyzes the codebase, creates
|
|
|
279
279
|
orch goal add "Reach 80% test coverage" --description "Run coverage, find gaps, write tests, repeat until ≥80%" --assignee <qa-agent>
|
|
280
280
|
```
|
|
281
281
|
|
|
282
|
+
### Choosing an assignee for a goal
|
|
283
|
+
|
|
284
|
+
A goal without `--assignee` stays unassigned and no agent picks it up automatically. **Always assign a goal to an agent.**
|
|
285
|
+
|
|
286
|
+
Before creating a goal, check available agents:
|
|
287
|
+
```bash
|
|
288
|
+
orch agent list
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
Pick the agent whose **role** best matches the goal:
|
|
292
|
+
- Code quality / testing → QA agent
|
|
293
|
+
- Architecture / refactoring → CTO / architect agent
|
|
294
|
+
- Documentation → CTO or dedicated docs agent
|
|
295
|
+
- Feature work → relevant domain agent (backend, frontend, etc.)
|
|
296
|
+
- Strategic / cross-cutting → CEO or lead agent
|
|
297
|
+
|
|
298
|
+
```bash
|
|
299
|
+
# Example: assign docs update to CTO
|
|
300
|
+
orch goal add "Update docs for v2" --description "..." --assignee agt_T0uF5KP
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
If no suitable agent exists, create one first via `orch agent add` or `orch agent shop`.
|
|
304
|
+
|
|
282
305
|
### Rule of thumb
|
|
283
306
|
- **1 agent, 1 action** → Task
|
|
284
307
|
- **Multiple agents, unclear steps** → Goal
|