Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,9 @@ Each is an independent entry point — import only what you use.
| [`/crypto`](src/crypto) | AES-GCM field encryption: `encryptAesGcm`, `decryptAesGcm`, `createFieldCrypto`. Key supplied by the caller. |
| [`/missions`](src/missions) | Durable multi-step mission orchestration over a `MissionStorePort` seam: guarded status/step machine, idempotent plan engine with budget/approval gates, `:::mission` parser, the client-safe live-event reducer, and the canonical `StepAgentActivity` per-step delegated-run lane. |
| [`/trace`](src/trace) | Flow observability: `buildFlowTrace` + ASCII `renderWaterfall`/`renderHistogram`; the mission trace bridge (`createMissionTraceContext`, `childSpanContext`, `traceEnv`) whose ids/env a delegated run inherits; and delegation→FlowSpan converters (`delegationActivityToFlowSpans`, `loopTraceEventsToFlowSpans`, `composeMissionFlowTrace`). |
| [`/web-react`](src/web-react) | Shared React components: `ModelPicker`, `EffortPicker`, `ChatMessages`, `RunDrillIn`, plus the observability surfaces — `MissionActivityLane`, `AgentActivityPanel`, `FlowWaterfall`. React is an optional peer; not re-exported from the root entry. |
| [`/web-react`](src/web-react) | Router-safe React chat components: `ChatComposer`, `ModelPicker`, `EffortPicker`, `ChatMessages`, `RunDrillIn`, plus observability surfaces — `MissionActivityLane`, `AgentActivityPanel`, `FlowWaterfall`. This path must not import sandbox-only UI. |
| [`/composer`](src/composer) | Sandbox-first `AgentComposer` and profile/model/sandbox-runner controls re-exported from `@tangle-network/sandbox-ui/chat`. Use when the chat owns a sandbox profile or needs the full sandbox composer. |
| `/web-react/terminal` | Sandbox terminal React components, including `WorkspaceTerminalPanel`. Import this explicit path only for container/terminal views. |
| [`/web`](src/web) | Request-boundary utilities: `parseJsonObjectBody`, `requireString`, `extractRequestContext`, `checkRateLimit`, `addSecurityHeaders`. |
| [`/stream`](src/stream) | SSE normalization and turn identity: `normalizeToolEvent`, `resolveChatTurn`, `encodeEvent`, message-part merging. |
| [`/redact`](src/redact) | `redactForIngestion` — PII redaction before content leaves the boundary. |
Expand Down
2 changes: 1 addition & 1 deletion docs/product-surfaces.md
Original file line number Diff line number Diff line change
Expand Up @@ -228,7 +228,7 @@ it a *timeline* must be the first thing you see.
this without losing my place."* First impression: state exactly what one more
seat buys, in one sentence, with the price — no tier wall.

### Workspace terminal (`workspace-terminal-panel`)
### Workspace terminal (`web-react/terminal` -> `WorkspaceTerminalPanel`)
- **Purpose / goal:** a live view into the sandbox session the agent is running
in. Goal for the *power* user: *"see the raw truth when I need to debug."* Keep
it opt-in and secondary — it's the inspection hatch, not the front door.
Expand Down
5 changes: 5 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -158,6 +158,11 @@
"import": "./dist/web-react/index.js",
"default": "./dist/web-react/index.js"
},
"./web-react/terminal": {
"types": "./dist/web-react/terminal.d.ts",
"import": "./dist/web-react/terminal.js",
"default": "./dist/web-react/terminal.js"
},
"./composer": {
"types": "./dist/composer/index.d.ts",
"import": "./dist/composer/index.js",
Expand Down
11 changes: 5 additions & 6 deletions src/composer/index.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
/**
* The canonical agent chat composer, re-exported from `@tangle-network/sandbox-ui`
* so agent-app apps adopt the one shared input box — model · harness · effort ·
* agent-profile, with harness↔model snapping — without each wiring sandbox-ui
* directly. Opt-in subpath: importing it requires the (otherwise optional)
* `@tangle-network/sandbox-ui` peer, so apps that don't use the composer pay
* nothing. Prefer this over agent-app's legacy `web-react` composer for new UI.
* Sandbox-first chat composer, re-exported from `@tangle-network/sandbox-ui` so
* agent-app apps can opt into the full profile/model/sandbox-runner/reasoning
* control surface without wiring sandbox-ui directly. Router-only apps should
* use `@tangle-network/agent-app/web-react`; importing this subpath requires the
* otherwise optional `@tangle-network/sandbox-ui` peer.
*/
export {
AgentComposer,
Expand Down
Loading