@femtomc/mu-agent 26.2.90 → 26.2.91

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.md CHANGED
@@ -2,23 +2,20 @@
2
2
 
3
3
  Shared agent runtime package for mu.
4
4
 
5
- This package provides reusable runtime pieces for chat, orchestration, and serve-mode tooling, including:
5
+ This package provides reusable runtime pieces for operator sessions and serve-mode tooling, including:
6
6
 
7
7
  - Messaging operator runtime + backend
8
8
  - Command context resolution for operator command proposals
9
- - Role prompt loading/defaults for operator/orchestrator/worker/reviewer
10
- - pi CLI/SDK orchestration backends and resource loader helpers
11
- - Prompt/template helpers used by orchestration roles
9
+ - Operator prompt loading/defaults
10
+ - pi CLI/SDK backend and resource loader helpers
11
+ - Prompt/template helpers
12
12
 
13
13
  ## Bundled default prompts
14
14
 
15
15
  Bundled defaults now live as markdown files under `packages/agent/prompts/`:
16
16
 
17
17
  - `operator.md`
18
- - `orchestrator.md`
19
- - `worker.md`
20
- - `reviewer.md`
21
- - `soul.md` (shared tail appended to all role prompts)
18
+ - `soul.md` (shared tail appended to the operator prompt)
22
19
 
23
20
  These are loaded by runtime code and are the single source of truth for default system prompts.
24
21
 
package/dist/backend.d.ts CHANGED
@@ -1,9 +1,7 @@
1
1
  import type { Model } from "@mariozechner/pi-ai";
2
2
  import { AuthStorage, DefaultResourceLoader, SettingsManager } from "@mariozechner/pi-coding-agent";
3
- import type { MuRole } from "./mu_roles.js";
4
3
  export type BackendRunOpts = {
5
4
  issueId: string;
6
- role: MuRole;
7
5
  systemPrompt: string;
8
6
  prompt: string;
9
7
  provider: string;
@@ -1 +1 @@
1
- {"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../src/backend.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAEjD,OAAO,EACN,WAAW,EAOX,qBAAqB,EAGrB,eAAe,EACf,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAI5C,MAAM,MAAM,cAAc,GAAG;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,WAAW,aAAa;IAC7B,GAAG,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC3C;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CA4BpD;AAGD;;;;;GAKG;AACH,wBAAgB,YAAY,CAC3B,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,WAAW,EACxB,kBAAkB,CAAC,EAAE,MAAM,GACzB,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS,CA6BxB;AAED;;;;GAIG;AACH,qBAAa,UAAW,YAAW,aAAa;IACzC,GAAG,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;CAoGhD;AAGD,MAAM,MAAM,0BAA0B,GAAG;IACxC,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,wBAAwB,CAAC,EAAE,MAAM,EAAE,CAAC;IACpC,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;CAChC,CAAC;AAEF,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,0BAA0B,GAAG,qBAAqB,CA+C9F"}
1
+ {"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../src/backend.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAEjD,OAAO,EACN,WAAW,EAOX,qBAAqB,EAGrB,eAAe,EACf,MAAM,+BAA+B,CAAC;AAIvC,MAAM,MAAM,cAAc,GAAG;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,WAAW,aAAa;IAC7B,GAAG,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC3C;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CA4BpD;AAGD;;;;;GAKG;AACH,wBAAgB,YAAY,CAC3B,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,WAAW,EACxB,kBAAkB,CAAC,EAAE,MAAM,GACzB,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS,CA6BxB;AAED;;;;GAIG;AACH,qBAAa,UAAW,YAAW,aAAa;IACzC,GAAG,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;CAkGhD;AAGD,MAAM,MAAM,0BAA0B,GAAG;IACxC,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,wBAAwB,CAAC,EAAE,MAAM,EAAE,CAAC;IACpC,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;CAChC,CAAC;AAEF,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,0BAA0B,GAAG,qBAAqB,CA+C9F"}
package/dist/backend.js CHANGED
@@ -4,7 +4,7 @@ import { basename, dirname, join } from "node:path";
4
4
  import { findRepoRoot, getMuHomeDir, getStorePaths } from "@femtomc/mu-core/node";
5
5
  import { getModels, getProviders } from "@mariozechner/pi-ai";
6
6
  import { AuthStorage, createAgentSession, createBashTool, createEditTool, createReadTool, createWriteTool, DefaultResourceLoader, getAgentDir, SessionManager, SettingsManager, } from "@mariozechner/pi-coding-agent";
7
- import { orchestratorToolExtensionPaths, workerToolExtensionPaths } from "./extensions/index.js";
7
+ import { operatorExtensionPaths } from "./extensions/index.js";
8
8
  import { MU_DEFAULT_THEME_NAME, MU_DEFAULT_THEME_PATH } from "./ui_defaults.js";
9
9
  export function streamHasError(line) {
10
10
  let event;
@@ -79,12 +79,11 @@ export class SdkBackend {
79
79
  throw new Error(`Model "${opts.model}" not found${scope} in pi-ai registry.`);
80
80
  }
81
81
  const settingsManager = SettingsManager.inMemory({ theme: MU_DEFAULT_THEME_NAME, quietStartup: true });
82
- const roleExtensionPaths = opts.role === "orchestrator" ? orchestratorToolExtensionPaths : workerToolExtensionPaths;
83
82
  const resourceLoader = createMuResourceLoader({
84
83
  cwd: opts.cwd,
85
84
  systemPrompt: opts.systemPrompt,
86
85
  settingsManager,
87
- additionalExtensionPaths: roleExtensionPaths,
86
+ additionalExtensionPaths: operatorExtensionPaths,
88
87
  });
89
88
  await resourceLoader.reload();
90
89
  const tools = [
@@ -1 +1 @@
1
- {"version":3,"file":"command_context.d.ts","sourceRoot":"","sources":["../src/command_context.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,uBAAuB,GAAG,UAAU,GAAG,cAAc,GAAG,MAAM,CAAC;AAE3E,MAAM,MAAM,8BAA8B,GACvC,iBAAiB,GACjB,mBAAmB,GACnB,sBAAsB,GACtB,uBAAuB,CAAC;AAE3B,MAAM,MAAM,yBAAyB,GAClC;IACA,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,uBAAuB,CAAC;CAC/B,GACD;IACA,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE,8BAA8B,CAAC;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEL,MAAM,MAAM,0BAA0B,GAAG;IACxC,gBAAgB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC,CAAC;AAwJF,qBAAa,sBAAsB;;gBAGf,IAAI,GAAE,0BAA+B;IAQjD,OAAO,CAAC,IAAI,EAAE;QACpB,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;QACxB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,eAAe,EAAE,MAAM,CAAC;QACxB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAClC,GAAG,yBAAyB;CAqG7B"}
1
+ {"version":3,"file":"command_context.d.ts","sourceRoot":"","sources":["../src/command_context.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,uBAAuB,GAAG,UAAU,GAAG,cAAc,GAAG,MAAM,CAAC;AAE3E,MAAM,MAAM,8BAA8B,GACvC,iBAAiB,GACjB,mBAAmB,GACnB,sBAAsB,GACtB,uBAAuB,CAAC;AAE3B,MAAM,MAAM,yBAAyB,GAClC;IACA,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,uBAAuB,CAAC;CAC/B,GACD;IACA,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE,8BAA8B,CAAC;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEL,MAAM,MAAM,0BAA0B,GAAG;IACxC,gBAAgB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC,CAAC;AA2IF,qBAAa,sBAAsB;;gBAGf,IAAI,GAAE,0BAA+B;IAQjD,OAAO,CAAC,IAAI,EAAE;QACpB,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;QACxB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,eAAe,EAAE,MAAM,CAAC;QACxB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAClC,GAAG,yBAAyB;CAqG7B"}
@@ -2,15 +2,7 @@ import { resolve as resolvePath } from "node:path";
2
2
  const ISSUE_ID_RE = /^mu-[a-z0-9][a-z0-9-]*$/;
3
3
  const SAFE_TOPIC_RE = /^[A-Za-z0-9][A-Za-z0-9._:/-]{0,199}$/;
4
4
  const SAFE_TARGET_RE = /^(?!-)[A-Za-z0-9._:@/-]{1,200}$/;
5
- const ISSUE_TARGET_COMMANDS = new Set([
6
- "issue get",
7
- "issue update",
8
- "issue claim",
9
- "issue close",
10
- "run resume",
11
- "run status",
12
- "run interrupt",
13
- ]);
5
+ const ISSUE_TARGET_COMMANDS = new Set(["issue get", "issue update", "issue claim", "issue close"]);
14
6
  const TOPIC_TARGET_COMMANDS = new Set(["forum read", "forum post"]);
15
7
  const GENERIC_TARGET_COMMANDS = new Set(["audit get", "dlq inspect", "dlq replay"]);
16
8
  function readString(value) {
@@ -32,16 +24,13 @@ function collectDistinct(values) {
32
24
  function collectIssueCandidates(opts) {
33
25
  const candidates = [];
34
26
  const targetType = opts.inboundTargetType.toLowerCase();
35
- if (targetType === "issue" ||
36
- targetType === "issue_id" ||
37
- targetType === "run_root" ||
38
- targetType === "root_issue") {
27
+ if (targetType === "issue" || targetType === "issue_id" || targetType === "root_issue") {
39
28
  const fromTarget = readString(opts.inboundTargetId);
40
29
  if (fromTarget) {
41
30
  candidates.push(fromTarget);
42
31
  }
43
32
  }
44
- for (const key of ["issue_id", "root_issue_id", "run_root_id"]) {
33
+ for (const key of ["issue_id", "root_issue_id"]) {
45
34
  const fromMeta = readString(opts.metadata[key]);
46
35
  if (fromMeta) {
47
36
  candidates.push(fromMeta);
@@ -7,8 +7,5 @@
7
7
  export declare function loadBundledPrompt(name: string): string;
8
8
  export declare function appendSharedSoul(basePrompt: string, soulPrompt: string): string;
9
9
  export declare const DEFAULT_SOUL_PROMPT: string;
10
- export declare const DEFAULT_ORCHESTRATOR_PROMPT: string;
11
- export declare const DEFAULT_REVIEWER_PROMPT: string;
12
- export declare const DEFAULT_WORKER_PROMPT: string;
13
10
  export declare const DEFAULT_OPERATOR_SYSTEM_PROMPT: string;
14
11
  //# sourceMappingURL=default_prompts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"default_prompts.d.ts","sourceRoot":"","sources":["../src/default_prompts.ts"],"names":[],"mappings":"AAWA;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAStD;AAED,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAO/E;AAED,eAAO,MAAM,mBAAmB,QAAqC,CAAC;AAOtE,eAAO,MAAM,2BAA2B,QAAkE,CAAC;AAC3G,eAAO,MAAM,uBAAuB,QAA8D,CAAC;AACnG,eAAO,MAAM,qBAAqB,QAA4D,CAAC;AAC/F,eAAO,MAAM,8BAA8B,QAE1C,CAAC"}
1
+ {"version":3,"file":"default_prompts.d.ts","sourceRoot":"","sources":["../src/default_prompts.ts"],"names":[],"mappings":"AAWA;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAStD;AAED,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAO/E;AAED,eAAO,MAAM,mBAAmB,QAAqC,CAAC;AAGtE,eAAO,MAAM,8BAA8B,QAE1C,CAAC"}
@@ -32,11 +32,5 @@ export function appendSharedSoul(basePrompt, soulPrompt) {
32
32
  return `${base}\n\n${soul}`;
33
33
  }
34
34
  export const DEFAULT_SOUL_PROMPT = loadBundledPrompt("roles/soul.md");
35
- const BASE_ORCHESTRATOR_PROMPT = loadBundledPrompt("roles/orchestrator.md");
36
- const BASE_REVIEWER_PROMPT = loadBundledPrompt("roles/reviewer.md");
37
- const BASE_WORKER_PROMPT = loadBundledPrompt("roles/worker.md");
38
35
  const BASE_OPERATOR_SYSTEM_PROMPT = loadBundledPrompt("roles/operator.md");
39
- export const DEFAULT_ORCHESTRATOR_PROMPT = appendSharedSoul(BASE_ORCHESTRATOR_PROMPT, DEFAULT_SOUL_PROMPT);
40
- export const DEFAULT_REVIEWER_PROMPT = appendSharedSoul(BASE_REVIEWER_PROMPT, DEFAULT_SOUL_PROMPT);
41
- export const DEFAULT_WORKER_PROMPT = appendSharedSoul(BASE_WORKER_PROMPT, DEFAULT_SOUL_PROMPT);
42
36
  export const DEFAULT_OPERATOR_SYSTEM_PROMPT = appendMuDocumentationSection(appendSharedSoul(BASE_OPERATOR_SYSTEM_PROMPT, DEFAULT_SOUL_PROMPT));
@@ -12,10 +12,4 @@ export declare const serveExtensionPaths: string[];
12
12
  * Operator-mode extension — single facade that bundles operator UI helpers.
13
13
  */
14
14
  export declare const operatorExtensionPaths: string[];
15
- /**
16
- * Orchestrator and worker sessions run with the generic built-in tools
17
- * (bash/read/write/edit) and invoke `mu` CLI directly.
18
- */
19
- export declare const orchestratorToolExtensionPaths: string[];
20
- export declare const workerToolExtensionPaths: string[];
21
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/extensions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAQzD;;GAEG;AACH,eAAO,MAAM,mBAAmB,UAA4C,CAAC;AAE7E;;GAEG;AACH,eAAO,MAAM,sBAAsB,UAA+C,CAAC;AAEnF;;;GAGG;AACH,eAAO,MAAM,8BAA8B,EAAE,MAAM,EAAO,CAAC;AAC3D,eAAO,MAAM,wBAAwB,EAAE,MAAM,EAAO,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/extensions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAQzD;;GAEG;AACH,eAAO,MAAM,mBAAmB,UAA4C,CAAC;AAE7E;;GAEG;AACH,eAAO,MAAM,sBAAsB,UAA+C,CAAC"}
@@ -16,9 +16,3 @@ export const serveExtensionPaths = [resolveBundledExtensionPath("mu-serve")];
16
16
  * Operator-mode extension — single facade that bundles operator UI helpers.
17
17
  */
18
18
  export const operatorExtensionPaths = [resolveBundledExtensionPath("mu-operator")];
19
- /**
20
- * Orchestrator and worker sessions run with the generic built-in tools
21
- * (bash/read/write/edit) and invoke `mu` CLI directly.
22
- */
23
- export const orchestratorToolExtensionPaths = [];
24
- export const workerToolExtensionPaths = [];
@@ -1 +1 @@
1
- {"version":3,"file":"subagents-ui.d.ts","sourceRoot":"","sources":["../../src/extensions/subagents-ui.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAoB,MAAM,+BAA+B,CAAC;AAw4BpF,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,YAAY,QAkoBpD;AAED,eAAe,oBAAoB,CAAC"}
1
+ {"version":3,"file":"subagents-ui.d.ts","sourceRoot":"","sources":["../../src/extensions/subagents-ui.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAoB,MAAM,+BAA+B,CAAC;AA63BpF,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,YAAY,QAkoBpD;AAED,eAAe,oBAAoB,CAAC"}
@@ -2,8 +2,8 @@ import { fetchMuJson, muServerUrl } from "./shared.js";
2
2
  import { clearHudMode, setActiveHudMode, syncHudModeStatus } from "./hud-mode.js";
3
3
  import { registerMuSubcommand } from "./mu-command-dispatcher.js";
4
4
  const DEFAULT_PREFIX = "mu-sub-";
5
- const DEFAULT_ROLE_TAG = "role:worker";
6
- const DEFAULT_SPAWN_MODE = "worker";
5
+ const DEFAULT_ISSUE_TAG_FILTER = null;
6
+ const DEFAULT_SPAWN_MODE = "operator";
7
7
  const ISSUE_LIST_LIMIT = 40;
8
8
  const MU_CLI_TIMEOUT_MS = 12_000;
9
9
  const DEFAULT_REFRESH_INTERVAL_MS = 8_000;
@@ -38,21 +38,13 @@ function issueHasSession(sessions, issueId) {
38
38
  }
39
39
  function buildSubagentPrompt(issue, mode) {
40
40
  switch (mode) {
41
- case "worker":
41
+ case "operator":
42
42
  return [
43
43
  `Work issue ${issue.id} (${truncateOneLine(issue.title, 80)}).`,
44
44
  `First run: mu issues claim ${issue.id}.`,
45
45
  `Keep forum updates in topic issue:${issue.id}.`,
46
46
  "When done, close with an explicit outcome and summary.",
47
47
  ].join(" ");
48
- case "reviewer":
49
- return [
50
- `Review issue ${issue.id} (${truncateOneLine(issue.title, 80)}).`,
51
- `First run: mu issues claim ${issue.id}.`,
52
- "Validate acceptance criteria with concrete checks and evidence.",
53
- "Post PASS/FAIL verdict, blockers, and required fixes in topic issue:<id>.",
54
- "Close the issue with explicit outcome and review summary.",
55
- ].join(" ");
56
48
  case "researcher":
57
49
  return [
58
50
  `Research issue ${issue.id} (${truncateOneLine(issue.title, 80)}).`,
@@ -98,7 +90,7 @@ function createDefaultState() {
98
90
  sessions: [],
99
91
  sessionError: null,
100
92
  issueRootId: null,
101
- issueRoleTag: DEFAULT_ROLE_TAG,
93
+ issueTagFilter: DEFAULT_ISSUE_TAG_FILTER,
102
94
  readyIssues: [],
103
95
  activeIssues: [],
104
96
  issueError: null,
@@ -265,16 +257,16 @@ async function listTmuxSessions(prefix) {
265
257
  .sort((left, right) => left.localeCompare(right));
266
258
  return { sessions, error: null };
267
259
  }
268
- async function listIssueSlices(rootId, roleTag) {
260
+ async function listIssueSlices(rootId, tagFilter) {
269
261
  const readyArgs = ["issues", "ready", "--json", "--limit", String(ISSUE_LIST_LIMIT)];
270
262
  const activeArgs = ["issues", "list", "--status", "in_progress", "--json", "--limit", String(ISSUE_LIST_LIMIT)];
271
263
  if (rootId) {
272
264
  readyArgs.push("--root", rootId);
273
265
  activeArgs.push("--root", rootId);
274
266
  }
275
- if (roleTag) {
276
- readyArgs.push("--tag", roleTag);
277
- activeArgs.push("--tag", roleTag);
267
+ if (tagFilter) {
268
+ readyArgs.push("--tag", tagFilter);
269
+ activeArgs.push("--tag", tagFilter);
278
270
  }
279
271
  const [readyOutcome, activeOutcome] = await Promise.all([runMuCli(readyArgs), runMuCli(activeArgs)]);
280
272
  if (readyOutcome.exitCode !== 0 || readyOutcome.error || readyOutcome.timedOut) {
@@ -370,7 +362,7 @@ function renderActivitySentence(event) {
370
362
  if (eventType === "forum.post") {
371
363
  const message = asRecord(payload?.message);
372
364
  const body = typeof message?.body === "string" ? message.body.trim() : "";
373
- const author = typeof message?.author === "string" ? message.author.trim() : "worker";
365
+ const author = typeof message?.author === "string" ? message.author.trim() : "operator";
374
366
  if (body.length === 0) {
375
367
  return null;
376
368
  }
@@ -466,19 +458,16 @@ function computeQueueDrift(sessions, activeIssues) {
466
458
  orphanSessions,
467
459
  };
468
460
  }
469
- function normalizeRoleTag(raw) {
461
+ function normalizeIssueTag(raw) {
470
462
  const trimmed = raw.trim();
471
463
  if (!trimmed || trimmed.toLowerCase() === "clear") {
472
464
  return null;
473
465
  }
474
- if (trimmed === "worker" || trimmed === "orchestrator" || trimmed === "reviewer" || trimmed === "researcher") {
475
- return `role:${trimmed}`;
476
- }
477
466
  return trimmed;
478
467
  }
479
468
  function parseSpawnMode(raw) {
480
469
  const value = raw.trim().toLowerCase();
481
- if (value === "worker" || value === "reviewer" || value === "researcher") {
470
+ if (value === "operator" || value === "researcher") {
482
471
  return value;
483
472
  }
484
473
  return null;
@@ -509,7 +498,7 @@ function parseSecondsBounded(secondsRaw, minSeconds, maxSeconds, field) {
509
498
  }
510
499
  function subagentsSnapshot(state, format) {
511
500
  const issueScope = state.issueRootId ?? "(all roots)";
512
- const roleScope = state.issueRoleTag ?? "(all roles)";
501
+ const tagScope = state.issueTagFilter ?? "(all tags)";
513
502
  const drift = computeQueueDrift(state.sessions, state.activeIssues);
514
503
  const refreshStale = isRefreshStale(state.lastUpdatedMs, state.staleAfterMs);
515
504
  const staleCount = drift.activeWithoutSessionIds.length + drift.orphanSessions.length;
@@ -524,7 +513,7 @@ function subagentsSnapshot(state, format) {
524
513
  `health: ${health}`,
525
514
  `prefix: ${state.prefix || "(all sessions)"}`,
526
515
  `issue_root: ${issueScope}`,
527
- `issue_role: ${roleScope}`,
516
+ `issue_tag_filter: ${tagScope}`,
528
517
  `spawn_mode: ${state.spawnMode}`,
529
518
  `spawn_paused: ${paused}`,
530
519
  `queues: ${state.readyIssues.length} ready / ${state.activeIssues.length} active`,
@@ -542,7 +531,7 @@ function subagentsSnapshot(state, format) {
542
531
  "HUD(subagents)",
543
532
  `health=${health}`,
544
533
  `root=${issueScope}`,
545
- `role=${roleScope}`,
534
+ `tag=${tagScope}`,
546
535
  `mode=${state.spawnMode}`,
547
536
  `paused=${paused}`,
548
537
  `ready=${state.readyIssues.length}`,
@@ -564,8 +553,8 @@ function renderSubagentsUi(ctx, state) {
564
553
  return;
565
554
  }
566
555
  const issueScope = state.issueRootId ? `root:${state.issueRootId}` : "all-roots";
567
- const roleScope = state.issueRoleTag ? state.issueRoleTag : "(all roles)";
568
- const scopeCompact = truncateOneLine(`${issueScope} · ${roleScope}`, WIDGET_SCOPE_MAX);
556
+ const tagScope = state.issueTagFilter ? state.issueTagFilter : "(all tags)";
557
+ const scopeCompact = truncateOneLine(`${issueScope} · ${tagScope}`, WIDGET_SCOPE_MAX);
569
558
  const prefixCompact = truncateOneLine(state.prefix || "(all sessions)", WIDGET_PREFIX_MAX);
570
559
  const refreshStale = isRefreshStale(state.lastUpdatedMs, state.staleAfterMs);
571
560
  const drift = computeQueueDrift(state.sessions, state.activeIssues);
@@ -651,7 +640,7 @@ function renderSubagentsUi(ctx, state) {
651
640
  lines.push(ctx.ui.theme.fg("muted", "(no recent subagent updates yet)"));
652
641
  }
653
642
  else {
654
- lines.push(ctx.ui.theme.fg("muted", "(no active workers)"));
643
+ lines.push(ctx.ui.theme.fg("muted", "(no active operators)"));
655
644
  }
656
645
  }
657
646
  else {
@@ -667,8 +656,8 @@ function subagentsUsageText() {
667
656
  " /mu subagents on|off|toggle|status|refresh|snapshot",
668
657
  " /mu subagents prefix <text|clear>",
669
658
  " /mu subagents root <issue-id|clear>",
670
- " /mu subagents role <tag|clear>",
671
- " /mu subagents mode <worker|reviewer|researcher>",
659
+ " /mu subagents tag <tag|clear>",
660
+ " /mu subagents mode <operator|researcher>",
672
661
  " /mu subagents refresh-interval <seconds>",
673
662
  " /mu subagents stale-after <seconds>",
674
663
  " /mu subagents pause <on|off>",
@@ -681,7 +670,7 @@ function subagentsDetails(state) {
681
670
  enabled: state.enabled,
682
671
  prefix: state.prefix,
683
672
  issue_root_id: state.issueRootId,
684
- issue_role_tag: state.issueRoleTag,
673
+ issue_tag_filter: state.issueTagFilter,
685
674
  spawn_mode: state.spawnMode,
686
675
  spawn_paused: state.spawnPaused,
687
676
  refresh_seconds: Math.round(state.refreshIntervalMs / 1_000),
@@ -722,7 +711,7 @@ export function subagentsUiExtension(pi) {
722
711
  }
723
712
  const [tmux, issues] = await Promise.all([
724
713
  listTmuxSessions(state.prefix),
725
- listIssueSlices(state.issueRootId, state.issueRoleTag),
714
+ listIssueSlices(state.issueRootId, state.issueTagFilter),
726
715
  ]);
727
716
  state.sessions = tmux.sessions;
728
717
  state.sessionError = tmux.error;
@@ -780,7 +769,7 @@ export function subagentsUiExtension(pi) {
780
769
  const when = state.lastUpdatedMs == null ? "never" : new Date(state.lastUpdatedMs).toLocaleTimeString();
781
770
  const status = state.enabled ? "enabled" : "disabled";
782
771
  const issueScope = state.issueRootId ?? "(all roots)";
783
- const issueRole = state.issueRoleTag ?? "(all roles)";
772
+ const issueTag = state.issueTagFilter ?? "(all tags)";
784
773
  const drift = computeQueueDrift(state.sessions, state.activeIssues);
785
774
  const refreshStale = isRefreshStale(state.lastUpdatedMs, state.staleAfterMs);
786
775
  const issueError = state.issueError ? `\nissue_error: ${state.issueError}` : "";
@@ -803,7 +792,7 @@ export function subagentsUiExtension(pi) {
803
792
  `Subagents monitor ${status}`,
804
793
  `prefix: ${state.prefix || "(all sessions)"}`,
805
794
  `issue_root: ${issueScope}`,
806
- `issue_role: ${issueRole}`,
795
+ `issue_tag_filter: ${issueTag}`,
807
796
  `spawn_mode: ${state.spawnMode}`,
808
797
  `spawn_paused: ${state.spawnPaused ? "yes" : "no"}`,
809
798
  `refresh_seconds: ${Math.round(state.refreshIntervalMs / 1_000)}`,
@@ -877,18 +866,18 @@ export function subagentsUiExtension(pi) {
877
866
  await refresh(ctx);
878
867
  return { ok: true, message: `Subagents root set to ${state.issueRootId ?? "(all roots)"}.`, level: "info" };
879
868
  }
880
- case "set_role": {
881
- const value = params.role_tag?.trim();
869
+ case "set_tag": {
870
+ const value = params.issue_tag?.trim();
882
871
  if (!value) {
883
- return { ok: false, message: "Missing role/tag value.", level: "error" };
872
+ return { ok: false, message: "Missing tag value.", level: "error" };
884
873
  }
885
- state.issueRoleTag = normalizeRoleTag(value);
874
+ state.issueTagFilter = normalizeIssueTag(value);
886
875
  state.enabled = true;
887
876
  ensurePolling();
888
877
  await refresh(ctx);
889
878
  return {
890
879
  ok: true,
891
- message: `Subagents issue tag filter set to ${state.issueRoleTag ?? "(all roles)"}.`,
880
+ message: `Subagents issue tag filter set to ${state.issueTagFilter ?? "(all tags)"}.`,
892
881
  level: "info",
893
882
  };
894
883
  }
@@ -973,16 +962,16 @@ export function subagentsUiExtension(pi) {
973
962
  state.issueRootId = trimmed.toLowerCase() === "clear" ? null : trimmed;
974
963
  changed.push("root_issue_id");
975
964
  }
976
- if (params.role_tag !== undefined) {
977
- if (typeof params.role_tag !== "string") {
978
- return { ok: false, message: "role_tag must be a string.", level: "error" };
965
+ if (params.issue_tag !== undefined) {
966
+ if (typeof params.issue_tag !== "string") {
967
+ return { ok: false, message: "issue_tag must be a string.", level: "error" };
979
968
  }
980
- const trimmed = params.role_tag.trim();
969
+ const trimmed = params.issue_tag.trim();
981
970
  if (trimmed.length === 0) {
982
- return { ok: false, message: "role_tag must not be empty.", level: "error" };
971
+ return { ok: false, message: "issue_tag must not be empty.", level: "error" };
983
972
  }
984
- state.issueRoleTag = normalizeRoleTag(trimmed);
985
- changed.push("role_tag");
973
+ state.issueTagFilter = normalizeIssueTag(trimmed);
974
+ changed.push("issue_tag");
986
975
  }
987
976
  if (params.spawn_mode !== undefined) {
988
977
  if (typeof params.spawn_mode !== "string") {
@@ -1056,7 +1045,7 @@ export function subagentsUiExtension(pi) {
1056
1045
  }
1057
1046
  spawnLimit = parsed;
1058
1047
  }
1059
- const issueSlices = await listIssueSlices(state.issueRootId, state.issueRoleTag);
1048
+ const issueSlices = await listIssueSlices(state.issueRootId, state.issueTagFilter);
1060
1049
  state.readyIssues = issueSlices.ready;
1061
1050
  state.activeIssues = issueSlices.active;
1062
1051
  state.issueError = issueSlices.error;
@@ -1153,7 +1142,7 @@ export function subagentsUiExtension(pi) {
1153
1142
  registerMuSubcommand(pi, {
1154
1143
  subcommand: "subagents",
1155
1144
  summary: "Monitor tmux subagent sessions + issue queue, and spawn ready issue sessions",
1156
- usage: "/mu subagents on|off|toggle|status|refresh|snapshot|prefix|root|role|mode|refresh-interval|stale-after|pause|spawn",
1145
+ usage: "/mu subagents on|off|toggle|status|refresh|snapshot|prefix|root|tag|mode|refresh-interval|stale-after|pause|spawn",
1157
1146
  handler: async (args, ctx) => {
1158
1147
  activeCtx = ctx;
1159
1148
  const tokens = args
@@ -1187,8 +1176,8 @@ export function subagentsUiExtension(pi) {
1187
1176
  case "root":
1188
1177
  params = { action: "set_root", root_issue_id: tokens.slice(1).join(" ") };
1189
1178
  break;
1190
- case "role":
1191
- params = { action: "set_role", role_tag: tokens.slice(1).join(" ") };
1179
+ case "tag":
1180
+ params = { action: "set_tag", issue_tag: tokens.slice(1).join(" ") };
1192
1181
  break;
1193
1182
  case "mode":
1194
1183
  params = { action: "set_mode", spawn_mode: tokens[1] };
@@ -1248,7 +1237,7 @@ export function subagentsUiExtension(pi) {
1248
1237
  "refresh",
1249
1238
  "set_prefix",
1250
1239
  "set_root",
1251
- "set_role",
1240
+ "set_tag",
1252
1241
  "set_mode",
1253
1242
  "set_refresh_interval",
1254
1243
  "set_stale_after",
@@ -1259,8 +1248,8 @@ export function subagentsUiExtension(pi) {
1259
1248
  },
1260
1249
  prefix: { type: "string" },
1261
1250
  root_issue_id: { type: "string" },
1262
- role_tag: { type: "string" },
1263
- spawn_mode: { type: "string", enum: ["worker", "reviewer", "researcher"] },
1251
+ issue_tag: { type: "string" },
1252
+ spawn_mode: { type: "string", enum: ["operator", "researcher"] },
1264
1253
  refresh_seconds: { type: "number", minimum: MIN_REFRESH_SECONDS, maximum: MAX_REFRESH_SECONDS },
1265
1254
  stale_after_seconds: { type: "number", minimum: MIN_STALE_SECONDS, maximum: MAX_STALE_SECONDS },
1266
1255
  spawn_paused: { type: "boolean" },
package/dist/index.d.ts CHANGED
@@ -1,9 +1,8 @@
1
1
  export * from "./backend.js";
2
2
  export * from "./command_context.js";
3
- export { DEFAULT_OPERATOR_SYSTEM_PROMPT, DEFAULT_ORCHESTRATOR_PROMPT, DEFAULT_REVIEWER_PROMPT, DEFAULT_SOUL_PROMPT, DEFAULT_WORKER_PROMPT, appendSharedSoul, loadBundledPrompt, } from "./default_prompts.js";
3
+ export { DEFAULT_OPERATOR_SYSTEM_PROMPT, DEFAULT_SOUL_PROMPT, appendSharedSoul, loadBundledPrompt, } from "./default_prompts.js";
4
4
  export * from "./extensions/index.js";
5
5
  export * from "./operator.js";
6
- export * from "./mu_roles.js";
7
6
  export * from "./prompt.js";
8
7
  export * from "./session_factory.js";
9
8
  export * from "./session_turn.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,OAAO,EACN,8BAA8B,EAC9B,2BAA2B,EAC3B,uBAAuB,EACvB,mBAAmB,EACnB,qBAAqB,EACrB,gBAAgB,EAChB,iBAAiB,GACjB,MAAM,sBAAsB,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,OAAO,EACN,8BAA8B,EAC9B,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,GACjB,MAAM,sBAAsB,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC"}
package/dist/index.js CHANGED
@@ -1,9 +1,8 @@
1
1
  export * from "./backend.js";
2
2
  export * from "./command_context.js";
3
- export { DEFAULT_OPERATOR_SYSTEM_PROMPT, DEFAULT_ORCHESTRATOR_PROMPT, DEFAULT_REVIEWER_PROMPT, DEFAULT_SOUL_PROMPT, DEFAULT_WORKER_PROMPT, appendSharedSoul, loadBundledPrompt, } from "./default_prompts.js";
3
+ export { DEFAULT_OPERATOR_SYSTEM_PROMPT, DEFAULT_SOUL_PROMPT, appendSharedSoul, loadBundledPrompt, } from "./default_prompts.js";
4
4
  export * from "./extensions/index.js";
5
5
  export * from "./operator.js";
6
- export * from "./mu_roles.js";
7
6
  export * from "./prompt.js";
8
7
  export * from "./session_factory.js";
9
8
  export * from "./session_turn.js";
@@ -32,18 +32,6 @@ export declare const OperatorApprovedCommandSchema: z.ZodDiscriminatedUnion<[z.Z
32
32
  kind: z.ZodLiteral<"forum_read">;
33
33
  topic: z.ZodOptional<z.ZodString>;
34
34
  limit: z.ZodOptional<z.ZodNumber>;
35
- }, z.core.$strip>, z.ZodObject<{
36
- kind: z.ZodLiteral<"run_list">;
37
- }, z.core.$strip>, z.ZodObject<{
38
- kind: z.ZodLiteral<"run_status">;
39
- root_issue_id: z.ZodOptional<z.ZodString>;
40
- }, z.core.$strip>, z.ZodObject<{
41
- kind: z.ZodLiteral<"run_resume">;
42
- root_issue_id: z.ZodOptional<z.ZodString>;
43
- max_steps: z.ZodOptional<z.ZodNumber>;
44
- }, z.core.$strip>, z.ZodObject<{
45
- kind: z.ZodLiteral<"run_interrupt">;
46
- root_issue_id: z.ZodOptional<z.ZodString>;
47
35
  }, z.core.$strip>, z.ZodObject<{
48
36
  kind: z.ZodLiteral<"reload">;
49
37
  }, z.core.$strip>, z.ZodObject<{
@@ -65,10 +53,6 @@ export declare const OperatorApprovedCommandSchema: z.ZodDiscriminatedUnion<[z.Z
65
53
  }, z.core.$strip>, z.ZodObject<{
66
54
  kind: z.ZodLiteral<"operator_thinking_set">;
67
55
  thinking: z.ZodString;
68
- }, z.core.$strip>, z.ZodObject<{
69
- kind: z.ZodLiteral<"run_start">;
70
- prompt: z.ZodString;
71
- max_steps: z.ZodOptional<z.ZodNumber>;
72
56
  }, z.core.$strip>], "kind">;
73
57
  export type OperatorApprovedCommand = z.infer<typeof OperatorApprovedCommandSchema>;
74
58
  export declare const OperatorBackendTurnResultSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
@@ -89,18 +73,6 @@ export declare const OperatorBackendTurnResultSchema: z.ZodDiscriminatedUnion<[z
89
73
  kind: z.ZodLiteral<"forum_read">;
90
74
  topic: z.ZodOptional<z.ZodString>;
91
75
  limit: z.ZodOptional<z.ZodNumber>;
92
- }, z.core.$strip>, z.ZodObject<{
93
- kind: z.ZodLiteral<"run_list">;
94
- }, z.core.$strip>, z.ZodObject<{
95
- kind: z.ZodLiteral<"run_status">;
96
- root_issue_id: z.ZodOptional<z.ZodString>;
97
- }, z.core.$strip>, z.ZodObject<{
98
- kind: z.ZodLiteral<"run_resume">;
99
- root_issue_id: z.ZodOptional<z.ZodString>;
100
- max_steps: z.ZodOptional<z.ZodNumber>;
101
- }, z.core.$strip>, z.ZodObject<{
102
- kind: z.ZodLiteral<"run_interrupt">;
103
- root_issue_id: z.ZodOptional<z.ZodString>;
104
76
  }, z.core.$strip>, z.ZodObject<{
105
77
  kind: z.ZodLiteral<"reload">;
106
78
  }, z.core.$strip>, z.ZodObject<{
@@ -122,10 +94,6 @@ export declare const OperatorBackendTurnResultSchema: z.ZodDiscriminatedUnion<[z
122
94
  }, z.core.$strip>, z.ZodObject<{
123
95
  kind: z.ZodLiteral<"operator_thinking_set">;
124
96
  thinking: z.ZodString;
125
- }, z.core.$strip>, z.ZodObject<{
126
- kind: z.ZodLiteral<"run_start">;
127
- prompt: z.ZodString;
128
- max_steps: z.ZodOptional<z.ZodNumber>;
129
97
  }, z.core.$strip>], "kind">;
130
98
  }, z.core.$strip>], "kind">;
131
99
  export type OperatorBackendTurnResult = z.infer<typeof OperatorBackendTurnResultSchema>;
@@ -158,7 +126,6 @@ export type OperatorDecision = {
158
126
  };
159
127
  export type ApprovedCommandBrokerOpts = {
160
128
  contextResolver?: CommandContextResolver;
161
- runTriggersEnabled?: boolean;
162
129
  };
163
130
  export declare class ApprovedCommandBroker {
164
131
  #private;
@@ -1 +1 @@
1
- {"version":3,"file":"operator.d.ts","sourceRoot":"","sources":["../src/operator.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAmB,KAAK,mBAAmB,EAAE,KAAK,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjG,OAAO,EAAE,8BAA8B,EAAE,MAAM,sBAAsB,CAAC;AAEtE,MAAM,MAAM,gCAAgC,GAAG;IAC9C,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,uBAAuB,EAAE,MAAM,CAAC;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,gCAAgC,GAAG;IAC9C,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,KAAK,eAAe,GAAG,gCAAgC,CAAC;AACxD,KAAK,eAAe,GAAG,gCAAgC,CAAC;AAIxD,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAmDxC,CAAC;AACH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAEpF,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAG1C,CAAC;AACH,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC;AAExF,MAAM,MAAM,wBAAwB,GAAG;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,eAAe,CAAC;IACzB,OAAO,EAAE,eAAe,CAAC;CACzB,CAAC;AAEF,MAAM,WAAW,wBAAwB;IACxC,OAAO,CAAC,KAAK,EAAE,wBAAwB,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC;IAC7E,OAAO,CAAC,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACjC;AAED,MAAM,MAAM,gBAAgB,GACzB;IACA,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;CACtB,GACD;IACA,IAAI,EAAE,SAAS,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;CACtB,GACD;IACA,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EACH,mBAAmB,GACnB,4BAA4B,GAC5B,yBAAyB,GACzB,iBAAiB,GACjB,mBAAmB,GACnB,sBAAsB,GACtB,uBAAuB,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;CACtB,CAAC;AAEL,MAAM,MAAM,yBAAyB,GAAG;IACvC,eAAe,CAAC,EAAE,sBAAsB,CAAC;IACzC,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC7B,CAAC;AAaF,qBAAa,qBAAqB;;gBAId,IAAI,GAAE,yBAA8B;IAKhD,OAAO,CAAC,IAAI,EAAE;QAAE,QAAQ,EAAE,uBAAuB,CAAC;QAAC,OAAO,EAAE,eAAe,CAAA;KAAE,GACjF;QACA,IAAI,EAAE,UAAU,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;KACnB,GACD;QACA,IAAI,EAAE,QAAQ,CAAC;QACf,MAAM,EACH,4BAA4B,GAC5B,iBAAiB,GACjB,mBAAmB,GACnB,sBAAsB,GACtB,uBAAuB,CAAC;QAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;KAChB;CAqJJ;AAED,MAAM,MAAM,yCAAyC,GAAG;IACvD,YAAY,EAAE,CAAC,eAAe,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC;IAClF,YAAY,EAAE,CAAC,eAAe,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACnF,IAAI,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IAC1C,OAAO,EAAE,wBAAwB,CAAC;IAClC,MAAM,CAAC,EAAE,qBAAqB,CAAC;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,gBAAgB,CAAC,EAAE,MAAM,MAAM,CAAC;IAChC,aAAa,CAAC,EAAE,MAAM,MAAM,CAAC;IAC7B,wBAAwB,CAAC,EAAE,yCAAyC,CAAC;CACrE,CAAC;AAiLF,qBAAa,gCAAiC,YAAW,yCAAyC;;gBAM9E,IAAI,EAAE,MAAM;IAuDlB,YAAY,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAK7D,YAAY,CAAC,eAAe,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUvE,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAGlC;AAED,qBAAa,wBAAwB;;gBAUjB,IAAI,EAAE,4BAA4B;IAyCxC,aAAa,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,eAAe,CAAC;QAAC,OAAO,EAAE,eAAe,CAAA;KAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAgHtG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAKlC;AAED,MAAM,MAAM,8BAA8B,GAAG;IAC5C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,mBAAmB,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;IACnE,KAAK,CAAC,EAAE,MAAM,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,qBAAqB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;CACrD,CAAC;AAEF,OAAO,EAAE,8BAA8B,EAAE,CAAC;AAiJ1C,qBAAa,0BAA2B,YAAW,wBAAwB;;gBAgBvD,IAAI,GAAE,8BAAmC;IAmJ/C,OAAO,CAAC,KAAK,EAAE,wBAAwB,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAmFlF,OAAO,IAAI,IAAI;CAKtB"}
1
+ {"version":3,"file":"operator.d.ts","sourceRoot":"","sources":["../src/operator.ts"],"names":[],"mappings":"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"}