agentlife 2.6.11 → 2.6.12

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.
Files changed (2) hide show
  1. package/dist/index.js +9 -8
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -908,12 +908,9 @@ All inter-system signals are fixed strings. Nothing else is a signal.
908
908
  **Work-order markers — you RECEIVE (always process, never treat as end-of-conversation):**
909
909
  - \`[action:<name>] surfaceId=<id> [key=value ...]\` — user tapped a button on a widget you own. \`<name>\` is whatever you put in \`action=\` when you pushed the widget. Process it, then update or delete the source widget in the same turn.
910
910
  - \`[system:dismiss-requested] surfaceId=<id>\` — user tapped dismiss on a widget. You have ~30s to push an \`input\` surface with contextual alternatives before the platform finalizes the dismiss.
911
- - \`[event:dismissed] surfaceId=<id>\` — dismiss completed. Widget is already gone — do NOT push \`delete\`. Clean up any custom infra tied to the surface, then \`NO_REPLY\`.
911
+ - \`[event:dismissed] surfaceId=<id>\` — the platform deleted a widget without your involvement (non-guided dismiss path). The widget is already gone — do NOT push \`delete\`. Clean up any custom infra tied to the surface, then \`NO_REPLY\`. Does NOT fire for widgets you deleted yourself with the \`delete\` DSL — no notification is needed when you initiated the delete.
912
912
  - \`[system:cancelled]\` — user cancelled the turn mid-flight. Reply \`NO_REPLY\` and stop.
913
-
914
- **Input-surface control signals — platform EMITS when the user closes/skips an input surface:**
915
- - \`input_closed\` — user tapped the [×] on an input surface. Push it again later if still relevant.
916
- - \`input_skipped\` — user tapped Skip. Do not re-ask this session.
913
+ - \`[system] <free-form text>\` — platform-generated instruction (scheduled followup firing, Supervisor notification, quality/regression signal). The \`<text>\` after \`[system] \` is the instruction; read it and act. No fixed playbook — the text is the playbook.
917
914
 
918
915
  **Input-surface \`action=\` values — canonical set (anything else is a QUALITY ERROR on input surfaces):**
919
916
  - \`action=choice\` or \`action=select\` → numbered single-select (one tap fires). Dispatched as \`[action:choice] label=<label>\`.
@@ -993,7 +990,7 @@ Button shapes and dispatch format for input surfaces are in **Signal Protocol**
993
990
 
994
991
  **One widget, one goal.** Set at creation, MUST NOT change. If an action shifts the objective, delete and create with a new surfaceId. Platform rejects goal mutations with a QUALITY ERROR.
995
992
 
996
- **User-initiated dismiss** (\`[system:dismiss-requested] surfaceId=<id>\`): you have ~30s to push an \`input\` surface with 2-3 contextual options + "Remove it" last. If the user picks an alternative, act on it and the dismiss is cancelled. If the user picks "Remove it" or skips, \`[event:dismissed]\` arrives the widget is already gone. See \`DISMISS_ALTERNATIVES_GUIDANCE\` (injected on the dismiss event) for crafting rules.
993
+ **User-initiated dismiss** (\`[system:dismiss-requested] surfaceId=<id>\`): you have ~30s to push an \`input\` surface with 2-3 contextual options + "Remove it" last. If the user picks an alternative, act on it and the dismiss is cancelled. If the user picks "Remove it" or the followup fires on timeout, push \`delete <parentSurfaceId>\` to finalize removal (and delete the dismiss-alt input surface in the same block). See \`DISMISS_ALTERNATIVES_GUIDANCE\` (injected on the dismiss event) for crafting rules.
997
994
 
998
995
  ### Autonomy & approval
999
996
 
@@ -1223,7 +1220,11 @@ The user is dismissing this widget. You have ~30s to push an \`input\` surface w
1223
1220
  - "Remove it" is always last. Use \`action=choice\` so it renders as a numbered list.
1224
1221
  - surfaceId: \`dismiss-alt-{parent-surfaceId}\`. Goal: reference the parent. Followup: ~1m so the flow doesn't stall if the user walks away.
1225
1222
 
1226
- If the user picks an alternative → act on it; the dismiss is cancelled. If they pick "Remove it" or skip → \`[event:dismissed]\` arrives, the widget is already gone, clean up any custom infra.`;
1223
+ If the user picks an alternative → act on it; the dismiss is cancelled.
1224
+
1225
+ If the user picks "Remove it" → push \`delete <parentSurfaceId>\` in the same turn (and delete the dismiss-alt input surface alongside it; both go in one \`agentlife_push\` with \`---\` between them). No \`[event:dismissed]\` fires in the guided flow — you initiated the delete, so no notification is needed. Clean up any custom infra inline before the delete.
1226
+
1227
+ If the 1-minute followup fires with no user response → same move: push \`delete <parentSurfaceId>\` + \`delete dismiss-alt-<parentSurfaceId>\`.`;
1227
1228
  var ORCHESTRATOR_AGENTS_MD = `# AgentLife Orchestrator
1228
1229
 
1229
1230
  You are a message router. You never answer questions, perform tasks, push widgets, or produce content.
@@ -4724,7 +4725,7 @@ ${parts.join(`
4724
4725
  });
4725
4726
  }
4726
4727
  var QUALITY_CHECK_MAX_WAIT_MS = 5000;
4727
- var TERMINAL_MARKERS = new Set(["NO_REPLY", "ANNOUNCE_SKIP", "REPLY_SKIP", "HEARTBEAT_OK", "done"]);
4728
+ var TERMINAL_MARKERS = new Set(["NO_REPLY", "ANNOUNCE_SKIP", "REPLY_SKIP", "HEARTBEAT_OK"]);
4728
4729
  function processPendingQualityChecks(state) {
4729
4730
  if (state.disabled || !state.historyDb)
4730
4731
  return 0;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentlife",
3
- "version": "2.6.11",
3
+ "version": "2.6.12",
4
4
  "type": "module",
5
5
  "scripts": {
6
6
  "build": "bun build index.ts --outfile dist/index.js --target node --external openclaw/plugin-sdk",