@femtomc/mu-agent 26.2.72 → 26.2.74
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 +24 -45
- package/dist/extensions/branding.d.ts +1 -1
- package/dist/extensions/branding.js +3 -3
- package/dist/extensions/index.d.ts +3 -17
- package/dist/extensions/index.d.ts.map +1 -1
- package/dist/extensions/index.js +5 -19
- package/dist/extensions/mu-operator.d.ts +2 -2
- package/dist/extensions/mu-operator.d.ts.map +1 -1
- package/dist/extensions/mu-operator.js +2 -6
- package/dist/extensions/mu-serve.d.ts +2 -2
- package/dist/extensions/mu-serve.d.ts.map +1 -1
- package/dist/extensions/mu-serve.js +2 -14
- package/dist/extensions/shared.d.ts +2 -21
- package/dist/extensions/shared.d.ts.map +1 -1
- package/dist/extensions/shared.js +0 -90
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/operator.d.ts +15 -0
- package/dist/operator.d.ts.map +1 -1
- package/dist/operator.js +366 -14
- package/dist/session_factory.d.ts +12 -0
- package/dist/session_factory.d.ts.map +1 -1
- package/dist/session_factory.js +21 -2
- package/package.json +2 -3
- package/prompts/roles/operator.md +22 -45
- package/prompts/roles/orchestrator.md +17 -12
- package/prompts/roles/reviewer.md +7 -8
- package/prompts/roles/worker.md +6 -11
- package/dist/extensions/activities.d.ts +0 -7
- package/dist/extensions/activities.d.ts.map +0 -1
- package/dist/extensions/activities.js +0 -236
- package/dist/extensions/cron.d.ts +0 -7
- package/dist/extensions/cron.d.ts.map +0 -1
- package/dist/extensions/cron.js +0 -247
- package/dist/extensions/heartbeats.d.ts +0 -7
- package/dist/extensions/heartbeats.d.ts.map +0 -1
- package/dist/extensions/heartbeats.js +0 -192
- package/dist/extensions/messaging-setup/actions.d.ts +0 -22
- package/dist/extensions/messaging-setup/actions.d.ts.map +0 -1
- package/dist/extensions/messaging-setup/actions.js +0 -229
- package/dist/extensions/messaging-setup/adapters.d.ts +0 -24
- package/dist/extensions/messaging-setup/adapters.d.ts.map +0 -1
- package/dist/extensions/messaging-setup/adapters.js +0 -170
- package/dist/extensions/messaging-setup/index.d.ts +0 -17
- package/dist/extensions/messaging-setup/index.d.ts.map +0 -1
- package/dist/extensions/messaging-setup/index.js +0 -261
- package/dist/extensions/messaging-setup/parser.d.ts +0 -33
- package/dist/extensions/messaging-setup/parser.d.ts.map +0 -1
- package/dist/extensions/messaging-setup/parser.js +0 -240
- package/dist/extensions/messaging-setup/runtime.d.ts +0 -16
- package/dist/extensions/messaging-setup/runtime.d.ts.map +0 -1
- package/dist/extensions/messaging-setup/runtime.js +0 -110
- package/dist/extensions/messaging-setup/types.d.ts +0 -157
- package/dist/extensions/messaging-setup/types.d.ts.map +0 -1
- package/dist/extensions/messaging-setup/types.js +0 -4
- package/dist/extensions/messaging-setup/ui.d.ts +0 -15
- package/dist/extensions/messaging-setup/ui.d.ts.map +0 -1
- package/dist/extensions/messaging-setup/ui.js +0 -173
- package/dist/extensions/messaging-setup.d.ts +0 -3
- package/dist/extensions/messaging-setup.d.ts.map +0 -1
- package/dist/extensions/messaging-setup.js +0 -2
- package/dist/extensions/mu-full-tools.d.ts +0 -10
- package/dist/extensions/mu-full-tools.d.ts.map +0 -1
- package/dist/extensions/mu-full-tools.js +0 -25
- package/dist/extensions/mu-query-tools.d.ts +0 -10
- package/dist/extensions/mu-query-tools.d.ts.map +0 -1
- package/dist/extensions/mu-query-tools.js +0 -11
- package/dist/extensions/operator-command.d.ts +0 -14
- package/dist/extensions/operator-command.d.ts.map +0 -1
- package/dist/extensions/operator-command.js +0 -231
- package/dist/extensions/orchestration-runs-readonly.d.ts +0 -4
- package/dist/extensions/orchestration-runs-readonly.d.ts.map +0 -1
- package/dist/extensions/orchestration-runs-readonly.js +0 -226
- package/dist/extensions/orchestration-runs.d.ts +0 -4
- package/dist/extensions/orchestration-runs.d.ts.map +0 -1
- package/dist/extensions/orchestration-runs.js +0 -315
- package/dist/extensions/server-tools-readonly.d.ts +0 -4
- package/dist/extensions/server-tools-readonly.d.ts.map +0 -1
- package/dist/extensions/server-tools-readonly.js +0 -5
- package/dist/extensions/server-tools.d.ts +0 -25
- package/dist/extensions/server-tools.d.ts.map +0 -1
- package/dist/extensions/server-tools.js +0 -833
- package/prompts/skills/messaging-setup-brief.md +0 -25
package/README.md
CHANGED
|
@@ -6,7 +6,7 @@ This package provides reusable runtime pieces for chat, orchestration, and serve
|
|
|
6
6
|
|
|
7
7
|
- Messaging operator runtime + backend
|
|
8
8
|
- Command context resolution for operator command proposals
|
|
9
|
-
- Role prompt loading/defaults for orchestrator
|
|
9
|
+
- Role prompt loading/defaults for operator/orchestrator/worker/reviewer
|
|
10
10
|
- pi CLI/SDK orchestration backends and resource loader helpers
|
|
11
11
|
- Prompt/template helpers used by orchestration roles
|
|
12
12
|
|
|
@@ -17,6 +17,7 @@ Bundled defaults now live as markdown files under `packages/agent/prompts/`:
|
|
|
17
17
|
- `operator.md`
|
|
18
18
|
- `orchestrator.md`
|
|
19
19
|
- `worker.md`
|
|
20
|
+
- `reviewer.md`
|
|
20
21
|
- `soul.md` (shared tail appended to all role prompts)
|
|
21
22
|
|
|
22
23
|
These are loaded by runtime code and are the single source of truth for default system prompts.
|
|
@@ -34,7 +35,7 @@ From repo root (`mu/`):
|
|
|
34
35
|
|
|
35
36
|
```bash
|
|
36
37
|
bun run build
|
|
37
|
-
bun test packages/
|
|
38
|
+
bun test packages/agent/test
|
|
38
39
|
```
|
|
39
40
|
|
|
40
41
|
## Serve-mode extensions (`mu serve`)
|
|
@@ -46,63 +47,41 @@ not anonymous inline factories).
|
|
|
46
47
|
Current stack:
|
|
47
48
|
|
|
48
49
|
- `brandingExtension` — mu compact header/footer branding + default theme
|
|
49
|
-
- `serverToolsExtension` — status + issues/forum/events/control-plane tools
|
|
50
50
|
- `eventLogExtension` — event tail + watch widget
|
|
51
|
-
- `messagingSetupExtension` — adapter diagnostics and setup guidance
|
|
52
|
-
|
|
53
|
-
`mu serve` sets `MU_SERVER_URL` automatically for these extensions.
|
|
54
51
|
|
|
55
52
|
Default operator UI theme is `mu-gruvbox-dark`.
|
|
56
53
|
|
|
57
54
|
## Slash commands (operator-facing)
|
|
58
55
|
|
|
59
|
-
- `/mu status` — concise server status
|
|
60
|
-
- `/mu control` — active control-plane adapters and webhook routes
|
|
61
|
-
- `/mu setup` — adapter preflight
|
|
62
|
-
- `/mu setup plan <adapter>` — actionable wiring plan
|
|
63
|
-
- `/mu setup apply <adapter>` — guided config apply + control-plane reload
|
|
64
|
-
- `/mu setup verify [adapter]` — runtime verification for mounted routes
|
|
65
|
-
- `/mu setup <adapter>` — sends adapter setup brief to mu agent (`--no-agent` prints local guide)
|
|
66
56
|
- `/mu events [n]` / `/mu events tail [n]` — event log tail
|
|
67
57
|
- `/mu events watch on|off` — toggle event watch widget
|
|
68
58
|
- `/mu brand on|off|toggle` — enable/disable UI branding
|
|
59
|
+
- `/mu help` — dispatcher catalog of registered `/mu` subcommands
|
|
69
60
|
|
|
70
|
-
##
|
|
71
|
-
|
|
72
|
-
- `mu_status()`
|
|
73
|
-
- High-level server status.
|
|
74
|
-
- `mu_control_plane({ action })`
|
|
75
|
-
- `action`: `status | adapters | routes`
|
|
76
|
-
- `mu_issues({ action, ... })`
|
|
77
|
-
- `action`: `list | get | ready`
|
|
78
|
-
- `mu_forum({ action, ... })`
|
|
79
|
-
- `action`: `read | post | topics`
|
|
80
|
-
- `mu_events({ action, ... })`
|
|
81
|
-
- `action`: `tail | query`
|
|
82
|
-
- `mu_messaging_setup({ action, adapter?, public_base_url? })`
|
|
83
|
-
- `action`: `check | preflight | guide | plan | apply | verify`
|
|
84
|
-
- `adapter`: `slack | discord | telegram`
|
|
85
|
-
|
|
86
|
-
### Query contract (context-safe by default)
|
|
61
|
+
## Tooling model (CLI-first)
|
|
87
62
|
|
|
88
|
-
|
|
63
|
+
mu agent sessions rely on generic built-in tools from pi:
|
|
89
64
|
|
|
90
|
-
- `
|
|
91
|
-
- `
|
|
92
|
-
- `
|
|
65
|
+
- `bash`
|
|
66
|
+
- `read`
|
|
67
|
+
- `write`
|
|
68
|
+
- `edit`
|
|
93
69
|
|
|
94
|
-
|
|
70
|
+
State inspection and mutation are performed by invoking `mu` CLI commands
|
|
71
|
+
directly through `bash`, for example:
|
|
95
72
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
73
|
+
```bash
|
|
74
|
+
mu status --pretty
|
|
75
|
+
mu issues get <id> --pretty
|
|
76
|
+
mu forum read issue:<id> --limit 20 --pretty
|
|
77
|
+
mu issues close <id> --outcome success --pretty
|
|
78
|
+
mu control reload --pretty
|
|
79
|
+
```
|
|
99
80
|
|
|
100
|
-
|
|
101
|
-
kept compact to reduce context pollution.
|
|
81
|
+
There is no dedicated `query(...)` vs `command(...)` wrapper boundary in this package.
|
|
102
82
|
|
|
103
|
-
##
|
|
83
|
+
## Control-plane config notes
|
|
104
84
|
|
|
105
|
-
- Runtime
|
|
106
|
-
-
|
|
107
|
-
-
|
|
108
|
-
onboarding.
|
|
85
|
+
- Runtime config source of truth is `.mu/config.json`.
|
|
86
|
+
- Inspect runtime state via CLI (`mu control status`, `mu status`).
|
|
87
|
+
- Apply control-plane lifecycle mutations via CLI (`mu control reload`, `mu control update`).
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* mu-branding — Custom serve-mode TUI chrome for mu.
|
|
3
3
|
*
|
|
4
|
-
* Defaults to a
|
|
4
|
+
* Defaults to a compact, information-dense layout:
|
|
5
5
|
* - Compact header + footer
|
|
6
6
|
* - Terminal title and working message branding
|
|
7
7
|
* - Lightweight periodic status refresh (open/ready/control-plane)
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* mu-branding — Custom serve-mode TUI chrome for mu.
|
|
3
3
|
*
|
|
4
|
-
* Defaults to a
|
|
4
|
+
* Defaults to a compact, information-dense layout:
|
|
5
5
|
* - Compact header + footer
|
|
6
6
|
* - Terminal title and working message branding
|
|
7
7
|
* - Lightweight periodic status refresh (open/ready/control-plane)
|
|
@@ -164,8 +164,8 @@ export function brandingExtension(pi) {
|
|
|
164
164
|
routes: [],
|
|
165
165
|
};
|
|
166
166
|
snapshot = {
|
|
167
|
-
openCount: status.open_count,
|
|
168
|
-
readyCount: status.ready_count,
|
|
167
|
+
openCount: typeof status.open_count === "number" ? status.open_count : 0,
|
|
168
|
+
readyCount: typeof status.ready_count === "number" ? status.ready_count : 0,
|
|
169
169
|
controlPlaneActive: cp.active,
|
|
170
170
|
adapters: routesFromStatus(cp.adapters, cp.routes).map((entry) => entry.name),
|
|
171
171
|
error: null,
|
|
@@ -1,33 +1,19 @@
|
|
|
1
|
-
export { activitiesExtension } from "./activities.js";
|
|
2
1
|
export { brandingExtension } from "./branding.js";
|
|
3
|
-
export { cronExtension } from "./cron.js";
|
|
4
2
|
export { eventLogExtension } from "./event-log.js";
|
|
5
|
-
export { heartbeatsExtension } from "./heartbeats.js";
|
|
6
|
-
export { messagingSetupExtension } from "./messaging-setup.js";
|
|
7
|
-
export { muFullToolsExtension } from "./mu-full-tools.js";
|
|
8
3
|
export { muOperatorExtension } from "./mu-operator.js";
|
|
9
|
-
export { muQueryToolsExtension } from "./mu-query-tools.js";
|
|
10
4
|
export { muServeExtension } from "./mu-serve.js";
|
|
11
|
-
export { operatorCommandExtension } from "./operator-command.js";
|
|
12
|
-
export { orchestrationRunsExtension } from "./orchestration-runs.js";
|
|
13
|
-
export { orchestrationRunsReadOnlyExtension } from "./orchestration-runs-readonly.js";
|
|
14
|
-
export { serverToolsExtension, serverToolsIssueForumExtension, serverToolsReadOnlyExtension } from "./server-tools.js";
|
|
15
|
-
export { serverToolsReadonlyExtension } from "./server-tools-readonly.js";
|
|
16
5
|
/**
|
|
17
6
|
* Serve-mode extension — single facade that bundles all serve extensions.
|
|
18
7
|
*/
|
|
19
8
|
export declare const serveExtensionPaths: string[];
|
|
20
9
|
/**
|
|
21
|
-
* Operator-mode extension — single facade that bundles operator UI
|
|
22
|
-
* full mu tools + approved `/mu` command flow.
|
|
10
|
+
* Operator-mode extension — single facade that bundles operator UI helpers.
|
|
23
11
|
*/
|
|
24
12
|
export declare const operatorExtensionPaths: string[];
|
|
25
13
|
/**
|
|
26
|
-
*
|
|
14
|
+
* Orchestrator and worker sessions run with the generic built-in tools
|
|
15
|
+
* (bash/read/write/edit) and invoke `mu` CLI directly.
|
|
27
16
|
*/
|
|
28
17
|
export declare const orchestratorToolExtensionPaths: string[];
|
|
29
|
-
/**
|
|
30
|
-
* Tool-only extension bundle for worker sessions (issue/forum coordination only).
|
|
31
|
-
*/
|
|
32
18
|
export declare const workerToolExtensionPaths: string[];
|
|
33
19
|
//# 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,
|
|
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;AAQjD;;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"}
|
package/dist/extensions/index.js
CHANGED
|
@@ -1,18 +1,7 @@
|
|
|
1
|
-
export { activitiesExtension } from "./activities.js";
|
|
2
1
|
export { brandingExtension } from "./branding.js";
|
|
3
|
-
export { cronExtension } from "./cron.js";
|
|
4
2
|
export { eventLogExtension } from "./event-log.js";
|
|
5
|
-
export { heartbeatsExtension } from "./heartbeats.js";
|
|
6
|
-
export { messagingSetupExtension } from "./messaging-setup.js";
|
|
7
|
-
export { muFullToolsExtension } from "./mu-full-tools.js";
|
|
8
3
|
export { muOperatorExtension } from "./mu-operator.js";
|
|
9
|
-
export { muQueryToolsExtension } from "./mu-query-tools.js";
|
|
10
4
|
export { muServeExtension } from "./mu-serve.js";
|
|
11
|
-
export { operatorCommandExtension } from "./operator-command.js";
|
|
12
|
-
export { orchestrationRunsExtension } from "./orchestration-runs.js";
|
|
13
|
-
export { orchestrationRunsReadOnlyExtension } from "./orchestration-runs-readonly.js";
|
|
14
|
-
export { serverToolsExtension, serverToolsIssueForumExtension, serverToolsReadOnlyExtension } from "./server-tools.js";
|
|
15
|
-
export { serverToolsReadonlyExtension } from "./server-tools-readonly.js";
|
|
16
5
|
const RUNTIME_EXTENSION = import.meta.url.endsWith(".ts") ? "ts" : "js";
|
|
17
6
|
function resolveBundledExtensionPath(moduleBasename) {
|
|
18
7
|
return new URL(`./${moduleBasename}.${RUNTIME_EXTENSION}`, import.meta.url).pathname;
|
|
@@ -22,15 +11,12 @@ function resolveBundledExtensionPath(moduleBasename) {
|
|
|
22
11
|
*/
|
|
23
12
|
export const serveExtensionPaths = [resolveBundledExtensionPath("mu-serve")];
|
|
24
13
|
/**
|
|
25
|
-
* Operator-mode extension — single facade that bundles operator UI
|
|
26
|
-
* full mu tools + approved `/mu` command flow.
|
|
14
|
+
* Operator-mode extension — single facade that bundles operator UI helpers.
|
|
27
15
|
*/
|
|
28
16
|
export const operatorExtensionPaths = [resolveBundledExtensionPath("mu-operator")];
|
|
29
17
|
/**
|
|
30
|
-
*
|
|
18
|
+
* Orchestrator and worker sessions run with the generic built-in tools
|
|
19
|
+
* (bash/read/write/edit) and invoke `mu` CLI directly.
|
|
31
20
|
*/
|
|
32
|
-
export const orchestratorToolExtensionPaths = [
|
|
33
|
-
|
|
34
|
-
* Tool-only extension bundle for worker sessions (issue/forum coordination only).
|
|
35
|
-
*/
|
|
36
|
-
export const workerToolExtensionPaths = [resolveBundledExtensionPath("mu-query-tools")];
|
|
21
|
+
export const orchestratorToolExtensionPaths = [];
|
|
22
|
+
export const workerToolExtensionPaths = [];
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* mu-operator —
|
|
2
|
+
* mu-operator — Operator-mode extension facade.
|
|
3
3
|
*
|
|
4
|
-
* Bundles
|
|
4
|
+
* Bundles operator extensions behind a single extension entry so
|
|
5
5
|
* pi-coding-agent shows one "[Extensions] mu-operator" line instead of many.
|
|
6
6
|
*/
|
|
7
7
|
import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mu-operator.d.ts","sourceRoot":"","sources":["../../src/extensions/mu-operator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"mu-operator.d.ts","sourceRoot":"","sources":["../../src/extensions/mu-operator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAIlE,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,YAAY,QAGnD;AAED,eAAe,mBAAmB,CAAC"}
|
|
@@ -1,17 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* mu-operator —
|
|
2
|
+
* mu-operator — Operator-mode extension facade.
|
|
3
3
|
*
|
|
4
|
-
* Bundles
|
|
4
|
+
* Bundles operator extensions behind a single extension entry so
|
|
5
5
|
* pi-coding-agent shows one "[Extensions] mu-operator" line instead of many.
|
|
6
6
|
*/
|
|
7
7
|
import { brandingExtension } from "./branding.js";
|
|
8
8
|
import { eventLogExtension } from "./event-log.js";
|
|
9
|
-
import { muFullToolsExtension } from "./mu-full-tools.js";
|
|
10
|
-
import { operatorCommandExtension } from "./operator-command.js";
|
|
11
9
|
export function muOperatorExtension(pi) {
|
|
12
10
|
brandingExtension(pi);
|
|
13
|
-
muFullToolsExtension(pi);
|
|
14
11
|
eventLogExtension(pi);
|
|
15
|
-
operatorCommandExtension(pi);
|
|
16
12
|
}
|
|
17
13
|
export default muOperatorExtension;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* mu-serve —
|
|
2
|
+
* mu-serve — Serve-mode extension facade.
|
|
3
3
|
*
|
|
4
|
-
* Bundles
|
|
4
|
+
* Bundles serve extensions behind a single extension entry so
|
|
5
5
|
* pi-coding-agent shows one "[Extensions] mu-serve" line instead of many.
|
|
6
6
|
*/
|
|
7
7
|
import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mu-serve.d.ts","sourceRoot":"","sources":["../../src/extensions/mu-serve.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"mu-serve.d.ts","sourceRoot":"","sources":["../../src/extensions/mu-serve.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAIlE,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,YAAY,QAGhD;AAED,eAAe,gBAAgB,CAAC"}
|
|
@@ -1,25 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* mu-serve —
|
|
2
|
+
* mu-serve — Serve-mode extension facade.
|
|
3
3
|
*
|
|
4
|
-
* Bundles
|
|
4
|
+
* Bundles serve extensions behind a single extension entry so
|
|
5
5
|
* pi-coding-agent shows one "[Extensions] mu-serve" line instead of many.
|
|
6
6
|
*/
|
|
7
7
|
import { brandingExtension } from "./branding.js";
|
|
8
|
-
import { serverToolsExtension } from "./server-tools.js";
|
|
9
8
|
import { eventLogExtension } from "./event-log.js";
|
|
10
|
-
import { messagingSetupExtension } from "./messaging-setup.js";
|
|
11
|
-
import { orchestrationRunsExtension } from "./orchestration-runs.js";
|
|
12
|
-
import { activitiesExtension } from "./activities.js";
|
|
13
|
-
import { heartbeatsExtension } from "./heartbeats.js";
|
|
14
|
-
import { cronExtension } from "./cron.js";
|
|
15
9
|
export function muServeExtension(pi) {
|
|
16
10
|
brandingExtension(pi);
|
|
17
|
-
serverToolsExtension(pi);
|
|
18
11
|
eventLogExtension(pi);
|
|
19
|
-
messagingSetupExtension(pi);
|
|
20
|
-
orchestrationRunsExtension(pi);
|
|
21
|
-
activitiesExtension(pi);
|
|
22
|
-
heartbeatsExtension(pi);
|
|
23
|
-
cronExtension(pi);
|
|
24
12
|
}
|
|
25
13
|
export default muServeExtension;
|
|
@@ -41,9 +41,9 @@ export type MuControlPlaneStatus = {
|
|
|
41
41
|
};
|
|
42
42
|
export type MuStatusResponse = {
|
|
43
43
|
repo_root: string;
|
|
44
|
-
open_count: number;
|
|
45
|
-
ready_count: number;
|
|
46
44
|
control_plane: MuControlPlaneStatus;
|
|
45
|
+
open_count?: number;
|
|
46
|
+
ready_count?: number;
|
|
47
47
|
};
|
|
48
48
|
export declare function muServerUrl(): string | null;
|
|
49
49
|
export declare function clampInt(value: number | undefined, fallback: number, min: number, max: number): number;
|
|
@@ -53,23 +53,4 @@ export declare function fetchMuJson<T>(path: string, opts?: {
|
|
|
53
53
|
body?: unknown;
|
|
54
54
|
}): Promise<T>;
|
|
55
55
|
export declare function fetchMuStatus(timeoutMs?: number): Promise<MuStatusResponse>;
|
|
56
|
-
export declare function asRecord(value: unknown): Record<string, unknown> | null;
|
|
57
|
-
export declare function asArray(value: unknown): unknown[];
|
|
58
|
-
export declare function asString(value: unknown): string | null;
|
|
59
|
-
export declare function asNumber(value: unknown): number | null;
|
|
60
|
-
export declare function previewText(value: unknown, maxChars?: number): string;
|
|
61
|
-
export declare function previewLines(value: unknown, opts?: {
|
|
62
|
-
maxLines?: number;
|
|
63
|
-
maxCharsPerLine?: number;
|
|
64
|
-
}): string[];
|
|
65
|
-
export declare function parseFieldPaths(value: string | undefined): string[];
|
|
66
|
-
export declare function selectFields(source: unknown, paths: string[]): Record<string, unknown>;
|
|
67
|
-
export declare function textResult(text: string, details?: Record<string, unknown>): {
|
|
68
|
-
content: {
|
|
69
|
-
type: "text";
|
|
70
|
-
text: string;
|
|
71
|
-
}[];
|
|
72
|
-
details: Record<string, unknown>;
|
|
73
|
-
};
|
|
74
|
-
export declare function toJsonText(value: unknown): string;
|
|
75
56
|
//# sourceMappingURL=shared.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/extensions/shared.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,mBAAmB,GAAG;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;IACtD,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,eAAe,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAC7C,aAAa,EAAE,oBAAoB,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,8BAA8B,GAAG;IAC5C,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAC/C,cAAc,EAAE,yBAAyB,GAAG,IAAI,CAAC;IACjD,WAAW,EAAE,yBAAyB,GAAG,IAAI,CAAC;CAC9C,CAAC;AAEF,MAAM,MAAM,iCAAiC,GAAG;IAC/C,oBAAoB,EAAE,MAAM,CAAC;IAC7B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,8BAA8B,EAAE,MAAM,CAAC;IACvC,mCAAmC,EAAE,MAAM,CAAC;IAC5C,sBAAsB,EAAE,MAAM,CAAC;IAC/B,iBAAiB,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IAClC,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAC/B,UAAU,EAAE,8BAA8B,CAAC;IAC3C,aAAa,EAAE;QACd,QAAQ,EAAE,iCAAiC,CAAC;KAC5C,CAAC;CACF,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/extensions/shared.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,mBAAmB,GAAG;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;IACtD,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,eAAe,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAC7C,aAAa,EAAE,oBAAoB,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,8BAA8B,GAAG;IAC5C,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAC/C,cAAc,EAAE,yBAAyB,GAAG,IAAI,CAAC;IACjD,WAAW,EAAE,yBAAyB,GAAG,IAAI,CAAC;CAC9C,CAAC;AAEF,MAAM,MAAM,iCAAiC,GAAG;IAC/C,oBAAoB,EAAE,MAAM,CAAC;IAC7B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,8BAA8B,EAAE,MAAM,CAAC;IACvC,mCAAmC,EAAE,MAAM,CAAC;IAC5C,sBAAsB,EAAE,MAAM,CAAC;IAC/B,iBAAiB,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IAClC,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAC/B,UAAU,EAAE,8BAA8B,CAAC;IAC3C,aAAa,EAAE;QACd,QAAQ,EAAE,iCAAiC,CAAC;KAC5C,CAAC;CACF,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,oBAAoB,CAAC;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,wBAAgB,WAAW,IAAI,MAAM,GAAG,IAAI,CAG3C;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAKtG;AAED,wBAAsB,WAAW,CAAC,CAAC,EAClC,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAO,GAChE,OAAO,CAAC,CAAC,CAAC,CA4BZ;AAiCD,wBAAsB,aAAa,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAGjF"}
|
|
@@ -64,93 +64,3 @@ export async function fetchMuStatus(timeoutMs) {
|
|
|
64
64
|
const status = await fetchMuJson("/api/status", { timeoutMs });
|
|
65
65
|
return ensureGenerationScopedStatus(status);
|
|
66
66
|
}
|
|
67
|
-
export function asRecord(value) {
|
|
68
|
-
if (typeof value !== "object" || value == null || Array.isArray(value)) {
|
|
69
|
-
return null;
|
|
70
|
-
}
|
|
71
|
-
return value;
|
|
72
|
-
}
|
|
73
|
-
export function asArray(value) {
|
|
74
|
-
return Array.isArray(value) ? value : [];
|
|
75
|
-
}
|
|
76
|
-
export function asString(value) {
|
|
77
|
-
return typeof value === "string" ? value : null;
|
|
78
|
-
}
|
|
79
|
-
export function asNumber(value) {
|
|
80
|
-
return typeof value === "number" && Number.isFinite(value) ? value : null;
|
|
81
|
-
}
|
|
82
|
-
export function previewText(value, maxChars = 220) {
|
|
83
|
-
const raw = typeof value === "string"
|
|
84
|
-
? value
|
|
85
|
-
: value == null
|
|
86
|
-
? ""
|
|
87
|
-
: (() => {
|
|
88
|
-
try {
|
|
89
|
-
return JSON.stringify(value);
|
|
90
|
-
}
|
|
91
|
-
catch {
|
|
92
|
-
return String(value);
|
|
93
|
-
}
|
|
94
|
-
})();
|
|
95
|
-
const compact = raw.replace(/\s+/g, " ").trim();
|
|
96
|
-
if (compact.length <= maxChars) {
|
|
97
|
-
return compact;
|
|
98
|
-
}
|
|
99
|
-
const keep = Math.max(1, maxChars - 1);
|
|
100
|
-
return `${compact.slice(0, keep)}…`;
|
|
101
|
-
}
|
|
102
|
-
export function previewLines(value, opts = {}) {
|
|
103
|
-
const maxLines = clampInt(opts.maxLines, 12, 1, 200);
|
|
104
|
-
const maxCharsPerLine = clampInt(opts.maxCharsPerLine, 220, 20, 5_000);
|
|
105
|
-
const lines = asArray(value);
|
|
106
|
-
const tail = lines.slice(-maxLines);
|
|
107
|
-
return tail.map((line) => previewText(line, maxCharsPerLine));
|
|
108
|
-
}
|
|
109
|
-
export function parseFieldPaths(value) {
|
|
110
|
-
if (!value) {
|
|
111
|
-
return [];
|
|
112
|
-
}
|
|
113
|
-
return value
|
|
114
|
-
.split(",")
|
|
115
|
-
.map((segment) => segment.trim())
|
|
116
|
-
.filter((segment) => segment.length > 0)
|
|
117
|
-
.slice(0, 32);
|
|
118
|
-
}
|
|
119
|
-
function readPath(source, path) {
|
|
120
|
-
if (path.length === 0) {
|
|
121
|
-
return source;
|
|
122
|
-
}
|
|
123
|
-
const segments = path.split(".").filter((segment) => segment.length > 0);
|
|
124
|
-
let cursor = source;
|
|
125
|
-
for (const segment of segments) {
|
|
126
|
-
if (Array.isArray(cursor)) {
|
|
127
|
-
const index = Number.parseInt(segment, 10);
|
|
128
|
-
if (!Number.isFinite(index) || index < 0 || index >= cursor.length) {
|
|
129
|
-
return undefined;
|
|
130
|
-
}
|
|
131
|
-
cursor = cursor[index];
|
|
132
|
-
continue;
|
|
133
|
-
}
|
|
134
|
-
if (typeof cursor !== "object" || cursor == null) {
|
|
135
|
-
return undefined;
|
|
136
|
-
}
|
|
137
|
-
cursor = cursor[segment];
|
|
138
|
-
}
|
|
139
|
-
return cursor;
|
|
140
|
-
}
|
|
141
|
-
export function selectFields(source, paths) {
|
|
142
|
-
const out = {};
|
|
143
|
-
for (const path of paths) {
|
|
144
|
-
out[path] = readPath(source, path);
|
|
145
|
-
}
|
|
146
|
-
return out;
|
|
147
|
-
}
|
|
148
|
-
export function textResult(text, details = {}) {
|
|
149
|
-
return {
|
|
150
|
-
content: [{ type: "text", text }],
|
|
151
|
-
details,
|
|
152
|
-
};
|
|
153
|
-
}
|
|
154
|
-
export function toJsonText(value) {
|
|
155
|
-
return JSON.stringify(value, null, 2);
|
|
156
|
-
}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export * from "./backend.js";
|
|
2
2
|
export * from "./command_context.js";
|
|
3
|
-
export { DEFAULT_SOUL_PROMPT, appendSharedSoul, loadBundledPrompt } from "./default_prompts.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";
|
|
4
4
|
export * from "./extensions/index.js";
|
|
5
5
|
export * from "./operator.js";
|
|
6
6
|
export * from "./mu_roles.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,
|
|
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"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export * from "./backend.js";
|
|
2
2
|
export * from "./command_context.js";
|
|
3
|
-
export { DEFAULT_SOUL_PROMPT, appendSharedSoul, loadBundledPrompt } from "./default_prompts.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";
|
|
4
4
|
export * from "./extensions/index.js";
|
|
5
5
|
export * from "./operator.js";
|
|
6
6
|
export * from "./mu_roles.js";
|
package/dist/operator.d.ts
CHANGED
|
@@ -141,6 +141,11 @@ export declare class ApprovedCommandBroker {
|
|
|
141
141
|
details?: string;
|
|
142
142
|
};
|
|
143
143
|
}
|
|
144
|
+
export type MessagingOperatorConversationSessionStore = {
|
|
145
|
+
getSessionId: (conversationKey: string) => Promise<string | null> | string | null;
|
|
146
|
+
setSessionId: (conversationKey: string, sessionId: string) => Promise<void> | void;
|
|
147
|
+
stop?: () => Promise<void> | void;
|
|
148
|
+
};
|
|
144
149
|
export type MessagingOperatorRuntimeOpts = {
|
|
145
150
|
backend: MessagingOperatorBackend;
|
|
146
151
|
broker?: ApprovedCommandBroker;
|
|
@@ -148,7 +153,15 @@ export type MessagingOperatorRuntimeOpts = {
|
|
|
148
153
|
enabledChannels?: readonly string[];
|
|
149
154
|
sessionIdFactory?: () => string;
|
|
150
155
|
turnIdFactory?: () => string;
|
|
156
|
+
conversationSessionStore?: MessagingOperatorConversationSessionStore;
|
|
151
157
|
};
|
|
158
|
+
export declare class JsonFileConversationSessionStore implements MessagingOperatorConversationSessionStore {
|
|
159
|
+
#private;
|
|
160
|
+
constructor(path: string);
|
|
161
|
+
getSessionId(conversationKey: string): Promise<string | null>;
|
|
162
|
+
setSessionId(conversationKey: string, sessionId: string): Promise<void>;
|
|
163
|
+
stop(): Promise<void>;
|
|
164
|
+
}
|
|
152
165
|
export declare class MessagingOperatorRuntime {
|
|
153
166
|
#private;
|
|
154
167
|
constructor(opts: MessagingOperatorRuntimeOpts);
|
|
@@ -170,6 +183,8 @@ export type PiMessagingOperatorBackendOpts = {
|
|
|
170
183
|
sessionIdleTtlMs?: number;
|
|
171
184
|
maxSessions?: number;
|
|
172
185
|
auditTurns?: boolean;
|
|
186
|
+
persistSessions?: boolean;
|
|
187
|
+
sessionDirForRepoRoot?: (repoRoot: string) => string;
|
|
173
188
|
};
|
|
174
189
|
export { DEFAULT_OPERATOR_SYSTEM_PROMPT };
|
|
175
190
|
export declare class PiMessagingOperatorBackend implements MessagingOperatorBackend {
|
package/dist/operator.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operator.d.ts","sourceRoot":"","sources":["../src/operator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"operator.d.ts","sourceRoot":"","sources":["../src/operator.ts"],"names":[],"mappings":"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"}
|