@jungjaehoon/mama-os 0.36.0 → 0.37.0
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/dist/agent/agent-loop.d.ts +2 -1
- package/dist/agent/agent-loop.d.ts.map +1 -1
- package/dist/agent/agent-loop.js +17 -12
- package/dist/agent/agent-loop.js.map +1 -1
- package/dist/agent/code-act/host-bridge.d.ts.map +1 -1
- package/dist/agent/code-act/host-bridge.js +27 -2
- package/dist/agent/code-act/host-bridge.js.map +1 -1
- package/dist/agent/code-act/type-definition-generator.d.ts.map +1 -1
- package/dist/agent/code-act/type-definition-generator.js +3 -1
- package/dist/agent/code-act/type-definition-generator.js.map +1 -1
- package/dist/agent/context-compile-service.d.ts +2 -0
- package/dist/agent/context-compile-service.d.ts.map +1 -1
- package/dist/agent/context-compile-service.js +1 -1
- package/dist/agent/context-compile-service.js.map +1 -1
- package/dist/agent/drive-tools.d.ts +27 -1
- package/dist/agent/drive-tools.d.ts.map +1 -1
- package/dist/agent/drive-tools.js +68 -2
- package/dist/agent/drive-tools.js.map +1 -1
- package/dist/agent/gateway-tool-executor.d.ts +11 -6
- package/dist/agent/gateway-tool-executor.d.ts.map +1 -1
- package/dist/agent/gateway-tool-executor.js +210 -37
- package/dist/agent/gateway-tool-executor.js.map +1 -1
- package/dist/agent/gateway-tools.md +2 -2
- package/dist/agent/tool-registry.js +2 -2
- package/dist/agent/tool-registry.js.map +1 -1
- package/dist/agent/types.d.ts +15 -0
- package/dist/agent/types.d.ts.map +1 -1
- package/dist/agent/types.js.map +1 -1
- package/dist/api/report-handler.d.ts +9 -5
- package/dist/api/report-handler.d.ts.map +1 -1
- package/dist/api/report-handler.js +26 -13
- package/dist/api/report-handler.js.map +1 -1
- package/dist/api/report-persistence.d.ts.map +1 -1
- package/dist/api/report-persistence.js +6 -3
- package/dist/api/report-persistence.js.map +1 -1
- package/dist/api/runtime-status-handler.d.ts +1 -0
- package/dist/api/runtime-status-handler.d.ts.map +1 -1
- package/dist/api/runtime-status-handler.js +1 -0
- package/dist/api/runtime-status-handler.js.map +1 -1
- package/dist/cli/commands/start.d.ts +14 -20
- package/dist/cli/commands/start.d.ts.map +1 -1
- package/dist/cli/commands/start.js +207 -248
- package/dist/cli/commands/start.js.map +1 -1
- package/dist/cli/commands/status.d.ts +6 -0
- package/dist/cli/commands/status.d.ts.map +1 -1
- package/dist/cli/commands/status.js +89 -0
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/config/types.d.ts +0 -21
- package/dist/cli/config/types.d.ts.map +1 -1
- package/dist/cli/config/types.js +0 -7
- package/dist/cli/config/types.js.map +1 -1
- package/dist/cli/index.js +2 -15
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/runtime/agent-loop-init.d.ts +2 -2
- package/dist/cli/runtime/agent-loop-init.d.ts.map +1 -1
- package/dist/cli/runtime/agent-loop-init.js +3 -3
- package/dist/cli/runtime/agent-loop-init.js.map +1 -1
- package/dist/cli/runtime/api-routes-init.d.ts +7 -1
- package/dist/cli/runtime/api-routes-init.d.ts.map +1 -1
- package/dist/cli/runtime/api-routes-init.js +99 -38
- package/dist/cli/runtime/api-routes-init.js.map +1 -1
- package/dist/cli/runtime/api-server-init.d.ts.map +1 -1
- package/dist/cli/runtime/api-server-init.js +3 -0
- package/dist/cli/runtime/api-server-init.js.map +1 -1
- package/dist/gateways/message-router.js +10 -10
- package/dist/gateways/message-router.js.map +1 -1
- package/dist/gateways/telegram.d.ts +2 -2
- package/dist/gateways/telegram.d.ts.map +1 -1
- package/dist/gateways/telegram.js +13 -7
- package/dist/gateways/telegram.js.map +1 -1
- package/dist/multi-agent/agent-event-bus.d.ts +0 -5
- package/dist/multi-agent/agent-event-bus.d.ts.map +1 -1
- package/dist/multi-agent/agent-event-bus.js.map +1 -1
- package/dist/operator/action-verifier.d.ts +2 -0
- package/dist/operator/action-verifier.d.ts.map +1 -1
- package/dist/operator/action-verifier.js +3 -2
- package/dist/operator/action-verifier.js.map +1 -1
- package/dist/operator/board-reconcile.d.ts +2 -2
- package/dist/operator/board-reconcile.d.ts.map +1 -1
- package/dist/operator/board-reconcile.js +10 -2
- package/dist/operator/board-reconcile.js.map +1 -1
- package/dist/operator/board-refresh-gate.d.ts +34 -0
- package/dist/operator/board-refresh-gate.d.ts.map +1 -0
- package/dist/operator/board-refresh-gate.js +82 -0
- package/dist/operator/board-refresh-gate.js.map +1 -0
- package/dist/operator/briefs.d.ts.map +1 -1
- package/dist/operator/briefs.js +92 -4
- package/dist/operator/briefs.js.map +1 -1
- package/dist/operator/operator-trigger-loop.d.ts +7 -22
- package/dist/operator/operator-trigger-loop.d.ts.map +1 -1
- package/dist/operator/operator-trigger-loop.js +33 -34
- package/dist/operator/operator-trigger-loop.js.map +1 -1
- package/dist/operator/owner-event-effects.d.ts +34 -0
- package/dist/operator/owner-event-effects.d.ts.map +1 -0
- package/dist/operator/owner-event-effects.js +131 -0
- package/dist/operator/owner-event-effects.js.map +1 -0
- package/dist/operator/{conductor-inbox.d.ts → owner-event-inbox.d.ts} +23 -12
- package/dist/operator/owner-event-inbox.d.ts.map +1 -0
- package/dist/operator/{conductor-inbox.js → owner-event-inbox.js} +97 -40
- package/dist/operator/owner-event-inbox.js.map +1 -0
- package/dist/operator/owner-event-loop.d.ts +59 -0
- package/dist/operator/owner-event-loop.d.ts.map +1 -0
- package/dist/operator/owner-event-loop.js +141 -0
- package/dist/operator/owner-event-loop.js.map +1 -0
- package/dist/operator/owner-event-outcome.d.ts +30 -0
- package/dist/operator/owner-event-outcome.d.ts.map +1 -0
- package/dist/operator/owner-event-outcome.js +108 -0
- package/dist/operator/owner-event-outcome.js.map +1 -0
- package/dist/operator/owner-event-policy.d.ts +20 -0
- package/dist/operator/owner-event-policy.d.ts.map +1 -0
- package/dist/operator/owner-event-policy.js +50 -0
- package/dist/operator/owner-event-policy.js.map +1 -0
- package/dist/operator/owner-event-prompt.d.ts +10 -0
- package/dist/operator/owner-event-prompt.d.ts.map +1 -0
- package/dist/operator/owner-event-prompt.js +63 -0
- package/dist/operator/owner-event-prompt.js.map +1 -0
- package/dist/operator/task-ledger.d.ts +2 -0
- package/dist/operator/task-ledger.d.ts.map +1 -1
- package/dist/operator/task-ledger.js +12 -1
- package/dist/operator/task-ledger.js.map +1 -1
- package/dist/operator/trigger-matcher.d.ts.map +1 -1
- package/dist/operator/trigger-matcher.js +4 -1
- package/dist/operator/trigger-matcher.js.map +1 -1
- package/dist/operator/trigger-registry.d.ts +1 -1
- package/dist/operator/trigger-registry.d.ts.map +1 -1
- package/dist/operator/trigger-registry.js +2 -2
- package/dist/operator/trigger-registry.js.map +1 -1
- package/dist/operator/trigger-types.d.ts +2 -0
- package/dist/operator/trigger-types.d.ts.map +1 -1
- package/dist/operator/workorder-hooks.d.ts +14 -0
- package/dist/operator/workorder-hooks.d.ts.map +1 -1
- package/dist/operator/workorder-hooks.js +64 -0
- package/dist/operator/workorder-hooks.js.map +1 -1
- package/dist/operator/workorder-publishers.d.ts +14 -4
- package/dist/operator/workorder-publishers.d.ts.map +1 -1
- package/dist/operator/workorder-publishers.js +51 -13
- package/dist/operator/workorder-publishers.js.map +1 -1
- package/dist/package-version.d.ts +3 -0
- package/dist/package-version.d.ts.map +1 -0
- package/dist/package-version.js +18 -0
- package/dist/package-version.js.map +1 -0
- package/package.json +2 -2
- package/public/viewer/js/modules/system.js +1 -0
- package/public/viewer/src/modules/system.ts +2 -0
- package/dist/operator/board-reground.d.ts +0 -19
- package/dist/operator/board-reground.d.ts.map +0 -1
- package/dist/operator/board-reground.js +0 -31
- package/dist/operator/board-reground.js.map +0 -1
- package/dist/operator/conductor-inbox.d.ts.map +0 -1
- package/dist/operator/conductor-inbox.js.map +0 -1
- package/dist/operator/conductor-session.d.ts +0 -55
- package/dist/operator/conductor-session.d.ts.map +0 -1
- package/dist/operator/conductor-session.js +0 -110
- package/dist/operator/conductor-session.js.map +0 -1
- package/dist/operator/conductor.d.ts +0 -69
- package/dist/operator/conductor.d.ts.map +0 -1
- package/dist/operator/conductor.js +0 -90
- package/dist/operator/conductor.js.map +0 -1
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* 1. Sets up closure-scoped reasoning state (reasoningLog, turnCount, autoRecallUsed)
|
|
9
9
|
* 2. Checks persona completion and logs onboarding status
|
|
10
10
|
* 3. Determines OS Agent mode and loads capabilities
|
|
11
|
-
* 4. Resolves Code-Act config from
|
|
11
|
+
* 4. Resolves Code-Act config from os-agent, with a legacy persona fallback
|
|
12
12
|
* 5. Creates the main AgentLoop with all options
|
|
13
13
|
* 6. Creates buildReasoningHeader() helper (closure-scoped)
|
|
14
14
|
* 7. Creates agentLoopClient wrapper with run() and runWithContent() methods
|
|
@@ -30,7 +30,7 @@ export declare function appendToolResultReasoning(reasoningLog: string[], result
|
|
|
30
30
|
export interface AgentLoopInitResult {
|
|
31
31
|
agentLoop: AgentLoop;
|
|
32
32
|
agentLoopClient: AgentLoopClient;
|
|
33
|
-
/** Whether Code-Act is enabled
|
|
33
|
+
/** Whether Code-Act is enabled for the main agent. */
|
|
34
34
|
useCodeAct: boolean;
|
|
35
35
|
}
|
|
36
36
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-loop-init.d.ts","sourceRoot":"","sources":["../../../src/cli/runtime/agent-loop-init.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,KAAK,EAGV,0BAA0B,EAC3B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AActD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAgB3D;AAED,wBAAgB,yBAAyB,CAAC,YAAY,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,CAiBvF;AAKD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,SAAS,CAAC;IACrB,eAAe,EAAE,eAAe,CAAC;IACjC,
|
|
1
|
+
{"version":3,"file":"agent-loop-init.d.ts","sourceRoot":"","sources":["../../../src/cli/runtime/agent-loop-init.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,KAAK,EAGV,0BAA0B,EAC3B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AActD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAgB3D;AAED,wBAAgB,yBAAyB,CAAC,YAAY,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,CAiBvF;AAKD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,SAAS,CAAC;IACrB,eAAe,EAAE,eAAe,CAAC;IACjC,sDAAsD;IACtD,UAAU,EAAE,OAAO,CAAC;CACrB;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,UAAU,EAClB,YAAY,EAAE,YAAY,EAC1B,EAAE,EAAE,cAAc,EAClB,YAAY,EAAE,YAAY,GAAG,IAAI,EACjC,cAAc,EAAE,QAAQ,GAAG,OAAO,GAAG,OAAO,EAC5C,YAAY,EAAE,mBAAmB,EACjC,OAAO,CAAC,EAAE;IACR,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C,qBAAqB,CAAC,EAAE,0BAA0B,CAAC,uBAAuB,CAAC,CAAC;IAC5E,kBAAkB,CAAC,EAAE,0BAA0B,CAAC,oBAAoB,CAAC,CAAC;CACvE,GACA,mBAAmB,CAuRrB"}
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* 1. Sets up closure-scoped reasoning state (reasoningLog, turnCount, autoRecallUsed)
|
|
10
10
|
* 2. Checks persona completion and logs onboarding status
|
|
11
11
|
* 3. Determines OS Agent mode and loads capabilities
|
|
12
|
-
* 4. Resolves Code-Act config from
|
|
12
|
+
* 4. Resolves Code-Act config from os-agent, with a legacy persona fallback
|
|
13
13
|
* 5. Creates the main AgentLoop with all options
|
|
14
14
|
* 6. Creates buildReasoningHeader() helper (closure-scoped)
|
|
15
15
|
* 7. Creates agentLoopClient wrapper with run() and runWithContent() methods
|
|
@@ -131,7 +131,7 @@ function initMainAgentLoop(config, oauthManager, db, metricsStore, runtimeBacken
|
|
|
131
131
|
// Viewer frontdoor prefers an explicit os-agent value; conductor remains the
|
|
132
132
|
// field-level fallback for normalized legacy installs.
|
|
133
133
|
const osAgentUseCodeAct = config.multi_agent?.agents?.['os-agent']?.useCodeAct;
|
|
134
|
-
const
|
|
134
|
+
const legacyConductorUseCodeAct = config.multi_agent?.agents?.conductor?.useCodeAct ??
|
|
135
135
|
config.multi_agent?.agents?.Conductor?.useCodeAct;
|
|
136
136
|
// Backend-aware default (live incident 2026-07-27): the main claude chat is
|
|
137
137
|
// persona-locked (--tools "", no MCP config), so outer Code-Act has NO
|
|
@@ -142,7 +142,7 @@ function initMainAgentLoop(config, oauthManager, db, metricsStore, runtimeBacken
|
|
|
142
142
|
// An explicit per-agent useCodeAct in config still wins in both directions.
|
|
143
143
|
const useCodeAct = options?.osAgentMode === true
|
|
144
144
|
? false
|
|
145
|
-
: (osAgentUseCodeAct ??
|
|
145
|
+
: (osAgentUseCodeAct ?? legacyConductorUseCodeAct ?? runtimeBackend !== 'claude');
|
|
146
146
|
// OS Agent mode: block sub-agent-specific tools to force delegation.
|
|
147
147
|
// The OS agent must use delegate() instead of doing sub-agent work directly.
|
|
148
148
|
const osAgentDisallowed = options?.osAgentMode
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-loop-init.js","sourceRoot":"","sources":["../../../src/cli/runtime/agent-loop-init.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"agent-loop-init.js","sourceRoot":"","sources":["../../../src/cli/runtime/agent-loop-init.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,7 @@ import type { SlackGateway } from '../../gateways/slack.js';
|
|
|
17
17
|
import type { MAMAConfig } from '../config/types.js';
|
|
18
18
|
import type { MAMAApiShape } from './types.js';
|
|
19
19
|
import type { AgentEventBus } from '../../multi-agent/agent-event-bus.js';
|
|
20
|
+
import type { BoardRefreshGate } from '../../operator/board-refresh-gate.js';
|
|
20
21
|
import type { TaskLedger } from '../../operator/task-ledger.js';
|
|
21
22
|
import type { WorkOrderConsumer } from '../../operator/workorder-consumer.js';
|
|
22
23
|
import type { ExternalLifecycleCandidateSet } from '../../operator/external-lifecycle.js';
|
|
@@ -78,9 +79,14 @@ export interface RegisterApiRoutesParams {
|
|
|
78
79
|
sessionsDb?: SQLiteDatabase;
|
|
79
80
|
/** Stage-2 consumer: per-kind completion hooks register here (started by start.ts AFTER this returns). */
|
|
80
81
|
workOrderConsumer?: WorkOrderConsumer;
|
|
82
|
+
/** Shared host-owned Board repair gate; null preserves reconcile-disabled legacy behavior. */
|
|
83
|
+
boardRefreshGate: BoardRefreshGate | null;
|
|
81
84
|
/** TG-05/TG-06: owner-report context store for the operator recovery surface. */
|
|
82
85
|
reportContextStore?: import('../../gateways/telegram-report-context-store.js').TelegramReportContextStore;
|
|
83
86
|
}
|
|
84
|
-
export
|
|
87
|
+
export interface ApiRoutesHandle {
|
|
88
|
+
stop(): void;
|
|
89
|
+
}
|
|
90
|
+
export declare function registerApiRoutes(params: RegisterApiRoutesParams): Promise<ApiRoutesHandle>;
|
|
85
91
|
export {};
|
|
86
92
|
//# sourceMappingURL=api-routes-init.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-routes-init.d.ts","sourceRoot":"","sources":["../../../src/cli/runtime/api-routes-init.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAaH,OAAO,OAAO,EAAE,EAAE,KAAK,OAAO,EAAE,MAAM,SAAS,CAAC;AAIhD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAIpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"api-routes-init.d.ts","sourceRoot":"","sources":["../../../src/cli/runtime/api-routes-init.ts"],"names":[],"mappings":"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"}
|
|
@@ -65,6 +65,7 @@ const debugLogger = __importStar(require("@jungjaehoon/mama-core/debug-logger"))
|
|
|
65
65
|
const leg_cadence_js_1 = require("../../operator/leg-cadence.js");
|
|
66
66
|
const { DebugLogger } = debugLogger;
|
|
67
67
|
const routesLogger = new DebugLogger('api-routes');
|
|
68
|
+
const HOST_MANUAL_FULL_REPAIR_CHANNEL = 'host:api-report-agent-refresh';
|
|
68
69
|
const MAX_RECONCILE_LIFECYCLE_DIAGNOSTICS = 100;
|
|
69
70
|
/**
|
|
70
71
|
* Construct the only lifecycle authority a reconcile work order may carry.
|
|
@@ -184,7 +185,10 @@ function registerKagemushaTaskRoute(app, policy, loadQuery = async () => (await
|
|
|
184
185
|
});
|
|
185
186
|
}
|
|
186
187
|
async function registerApiRoutes(params) {
|
|
187
|
-
const { config, apiServer, eventBus, oauthManager: _oauthManager, mamaApi: _mamaApi, messageRouter, agentLoop, toolExecutor, discordGateway, slackGateway, graphHandler, getAdapter, privateConnectorPolicy, rawConnectorScope, sessionsDb, workOrderConsumer, } = params;
|
|
188
|
+
const { config, apiServer, eventBus, oauthManager: _oauthManager, mamaApi: _mamaApi, messageRouter, agentLoop, toolExecutor, discordGateway, slackGateway, graphHandler, getAdapter, privateConnectorPolicy, rawConnectorScope, sessionsDb, workOrderConsumer, boardRefreshGate, } = params;
|
|
189
|
+
let boardBootTimeout = null;
|
|
190
|
+
let boardInterval = null;
|
|
191
|
+
let boardReconcileScheduler = null;
|
|
188
192
|
// ── Stage-2 workorder publishers ──────────────────────────────────────
|
|
189
193
|
// The ONLY system run path since v0.28.0: every scheduled/boot/manual run
|
|
190
194
|
// below enqueues an occurrence-keyed workorder for the consumer lane (the
|
|
@@ -318,7 +322,7 @@ async function registerApiRoutes(params) {
|
|
|
318
322
|
const { createReportPublisher } = await import('../../api/report-handler.js');
|
|
319
323
|
toolExecutor.setReportPublisher(createReportPublisher(apiServer.reportStore, apiServer.reportSseClients));
|
|
320
324
|
// S1-T4 artifact hub: the console READS the board it directs. Same store
|
|
321
|
-
// the publisher writes -
|
|
325
|
+
// the publisher writes - MAMA's status answers cite these slots
|
|
322
326
|
// instead of re-deriving state from memory copies.
|
|
323
327
|
toolExecutor.setReportReader(() => {
|
|
324
328
|
const slots = apiServer.reportStore.getAll();
|
|
@@ -345,10 +349,28 @@ async function registerApiRoutes(params) {
|
|
|
345
349
|
// Schedule/boot/manual all funnel here: one occurrence-keyed board
|
|
346
350
|
// workorder per entry. An enqueue failure is logged loudly and the next
|
|
347
351
|
// occurrence retries - there is no fallback run path.
|
|
352
|
+
const reconcileEnabled = boardRefreshGate !== null;
|
|
348
353
|
const runDashboardAgent = (opts) => {
|
|
349
354
|
try {
|
|
355
|
+
if (!opts?.force && boardRefreshGate && !boardRefreshGate.needsFullRepair()) {
|
|
356
|
+
return;
|
|
357
|
+
}
|
|
358
|
+
if (opts?.force && boardRefreshGate) {
|
|
359
|
+
// Host-owned manual dirt is captured before validation/enqueue can
|
|
360
|
+
// fail. It clears only through the full run-bound effect verifier.
|
|
361
|
+
boardRefreshGate.markChannelDirty(HOST_MANUAL_FULL_REPAIR_CHANNEL);
|
|
362
|
+
}
|
|
350
363
|
const now = Date.now();
|
|
351
|
-
|
|
364
|
+
const repair = boardRefreshGate?.captureFullRepair();
|
|
365
|
+
enqueueWorkOrderOrThrow('board', opts?.force
|
|
366
|
+
? (0, workorder_publishers_js_1.boardManualKey)(now)
|
|
367
|
+
: boardRefreshGate
|
|
368
|
+
? (0, workorder_publishers_js_1.boardRepairKey)()
|
|
369
|
+
: (0, workorder_publishers_js_1.boardFullKey)(now), {
|
|
370
|
+
mode: 'full',
|
|
371
|
+
...(repair ?? {}),
|
|
372
|
+
...(opts?.force ? { force: true } : {}),
|
|
373
|
+
}, opts?.force ? 'high' : undefined);
|
|
352
374
|
}
|
|
353
375
|
catch (err) {
|
|
354
376
|
routesLogger.error('[stage2] board enqueue failed:', err instanceof Error ? err.message : err);
|
|
@@ -358,9 +380,9 @@ async function registerApiRoutes(params) {
|
|
|
358
380
|
// ONE constant feeds both the timer and the declared cadence - if they
|
|
359
381
|
// drift apart the watchdog pages on a schedule nobody is running.
|
|
360
382
|
const DASHBOARD_AGENT_INTERVAL_MS = 30 * 60 * 1000;
|
|
361
|
-
setTimeout(runDashboardAgent, 10_000);
|
|
383
|
+
boardBootTimeout = setTimeout(runDashboardAgent, 10_000);
|
|
362
384
|
(0, leg_cadence_js_1.getLegCadence)()?.declare('dashboard-agent', DASHBOARD_AGENT_INTERVAL_MS);
|
|
363
|
-
setInterval(() => {
|
|
385
|
+
boardInterval = setInterval(() => {
|
|
364
386
|
(0, leg_cadence_js_1.getLegCadence)()?.beat('dashboard-agent');
|
|
365
387
|
runDashboardAgent();
|
|
366
388
|
}, DASHBOARD_AGENT_INTERVAL_MS);
|
|
@@ -370,10 +392,10 @@ async function registerApiRoutes(params) {
|
|
|
370
392
|
runDashboardAgent({ force: true });
|
|
371
393
|
res.json({ ok: true, message: 'Board refresh workorder enqueued (forced)' });
|
|
372
394
|
});
|
|
373
|
-
//
|
|
374
|
-
//
|
|
375
|
-
//
|
|
376
|
-
if (
|
|
395
|
+
// Manual Board reconcile remains available for an explicit operator
|
|
396
|
+
// request. Connector deltas belong to the MAMA owner-event agent and are
|
|
397
|
+
// no longer consumed by a parallel Board worker.
|
|
398
|
+
if (reconcileEnabled && boardRefreshGate) {
|
|
377
399
|
const { ReconcileScheduler } = await import('../../operator/board-reconcile.js');
|
|
378
400
|
const { captureSnapshot, verifyAfterRun } = await import('../../operator/action-verifier.js');
|
|
379
401
|
// Verifier deps (M8 Phase 2): run-bound signals only -- notes from the
|
|
@@ -393,37 +415,61 @@ async function registerApiRoutes(params) {
|
|
|
393
415
|
// (agent_activity has NO channel_id column; json_extract is the only
|
|
394
416
|
// schema-supported key; agent_id re-keying is a green-test trap).
|
|
395
417
|
if (workOrderConsumer) {
|
|
396
|
-
const { buildWorkerTraceQueries, boardCandidateReceiptVerdict } = await import('../../operator/workorder-hooks.js');
|
|
397
|
-
const
|
|
418
|
+
const { applyBoardRefreshVerdict, buildFullBoardTraceQueries, buildWorkerTraceQueries, boardCandidateReceiptVerdict, } = await import('../../operator/workorder-hooks.js');
|
|
419
|
+
const reconcileVerifierDeps = {
|
|
398
420
|
...verifierDeps,
|
|
399
421
|
...buildWorkerTraceQueries(sessionsDb, 'worker:board'),
|
|
400
422
|
};
|
|
423
|
+
const fullVerifierDepsFor = (attemptId) => ({
|
|
424
|
+
...verifierDeps,
|
|
425
|
+
...buildFullBoardTraceQueries(sessionsDb, 'worker:board', attemptId),
|
|
426
|
+
});
|
|
401
427
|
workOrderConsumer.registerHook('board', {
|
|
402
428
|
verdictRequired: true,
|
|
403
429
|
before: (wo) => {
|
|
404
|
-
if (wo.payload.mode
|
|
405
|
-
return
|
|
406
|
-
|
|
430
|
+
if (wo.payload.mode === 'reconcile') {
|
|
431
|
+
return captureSnapshot(reconcileVerifierDeps, `reconcile:${String(wo.payload.channelKey)}`);
|
|
432
|
+
}
|
|
433
|
+
if (wo.payload.mode === 'full' && typeof wo.payload.noUpdateScope === 'string') {
|
|
434
|
+
return captureSnapshot(fullVerifierDepsFor(wo.id), wo.payload.noUpdateScope);
|
|
435
|
+
}
|
|
436
|
+
return null;
|
|
407
437
|
},
|
|
408
438
|
after: (wo, response, beforeState) => {
|
|
409
|
-
|
|
410
|
-
|
|
439
|
+
const receiptVerdict = boardCandidateReceiptVerdict(wo, reconcileLedger);
|
|
440
|
+
if (!beforeState) {
|
|
411
441
|
if (response.includes('NO_UPDATE')) {
|
|
412
442
|
console.log('[stage2] board worker: no changes detected, publish skipped');
|
|
413
443
|
}
|
|
414
|
-
return
|
|
444
|
+
return receiptVerdict;
|
|
415
445
|
}
|
|
416
|
-
const
|
|
417
|
-
const
|
|
418
|
-
|
|
419
|
-
|
|
446
|
+
const isReconcile = wo.payload.mode === 'reconcile';
|
|
447
|
+
const scope = isReconcile
|
|
448
|
+
? `reconcile:${String(wo.payload.channelKey)}`
|
|
449
|
+
: String(wo.payload.noUpdateScope);
|
|
450
|
+
const verdict = verifyAfterRun(isReconcile ? reconcileVerifierDeps : fullVerifierDepsFor(wo.id), beforeState, scope);
|
|
451
|
+
// force:true is a request to rebuild/publish, so an exact no-op
|
|
452
|
+
// note cannot discharge it. Non-force scheduled repair may use
|
|
453
|
+
// the exact scope note when there is genuinely nothing to write.
|
|
454
|
+
const effectVerified = verdict.verified &&
|
|
455
|
+
!(wo.payload.mode === 'full' &&
|
|
456
|
+
wo.payload.force === true &&
|
|
457
|
+
verdict.obligatedTraceCount === 0);
|
|
458
|
+
const outcome = effectVerified
|
|
459
|
+
? isReconcile
|
|
460
|
+
? 'reconcile_verified'
|
|
461
|
+
: 'full_verified'
|
|
462
|
+
: isReconcile
|
|
463
|
+
? 'reconcile_unverified'
|
|
464
|
+
: 'full_unverified';
|
|
465
|
+
console.log(`[stage2] ${outcome} scope=${scope}${verdict.effects.length > 0 ? ` (${verdict.effects.join('; ')})` : ''}`);
|
|
420
466
|
try {
|
|
421
467
|
if (sessionsDb) {
|
|
422
468
|
(0, agent_store_js_1.logActivity)(sessionsDb, {
|
|
423
469
|
agent_id: 'workorder-board',
|
|
424
470
|
agent_version: 0,
|
|
425
471
|
type: outcome,
|
|
426
|
-
input_summary:
|
|
472
|
+
input_summary: scope,
|
|
427
473
|
output_summary: verdict.effects.join('; '),
|
|
428
474
|
execution_status: 'completed',
|
|
429
475
|
trigger_reason: 'workorder',
|
|
@@ -433,15 +479,15 @@ async function registerApiRoutes(params) {
|
|
|
433
479
|
catch {
|
|
434
480
|
/* telemetry only */
|
|
435
481
|
}
|
|
436
|
-
if (!
|
|
482
|
+
if (!effectVerified) {
|
|
437
483
|
eventBus.emit({
|
|
438
484
|
type: 'agent:action',
|
|
439
485
|
agent: 'Dashboard Agent',
|
|
440
|
-
action: 'reconcile_unverified',
|
|
441
|
-
target: String(wo.payload.channelKey),
|
|
486
|
+
action: isReconcile ? 'reconcile_unverified' : 'full_unverified',
|
|
487
|
+
target: isReconcile ? String(wo.payload.channelKey) : scope,
|
|
442
488
|
});
|
|
443
489
|
}
|
|
444
|
-
return
|
|
490
|
+
return applyBoardRefreshVerdict(wo, effectVerified, receiptVerdict, boardRefreshGate);
|
|
445
491
|
},
|
|
446
492
|
});
|
|
447
493
|
}
|
|
@@ -450,7 +496,7 @@ async function registerApiRoutes(params) {
|
|
|
450
496
|
maxWaitMs: Number(process.env.MAMA_RECONCILE_MAX_WAIT_MS) || undefined,
|
|
451
497
|
globalMaxPerHour: Number(process.env.MAMA_RECONCILE_MAX_PER_HOUR) || undefined,
|
|
452
498
|
log: (line) => console.log(line),
|
|
453
|
-
run: (channelKey, deltaLines, eventIds) => {
|
|
499
|
+
run: (channelKey, deltaLines, eventIds, repairGeneration) => {
|
|
454
500
|
// The reconcile leg is a board workorder; its bracket verification
|
|
455
501
|
// runs in the consumer's completion hook (registered above).
|
|
456
502
|
try {
|
|
@@ -461,6 +507,7 @@ async function registerApiRoutes(params) {
|
|
|
461
507
|
// A private partition that boot did not authorize is consumed
|
|
462
508
|
// without a generic board workorder. Rejecting would retain and
|
|
463
509
|
// retry the private delta; enqueuing would leak its prose.
|
|
510
|
+
boardRefreshGate.consumeUnauthorizedPartition(channelKey, repairGeneration);
|
|
464
511
|
return Promise.resolve();
|
|
465
512
|
}
|
|
466
513
|
const ledger = toolExecutor.getTaskLedger();
|
|
@@ -481,6 +528,7 @@ async function registerApiRoutes(params) {
|
|
|
481
528
|
// The batch, carried structurally. It was already inside deltaLines as
|
|
482
529
|
// `[id:evt_...]` text and could only be recovered by parsing prose.
|
|
483
530
|
eventIds,
|
|
531
|
+
repairGeneration,
|
|
484
532
|
// Host-authored structural authority. deltaLines remain untrusted,
|
|
485
533
|
// human-readable context and never grant lifecycle mutations.
|
|
486
534
|
candidates,
|
|
@@ -495,23 +543,24 @@ async function registerApiRoutes(params) {
|
|
|
495
543
|
return Promise.resolve();
|
|
496
544
|
},
|
|
497
545
|
});
|
|
498
|
-
|
|
499
|
-
if (event.type === 'operator:channel-delta') {
|
|
500
|
-
reconcileScheduler.enqueue(event.channelKey, event.lines, event.eventIds);
|
|
501
|
-
}
|
|
502
|
-
});
|
|
546
|
+
boardReconcileScheduler = reconcileScheduler;
|
|
503
547
|
// Manual reconcile: lines from the body, or the caller must supply them
|
|
504
548
|
// (no silent alternate data path -- M8 review #17).
|
|
505
549
|
apiServer.app.post('/api/operator/reconcile', auth_middleware_js_1.requireAuth, (req, res) => {
|
|
506
550
|
const { channelKey, lines } = (req.body ?? {});
|
|
507
|
-
if (
|
|
551
|
+
if (typeof channelKey !== 'string' ||
|
|
552
|
+
channelKey.length === 0 ||
|
|
553
|
+
channelKey.length > 1000 ||
|
|
554
|
+
!Array.isArray(lines) ||
|
|
555
|
+
lines.length === 0) {
|
|
508
556
|
res.status(400).json({
|
|
509
557
|
ok: false,
|
|
510
|
-
error: 'channelKey and non-empty lines[] are required',
|
|
558
|
+
error: 'channelKey (1-1000 chars) and non-empty lines[] are required',
|
|
511
559
|
});
|
|
512
560
|
return;
|
|
513
561
|
}
|
|
514
|
-
|
|
562
|
+
const repairGeneration = boardRefreshGate.markChannelDirty(channelKey);
|
|
563
|
+
reconcileScheduler.enqueue(channelKey, lines, [], repairGeneration);
|
|
515
564
|
res.json({ ok: true, message: 'Reconcile queued (async; runs after debounce)' });
|
|
516
565
|
});
|
|
517
566
|
console.log('[reconcile] Board reconcile leg enabled (MAMA_BOARD_RECONCILE=1)');
|
|
@@ -686,7 +735,7 @@ async function registerApiRoutes(params) {
|
|
|
686
735
|
console.log(`[Memory Promotion] Ready: every ${PROMOTION_INTERVAL_MS / 3_600_000}h, POST /api/memory/promote`);
|
|
687
736
|
}
|
|
688
737
|
// -- System Audit: hourly deterministic code checks ---------------------
|
|
689
|
-
// Owner decision 2026-04-22 (mama_conductor_audit_code_based_read_only),
|
|
738
|
+
// Owner decision 2026-04-22 (legacy id: mama_conductor_audit_code_based_read_only),
|
|
690
739
|
// landed 2026-07-17: the audit is fact collection and recording executed by
|
|
691
740
|
// CODE - no LLM invocation, no auto-fix, no broad filesystem access. The
|
|
692
741
|
// prior hourly LLM audit violated that decision and the 2026-05-14
|
|
@@ -758,7 +807,7 @@ async function registerApiRoutes(params) {
|
|
|
758
807
|
}, AUDIT_INTERVAL_MS);
|
|
759
808
|
}, AUDIT_INITIAL_DELAY_MS);
|
|
760
809
|
// Manual trigger returns the full report (read-only, no LLM, fast)
|
|
761
|
-
apiServer.app.post('/api/
|
|
810
|
+
apiServer.app.post('/api/system/audit', auth_middleware_js_1.requireAuth, async (_req, res) => {
|
|
762
811
|
const report = await runSystemAudit();
|
|
763
812
|
if (report) {
|
|
764
813
|
res.json({ ok: true, mode: 'code', report });
|
|
@@ -767,7 +816,7 @@ async function registerApiRoutes(params) {
|
|
|
767
816
|
res.status(500).json({ ok: false, error: 'audit failed - see daemon.log' });
|
|
768
817
|
}
|
|
769
818
|
});
|
|
770
|
-
routesLogger.info('[System Audit] Ready - deterministic code checks every 60 min, POST /api/
|
|
819
|
+
routesLogger.info('[System Audit] Ready - deterministic code checks every 60 min, POST /api/system/audit for manual run');
|
|
771
820
|
// ── Memory Agent stats API ────────────────────────────────────────────
|
|
772
821
|
apiServer.app.get('/api/memory-agent/stats', auth_middleware_js_1.requireAuth, (_req, res) => {
|
|
773
822
|
const stats = messageRouter.getMemoryAgentStats();
|
|
@@ -1404,5 +1453,17 @@ Keep the report under 2000 characters as it will be sent to Discord.`;
|
|
|
1404
1453
|
}));
|
|
1405
1454
|
console.log('✓ Viewer UI available at /viewer');
|
|
1406
1455
|
console.log('✓ Setup wizard available at /setup');
|
|
1456
|
+
return {
|
|
1457
|
+
stop: () => {
|
|
1458
|
+
if (boardBootTimeout)
|
|
1459
|
+
clearTimeout(boardBootTimeout);
|
|
1460
|
+
boardBootTimeout = null;
|
|
1461
|
+
if (boardInterval)
|
|
1462
|
+
clearInterval(boardInterval);
|
|
1463
|
+
boardInterval = null;
|
|
1464
|
+
boardReconcileScheduler?.stop();
|
|
1465
|
+
boardReconcileScheduler = null;
|
|
1466
|
+
},
|
|
1467
|
+
};
|
|
1407
1468
|
}
|
|
1408
1469
|
//# sourceMappingURL=api-routes-init.js.map
|