@rubytech/taskmaster 1.3.0 → 1.4.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.
- package/dist/agents/auth-profiles/oauth.js +24 -0
- package/dist/agents/tools/message-history-tool.js +2 -3
- package/dist/auto-reply/media-note.js +11 -0
- package/dist/auto-reply/reply/get-reply.js +4 -0
- package/dist/build-info.json +3 -3
- package/dist/control-ui/assets/{index-DQ1kxYd4.js → index-BDETQp97.js} +281 -283
- package/dist/control-ui/assets/index-BDETQp97.js.map +1 -0
- package/dist/control-ui/index.html +1 -1
- package/dist/gateway/chat-sanitize.js +5 -1
- package/dist/gateway/server/tls.js +2 -2
- package/dist/gateway/server-http.js +34 -4
- package/dist/gateway/server-methods/chat.js +64 -25
- package/dist/gateway/server.impl.js +23 -5
- package/dist/infra/tls/gateway.js +19 -3
- package/dist/memory/audit.js +9 -0
- package/dist/memory/manager.js +1 -1
- package/dist/web/auto-reply/monitor/process-message.js +44 -17
- package/extensions/diagnostics-otel/node_modules/.bin/acorn +0 -0
- package/extensions/googlechat/node_modules/.bin/taskmaster +0 -0
- package/extensions/line/node_modules/.bin/taskmaster +0 -0
- package/extensions/matrix/node_modules/.bin/markdown-it +0 -0
- package/extensions/matrix/node_modules/.bin/taskmaster +0 -0
- package/extensions/memory-lancedb/node_modules/.bin/arrow2csv +0 -0
- package/extensions/memory-lancedb/node_modules/.bin/openai +0 -0
- package/extensions/msteams/node_modules/.bin/taskmaster +0 -0
- package/extensions/nostr/node_modules/.bin/taskmaster +0 -0
- package/extensions/nostr/node_modules/.bin/tsc +0 -0
- package/extensions/nostr/node_modules/.bin/tsserver +0 -0
- package/extensions/zalo/node_modules/.bin/taskmaster +0 -0
- package/extensions/zalouser/node_modules/.bin/taskmaster +0 -0
- package/package.json +54 -64
- package/scripts/install.sh +0 -0
- package/taskmaster-docs/USER-GUIDE.md +28 -2
- package/templates/.DS_Store +0 -0
- package/templates/customer/.DS_Store +0 -0
- package/templates/customer/agents/.DS_Store +0 -0
- package/templates/maxy/.DS_Store +0 -0
- package/templates/maxy/.gitignore +1 -0
- package/templates/maxy/agents/.DS_Store +0 -0
- package/templates/maxy/agents/admin/.DS_Store +0 -0
- package/templates/maxy/memory/.DS_Store +0 -0
- package/templates/maxy/skills/.DS_Store +0 -0
- package/templates/taskmaster/.gitignore +1 -0
- package/dist/control-ui/assets/index-DQ1kxYd4.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rubytech/taskmaster",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.0",
|
|
4
4
|
"description": "AI-powered business assistant for small businesses",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -77,66 +77,12 @@
|
|
|
77
77
|
"dist/filler/**",
|
|
78
78
|
"dist/license/**"
|
|
79
79
|
],
|
|
80
|
-
"scripts": {
|
|
81
|
-
"dev": "node scripts/run-node.mjs",
|
|
82
|
-
"postinstall": "node scripts/postinstall.js",
|
|
83
|
-
"prepack": "pnpm build && pnpm ui:build",
|
|
84
|
-
"docs:list": "node scripts/docs-list.js",
|
|
85
|
-
"docs:bin": "node scripts/build-docs-list.mjs",
|
|
86
|
-
"docs:dev": "cd docs && mint dev",
|
|
87
|
-
"docs:build": "cd docs && pnpm dlx --reporter append-only mint broken-links",
|
|
88
|
-
"build": "tsc -p tsconfig.json && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/write-build-info.ts",
|
|
89
|
-
"plugins:sync": "node --import tsx scripts/sync-plugin-versions.ts",
|
|
90
|
-
"release:check": "node --import tsx scripts/release-check.ts",
|
|
91
|
-
"ui:install": "node scripts/ui.js install",
|
|
92
|
-
"ui:dev": "node scripts/ui.js dev",
|
|
93
|
-
"ui:build": "node scripts/ui.js build",
|
|
94
|
-
"start": "node scripts/run-node.mjs",
|
|
95
|
-
"taskmaster": "node scripts/run-node.mjs",
|
|
96
|
-
"gateway:watch": "node scripts/watch-node.mjs gateway --force",
|
|
97
|
-
"logs": "npx tsx scripts/session-viewer.ts",
|
|
98
|
-
"gateway:dev": "TASKMASTER_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway",
|
|
99
|
-
"gateway:dev:reset": "TASKMASTER_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset",
|
|
100
|
-
"tui": "node scripts/run-node.mjs tui",
|
|
101
|
-
"tui:dev": "TASKMASTER_PROFILE=dev node scripts/run-node.mjs tui",
|
|
102
|
-
"taskmaster:rpc": "node scripts/run-node.mjs agent --mode rpc --json",
|
|
103
|
-
"lint": "oxlint --type-aware src test",
|
|
104
|
-
"lint:fix": "pnpm format:fix && oxlint --type-aware --fix src test",
|
|
105
|
-
"format": "oxfmt --check src test",
|
|
106
|
-
"format:fix": "oxfmt --write src test",
|
|
107
|
-
"test": "node scripts/test-parallel.mjs",
|
|
108
|
-
"test:watch": "vitest",
|
|
109
|
-
"test:ui": "pnpm --dir ui test",
|
|
110
|
-
"test:force": "node --import tsx scripts/test-force.ts",
|
|
111
|
-
"test:coverage": "vitest run --coverage",
|
|
112
|
-
"test:e2e": "vitest run --config vitest.e2e.config.ts",
|
|
113
|
-
"test:live": "TASKMASTER_LIVE_TEST=1 vitest run --config vitest.live.config.ts",
|
|
114
|
-
"test:docker:onboard": "bash scripts/e2e/onboard-docker.sh",
|
|
115
|
-
"test:docker:gateway-network": "bash scripts/e2e/gateway-network-docker.sh",
|
|
116
|
-
"test:docker:live-models": "bash scripts/test-live-models-docker.sh",
|
|
117
|
-
"test:docker:live-gateway": "bash scripts/test-live-gateway-models-docker.sh",
|
|
118
|
-
"test:docker:qr": "bash scripts/e2e/qr-import-docker.sh",
|
|
119
|
-
"test:docker:doctor-switch": "bash scripts/e2e/doctor-install-switch-docker.sh",
|
|
120
|
-
"test:docker:plugins": "bash scripts/e2e/plugins-docker.sh",
|
|
121
|
-
"test:docker:cleanup": "bash scripts/test-cleanup-docker.sh",
|
|
122
|
-
"test:docker:all": "pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup",
|
|
123
|
-
"test:all": "pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all",
|
|
124
|
-
"test:install:e2e": "bash scripts/test-install-sh-e2e-docker.sh",
|
|
125
|
-
"test:install:smoke": "bash scripts/test-install-sh-docker.sh",
|
|
126
|
-
"test:install:e2e:openai": "TASKMASTER_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh",
|
|
127
|
-
"test:install:e2e:anthropic": "TASKMASTER_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh",
|
|
128
|
-
"protocol:gen": "node --import tsx scripts/protocol-gen.ts",
|
|
129
|
-
"protocol:check": "pnpm protocol:gen && git diff --exit-code -- dist/protocol.schema.json",
|
|
130
|
-
"canvas:a2ui:bundle": "bash scripts/bundle-a2ui.sh",
|
|
131
|
-
"check:loc": "node --import tsx scripts/check-ts-max-loc.ts --max 500"
|
|
132
|
-
},
|
|
133
80
|
"keywords": [],
|
|
134
81
|
"author": "",
|
|
135
82
|
"license": "MIT",
|
|
136
83
|
"engines": {
|
|
137
84
|
"node": ">=22.12.0"
|
|
138
85
|
},
|
|
139
|
-
"packageManager": "pnpm@10.23.0",
|
|
140
86
|
"dependencies": {
|
|
141
87
|
"@agentclientprotocol/sdk": "0.13.1",
|
|
142
88
|
"@aws-sdk/client-bedrock": "^3.975.0",
|
|
@@ -227,14 +173,6 @@
|
|
|
227
173
|
"vitest": "^4.0.18",
|
|
228
174
|
"wireit": "^0.14.12"
|
|
229
175
|
},
|
|
230
|
-
"pnpm": {
|
|
231
|
-
"minimumReleaseAge": 2880,
|
|
232
|
-
"overrides": {
|
|
233
|
-
"@sinclair/typebox": "0.34.47",
|
|
234
|
-
"hono": "4.11.4",
|
|
235
|
-
"tar": "7.5.4"
|
|
236
|
-
}
|
|
237
|
-
},
|
|
238
176
|
"vitest": {
|
|
239
177
|
"coverage": {
|
|
240
178
|
"provider": "v8",
|
|
@@ -263,5 +201,57 @@
|
|
|
263
201
|
"**/vendor/**",
|
|
264
202
|
"dist/Taskmaster.app/**"
|
|
265
203
|
]
|
|
204
|
+
},
|
|
205
|
+
"scripts": {
|
|
206
|
+
"dev": "node scripts/run-node.mjs",
|
|
207
|
+
"postinstall": "node scripts/postinstall.js",
|
|
208
|
+
"docs:list": "node scripts/docs-list.js",
|
|
209
|
+
"docs:bin": "node scripts/build-docs-list.mjs",
|
|
210
|
+
"docs:dev": "cd docs && mint dev",
|
|
211
|
+
"docs:build": "cd docs && pnpm dlx --reporter append-only mint broken-links",
|
|
212
|
+
"build": "tsc -p tsconfig.json && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/write-build-info.ts",
|
|
213
|
+
"plugins:sync": "node --import tsx scripts/sync-plugin-versions.ts",
|
|
214
|
+
"release:check": "node --import tsx scripts/release-check.ts",
|
|
215
|
+
"ui:install": "node scripts/ui.js install",
|
|
216
|
+
"ui:dev": "node scripts/ui.js dev",
|
|
217
|
+
"ui:build": "node scripts/ui.js build",
|
|
218
|
+
"start": "node scripts/run-node.mjs",
|
|
219
|
+
"taskmaster": "node scripts/run-node.mjs",
|
|
220
|
+
"gateway:watch": "node scripts/watch-node.mjs gateway --force",
|
|
221
|
+
"logs": "npx tsx scripts/session-viewer.ts",
|
|
222
|
+
"gateway:dev": "TASKMASTER_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway",
|
|
223
|
+
"gateway:dev:reset": "TASKMASTER_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset",
|
|
224
|
+
"tui": "node scripts/run-node.mjs tui",
|
|
225
|
+
"tui:dev": "TASKMASTER_PROFILE=dev node scripts/run-node.mjs tui",
|
|
226
|
+
"taskmaster:rpc": "node scripts/run-node.mjs agent --mode rpc --json",
|
|
227
|
+
"lint": "oxlint --type-aware src test",
|
|
228
|
+
"lint:fix": "pnpm format:fix && oxlint --type-aware --fix src test",
|
|
229
|
+
"format": "oxfmt --check src test",
|
|
230
|
+
"format:fix": "oxfmt --write src test",
|
|
231
|
+
"test": "node scripts/test-parallel.mjs",
|
|
232
|
+
"test:watch": "vitest",
|
|
233
|
+
"test:ui": "pnpm --dir ui test",
|
|
234
|
+
"test:force": "node --import tsx scripts/test-force.ts",
|
|
235
|
+
"test:coverage": "vitest run --coverage",
|
|
236
|
+
"test:e2e": "vitest run --config vitest.e2e.config.ts",
|
|
237
|
+
"test:live": "TASKMASTER_LIVE_TEST=1 vitest run --config vitest.live.config.ts",
|
|
238
|
+
"test:docker:onboard": "bash scripts/e2e/onboard-docker.sh",
|
|
239
|
+
"test:docker:gateway-network": "bash scripts/e2e/gateway-network-docker.sh",
|
|
240
|
+
"test:docker:live-models": "bash scripts/test-live-models-docker.sh",
|
|
241
|
+
"test:docker:live-gateway": "bash scripts/test-live-gateway-models-docker.sh",
|
|
242
|
+
"test:docker:qr": "bash scripts/e2e/qr-import-docker.sh",
|
|
243
|
+
"test:docker:doctor-switch": "bash scripts/e2e/doctor-install-switch-docker.sh",
|
|
244
|
+
"test:docker:plugins": "bash scripts/e2e/plugins-docker.sh",
|
|
245
|
+
"test:docker:cleanup": "bash scripts/test-cleanup-docker.sh",
|
|
246
|
+
"test:docker:all": "pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup",
|
|
247
|
+
"test:all": "pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all",
|
|
248
|
+
"test:install:e2e": "bash scripts/test-install-sh-e2e-docker.sh",
|
|
249
|
+
"test:install:smoke": "bash scripts/test-install-sh-docker.sh",
|
|
250
|
+
"test:install:e2e:openai": "TASKMASTER_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh",
|
|
251
|
+
"test:install:e2e:anthropic": "TASKMASTER_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh",
|
|
252
|
+
"protocol:gen": "node --import tsx scripts/protocol-gen.ts",
|
|
253
|
+
"protocol:check": "pnpm protocol:gen && git diff --exit-code -- dist/protocol.schema.json",
|
|
254
|
+
"canvas:a2ui:bundle": "bash scripts/bundle-a2ui.sh",
|
|
255
|
+
"check:loc": "node --import tsx scripts/check-ts-max-loc.ts --max 500"
|
|
266
256
|
}
|
|
267
|
-
}
|
|
257
|
+
}
|
package/scripts/install.sh
CHANGED
|
File without changes
|
|
@@ -202,6 +202,32 @@ If you forget your PIN, you'll need to edit the configuration file on the device
|
|
|
202
202
|
|
|
203
203
|
---
|
|
204
204
|
|
|
205
|
+
## Secure Connection (HTTPS)
|
|
206
|
+
|
|
207
|
+
Taskmaster automatically uses a secure (HTTPS) connection when you access it from another device on your network. This is required for features like voice notes, which need microphone access — browsers only allow microphone use on secure connections.
|
|
208
|
+
|
|
209
|
+
### First-Time Certificate Warning
|
|
210
|
+
|
|
211
|
+
The first time you open Taskmaster in your browser, you'll see a security warning that says something like **"Your connection is not private"** or **"This site's certificate is not trusted."** This is normal and expected.
|
|
212
|
+
|
|
213
|
+
Taskmaster creates its own security certificate so your connection is encrypted. Because it's self-issued (not from a public authority like Google or Let's Encrypt), your browser doesn't recognise it automatically. Your data is still encrypted — the warning is about trust, not security.
|
|
214
|
+
|
|
215
|
+
**To proceed:**
|
|
216
|
+
|
|
217
|
+
- **Chrome / Edge:** Click **Advanced**, then **Proceed to taskmaster.local (unsafe)**
|
|
218
|
+
- **Safari:** Click **Show Details**, then **visit this website**, then confirm
|
|
219
|
+
- **Firefox:** Click **Advanced**, then **Accept the Risk and Continue**
|
|
220
|
+
|
|
221
|
+
You only need to do this once per browser. After accepting, the warning won't appear again until the certificate expires (1 year).
|
|
222
|
+
|
|
223
|
+
> **Tip (Mac):** To permanently trust the certificate and remove the warning entirely, open Terminal and run:
|
|
224
|
+
> ```
|
|
225
|
+
> sudo security add-trusted-cert -d -r trustAsRoot -k /Library/Keychains/System.keychain ~/.taskmaster/tls/gateway-cert.pem
|
|
226
|
+
> ```
|
|
227
|
+
> Enter your Mac password when prompted. After this, all browsers on that Mac will trust Taskmaster's certificate.
|
|
228
|
+
|
|
229
|
+
---
|
|
230
|
+
|
|
205
231
|
## Two Assistants, One WhatsApp
|
|
206
232
|
|
|
207
233
|
Taskmaster runs two assistants on the same WhatsApp number, each with a different job:
|
|
@@ -247,7 +273,7 @@ You can record and send voice notes directly from the Chat page. When the messag
|
|
|
247
273
|
- **Tap** the microphone to start recording. A recording indicator with a timer appears. Tap the **send button** to send, or the **trash button** to discard.
|
|
248
274
|
- **Press and hold** the microphone to record hands-free. Release to send automatically, or slide left to cancel.
|
|
249
275
|
|
|
250
|
-
Your assistant transcribes the voice note and responds to the content, the same as a WhatsApp voice note.
|
|
276
|
+
Your assistant transcribes the voice note and responds to the content, the same as a WhatsApp voice note. Sent voice notes appear as audio players in the conversation so you can replay them.
|
|
251
277
|
|
|
252
278
|
### Sending Messages While the Assistant is Working
|
|
253
279
|
|
|
@@ -977,7 +1003,7 @@ If the Pi checks pass but the control panel still doesn't load from another devi
|
|
|
977
1003
|
If you can't load the Control Panel in your browser:
|
|
978
1004
|
|
|
979
1005
|
1. **Same network?** — Make sure your device is on the same WiFi or LAN as Taskmaster
|
|
980
|
-
2. **Check the URL** — go to **http://taskmaster.local:18789
|
|
1006
|
+
2. **Check the URL** — go to **http://taskmaster.local:18789** (the browser will redirect to HTTPS automatically). If you see a certificate warning, see "Secure Connection (HTTPS)" above
|
|
981
1007
|
3. **Wait for boot** — after powering on the device, it takes 2–3 minutes for everything to start. If you just plugged it in, give it a moment
|
|
982
1008
|
4. **Try a different browser** — some browsers (especially on older devices) have trouble with `.local` addresses. Try Chrome or Safari
|
|
983
1009
|
5. **Use the IP address** — if `.local` doesn't resolve, find the device's IP address on your router and go to `http://<ip-address>:18789` instead
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.DS_Store
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.DS_Store
|