@codeagentswarm/cas-cloud 0.0.12 → 0.0.16
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/antigravity-mcp-launcher.js +35 -8
- package/dist/cas.js +485 -197
- package/dist/mcp-stdio-server.js +35 -8
- package/dist/templates/antigravity-md-titles-section.md +3 -3
- package/dist/templates/codex-md-titles-section.md +3 -3
- package/dist/templates/grok-md-titles-section.md +16 -19
- package/dist/templates/kimi-md-titles-section.md +11 -12
- package/dist/templates/opencode-md-titles-section.md +3 -3
- package/package.json +1 -1
package/dist/mcp-stdio-server.js
CHANGED
|
@@ -3806,6 +3806,18 @@ var MCPStdioServer = class _MCPStdioServer {
|
|
|
3806
3806
|
} catch (e) {
|
|
3807
3807
|
}
|
|
3808
3808
|
}
|
|
3809
|
+
_hasNudgeMarker(kind) {
|
|
3810
|
+
try {
|
|
3811
|
+
const os2 = require("os");
|
|
3812
|
+
const fs2 = require("fs");
|
|
3813
|
+
const stateDir = path.join(os2.homedir(), ".codeagentswarm", "terminal-nudge-state");
|
|
3814
|
+
const rawKey = process.env.CODEAGENTSWARM_TERMINAL_ID || process.env.CODEAGENTSWARM_CURRENT_QUADRANT;
|
|
3815
|
+
const key = String(rawKey || "").replace(/[^A-Za-z0-9_-]/g, "_");
|
|
3816
|
+
return !!key && fs2.existsSync(path.join(stateDir, `${key}.${kind}`));
|
|
3817
|
+
} catch (e) {
|
|
3818
|
+
return false;
|
|
3819
|
+
}
|
|
3820
|
+
}
|
|
3809
3821
|
// Resolve the current terminal id (1-based) from the environment.
|
|
3810
3822
|
_getCurrentTerminalId() {
|
|
3811
3823
|
const terminalId = process.env.CODEAGENTSWARM_CURRENT_QUADRANT;
|
|
@@ -3824,20 +3836,30 @@ var MCPStdioServer = class _MCPStdioServer {
|
|
|
3824
3836
|
}
|
|
3825
3837
|
// Set the GENERAL terminal title: the sticky tab label that represents the
|
|
3826
3838
|
// product-level goal of what this terminal is working on. Set it ONCE at the
|
|
3827
|
-
// start of
|
|
3828
|
-
//
|
|
3829
|
-
//
|
|
3830
|
-
// for that.
|
|
3839
|
+
// start of the conversation. Later calls preserve it unless the caller explicitly
|
|
3840
|
+
// declares a radical topic change. It does NOT represent the current step — use
|
|
3841
|
+
// update_terminal_activity for that.
|
|
3831
3842
|
async setTerminalTitle(params) {
|
|
3832
|
-
const { title, long_title } = params;
|
|
3843
|
+
const { title, long_title, replace_existing } = params;
|
|
3833
3844
|
if (!title) {
|
|
3834
3845
|
throw new Error("title is required");
|
|
3835
3846
|
}
|
|
3836
3847
|
if (isPlaceholderTitle(title)) {
|
|
3837
3848
|
throw new Error(`"${title}" looks like example text copied from the tool documentation, not a real title. Call the tool again with a title that describes the ACTUAL feature or goal you are working on in this agent (max 6 words).`);
|
|
3838
3849
|
}
|
|
3839
|
-
|
|
3850
|
+
if (replace_existing !== void 0 && typeof replace_existing !== "boolean") {
|
|
3851
|
+
throw new Error("replace_existing must be a boolean");
|
|
3852
|
+
}
|
|
3840
3853
|
const terminalId = this._getCurrentTerminalId();
|
|
3854
|
+
if (replace_existing !== true && this._hasNudgeMarker("title")) {
|
|
3855
|
+
return {
|
|
3856
|
+
terminal_id: terminalId,
|
|
3857
|
+
updated: false,
|
|
3858
|
+
preserved: true,
|
|
3859
|
+
message: "The existing conversation title was preserved. Use update_terminal_activity for follow-up work; set replace_existing=true only after the user pivots to a completely different functionality."
|
|
3860
|
+
};
|
|
3861
|
+
}
|
|
3862
|
+
const shortTitle = this.generateShortTitle(title);
|
|
3841
3863
|
const currentTask = this._getCurrentTask(terminalId);
|
|
3842
3864
|
const taskId = currentTask ? currentTask.id : null;
|
|
3843
3865
|
let longTitle = long_title;
|
|
@@ -4735,7 +4757,7 @@ Use 'clear' to remove the status.`;
|
|
|
4735
4757
|
},
|
|
4736
4758
|
{
|
|
4737
4759
|
name: "set_terminal_title",
|
|
4738
|
-
description:
|
|
4760
|
+
description: "Set the GENERAL agent title AND the agent GOAL from the first user request that established this conversation's topic. Pass BOTH text arguments because the user sees them together. This is once per conversation, NOT once per user message, turn, task, review, validation, or resumed session. Follow-up work belongs in update_terminal_activity and repeated calls preserve the original title. Only a user pivot to a completely different functionality may replace it, by passing replace_existing=true. LANGUAGE: write both text fields in the SAME language the user is speaking.",
|
|
4739
4761
|
inputSchema: {
|
|
4740
4762
|
type: "object",
|
|
4741
4763
|
properties: {
|
|
@@ -4746,6 +4768,10 @@ Use 'clear' to remove the status.`;
|
|
|
4746
4768
|
long_title: {
|
|
4747
4769
|
type: "string",
|
|
4748
4770
|
description: `The agent GOAL: one sentence saying what this agent is FOR \u2014 the outcome the work is aiming at, not the current step. ALWAYS provide it: the user reads it in the Agent hover, labelled GOAL, under the short title. Write the real goal in the user's language. Do NOT restate the title or prefix it with "Working on:".`
|
|
4771
|
+
},
|
|
4772
|
+
replace_existing: {
|
|
4773
|
+
type: "boolean",
|
|
4774
|
+
description: "Leave false or omit for normal follow-up work. Set true ONLY when the user explicitly pivots this existing conversation to a completely different functionality; reviews, tests, fixes, implementation phases, and refinements of the original request are activities and must not replace the title."
|
|
4749
4775
|
}
|
|
4750
4776
|
},
|
|
4751
4777
|
// long_title is NOT in `required` on purpose: some agent clients
|
|
@@ -5199,7 +5225,8 @@ Use 'clear' to remove the status.`;
|
|
|
5199
5225
|
case "set_terminal_title":
|
|
5200
5226
|
result = await this.setTerminalTitle({
|
|
5201
5227
|
title: args.title,
|
|
5202
|
-
long_title: args.long_title
|
|
5228
|
+
long_title: args.long_title,
|
|
5229
|
+
replace_existing: args.replace_existing
|
|
5203
5230
|
});
|
|
5204
5231
|
break;
|
|
5205
5232
|
case "update_terminal_activity":
|
|
@@ -19,7 +19,7 @@ Task management is disabled in CodeAgentSwarm Settings. Do NOT create, start, or
|
|
|
19
19
|
### Agent Title + Activity (product-focused)
|
|
20
20
|
|
|
21
21
|
Three things, all described at the PRODUCT level:
|
|
22
|
-
- **General title** (sticky tab):
|
|
22
|
+
- **General title** (sticky tab): derive it from the **first user request** that established this conversation's functionality and set it ONCE per conversation with `set_terminal_title(title, long_title)`. It stays stable across follow-up messages, new turns, task changes, reviews, tests, validation, implementation phases, and context compaction; those change `update_terminal_activity`, not the title. Only when the user pivots this conversation to a completely different functionality call `set_terminal_title` again with `replace_existing=true`. Refining, extending, fixing, reviewing, or finishing the original request is not a radical pivot. Keep the title at the FEATURE level, never a work phase; a manual rename always wins.
|
|
23
23
|
- **Goal** (hover, labelled GOAL): the SAME call carries it in `long_title` — one sentence on what this agent is FOR, the outcome the work aims at, not the step you are on. ALWAYS pass it: it is the only place that answers "why does this agent exist", and three words of title cannot. Write it in the user's language. Good: title "Orden notificación" + long_title "Que las notificaciones no salgan antes de que cambie el status del agente". Bad: a long_title that only repeats the title, or one prefixed "Working on:" — both are DISCARDED and the user then sees no goal at all; omitting it has the same effect.
|
|
24
24
|
- **Current activity** (hover + activity log): call `update_terminal_activity(activity)` OFTEN, one short sentence per step framed at the PRODUCT/feature level (what it does for the user), NOT in technical/internal terms (avoid handler, function, class, module, hook). Bad: "Investigating the output handler cost". Good: "Investigating why agents feel slow". It does NOT change the tab.
|
|
25
25
|
|
|
@@ -33,7 +33,7 @@ LANGUAGE: write the title, the goal and the activity in the SAME language the us
|
|
|
33
33
|
|
|
34
34
|
```
|
|
35
35
|
CORRECT:
|
|
36
|
-
1. set_terminal_title(title, long_title) <-
|
|
36
|
+
1. set_terminal_title(title, long_title) <- first request in this conversation only
|
|
37
37
|
2. update_terminal_activity(activity=...) <- before you act, then often as you work
|
|
38
38
|
3. update_terminal_activity(activity=...) <- a final summary when you finish
|
|
39
39
|
```
|
|
@@ -44,7 +44,7 @@ CORRECT:
|
|
|
44
44
|
|
|
45
45
|
| Tool | Purpose |
|
|
46
46
|
|------|---------|
|
|
47
|
-
| `set_terminal_title` | Set the
|
|
47
|
+
| `set_terminal_title` | Set the sticky title + GOAL once per conversation; replace only for a radical pivot |
|
|
48
48
|
| `update_terminal_activity` | Log the current product-focused activity, often as you work |
|
|
49
49
|
<!-- CAS:STATUS:START -->
|
|
50
50
|
| `set_terminal_status` | Keep the work-phase status badge honest at every phase change |
|
|
@@ -19,7 +19,7 @@ Task management is disabled in CodeAgentSwarm Settings. Do NOT create, start, or
|
|
|
19
19
|
### Agent Title + Activity (product-focused)
|
|
20
20
|
|
|
21
21
|
Three things, all described at the PRODUCT level:
|
|
22
|
-
- **General title** (sticky tab):
|
|
22
|
+
- **General title** (sticky tab): derive it from the **first user request** that established this conversation's functionality and set it ONCE per conversation with `set_terminal_title(title, long_title)`. It stays stable across follow-up messages, new turns, task changes, reviews, tests, validation, implementation phases, and context compaction; those change `update_terminal_activity`, not the title. Only when the user pivots this conversation to a completely different functionality call `set_terminal_title` again with `replace_existing=true`. Refining, extending, fixing, reviewing, or finishing the original request is not a radical pivot. Keep the title at the FEATURE level, never a work phase; a manual rename always wins.
|
|
23
23
|
- **Goal** (hover, labelled GOAL): the SAME call carries it in `long_title` — one sentence on what this agent is FOR, the outcome the work aims at, not the step you are on. ALWAYS pass it: it is the only place that answers "why does this agent exist", and three words of title cannot. Write it in the user's language. Good: title "Orden notificación" + long_title "Que las notificaciones no salgan antes de que cambie el status del agente". Bad: a long_title that only repeats the title, or one prefixed "Working on:" — both are DISCARDED and the user then sees no goal at all; omitting it has the same effect.
|
|
24
24
|
- **Current activity** (hover + activity log): call `update_terminal_activity(activity)` OFTEN, one short sentence per step framed at the PRODUCT/feature level (what it does for the user), NOT in technical/internal terms (avoid handler, function, class, module, hook). Bad: "Investigating the output handler cost". Good: "Investigating why agents feel slow". It does NOT change the tab.
|
|
25
25
|
|
|
@@ -33,7 +33,7 @@ LANGUAGE: write the title, the goal and the activity in the SAME language the us
|
|
|
33
33
|
|
|
34
34
|
```
|
|
35
35
|
CORRECT:
|
|
36
|
-
1. set_terminal_title(title, long_title) <-
|
|
36
|
+
1. set_terminal_title(title, long_title) <- first request in this conversation only
|
|
37
37
|
2. update_terminal_activity(activity=...) <- before you act, then often as you work
|
|
38
38
|
3. update_terminal_activity(activity=...) <- a final summary when you finish
|
|
39
39
|
```
|
|
@@ -44,7 +44,7 @@ CORRECT:
|
|
|
44
44
|
|
|
45
45
|
| Tool | Purpose |
|
|
46
46
|
|------|---------|
|
|
47
|
-
| `set_terminal_title` | Set the
|
|
47
|
+
| `set_terminal_title` | Set the sticky title + GOAL once per conversation; replace only for a radical pivot |
|
|
48
48
|
| `update_terminal_activity` | Log the current product-focused activity, often as you work |
|
|
49
49
|
<!-- CAS:STATUS:START -->
|
|
50
50
|
| `set_terminal_status` | Keep the work-phase status badge honest at every phase change |
|
|
@@ -22,16 +22,15 @@ Task management is disabled in CodeAgentSwarm Settings. Do NOT create, start, or
|
|
|
22
22
|
(read, grep, bash, image gen, web search, file writes, MCP discovery for non-title work, etc.):
|
|
23
23
|
|
|
24
24
|
```
|
|
25
|
-
1.
|
|
25
|
+
1. On the conversation's first request only: set_terminal_title(title, long_title)
|
|
26
26
|
<!-- CAS:STATUS:START -->
|
|
27
27
|
2. set_terminal_status("working") <- work-phase badge
|
|
28
28
|
<!-- CAS:STATUS:END -->
|
|
29
|
-
3. update_terminal_activity(activity=...)
|
|
29
|
+
3. On every request: update_terminal_activity(activity=...) for the current step
|
|
30
30
|
```
|
|
31
31
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
title/goal/activity while working is a failure.
|
|
32
|
+
The title/goal call is mandatory only for the first request that establishes the
|
|
33
|
+
conversation topic. On later requests, keep the existing title and update status/activity.
|
|
35
34
|
|
|
36
35
|
Batch the bootstrap calls in the **same first tool round** as `check_active` when
|
|
37
36
|
possible (or immediately after it). Do not start real work until they succeed.
|
|
@@ -47,22 +46,20 @@ them in your function list is not a reason to skip the title.**
|
|
|
47
46
|
How to call them in this runtime:
|
|
48
47
|
|
|
49
48
|
1. `search_tool` with query `codeagentswarm set_terminal_title` (once per session is enough).
|
|
50
|
-
2.
|
|
51
|
-
and
|
|
52
|
-
3.
|
|
49
|
+
2. On this conversation's first request, `use_tool` with `tool_name`
|
|
50
|
+
**`codeagentswarm-tasks__set_terminal_title`** and both title arguments.
|
|
51
|
+
3. On every turn, call `codeagentswarm-tasks__update_terminal_activity`.
|
|
53
52
|
<!-- CAS:STATUS:START -->
|
|
54
53
|
4. Same round: `codeagentswarm-tasks__set_terminal_status` with `{ "status": "working" }`.
|
|
55
54
|
<!-- CAS:STATUS:END -->
|
|
56
55
|
|
|
57
|
-
Do
|
|
58
|
-
|
|
59
|
-
and call `use_tool` directly. If you already started work without a title, call
|
|
60
|
-
these MCP tools immediately.
|
|
56
|
+
Do the applicable calls **before** real work. On a later turn, keep the existing
|
|
57
|
+
title. For a radical topic pivot only, pass `replace_existing=true`.
|
|
61
58
|
|
|
62
59
|
### Agent Title + Activity (product-focused)
|
|
63
60
|
|
|
64
61
|
Three things, all described at the PRODUCT level:
|
|
65
|
-
- **General title** (sticky tab):
|
|
62
|
+
- **General title** (sticky tab): derive it from the **first user request** that established this conversation's functionality and set it ONCE per conversation with `set_terminal_title(title, long_title)`. It stays stable across follow-up messages, new turns, task changes, reviews, tests, validation, implementation phases, and context compaction; those change `update_terminal_activity`, not the title. Only when the user pivots this conversation to a completely different functionality call `set_terminal_title` again with `replace_existing=true`. Refining, extending, fixing, reviewing, or finishing the original request is not a radical pivot. Keep the title at the FEATURE level, never a work phase; a manual rename always wins.
|
|
66
63
|
- **Goal** (hover, labelled GOAL): the SAME call carries it in `long_title` — one sentence on what this agent is FOR, the outcome the work aims at, not the step you are on. ALWAYS pass it: it is the only place that answers "why does this agent exist", and three words of title cannot. Write it in the user's language. Good: title "Orden notificación" + long_title "Que las notificaciones no salgan antes de que cambie el status del agente". Bad: a long_title that only repeats the title, or one prefixed "Working on:" — both are DISCARDED and the user then sees no goal at all; omitting it has the same effect.
|
|
67
64
|
- **Current activity** (hover + activity log): call `update_terminal_activity(activity)` OFTEN, one short sentence per step framed at the PRODUCT/feature level (what it does for the user), NOT in technical/internal terms (avoid handler, function, class, module, hook). Bad: "Investigating the output handler cost". Good: "Investigating why agents feel slow". It does NOT change the tab.
|
|
68
65
|
|
|
@@ -75,9 +72,9 @@ Do NOT keep renaming the tab every few minutes; use `update_terminal_activity` f
|
|
|
75
72
|
LANGUAGE: write the title, the goal and the activity in the SAME language the user is speaking (e.g. Spanish if the user writes in Spanish).
|
|
76
73
|
|
|
77
74
|
```
|
|
78
|
-
CORRECT
|
|
75
|
+
CORRECT:
|
|
79
76
|
1. check_active
|
|
80
|
-
2. set_terminal_title(title, long_title) <-
|
|
77
|
+
2. set_terminal_title(title, long_title) <- first request in this conversation only
|
|
81
78
|
<!-- CAS:STATUS:START -->
|
|
82
79
|
3. set_terminal_status("working")
|
|
83
80
|
<!-- CAS:STATUS:END -->
|
|
@@ -92,7 +89,7 @@ CORRECT (every request — research, questions, design, advice):
|
|
|
92
89
|
| Tool | Purpose |
|
|
93
90
|
|------|---------|
|
|
94
91
|
| `check_active` | Gate: only use CAS tools when inside CodeAgentSwarm |
|
|
95
|
-
| `set_terminal_title` | Set the
|
|
92
|
+
| `set_terminal_title` | Set the sticky title + GOAL once per conversation; replace only for a radical pivot |
|
|
96
93
|
| `update_terminal_activity` | Log the current product-focused activity, often as you work |
|
|
97
94
|
<!-- CAS:STATUS:START -->
|
|
98
95
|
| `set_terminal_status` | Keep the work-phase status badge honest at every phase change |
|
|
@@ -100,12 +97,12 @@ CORRECT (every request — research, questions, design, advice):
|
|
|
100
97
|
|
|
101
98
|
### MEMORIZE (every session)
|
|
102
99
|
|
|
103
|
-
1. **
|
|
100
|
+
1. **First request** → `check_active`, then `set_terminal_title(title, long_title)` once
|
|
104
101
|
<!-- CAS:STATUS:START -->
|
|
105
102
|
2. **Also set status** → `set_terminal_status("working")` at start; update on every phase change (`needs_input` / `needs_testing` / `done`)
|
|
106
103
|
<!-- CAS:STATUS:END -->
|
|
107
|
-
3. **
|
|
108
|
-
4. **Radical topic change** →
|
|
104
|
+
3. **Every request/new step** → `update_terminal_activity` (product step), never retitle
|
|
105
|
+
4. **Radical topic change** → `set_terminal_title(..., replace_existing=true)`
|
|
109
106
|
|
|
110
107
|
### Mobile list cards = desktop List tabs (2026-08-13)
|
|
111
108
|
|
|
@@ -22,16 +22,15 @@ Task management is disabled in CodeAgentSwarm Settings. Do NOT create, start, or
|
|
|
22
22
|
(read, grep, bash, image gen, web search, file writes, MCP discovery for non-title work, etc.):
|
|
23
23
|
|
|
24
24
|
```
|
|
25
|
-
1.
|
|
25
|
+
1. On the conversation's first request only: set_terminal_title(title, long_title)
|
|
26
26
|
<!-- CAS:STATUS:START -->
|
|
27
27
|
2. set_terminal_status("working") <- work-phase badge
|
|
28
28
|
<!-- CAS:STATUS:END -->
|
|
29
|
-
3. update_terminal_activity(activity=...)
|
|
29
|
+
3. On every request: update_terminal_activity(activity=...) for the current step
|
|
30
30
|
```
|
|
31
31
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
title/goal/activity while working is a failure.
|
|
32
|
+
The title/goal call is mandatory only for the first request that establishes the
|
|
33
|
+
conversation topic. On later requests, keep the existing title and update status/activity.
|
|
35
34
|
|
|
36
35
|
Batch the bootstrap calls in the **same first tool round** as `check_active` when
|
|
37
36
|
possible (or immediately after it). Do not start real work until they succeed.
|
|
@@ -41,7 +40,7 @@ LANGUAGE: write title, goal (`long_title`) and activity in the SAME language the
|
|
|
41
40
|
### Agent Title + Activity (product-focused)
|
|
42
41
|
|
|
43
42
|
Three things, all described at the PRODUCT level:
|
|
44
|
-
- **General title** (sticky tab):
|
|
43
|
+
- **General title** (sticky tab): derive it from the **first user request** that established this conversation's functionality and set it ONCE per conversation with `set_terminal_title(title, long_title)`. It stays stable across follow-up messages, new turns, task changes, reviews, tests, validation, implementation phases, and context compaction; those change `update_terminal_activity`, not the title. Only when the user pivots this conversation to a completely different functionality call `set_terminal_title` again with `replace_existing=true`. Refining, extending, fixing, reviewing, or finishing the original request is not a radical pivot. Keep the title at the FEATURE level, never a work phase; a manual rename always wins.
|
|
45
44
|
- **Goal** (hover, labelled GOAL): the SAME call carries it in `long_title` — one sentence on what this agent is FOR, the outcome the work aims at, not the step you are on. ALWAYS pass it: it is the only place that answers "why does this agent exist", and three words of title cannot. Write it in the user's language. Good: title "Orden notificación" + long_title "Que las notificaciones no salgan antes de que cambie el status del agente". Bad: a long_title that only repeats the title, or one prefixed "Working on:" — both are DISCARDED and the user then sees no goal at all; omitting it has the same effect.
|
|
46
45
|
- **Current activity** (hover + activity log): call `update_terminal_activity(activity)` OFTEN, one short sentence per step framed at the PRODUCT/feature level (what it does for the user), NOT in technical/internal terms (avoid handler, function, class, module, hook). Bad: "Investigating the output handler cost". Good: "Investigating why agents feel slow". It does NOT change the tab.
|
|
47
46
|
|
|
@@ -54,9 +53,9 @@ Do NOT keep renaming the tab every few minutes; use `update_terminal_activity` f
|
|
|
54
53
|
LANGUAGE: write the title, the goal and the activity in the SAME language the user is speaking (e.g. Spanish if the user writes in Spanish).
|
|
55
54
|
|
|
56
55
|
```
|
|
57
|
-
CORRECT
|
|
56
|
+
CORRECT:
|
|
58
57
|
1. check_active
|
|
59
|
-
2. set_terminal_title(title, long_title) <-
|
|
58
|
+
2. set_terminal_title(title, long_title) <- first request in this conversation only
|
|
60
59
|
<!-- CAS:STATUS:START -->
|
|
61
60
|
3. set_terminal_status("working")
|
|
62
61
|
<!-- CAS:STATUS:END -->
|
|
@@ -71,7 +70,7 @@ CORRECT (every request — research, questions, design, advice):
|
|
|
71
70
|
| Tool | Purpose |
|
|
72
71
|
|------|---------|
|
|
73
72
|
| `check_active` | Gate: only use CAS tools when inside CodeAgentSwarm |
|
|
74
|
-
| `set_terminal_title` | Set the
|
|
73
|
+
| `set_terminal_title` | Set the sticky title + GOAL once per conversation; replace only for a radical pivot |
|
|
75
74
|
| `update_terminal_activity` | Log the current product-focused activity, often as you work |
|
|
76
75
|
<!-- CAS:STATUS:START -->
|
|
77
76
|
| `set_terminal_status` | Keep the work-phase status badge honest at every phase change |
|
|
@@ -79,11 +78,11 @@ CORRECT (every request — research, questions, design, advice):
|
|
|
79
78
|
|
|
80
79
|
### MEMORIZE (every session)
|
|
81
80
|
|
|
82
|
-
1. **
|
|
81
|
+
1. **First request** → `check_active`, then `set_terminal_title(title, long_title)` once
|
|
83
82
|
<!-- CAS:STATUS:START -->
|
|
84
83
|
2. **Also set status** → `set_terminal_status("working")` at start; update on every phase change (`needs_input` / `needs_testing` / `done`)
|
|
85
84
|
<!-- CAS:STATUS:END -->
|
|
86
|
-
3. **
|
|
87
|
-
4. **Radical topic change** →
|
|
85
|
+
3. **Every request/new step** → `update_terminal_activity` (product step), never retitle
|
|
86
|
+
4. **Radical topic change** → `set_terminal_title(..., replace_existing=true)`
|
|
88
87
|
|
|
89
88
|
<!-- CODEAGENTSWARM GLOBAL CONFIG END -->
|
|
@@ -19,7 +19,7 @@ Task management is disabled in CodeAgentSwarm Settings. Do NOT create, start, or
|
|
|
19
19
|
### Agent Title + Activity (product-focused)
|
|
20
20
|
|
|
21
21
|
Three things, all described at the PRODUCT level:
|
|
22
|
-
- **General title** (sticky tab):
|
|
22
|
+
- **General title** (sticky tab): derive it from the **first user request** that established this conversation's functionality and set it ONCE per conversation with `set_terminal_title(title, long_title)`. It stays stable across follow-up messages, new turns, task changes, reviews, tests, validation, implementation phases, and context compaction; those change `update_terminal_activity`, not the title. Only when the user pivots this conversation to a completely different functionality call `set_terminal_title` again with `replace_existing=true`. Refining, extending, fixing, reviewing, or finishing the original request is not a radical pivot. Keep the title at the FEATURE level, never a work phase; a manual rename always wins.
|
|
23
23
|
- **Goal** (hover, labelled GOAL): the SAME call carries it in `long_title` — one sentence on what this agent is FOR, the outcome the work aims at, not the step you are on. ALWAYS pass it: it is the only place that answers "why does this agent exist", and three words of title cannot. Write it in the user's language. Good: title "Orden notificación" + long_title "Que las notificaciones no salgan antes de que cambie el status del agente". Bad: a long_title that only repeats the title, or one prefixed "Working on:" — both are DISCARDED and the user then sees no goal at all; omitting it has the same effect.
|
|
24
24
|
- **Current activity** (hover + activity log): call `update_terminal_activity(activity)` OFTEN, one short sentence per step framed at the PRODUCT/feature level (what it does for the user), NOT in technical/internal terms (avoid handler, function, class, module, hook). Bad: "Investigating the output handler cost". Good: "Investigating why agents feel slow". It does NOT change the tab.
|
|
25
25
|
|
|
@@ -33,7 +33,7 @@ LANGUAGE: write the title, the goal and the activity in the SAME language the us
|
|
|
33
33
|
|
|
34
34
|
```
|
|
35
35
|
CORRECT:
|
|
36
|
-
1. set_terminal_title(title, long_title) <-
|
|
36
|
+
1. set_terminal_title(title, long_title) <- first request in this conversation only
|
|
37
37
|
2. update_terminal_activity(activity=...) <- before you act, then often as you work
|
|
38
38
|
3. update_terminal_activity(activity=...) <- a final summary when you finish
|
|
39
39
|
```
|
|
@@ -44,7 +44,7 @@ CORRECT:
|
|
|
44
44
|
|
|
45
45
|
| Tool | Purpose |
|
|
46
46
|
|------|---------|
|
|
47
|
-
| `set_terminal_title` | Set the
|
|
47
|
+
| `set_terminal_title` | Set the sticky title + GOAL once per conversation; replace only for a radical pivot |
|
|
48
48
|
| `update_terminal_activity` | Log the current product-focused activity, often as you work |
|
|
49
49
|
<!-- CAS:STATUS:START -->
|
|
50
50
|
| `set_terminal_status` | Keep the work-phase status badge honest at every phase change |
|
package/package.json
CHANGED