@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 +5 -8
- package/dist/backend.d.ts +0 -2
- package/dist/backend.d.ts.map +1 -1
- package/dist/backend.js +2 -3
- package/dist/command_context.d.ts.map +1 -1
- package/dist/command_context.js +3 -14
- package/dist/default_prompts.d.ts +0 -3
- package/dist/default_prompts.d.ts.map +1 -1
- package/dist/default_prompts.js +0 -6
- package/dist/extensions/index.d.ts +0 -6
- package/dist/extensions/index.d.ts.map +1 -1
- package/dist/extensions/index.js +0 -6
- package/dist/extensions/subagents-ui.d.ts.map +1 -1
- package/dist/extensions/subagents-ui.js +42 -53
- package/dist/index.d.ts +1 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -2
- package/dist/operator.d.ts +0 -33
- package/dist/operator.d.ts.map +1 -1
- package/dist/operator.js +1 -72
- package/dist/self_documentation.d.ts.map +1 -1
- package/dist/self_documentation.js +0 -2
- package/dist/session_turn.d.ts +5 -3
- package/dist/session_turn.d.ts.map +1 -1
- package/dist/session_turn.js +27 -44
- package/package.json +3 -3
- package/prompts/roles/operator.md +1 -1
- package/prompts/skills/planning/SKILL.md +3 -3
- package/prompts/skills/subagents/SKILL.md +227 -106
- package/dist/mu_roles.d.ts +0 -13
- package/dist/mu_roles.d.ts.map +0 -1
- package/dist/mu_roles.js +0 -29
- package/prompts/roles/orchestrator.md +0 -43
- package/prompts/roles/reviewer.md +0 -35
- package/prompts/roles/worker.md +0 -38
- package/prompts/skills/reviewer/SKILL.md +0 -65
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
|
|
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
|
-
-
|
|
10
|
-
- pi CLI/SDK
|
|
11
|
-
- Prompt/template helpers
|
|
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
|
-
- `
|
|
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;
|
package/dist/backend.d.ts.map
CHANGED
|
@@ -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;
|
|
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 {
|
|
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:
|
|
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;
|
|
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"}
|
package/dist/command_context.js
CHANGED
|
@@ -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"
|
|
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;
|
|
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"}
|
package/dist/default_prompts.js
CHANGED
|
@@ -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
|
|
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"}
|
package/dist/extensions/index.js
CHANGED
|
@@ -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;
|
|
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
|
|
6
|
-
const DEFAULT_SPAWN_MODE = "
|
|
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 "
|
|
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
|
-
|
|
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,
|
|
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 (
|
|
276
|
-
readyArgs.push("--tag",
|
|
277
|
-
activeArgs.push("--tag",
|
|
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() : "
|
|
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
|
|
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 === "
|
|
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
|
|
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
|
-
`
|
|
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
|
-
`
|
|
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
|
|
568
|
-
const scopeCompact = truncateOneLine(`${issueScope} · ${
|
|
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
|
|
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
|
|
671
|
-
" /mu subagents mode <
|
|
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
|
-
|
|
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.
|
|
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
|
|
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
|
-
`
|
|
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 "
|
|
881
|
-
const value = params.
|
|
869
|
+
case "set_tag": {
|
|
870
|
+
const value = params.issue_tag?.trim();
|
|
882
871
|
if (!value) {
|
|
883
|
-
return { ok: false, message: "Missing
|
|
872
|
+
return { ok: false, message: "Missing tag value.", level: "error" };
|
|
884
873
|
}
|
|
885
|
-
state.
|
|
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.
|
|
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.
|
|
977
|
-
if (typeof params.
|
|
978
|
-
return { ok: false, message: "
|
|
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.
|
|
969
|
+
const trimmed = params.issue_tag.trim();
|
|
981
970
|
if (trimmed.length === 0) {
|
|
982
|
-
return { ok: false, message: "
|
|
971
|
+
return { ok: false, message: "issue_tag must not be empty.", level: "error" };
|
|
983
972
|
}
|
|
984
|
-
state.
|
|
985
|
-
changed.push("
|
|
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.
|
|
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|
|
|
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 "
|
|
1191
|
-
params = { action: "
|
|
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
|
-
"
|
|
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
|
-
|
|
1263
|
-
spawn_mode: { type: "string", enum: ["
|
|
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,
|
|
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";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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,
|
|
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,
|
|
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";
|
package/dist/operator.d.ts
CHANGED
|
@@ -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;
|
package/dist/operator.d.ts.map
CHANGED
|
@@ -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
|
|
1
|
+
{"version":3,"file":"operator.d.ts","sourceRoot":"","sources":["../src/operator.ts"],"names":[],"mappings":"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"}
|