@jterrats/open-orchestra 0.5.1 → 0.5.3
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 +10 -1
- package/dist/cli.js.map +1 -1
- package/dist/command-manifest.js +4 -1
- package/dist/command-manifest.js.map +1 -1
- package/dist/commands.d.ts +2 -2
- package/dist/commands.js +8 -3
- package/dist/commands.js.map +1 -1
- package/dist/gemini-provider.d.ts +13 -0
- package/dist/gemini-provider.js +141 -0
- package/dist/gemini-provider.js.map +1 -0
- package/dist/lesson-assist.d.ts +19 -0
- package/dist/lesson-assist.js +70 -0
- package/dist/lesson-assist.js.map +1 -0
- package/dist/memory-status.d.ts +22 -0
- package/dist/memory-status.js +139 -0
- package/dist/memory-status.js.map +1 -0
- package/dist/model-providers.d.ts +2 -0
- package/dist/model-providers.js +8 -0
- package/dist/model-providers.js.map +1 -1
- package/dist/ollama-provider.d.ts +12 -0
- package/dist/ollama-provider.js +86 -0
- package/dist/ollama-provider.js.map +1 -0
- package/dist/planning-commands.d.ts +1 -0
- package/dist/planning-commands.js +9 -0
- package/dist/planning-commands.js.map +1 -1
- package/dist/prompt-registry-classifier.d.ts +3 -0
- package/dist/prompt-registry-classifier.js +83 -0
- package/dist/prompt-registry-classifier.js.map +1 -0
- package/dist/prompt-registry-update.d.ts +21 -0
- package/dist/prompt-registry-update.js +128 -0
- package/dist/prompt-registry-update.js.map +1 -0
- package/dist/prompt-registry-validation.d.ts +12 -0
- package/dist/prompt-registry-validation.js +104 -0
- package/dist/prompt-registry-validation.js.map +1 -0
- package/dist/prompt-registry.d.ts +1 -0
- package/dist/prompt-registry.js +2 -2
- package/dist/prompt-registry.js.map +1 -1
- package/dist/runtime-execution-adapters.js +16 -0
- package/dist/runtime-execution-adapters.js.map +1 -1
- package/dist/skills-commands.d.ts +2 -0
- package/dist/skills-commands.js +45 -1
- package/dist/skills-commands.js.map +1 -1
- package/dist/skills-memory.d.ts +6 -0
- package/dist/skills-memory.js +16 -0
- package/dist/skills-memory.js.map +1 -1
- package/dist/skills.d.ts +1 -1
- package/dist/skills.js +1 -1
- package/dist/skills.js.map +1 -1
- package/dist/types/runtime.d.ts +1 -1
- package/dist/workspace-artifacts.d.ts +6 -0
- package/dist/workspace-artifacts.js +31 -0
- package/dist/workspace-artifacts.js.map +1 -0
- package/dist/workspace-validator.d.ts +4 -1
- package/dist/workspace-validator.js +8 -20
- package/dist/workspace-validator.js.map +1 -1
- package/docs/runtime-llm-flow.md +18 -4
- package/package.json +1 -1
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import { FILES, WORKFLOW_DIR } from "./constants.js";
|
|
3
|
+
import { exists } from "./fs-utils.js";
|
|
4
|
+
import { PROMPT_REGISTRY_DIR } from "./prompt-registry.js";
|
|
5
|
+
export async function validateEventArtifacts(root, event, line) {
|
|
6
|
+
const issues = [];
|
|
7
|
+
for (const artifact of event.artifacts ?? []) {
|
|
8
|
+
if (!(await isValidArtifact(root, artifact))) {
|
|
9
|
+
issues.push({
|
|
10
|
+
artifact,
|
|
11
|
+
message: `events.jsonl:${line}: artifact does not exist: ${artifact}`,
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
return issues;
|
|
16
|
+
}
|
|
17
|
+
async function isValidArtifact(root, artifact) {
|
|
18
|
+
return (isAllowedArtifact(artifact) && (await exists(path.join(root, artifact))));
|
|
19
|
+
}
|
|
20
|
+
function isAllowedArtifact(artifact) {
|
|
21
|
+
return (artifact === WORKFLOW_DIR ||
|
|
22
|
+
artifact.startsWith(`${WORKFLOW_DIR}/`) ||
|
|
23
|
+
artifact === PROMPT_REGISTRY_DIR ||
|
|
24
|
+
artifact.startsWith(`${PROMPT_REGISTRY_DIR}/`) ||
|
|
25
|
+
artifact === "CHANGELOG.md" ||
|
|
26
|
+
artifact === "README.md" ||
|
|
27
|
+
artifact === "package.json" ||
|
|
28
|
+
artifact === FILES.config ||
|
|
29
|
+
artifact.startsWith("docs/"));
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=workspace-artifacts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspace-artifacts.js","sourceRoot":"","sources":["../src/workspace-artifacts.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAQ3D,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,IAAY,EACZ,KAAiB,EACjB,IAAY;IAEZ,MAAM,MAAM,GAA8B,EAAE,CAAC;IAC7C,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,SAAS,IAAI,EAAE,EAAE,CAAC;QAC7C,IAAI,CAAC,CAAC,MAAM,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC;YAC7C,MAAM,CAAC,IAAI,CAAC;gBACV,QAAQ;gBACR,OAAO,EAAE,gBAAgB,IAAI,8BAA8B,QAAQ,EAAE;aACtE,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,eAAe,CAC5B,IAAY,EACZ,QAAgB;IAEhB,OAAO,CACL,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CACzE,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,QAAgB;IACzC,OAAO,CACL,QAAQ,KAAK,YAAY;QACzB,QAAQ,CAAC,UAAU,CAAC,GAAG,YAAY,GAAG,CAAC;QACvC,QAAQ,KAAK,mBAAmB;QAChC,QAAQ,CAAC,UAAU,CAAC,GAAG,mBAAmB,GAAG,CAAC;QAC9C,QAAQ,KAAK,cAAc;QAC3B,QAAQ,KAAK,WAAW;QACxB,QAAQ,KAAK,cAAc;QAC3B,QAAQ,KAAK,KAAK,CAAC,MAAM;QACzB,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAC7B,CAAC;AACJ,CAAC"}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
|
+
import { validatePromptRegistryCoverage } from "./prompt-registry-validation.js";
|
|
1
2
|
export interface WorkspaceValidationReport {
|
|
2
3
|
valid: boolean;
|
|
3
4
|
errors: string[];
|
|
4
5
|
warnings: string[];
|
|
5
6
|
}
|
|
6
|
-
export declare function validateWorkspace(root?: string
|
|
7
|
+
export declare function validateWorkspace(root?: string, options?: {
|
|
8
|
+
promptRegistry?: Parameters<typeof validatePromptRegistryCoverage>[1];
|
|
9
|
+
}): Promise<WorkspaceValidationReport>;
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { readFile } from "node:fs/promises";
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
import { DIRECTORIES, EVENT_TYPES, FILES, WORKFLOW_DIR } from "./constants.js";
|
|
4
|
-
import {
|
|
4
|
+
import { validatePromptRegistryCoverage } from "./prompt-registry-validation.js";
|
|
5
5
|
import { exists, readJson, resolveWorkflowPath } from "./fs-utils.js";
|
|
6
|
+
import { validateEventArtifacts } from "./workspace-artifacts.js";
|
|
6
7
|
import { taskIdsFor, validateLocks, validateRoles, validateTasks, } from "./validation.js";
|
|
7
|
-
export async function validateWorkspace(root = process.cwd()) {
|
|
8
|
+
export async function validateWorkspace(root = process.cwd(), options = {}) {
|
|
8
9
|
const issues = [];
|
|
9
10
|
const base = path.join(root, WORKFLOW_DIR);
|
|
10
11
|
if (!(await exists(base))) {
|
|
@@ -20,6 +21,9 @@ export async function validateWorkspace(root = process.cwd()) {
|
|
|
20
21
|
await validateLockFile(root, taskIds, roleIds, issues);
|
|
21
22
|
await validateConfigFile(root, issues);
|
|
22
23
|
await validateEventLog(root, issues);
|
|
24
|
+
for (const issue of await validatePromptRegistryCoverage(root, options.promptRegistry ?? {})) {
|
|
25
|
+
issues.push({ severity: issue.severity, message: issue.message });
|
|
26
|
+
}
|
|
23
27
|
const errors = issues
|
|
24
28
|
.filter((issue) => issue.severity === "error")
|
|
25
29
|
.map((issue) => issue.message);
|
|
@@ -173,24 +177,8 @@ function validateEventShape(event, line, issues) {
|
|
|
173
177
|
}
|
|
174
178
|
}
|
|
175
179
|
async function validateArtifacts(root, event, line, issues) {
|
|
176
|
-
for (const
|
|
177
|
-
|
|
178
|
-
const isWorkflowArtifact = artifact === WORKFLOW_DIR || artifact.startsWith(`${WORKFLOW_DIR}/`);
|
|
179
|
-
const isPromptRegistryArtifact = artifact === PROMPT_REGISTRY_DIR ||
|
|
180
|
-
artifact.startsWith(`${PROMPT_REGISTRY_DIR}/`);
|
|
181
|
-
const isVersionedProjectArtifact = artifact === "CHANGELOG.md" ||
|
|
182
|
-
artifact === "README.md" ||
|
|
183
|
-
artifact === "package.json" ||
|
|
184
|
-
artifact.startsWith("docs/");
|
|
185
|
-
if ((!isWorkflowArtifact &&
|
|
186
|
-
!isPromptRegistryArtifact &&
|
|
187
|
-
!isVersionedProjectArtifact) ||
|
|
188
|
-
!(await exists(artifactPath))) {
|
|
189
|
-
issues.push({
|
|
190
|
-
severity: "error",
|
|
191
|
-
message: `events.jsonl:${line}: artifact does not exist: ${artifact}`,
|
|
192
|
-
});
|
|
193
|
-
}
|
|
180
|
+
for (const issue of await validateEventArtifacts(root, event, line)) {
|
|
181
|
+
issues.push({ severity: "error", message: issue.message });
|
|
194
182
|
}
|
|
195
183
|
}
|
|
196
184
|
function errorMessage(error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-validator.js","sourceRoot":"","sources":["../src/workspace-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC/E,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"workspace-validator.js","sourceRoot":"","sources":["../src/workspace-validator.ts"],"names":[],"mappings":"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"}
|
package/docs/runtime-llm-flow.md
CHANGED
|
@@ -92,15 +92,17 @@ workflow execution only when the workflow config has approved routing.
|
|
|
92
92
|
Model routing controls which provider/model each role uses during autonomous
|
|
93
93
|
workflow phases. The default `none` provider keeps the deterministic workflow
|
|
94
94
|
behavior. Configure a role or default route to `fake` for local structured
|
|
95
|
-
execution tests,
|
|
96
|
-
|
|
97
|
-
|
|
95
|
+
execution tests, `openai` for the OpenAI Responses API, `anthropic` for the
|
|
96
|
+
Anthropic Messages API, `gemini` for the Gemini `generateContent` API, or
|
|
97
|
+
`ollama` for a local OpenAI-compatible Ollama endpoint.
|
|
98
98
|
|
|
99
99
|
```bash
|
|
100
100
|
orchestra model providers --json
|
|
101
101
|
orchestra model set-role --role qa --provider fake --model fake-model
|
|
102
102
|
OPENAI_API_KEY=... orchestra model set-role --role architect --provider openai --model gpt-5.2
|
|
103
103
|
ANTHROPIC_API_KEY=... orchestra model set-role --role qa --provider anthropic --model claude-sonnet-4-20250514
|
|
104
|
+
GEMINI_API_KEY=... orchestra model set-role --role product_manager --provider gemini --model gemini-2.5-pro
|
|
105
|
+
orchestra model set-role --role developer --provider ollama --model llama3.2
|
|
104
106
|
orchestra model provenance list --json
|
|
105
107
|
orchestra budget check --json
|
|
106
108
|
orchestra workflow run --task STORY-001 --gates phase
|
|
@@ -117,12 +119,23 @@ optionally `ANTHROPIC_BASE_URL` for an HTTPS-compatible endpoint. It uses
|
|
|
117
119
|
Claude Messages API responses are normalized through text content rather than
|
|
118
120
|
OpenAI-style JSON schema response formatting.
|
|
119
121
|
|
|
122
|
+
The Gemini adapter reads `GEMINI_API_KEY` or `GOOGLE_API_KEY` from the
|
|
123
|
+
environment. For local secret files, set `GEMINI_API_KEY_FILE` or
|
|
124
|
+
`GOOGLE_API_KEY_FILE` to an absolute path containing only the key value. The
|
|
125
|
+
adapter also reads optional `GEMINI_BASE_URL`; the base URL must be HTTPS and
|
|
126
|
+
defaults to `https://generativelanguage.googleapis.com`.
|
|
127
|
+
|
|
128
|
+
The Ollama adapter defaults to `http://localhost:11434/v1` and uses the
|
|
129
|
+
OpenAI-compatible `/chat/completions` endpoint. Set `OLLAMA_BASE_URL` for a
|
|
130
|
+
custom local or remote endpoint and `OLLAMA_API_KEY` when the endpoint requires
|
|
131
|
+
one.
|
|
132
|
+
|
|
120
133
|
## Runtime Execution
|
|
121
134
|
|
|
122
135
|
Runtime execution is separate from model provider routing. `ModelProvider`
|
|
123
136
|
adapters call vendor APIs directly and therefore require provider API keys.
|
|
124
137
|
Runtime execution adapters prepare work for an already-authenticated runtime
|
|
125
|
-
such as Claude CLI, Codex CLI, Cursor, VS Code, or Windsurf.
|
|
138
|
+
such as Claude CLI, Codex CLI, OpenCode CLI, Cursor, VS Code, or Windsurf.
|
|
126
139
|
|
|
127
140
|
Use runtime execution when the user wants the active CLI/IDE agent to perform
|
|
128
141
|
the work and does not want Orchestra to call OpenAI, Anthropic, or another
|
|
@@ -131,6 +144,7 @@ vendor API directly:
|
|
|
131
144
|
```bash
|
|
132
145
|
orchestra runtime adapters --json
|
|
133
146
|
orchestra runtime brief --task STORY-001 --runtime claude-cli
|
|
147
|
+
orchestra runtime brief --task STORY-001 --runtime opencode-cli
|
|
134
148
|
orchestra runtime delegate-plan --task STORY-001 --runtime claude-cli --roles architect,developer,qa
|
|
135
149
|
orchestra runtime handoff --task STORY-001 --runtime claude-cli --artifact .agent-workflow/runs/STORY-001-runtime-claude-cli-delegation.md
|
|
136
150
|
```
|