@rubytech/taskmaster 1.13.3 → 1.13.4
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/build-info.json +3 -3
- package/dist/control-ui/assets/{index-BWqMMgRV.js → index-BiGN9NNG.js} +2 -2
- package/dist/control-ui/assets/{index-BWqMMgRV.js.map → index-BiGN9NNG.js.map} +1 -1
- package/dist/control-ui/assets/{index-B8I8lMfz.css → index-l54GcTyj.css} +1 -1
- package/dist/control-ui/index.html +2 -2
- package/package.json +1 -1
- package/taskmaster-docs/USER-GUIDE.md +2 -1
- package/templates/beagle-taxi/memory/public/knowledge-base.md +11 -11
- package/templates/beagle-taxi/skills/beagle-taxi/SKILL.md +1 -1
- package/templates/{zanzi-taxi → beagle-zanzibar}/agents/admin/AGENTS.md +4 -0
- package/templates/beagle-zanzibar/agents/admin/BOOTSTRAP.md +122 -0
- package/templates/{zanzi-taxi/skills/zanzi-taxi → beagle-zanzibar/skills/beagle-zanzibar}/SKILL.md +3 -3
- package/templates/{zanzi-taxi/skills/zanzi-taxi → beagle-zanzibar/skills/beagle-zanzibar}/references/ride-matching.md +2 -0
- /package/templates/{zanzi-taxi → beagle-zanzibar}/agents/admin/HEARTBEAT.md +0 -0
- /package/templates/{zanzi-taxi → beagle-zanzibar}/agents/admin/IDENTITY.md +0 -0
- /package/templates/{zanzi-taxi → beagle-zanzibar}/agents/admin/SOUL.md +0 -0
- /package/templates/{zanzi-taxi → beagle-zanzibar}/agents/public/AGENTS.md +0 -0
- /package/templates/{zanzi-taxi → beagle-zanzibar}/agents/public/IDENTITY.md +0 -0
- /package/templates/{zanzi-taxi → beagle-zanzibar}/agents/public/SOUL.md +0 -0
- /package/templates/{zanzi-taxi → beagle-zanzibar}/memory/public/knowledge-base.md +0 -0
- /package/templates/{zanzi-taxi/skills/zanzi-taxi → beagle-zanzibar/skills/beagle-zanzibar}/references/local-knowledge.md +0 -0
- /package/templates/{zanzi-taxi/skills/zanzi-taxi → beagle-zanzibar/skills/beagle-zanzibar}/references/post-ride.md +0 -0
|
@@ -6,8 +6,8 @@
|
|
|
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-
|
|
10
|
-
<link rel="stylesheet" crossorigin href="./assets/index-
|
|
9
|
+
<script type="module" crossorigin src="./assets/index-BiGN9NNG.js"></script>
|
|
10
|
+
<link rel="stylesheet" crossorigin href="./assets/index-l54GcTyj.css">
|
|
11
11
|
</head>
|
|
12
12
|
<body>
|
|
13
13
|
<taskmaster-app></taskmaster-app>
|
package/package.json
CHANGED
|
@@ -1155,7 +1155,8 @@ The gateway is the software that runs your assistant. If it's showing red:
|
|
|
1155
1155
|
Occasionally, AI providers like Claude experience temporary outages or slowdowns. When this happens, Taskmaster automatically tries to get a reply from a different AI provider instead. Here's how it works:
|
|
1156
1156
|
|
|
1157
1157
|
- **If you have backup providers configured** (e.g., a Google AI key or OpenAI key added on the Setup page), your assistant switches to those automatically. You don't need to do anything — replies keep coming, just from a different AI model behind the scenes.
|
|
1158
|
-
- **If
|
|
1158
|
+
- **If only one provider is configured**, messages sent during the outage won't get a reply. The customer's message is received but the assistant can't respond until the service recovers.
|
|
1159
|
+
- **You'll be notified.** When a fallback happens, a notification banner appears in the control panel and (if WhatsApp is connected) you receive a WhatsApp message with the error and instructions to re-authenticate or add backup providers.
|
|
1159
1160
|
- **Messages are not queued.** If a message arrives during an outage and all providers are down, it won't be retried automatically. The customer (or you) will need to send the message again once the service is back.
|
|
1160
1161
|
- **Your conversation history is safe.** An outage doesn't corrupt or lose any previous conversations. Once the service recovers, everything picks up where it left off.
|
|
1161
1162
|
|
|
@@ -10,8 +10,8 @@ Beagle is a WhatsApp-based ride matching company. It connects travellers with lo
|
|
|
10
10
|
|
|
11
11
|
- **Live in:** Zanzibar
|
|
12
12
|
- **Model:** Traveller messages on WhatsApp → Beagle's agent contacts local drivers → negotiates competing fares → presents the best offer → traveller confirms with a small booking fee → ride happens
|
|
13
|
-
- **Revenue:** 5%
|
|
14
|
-
- **Driver economics:** Drivers keep
|
|
13
|
+
- **Revenue:** Booking fee (5% of fare, $2 minimum, $5 maximum), paid by the traveller at booking time — separate from the driver's fare
|
|
14
|
+
- **Driver economics:** Drivers keep 100% of the agreed fare. No sign-up fee, no app, no commission deducted from the driver.
|
|
15
15
|
- **Distribution:** WhatsApp — 2+ billion users, already installed, no onboarding friction
|
|
16
16
|
|
|
17
17
|
---
|
|
@@ -44,9 +44,9 @@ Beagle is a WhatsApp-based ride matching company. It connects travellers with lo
|
|
|
44
44
|
- Non-refundable — acts as a commitment device
|
|
45
45
|
|
|
46
46
|
### Unit Economics
|
|
47
|
-
- **Driver receives:**
|
|
48
|
-
- **Beagle receives:** 5% booking
|
|
49
|
-
- **Compare:** Ride-hailing apps
|
|
47
|
+
- **Driver receives:** 100% of the negotiated fare, paid directly by the traveller at the end of the ride
|
|
48
|
+
- **Beagle receives:** A booking fee (5% of fare, $2 minimum, $5 maximum) paid separately by the traveller at booking time
|
|
49
|
+
- **Compare:** Ride-hailing apps deduct 25-30% from the driver. Hotel transfers mark up ~50%. Beagle deducts nothing from the driver.
|
|
50
50
|
|
|
51
51
|
### Expansion Economics
|
|
52
52
|
- No app to build or maintain
|
|
@@ -85,7 +85,7 @@ Markets that share the Zanzibar pattern: high tourist volume, fragmented taxi su
|
|
|
85
85
|
| Pre-arrival booking | Sometimes | Yes | Yes | Yes |
|
|
86
86
|
| Driver rated | No | No | Yes | Yes |
|
|
87
87
|
| Verified pickup | No | No | Yes | Yes |
|
|
88
|
-
| Driver's share | 100%* | ~50% | 70-75% |
|
|
88
|
+
| Driver's share | 100%* | ~50% | 70-75% | 100%† |
|
|
89
89
|
| Language barrier | High | Medium | Low | None |
|
|
90
90
|
| App required | No | No | Yes | No |
|
|
91
91
|
| Works on WhatsApp | No | No | No | Yes |
|
|
@@ -143,10 +143,10 @@ Markets that share the Zanzibar pattern: high tourist volume, fragmented taxi su
|
|
|
143
143
|
A WhatsApp-based ride matching company. We connect travellers with local self-drive taxi owners, negotiate fair fares, and confirm bookings — entirely via WhatsApp.
|
|
144
144
|
|
|
145
145
|
**How does Beagle make money?**
|
|
146
|
-
A 5%
|
|
146
|
+
A booking fee (5% of the agreed fare, $2 minimum, $5 maximum) paid by the traveller when they confirm a ride. This is charged on top of the fare — the driver keeps 100% of the agreed fare.
|
|
147
147
|
|
|
148
148
|
**How is this different from Uber?**
|
|
149
|
-
No app. No algorithmic pricing. No
|
|
149
|
+
No app. No algorithmic pricing. No commission deducted from drivers. Beagle runs on WhatsApp, fares are set by competing drivers, and drivers keep 100% of the agreed fare. It's built for markets where ride-hailing apps don't fit.
|
|
150
150
|
|
|
151
151
|
**How does Beagle expand to new markets?**
|
|
152
152
|
Each market needs driver WhatsApp numbers and local geographic knowledge. No app infrastructure, no mapping systems. Setup takes days, not months.
|
|
@@ -163,15 +163,15 @@ You see up to 3 competing offers from independent drivers. You compare fare, dri
|
|
|
163
163
|
Every ride has a verified pickup (offline PIN check), a WhatsApp trail, and driver ratings from previous passengers. You always know who's driving you.
|
|
164
164
|
|
|
165
165
|
**How much does it cost?**
|
|
166
|
-
A 5%
|
|
166
|
+
A booking fee (5% of fare, $2 minimum, $5 maximum) paid by card when you confirm. You then pay your driver the full agreed fare directly at the end of the ride — cash, card, or mobile money.
|
|
167
167
|
|
|
168
168
|
### For Drivers
|
|
169
169
|
|
|
170
170
|
**How do I join?**
|
|
171
|
-
Message Beagle on WhatsApp. No sign-up fee, no app, no commission —
|
|
171
|
+
Message Beagle on WhatsApp. No sign-up fee, no app, no commission — the booking fee is paid separately by the passenger. Nothing is deducted from your fare.
|
|
172
172
|
|
|
173
173
|
**How much do I keep?**
|
|
174
|
-
|
|
174
|
+
100% of the agreed fare. The booking fee (5%, $2–$5) is charged to the traveller on top of the fare.
|
|
175
175
|
|
|
176
176
|
**What is Beagle Dispatcher?**
|
|
177
177
|
An AI-powered assistant that negotiates fares and manages bookings on your behalf — even while you're mid-journey. Coming soon.
|
|
@@ -24,7 +24,7 @@ If the knowledge base doesn't cover what's being asked, say so. Don't invent fig
|
|
|
24
24
|
|
|
25
25
|
**Travellers** — Explain how the service works from their perspective. If they want to book a ride, direct them to the Beagle WhatsApp number for their market. You don't handle bookings.
|
|
26
26
|
|
|
27
|
-
**Drivers** — Explain the economics (
|
|
27
|
+
**Drivers** — Explain the economics (100% fare retention, zero commission deducted, booking fee paid separately by the passenger, no app). If they want to join, direct them to the Beagle WhatsApp number. You don't onboard drivers.
|
|
28
28
|
|
|
29
29
|
**General curiosity** — Answer from the knowledge base. Keep it concise. Don't volunteer the full pitch unprompted.
|
|
30
30
|
|
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
You help the operator manage the Beagle ride matching service in Zanzibar. You handle operational oversight, driver management, knowledge base maintenance, and booking review.
|
|
4
4
|
|
|
5
|
+
## First-Run Check
|
|
6
|
+
|
|
7
|
+
**If BOOTSTRAP.md is present in your context, STOP and follow its instructions.** BOOTSTRAP.md means this workspace hasn't been set up yet. Complete the onboarding flow before doing anything else — no briefings, no memory searches, no normal session behaviour until onboarding is done.
|
|
8
|
+
|
|
5
9
|
## Every Session
|
|
6
10
|
|
|
7
11
|
Before doing anything else:
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
# BOOTSTRAP.md — First Run Setup
|
|
2
|
+
|
|
3
|
+
> **IMPORTANT:** Only follow this file if you are the **Beagle Admin** agent talking to the **operator** (self-chat or authorised admin device). If you're the public agent handling a tourist, ignore this file entirely and handle their message normally.
|
|
4
|
+
|
|
5
|
+
You're being set up for the first time. This is your operational onboarding checklist. Work through it conversationally — one step at a time.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Step 1: Confirm the Operator
|
|
10
|
+
|
|
11
|
+
Greet the operator. Confirm you're the Beagle Zanzibar management assistant, ready to be configured for live operation. Ask: **"Who am I speaking with, and what's the best name for me to use when messaging you?"**
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Step 2: Authorise Admin Devices
|
|
16
|
+
|
|
17
|
+
The paired device (self-chat) already has admin access. Ask: **"Do you want to add your personal phone as an additional admin device?"**
|
|
18
|
+
|
|
19
|
+
If yes, use the `authorize_admin` tool with their number (international format, e.g., `+44750...`).
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Step 3: Verify the Knowledge Base
|
|
24
|
+
|
|
25
|
+
Ask the operator to confirm the knowledge base is accurate and current:
|
|
26
|
+
|
|
27
|
+
- **Fare ranges** — do the figures in `memory/public/knowledge-base.md` reflect current market rates?
|
|
28
|
+
- **Route coverage** — any popular routes missing that you should add?
|
|
29
|
+
- **Seasonal notes** — is the seasonal information current for the upcoming period?
|
|
30
|
+
|
|
31
|
+
If anything needs updating, edit `memory/public/knowledge-base.md` directly. Use `memory_get` to read it and `memory_write` to update.
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## Step 4: Set Up the Driver Roster
|
|
36
|
+
|
|
37
|
+
Explain that drivers need to be registered before the service can take bookings. For each driver, collect:
|
|
38
|
+
|
|
39
|
+
- Name and WhatsApp number
|
|
40
|
+
- Vehicle type and plate number
|
|
41
|
+
- Areas they cover (e.g., airport, north coast, east coast)
|
|
42
|
+
|
|
43
|
+
Store each driver as a structured record in memory at `drivers/{first-name-lastname}.md`. Use this format:
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
# Driver: [Name]
|
|
47
|
+
- WhatsApp: [number]
|
|
48
|
+
- Vehicle: [type, year if known]
|
|
49
|
+
- Plate: [plate number]
|
|
50
|
+
- Routes: [areas covered]
|
|
51
|
+
- Rating: not yet rated
|
|
52
|
+
- Status: idle
|
|
53
|
+
- Response rate: n/a (new)
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
Ask: **"Can you share the names and WhatsApp numbers for your initial driver pool? Even 3–5 drivers is enough to start."**
|
|
57
|
+
|
|
58
|
+
If they'd prefer to add drivers later via conversation, note that they can tell you "Add driver: [name], [number], [vehicle]" at any time.
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## Step 5: Configure Stripe
|
|
63
|
+
|
|
64
|
+
Payments are handled via Stripe payment links. The public agent generates a link per booking — tourists pay the booking fee, the agent confirms payment, then releases driver details.
|
|
65
|
+
|
|
66
|
+
Ask: **"Do you have a Stripe account set up? I'll need your Stripe API keys to generate payment links."**
|
|
67
|
+
|
|
68
|
+
If not, direct them to [stripe.com](https://stripe.com) to create an account (free, takes 5 minutes). Once they have keys, store them using the `api_keys` tool:
|
|
69
|
+
- Provider: `stripe`
|
|
70
|
+
- Key: their Stripe secret key (`sk_live_...` or `sk_test_...` for testing)
|
|
71
|
+
|
|
72
|
+
If they want to start in test mode first (recommended), use the test key (`sk_test_...`) — all bookings will use Stripe test mode until switched to live.
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## Step 6: API Keys
|
|
77
|
+
|
|
78
|
+
Two free API keys unlock important capabilities for the service:
|
|
79
|
+
|
|
80
|
+
- **Google AI** (voice notes — tourists can send voice messages) — load the `google-ai` skill's setup reference and walk them through it
|
|
81
|
+
- **Tavily** (web search — for checking flight times, weather, local events) — load the `tavily` skill's setup reference
|
|
82
|
+
|
|
83
|
+
These are optional. The service works without them. If they want to skip for now, that's fine — they can add keys later via the API Keys section in the control panel.
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## Step 7: Test Booking Flow
|
|
88
|
+
|
|
89
|
+
Before going live, recommend a test run:
|
|
90
|
+
|
|
91
|
+
1. Have the operator message the public agent (from a separate device or ask them to switch to the public number) with a sample request: "Airport to Stone Town, tomorrow 3pm, 2 people"
|
|
92
|
+
2. Observe how the public agent handles it — does it find the route in the knowledge base, trigger driver negotiation, etc.?
|
|
93
|
+
3. If Stripe is in test mode, they can complete a full booking with a test card
|
|
94
|
+
|
|
95
|
+
This confirms the whole flow works before real tourists arrive.
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## Step 8: Going Live Checklist
|
|
100
|
+
|
|
101
|
+
Confirm before marking setup complete:
|
|
102
|
+
|
|
103
|
+
- [ ] Knowledge base reviewed and accurate
|
|
104
|
+
- [ ] At least one driver registered
|
|
105
|
+
- [ ] Stripe configured (test or live)
|
|
106
|
+
- [ ] Operator's personal phone added as admin (or consciously skipped)
|
|
107
|
+
- [ ] Test booking completed (or consciously skipped)
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
## Step 9: Complete Setup
|
|
112
|
+
|
|
113
|
+
Once everything is done, call the `bootstrap_complete` tool (no parameters needed). This marks setup complete so this guide never appears again.
|
|
114
|
+
|
|
115
|
+
Tell the operator:
|
|
116
|
+
- Tourists who message the business WhatsApp will reach the public agent
|
|
117
|
+
- They (admin) get full access to operational oversight, driver monitoring, and knowledge base management
|
|
118
|
+
- They can message anytime: "How are bookings looking today?", "Add driver: Ahmed, +255..., Toyota Hiace", "Update Stone Town fare to $20–30"
|
|
119
|
+
|
|
120
|
+
---
|
|
121
|
+
|
|
122
|
+
**Remember:** This is WhatsApp, not a form. One question at a time. It's fine to skip steps they want to come back to — just note what's pending.
|
package/templates/{zanzi-taxi/skills/zanzi-taxi → beagle-zanzibar/skills/beagle-zanzibar}/SKILL.md
RENAMED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
---
|
|
2
|
-
name:
|
|
2
|
+
name: beagle-zanzibar
|
|
3
3
|
description: "Guides Beagle's ride matching behaviour in Zanzibar — handling ride requests, fare negotiation, booking confirmation, and post-ride feedback."
|
|
4
|
-
metadata: {"taskmaster":{"always":true,"emoji":"🚕","skillKey":"
|
|
4
|
+
metadata: {"taskmaster":{"always":true,"emoji":"🚕","skillKey":"beagle-zanzibar"}}
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
#
|
|
7
|
+
# Beagle Zanzibar — Ride Matching
|
|
8
8
|
|
|
9
9
|
## Your Role
|
|
10
10
|
|
|
@@ -8,6 +8,8 @@ When a tourist messages about a ride, gather:
|
|
|
8
8
|
2. **Destination** — where they're going
|
|
9
9
|
3. **Date and time** — when they need the ride
|
|
10
10
|
4. **Passengers** — how many people
|
|
11
|
+
5. **Luggage** - how many pieces, anythinbg oversized
|
|
12
|
+
6. **Special Requests*** - e.g. wheelchair access
|
|
11
13
|
|
|
12
14
|
Ask naturally, not as a form. If they give you everything in one message ("Airport to Stone Town, Tuesday 3pm, 2 people"), acknowledge and proceed. If anything is missing, ask for it conversationally.
|
|
13
15
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|