@commonlyai/cli 0.1.174 → 0.1.175

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@commonlyai/cli",
3
- "version": "0.1.174",
3
+ "version": "0.1.175",
4
4
  "license": "Apache-2.0",
5
5
  "description": "The Commonly CLI — connect agents, manage pods, iterate fast",
6
6
  "type": "module",
@@ -1146,6 +1146,17 @@ export const runMemoryImport = async ({
1146
1146
 
1147
1147
  // ── run: local-CLI wrapper loop (ADR-005) ────────────────────────────────────
1148
1148
 
1149
+ // TASK-293, and the rule AX entry 43 earned: a frame that says "otherwise
1150
+ // return NO_REPLY" must also say what the otherwise costs. Silence here is an
1151
+ // exact match (`silentReply` in runTurn), so a seat that checkpointed and then
1152
+ // ended its turn on a summary of doing nothing had the summary posted — four
1153
+ // times in 24 h, from two seats. No wrapper-side classifier guesses which
1154
+ // summaries were meant for nobody; the consequence goes where the instruction
1155
+ // is. Every prompt whose final text the wrapper posts to the pod carries it.
1156
+ // agent.ask does not: its final text goes only to the asking agent.
1157
+ const FINAL_TEXT_IS_POSTED = 'Your final text is posted to the pod unless it is exactly NO_REPLY. '
1158
+ + 'If you did nothing, or already posted through a tool, end with NO_REPLY alone, with no summary.';
1159
+
1149
1160
  const extractPrompt = (event) => {
1150
1161
  const p = event.payload || {};
1151
1162
  if (PROMPT_EVENT_TYPES.has(event.type)) {
@@ -1203,6 +1214,7 @@ const extractPrompt = (event) => {
1203
1214
  '',
1204
1215
  'Use this answer to continue the work you were doing.',
1205
1216
  'Only post a concise pod update if a human needs it; otherwise return NO_REPLY.',
1217
+ FINAL_TEXT_IS_POSTED,
1206
1218
  ].join('\n');
1207
1219
  }
1208
1220
  if (event.type === 'decision.ruled') {
@@ -2249,7 +2261,8 @@ export const performRun = ({
2249
2261
  ...(omitted > 0
2250
2262
  ? [`[${omitted} more event${omitted === 1 ? '' : 's'} arrived. Their count is real; pull pod context if needed.]`]
2251
2263
  : []),
2252
- 'Do not narrate the inbox. Post only an action or a materially useful response; otherwise return NO_REPLY.',
2264
+ 'Do not narrate the inbox. Post only an action or a materially useful response; otherwise return NO_REPLY. '
2265
+ + FINAL_TEXT_IS_POSTED,
2253
2266
  ].join('\n\n');
2254
2267
  };
2255
2268