Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
49 commits
Select commit Hold shift + click to select a range
a834793
action for creating new chat window
robgruen Jul 28, 2026
bd7a37d
can now check branch merge status by saying "did branch x" get merged?
robgruen Jul 28, 2026
5a7bdd3
style: apply prettier formatting and policy fixes
typeagent-bot[bot] Jul 29, 2026
406012d
docs: regenerate README.AUTOGEN.md, command reference, and action bro…
typeagent-bot[bot] Jul 29, 2026
4aeca61
Updated action browser to include agent commands
robgruen Jul 29, 2026
922532f
added heirarchy to commands view
robgruen Jul 29, 2026
006da2b
refactor(coda): reduce chat action branching complexity
Copilot Jul 29, 2026
6ef4d1d
added command <-> action links and updated doc generation
robgruen Jul 29, 2026
31695ec
refactored conversation actions to invoke commandhandlers to do the w…
robgruen Jul 30, 2026
3c01e5c
@describe now uses structured output
robgruen Jul 30, 2026
022ac54
reasoning can now dispatch actions to the host application (shell). …
robgruen Jul 30, 2026
91f4266
added self-help agent
robgruen Jul 30, 2026
f83c77a
promoted message count as a first-class conversation data item
robgruen Jul 30, 2026
9bf3746
clicking on the roadrunner will now show explainer details
robgruen Jul 30, 2026
dcf6bde
Merge branch 'dev/robgruen/dogfooding8' of https://github.com/microso…
robgruen Jul 30, 2026
23b77ce
fixed a bug where the stale server message wasn't being dismissed.
robgruen Jul 30, 2026
ff135c3
added conversation find actions + commands
robgruen Jul 30, 2026
14a868f
added searchConversation action
robgruen Jul 30, 2026
a31be34
updated flakey test phrasing
robgruen Jul 30, 2026
8536907
added searchConversation action which searches a unified knowPro inde…
robgruen Jul 30, 2026
19ef5fd
explanations now show matched grammar rules
robgruen Jul 30, 2026
b642357
Merge origin/main into dev/robgruen/dogfooding9
Copilot Jul 30, 2026
23975d6
style: apply prettier formatting and policy fixes
typeagent-bot[bot] Jul 30, 2026
f10a75c
result now indicates success/failure
robgruen Jul 31, 2026
a6092bb
searchConversation implemented. switchConveration now fallsback to …
robgruen Jul 31, 2026
2a6c501
updated table formatting
robgruen Jul 31, 2026
eb94bc5
fixed build failure
robgruen Jul 31, 2026
b8a6e9a
more work on self-help and conversation indexing
robgruen Jul 31, 2026
3c1e6f7
fixed help completion regression
robgruen Jul 31, 2026
874c4a2
prevent extranious "action completed" message if the action produces …
robgruen Jul 31, 2026
eae0114
consolodated describe and selfHelp agen into one inside of the dispat…
robgruen Jul 31, 2026
d9b150e
refactoring cleanup of help agent.
robgruen Jul 31, 2026
7776651
conversation indexing now supported
robgruen Jul 31, 2026
332eb46
no "new message" pill on progress updates
robgruen Jul 31, 2026
97faa8b
cross conversation memory searching, tool calling now shows tool results
robgruen Jul 31, 2026
a6834f8
Merge origin/main and resolve conflicts
Copilot Jul 31, 2026
f64da93
Fix merge fallout for selfhelp and lockfile
Copilot Jul 31, 2026
589b1e7
Merge branch 'main' into dev/robgruen/dogfooding10
robgruen Jul 31, 2026
ae6528d
style: apply prettier formatting and policy fixes
typeagent-bot[bot] Jul 31, 2026
2fdb49f
added summarize conversation action.
robgruen Aug 1, 2026
fd058c8
removed duplicate summary mesage.
robgruen Aug 1, 2026
f33b11c
summarize is now MD and player pill has artis/track
robgruen Aug 1, 2026
1ad914c
Merge branch 'dev/robgruen/dogfooding10' of https://github.com/micros…
robgruen Aug 1, 2026
0cb22c8
Potential fix for pull request finding 'CodeQL / Incomplete string es…
robgruen Aug 1, 2026
94e86e7
Fix broken prettier lockfile entry
Copilot Aug 1, 2026
2ced996
style: apply prettier formatting and policy fixes
typeagent-bot[bot] Aug 1, 2026
1e784a4
fix: add code-complexity-allow markers to newly-violating functions
Copilot Aug 1, 2026
4e96c75
fix: resolve code-lint ratchet violations (no-console, no-explicit-any)
Copilot Aug 1, 2026
b8d1674
Merge branch 'main' into dev/robgruen/dogfooding10
robgruen Aug 2, 2026
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
16 changes: 9 additions & 7 deletions ts/docs/architecture/agents/agentServerConversations.md
Original file line number Diff line number Diff line change
Expand Up @@ -270,7 +270,7 @@ See `packages/vscode-shell/src/agentServerBridge.ts` (`handleManageConversation`

The browser extension (`packages/agents/browserExtension/src/extension`) is a Chrome MV3 extension that runs in **connected mode only** — its service worker maintains a WebSocket to the agentServer. The chat panel surfaces the same `@conversation` slash commands and NL phrases as the Shell and CLI.

The chat panel forwards the dispatcher's `manage-conversation` `takeAction` payload to the service worker via a `chatPanelManageConversation` invoke RPC. The service worker (`extension/serviceWorker/dispatcherConnection.ts`) delegates to the shared `manageConversation` helper from `@typeagent/agent-server-client/conversation` (which implements all eight subcommands) via a thin `AgentServerConnection` adapter over the extension's RPC channel, and returns a rendered HTML message plus a `switched` flag.
The chat panel forwards the dispatcher's `manage-conversation` `takeAction` payload to the service worker via a `chatPanelManageConversation` invoke RPC. The service worker (`extension/serviceWorker/dispatcherConnection.ts`) delegates to the shared `manageConversation` helper from `@typeagent/agent-server-client/conversation` (which implements every subcommand) via a thin `AgentServerConnection` adapter over the extension's RPC channel, and returns a rendered HTML message plus a `switched` flag.

When `switched` is set, the chat panel clears its DOM and re-runs `loadSessionHistory()` (mirroring the Shell's `replayDisplayHistory` on `conversationChanged`), then renders the confirmation message so it lands after the replayed history. Live display events arriving during the replay are queued via a `runOrDefer` gate and flushed in order on completion.

Expand All @@ -286,11 +286,11 @@ All four clients (CLI, Electron Shell, VS Code, browser extension) drive their c

Modules:

| Module | Surface |
| -------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `naming.ts` | `normalizeConversationName`, `findConversationByName`, `findUniqueConversationByName`, `formatAutoConversationName`, `sortConversationsByCreatedDesc` |
| `lifecycle.ts` | `findOrCreateNamedConversation`, `joinNamedOrFallback`, `switchConversationSafe`, `createEphemeralConversation`, `deleteEphemeralConversation`, `validateConversationNameUnique`, `isConversationNotFoundError` |
| `manage.ts` | `manageConversation` (top-level dispatcher) + per-subcommand entries (`manageNew`, `manageList`, `manageInfo`, `manageSwitch`, `manageCycle`, `manageRename`, `manageDelete`). All return a discriminated `ConversationActionResult` the caller renders to its own UI. |
| Module | Surface |
| -------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `naming.ts` | `normalizeConversationName`, `findConversationByName`, `findUniqueConversationByName`, `formatAutoConversationName`, `sortConversationsByCreatedDesc` |
| `lifecycle.ts` | `findOrCreateNamedConversation`, `joinNamedOrFallback`, `switchConversationSafe`, `createEphemeralConversation`, `deleteEphemeralConversation`, `validateConversationNameUnique`, `isConversationNotFoundError` |
| `manage.ts` | `manageConversation` (top-level dispatcher) + per-subcommand entries (`manageNew`, `manageList`, `manageFind`, `manageSearch`, `manageInfo`, `manageSwitch`, `manageCycle`, `manageRename`, `manageDelete`). All return a discriminated `ConversationActionResult` the caller renders to its own UI. |

### Switch protocol

Expand Down Expand Up @@ -345,6 +345,8 @@ where `payload` has the shape:
{ subcommand: "help" }
{ subcommand: "new"; name?: string }
{ subcommand: "list" }
{ subcommand: "find"; query: string }
{ subcommand: "search"; query: string }
{ subcommand: "info" }
{ subcommand: "switch"; name: string }
{ subcommand: "prev" }
Expand All @@ -353,7 +355,7 @@ where `payload` has the shape:
{ subcommand: "rename"; name?: string; newName: string }
```

`help` is dispatched when `@conversation` / `/conversation` is invoked with no subcommand (via the dispatcher's `defaultSubCommand: "help"`); there is intentionally no natural-language form for it. NL drops `help` from its `ConversationActionPayload` union and only emits `new`, `list`, `info`, `switch`, `prev`, `next`, `rename`, `delete`. See `packages/dispatcher/dispatcher/src/context/system/manageConversationPayload.ts` for the authoritative type.
`help` is dispatched when `@conversation` / `/conversation` is invoked with no subcommand (via the dispatcher's `defaultSubCommand: "help"`), and also has a natural-language form (e.g. "conversation help", "help with conversations"). `find` matches conversations by **name** (lexical + embedding); `search` matches conversation **content** via the knowPro unified message index. The full natural-language set the `system.conversation` sub-agent emits is `new`, `list`, `find`, `search`, `info`, `switch`, `prev`, `next`, `rename`, `delete`, and `help`. See `packages/dispatcher/dispatcher/src/context/system/manageConversationPayload.ts` for the authoritative type.

Each client handles `"manage-conversation"` using its own conversation management API:

Expand Down
19 changes: 11 additions & 8 deletions ts/docs/architecture/core/dispatcher.md
Original file line number Diff line number Diff line change
Expand Up @@ -730,14 +730,17 @@ subcommands, and help text.

The system agent also has sub-agents with LLM-translated action schemas:

- **`system.describe`** — Natural language capability discovery ("what can the spotify agent do",
"describe the play action"). `executeDescribeAction` forwards to the equivalent `@describe`
command (same convention as `system.config`/`system.history`), which resolves the agent/action
against `getAgentSchemas()` (agentSchemaInfo.ts) and renders a deterministic markdown summary,
optionally polished by a fast structured-output LLM call when one is configured — the model
returns a schema-validated JSON object (summary / explanation + example) that is rendered to
markdown deterministically, falling back to the deterministic text on a missing/failed model
(see `describeCore.ts`).
- **`system.help`** — Natural language questions about TypeAgent itself. One schema owns three
actions: `answerTypeAgentQuestion` (find the command/action for a task) and `explainTypeAgent`
(conceptual/setup questions), both grounded via the `@typeagent/selfhelp` library, plus
`describeAgent`/`describeAction` capability discovery ("what can the spotify agent do", "describe
the play action"). The describe actions forward to the same `describeCore` engine as the
`@describe` command, which resolves the agent/action against `getAgentSchemas()`
(agentSchemaInfo.ts) and renders a deterministic markdown summary, optionally polished by a fast
structured-output LLM call when one is configured, falling back to the deterministic text on a
missing/failed model (see `describeCore.ts`). When `describeAgent` names something that is not an
installed agent (a concept like "translation"), the handler falls back to `explainTypeAgent`
rather than dead-ending.
- **`system.config`** — Natural language configuration changes.
- **`system.conversation`** — Natural language management of **agentServer client-connection
conversations** (the named, GUID-keyed sessions described in
Expand Down
4 changes: 2 additions & 2 deletions ts/docs/overview/action-browser.html

Large diffs are not rendered by default.

Loading
Loading