@abstractframework/assistant 0.0.0-stage → 0.1.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.
@@ -0,0 +1,15 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover, interactive-widget=resizes-content" />
6
+ <meta name="color-scheme" content="light dark" />
7
+ <meta name="description" content="AbstractAssistant in the browser: your conversations with the Assistant, from any device that reaches your gateway." />
8
+ <title>AbstractAssistant</title>
9
+ <script type="module" crossorigin src="./assets/index-DqxMtR-3.js"></script>
10
+ <link rel="stylesheet" crossorigin href="./assets/index-DsiGtjU5.css">
11
+ </head>
12
+ <body>
13
+ <div id="root"></div>
14
+ </body>
15
+ </html>
package/dist/llms.txt ADDED
@@ -0,0 +1,110 @@
1
+ # AbstractAssistant in your browser
2
+
3
+ AbstractAssistant is a voice and conversation interface for AbstractGateway. Open
4
+ **Assistant (web)** from Gateway's Apps page or tray Apps menu. Sign in to the same
5
+ Gateway to use your existing conversations. The Gateway runs the agent, keeps
6
+ history and decides tool permissions; closing this page does not cancel a run.
7
+
8
+ ## Start or continue a conversation
9
+
10
+ Select a conversation from the sidebar, or use New to start one. On a phone, the
11
+ menu button opens Conversations. Search finds loaded conversations by their title.
12
+ Type in the message field and send your question. Replies appear in the conversation.
13
+ Sending a new message interrupts the previous spoken reply. New and switching
14
+ conversations also stop local audio. Opening history does not read it aloud.
15
+
16
+ The page shows tool approvals and questions inside the conversation when the agent
17
+ needs you. Review the tool and its arguments before allowing it. **Allow once**
18
+ applies to that request. **Allow for this chat**, when available, uses Gateway's
19
+ session policy. **Decide later** postpones the choice and grants no permission.
20
+ Use Review to return to the pending request. Stop ends the current request or playback.
21
+
22
+ ## Automations
23
+
24
+ **Automations** in the sidebar (behind the menu button on a phone) lists the tasks that run on
25
+ their own: the active ones first, the most recently active at the top, then **Paused** and
26
+ **Archived**, each opening on a click. Each card shows how many times it ran, how often it runs
27
+ and when it runs next; a number marks results you have not seen, and **Needs you** a run that
28
+ waits for you. The archive button asks first; **Restore** under Archived brings one back.
29
+
30
+ Open an automation to see its latest ten runs as a conversation: what it was asked, then the
31
+ answer. Opening it marks its new results seen. **Run** starts a run now; while one runs, **Stop**
32
+ ends it (the automation keeps its schedule). **Edit** changes its title, its task, whether it is
33
+ active, how often it runs and whether each run builds on its earlier runs (and how much of them
34
+ it reads); a change made elsewhere meanwhile is refused, so open it again. Type in the message
35
+ field to talk about its latest run: this opens a new conversation about it and never changes
36
+ the automation. When a run asks to use a tool, its page shows the request: **Approve** or **Deny**
37
+ it, or **Approve all** to allow those tools for this automation's runs. They are listed under
38
+ **Allowed for its runs**, and this browser approves them when it sees them, until **Ask again**.
39
+ Another kind of request opens with **Answer**, where you can review it.
40
+
41
+ **New** creates one: what it should do, the flow that runs it (the gateway's default unless you
42
+ choose another), its **Tools** (each Off, Ask or Auto; a tool on Ask waits for you), how often it
43
+ runs or every day at a time, and whether each run builds on the earlier ones.
44
+
45
+ ## Speak and listen
46
+
47
+ Tap the orb to begin recording, then tap again to finish. With Hold selected in
48
+ Voice settings, hold the orb to record and release it to finish. The browser needs
49
+ microphone permission and a secure page: HTTPS, localhost or 127.0.0.1. A plain
50
+ HTTP page on another machine cannot use the microphone.
51
+
52
+ By default, recognized words go into the draft so you can correct them. Enable
53
+ **Send what you say automatically** to submit recognized words directly. Microphone
54
+ mode, input device and available transcription settings are under Settings → Voice.
55
+ The browser records locally; Gateway handles transcription through its configured
56
+ speech capability. This is explicit recording, not an always-listening wake word.
57
+
58
+ Enable **Read new replies aloud** using the speaker control or Voice settings.
59
+ It reads new replies from this tab's requests. Use the orb or pause/play control
60
+ to pause or resume a selected reply; Stop ends it. A message's speaker control
61
+ reads that message on demand. In Voice settings, choose the speaking route and
62
+ voice offered by Gateway, or keep its default. Available voices and capabilities
63
+ depend on Gateway's installed providers. Browser autoplay rules can require a
64
+ click before playback is allowed.
65
+
66
+ ## Appearance and avatars
67
+
68
+ Settings lets you select an avatar and preview Ready, Listening, Thinking, Working,
69
+ Speaking, Waiting and Error silently. Watch particle forms, the iPhone woven orb
70
+ and shaded characters remain separate choices. Preview sample loudness does not
71
+ record or play audio. Your choice applies immediately. The animation switch and
72
+ your system's reduced-motion preference control motion. Hidden pages stop animating.
73
+ Avatars with eyes, such as the Hover robot and the Rover, look toward your mouse while
74
+ Ready; the orb and every other avatar stay still.
75
+ The top-bar appearance button changes the theme.
76
+
77
+ Listening reacts to measured microphone loudness. Speaking reacts to the reply's
78
+ actual playback level after volume and mute. Pauses and silence produce zero
79
+ voice level; the avatar never invents a voice signal to appear active.
80
+
81
+ Ready means the assistant is available. Listening means recording. Thinking and
82
+ Working reflect the current request. Speaking follows reply playback. Waiting
83
+ means an approval or answer needs you. Error indicates a failed action. The avatar
84
+ is a visual representation; it does not run an independent agent.
85
+
86
+ ## Documentation and conversation details
87
+
88
+ The book button opens the Docs assistant. Ask how to use the browser Assistant;
89
+ answers are grounded in this guide. Docs has its own conversation and does not
90
+ automatically see or control your main conversation, files or tools. Use New
91
+ conversation in its header to start a fresh documentation chat, or Past
92
+ conversations to reopen one. Its question field stays at the bottom while messages
93
+ scroll above it. Attachment availability depends on Gateway.
94
+
95
+ Details in the main conversation reveals optional usage, timing and delivery
96
+ diagnostics. A structured-output model call may return its text all at once;
97
+ this does not mean the reply failed. Errors and pending approvals remain visible.
98
+ Copy and export controls use the conversation loaded in the page.
99
+
100
+ ## Settings, privacy and limitations
101
+
102
+ Gateway owns sign-in, conversations, workflows, model routing and permissions.
103
+ This browser keeps appearance, voice and panel preferences locally. Selecting an
104
+ avatar does not change an entity's shared identity or voice on other devices.
105
+ Use the same Gateway account across clients to access the same conversations.
106
+
107
+ The desktop, iPhone and Watch apps have their
108
+ own interfaces; a native-only feature is not automatically available here.
109
+ An unavailable workflow, voice route or connection must be configured on Gateway.
110
+ If disconnected, check Gateway connectivity and sign-in before retrying.
package/package.json CHANGED
@@ -1,6 +1,74 @@
1
1
  {
2
2
  "name": "@abstractframework/assistant",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
3
+ "version": "0.1.0",
4
+ "description": "AbstractAssistant for the web: chat or talk with the Assistant in a browser, with live answers, approvals, dictation and read aloud. A thin client of AbstractGateway, served at /apps/assistant-web/.",
5
+ "keywords": [
6
+ "abstractframework",
7
+ "assistant",
8
+ "chat",
9
+ "voice",
10
+ "gateway",
11
+ "ui"
12
+ ],
13
+ "homepage": "https://github.com/lpalbou/AbstractAssistant/tree/main/web#readme",
14
+ "bugs": {
15
+ "url": "https://github.com/lpalbou/AbstractAssistant/issues"
16
+ },
17
+ "type": "module",
18
+ "author": "Laurent-Philippe Albou",
19
+ "license": "MIT",
20
+ "repository": {
21
+ "type": "git",
22
+ "url": "git+https://github.com/lpalbou/AbstractAssistant.git",
23
+ "directory": "web"
24
+ },
25
+ "engines": {
26
+ "node": ">=18.0.0"
27
+ },
28
+ "bin": {
29
+ "abstractassistant-web": "bin/cli.js"
30
+ },
31
+ "files": [
32
+ "dist",
33
+ "!dist/**/*.map",
34
+ "bin",
35
+ "README.md",
36
+ "CHANGELOG.md",
37
+ "LICENSE"
38
+ ],
39
+ "publishConfig": {
40
+ "access": "public"
41
+ },
42
+ "scripts": {
43
+ "dev": "vite --port 3008",
44
+ "build": "node scripts/sync_conversation.mjs --check && node scripts/sync_sessions.mjs --check && node scripts/sync_gateway_voice.mjs --check && node scripts/sync_apple_avatars.mjs --check && node scripts/sync_docs_assistant.mjs --check && tsc && vite build && node scripts/build_docs_corpus.mjs && node scripts/check_relative_urls.mjs --dist",
45
+ "check:urls": "node scripts/check_relative_urls.mjs",
46
+ "start": "node ./bin/cli.js",
47
+ "test": "vitest run",
48
+ "test:layout": "node scripts/check_layout.mjs",
49
+ "test:experience": "node scripts/check_experience.mjs",
50
+ "sync:avatars": "node scripts/sync_apple_avatars.mjs",
51
+ "sync:docs": "node scripts/sync_docs_assistant.mjs",
52
+ "sync:voice": "node scripts/sync_gateway_voice.mjs",
53
+ "sync:sessions": "node scripts/sync_sessions.mjs",
54
+ "sync:conversation": "node scripts/sync_conversation.mjs",
55
+ "check:package": "node scripts/check_package.mjs",
56
+ "prepublishOnly": "npm run build && node scripts/check_package.mjs"
57
+ },
58
+ "dependencies": {
59
+ "@abstractframework/app-server": "^0.1.13"
60
+ },
61
+ "devDependencies": {
62
+ "@abstractframework/panel-chat": "^0.8.1",
63
+ "@abstractframework/ui-kit": "^0.9.14",
64
+ "@types/react": "18.3.27",
65
+ "@types/react-dom": "18.3.7",
66
+ "@vitejs/plugin-react": "4.7.0",
67
+ "playwright": "1.63.0",
68
+ "react": "18.3.1",
69
+ "react-dom": "18.3.1",
70
+ "typescript": "5.9.3",
71
+ "vite": "6.4.3",
72
+ "vitest": "5.0.4"
73
+ }
74
+ }