@abstractframework/observer 0.6.2 → 0.7.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/index.html CHANGED
@@ -19,8 +19,8 @@
19
19
  <!-- Favicon -->
20
20
  <link rel="icon" type="image/svg+xml" href="icon.svg" />
21
21
  <title>AbstractObserver</title>
22
- <script type="module" crossorigin src="./assets/index-mOSIboQ8.js"></script>
23
- <link rel="stylesheet" crossorigin href="./assets/index-CFQCB7Xx.css">
22
+ <script type="module" crossorigin src="./assets/index-C1U8dkAL.js"></script>
23
+ <link rel="stylesheet" crossorigin href="./assets/index-gYGGRAVm.css">
24
24
  </head>
25
25
  <body>
26
26
  <div id="root"></div>
package/dist/llms.txt ADDED
@@ -0,0 +1,69 @@
1
+ # AbstractObserver
2
+
3
+ > Gateway-only observability UI (Web/PWA) for AbstractFramework runs: a browser SPA + tiny Node.js CLI that connects to an AbstractGateway HTTP API (HTTP fetch + SSE ledger streaming) and submits durable commands.
4
+
5
+ This repository is UI-only:
6
+ - The packaged CLI (`bin/cli.js` + `bin/server.js`) serves `dist/` (SPA fallback) at `/` or through the gateway at `/apps/observer/` (app-server mount contract: identity header, `<base href>`, cookie path, forwarded client address) and proxies `api/` to the Gateway after browser-session sign-in, using `@abstractframework/app-server`.
7
+ - The browser talks to same-origin `/api` in hosted mode; direct Gateway URLs remain available for local development via `src/lib/gateway_client.ts` (treat this file as the source of truth for HTTP endpoints and request shapes).
8
+ - Hosted sign-in uses Gateway URL + user + token only to create an app-scoped browser session. Settings persistence strips Gateway bearer tokens. With `@abstractframework/app-server` 0.1.10 or newer the proxy sends the browser's connection address as `X-Forwarded-For` and `X-AbstractFramework-App-Proxy: abstractobserver` to the Gateway.
9
+ - On non-local hosted UI hostnames, the server-configured Gateway URL is authoritative; browser-supplied Gateway URL changes are rejected unless `ABSTRACTOBSERVER_ALLOW_REMOTE_BROWSER_GATEWAY_CONFIG=1` is enabled behind access control. Forwarded host headers are trusted only when `ABSTRACTOBSERVER_TRUST_PROXY_HEADERS=1` or `ABSTRACTGATEWAY_TRUST_PROXY_HEADERS=1`.
10
+
11
+ ## Quickstart
12
+ - Run packaged UI server (no build step): `npx --yes --package @abstractframework/observer -- abstractobserver`
13
+ - Dev server (Vite; proxies `/api` in dev): `npm install && npm run dev`
14
+ - Unit tests (Vitest): `npm test`
15
+ - Production build (writes `dist/`): `npm run build`
16
+ - Regenerate `llms-full.txt`: `npm run llms:full`
17
+
18
+ Notes:
19
+ - Build output lives in `dist/` and is served by `bin/cli.js` (don’t edit `dist/` manually).
20
+ - `@abstractframework/ui-kit` and `@abstractframework/panel-chat` are npm dependencies; the monitor packages are Vite aliases to sibling `../abstractuic/*/src` (see `vite.config.ts` and `docs/development.md`).
21
+ - Responsive layout (phones, tablets, small windows): `docs/getting-started.md` → "Responsive layout"; rules in `src/ui/responsive.css`.
22
+ - On/off switches and opening the Observer over plain http from another computer (voice needs https): `docs/getting-started.md` → "Switches", "Open the Observer from another computer over http"; fallbacks in `src/lib/secure-context.ts`.
23
+ - Voice (Read aloud streamed per sentence, dictation in Ask/Discuss, Settings → Voice = the kit section with the gateway's default routes from `GET /voice/defaults`): `docs/faq.md` → "Does it support voice", routes in `docs/api.md` → Voice; code `src/ui/observer_voice.tsx`; tests `src/ui/observer_voice.test.tsx` + `scripts/voice_e2e.mjs` (fake routes: `scripts/fake_voice_proxy.mjs`). Needs AbstractGateway 0.13.0 or later.
24
+ - Archived conversations: the Board appends `GET /runs?root_only=true&archived_only=true` (AbstractGateway 0.13.0+) and tags those runs **Archived**; Observer lists runs, not sessions, so it has no Archive button: `docs/api.md` → Runs, `docs/faq.md`; code `with_archived_roots()` in `src/ui/automations.ts`.
25
+ - About: the shared ui-kit compact card (app, framework and gateway versions, links, licence line) from `GET /api/gateway/about`: `docs/faq.md` → "Which version am I running?"; code `src/ui/about.ts`.
26
+ - `llms.txt` format reference: https://llmstxt.org/
27
+
28
+ ## Documentation (start here)
29
+ - [README](README.md): Install and quickstart
30
+ - [Getting started](docs/getting-started.md): Run the UI and connect to a gateway; Ask about a run (whole conversation, History note when the 50k-token window drops older messages, error cards never sent back) vs the top-bar Assistant (one gateway session per conversation, New conversation, no tools)
31
+ - [FAQ](docs/faq.md): Common questions (grounded in code), including the CLI `/api` session proxy, the About dialog, chat history windows and the tool-less Assistant
32
+ - [Docs index](docs/README.md): What to read next
33
+ - [Architecture](docs/architecture.md): Components, data flow, diagrams
34
+ - [Configuration](docs/configuration.md): launch flags, serving under the gateway at /apps/observer/, UI settings, deployment patterns
35
+ - [API](docs/api.md): Gateway endpoints used by the UI, including Runtime Activity run pages and canonical artifact envelope search/stats for Runtime Artifact Explorer
36
+ - [Automations](docs/automations.md): configurable growing-context budgets and result email; Launch → Automate (what, when in UTC intervals, independent/growing context, tool approval), the Automations page (icon controls, Edit: the row's Edit opens the form — title, task, interval, context, tools —, 409 conflicts), runs as a conversation, answering waits by kind, the automation's files (browse, open, download through the gateway), Discuss as an in-page chat with a fork, automation tags on Board/Observe/System, legacy schedules and Recreate, the stub gateway
37
+ - [Development](docs/development.md): Local dev, workspace deps, tests, build
38
+ - [Security](docs/security.md): Trust boundaries and operational guidance
39
+ - [Troubleshooting](docs/troubleshooting.md): Common issues and fixes (CORS, mixed content, 401 under `/api`, About shows the gateway unavailable, stale service worker, automations)
40
+
41
+ ## Key entrypoints (code)
42
+ - [CLI](bin/cli.js) and [app server](bin/server.js): launch flags (`--gateway-url`, `--port`, `--host`, `--monitor-gpu`, `--entity-app-url`, `--gateway-dir`), mount-capable handler, session proxy, folder reveal (browsers on this machine only)
43
+ - [App shell + pages](src/ui/app.tsx): settings, page routing, observe/launch flows, durable commands
44
+ - [Gateway client](src/lib/gateway_client.ts): HTTP client + SSE ledger streaming (API source of truth)
45
+ - [Automations rules + controller](src/ui/automations.ts): workflow choice (`@default`), create body, run tags, capability gate, legacy prefill, typed wait answers, page controller
46
+ - [Automations page](src/ui/automations_page.tsx) and [Automate fields](src/ui/automate_form.tsx): the page, rows and the ui-kit `AutomationPanel` wiring; the When/Context/Tools fields
47
+ - [Discussion chat](src/ui/automation_discussion.tsx): panel-chat `WorkflowChat` + `presentInteraction` over the gateway client; folders through panel-chat `WorkspaceBrowser` (`/runs/{id}/workspace*`)
48
+ - [Automations stub gateway](scripts/automations_stub_server.mjs): dev/test stub serving the ui-kit fixtures
49
+ - [Vite config](vite.config.ts): workspace aliases + dev session proxy and `/api` fallback proxy
50
+ - [Package metadata](package.json): npm name/version, scripts, Node engine
51
+ - [llms-full generator](scripts/generate-llms-full.mjs): defines which files are embedded into `llms-full.txt`
52
+
53
+ ## Ecosystem context
54
+ - [AbstractFramework](https://github.com/lpalbou/AbstractFramework): ecosystem entrypoint and component map
55
+ - [AbstractRuntime](https://github.com/lpalbou/abstractruntime): durable workflow runtime behind the gateway ledger
56
+ - [AbstractCore](https://github.com/lpalbou/abstractcore): unified LLM + tools layer commonly used by workflows
57
+
58
+ ## Common tasks
59
+ - Add/change a gateway capability: update `src/lib/gateway_client.ts` (source of truth) → update `docs/api.md` → run `npm test` + `npm run build`.
60
+ - Change CLI behavior/config: update `bin/cli.js` / `bin/server.js` → update `docs/configuration.md` → run `npm run build`.
61
+ - Update docs for agents: edit docs → regenerate `llms-full.txt` with `npm run llms:full`.
62
+
63
+ ## Optional (project meta)
64
+ - [Changelog](CHANGELOG.md): Release notes
65
+ - [Contributing](CONTRIBUTING.md): How to develop and submit changes
66
+ - [Security policy](SECURITY.md): Responsible vulnerability reporting
67
+ - [Acknowledgments](ACKNOWLEDGMENTS.md): Credits
68
+ - [Code of conduct](CODE_OF_CONDUCT.md): Conduct expectations and reporting
69
+ - [License](LICENSE): MIT license
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abstractframework/observer",
3
- "version": "0.6.2",
3
+ "version": "0.7.0",
4
4
  "description": "Gateway-only observability UI for AbstractFramework - connect to a Run Gateway, replay/stream the ledger, and submit durable commands",
5
5
  "type": "module",
6
6
  "author": "Laurent-Philippe Albou",
@@ -44,8 +44,8 @@
44
44
  },
45
45
  "dependencies": {
46
46
  "@abstractframework/app-server": "^0.1.11",
47
- "@abstractframework/panel-chat": "^0.2.5",
48
- "@abstractframework/ui-kit": "^0.5.2",
47
+ "@abstractframework/panel-chat": "^0.4.1",
48
+ "@abstractframework/ui-kit": "^0.8.5",
49
49
  "react": "^18.2.0",
50
50
  "react-dom": "^18.2.0",
51
51
  "reactflow": "^11.10.4"