@oxgeneral/orch 1.0.0 → 1.0.2
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/{App-GJVTVGRU.js → App-YQOT4LBE.js} +13 -3
- package/dist/{chunk-UIJYU3J7.js → chunk-INZ4O2RI.js} +2 -2
- package/dist/{chunk-UIJYU3J7.js.map → chunk-INZ4O2RI.js.map} +1 -1
- package/dist/{chunk-LV6GDBBI.js → chunk-ITLJKMTP.js} +1 -1
- package/dist/{chunk-GBXUNDKN.js → chunk-O2OQCSBL.js} +26 -11
- package/dist/chunk-O2OQCSBL.js.map +1 -0
- package/dist/cli.js +32 -18
- package/dist/{container-LUWGNBSS.js → container-IZZVO4AH.js} +4 -4
- package/dist/{doctor-XSGQSD57.js → doctor-SETNAS4S.js} +1 -1
- package/dist/{goal-FMYYN2FR.js → goal-C6YGSX5D.js} +5 -0
- package/dist/index.d.ts +0 -6
- package/dist/index.js +6 -6
- package/dist/index.js.map +1 -1
- package/dist/{init-JU343RXK.js → init-SWAAXP5H.js} +36 -2
- package/dist/{orchestrator-QNAD7MFH.js → orchestrator-O6MFMATT.js} +24 -9
- package/dist/orchestrator-X2CWGFCL.js +5 -0
- package/dist/{orchestrator-IYWBVA7J.js.map → orchestrator-X2CWGFCL.js.map} +1 -1
- package/dist/org-JSMMBZHI.js +249 -0
- package/dist/{task-3O2OFSP6.js → task-XNYZHPCS.js} +1 -1
- package/dist/{tui-LN5XHSQY.js → tui-JW3DOOKH.js} +1 -1
- package/dist/{workspace-manager-EVD67GCG.js → workspace-manager-2SFPKPLZ.js} +3 -3
- package/dist/{workspace-manager-EVD67GCG.js.map → workspace-manager-2SFPKPLZ.js.map} +1 -1
- package/dist/{workspace-manager-JM6U7JOH.js → workspace-manager-ESPU7WOH.js} +1 -1
- package/package.json +13 -10
- package/readme.md +207 -151
- package/dist/chunk-GBXUNDKN.js.map +0 -1
- package/dist/orchestrator-IYWBVA7J.js +0 -5
package/dist/cli.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { findProjectRoot } from './chunk-
|
|
2
|
+
import { pathExists, ORCHESTRY_DIR, findProjectRoot } from './chunk-ITLJKMTP.js';
|
|
3
3
|
import { setAsciiMode, setNoColor, printError } from './chunk-7X2GI5OV.js';
|
|
4
4
|
import { OrchestryError, NotInitializedError } from './chunk-2C2TFQ7K.js';
|
|
5
|
+
import path from 'path';
|
|
5
6
|
import { Command } from 'commander';
|
|
6
7
|
|
|
7
8
|
// src/cli/context.ts
|
|
@@ -20,7 +21,7 @@ function createContext(opts) {
|
|
|
20
21
|
// src/bin/cli.ts
|
|
21
22
|
var LIGHT_COMMANDS = {
|
|
22
23
|
task: async (p, c) => {
|
|
23
|
-
const m = await import('./task-
|
|
24
|
+
const m = await import('./task-XNYZHPCS.js');
|
|
24
25
|
m.registerTaskCommand(p, c);
|
|
25
26
|
},
|
|
26
27
|
agent: async (p, c) => {
|
|
@@ -48,12 +49,16 @@ var LIGHT_COMMANDS = {
|
|
|
48
49
|
m.registerMsgCommand(p, c);
|
|
49
50
|
},
|
|
50
51
|
goal: async (p, c) => {
|
|
51
|
-
const m = await import('./goal-
|
|
52
|
+
const m = await import('./goal-C6YGSX5D.js');
|
|
52
53
|
m.registerGoalCommand(p, c);
|
|
53
54
|
},
|
|
54
55
|
team: async (p, c) => {
|
|
55
56
|
const m = await import('./team-PFLP4PPL.js');
|
|
56
57
|
m.registerTeamCommand(p, c);
|
|
58
|
+
},
|
|
59
|
+
org: async (p, c) => {
|
|
60
|
+
const m = await import('./org-JSMMBZHI.js');
|
|
61
|
+
m.registerOrgCommand(p, c);
|
|
57
62
|
}
|
|
58
63
|
};
|
|
59
64
|
var FULL_COMMANDS = {
|
|
@@ -62,16 +67,16 @@ var FULL_COMMANDS = {
|
|
|
62
67
|
m.registerRunCommand(p, c);
|
|
63
68
|
},
|
|
64
69
|
doctor: async (p, c) => {
|
|
65
|
-
const m = await import('./doctor-
|
|
70
|
+
const m = await import('./doctor-SETNAS4S.js');
|
|
66
71
|
m.registerDoctorCommand(p, c);
|
|
67
72
|
},
|
|
68
73
|
tui: async (p, c) => {
|
|
69
|
-
const m = await import('./tui-
|
|
74
|
+
const m = await import('./tui-JW3DOOKH.js');
|
|
70
75
|
m.registerTuiCommand(p, c);
|
|
71
76
|
}
|
|
72
77
|
};
|
|
73
78
|
var program = new Command();
|
|
74
|
-
program.name("orchestry").description("Agents Organizations \u2014 CLI orchestrator for AI agents").version("1.0.
|
|
79
|
+
program.name("orchestry").description("Agents Organizations \u2014 CLI orchestrator for AI agents").version("1.0.2").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 (thisCommand) => {
|
|
75
80
|
const opts = thisCommand.opts();
|
|
76
81
|
if (opts.ascii) setAsciiMode(true);
|
|
77
82
|
if (opts.color === false) setNoColor(true);
|
|
@@ -86,6 +91,7 @@ var COMMAND_STUBS = [
|
|
|
86
91
|
["msg", "Inter-agent messaging"],
|
|
87
92
|
["goal", "Manage goals"],
|
|
88
93
|
["team", "Manage teams"],
|
|
94
|
+
["org", "Pre-built AI companies"],
|
|
89
95
|
["run", "Run tasks"],
|
|
90
96
|
["doctor", "Check adapters and dependencies"],
|
|
91
97
|
["tui", "Launch TUI dashboard"],
|
|
@@ -113,14 +119,30 @@ async function main() {
|
|
|
113
119
|
return;
|
|
114
120
|
}
|
|
115
121
|
if (sub === "init") {
|
|
116
|
-
const { registerInitCommand } = await import('./init-
|
|
122
|
+
const { registerInitCommand } = await import('./init-SWAAXP5H.js');
|
|
117
123
|
registerInitCommand(program);
|
|
118
124
|
} else if (sub === "update") {
|
|
119
125
|
const { registerUpdateCommand } = await import('./update-YLP7FPNY.js');
|
|
120
126
|
registerUpdateCommand(program);
|
|
121
127
|
}
|
|
128
|
+
const isBareOrch = process.argv.length <= 2;
|
|
129
|
+
if (isBareOrch && !await pathExists(path.join(process.cwd(), ORCHESTRY_DIR))) {
|
|
130
|
+
const { runInit } = await import('./init-SWAAXP5H.js');
|
|
131
|
+
await runInit();
|
|
132
|
+
const freshContext = createContext({
|
|
133
|
+
json: globalOpts.json,
|
|
134
|
+
quiet: globalOpts.quiet,
|
|
135
|
+
noColor: globalOpts.color === false,
|
|
136
|
+
ascii: globalOpts.ascii
|
|
137
|
+
});
|
|
138
|
+
const { buildFullContainer: buildFullContainer2 } = await import('./container-IZZVO4AH.js');
|
|
139
|
+
const freshContainer = await buildFullContainer2(freshContext);
|
|
140
|
+
await FULL_COMMANDS["tui"](program, freshContainer);
|
|
141
|
+
await program.parseAsync([...process.argv, "tui"]);
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
122
144
|
const needsFull = !sub || sub in FULL_COMMANDS;
|
|
123
|
-
const { buildFullContainer, buildLightContainer } = await import('./container-
|
|
145
|
+
const { buildFullContainer, buildLightContainer } = await import('./container-IZZVO4AH.js');
|
|
124
146
|
try {
|
|
125
147
|
if (needsFull) {
|
|
126
148
|
const container = await buildFullContainer(context);
|
|
@@ -150,17 +172,9 @@ async function main() {
|
|
|
150
172
|
} catch (err) {
|
|
151
173
|
if (err instanceof NotInitializedError) {
|
|
152
174
|
if (sub === "doctor") {
|
|
153
|
-
const { registerDoctorCommand } = await import('./doctor-
|
|
175
|
+
const { registerDoctorCommand } = await import('./doctor-SETNAS4S.js');
|
|
154
176
|
registerDoctorCommand(program);
|
|
155
177
|
}
|
|
156
|
-
if (process.argv.length <= 2) {
|
|
157
|
-
const { runInit } = await import('./init-JU343RXK.js');
|
|
158
|
-
await runInit();
|
|
159
|
-
const freshContainer = await buildFullContainer(context);
|
|
160
|
-
await FULL_COMMANDS["tui"](program, freshContainer);
|
|
161
|
-
await program.parseAsync([...process.argv, "tui"]);
|
|
162
|
-
return;
|
|
163
|
-
}
|
|
164
178
|
if (sub === "init" || sub === "doctor" || sub === "update") {
|
|
165
179
|
await program.parseAsync(process.argv);
|
|
166
180
|
return;
|
|
@@ -170,7 +184,7 @@ async function main() {
|
|
|
170
184
|
}
|
|
171
185
|
throw err;
|
|
172
186
|
}
|
|
173
|
-
if (
|
|
187
|
+
if (isBareOrch) {
|
|
174
188
|
process.argv.push("tui");
|
|
175
189
|
}
|
|
176
190
|
let updateMod;
|
|
@@ -3,7 +3,7 @@ import { DEFAULT_CONFIG } from './chunk-I3SMISEF.js';
|
|
|
3
3
|
import { isGoalTerminal, GOAL_STATUS_ORDER } from './chunk-HXYAZGLP.js';
|
|
4
4
|
import { canTransition, isTerminal } from './chunk-U2VDNUZL.js';
|
|
5
5
|
import { AUTONOMOUS_LABEL } from './chunk-PNE6LQRF.js';
|
|
6
|
-
import { Paths, readYaml, writeYaml, ensureDir, listFiles, writeJson, readJson, appendJsonl, readJsonl, readJsonlTail, pathExists } from './chunk-
|
|
6
|
+
import { Paths, readYaml, writeYaml, ensureDir, listFiles, writeJson, readJson, appendJsonl, readJsonl, readJsonlTail, pathExists } from './chunk-ITLJKMTP.js';
|
|
7
7
|
import { InvalidArgumentsError, TeamNotFoundError, GoalNotFoundError, AgentNotFoundError, TaskNotFoundError, InvalidTransitionError } from './chunk-2C2TFQ7K.js';
|
|
8
8
|
import fs7, { mkdir } from 'fs/promises';
|
|
9
9
|
import { createReadStream } from 'fs';
|
|
@@ -1062,7 +1062,7 @@ var RunService = class {
|
|
|
1062
1062
|
const error = failedRun.error ?? "Unknown error";
|
|
1063
1063
|
let output = "";
|
|
1064
1064
|
try {
|
|
1065
|
-
const events = await this.runStore.
|
|
1065
|
+
const events = await this.runStore.readEventsTail(failedRun.id, 50);
|
|
1066
1066
|
output = events.filter((e) => e.type === "agent_output" || e.type === "error").map((e) => typeof e.data === "string" ? e.data : JSON.stringify(e.data)).join("\n");
|
|
1067
1067
|
} catch {
|
|
1068
1068
|
}
|
|
@@ -1540,9 +1540,9 @@ async function buildFullContainer(context) {
|
|
|
1540
1540
|
import('./cursor-622RBRHH.js'),
|
|
1541
1541
|
import('./shell-DVFHHYAZ.js'),
|
|
1542
1542
|
import('./opencode-WOR53TSC.js'),
|
|
1543
|
-
import('./workspace-manager-
|
|
1543
|
+
import('./workspace-manager-ESPU7WOH.js'),
|
|
1544
1544
|
import('./template-engine-AWIS56BL.js'),
|
|
1545
|
-
import('./orchestrator-
|
|
1545
|
+
import('./orchestrator-O6MFMATT.js'),
|
|
1546
1546
|
import('./doctor-service-TPOMFAIG.js')
|
|
1547
1547
|
]);
|
|
1548
1548
|
const processManager = new ProcessManager();
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { DoctorService } from './chunk-K6DMQERQ.js';
|
|
3
|
-
import { Paths } from './chunk-
|
|
3
|
+
import { Paths } from './chunk-ITLJKMTP.js';
|
|
4
4
|
import { amber, getIcon, dim } from './chunk-7X2GI5OV.js';
|
|
5
5
|
import { AdapterRegistry } from './chunk-45K2XID7.js';
|
|
6
6
|
import { ClaudeAdapter } from './chunk-4IFIOMCW.js';
|
|
@@ -28,6 +28,11 @@ function registerGoalCommand(program, container) {
|
|
|
28
28
|
console.log(g.id);
|
|
29
29
|
} else {
|
|
30
30
|
printSuccess(`Created goal "${g.title}" (${g.id})`);
|
|
31
|
+
console.log();
|
|
32
|
+
console.log(` ${dim("Tips for better results:")}`);
|
|
33
|
+
console.log(` ${dim("\u2022")} Be specific: ${dim('"Implement OAuth2 with Google" > "Add auth"')}`);
|
|
34
|
+
console.log(` ${dim("\u2022")} Add ${dim("--description")} with success criteria and constraints`);
|
|
35
|
+
console.log(` ${dim("\u2022")} Use ${dim("--assignee")} to focus a specific agent on this goal`);
|
|
31
36
|
}
|
|
32
37
|
});
|
|
33
38
|
goal.command("list").alias("ls").description("List all goals").option("--status <status>", "Filter by status").action(async (opts) => {
|
package/dist/index.d.ts
CHANGED
|
@@ -704,12 +704,6 @@ interface ITeamStore {
|
|
|
704
704
|
delete(id: string): Promise<void>;
|
|
705
705
|
}
|
|
706
706
|
|
|
707
|
-
/**
|
|
708
|
-
* Path resolution for .orchestry/ directory.
|
|
709
|
-
*
|
|
710
|
-
* All path construction goes through this module.
|
|
711
|
-
* Validates initialization state and sanitizes identifiers.
|
|
712
|
-
*/
|
|
713
707
|
declare class Paths {
|
|
714
708
|
private readonly projectRoot;
|
|
715
709
|
constructor(projectRoot: string);
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { ensureDir, Paths, readYaml, writeYaml, listFiles, writeJson, readJson, appendJsonl, readJsonl, readJsonlTail, pathExists } from './chunk-
|
|
2
|
-
import { canTransition, isTerminal } from './chunk-
|
|
3
|
-
export { Orchestrator, canTransition, isBlocked, isDispatchable, isTerminal, resolveFailureStatus } from './chunk-
|
|
1
|
+
import { ensureDir, Paths, readYaml, writeYaml, listFiles, writeJson, readJson, appendJsonl, readJsonl, readJsonlTail, pathExists } from './chunk-INZ4O2RI.js';
|
|
2
|
+
import { canTransition, isTerminal } from './chunk-O2OQCSBL.js';
|
|
3
|
+
export { Orchestrator, canTransition, isBlocked, isDispatchable, isTerminal, resolveFailureStatus } from './chunk-O2OQCSBL.js';
|
|
4
4
|
import { AUTONOMOUS_LABEL } from './chunk-VG4465AG.js';
|
|
5
5
|
export { AdapterRegistry } from './chunk-6DWHQPTE.js';
|
|
6
6
|
export { createTokenUsage } from './chunk-XDVMX2FO.js';
|
|
@@ -551,7 +551,7 @@ var RunService = class {
|
|
|
551
551
|
const error = failedRun.error ?? "Unknown error";
|
|
552
552
|
let output = "";
|
|
553
553
|
try {
|
|
554
|
-
const events = await this.runStore.
|
|
554
|
+
const events = await this.runStore.readEventsTail(failedRun.id, 50);
|
|
555
555
|
output = events.filter((e) => e.type === "agent_output" || e.type === "error").map((e) => typeof e.data === "string" ? e.data : JSON.stringify(e.data)).join("\n");
|
|
556
556
|
} catch {
|
|
557
557
|
}
|
|
@@ -1771,9 +1771,9 @@ async function buildFullContainer(context) {
|
|
|
1771
1771
|
import('./cursor-3YHVD4NP.js'),
|
|
1772
1772
|
import('./shell-NJNW3O6K.js'),
|
|
1773
1773
|
import('./opencode-FAMPSA6X.js'),
|
|
1774
|
-
import('./workspace-manager-
|
|
1774
|
+
import('./workspace-manager-2SFPKPLZ.js'),
|
|
1775
1775
|
import('./template-engine-5ZKVJMYA.js'),
|
|
1776
|
-
import('./orchestrator-
|
|
1776
|
+
import('./orchestrator-X2CWGFCL.js'),
|
|
1777
1777
|
import('./doctor-service-F2SXDWHS.js')
|
|
1778
1778
|
]);
|
|
1779
1779
|
const processManager = new ProcessManager();
|