@oeronteros-1/opencode-orchestra 1.0.22 → 1.0.24

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.
Files changed (67) hide show
  1. package/README.md +19 -5
  2. package/dashboard-dist/assets/index-Dc5lp8wX.js +124 -0
  3. package/dashboard-dist/index.html +1 -1
  4. package/dist/agents/build.js +4 -0
  5. package/dist/agents/build.js.map +1 -1
  6. package/dist/agents/editor.d.ts +3 -0
  7. package/dist/agents/editor.js +12 -0
  8. package/dist/agents/editor.js.map +1 -0
  9. package/dist/agents/integrator.d.ts +3 -0
  10. package/dist/agents/integrator.js +12 -0
  11. package/dist/agents/integrator.js.map +1 -0
  12. package/dist/agents/lead.js +3 -1
  13. package/dist/agents/lead.js.map +1 -1
  14. package/dist/agents/workers.js +1 -6
  15. package/dist/agents/workers.js.map +1 -1
  16. package/dist/cache-refresh.d.ts +42 -0
  17. package/dist/cache-refresh.js +130 -0
  18. package/dist/cache-refresh.js.map +1 -0
  19. package/dist/cli.d.ts +16 -2
  20. package/dist/cli.js +59 -26
  21. package/dist/cli.js.map +1 -1
  22. package/dist/config/schema.d.ts +11 -1
  23. package/dist/config/schema.js +30 -1
  24. package/dist/config/schema.js.map +1 -1
  25. package/dist/dashboard/server.js +2 -2
  26. package/dist/dashboard/server.js.map +1 -1
  27. package/dist/index.js +35 -12
  28. package/dist/index.js.map +1 -1
  29. package/dist/orchestration/ownership.d.ts +7 -0
  30. package/dist/orchestration/ownership.js +45 -0
  31. package/dist/orchestration/ownership.js.map +1 -0
  32. package/dist/orchestration/worktree-adapter.d.ts +3 -0
  33. package/dist/orchestration/worktree-adapter.js +45 -0
  34. package/dist/orchestration/worktree-adapter.js.map +1 -0
  35. package/dist/orchestration/worktrees.d.ts +22 -0
  36. package/dist/orchestration/worktrees.js +27 -0
  37. package/dist/orchestration/worktrees.js.map +1 -0
  38. package/dist/pricing/cost.d.ts +29 -0
  39. package/dist/pricing/cost.js +47 -0
  40. package/dist/pricing/cost.js.map +1 -0
  41. package/dist/pricing/model-match.d.ts +59 -0
  42. package/dist/pricing/model-match.js +134 -0
  43. package/dist/pricing/model-match.js.map +1 -0
  44. package/dist/pricing/openrouter.d.ts +60 -0
  45. package/dist/pricing/openrouter.js +150 -0
  46. package/dist/pricing/openrouter.js.map +1 -0
  47. package/dist/pricing/resolver.d.ts +50 -0
  48. package/dist/pricing/resolver.js +145 -0
  49. package/dist/pricing/resolver.js.map +1 -0
  50. package/dist/prompts/load.js +1 -1
  51. package/dist/prompts/load.js.map +1 -1
  52. package/dist/routing/planner.d.ts +14 -1
  53. package/dist/routing/planner.js +23 -1
  54. package/dist/routing/planner.js.map +1 -1
  55. package/dist/routing/pricing/estimate.d.ts +14 -1
  56. package/dist/routing/pricing/estimate.js +81 -20
  57. package/dist/routing/pricing/estimate.js.map +1 -1
  58. package/dist/telemetry/ledger.d.ts +6 -1
  59. package/dist/telemetry/ledger.js +15 -3
  60. package/dist/telemetry/ledger.js.map +1 -1
  61. package/dist/tools.d.ts +3 -0
  62. package/dist/tools.js +44 -1
  63. package/dist/tools.js.map +1 -1
  64. package/package.json +16 -2
  65. package/prompts/lead.md +1 -0
  66. package/schema/opencode-orchestra.schema.json +23 -1
  67. package/dashboard-dist/assets/index-BZTn_d2K.js +0 -124
@@ -1,5 +1,6 @@
1
- import { normalizeCandidate, resolveModel } from "../model-resolver.js";
2
- import { lookupPrice, combinedPrice } from "./prices.js";
1
+ import { resolveModel } from "../model-resolver.js";
2
+ import { combinedPrice, lookupPrice } from "./prices.js";
3
+ import { resolvePricing } from "../../pricing/resolver.js";
3
4
  export const DEFAULT_TOKEN_ESTIMATES = {
4
5
  workerTokens: 4_000,
5
6
  leadTokens: 6_000,
@@ -13,7 +14,12 @@ function costOfTokens(price, tokens) {
13
14
  const input = tokens * 0.75;
14
15
  return (input * price.input + output * price.output) / 1_000_000;
15
16
  }
16
- function resolvePoolPriceId(pool, budget, capability, snapshot) {
17
+ /**
18
+ * Resolve the pool's chosen model for a budget/capability, then resolve its
19
+ * pricing through the full ladder (config declarations -> explicit price ->
20
+ * aliases -> provider snapshot -> OpenRouter fallback).
21
+ */
22
+ async function resolvePoolPricing(pool, budget, capability, config) {
17
23
  const resolved = resolveModel({
18
24
  pool,
19
25
  capability,
@@ -28,28 +34,78 @@ function resolvePoolPriceId(pool, budget, capability, snapshot) {
28
34
  });
29
35
  if (!resolved)
30
36
  return {};
31
- const configuredPrice = resolved.priceInput !== undefined && resolved.priceOutput !== undefined
32
- ? { input: resolved.priceInput, output: resolved.priceOutput }
33
- : undefined;
34
- const price = configuredPrice ?? lookupPrice(snapshot, resolved.id);
35
- // Only paid models carry a dollar estimate; free/subscription resolve to 0.
36
- const resolvedPrice = resolved.cost === "paid" ? price : undefined;
37
- return { id: resolved.id, ...(resolvedPrice ? { price: resolvedPrice } : {}) };
37
+ const input = {
38
+ id: resolved.id,
39
+ declaredCost: resolved.cost,
40
+ ...(resolved.priceInput !== undefined && resolved.priceOutput !== undefined
41
+ ? { explicitPrice: { input: resolved.priceInput, output: resolved.priceOutput } }
42
+ : {}),
43
+ };
44
+ const resolution = await resolvePricing(input, config);
45
+ return { id: resolved.id, resolution };
38
46
  }
39
- export function estimateCost(input) {
47
+ export async function estimateCost(input) {
40
48
  const tokens = input.tokens ?? DEFAULT_TOKEN_ESTIMATES;
41
- const lead = resolvePoolPriceId(input.leadPool, input.budget, "reasoning", input.snapshot);
42
- const judge = resolvePoolPriceId(input.judgePool, input.budget, "review", input.snapshot);
43
- const workersCost = input.plan.nodes.reduce((sum, node) => {
49
+ const config = {
50
+ snapshot: input.snapshot,
51
+ ...(input.aliases?.length ? { aliases: input.aliases } : {}),
52
+ ...(input.openRouter ? { openRouter: input.openRouter } : {}),
53
+ };
54
+ const lead = await resolvePoolPricing(input.leadPool, input.budget, "reasoning", config);
55
+ const judge = await resolvePoolPricing(input.judgePool, input.budget, "review", config);
56
+ let workersCost = 0;
57
+ let paidCalls = 0;
58
+ let freeCalls = 0;
59
+ let subscriptionCalls = 0;
60
+ let unknownCalls = 0;
61
+ for (const node of input.plan.nodes) {
44
62
  const poolKey = input.workerPoolOf(node.worker);
45
63
  const pool = input.workerPools[poolKey] ?? [];
46
64
  const capability = input.workerCapabilityOf?.(node.worker)
47
65
  ?? (poolKey === "image" ? "image" : poolKey === "vision" ? "vision" : poolKey === "research" ? "research" : poolKey === "reasoning" ? "reasoning" : "code");
48
- const { price } = resolvePoolPriceId(pool, input.budget, capability, input.snapshot);
49
- return sum + costOfTokens(price, tokens.workerTokens);
50
- }, 0);
51
- const leadCost = costOfTokens(lead.price, tokens.leadTokens);
52
- const judgeCost = costOfTokens(judge.price, tokens.judgeTokens);
66
+ const { resolution } = await resolvePoolPricing(pool, input.budget, capability, config);
67
+ if (!resolution)
68
+ continue;
69
+ if (resolution.status === "paid") {
70
+ workersCost += costOfTokens({ input: resolution.input ?? 0, output: resolution.output ?? 0 }, tokens.workerTokens);
71
+ paidCalls += 1;
72
+ }
73
+ else if (resolution.status === "free") {
74
+ freeCalls += 1;
75
+ }
76
+ else if (resolution.status === "subscription") {
77
+ subscriptionCalls += 1;
78
+ }
79
+ else {
80
+ unknownCalls += 1;
81
+ }
82
+ }
83
+ const leadCost = lead.resolution?.status === "paid"
84
+ ? costOfTokens({ input: lead.resolution.input ?? 0, output: lead.resolution.output ?? 0 }, tokens.leadTokens)
85
+ : 0;
86
+ const judgeCost = judge.resolution?.status === "paid"
87
+ ? costOfTokens({ input: judge.resolution.input ?? 0, output: judge.resolution.output ?? 0 }, tokens.judgeTokens)
88
+ : 0;
89
+ if (lead.resolution) {
90
+ if (lead.resolution.status === "paid")
91
+ paidCalls += 1;
92
+ else if (lead.resolution.status === "free")
93
+ freeCalls += 1;
94
+ else if (lead.resolution.status === "subscription")
95
+ subscriptionCalls += 1;
96
+ else
97
+ unknownCalls += 1;
98
+ }
99
+ if (judge.resolution) {
100
+ if (judge.resolution.status === "paid")
101
+ paidCalls += 1;
102
+ else if (judge.resolution.status === "free")
103
+ freeCalls += 1;
104
+ else if (judge.resolution.status === "subscription")
105
+ subscriptionCalls += 1;
106
+ else
107
+ unknownCalls += 1;
108
+ }
53
109
  const subtotal = workersCost + leadCost + judgeCost;
54
110
  const total = subtotal * 1.2;
55
111
  const breakdown = {
@@ -59,12 +115,17 @@ export function estimateCost(input) {
59
115
  judgeCost,
60
116
  subtotal,
61
117
  total,
118
+ unknownCalls,
119
+ freeCalls,
120
+ subscriptionCalls,
121
+ paidCalls,
62
122
  };
123
+ const unknownNote = unknownCalls > 0 ? `, ${unknownCalls} call(s) with unknown price excluded` : "";
63
124
  return {
64
125
  budget: input.budget,
65
126
  total,
66
127
  breakdown,
67
- summary: `This task in ${input.budget} mode will cost roughly $${total.toFixed(2)} (${breakdown.workers} worker calls, lead, ${judge.price ? "plus judge" : "no judge"} arbitration).`,
128
+ summary: `This task in ${input.budget} mode will cost roughly $${total.toFixed(2)} (${breakdown.workers} worker calls, lead, ${judge.resolution?.status === "paid" ? "plus judge" : "no judge"} arbitration${unknownNote}).`,
68
129
  };
69
130
  }
70
131
  /** Compare an estimate against a warning threshold; returns a pre-run message. */
@@ -1 +1 @@
1
- {"version":3,"file":"estimate.js","sourceRoot":"","sources":["../../../src/routing/pricing/estimate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"estimate.js","sourceRoot":"","sources":["../../../src/routing/pricing/estimate.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import type { ModelCandidateInput, ProfileName } from "../config/schema.js";
2
+ import type { PricingStatus } from "../pricing/cost.js";
2
3
  export interface TokenUsage {
3
4
  input: number;
4
5
  output: number;
@@ -17,6 +18,8 @@ export interface MessageUsage {
17
18
  completedAt?: number;
18
19
  finish?: string;
19
20
  tokens: TokenUsage;
21
+ /** How pricing was classified at record time (unknown = no rate found). */
22
+ pricingStatus?: PricingStatus;
20
23
  /** Opt-in debug text: only recorded when telemetry.storeTexts is enabled. */
21
24
  prompt?: string;
22
25
  reply?: string;
@@ -27,6 +30,7 @@ export interface SessionLedger {
27
30
  premiumEscalations: number;
28
31
  estimatedPaidUsage: number;
29
32
  freeWorkerCalls: number;
33
+ unknownPriceCalls: number;
30
34
  consensus?: number;
31
35
  messages: Record<string, MessageUsage>;
32
36
  }
@@ -57,9 +61,10 @@ export declare class Ledger {
57
61
  readonly stateFile: string;
58
62
  private readonly storeTexts;
59
63
  private readonly modelCosts;
64
+ private readonly pricingStatusOf;
60
65
  private state?;
61
66
  private queue;
62
- constructor(directory: string, telemetryDirectory: string, enabled: boolean, pools: ModelCandidateInput[][], storeTexts?: boolean);
67
+ constructor(directory: string, telemetryDirectory: string, enabled: boolean, pools: ModelCandidateInput[][], storeTexts?: boolean, pricingStatusOf?: (providerID: string | undefined, modelID: string | undefined) => PricingStatus | undefined);
63
68
  private load;
64
69
  private save;
65
70
  private mutate;
@@ -7,6 +7,7 @@ function emptySession() {
7
7
  premiumEscalations: 0,
8
8
  estimatedPaidUsage: 0,
9
9
  freeWorkerCalls: 0,
10
+ unknownPriceCalls: 0,
10
11
  messages: {},
11
12
  };
12
13
  }
@@ -37,6 +38,7 @@ function upgradeState(input) {
37
38
  session.premiumEscalations ??= 0;
38
39
  session.estimatedPaidUsage ??= 0;
39
40
  session.freeWorkerCalls ??= 0;
41
+ session.unknownPriceCalls ??= 0;
40
42
  for (const [id, message] of Object.entries(session.messages)) {
41
43
  session.messages[id] = {
42
44
  ...message,
@@ -64,11 +66,13 @@ export class Ledger {
64
66
  stateFile;
65
67
  storeTexts;
66
68
  modelCosts;
69
+ pricingStatusOf;
67
70
  state;
68
71
  queue = Promise.resolve();
69
- constructor(directory, telemetryDirectory, enabled, pools, storeTexts = false) {
72
+ constructor(directory, telemetryDirectory, enabled, pools, storeTexts = false, pricingStatusOf) {
70
73
  this.enabled = enabled;
71
74
  this.storeTexts = storeTexts;
75
+ this.pricingStatusOf = pricingStatusOf;
72
76
  this.stateFile = path.resolve(directory, telemetryDirectory, "state.json");
73
77
  this.modelCosts = new Map(pools.flat().map((candidate) => {
74
78
  const normalized = normalizeCandidate(candidate);
@@ -127,6 +131,8 @@ export class Ledger {
127
131
  }
128
132
  async recordAssistant(info) {
129
133
  const agent = info.mode ?? "default";
134
+ const model = info.providerID && info.modelID ? `${info.providerID}/${info.modelID}` : undefined;
135
+ const pricingStatus = this.pricingStatusOf?.(info.providerID, info.modelID);
130
136
  await this.mutate((state) => {
131
137
  const session = (state.sessions[info.sessionID] ??= emptySession());
132
138
  const previous = session.messages[info.id];
@@ -137,8 +143,12 @@ export class Ledger {
137
143
  session.agents[agent] = (session.agents[agent] ?? 0) + 1;
138
144
  if (agent === "orch-judge")
139
145
  session.premiumEscalations += 1;
140
- const model = info.providerID && info.modelID ? `${info.providerID}/${info.modelID}` : undefined;
141
- if (agent.startsWith("orch-") && agent !== "orch-lead" && agent !== "orch-judge" && model && this.modelCosts.get(model) === "free") {
146
+ const declared = model ? this.modelCosts.get(model) : undefined;
147
+ if (pricingStatus === "unknown") {
148
+ session.unknownPriceCalls += 1;
149
+ }
150
+ if (agent.startsWith("orch-") && agent !== "orch-lead" && agent !== "orch-judge" && model
151
+ && (declared === "free" || (declared === undefined && pricingStatus === "free"))) {
142
152
  session.freeWorkerCalls += 1;
143
153
  }
144
154
  }
@@ -151,6 +161,7 @@ export class Ledger {
151
161
  ...(info.time?.completed ? { completedAt: info.time.completed } : {}),
152
162
  ...(info.finish ? { finish: info.finish } : {}),
153
163
  tokens: normalizeTokens(info.tokens),
164
+ ...(pricingStatus ? { pricingStatus } : {}),
154
165
  ...(previous?.prompt !== undefined ? { prompt: previous.prompt } : {}),
155
166
  ...(previous?.reply !== undefined ? { reply: previous.reply } : {}),
156
167
  };
@@ -198,6 +209,7 @@ export class Ledger {
198
209
  `premium escalations: ${session.premiumEscalations}`,
199
210
  `estimated paid usage: $${session.estimatedPaidUsage.toFixed(4)}`,
200
211
  `free worker calls: ${session.freeWorkerCalls}`,
212
+ `unknown price calls: ${session.unknownPriceCalls}`,
201
213
  `consensus: ${session.consensus === undefined ? "not recorded" : `${Math.round(session.consensus * 100)}%`}`,
202
214
  ].join("\n");
203
215
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ledger.js","sourceRoot":"","sources":["../../src/telemetry/ledger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ledger.js","sourceRoot":"","sources":["../../src/telemetry/ledger.ts"],"names":[],"mappings":"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"}
package/dist/tools.d.ts CHANGED
@@ -1,9 +1,12 @@
1
1
  import { type ToolDefinition } from "@opencode-ai/plugin";
2
2
  import type { OrchestraConfig } from "./config/schema.js";
3
3
  import type { PriceSnapshot } from "./routing/pricing/prices.js";
4
+ import type { ModelAliasEntry, OpenRouterSource } from "./pricing/resolver.js";
4
5
  import type { Ledger } from "./telemetry/ledger.js";
5
6
  import { type PluginStatus } from "./plugin-status.js";
6
7
  export interface PricingContext {
7
8
  snapshot: PriceSnapshot;
9
+ aliases?: ModelAliasEntry[];
10
+ openRouter?: OpenRouterSource;
8
11
  }
9
12
  export declare function createOrchestraTools(config: OrchestraConfig, ledger: Ledger, pluginStatus?: PluginStatus, pricing?: PricingContext): Record<string, ToolDefinition>;
package/dist/tools.js CHANGED
@@ -5,6 +5,8 @@ import { classifyTask } from "./routing/classifier.js";
5
5
  import { createClassifierCache } from "./routing/classifier-cache.js";
6
6
  import { decideEscalation } from "./routing/escalation.js";
7
7
  import { planTask } from "./routing/planner.js";
8
+ import { validateOwnership, validateChangedFiles } from "./orchestration/ownership.js";
9
+ import { assertCommitDescendsFromBase, collectCommitChanges, systemGit } from "./orchestration/worktrees.js";
8
10
  import { createBudgetGuard, paidBudgetFor } from "./routing/budget-guard.js";
9
11
  import { estimateCost, formatEstimateWarning } from "./routing/pricing/estimate.js";
10
12
  import { workerCapability, workerPoolKey } from "./agents/workers.js";
@@ -12,6 +14,45 @@ import { formatPluginStatus } from "./plugin-status.js";
12
14
  const classificationCache = createClassifierCache();
13
15
  export function createOrchestraTools(config, ledger, pluginStatus, pricing) {
14
16
  return {
17
+ orchestration_prepare_edit_plan: tool({
18
+ description: "Validate explicit non-overlapping ownership partitions and prepare an isolated editor DAG.",
19
+ args: {
20
+ task: tool.schema.string().min(1),
21
+ profile: tool.schema.string().optional(),
22
+ partitions: tool.schema.array(tool.schema.object({ id: tool.schema.string().min(1), description: tool.schema.string().min(1), ownership: tool.schema.array(tool.schema.string().min(1)).min(1) })).min(1),
23
+ },
24
+ async execute(args) {
25
+ if (config.orchestration.parallelEditors === 0)
26
+ return "Parallel editor mode is disabled (orchestration.parallelEditors is 0).";
27
+ if (args.partitions.length > config.orchestration.parallelEditors)
28
+ return JSON.stringify({ ok: false, violations: ["editor partition count exceeds parallelEditors"] }, null, 2);
29
+ const violations = validateOwnership(args.partitions.map((p) => ({ id: p.id, paths: p.ownership })));
30
+ if (violations.length)
31
+ return JSON.stringify({ ok: false, violations }, null, 2);
32
+ const classification = classifyTask(args.task, config.orchestration.profiles);
33
+ const profile = args.profile && profileNameSchema.safeParse(args.profile).success ? args.profile : classification.profile;
34
+ const plan = planTask(profile, classification.secondaryProfiles, { maxNodes: config.orchestration.maxWorkers, editorPartitions: args.partitions, includeIntegrator: true });
35
+ const planProblems = plan.nodes.length > config.orchestration.maxWorkers ? ["editor plan exceeds maxWorkers; reduce evidence workers or partitions"] : [];
36
+ if (planProblems.length)
37
+ return JSON.stringify({ ok: false, violations: planProblems, plan }, null, 2);
38
+ return JSON.stringify({ ok: true, plan, parallelEditors: Math.min(config.orchestration.parallelEditors, args.partitions.length), worktreeRoot: config.orchestration.worktreeRoot ?? ".orchestra/worktrees" }, null, 2);
39
+ },
40
+ }),
41
+ orchestration_validate_commit: tool({
42
+ description: "Validate an editor commit using the actual git diff and explicit ownership, never worker claims.",
43
+ args: {
44
+ baseSha: tool.schema.string().min(7), commitSha: tool.schema.string().min(7), nodeId: tool.schema.string().min(1),
45
+ partitions: tool.schema.array(tool.schema.object({ id: tool.schema.string().min(1), ownership: tool.schema.array(tool.schema.string().min(1)).min(1) })).min(1),
46
+ },
47
+ async execute(args, context) {
48
+ await assertCommitDescendsFromBase(systemGit, context.worktree, args.baseSha, args.commitSha);
49
+ const changes = await collectCommitChanges(systemGit, context.worktree, args.baseSha, args.commitSha);
50
+ const changed = Object.fromEntries(args.partitions.map((p) => [p.id, p.id === args.nodeId ? changes.flatMap((c) => c.oldPath ? [c.oldPath, c.path] : [c.path]) : []]));
51
+ const ownership = args.partitions.map((p) => ({ id: p.id, paths: p.ownership }));
52
+ const violations = validateChangedFiles(ownership, changed);
53
+ return JSON.stringify({ ok: violations.length === 0, nodeId: args.nodeId, baseSha: args.baseSha, commitSha: args.commitSha, changes, violations }, null, 2);
54
+ },
55
+ }),
15
56
  orchestra_route: tool({
16
57
  description: "Classify a complex task and return the recommended OpenCode Orchestra worker team for the active budget mode. This does not execute the team.",
17
58
  args: {
@@ -68,7 +109,7 @@ export function createOrchestraTools(config, ledger, pluginStatus, pricing) {
68
109
  // Pre-run cost estimate (informational; does not block execution).
69
110
  let estimate;
70
111
  if (config.pricing.estimate && pricing?.snapshot) {
71
- estimate = estimateCost({
112
+ estimate = await estimateCost({
72
113
  budget: config.budget,
73
114
  plan,
74
115
  workerPools: config.models.worker,
@@ -78,6 +119,8 @@ export function createOrchestraTools(config, ledger, pluginStatus, pricing) {
78
119
  workerCapabilityOf: workerCapability,
79
120
  snapshot: pricing.snapshot,
80
121
  tokens: { workerTokens: 4000, leadTokens: 6000, judgeTokens: 4000 },
122
+ ...(pricing.aliases?.length ? { aliases: pricing.aliases } : {}),
123
+ ...(pricing.openRouter ? { openRouter: pricing.openRouter } : {}),
81
124
  });
82
125
  }
83
126
  const eboboHint = config.budget === "ebobo"
package/dist/tools.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAuB,MAAM,qBAAqB,CAAA;AAE/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,YAAY,EAAuB,MAAM,yBAAyB,CAAA;AAC3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAA;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAC/C,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAC5E,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAA;AAEnF,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAErE,OAAO,EAAE,kBAAkB,EAAqB,MAAM,oBAAoB,CAAA;AAM1E,MAAM,mBAAmB,GAAG,qBAAqB,EAAE,CAAA;AAMnD,MAAM,UAAU,oBAAoB,CAClC,MAAuB,EACvB,MAAc,EACd,YAA2B,EAC3B,OAAwB;IAExB,OAAO;QACL,eAAe,EAAE,IAAI,CAAC;YACpB,WAAW,EAAE,+IAA+I;YAC5J,IAAI,EAAE;gBACJ,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBACjC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;aACzC;YACD,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO;gBACzB,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;gBACtF,IAAI,MAAM,GAAG,KAAK,CAAA;gBAClB,IAAI,cAA8B,CAAA;gBAElC,IAAI,SAAS,EAAE,OAAO,EAAE,CAAC;oBACvB,cAAc,GAAG;wBACf,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC;wBACzD,OAAO,EAAE,SAAS,CAAC,IAAI;wBACvB,UAAU,EAAE,CAAC;wBACb,cAAc,EAAE,CAAC,kBAAkB,CAAC;qBACrC,CAAA;gBACH,CAAC;qBAAM,CAAC;oBACN,MAAM,GAAG,GAAG,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;oBAC9C,IAAI,GAAG,EAAE,CAAC;wBACR,cAAc,GAAG,GAAG,CAAA;wBACpB,MAAM,GAAG,IAAI,CAAA;oBACf,CAAC;yBAAM,CAAC;wBACN,cAAc,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;wBACvE,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAA;oBACpD,CAAC;gBACH,CAAC;gBAED,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAA;gBACtC,MAAM,UAAU,GAAG,eAAe,CAAC,OAAO,CAAC,CAAA;gBAC3C,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC;qBAClD,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC;qBAC9E,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;gBAC5C,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,KAAK,OAAO;oBAC1C,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,cAAc,CAAC,CAAC;oBACrC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAA;gBACtB,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,CAAA;gBAEpE,MAAM,WAAW,GAAG;oBAClB,QAAQ,EAAE,MAAM,CAAC,aAAa,CAAC,UAAU;oBACzC,eAAe,EAAE,IAAI;oBACrB,aAAa,EAAE,IAAI;oBACnB,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAChG,CAAA;gBACD,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAA;gBAE7E,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE;oBAC9C,YAAY,EAAE,MAAM,CAAC,aAAa,CAAC,sBAAsB;iBAC1D,CAAC,CAAA;gBACF,MAAM,KAAK,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAA;gBAE3C,MAAM,UAAU,GAAG,gBAAgB,CAAC,MAAM,EAAE,EAAE,cAAc,EAAE,CAAC,CAAA;gBAC/D,MAAM,SAAS,GAAI,OAA2B,CAAC,SAAS,CAAA;gBACxD,IAAI,SAAS;oBAAE,MAAM,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;gBAE1D,mEAAmE;gBACnE,IAAI,QAAqD,CAAA;gBACzD,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,EAAE,QAAQ,EAAE,CAAC;oBACjD,QAAQ,GAAG,YAAY,CAAC;wBACtB,MAAM,EAAE,MAAM,CAAC,MAAM;wBACrB,IAAI;wBACJ,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM;wBACjC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI;wBAC5B,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK;wBAC9B,YAAY,EAAE,aAAa;wBAC3B,kBAAkB,EAAE,gBAAgB;wBACpC,QAAQ,EAAE,OAAO,CAAC,QAAQ;wBAC1B,MAAM,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE;qBACpE,CAAC,CAAA;gBACJ,CAAC;gBAED,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,KAAK,OAAO;oBACzC,CAAC,CAAC,4GAA4G;oBAC9G,CAAC,CAAC,EAAE,CAAA;gBAEN,OAAO,IAAI,CAAC,SAAS,CACnB;oBACE,OAAO;oBACP,iBAAiB,EAAE,cAAc,CAAC,iBAAiB;oBACnD,UAAU,EAAE,cAAc,CAAC,UAAU;oBACrC,QAAQ,EAAE,cAAc,CAAC,QAAQ;oBACjC,MAAM;oBACN,OAAO;oBACP,eAAe,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,eAAe,EAAE,OAAO,CAAC,MAAM,CAAC;oBAC/E,IAAI;oBACJ,UAAU,EAAE;wBACV,YAAY,EAAE,UAAU,CAAC,YAAY;wBACrC,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE;wBAC5B,OAAO,EAAE,UAAU,CAAC,OAAO;qBAC5B;oBACD,UAAU;oBACV,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACjC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,qBAAqB,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;oBACzH,IAAI,EAAE,0EAA0E,GAAG,OAAO,GAAG,+GAA+G,GAAG,SAAS;iBACzN,EACD,IAAI,EACJ,CAAC,CACF,CAAA;YACH,CAAC;SACF,CAAC;QACF,gBAAgB,EAAE,IAAI,CAAC;YACrB,WAAW,EAAE,mGAAmG;YAChH,IAAI,EAAE,EAAE;YACR,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO;gBAC1B,MAAM,SAAS,GAAI,OAA2B,CAAC,SAAS,CAAA;gBACxD,IAAI,CAAC,SAAS;oBAAE,OAAO,kFAAkF,CAAA;gBACzG,OAAO,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAA;YACvC,CAAC;SACF,CAAC;QACF,uBAAuB,EAAE,IAAI,CAAC;YAC5B,WAAW,EAAE,mNAAmN;YAChO,IAAI,EAAE,EAAE;YACR,KAAK,CAAC,OAAO;gBACX,IAAI,CAAC,YAAY;oBAAE,OAAO,2FAA2F,CAAA;gBACrH,OAAO,kBAAkB,CAAC,YAAY,CAAC,CAAA;YACzC,CAAC;SACF,CAAC;KACH,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oeronteros-1/opencode-orchestra",
3
- "version": "1.0.22",
3
+ "version": "1.0.24",
4
4
  "description": "Production-ready model routing, specialist agents, diagnostics, telemetry, and dashboard for OpenCode",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -50,13 +50,14 @@
50
50
  },
51
51
  "scripts": {
52
52
  "build": "npm run build:dashboard && npm run build:plugin",
53
+ "prebuild:dashboard": "node scripts/ensure-lightningcss.cjs",
53
54
  "build:dashboard": "vite build --config dashboard/vite.config.ts",
54
55
  "build:plugin": "tsc -p tsconfig.build.json",
55
56
  "dev:dashboard": "vite --config dashboard/vite.config.ts",
56
57
  "prepublishOnly": "npm run check",
57
58
  "prepack": "npm run build",
58
59
  "typecheck": "tsc --noEmit && tsc -p dashboard/tsconfig.json",
59
- "test": "tsc -p tsconfig.test.json && node --test dist-test/test/config.test.js dist-test/test/classifier.test.js dist-test/test/model-resolver.test.js dist-test/test/model-discovery.test.js dist-test/test/budget.test.js dist-test/test/agents.test.js dist-test/test/plugin.test.js dist-test/test/plugin-status.test.js dist-test/test/cli.test.js dist-test/test/dashboard.test.js dist-test/test/live.test.js dist-test/test/ledger.test.js dist-test/test/analytics.test.js dist-test/test/routing-features.test.js dist-test/test/pricing.test.js dist-test/test/fallback.test.js dist-test/test/integration.test.js dist-test/test/doctor.test.js",
60
+ "test": "tsc -p tsconfig.test.json && node --test dist-test/test/config.test.js dist-test/test/classifier.test.js dist-test/test/cache-refresh.test.js dist-test/test/model-resolver.test.js dist-test/test/model-discovery.test.js dist-test/test/budget.test.js dist-test/test/agents.test.js dist-test/test/plugin.test.js dist-test/test/plugin-status.test.js dist-test/test/cli.test.js dist-test/test/dashboard.test.js dist-test/test/live.test.js dist-test/test/ledger.test.js dist-test/test/analytics.test.js dist-test/test/routing-features.test.js dist-test/test/ownership.test.js dist-test/test/worktrees.test.js dist-test/test/pricing.test.js dist-test/test/fallback.test.js dist-test/test/integration.test.js dist-test/test/doctor.test.js dist-test/test/model-match.test.js dist-test/test/cost.test.js dist-test/test/openrouter.test.js dist-test/test/pricing-resolver.test.js",
60
61
  "check": "npm run typecheck && npm test"
61
62
  },
62
63
  "dependencies": {
@@ -64,6 +65,19 @@
64
65
  "jsonc-parser": "^3.3.1",
65
66
  "zod": "^4.0.0"
66
67
  },
68
+ "optionalDependencies": {
69
+ "lightningcss-android-arm64": "1.32.0",
70
+ "lightningcss-darwin-arm64": "1.32.0",
71
+ "lightningcss-darwin-x64": "1.32.0",
72
+ "lightningcss-freebsd-x64": "1.32.0",
73
+ "lightningcss-linux-arm-gnueabihf": "1.32.0",
74
+ "lightningcss-linux-arm64-gnu": "1.32.0",
75
+ "lightningcss-linux-arm64-musl": "1.32.0",
76
+ "lightningcss-linux-x64-gnu": "1.32.0",
77
+ "lightningcss-linux-x64-musl": "1.32.0",
78
+ "lightningcss-win32-arm64-msvc": "1.32.0",
79
+ "lightningcss-win32-x64-msvc": "1.32.0"
80
+ },
67
81
  "devDependencies": {
68
82
  "@base-ui/react": "^1.7.0",
69
83
  "@hookform/resolvers": "^5.9.0",
package/prompts/lead.md CHANGED
@@ -14,6 +14,7 @@ Operating rules:
14
14
  6. Compare claims, evidence, and uncertainty. Do not treat repeated unsupported opinions as consensus.
15
15
  7. Invoke `orch-judge` only for critical risk or genuinely unresolved disagreement. Never use it merely to polish prose.
16
16
  8. After evidence is merged, make the smallest correct file edits and run relevant verification. Never invoke yourself or bypass the user's instructions, active skills, plans, TDD, or review workflow.
17
+ 9. If using parallel editors, resolve one base HEAD, assign explicit non-overlapping repository-relative ownership partitions, create one experimental git worktree per editor, and pass its absolute path and base SHA. Editors must never share the main checkout. Validate actual git diff and ancestry before invoking orch-integrator exactly once; stop and retain worktrees on any conflict or validation failure.
17
18
 
18
19
  For informational tasks, return a compact answer with:
19
20
 
@@ -37,6 +37,8 @@
37
37
  "additionalProperties": false,
38
38
  "properties": {
39
39
  "parallelWorkers": { "type": "integer", "minimum": 1, "maximum": 8, "default": 3 },
40
+ "parallelEditors": { "type": "integer", "minimum": 0, "maximum": 8, "default": 0 },
41
+ "worktreeRoot": { "type": "string", "minLength": 1 },
40
42
  "maxWorkers": { "type": "integer", "minimum": 1, "maximum": 12, "default": 5 },
41
43
  "premiumEscalation": { "type": "boolean", "default": true },
42
44
  "maxPremiumCallsPerTask": { "type": "integer", "minimum": 0, "maximum": 5, "default": 1 },
@@ -83,7 +85,27 @@
83
85
  "endpoint": { "type": "string", "minLength": 1 },
84
86
  "refreshIntervalHours": { "type": "integer", "minimum": 0, "maximum": 2160, "default": 0 },
85
87
  "estimate": { "type": "boolean", "default": true },
86
- "warnThresholdUSD": { "type": "number", "minimum": 0, "default": 0.5 }
88
+ "warnThresholdUSD": { "type": "number", "minimum": 0, "default": 0.5 },
89
+ "openrouter": {
90
+ "type": "object",
91
+ "additionalProperties": false,
92
+ "properties": {
93
+ "enabled": { "type": "boolean", "default": false },
94
+ "ttlHours": { "type": "integer", "minimum": 1, "maximum": 720, "default": 12 }
95
+ }
96
+ },
97
+ "aliases": {
98
+ "type": "array",
99
+ "items": {
100
+ "type": "object",
101
+ "additionalProperties": false,
102
+ "required": ["canonical", "aliases"],
103
+ "properties": {
104
+ "canonical": { "type": "string", "minLength": 1 },
105
+ "aliases": { "type": "array", "minItems": 1, "items": { "type": "string", "minLength": 1 } }
106
+ }
107
+ }
108
+ }
87
109
  }
88
110
  }
89
111
  },