@rubytech/taskmaster 1.23.1 → 1.24.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.
@@ -6,7 +6,7 @@
6
6
  <title>Taskmaster Control</title>
7
7
  <meta name="color-scheme" content="dark light" />
8
8
  <link rel="icon" type="image/png" href="./favicon.png" />
9
- <script type="module" crossorigin src="./assets/index-B9ScTH-4.js"></script>
9
+ <script type="module" crossorigin src="./assets/index-B1bLQjxV.js"></script>
10
10
  <link rel="stylesheet" crossorigin href="./assets/index-C7ieCeTV.css">
11
11
  </head>
12
12
  <body>
@@ -11,7 +11,7 @@ import { CONFIG_PATH_TASKMASTER, isNixMode, loadConfig, migrateLegacyConfig, rea
11
11
  import { VERSION } from "../version.js";
12
12
  import { isDiagnosticsEnabled } from "../infra/diagnostic-events.js";
13
13
  import { logAcceptedEnvOption } from "../infra/env.js";
14
- import { reconcileAgentContactTools, reconcileBeaglePublicTools, reconcileControlPanelTools, reconcileQrGenerateTool, reconcileSkillReadTool, reconcileSkillsGroup, reconcileStaleToolEntries, } from "../config/agent-tools-reconcile.js";
14
+ import { reconcileAgentContactTools, reconcileBeaglePublicTools, reconcileControlPanelTools, reconcileQrGenerateTool, reconcileSkillReadTool, reconcileSessionsSpawnTool, reconcileSkillsGroup, reconcileStaleToolEntries, } from "../config/agent-tools-reconcile.js";
15
15
  import { applyPluginAutoEnable } from "../config/plugin-auto-enable.js";
16
16
  import { clearAgentRunContext, onAgentEvent } from "../infra/agent-events.js";
17
17
  import { onHeartbeatEvent } from "../infra/heartbeat-events.js";
@@ -274,6 +274,20 @@ export async function startGatewayServer(port = 18789, opts = {}) {
274
274
  log.warn(`gateway: failed to persist skills group reconciliation: ${String(err)}`);
275
275
  }
276
276
  }
277
+ // Ensure admin agents have sessions_spawn for sub-agent delegation.
278
+ const sessionsSpawnReconcile = reconcileSessionsSpawnTool({ config: configSnapshot.config });
279
+ if (sessionsSpawnReconcile.changes.length > 0) {
280
+ try {
281
+ await writeConfigFile(sessionsSpawnReconcile.config);
282
+ configSnapshot = await readConfigFileSnapshot();
283
+ log.info(`gateway: reconciled sessions_spawn:\n${sessionsSpawnReconcile.changes
284
+ .map((entry) => `- ${entry}`)
285
+ .join("\n")}`);
286
+ }
287
+ catch (err) {
288
+ log.warn(`gateway: failed to persist sessions_spawn reconciliation: ${String(err)}`);
289
+ }
290
+ }
277
291
  // Stamp config with running version on startup so upgrades keep the stamp current.
278
292
  const storedVersion = configSnapshot.config.meta?.lastTouchedVersion;
279
293
  if (configSnapshot.exists && storedVersion !== VERSION) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rubytech/taskmaster",
3
- "version": "1.23.1",
3
+ "version": "1.24.0",
4
4
  "description": "AI-powered business assistant for small businesses",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -132,6 +132,36 @@ This isn't a one-time setup. USER.md should grow as your understanding of them d
132
132
 
133
133
  ---
134
134
 
135
+ ## Delegation — Sub-Agents
136
+
137
+ **Default to delegation.** Any task that requires tool calls — reading files, searching memory, generating content, web lookups, document processing, image work — should be spawned as a sub-agent using `sessions_spawn`. You stay free to keep chatting with the business owner.
138
+
139
+ **How it works:**
140
+ 1. Call `sessions_spawn` with a clear `task` and a short `label`
141
+ 2. The sub-agent runs in the background with the same tools and memory access you have
142
+ 3. When it finishes, its result is announced back into your conversation automatically
143
+ 4. You summarise the result naturally — don't mention sub-agents or background tasks
144
+
145
+ **Delegate:**
146
+ - Memory searches and lookups
147
+ - File reading/writing
148
+ - Document reading (PDFs, DOCX, etc.)
149
+ - Web searches and fetches
150
+ - Content creation (drafts, summaries, reports)
151
+ - Image generation
152
+ - Multi-step research tasks
153
+ - Anything that takes more than a moment
154
+
155
+ **Handle inline (no delegation):**
156
+ - Quick conversational replies (greetings, opinions, yes/no)
157
+ - Brief factual answers you already know
158
+ - Clarifying questions before starting work
159
+ - Confirming or acknowledging something the owner said
160
+
161
+ When multiple independent tasks come up, spawn multiple sub-agents in parallel. Don't wait for one to finish before starting the next.
162
+
163
+ ---
164
+
135
165
  ## Capabilities
136
166
 
137
167
  You have tool access within your workspace:
@@ -20,6 +20,10 @@
20
20
  - Schedule management
21
21
  - Business admin and config
22
22
 
23
+ ## How You Work
24
+
25
+ **Delegate everything that isn't a quick reply.** Your role is to stay responsive — thinking, conversing, and directing. Actual work (research, file operations, document reading, content creation, memory lookups, calculations) gets handed to sub-agents via `sessions_spawn`. They run in the background and report back when done. You keep chatting.
26
+
23
27
  ## What You Don't Do
24
28
 
25
29
  - Talk to customers directly (that's the public assistant)