@jmanuelcorral/openteam 0.12.0 → 0.13.1
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/README.es.md +2 -2
- package/README.md +2 -2
- package/dist/cli/consoleServe.d.ts +1 -1
- package/dist/cli.js +87 -21
- package/dist/commands/dispatch.d.ts +7 -0
- package/dist/commands/dispatch.d.ts.map +1 -1
- package/dist/commands/doctor.d.ts +13 -0
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/purge.d.ts.map +1 -1
- package/dist/commands/setup.d.ts +19 -1
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/config/resolve.d.ts +19 -18
- package/dist/config/resolve.d.ts.map +1 -1
- package/dist/config/schema.d.ts +19 -9
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/console/assets.d.ts +1 -1
- package/dist/console/assets.d.ts.map +1 -1
- package/dist/console/render.d.ts +4 -9
- package/dist/console/render.d.ts.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +211 -154
- package/dist/storage/graph/soakRecorder.d.ts +19 -0
- package/dist/storage/graph/soakRecorder.d.ts.map +1 -1
- package/dist/web/graphRoute.d.ts +19 -20
- package/dist/web/graphRoute.d.ts.map +1 -1
- package/dist/web/server.d.ts +3 -3
- package/dist/web/start.d.ts +3 -4
- package/dist/web/start.d.ts.map +1 -1
- package/package.json +1 -1
package/README.es.md
CHANGED
|
@@ -619,7 +619,7 @@ Puedes ajustar host/puerto y la terminal en `.opencode/openteam.json` (bloque
|
|
|
619
619
|
}
|
|
620
620
|
```
|
|
621
621
|
|
|
622
|
-
**Vista del grafo de agentes en vivo.** La Console también puede renderizar un **grafo de agentes** en vivo de una ejecución de Graph; está **
|
|
622
|
+
**Vista del grafo de agentes en vivo.** La Console también puede renderizar un **grafo de agentes** en vivo de una ejecución de Graph; está **activada por defecto en modo shadow** y se puede ocultar con `console.graphView.enabled: false` — consulta [Graph observability web](docs/es/guide/graph-observability-web.md) para la configuración y los requisitos completos.
|
|
623
623
|
|
|
624
624
|
> **Seguridad**: el servidor escucha **solo en loopback** (`127.0.0.1`/`localhost`, validado por Zod) y **nunca expone prompts** (solo `promptHash`), args de toolcall ni contenido de mensajes: solo contadores, costes y resúmenes redactados. La vista "Sesión"/"Terminal" exige el token efímero. Si el puerto está ocupado y `autoPortFallback` es `true`, prueba el siguiente libre. El acceso remoto mediante `openteam tunnel` se **eliminó del MVP** (2026-08-31) y se redefinirá más adelante; la Console no tiene camino de exposición remota integrado.
|
|
625
625
|
|
|
@@ -822,7 +822,7 @@ Consulta [docs/compatibility.md](docs/compatibility.md). Resumen verificado el `
|
|
|
822
822
|
|
|
823
823
|
| Superficie | Versión / contrato |
|
|
824
824
|
| --- | --- |
|
|
825
|
-
| openteam | `0.
|
|
825
|
+
| openteam | `0.13.1`; versión actual del paquete |
|
|
826
826
|
| `@opencode-ai/plugin` | `1.18.19` |
|
|
827
827
|
| `@opencode-ai/sdk` | `1.18.19` |
|
|
828
828
|
| Hook de routing | `chat.message`; no `chat.params` para cambiar modelo |
|
package/README.md
CHANGED
|
@@ -538,7 +538,7 @@ block):
|
|
|
538
538
|
}
|
|
539
539
|
```
|
|
540
540
|
|
|
541
|
-
**Live agent-graph view.** The Console can also render a live **agent graph** of a Graph run; it is **
|
|
541
|
+
**Live agent-graph view.** The Console can also render a live **agent graph** of a Graph run; it is **on by default in shadow mode** and can be hidden with `console.graphView.enabled: false` — see [Graph observability web](docs/guide/graph-observability-web.md) for setup and the full requirements.
|
|
542
542
|
|
|
543
543
|
> **Security**: the server listens **on loopback only** (`127.0.0.1`/`localhost`, Zod-validated) and **never exposes prompts** (only `promptHash`), tool-call args or message content — only counters, costs and redacted summaries. The "Session"/"Terminal" view requires the ephemeral token. If the port is busy and `autoPortFallback` is `true`, it tries the next free one. Remote access via `openteam tunnel` was **removed from the MVP** (2026-08-31) and will be redefined later; the Console has no built-in remote-exposure path.
|
|
544
544
|
|
|
@@ -711,7 +711,7 @@ See [docs/compatibility.md](docs/compatibility.md). Verified summary as of `2026
|
|
|
711
711
|
|
|
712
712
|
| Surface | Version / contract |
|
|
713
713
|
| --- | --- |
|
|
714
|
-
| openteam | `0.
|
|
714
|
+
| openteam | `0.13.1`; current package version |
|
|
715
715
|
| `@opencode-ai/plugin` | `1.18.19` |
|
|
716
716
|
| `@opencode-ai/sdk` | `1.18.19` |
|
|
717
717
|
| Routing hook | `chat.message`; not `chat.params` for model changes |
|
|
@@ -47,7 +47,7 @@ export type ConsoleServeDeps = {
|
|
|
47
47
|
legacyTelemetryPath?: string;
|
|
48
48
|
}) => Promise<BuildSqliteIndexResult>;
|
|
49
49
|
/**
|
|
50
|
-
* Factory for the graph-view provider.
|
|
50
|
+
* Factory for the graph-view provider. Injectable in tests; defaults to
|
|
51
51
|
* `createGraphViewProvider`. Called only when `graph.mode !== "off"` and
|
|
52
52
|
* `console.graphView.enabled === true`.
|
|
53
53
|
*/
|
package/dist/cli.js
CHANGED
|
@@ -299,7 +299,7 @@ var GraphEngineSchema = z2.enum(["builtin", "langgraph"]);
|
|
|
299
299
|
var DEFAULT_GRAPH_JOURNAL_ROOT = ".opencode/openteam-local/graph/runs";
|
|
300
300
|
var DEFAULT_GRAPH_WORKTREES_DIR = ".opencode/openteam-local/graph/worktrees";
|
|
301
301
|
var GraphConfigSchema = z2.object({
|
|
302
|
-
mode: GraphModeSchema.default("
|
|
302
|
+
mode: GraphModeSchema.default("shadow"),
|
|
303
303
|
engine: GraphEngineSchema.optional(),
|
|
304
304
|
killSwitch: z2.boolean().default(false),
|
|
305
305
|
journalRoot: z2.string().min(1).default(DEFAULT_GRAPH_JOURNAL_ROOT),
|
|
@@ -322,8 +322,8 @@ var ConsoleConfigSchema = z2.object({
|
|
|
322
322
|
pty: z2.boolean().optional()
|
|
323
323
|
}).strict().default({ enabled: true }),
|
|
324
324
|
graphView: z2.object({
|
|
325
|
-
enabled: z2.boolean().default(
|
|
326
|
-
}).strict().
|
|
325
|
+
enabled: z2.boolean().default(true)
|
|
326
|
+
}).strict().default({ enabled: true })
|
|
327
327
|
}).strict().default({
|
|
328
328
|
host: "127.0.0.1",
|
|
329
329
|
port: 4599,
|
|
@@ -332,7 +332,8 @@ var ConsoleConfigSchema = z2.object({
|
|
|
332
332
|
recentRoutes: 50,
|
|
333
333
|
openBrowser: false,
|
|
334
334
|
remoteStorage: false,
|
|
335
|
-
terminal: { enabled: true }
|
|
335
|
+
terminal: { enabled: true },
|
|
336
|
+
graphView: { enabled: true }
|
|
336
337
|
});
|
|
337
338
|
var DEFAULT_STORAGE_SQLITE_INDEX_PATH = ".opencode/openteam-local/index.sqlite";
|
|
338
339
|
var StorageConfigSchema = z2.object({
|
|
@@ -511,7 +512,13 @@ var OpenTeamConfigObjectSchema = z2.object({
|
|
|
511
512
|
console: ConsoleConfigSchema,
|
|
512
513
|
storage: StorageConfigSchema,
|
|
513
514
|
memory: MemoryConfigSchema.optional(),
|
|
514
|
-
graph: GraphConfigSchema.
|
|
515
|
+
graph: GraphConfigSchema.default({
|
|
516
|
+
mode: "shadow",
|
|
517
|
+
killSwitch: false,
|
|
518
|
+
journalRoot: DEFAULT_GRAPH_JOURNAL_ROOT,
|
|
519
|
+
operatorApproval: false,
|
|
520
|
+
worktrees: { enabled: false }
|
|
521
|
+
}),
|
|
515
522
|
orchestrator: OrchestratorConfigSchema.optional()
|
|
516
523
|
}).strict();
|
|
517
524
|
var OpenTeamConfigSchema = OpenTeamConfigObjectSchema;
|
|
@@ -3594,7 +3601,7 @@ table{width:100%;border-collapse:collapse;font-size:13px}th,td{text-align:left;p
|
|
|
3594
3601
|
.logs-layout{display:grid;grid-template-columns:220px 1fr;gap:16px;align-items:start;margin-bottom:16px}.session-list{padding:6px;max-height:70vh;overflow-y:auto}.session-btn{display:flex;align-items:center;gap:8px;width:100%;padding:8px 10px;border-radius:7px;border:0;background:transparent;color:var(--muted);text-align:left;font:12px/1.3 var(--font-mono)}.session-btn:hover{background:var(--surface-2);color:var(--fg)}.session-btn.sel,.session-btn[aria-selected="true"]{background:var(--accent-bg);color:var(--accent-fg)}.session-btn .sid{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.session-btn .n{margin-left:auto;color:var(--faint)}.session-detail{display:flex;flex-direction:column;gap:16px}.session-detail[hidden]{display:none}.empty-state{padding:28px;text-align:center;color:var(--muted)}
|
|
3595
3602
|
.term .termlog,.pty .ptylog{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:10px;max-height:340px;overflow:auto;font-family:var(--font-mono);font-size:12px;white-space:pre-wrap}.term .tl{padding:1px 0}.term .tl.input{color:var(--local)}.term .tl.tool{color:var(--frontier)}.term .tl.status{color:var(--muted)}.term .tl.error{color:var(--danger)}.term .tl.permission{color:var(--frontier);font-weight:600}.term form.terminput,.pty form.ptyinput{display:flex;gap:8px;margin-top:10px}.term form.terminput input,.pty form.ptyinput input{flex:1;background:var(--bg);color:var(--fg);border:1px solid var(--border);border-radius:8px;padding:8px 10px;font:inherit}.term form.terminput button{background:var(--local);color:#04122b;border:none;border-radius:8px;padding:8px 16px;font:inherit;font-weight:600}.pty .ptylog{background:#05070a;color:#c8d1dc}.pty form.ptyinput button,.pty .pty-start{background:var(--frontier);color:#1a1200;border:none;border-radius:8px;padding:8px 16px;font:inherit;font-weight:600;margin-top:8px}.pty .pty-start:disabled{opacity:.5;cursor:default}
|
|
3596
3603
|
.config-panel{grid-column:1/-1}.config-form{display:flex;flex-direction:column;gap:12px}.config-note{margin:0;font-size:12px;color:var(--muted)}.config-note.config-overlay{color:var(--frontier)}.reload-legend h3,.config-summary h4{font-size:12px;margin:0 0 6px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.reload-table{width:100%}.reload-table th{white-space:nowrap;vertical-align:top;width:1%}.reload-table th.reload-hot{color:var(--good)}.reload-table th.reload-restart{color:var(--frontier)}.config-label{font-size:12px;color:var(--muted)}.config-json{width:100%;min-height:280px;resize:vertical;background:var(--bg);color:var(--fg);border:1px solid var(--border-strong);border-radius:8px;padding:10px;font-family:var(--font-mono);font-size:12px;line-height:1.5}.config-actions{display:flex;gap:8px}.config-save{background:var(--accent);color:#fff;border:0;border-radius:8px;padding:8px 16px;font-weight:600;cursor:pointer}.config-save:disabled{opacity:.5;cursor:default}.config-result:empty{display:none}.config-summary{border:1px solid var(--border);border-radius:8px;padding:12px;margin-top:4px}.config-ok{margin:0 0 8px;color:var(--good);font-weight:600}.config-err{margin:0;color:var(--frontier);font-weight:600}.config-applied h4{color:var(--good)}.config-restart h4{color:var(--frontier)}.config-warn{margin:0 0 6px;color:var(--frontier);font-size:13px}.config-summary ul{margin:0;padding-left:18px}.config-summary li{padding:2px 0;border:0}
|
|
3597
|
-
.diag-banner{border-bottom:1px solid color-mix(in srgb,var(--warn) 40%,transparent);background:var(--warn-bg);color:var(--warn);padding:10px 20px;font-size:13px}.graph-panel{min-height:240px}.graph-disabled .hint{margin-top:6px}.scrim{display:none}.menu-btn{display:none}
|
|
3604
|
+
.diag-banner{border-bottom:1px solid color-mix(in srgb,var(--warn) 40%,transparent);background:var(--warn-bg);color:var(--warn);padding:10px 20px;font-size:13px}.graph-panel{min-height:240px}.graph-disabled,.graph-empty{border:1px solid var(--border);border-radius:8px;padding:14px;background:var(--surface-2)}.graph-empty{border-color:color-mix(in srgb,var(--info) 35%,var(--border));background:var(--info-bg)}.graph-disabled .hint{margin-top:6px}.scrim{display:none}.menu-btn{display:none}
|
|
3598
3605
|
@media (max-width:900px){.app{grid-template-columns:1fr}.sidebar{position:fixed;inset:0 auto 0 0;width:280px;z-index:50;transform:translateX(-100%);transition:transform .22s ease}body.nav-open .sidebar{transform:translateX(0);box-shadow:var(--shadow-pop)}body.nav-open .scrim{display:block;position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:40}.menu-btn{display:grid}.logs-layout{grid-template-columns:1fr}.grid{grid-template-columns:1fr}.token-chip .lbl{display:none}}
|
|
3599
3606
|
@media (max-width:560px){.screen{padding:16px 14px 32px}.screen-grid{grid-template-columns:1fr}.topbar{padding:0 14px}.refresh{display:none}}
|
|
3600
3607
|
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important}}
|
|
@@ -3922,6 +3929,7 @@ var CONSOLE_CLIENT_JS = `
|
|
|
3922
3929
|
`;
|
|
3923
3930
|
|
|
3924
3931
|
// src/console/render.ts
|
|
3932
|
+
var GRAPH_EMPTY_REMEDIATION = "No graph run yet. The tree fills when openteam-orchestrate dispatches roles; ordinary chat does not create a graph run.";
|
|
3925
3933
|
var TIERS = [
|
|
3926
3934
|
"trivial",
|
|
3927
3935
|
"simple",
|
|
@@ -4408,7 +4416,7 @@ function renderGraphView(projection, options = {}) {
|
|
|
4408
4416
|
return graphDisabledHint();
|
|
4409
4417
|
}
|
|
4410
4418
|
if (projection === null) {
|
|
4411
|
-
return
|
|
4419
|
+
return graphEmptyHint();
|
|
4412
4420
|
}
|
|
4413
4421
|
if (projection.nodes.length === 0) {
|
|
4414
4422
|
return '<p class="muted">The run has no nodes.</p>';
|
|
@@ -4466,6 +4474,13 @@ function graphDisabledHint() {
|
|
|
4466
4474
|
"</div>"
|
|
4467
4475
|
].join("");
|
|
4468
4476
|
}
|
|
4477
|
+
function graphEmptyHint() {
|
|
4478
|
+
return [
|
|
4479
|
+
'<div class="graph-empty" role="status">',
|
|
4480
|
+
`<p class="muted">${escapeHtml(GRAPH_EMPTY_REMEDIATION)}</p>`,
|
|
4481
|
+
"</div>"
|
|
4482
|
+
].join("");
|
|
4483
|
+
}
|
|
4469
4484
|
function routingScreenBody(state) {
|
|
4470
4485
|
return [
|
|
4471
4486
|
'<div class="screen-grid">',
|
|
@@ -7086,7 +7101,7 @@ async function runConsoleServe(deps, options) {
|
|
|
7086
7101
|
endpoint,
|
|
7087
7102
|
...deps.serverPassword !== undefined ? { password: deps.serverPassword } : {}
|
|
7088
7103
|
}));
|
|
7089
|
-
const graphMode = config.graph?.mode ?? "
|
|
7104
|
+
const graphMode = config.graph?.mode ?? "shadow";
|
|
7090
7105
|
const graphViewEnabled = config.console.graphView?.enabled === true;
|
|
7091
7106
|
const buildGraphView2 = deps.createGraphViewProvider ?? createGraphViewProvider;
|
|
7092
7107
|
const graphViewProvider = graphMode !== "off" && graphViewEnabled ? buildGraphView2({
|
|
@@ -8489,7 +8504,7 @@ import { z as z16 } from "zod";
|
|
|
8489
8504
|
|
|
8490
8505
|
// src/config/resolve.ts
|
|
8491
8506
|
function resolveGraphConfig(config, source) {
|
|
8492
|
-
const configuredMode = config.graph?.mode ?? "
|
|
8507
|
+
const configuredMode = config.graph?.mode ?? "shadow";
|
|
8493
8508
|
const killSwitch = config.graph?.killSwitch ?? false;
|
|
8494
8509
|
const effectiveMode = killSwitch ? "off" : configuredMode;
|
|
8495
8510
|
return {
|
|
@@ -10855,6 +10870,20 @@ function rosterHealthSection(audit, loadError, rosterRoleCount) {
|
|
|
10855
10870
|
}
|
|
10856
10871
|
return lines;
|
|
10857
10872
|
}
|
|
10873
|
+
function gitignoreSection(gitignore) {
|
|
10874
|
+
if (gitignore.missingRules.length === 0) {
|
|
10875
|
+
return [
|
|
10876
|
+
" gitignore:",
|
|
10877
|
+
` ✓ ${gitignore.path} ignores openteam's generated runtime state.`
|
|
10878
|
+
];
|
|
10879
|
+
}
|
|
10880
|
+
const quoted = gitignore.missingRules.map((rule) => `\`${rule}\``).join(", ");
|
|
10881
|
+
const lines = [" gitignore:"];
|
|
10882
|
+
lines.push(gitignore.exists ? ` ✗ ${gitignore.path} is missing openteam ignore rule(s): ${gitignore.missingRules.join(", ")}` : ` ✗ ${gitignore.path} does not exist, so no openteam ignore rule(s) are in place: ${gitignore.missingRules.join(", ")}`);
|
|
10883
|
+
lines.push(" problem: openteam writes machine-local runtime output (telemetry, graph state, soak recordings) that must not be committed.");
|
|
10884
|
+
lines.push(` remedy: add ${quoted} to ${gitignore.path} (or re-run \`openteam setup\`), then re-run \`openteam doctor\`.`);
|
|
10885
|
+
return lines;
|
|
10886
|
+
}
|
|
10858
10887
|
function agentModelsSection(diagnostics, searchedPaths) {
|
|
10859
10888
|
const lines = [" agent models:"];
|
|
10860
10889
|
if (diagnostics.length === 0) {
|
|
@@ -10902,6 +10931,9 @@ function renderDoctor(input) {
|
|
|
10902
10931
|
lines.push(...diagnosticsSection(input.diagnostics));
|
|
10903
10932
|
}
|
|
10904
10933
|
lines.push(...rosterHealthSection(input.rosterAudit, input.rosterLoadError, input.rosterRoleCount));
|
|
10934
|
+
if (input.gitignore !== undefined) {
|
|
10935
|
+
lines.push(...gitignoreSection(input.gitignore));
|
|
10936
|
+
}
|
|
10905
10937
|
if (input.otelBackend !== undefined) {
|
|
10906
10938
|
const otel = input.otelBackend;
|
|
10907
10939
|
lines.push(" opentelemetry:");
|
|
@@ -11225,6 +11257,12 @@ function mergeOpencodeConfigs(base, override) {
|
|
|
11225
11257
|
return result;
|
|
11226
11258
|
}
|
|
11227
11259
|
|
|
11260
|
+
// src/storage/graph/soakRecorder.ts
|
|
11261
|
+
var SOAK_EVIDENCE_DIR = ".opencode/soak";
|
|
11262
|
+
var SOAK_RECORDER_BASE_DIR = ".opencode";
|
|
11263
|
+
var SOAK_RECORDER_ID_FILENAME = "soak-recorder-id";
|
|
11264
|
+
var SOAK_RECORDER_ID_PATH = `${SOAK_RECORDER_BASE_DIR}/${SOAK_RECORDER_ID_FILENAME}`;
|
|
11265
|
+
|
|
11228
11266
|
// src/commands/frontierCatalog.ts
|
|
11229
11267
|
function weightedCost(inputUSD, outputUSD) {
|
|
11230
11268
|
return 0.75 * inputUSD + 0.25 * outputUSD;
|
|
@@ -11262,6 +11300,11 @@ var GENERATED_OPENTEAM_STATE_PATHS = [
|
|
|
11262
11300
|
DEFAULT_STORAGE_SQLITE_INDEX_PATH,
|
|
11263
11301
|
DEFAULT_MEMORY_INDEX_PATH
|
|
11264
11302
|
];
|
|
11303
|
+
var GENERATED_OPENTEAM_STATE_GROUPS = [
|
|
11304
|
+
{ kind: "dir", paths: GENERATED_OPENTEAM_STATE_PATHS },
|
|
11305
|
+
{ kind: "dir", paths: [SOAK_EVIDENCE_DIR] },
|
|
11306
|
+
{ kind: "file", paths: [SOAK_RECORDER_ID_PATH] }
|
|
11307
|
+
];
|
|
11265
11308
|
var OPENCODE_DIR = ".opencode";
|
|
11266
11309
|
var AGENT_DIR = `${OPENCODE_DIR}/agent`;
|
|
11267
11310
|
var ROLE_AGENT_DESCRIPTIONS = {
|
|
@@ -11332,17 +11375,16 @@ function commonGeneratedStateRoot(paths) {
|
|
|
11332
11375
|
}
|
|
11333
11376
|
return common.join("/");
|
|
11334
11377
|
}
|
|
11335
|
-
function generatedStateIgnoreRule() {
|
|
11336
|
-
const root = commonGeneratedStateRoot(
|
|
11378
|
+
function generatedStateIgnoreRule(group) {
|
|
11379
|
+
const root = commonGeneratedStateRoot(group.paths);
|
|
11337
11380
|
const opencodePrefix = `${OPENCODE_DIR}/`;
|
|
11338
11381
|
if (!root.startsWith(opencodePrefix)) {
|
|
11339
11382
|
throw new Error(`generated openteam state path is outside ${OPENCODE_DIR}`);
|
|
11340
11383
|
}
|
|
11341
|
-
|
|
11384
|
+
const rule = root.slice(opencodePrefix.length);
|
|
11385
|
+
return group.kind === "dir" ? `${rule}/` : rule;
|
|
11342
11386
|
}
|
|
11343
|
-
var OPENCODE_GITIGNORE_GENERATED_STATE_RULES =
|
|
11344
|
-
generatedStateIgnoreRule()
|
|
11345
|
-
];
|
|
11387
|
+
var OPENCODE_GITIGNORE_GENERATED_STATE_RULES = GENERATED_OPENTEAM_STATE_GROUPS.map(generatedStateIgnoreRule);
|
|
11346
11388
|
var LEGACY_OPENCODE_GITIGNORE_STATE_RULES = ["openteam/"];
|
|
11347
11389
|
var LEGACY_LOCAL_OPENCODE_GITIGNORE_RULES = [
|
|
11348
11390
|
"openteam/sessions/",
|
|
@@ -11378,6 +11420,13 @@ function buildOpencodeGitignore(existing = "") {
|
|
|
11378
11420
|
`)}
|
|
11379
11421
|
`;
|
|
11380
11422
|
}
|
|
11423
|
+
function activeGitignoreRules(gitignore) {
|
|
11424
|
+
return gitignore.split(/\r?\n/).map(normalizeGitignoreRule).filter((line) => line.length > 0 && !line.startsWith("#"));
|
|
11425
|
+
}
|
|
11426
|
+
function missingGeneratedStateRules(gitignore) {
|
|
11427
|
+
const present = new Set(activeGitignoreRules(gitignore));
|
|
11428
|
+
return OPENCODE_GITIGNORE_GENERATED_STATE_RULES.filter((rule) => !present.has(rule));
|
|
11429
|
+
}
|
|
11381
11430
|
var KNOWN_RUNTIMES = [
|
|
11382
11431
|
{
|
|
11383
11432
|
id: "ollama",
|
|
@@ -11941,7 +11990,7 @@ function resolveStaticPurgeItems(config, paths) {
|
|
|
11941
11990
|
...paths.opencodeConfigPaths.map((p) => ({ kind: "opencode-config", path: p })),
|
|
11942
11991
|
{ kind: "gitignore", path: paths.gitignorePath }
|
|
11943
11992
|
],
|
|
11944
|
-
roster: [],
|
|
11993
|
+
roster: [{ kind: "file", path: OPENTEAM_ROSTER_PATH }],
|
|
11945
11994
|
decisions: [
|
|
11946
11995
|
{ kind: "file", path: paths.decisionsPath },
|
|
11947
11996
|
{ kind: "file", path: paths.telemetryPath }
|
|
@@ -12233,8 +12282,12 @@ function categoryPrompt(id, items) {
|
|
|
12233
12282
|
return "Remove openteam configuration and wiring?";
|
|
12234
12283
|
case "roster": {
|
|
12235
12284
|
const names = items.filter((item) => item.kind === "agent").map((item) => item.name);
|
|
12236
|
-
const
|
|
12237
|
-
|
|
12285
|
+
const hasRegistry = items.some((item) => item.kind === "file" && item.path === OPENTEAM_ROSTER_PATH);
|
|
12286
|
+
const plural = names.length === 1 ? "" : "s";
|
|
12287
|
+
const agentNames = names.length > 0 ? `: ${names.join(", ")}` : "";
|
|
12288
|
+
const agentClause = `${names.length} user agent${plural}${agentNames}`;
|
|
12289
|
+
const parts = hasRegistry ? [`roster registry (${OPENTEAM_ROSTER_PATH})`, agentClause] : [agentClause];
|
|
12290
|
+
return `Remove the agent roster? (${parts.join("; ")})`;
|
|
12238
12291
|
}
|
|
12239
12292
|
case "decisions":
|
|
12240
12293
|
return "Remove decisions and telemetry?";
|
|
@@ -12296,7 +12349,9 @@ async function collectCategories(input) {
|
|
|
12296
12349
|
const { runtime, config, paths } = input;
|
|
12297
12350
|
const staticItems = resolveStaticPurgeItems(config, paths);
|
|
12298
12351
|
const agents = await runtime.port.listAgents();
|
|
12299
|
-
const
|
|
12352
|
+
const discoveredAgents = agents.filter((agent) => path2.resolve(agent.path) !== path2.resolve(paths.orchestratorAgentPath)).map((agent) => ({ kind: "agent", path: agent.path, name: agent.name }));
|
|
12353
|
+
const rosterRegistry = await presentItemsFor(runtime.port, staticItems.roster);
|
|
12354
|
+
const rosterItems = [...rosterRegistry, ...discoveredAgents];
|
|
12300
12355
|
const worktrees = await runtime.port.listWorktrees();
|
|
12301
12356
|
const worktreeItems = worktrees.map((worktree) => ({
|
|
12302
12357
|
kind: "worktree",
|
|
@@ -13374,6 +13429,15 @@ async function runCli(argv, deps) {
|
|
|
13374
13429
|
...defaultModel !== undefined ? { defaultModel } : {}
|
|
13375
13430
|
});
|
|
13376
13431
|
const legacyLayout = deps.detectLegacyLayout !== undefined ? await deps.detectLegacyLayout() : undefined;
|
|
13432
|
+
let gitignoreCoverage;
|
|
13433
|
+
if (deps.readGitignore !== undefined) {
|
|
13434
|
+
const raw = await deps.readGitignore();
|
|
13435
|
+
gitignoreCoverage = {
|
|
13436
|
+
path: OPENCODE_GITIGNORE_PATH,
|
|
13437
|
+
exists: raw !== undefined,
|
|
13438
|
+
missingRules: missingGeneratedStateRules(raw ?? "")
|
|
13439
|
+
};
|
|
13440
|
+
}
|
|
13377
13441
|
const otelBackend = describeOtelBackendForDoctor({
|
|
13378
13442
|
backend: "opentelemetry",
|
|
13379
13443
|
connectionEnv: "APPLICATIONINSIGHTS_CONNECTION_STRING"
|
|
@@ -13406,7 +13470,8 @@ async function runCli(argv, deps) {
|
|
|
13406
13470
|
...opencodeConfigError !== undefined ? { opencodeConfigError } : {},
|
|
13407
13471
|
...cacheEntries !== undefined ? { cacheEntries, cliVersion: deps.version } : {},
|
|
13408
13472
|
...legacyLayout !== undefined && legacyLayout.length > 0 ? { legacyLayout } : {},
|
|
13409
|
-
...otelBackend !== undefined ? { otelBackend } : {}
|
|
13473
|
+
...otelBackend !== undefined ? { otelBackend } : {},
|
|
13474
|
+
...gitignoreCoverage !== undefined ? { gitignore: gitignoreCoverage } : {}
|
|
13410
13475
|
})
|
|
13411
13476
|
};
|
|
13412
13477
|
}
|
|
@@ -15441,7 +15506,7 @@ async function buildMemoryRuntimeFromConfig(config, deps, options = {}) {
|
|
|
15441
15506
|
// package.json
|
|
15442
15507
|
var package_default = {
|
|
15443
15508
|
name: "@jmanuelcorral/openteam",
|
|
15444
|
-
version: "0.
|
|
15509
|
+
version: "0.13.1",
|
|
15445
15510
|
packageManager: "bun@1.3.14",
|
|
15446
15511
|
description: "Cost-aware, local-first routing plugin for opencode with cheapest-capable frontier fallback and multi-agent orchestration.",
|
|
15447
15512
|
license: "MIT",
|
|
@@ -15758,6 +15823,7 @@ var deps = {
|
|
|
15758
15823
|
loopRuntime: createCliLoopRuntime(),
|
|
15759
15824
|
loadRosterForDoctor: readStoredRosterForDoctor,
|
|
15760
15825
|
auditRoster: auditStoredRosterForDoctor,
|
|
15826
|
+
readGitignore: () => storage.read(OPENCODE_GITIGNORE_PATH),
|
|
15761
15827
|
version: PACKAGE_VERSION
|
|
15762
15828
|
};
|
|
15763
15829
|
function createCliPurgeRuntime() {
|
|
@@ -61,6 +61,13 @@ export type CliDeps = {
|
|
|
61
61
|
* migration section. Absent in composition roots that do not probe the disk.
|
|
62
62
|
*/
|
|
63
63
|
detectLegacyLayout?: () => Promise<readonly LegacyLayoutFinding[]>;
|
|
64
|
+
/**
|
|
65
|
+
* Reads `.opencode/.gitignore` for the `openteam doctor` coverage check
|
|
66
|
+
* (returns `undefined` when the file is absent). Optional so composition roots
|
|
67
|
+
* that do not touch the disk can omit it; when absent, doctor omits the
|
|
68
|
+
* `gitignore:` section rather than guessing.
|
|
69
|
+
*/
|
|
70
|
+
readGitignore?: () => Promise<string | undefined>;
|
|
64
71
|
/**
|
|
65
72
|
* Executes the P15b legacy-layout migration (`openteam migrate`): physically
|
|
66
73
|
* relocates pre-split artifacts to their current homes and returns a report.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dispatch.d.ts","sourceRoot":"","sources":["../../src/commands/dispatch.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,eAAe,EAErB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAOjE,OAAO,KAAK,EAAY,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAG3D,OAAO,KAAK,EACV,uBAAuB,EACvB,YAAY,EAEZ,aAAa,EACd,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAAE,KAAK,gBAAgB,EAAc,MAAM,uBAAuB,CAAC;AAC1E,OAAO,EAA2B,KAAK,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAC9E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,EAC7B,MAAM,oCAAoC,CAAC;AAE5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EACL,KAAK,SAAS,EASf,MAAM,UAAU,CAAC;AAOlB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAG9C,OAAO,EACL,KAAK,gBAAgB,
|
|
1
|
+
{"version":3,"file":"dispatch.d.ts","sourceRoot":"","sources":["../../src/commands/dispatch.ts"],"names":[],"mappings":"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"}
|
|
@@ -67,6 +67,19 @@ export type DoctorInput = {
|
|
|
67
67
|
* it without aborting the rest of the health report.
|
|
68
68
|
*/
|
|
69
69
|
rosterLoadError?: string;
|
|
70
|
+
/**
|
|
71
|
+
* Coverage of openteam's runtime-generated state by `.opencode/.gitignore`,
|
|
72
|
+
* computed at the command boundary (`missingGeneratedStateRules`). When
|
|
73
|
+
* `missingRules` is non-empty, doctor prints a ✗ check with a remedy naming
|
|
74
|
+
* the exact rules to add — the repair `openteam setup` never performs on an
|
|
75
|
+
* already-configured project. Absent in composition roots that do not read
|
|
76
|
+
* the file.
|
|
77
|
+
*/
|
|
78
|
+
gitignore?: {
|
|
79
|
+
readonly path: string;
|
|
80
|
+
readonly exists: boolean;
|
|
81
|
+
readonly missingRules: readonly string[];
|
|
82
|
+
};
|
|
70
83
|
};
|
|
71
84
|
export type DoctorDiagnostic = {
|
|
72
85
|
readonly ts: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAGL,KAAK,cAAc,EACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAE3D,OAAO,EACL,KAAK,cAAc,EAEpB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EACV,oBAAoB,EAGrB,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,cAAc,CAAC;IACvB,SAAS,EAAE,SAAS,oBAAoB,EAAE,CAAC;IAC3C,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,cAAc,CAAC;IAC7B,WAAW,CAAC,EAAE,eAAe,CAAC;IAC9B,iEAAiE;IACjE,YAAY,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;IACrC,2DAA2D;IAC3D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,WAAW,CAAC,EAAE,SAAS,oBAAoB,EAAE,CAAC;IAC9C;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B;;;;;OAKG;IACH,YAAY,CAAC,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAC9C;;;;OAIG;IACH,WAAW,CAAC,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC1C;;;;OAIG;IACH,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,qEAAqE;IACrE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"purge.d.ts","sourceRoot":"","sources":["../../src/commands/purge.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,cAAc,EAEpB,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"purge.d.ts","sourceRoot":"","sources":["../../src/commands/purge.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/setup.d.ts
CHANGED
|
@@ -13,6 +13,11 @@ export declare const OPENCODE_GITIGNORE_PATH = ".opencode/.gitignore";
|
|
|
13
13
|
* `.gitignore` rule collapses to one line covering the whole directory. The
|
|
14
14
|
* **portable** memory records (`.opencode/openteam/memory/records.jsonl`) are
|
|
15
15
|
* deliberately absent: they are committed team-state, not ignored output.
|
|
16
|
+
*
|
|
17
|
+
* This is only ONE group of generated state. Runtime output written OUTSIDE
|
|
18
|
+
* `.opencode/openteam-local/` (the shadow soak pipeline) lives in
|
|
19
|
+
* {@link GENERATED_OPENTEAM_STATE_GROUPS}; a single common-prefix collapse over
|
|
20
|
+
* everything would drop to `.opencode` and emit no usable rule.
|
|
16
21
|
*/
|
|
17
22
|
export declare const GENERATED_OPENTEAM_STATE_PATHS: readonly [".opencode/openteam-local/telemetry.jsonl", ".opencode/openteam-local/sessions", ".opencode/openteam-local/graph/runs", ".opencode/openteam-local/graph/worktrees", ".opencode/openteam-local/index.sqlite", ".opencode/openteam-local/memory/index.sqlite"];
|
|
18
23
|
/** One standard subagent file `setup` writes into `.opencode/agent/`. */
|
|
@@ -34,7 +39,7 @@ export type RoleAgentFile = {
|
|
|
34
39
|
* order.
|
|
35
40
|
*/
|
|
36
41
|
export declare function buildRoleAgentFiles(): RoleAgentFile[];
|
|
37
|
-
export declare const OPENCODE_GITIGNORE_GENERATED_STATE_RULES: readonly [
|
|
42
|
+
export declare const OPENCODE_GITIGNORE_GENERATED_STATE_RULES: readonly string[];
|
|
38
43
|
/**
|
|
39
44
|
* Pre-P15b generated ignore rule. Before the portable/local split, all openteam
|
|
40
45
|
* runtime state lived under `.opencode/openteam/`, so setup wrote a single
|
|
@@ -54,6 +59,19 @@ export declare const LEGACY_OPENCODE_GITIGNORE_STATE_RULES: readonly ["openteam/
|
|
|
54
59
|
*/
|
|
55
60
|
export declare const LEGACY_LOCAL_OPENCODE_GITIGNORE_RULES: readonly ["openteam/sessions/", "openteam/graph/", "openteam/index.sqlite", "openteam/memory/index.sqlite"];
|
|
56
61
|
export declare function buildOpencodeGitignore(existing?: string): string;
|
|
62
|
+
/**
|
|
63
|
+
* The openteam runtime-generated-state rules
|
|
64
|
+
* ({@link OPENCODE_GITIGNORE_GENERATED_STATE_RULES}) NOT present in `gitignore`,
|
|
65
|
+
* in canonical order. Empty when every rule is already covered. Pure.
|
|
66
|
+
*
|
|
67
|
+
* `openteam doctor` uses it to flag an already-configured install whose
|
|
68
|
+
* `.opencode/.gitignore` predates a rule (e.g. the soak recordings added in
|
|
69
|
+
* v0.13.0), which `openteam setup` alone never repairs because it does not
|
|
70
|
+
* re-run on existing projects. Matching is exact-normalised, mirroring
|
|
71
|
+
* {@link buildOpencodeGitignore}, so what doctor reports missing is exactly what
|
|
72
|
+
* setup would add.
|
|
73
|
+
*/
|
|
74
|
+
export declare function missingGeneratedStateRules(gitignore: string): string[];
|
|
57
75
|
export type KnownRuntime = {
|
|
58
76
|
id: LocalRuntimeId;
|
|
59
77
|
label: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAMpE,OAAO,EAOL,KAAK,cAAc,EAEnB,KAAK,WAAW,EAChB,KAAK,UAAU,EAChB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"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"}
|
package/dist/config/resolve.d.ts
CHANGED
|
@@ -1,37 +1,38 @@
|
|
|
1
1
|
import type { GateViolation, GraphGateResult } from "./graphFeatureGate";
|
|
2
2
|
import type { GraphMode, OpenTeamConfig } from "./schema";
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
4
|
+
* Shared effective resolver for Graph config (GE-040).
|
|
5
5
|
*
|
|
6
|
-
* CLI
|
|
7
|
-
*
|
|
6
|
+
* CLI and plugin resolve through this single function, so the same config
|
|
7
|
+
* produces the same result in both paths. Rules:
|
|
8
8
|
*
|
|
9
|
-
* - **Default
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
9
|
+
* - **Default shadow**: without an explicit graph section, the effective mode
|
|
10
|
+
* is `shadow` after schema defaults.
|
|
11
|
+
* - **Live kill switch**: if `killSwitch` is active, the effective mode is
|
|
12
|
+
* `off` regardless of the configured mode.
|
|
13
|
+
* - **Shadow without executor**: only `active` enables the executor; `shadow`
|
|
14
|
+
* and `off` do not receive one.
|
|
15
|
+
* - **Visible source**: the config source is propagated to the result.
|
|
15
16
|
* - **Cutover gate (GE-057)**: `active` mode additionally requires the cutover
|
|
16
17
|
* gate to pass. When the gate denies, `effectiveMode` degrades to `off` and
|
|
17
18
|
* `gateDenied` is `true`. This degradation is **never silent**: the wiring
|
|
18
19
|
* layer emits warnings for each violation.
|
|
19
20
|
*
|
|
20
|
-
*
|
|
21
|
+
* Pure: no I/O, clock, or global state.
|
|
21
22
|
*/
|
|
22
|
-
/**
|
|
23
|
+
/** Resolved config source for traceability/observability. */
|
|
23
24
|
export type ConfigSource = "file" | "options" | "default";
|
|
24
|
-
/**
|
|
25
|
+
/** Effective Graph config resolution. */
|
|
25
26
|
export type ResolvedGraphConfig = {
|
|
26
|
-
/**
|
|
27
|
+
/** Mode declared in config (default `shadow`). */
|
|
27
28
|
readonly configuredMode: GraphMode;
|
|
28
|
-
/**
|
|
29
|
+
/** Effective mode after applying the kill switch and cutover gate. */
|
|
29
30
|
readonly effectiveMode: GraphMode;
|
|
30
|
-
/**
|
|
31
|
+
/** Only `active` enables the executor. */
|
|
31
32
|
readonly executorEnabled: boolean;
|
|
32
|
-
/**
|
|
33
|
+
/** Live kill switch. */
|
|
33
34
|
readonly killSwitch: boolean;
|
|
34
|
-
/**
|
|
35
|
+
/** Config source. */
|
|
35
36
|
readonly source: ConfigSource;
|
|
36
37
|
/**
|
|
37
38
|
* `true` when the cutover gate denied `active` mode and degraded to `off`.
|
|
@@ -42,7 +43,7 @@ export type ResolvedGraphConfig = {
|
|
|
42
43
|
/** Violations found by the cutover gate, if evaluated. */
|
|
43
44
|
readonly gateViolations?: readonly GateViolation[];
|
|
44
45
|
};
|
|
45
|
-
/**
|
|
46
|
+
/** Resolves the effective Graph config from the parsed config and source. */
|
|
46
47
|
export declare function resolveGraphConfig(config: OpenTeamConfig, source: ConfigSource): ResolvedGraphConfig;
|
|
47
48
|
/**
|
|
48
49
|
* Applies the cutover gate result to a resolved config. When the gate denies
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/config/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1D
|
|
1
|
+
{"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/config/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1D;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,6DAA6D;AAC7D,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;AAE1D,yCAAyC;AACzC,MAAM,MAAM,mBAAmB,GAAG;IAChC,kDAAkD;IAClD,QAAQ,CAAC,cAAc,EAAE,SAAS,CAAC;IACnC,sEAAsE;IACtE,QAAQ,CAAC,aAAa,EAAE,SAAS,CAAC;IAClC,0CAA0C;IAC1C,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,wBAAwB;IACxB,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,qBAAqB;IACrB,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B;;;;OAIG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B,0DAA0D;IAC1D,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;CACpD,CAAC;AAEF,6EAA6E;AAC7E,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,YAAY,GACnB,mBAAmB,CAWrB;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,mBAAmB,EAC7B,UAAU,EAAE,eAAe,GAC1B,mBAAmB,CAWrB"}
|