@a5c-ai/krate 5.0.1-staging.660d2b90f → 5.0.1-staging.69cb593ea
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/Dockerfile +31 -29
- package/bin/krate-demo.mjs +0 -0
- package/bin/krate-server.mjs +0 -0
- package/dist/krate-controller-ui.json +808 -10
- package/dist/krate-lifecycle.json +1 -1
- package/dist/krate-runtime-snapshot.json +223 -53
- package/dist/krate-summary.json +40 -3
- package/docs/agents/gaps-agent-mux-to-krate-crds.md +298 -0
- package/docs/architecture-v2.md +431 -0
- package/docs/openapi.yaml +1275 -0
- package/docs/requirements-v2.md +238 -0
- package/docs/sdk-api-reference.md +782 -0
- package/docs/system-spec-v2.md +352 -0
- package/docs/todos.md +4 -0
- package/docs/web-console-spec.md +433 -0
- package/package.json +1 -1
- package/scripts/validate-ui.mjs +305 -207
- package/src/agent-adapter-controller.js +169 -0
- package/src/agent-approval-controller.js +47 -0
- package/src/agent-dispatch-controller.js +130 -7
- package/src/agent-gateway-config-controller.js +147 -0
- package/src/agent-memory-controller.js +357 -0
- package/src/agent-memory-import.js +327 -0
- package/src/agent-memory-query.js +292 -0
- package/src/agent-memory-repository-source-controller.js +255 -0
- package/src/agent-mux-client.js +1 -1
- package/src/agent-permission-review.js +102 -14
- package/src/agent-project-controller.js +117 -0
- package/src/agent-provider-config-controller.js +150 -0
- package/src/agent-secret-config-grant-controller.js +282 -0
- package/src/agent-session-transcript-controller.js +189 -0
- package/src/agent-stack-controller.js +52 -1
- package/src/agent-subagent-controller.js +160 -0
- package/src/agent-transport-binding-controller.js +121 -0
- package/src/agent-trigger-controller.js +273 -0
- package/src/agent-workspace-controller.js +702 -0
- package/src/agent-writeback-controller.js +302 -0
- package/src/api-controller.js +338 -3
- package/src/async-controller.js +207 -0
- package/src/audit-controller.js +191 -0
- package/src/auth.js +48 -6
- package/src/controller-client.js +112 -38
- package/src/controller-ui.js +96 -16
- package/src/data-plane.js +3 -2
- package/src/event-bus.js +61 -0
- package/src/external/conflict-controller.js +225 -0
- package/src/external/github/auth.js +96 -0
- package/src/external/github/cicd.js +180 -0
- package/src/external/github/git-forge.js +240 -0
- package/src/external/github/index.js +144 -0
- package/src/external/github/issue-tracking.js +163 -0
- package/src/external/provider-adapter.js +161 -0
- package/src/external/provider-resource-factory.js +161 -0
- package/src/external/sync-controller.js +235 -0
- package/src/external/webhook-controller.js +144 -0
- package/src/external/write-controller.js +283 -0
- package/src/gitea-backend.js +36 -0
- package/src/gitea-service.js +173 -0
- package/src/http-server.js +226 -0
- package/src/index.js +27 -0
- package/src/kubernetes-controller-async.js +531 -0
- package/src/kubernetes-controller.js +156 -84
- package/src/notification-controller.js +178 -0
- package/src/org-scoping.js +5 -0
- package/src/resource-model.js +26 -8
- package/src/runner-controller.js +272 -0
- package/src/snapshot-cache.js +157 -0
- package/tests/agent-adapter-controller.test.js +361 -0
- package/tests/agent-dispatch-controller.test.js +139 -0
- package/tests/agent-gateway-config-controller.test.js +386 -0
- package/tests/agent-memory-controller.test.js +308 -0
- package/tests/agent-memory-import-snapshot.test.js +477 -0
- package/tests/agent-memory-query.test.js +404 -0
- package/tests/agent-memory-repository-source.test.js +514 -0
- package/tests/agent-permission-review-v2.test.js +317 -0
- package/tests/agent-project-controller.test.js +302 -0
- package/tests/agent-provider-config-controller.test.js +376 -0
- package/tests/agent-resources.test.js +35 -19
- package/tests/agent-secret-config-grant.test.js +231 -0
- package/tests/agent-session-transcript-controller.test.js +499 -0
- package/tests/agent-subagent-controller.test.js +201 -0
- package/tests/agent-transport-binding-controller.test.js +294 -0
- package/tests/agent-trigger-routes.test.js +190 -0
- package/tests/agent-trigger-sources.test.js +245 -0
- package/tests/agent-workspace-controller.test.js +181 -0
- package/tests/agent-writeback.test.js +292 -0
- package/tests/approval-persistence.test.js +171 -0
- package/tests/async-controller.test.js +252 -0
- package/tests/audit-controller.test.js +227 -0
- package/tests/codespace-controller.test.js +318 -0
- package/tests/controller-client.test.js +133 -0
- package/tests/deployment.test.js +43 -29
- package/tests/e2e/lifecycle.test.js +5 -2
- package/tests/event-bus-integration.test.js +190 -0
- package/tests/external-github-forge.test.js +560 -0
- package/tests/external-github-issues-cicd.test.js +520 -0
- package/tests/external-integration.test.js +470 -0
- package/tests/external-persistence.test.js +340 -0
- package/tests/external-provider-adapter.test.js +365 -0
- package/tests/external-resource-model.test.js +215 -0
- package/tests/external-webhook-sync.test.js +287 -0
- package/tests/external-write-conflict.test.js +353 -0
- package/tests/gitea-service.test.js +253 -0
- package/tests/health-check-real.test.js +165 -0
- package/tests/integration/full-flow.test.js +266 -0
- package/tests/krate.test.js +58 -6
- package/tests/memory-search-wiring.test.js +270 -0
- package/tests/notification-controller.test.js +196 -0
- package/tests/notification-integration.test.js +179 -0
- package/tests/org-scoping.test.js +687 -0
- package/tests/runner-controller.test.js +327 -0
- package/tests/runner-integration.test.js +231 -0
- package/tests/session-cookie-hmac.test.js +151 -0
- package/tests/snapshot-performance.test.js +315 -0
- package/tests/sse-events.test.js +107 -0
- package/tests/webhook-trigger.test.js +198 -0
- package/tests/workspace-volumes.test.js +312 -0
- package/tests/writeback-persistence.test.js +207 -0
package/dist/krate-summary.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"description": "Kubernetes-native forge runtime with Argo CD and Krate-managed repository hosting",
|
|
4
4
|
"package": {
|
|
5
5
|
"name": "@a5c-ai/krate",
|
|
6
|
-
"version": "5.0.1-staging.
|
|
6
|
+
"version": "5.0.1-staging.69cb593ea",
|
|
7
7
|
"private": true
|
|
8
8
|
},
|
|
9
9
|
"entrypoints": {
|
|
@@ -162,7 +162,7 @@
|
|
|
162
162
|
"lifecycle": {
|
|
163
163
|
"project": "Krate",
|
|
164
164
|
"version": "0.1.0",
|
|
165
|
-
"generatedAt": "2026-05-
|
|
165
|
+
"generatedAt": "2026-05-17T16:00:33.973Z",
|
|
166
166
|
"status": "ready-for-local-development",
|
|
167
167
|
"components": [
|
|
168
168
|
{
|
|
@@ -464,7 +464,7 @@
|
|
|
464
464
|
"ok": true,
|
|
465
465
|
"assertions": []
|
|
466
466
|
},
|
|
467
|
-
"generatedAt": "2026-05-
|
|
467
|
+
"generatedAt": "2026-05-17T16:00:33.974Z",
|
|
468
468
|
"controller": {
|
|
469
469
|
"status": "degraded",
|
|
470
470
|
"namespace": "krate-org-default",
|
|
@@ -618,6 +618,41 @@
|
|
|
618
618
|
"method": "POST",
|
|
619
619
|
"path": "/api/orgs/:org/agents/triggers/process",
|
|
620
620
|
"purpose": "evaluate an event against trigger rules and dispatch matching agents"
|
|
621
|
+
},
|
|
622
|
+
{
|
|
623
|
+
"method": "POST",
|
|
624
|
+
"path": "/api/orgs/:org/agents/workspaces",
|
|
625
|
+
"purpose": "provision a new agent workspace with worktree and runtime"
|
|
626
|
+
},
|
|
627
|
+
{
|
|
628
|
+
"method": "POST",
|
|
629
|
+
"path": "/api/orgs/:org/agents/workspaces/:name/archive",
|
|
630
|
+
"purpose": "archive an agent workspace and mark it for cleanup"
|
|
631
|
+
},
|
|
632
|
+
{
|
|
633
|
+
"method": "POST",
|
|
634
|
+
"path": "/api/orgs/:org/agents/workspaces/:name/link",
|
|
635
|
+
"purpose": "link a work item to an agent workspace"
|
|
636
|
+
},
|
|
637
|
+
{
|
|
638
|
+
"method": "POST",
|
|
639
|
+
"path": "/api/orgs/:org/agents/memory/query",
|
|
640
|
+
"purpose": "query Company Brain memory with graph and grep search"
|
|
641
|
+
},
|
|
642
|
+
{
|
|
643
|
+
"method": "POST",
|
|
644
|
+
"path": "/api/orgs/:org/agents/memory/imports",
|
|
645
|
+
"purpose": "create a memory import from a babysitter run"
|
|
646
|
+
},
|
|
647
|
+
{
|
|
648
|
+
"method": "GET",
|
|
649
|
+
"path": "/api/orgs/:org/agents/memory/snapshots",
|
|
650
|
+
"purpose": "list memory snapshots for an organization"
|
|
651
|
+
},
|
|
652
|
+
{
|
|
653
|
+
"method": "GET",
|
|
654
|
+
"path": "/api/orgs/:org/agents/memory/repositories",
|
|
655
|
+
"purpose": "list memory repositories for an organization"
|
|
621
656
|
}
|
|
622
657
|
],
|
|
623
658
|
"metrics": {
|
|
@@ -630,6 +665,8 @@
|
|
|
630
665
|
"invites": 1,
|
|
631
666
|
"repositories": 1,
|
|
632
667
|
"pullRequests": 0,
|
|
668
|
+
"issues": 0,
|
|
669
|
+
"projects": 0,
|
|
633
670
|
"pipelines": 0,
|
|
634
671
|
"jobs": 0,
|
|
635
672
|
"runnerPools": 1,
|
|
@@ -0,0 +1,298 @@
|
|
|
1
|
+
# Gaps: Agent Mux Experiences → Krate CRDs & UI
|
|
2
|
+
|
|
3
|
+
Status: Draft for review
|
|
4
|
+
Date: 2026-05-11
|
|
5
|
+
|
|
6
|
+
This document maps proven agent-mux UI/webui/core patterns to krate CRDs and UI experiences. Each section identifies what exists in agent-mux, what krate already has, and what's missing.
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## 1. Transport & Adapter Layer
|
|
11
|
+
|
|
12
|
+
### What agent-mux has
|
|
13
|
+
Three adapter types form a discriminated union:
|
|
14
|
+
- **SubprocessAdapter** — spawn CLI processes (Claude Code, Codex, Gemini CLI, etc.)
|
|
15
|
+
- **RemoteAdapter** — HTTP/WebSocket/Unix socket connections to remote backends
|
|
16
|
+
- **ProgrammaticAdapter** — direct SDK integration via async iterables
|
|
17
|
+
|
|
18
|
+
Each adapter declares capabilities (resume, fork, streaming, thinking, tools) and supports different connection types (HttpConnection, WebSocketConnection).
|
|
19
|
+
|
|
20
|
+
### What krate has
|
|
21
|
+
- `AgentStack.spec.adapter` — string field (adapter ID)
|
|
22
|
+
- `AgentStack.spec.baseAgent` — enum of known agents
|
|
23
|
+
- `agent-mux-client.js` — thin stub with `isAvailable()`, `launchSession()`
|
|
24
|
+
|
|
25
|
+
### Gaps → New CRDs
|
|
26
|
+
|
|
27
|
+
| CRD | Purpose | Fields |
|
|
28
|
+
|-----|---------|--------|
|
|
29
|
+
| **AgentAdapter** | First-class adapter definition with transport type and capabilities | `spec.adapterType` (subprocess/remote/programmatic), `spec.transport` (http/websocket/unix/stdio), `spec.capabilities` (resume, fork, streaming, thinking, tools, models), `spec.authType` (token/oauth/none), `spec.installationMethod` (npm/binary/docker/remote), `spec.healthEndpoint` |
|
|
30
|
+
| **AgentTransportBinding** | Connection configuration for a specific adapter instance | `spec.adapterRef`, `spec.endpoint`, `spec.protocol` (http/ws/grpc/unix), `spec.authSecretRef`, `spec.healthCheck` (interval, timeout), `spec.reconnectPolicy` (backoff, maxRetries), `status.connected`, `status.lastHealthCheck` |
|
|
31
|
+
| **AgentProviderConfig** | Model provider configuration (Anthropic, OpenAI, Bedrock, etc.) | `spec.provider`, `spec.apiBase`, `spec.authType`, `spec.defaultModel`, `spec.modelTranslations` (canonical → provider-specific), `spec.rateLimits`, `spec.secretRef` |
|
|
32
|
+
|
|
33
|
+
### UI impact
|
|
34
|
+
Stack builder should let users pick adapter type, configure transport, test connectivity, and select models — not just type an adapter string.
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## 2. Session & Chat Experience
|
|
39
|
+
|
|
40
|
+
### What agent-mux has
|
|
41
|
+
- **SessionWorkspaceShell** — 4-panel resizable layout (workspace, chat, execution trace, runtime)
|
|
42
|
+
- **SessionConversationSurface** — chat-like interface with human/agent turns
|
|
43
|
+
- **SessionFlowView** — 3-mode visualization (flow lanes, transcript, files)
|
|
44
|
+
- **Multi-lane agent flow** — parallel runs visualized as swimlanes
|
|
45
|
+
- **File-attention tracking** — which files each run reads/writes/touches
|
|
46
|
+
- **Cost tracking** — per-session USD with token breakdown
|
|
47
|
+
- **Session forking** — branch conversation to different agent mid-flight
|
|
48
|
+
- **Transcript pagination** — load last 60 messages, paginate further
|
|
49
|
+
- **Keyboard shortcuts** — Shift+W/C/X/D to toggle panels
|
|
50
|
+
- **Attachments** — drag-drop files into compose box
|
|
51
|
+
- **Model picker** — inline model switching in compose
|
|
52
|
+
- **Agent picker** — switch agents creating forked session
|
|
53
|
+
- **Approval mode toggle** — yolo/prompt/deny per session
|
|
54
|
+
|
|
55
|
+
### What krate has
|
|
56
|
+
- `AgentSession` resource (metadata only — mux session ID, dispatch run ref)
|
|
57
|
+
- Basic `/agents/runs` list page (table of dispatch runs)
|
|
58
|
+
- No chat interface, no session detail, no flow visualization
|
|
59
|
+
|
|
60
|
+
### Gaps → New CRDs + UI
|
|
61
|
+
|
|
62
|
+
| CRD | Purpose |
|
|
63
|
+
|-----|---------|
|
|
64
|
+
| **AgentSessionTranscript** (aggregated) | Durable transcript with message nodes (user/assistant/tool/thinking/error), pagination support, cost per turn |
|
|
65
|
+
| **AgentSessionAttachment** (aggregated) | File attached to a session message — source (file/url/base64), mimeType, digest, redaction status |
|
|
66
|
+
|
|
67
|
+
| UI Route | Experience |
|
|
68
|
+
|----------|------------|
|
|
69
|
+
| `/agents/sessions/:id` | Full session detail: 4-panel layout adapted from SessionWorkspaceShell (workspace files, chat transcript, execution flow, runtime details) |
|
|
70
|
+
| `/agents/sessions/:id/flow` | Multi-lane flow visualization showing parallel runs as swimlanes |
|
|
71
|
+
| `/agents/sessions/:id/files` | File-attention view showing which files were read/written/touched |
|
|
72
|
+
| Chat compose in session detail | Input bar with agent picker, model picker, approval mode toggle, attachment drag-drop |
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## 3. Kanban & Issue Tracking
|
|
77
|
+
|
|
78
|
+
### What agent-mux has
|
|
79
|
+
- **BacklogOverview** (240KB) — full kanban board with swimlanes, workflow columns, WIP limits
|
|
80
|
+
- **KanbanIssue** — issues with status (backlog/ready/in-progress/blocked/review/done), priority, assignees, dependencies, acceptance criteria
|
|
81
|
+
- **KanbanBoardCard** — cards with repo integration, PR links, blocked state
|
|
82
|
+
- **Issue-to-workspace linking** — issues linked to workspaces and sessions
|
|
83
|
+
- **Repository integration** — link to GitHub/Azure/GitLab/Bitbucket
|
|
84
|
+
- **Dispatch context labels** — instruction fragments attached to issues for agent context
|
|
85
|
+
- **Task tags** — custom categorization
|
|
86
|
+
|
|
87
|
+
### What krate has
|
|
88
|
+
- `Issue` and `PullRequest` resources (aggregated, basic spec)
|
|
89
|
+
- `WorkItemSessionLink` and `WorkItemWorkspaceLink` — associations
|
|
90
|
+
- No kanban UI, no board view
|
|
91
|
+
|
|
92
|
+
### Gaps → New CRDs + UI
|
|
93
|
+
|
|
94
|
+
| CRD | Purpose |
|
|
95
|
+
|-----|---------|
|
|
96
|
+
| **AgentWorkflow** (config) | Workflow definition with states (todo/in-progress/review/done), transitions, WIP limits per state |
|
|
97
|
+
| **AgentProject** (config) | Project grouping issues with board config, default workflow, team refs |
|
|
98
|
+
| **AgentIssueDispatchContext** (config) | Reviewed dispatch instructions attached to an issue — prompt fragment, scope, allowed stacks |
|
|
99
|
+
|
|
100
|
+
| UI Route | Experience |
|
|
101
|
+
|----------|------------|
|
|
102
|
+
| `/agents/projects` | Project list with health cards |
|
|
103
|
+
| `/agents/projects/:id/board` | Kanban board with drag-drop, swimlanes, workflow columns |
|
|
104
|
+
| `/agents/projects/:id/issues/:id` | Issue detail with linked sessions, workspaces, PRs, acceptance criteria |
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## 4. Workspace Lifecycle
|
|
109
|
+
|
|
110
|
+
### What agent-mux has
|
|
111
|
+
- **WorkspaceService** — create/archive/cleanup/recover workspaces
|
|
112
|
+
- **Git worktree lifecycle** — branch creation, commit tracking, rebase support
|
|
113
|
+
- **Workspace runtime surfaces** — preview URL, terminal, dev server, rebase status
|
|
114
|
+
- **WorkspaceDetailShell** — file explorer, console output, environment variables
|
|
115
|
+
- **WorkspaceProvisioningPage** — git repo + environment setup flow
|
|
116
|
+
- **Session binding** — workspaces bound to sessions with status tracking
|
|
117
|
+
|
|
118
|
+
### What krate has
|
|
119
|
+
- `AgentWorkspace` resource (basic spec: repository, workspacePath, ownership)
|
|
120
|
+
- `AgentWorkspacePolicy` (config: mode, retention)
|
|
121
|
+
- No workspace UI beyond the list page
|
|
122
|
+
|
|
123
|
+
### Gaps → New CRDs + UI
|
|
124
|
+
|
|
125
|
+
| CRD | Purpose |
|
|
126
|
+
|-----|---------|
|
|
127
|
+
| **AgentWorkspaceRuntime** (aggregated) | Runtime surface state — cwd, env vars, process status, preview URL, terminal streams |
|
|
128
|
+
| **AgentWorkspaceRepo** (aggregated) | Git metadata per repo in workspace — branch, head commit, remote, dirty state |
|
|
129
|
+
|
|
130
|
+
| UI Route | Experience |
|
|
131
|
+
|----------|------------|
|
|
132
|
+
| `/agents/workspaces/:id` | Workspace detail: file explorer tree, console output stream, env vars, git status |
|
|
133
|
+
| `/agents/workspaces/new` | Provisioning flow: select repo, branch, workspace policy, launch |
|
|
134
|
+
|
|
135
|
+
---
|
|
136
|
+
|
|
137
|
+
## 5. Approval & Hook Inbox
|
|
138
|
+
|
|
139
|
+
### What agent-mux has
|
|
140
|
+
- **HookInboxScreen** — approval inbox with pending requests
|
|
141
|
+
- **HookApprovalPrompt** — countdown timer, tool preview, allow/deny actions
|
|
142
|
+
- **BreakpointPanel** — pulsing indicator, attached file preview
|
|
143
|
+
- **FilePreview** — syntax-highlighted context files in breakpoint
|
|
144
|
+
|
|
145
|
+
### What krate has
|
|
146
|
+
- `AgentApproval` resource (basic spec: dispatchRun, action, requestedBy)
|
|
147
|
+
- `/agents/approvals` list in the agent view
|
|
148
|
+
- No approval inbox UI, no interactive approval flow
|
|
149
|
+
|
|
150
|
+
### Gaps → UI
|
|
151
|
+
|
|
152
|
+
| UI Route | Experience |
|
|
153
|
+
|----------|------------|
|
|
154
|
+
| `/agents/approvals` (enhanced) | Interactive inbox: pending approvals with countdown, tool preview, context files, allow/deny/delegate actions |
|
|
155
|
+
| Approval detail in session | Inline approval UI in session view when breakpoint/hook fires |
|
|
156
|
+
|
|
157
|
+
---
|
|
158
|
+
|
|
159
|
+
## 6. Automations & Triggers
|
|
160
|
+
|
|
161
|
+
### What agent-mux has
|
|
162
|
+
- **AutomationsPage** — rules with timer (cron) and webhook triggers
|
|
163
|
+
- **Templates** — issue/task templates for automated creation
|
|
164
|
+
- **Execution history** — per-rule run history
|
|
165
|
+
|
|
166
|
+
### What krate has
|
|
167
|
+
- `AgentTriggerRule` resource (sources, agentStack, taskKind)
|
|
168
|
+
- `AgentTriggerExecution` (evaluation record)
|
|
169
|
+
- No automation UI beyond the rules list
|
|
170
|
+
|
|
171
|
+
### Gaps → UI
|
|
172
|
+
|
|
173
|
+
| UI Route | Experience |
|
|
174
|
+
|----------|------------|
|
|
175
|
+
| `/agents/rules/:name` | Rule detail: trigger config, execution history, delivery status, dry-run testing |
|
|
176
|
+
| `/agents/rules/new` | Rule builder: source picker (CI/webhook/comment/label/schedule/manual), stack selection, condition editor |
|
|
177
|
+
|
|
178
|
+
---
|
|
179
|
+
|
|
180
|
+
## 7. Execution Observability
|
|
181
|
+
|
|
182
|
+
### What agent-mux has
|
|
183
|
+
- **TaskDetailPanel** — multi-tab inspector (Agent/Timing/Logs/Data/Breakpoint tabs)
|
|
184
|
+
- **PipelineView** — DAG visualization of task flow
|
|
185
|
+
- **LogViewer** — streaming console with search and scroll-lock
|
|
186
|
+
- **JsonTree** — recursive JSON explorer with categorization
|
|
187
|
+
- **ParallelGroup** — grouped parallel tasks with timing heuristics
|
|
188
|
+
- **VirtualizedRunList** — efficient rendering for 100s of runs
|
|
189
|
+
- **CostMeter** — per-session and per-run USD display
|
|
190
|
+
- **TimingPanel** — duration metrics, critical path analysis
|
|
191
|
+
|
|
192
|
+
### What krate has
|
|
193
|
+
- `/agents/runs` basic table with name, stack, status
|
|
194
|
+
- No task detail, no logs, no execution flow
|
|
195
|
+
|
|
196
|
+
### Gaps → UI
|
|
197
|
+
|
|
198
|
+
| UI Route | Experience |
|
|
199
|
+
|----------|------------|
|
|
200
|
+
| `/agents/runs/:id` | Run detail: task execution flow (DAG), timing, cost, linked session, context bundle, permission snapshot |
|
|
201
|
+
| `/agents/runs/:id/tasks/:effectId` | Task inspector: agent prompt, timing, logs (streaming), data (JSON tree), breakpoint approval |
|
|
202
|
+
|
|
203
|
+
---
|
|
204
|
+
|
|
205
|
+
## 8. Configuration & Settings
|
|
206
|
+
|
|
207
|
+
### What agent-mux has
|
|
208
|
+
- **SettingsModal** — theme, gateway config
|
|
209
|
+
- **Gateway configuration** — URL, auth token, auto-reconnect
|
|
210
|
+
- **Agent registry** — capabilities matrix per agent
|
|
211
|
+
|
|
212
|
+
### What krate has
|
|
213
|
+
- Helm `values.yaml` with `agents.enabled` and `agents.agentMux.gateway`
|
|
214
|
+
- No runtime settings UI
|
|
215
|
+
|
|
216
|
+
### Gaps → New CRDs
|
|
217
|
+
|
|
218
|
+
| CRD | Purpose |
|
|
219
|
+
|-----|---------|
|
|
220
|
+
| **AgentGatewayConfig** (config) | Runtime Agent Mux gateway connection settings — URL, auth, reconnect policy, feature flags |
|
|
221
|
+
|
|
222
|
+
---
|
|
223
|
+
|
|
224
|
+
## 9. Event Streaming Infrastructure
|
|
225
|
+
|
|
226
|
+
### What agent-mux has
|
|
227
|
+
- **WebSocket** client with reconnect, subscription fan-out, backpressure
|
|
228
|
+
- **SSE** (Server-Sent Events) with batched updates and debouncing
|
|
229
|
+
- **Smart polling** with backoff (shorter when fresh, longer when stale)
|
|
230
|
+
- **EventBuffer** — sorted sequence numbers for correct replay on reconnect
|
|
231
|
+
- **67 structured event types** across 18 categories
|
|
232
|
+
|
|
233
|
+
### What krate has
|
|
234
|
+
- `/api/watch/orgs/:org/*` — SSE endpoint (existing, non-agent)
|
|
235
|
+
- No agent-specific event streaming
|
|
236
|
+
|
|
237
|
+
### Gaps → Infrastructure
|
|
238
|
+
|
|
239
|
+
| Component | Purpose |
|
|
240
|
+
|-----------|---------|
|
|
241
|
+
| Agent event SSE channel | Extend existing watch endpoint with agent event types (dispatch status, session events, approval requests) |
|
|
242
|
+
| Event replay on reconnect | Buffer agent events with sequence numbers for catch-up |
|
|
243
|
+
|
|
244
|
+
---
|
|
245
|
+
|
|
246
|
+
## 10. Tool Rendering & Extensibility
|
|
247
|
+
|
|
248
|
+
### What agent-mux has
|
|
249
|
+
- **Extensible tool renderer registry** — `registerToolCallRenderer()` + `resolveToolCallRenderer()`
|
|
250
|
+
- **Built-in renderers** for 8 tools (bash, read, write, edit, glob, grep, web-fetch, web-search)
|
|
251
|
+
- **3 display modes** per renderer: compact, expanded, approvalPreview
|
|
252
|
+
- **MCP tool rendering** — separate card type for MCP-originated tools
|
|
253
|
+
|
|
254
|
+
### What krate has
|
|
255
|
+
- Nothing — no tool rendering
|
|
256
|
+
|
|
257
|
+
### Gaps → UI Infrastructure
|
|
258
|
+
|
|
259
|
+
The krate web console will need a tool rendering system when session detail views are built. This can import from `@a5c-ai/agent-mux-ui` or replicate the registry pattern.
|
|
260
|
+
|
|
261
|
+
---
|
|
262
|
+
|
|
263
|
+
## Summary: New CRDs to Add
|
|
264
|
+
|
|
265
|
+
### CONFIG_KINDS (etcd) — 5 new
|
|
266
|
+
1. **AgentAdapter** — adapter definition with transport and capabilities
|
|
267
|
+
2. **AgentTransportBinding** — connection config for adapter instance
|
|
268
|
+
3. **AgentProviderConfig** — model provider (Anthropic, OpenAI, etc.)
|
|
269
|
+
4. **AgentProject** — project grouping with board config
|
|
270
|
+
5. **AgentGatewayConfig** — runtime Agent Mux gateway settings
|
|
271
|
+
|
|
272
|
+
### AGGREGATED_KINDS (postgres) — 3 new
|
|
273
|
+
6. **AgentSessionTranscript** — durable chat transcript with pagination
|
|
274
|
+
7. **AgentSessionAttachment** — files attached to session messages
|
|
275
|
+
8. **AgentWorkspaceRuntime** — workspace runtime surface state
|
|
276
|
+
|
|
277
|
+
### CONFIG_KINDS (existing, to enrich)
|
|
278
|
+
- **AgentStack** — expand with adapter ref (instead of string), provider config ref, transport binding ref
|
|
279
|
+
- **AgentTriggerRule** — add cron schedule support, webhook template
|
|
280
|
+
|
|
281
|
+
---
|
|
282
|
+
|
|
283
|
+
## Summary: UI Experiences to Build
|
|
284
|
+
|
|
285
|
+
### Phase 1 (next implementation)
|
|
286
|
+
1. Session detail with chat transcript (core experience)
|
|
287
|
+
2. Run detail with task flow visualization
|
|
288
|
+
3. Enhanced approval inbox
|
|
289
|
+
|
|
290
|
+
### Phase 2
|
|
291
|
+
4. Kanban board for issues/projects
|
|
292
|
+
5. Workspace detail with file explorer
|
|
293
|
+
6. Rule builder with trigger source picker
|
|
294
|
+
|
|
295
|
+
### Phase 3
|
|
296
|
+
7. Multi-lane flow visualization
|
|
297
|
+
8. Tool rendering registry
|
|
298
|
+
9. Settings/gateway configuration UI
|