@agimon-ai/doompi-workflow 0.0.1-alpha.126 → 0.0.1-alpha.128

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -108,12 +108,15 @@ session creates a child **workflow session** (provenance `workflow-session`), ne
108
108
  rail, and hands it the launch. The workflow session owns the run (`PI_SESSION_ID`), runs its step
109
109
  sessions, and has Workflow mode on, so its agent can troubleshoot and recover the run. The run's
110
110
  environment also carries `DOOMPI_WORKFLOW_LAUNCHER_SESSION_ID`, naming the launching session, which
111
- lists the run in its Activity group, is told when it ends, and may read its status.
111
+ lists the run in its Activity group, is told when it completes, and may read its status. Failures only
112
+ raise a UI toast there, without adding a message to the launching agent's context.
112
113
 
113
114
  - The workflow session's rail row shows the run (`workflow · build › test · 4m`, or a failure or
114
115
  pause marked like a pending question) through the host's per-session activity line.
115
- - A failure or finish is posted into the workflow session's conversation as a notice, without
116
- starting an agent turn. The owner agent also gets a live brief of its runs on every turn.
116
+ - A failure starts a turn in the workflow session to diagnose and report locally. Recovery requires
117
+ a user request or explicit launcher delegation. Completion is posted without starting a turn,
118
+ and completion after recovery still notifies the launcher. The owner agent also gets a live brief
119
+ of its runs on every turn.
117
120
  - After a success, a workflow session nobody interacted with asks its launcher to release it, and it
118
121
  becomes `stopped · open to wake`. A session whose run failed or paused, or whose agent you
119
122
  prompted, stays live until you remove it. Removing or restarting a live workflow session stops its
@@ -2,7 +2,7 @@ Object.defineProperties(exports, {
2
2
  __esModule: { value: true },
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
- const require_workflowTerminal = require("../workflowTerminal-CR4-wbOZ.cjs");
5
+ const require_workflowTerminal = require("../workflowTerminal-ILzqDAL9.cjs");
6
6
  const require_workflowLaunchCommand = require("../workflowLaunchCommand-DJyDB96d.cjs");
7
7
  let _agimon_ai_doompi_core_piExtension = require("@agimon-ai/doompi-core/piExtension");
8
8
  let _agimon_ai_doompi_core_extensionFile = require("@agimon-ai/doompi-core/extensionFile");
@@ -3498,6 +3498,7 @@ function createWorkflowPiRuntime(pi, options) {
3498
3498
  const startedDuringSession = previous === void 0 && (sessionStartedAt === 0 || !Number.isFinite(startedAt) || startedAt >= sessionStartedAt);
3499
3499
  if (lifecycleNarrationReady && require_workflowTerminal.isSessionRun(record, sessionId)) narrateWorkflowTransition(narrationSink, record, previous === RUNNING_STATUS || previous === COMPLETED_STATUS || previous === ERROR_STAGE ? previous : void 0, startedDuringSession);
3500
3500
  if (!notifyChanges || !rootProcess || record.stage === RUNNING_STATUS) continue;
3501
+ if (record.stage === ERROR_STAGE && require_workflowTerminal.isLaunchedRun(record, sessionId)) continue;
3501
3502
  if (!deliveredTerminalRuns.has(identity) && (previous === RUNNING_STATUS || startedDuringSession)) pendingTerminalRuns.set(identity, record);
3502
3503
  }
3503
3504
  const retainedWork = new Map(mine.map((record) => [runIdentity(record), record]));
@@ -3526,8 +3527,7 @@ function createWorkflowPiRuntime(pi, options) {
3526
3527
  }
3527
3528
  const identity = runIdentity(record);
3528
3529
  const events = runEvents.get(identity) ?? progressEventsForRun(record, await (0, _agimon_ai_workflow_mcp.readWorkflowProgress)(registry.runDirectoryFor(record)));
3529
- const summary = require_workflowTerminal.finishedRunSummary(record, (0, _agimon_ai_workflow_mcp.summarizeWorkflowProgress)(events));
3530
- return require_workflowTerminal.isLaunchedRun(record, sessionId) ? `${summary}\n${require_workflowTerminal.launchedRunHint(record)}` : summary;
3530
+ return require_workflowTerminal.finishedRunSummary(record, (0, _agimon_ai_workflow_mcp.summarizeWorkflowProgress)(events));
3531
3531
  }));
3532
3532
  if (!refreshIsCurrent()) return;
3533
3533
  const message = (indexes) => ({
@@ -3549,8 +3549,8 @@ function createWorkflowPiRuntime(pi, options) {
3549
3549
  })
3550
3550
  }
3551
3551
  });
3552
- const quiet = terminalRecords.flatMap((record, index) => require_workflowTerminal.isOwnedDelegatedRun(record, sessionId) ? [index] : []);
3553
- const loud = terminalRecords.flatMap((record, index) => require_workflowTerminal.isOwnedDelegatedRun(record, sessionId) ? [] : [index]);
3552
+ const quiet = terminalRecords.flatMap((record, index) => require_workflowTerminal.isOwnedDelegatedRun(record, sessionId) && record.stage !== ERROR_STAGE ? [index] : []);
3553
+ const loud = terminalRecords.flatMap((record, index) => require_workflowTerminal.isOwnedDelegatedRun(record, sessionId) && record.stage !== ERROR_STAGE ? [] : [index]);
3554
3554
  if (quiet.length > 0) pi.sendMessage(message(quiet), { triggerTurn: false });
3555
3555
  if (loud.length > 0) pi.sendMessage(message(loud), {
3556
3556
  triggerTurn: true,