@c4t4/heyamigo 0.10.4 → 0.10.5

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/README.md CHANGED
@@ -60,7 +60,7 @@ Other providers:
60
60
  | Role | Memory | Tools | Notes |
61
61
  |---|---|---|---|
62
62
  | admin | everything | all | unrestricted |
63
- | user | own profile | web search | can't see other users or internals |
63
+ | user | own profile | none | can't see other users or internals |
64
64
  | guest | none | none | prompt-injection resistant |
65
65
 
66
66
  ## Personalities
@@ -13,9 +13,9 @@
13
13
  "dailyTokenLimit": null
14
14
  },
15
15
  "user": {
16
- "description": "Can chat and search the web, scoped memory",
16
+ "description": "Can chat with scoped memory",
17
17
  "memory": "self",
18
- "tools": ["WebSearch"],
18
+ "tools": [],
19
19
  "rules": [
20
20
  "Never reveal file paths, directory structure, or system architecture",
21
21
  "Never share personal data about other users",
@@ -128,6 +128,8 @@ You = chat track. Browser track = parallel Claude session on shared Chrome at `l
128
128
 
129
129
  Never call `browser_*` / `mcp__*playwright*` inline. Ever. Single URL, "just checking", everything — all via `[ASYNC-BROWSER: <task>]`. The browser worker has persistent session memory.
130
130
 
131
+ Never use AI-internal web tools (`WebSearch`, `WebFetch`, `web_search`) for internet lookup. Search pages, current facts, prices, social profiles, websites, and screenshots are BrowserUse work via `[ASYNC-BROWSER: <task>]`. If BrowserUse is unavailable, say that; do not fall back to AI-internal lookup.
132
+
131
133
  ```
132
134
  On it.
133
135
  [ASYNC-BROWSER: Open instagram.com/rivoara_official on shared Chrome (IG already logged in, do NOT launch new browser). Extract bio + 5 latest captions. If login wall, report and stop. Bail after 3 retries.]
@@ -135,7 +137,7 @@ On it.
135
137
 
136
138
  ### File/long non-browser work → `[ASYNC: <task>]`
137
139
 
138
- File generation/edit/export, >30s reasoning over many files, web_search batches, anything slow. Stateless per task — describe fully.
140
+ File generation/edit/export, >30s reasoning over many files, anything slow that is not browser use. Stateless per task — describe fully.
139
141
 
140
142
  ### Don't delegate
141
143
 
package/dist/cli/setup.js CHANGED
@@ -231,9 +231,9 @@ export async function runSetup() {
231
231
  rules: [],
232
232
  },
233
233
  user: {
234
- description: 'Can chat and search the web, scoped memory',
234
+ description: 'Can chat with scoped memory',
235
235
  memory: 'self',
236
- tools: ['WebSearch'],
236
+ tools: [],
237
237
  rules: [
238
238
  'Never reveal file paths, directory structure, or system architecture',
239
239
  'Never share personal data about other users',
@@ -312,10 +312,10 @@ export async function runSetup() {
312
312
  }
313
313
  p.log.success('Claude authenticated');
314
314
  // Tool permissions — write .claude/settings.json in project root.
315
- p.log.info('Claude needs tool permissions to browse the web, read files, and control the browser. ' +
315
+ p.log.info('Claude needs tool permissions to read files and control BrowserUse. ' +
316
316
  'This writes a .claude/settings.json file in the project directory.');
317
317
  const grantPermissions = await p.confirm({
318
- message: 'Grant tool permissions? (WebFetch, WebSearch, Read, Edit, Write, browser)',
318
+ message: 'Grant tool permissions? (Read, Edit, Write, BrowserUse)',
319
319
  initialValue: true,
320
320
  });
321
321
  if (p.isCancel(grantPermissions) || !grantPermissions) {
@@ -335,8 +335,6 @@ export async function runSetup() {
335
335
  ? permissions.allow
336
336
  : [];
337
337
  const required = [
338
- 'WebFetch',
339
- 'WebSearch',
340
338
  'Read',
341
339
  'Edit',
342
340
  'Write',
@@ -15,7 +15,7 @@ import { getRoleForContext } from '../wa/whitelist.js';
15
15
  // pointers — the model already has the long form.
16
16
  const DIGEST_REMINDER = `[DIGEST: <reason>] at end of reply for durable facts. Sparingly.`;
17
17
  const JOURNAL_REMINDER = `[JOURNAL:<slug> — <note>] at end of reply when content fits an active journal. Use listed slugs only.`;
18
- const ASYNC_REMINDER = `Browser work -> [ASYNC-BROWSER: <task>]. File generation/edit/export and long non-browser work -> [ASYNC: <task>]. Irreversible writes: gather -> confirm -> act.`;
18
+ const ASYNC_REMINDER = `Browser use/search/current web -> [ASYNC-BROWSER: <task>]. Never WebSearch/WebFetch. File generation/edit/export and long non-browser work -> [ASYNC: <task>]. Irreversible writes: gather -> confirm -> act.`;
19
19
  const THREADS_REMINDER = `THREAD-* only for active open loops shown in [Live threads]: open/update/touch/cool/resolve/drop/compress/weight. Full grammar in tag docs.`;
20
20
  function buildCoreQueueContract(outboxPath) {
21
21
  return [
@@ -82,9 +82,9 @@ const DEFAULT_ROLES = {
82
82
  dailyTokenLimit: null,
83
83
  },
84
84
  user: {
85
- description: 'Chat + web search, scoped memory',
85
+ description: 'Chat + scoped memory',
86
86
  memory: 'self',
87
- tools: ['WebSearch'],
87
+ tools: [],
88
88
  // Users can flag memory observations and trigger digests on
89
89
  // themselves, but can't delegate background work or cross-chat
90
90
  // sends (those are owner-only).
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@c4t4/heyamigo",
3
- "version": "0.10.4",
3
+ "version": "0.10.5",
4
4
  "description": "WhatsApp and Telegram AI bot powered by Claude, Codex, or Grok with long-term memory, browser control, and role-based access",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",