@rubytech/taskmaster 1.0.8 → 1.0.9

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.
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.0.8",
3
- "commit": "18b18df8a843681fe3d585bf38cb926ec68220c4",
4
- "builtAt": "2026-02-15T08:55:24.911Z"
2
+ "version": "1.0.9",
3
+ "commit": "bb9f9dfd5f3570a9463a2a6f560e591d0eb1ecef",
4
+ "builtAt": "2026-02-15T09:07:11.586Z"
5
5
  }
@@ -56,7 +56,7 @@ async function runProvision(opts) {
56
56
  else if (isLinux) {
57
57
  await installAvahi();
58
58
  await setHostname();
59
- await registerMdnsService(port);
59
+ await restartAvahi();
60
60
  }
61
61
  else {
62
62
  console.log("[4/7] mDNS: skipped (Bonjour built-in on macOS)");
@@ -182,36 +182,16 @@ async function setHostname() {
182
182
  // ---------------------------------------------------------------------------
183
183
  // Step 6: Register mDNS service (Linux only)
184
184
  // ---------------------------------------------------------------------------
185
- async function registerMdnsService(port) {
186
- console.log("[6/7] Registering mDNS service...");
187
- const serviceXml = `<?xml version="1.0" standalone='no'?>
188
- <!DOCTYPE service-group SYSTEM "avahi-service.dtd">
189
- <service-group>
190
- <name replace-wildcards="yes">Taskmaster on %h</name>
191
- <service>
192
- <type>_http._tcp</type>
193
- <port>${port}</port>
194
- <txt-record>path=/</txt-record>
195
- </service>
196
- </service-group>
197
- `;
198
- const servicePath = "/etc/avahi/services/taskmaster.service";
185
+ async function restartAvahi() {
186
+ console.log("[6/7] Restarting avahi (mDNS hostname)...");
199
187
  try {
200
- // Write via sudo tee
201
- const result = await runCommandWithTimeout(["sudo", "tee", servicePath], {
202
- timeoutMs: 10_000,
203
- input: serviceXml,
204
- });
205
- if (result.code !== 0)
206
- throw new Error(result.stderr || "tee failed");
207
- // Restart avahi to pick up changes
208
188
  await runCommandWithTimeout(["sudo", "systemctl", "restart", "avahi-daemon"], {
209
189
  timeoutMs: 15_000,
210
190
  });
211
- console.log(` mDNS service registered on port ${port}`);
191
+ console.log(" mDNS ready (gateway handles service advertisement)");
212
192
  }
213
193
  catch (err) {
214
- console.error(` mDNS registration failed: ${String(err)}`);
194
+ console.error(` avahi restart failed: ${String(err)}`);
215
195
  }
216
196
  }
217
197
  // ---------------------------------------------------------------------------
@@ -97,6 +97,9 @@ export function buildServiceEnvironment(params) {
97
97
  return {
98
98
  HOME: env.HOME,
99
99
  PATH: buildMinimalServicePath({ env }),
100
+ // On Linux, avahi-daemon handles mDNS hostname resolution. Disable the
101
+ // gateway's built-in Bonjour (ciao) to avoid hostname probe conflicts.
102
+ ...(process.platform === "linux" ? { TASKMASTER_DISABLE_BONJOUR: "1" } : {}),
100
103
  TASKMASTER_PROFILE: profile,
101
104
  TASKMASTER_STATE_DIR: env.TASKMASTER_STATE_DIR,
102
105
  TASKMASTER_CONFIG_PATH: env.TASKMASTER_CONFIG_PATH,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rubytech/taskmaster",
3
- "version": "1.0.8",
3
+ "version": "1.0.9",
4
4
  "description": "AI-powered business assistant for small businesses",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -145,22 +145,9 @@ if [ "$(id -u)" = "0" ] && [ "$REAL_USER" != "root" ]; then
145
145
  echo "127.0.0.1 taskmaster" >> /etc/hosts
146
146
  fi
147
147
 
148
- # mDNS service file
149
- mkdir -p /etc/avahi/services
150
- cat > /etc/avahi/services/taskmaster.service << XMLEOF
151
- <?xml version="1.0" standalone='no'?>
152
- <!DOCTYPE service-group SYSTEM "avahi-service.dtd">
153
- <service-group>
154
- <name replace-wildcards="yes">Taskmaster on %h</name>
155
- <service>
156
- <type>_http._tcp</type>
157
- <port>${MDNS_PORT}</port>
158
- <txt-record>path=/</txt-record>
159
- </service>
160
- </service-group>
161
- XMLEOF
148
+ # Restart avahi so it picks up the new hostname
162
149
  systemctl restart avahi-daemon 2>/dev/null || true
163
- echo " mDNS service registered on port $MDNS_PORT"
150
+ echo " mDNS ready (gateway handles service advertisement)"
164
151
 
165
152
  # Enable user services so systemctl --user works after logout
166
153
  REAL_UID=$(id -u "$REAL_USER")
@@ -1,21 +1,11 @@
1
1
  ---
2
2
  name: beagle
3
- always: true
3
+ description: "Find local service providers, compare quotes, and book the best one for the customer. Full 8-step booking workflow from intake to fee collection."
4
+ metadata: {"taskmaster":{"always":true}}
4
5
  ---
5
6
 
6
7
  # Beagle — AI Booking Agent
7
8
 
8
- <description>
9
- Find local service providers, compare quotes, and book the best one for the customer. Full 8-step booking workflow from intake to fee collection.
10
- </description>
11
-
12
- <triggers>
13
- - Any inbound WhatsApp message (customer enquiry or provider response)
14
- - Any cron-fired agentTurn (timeouts, follow-ups, fee reminders)
15
- </triggers>
16
-
17
- ---
18
-
19
9
  ## Quick Reference — The 8 Steps
20
10
 
21
11
  1. **Customer Intake** — Qualify the job (what, where, when, budget). Create booking group.
@@ -1,17 +1,9 @@
1
- # Business Assistant Skill
2
-
3
- <description>
4
- Handle customer enquiries, scheduling, and day-to-day business communication for a small business.
5
- </description>
6
-
7
- <triggers>
8
- - Customer enquiries about services, availability, pricing
9
- - Scheduling and appointment requests
10
- - Follow-ups on outstanding requests
11
- - General business questions
12
- </triggers>
13
-
14
1
  ---
2
+ name: business-assistant
3
+ description: "Handle customer enquiries, scheduling, and day-to-day business communication for a small business."
4
+ ---
5
+
6
+ # Business Assistant Skill
15
7
 
16
8
  ## Your Role
17
9
 
@@ -1,17 +1,9 @@
1
- # Business Assistant Skill
2
-
3
- <description>
4
- Handle customer enquiries, scheduling, and day-to-day business communication for a small business.
5
- </description>
6
-
7
- <triggers>
8
- - Customer enquiries about services, availability, pricing
9
- - Scheduling and appointment requests
10
- - Follow-ups on outstanding requests
11
- - General business questions
12
- </triggers>
13
-
14
1
  ---
2
+ name: business-assistant
3
+ description: "Handle customer enquiries, scheduling, and day-to-day business communication for a small business."
4
+ ---
5
+
6
+ # Business Assistant Skill
15
7
 
16
8
  ## Your Role
17
9
 
@@ -1,17 +1,9 @@
1
- # Taskmaster Product Skill
2
-
3
- <description>
4
- Handle enquiries about Taskmaster — the AI business assistant for UK small businesses.
5
- </description>
6
-
7
- <triggers>
8
- - Questions about Taskmaster, the product, pricing, or signup
9
- - "What is Taskmaster?", "How does it work?", "How much does it cost?"
10
- - Interest in AI assistant for business
11
- - Requests for demo, trial, or signup
12
- </triggers>
13
-
14
1
  ---
2
+ name: taskmaster
3
+ description: "Handle enquiries about Taskmaster — the AI business assistant for small businesses. Product info, pricing, signup, licensing, and support."
4
+ ---
5
+
6
+ # Taskmaster Product Skill
15
7
 
16
8
  ## Core Principle: Memory First
17
9
 
@@ -1,17 +1,9 @@
1
- # Business Assistant Skill
2
-
3
- <description>
4
- Handle customer enquiries, bookings, and diary management for a small business.
5
- </description>
6
-
7
- <triggers>
8
- - Customer enquiries about services, availability, pricing
9
- - Booking requests and scheduling
10
- - Quote follow-ups
11
- - General business questions
12
- </triggers>
13
-
14
1
  ---
2
+ name: business-assistant
3
+ description: "Handle customer enquiries, bookings, and diary management for a small business."
4
+ ---
5
+
6
+ # Business Assistant Skill
15
7
 
16
8
  ## Your Role
17
9