Skip to content

Commit dedbd2c

Browse files
committed
Merge remote-tracking branch 'origin/feat/admin-mfa-step-up' into feat/admin-worker-capability
# Conflicts: # packages/web-shared/src/lib/admin/privileged-inventory.ts
2 parents 0c10c41 + aebf018 commit dedbd2c

936 files changed

Lines changed: 388531 additions & 8480 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎.kilo/skills/kilo-mcp/SKILL.md‎

Lines changed: 60 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
name: kilo-mcp
3-
description: Use when working with the Kilo MCP server, the kilo_search and kilo_call tools, or when deciding which Kilo API area covers a task. Covers the search-then-call sequence, the query/mutation kind split and the mutation safety rule, the retry rule after an ambiguous transport error, and the top-level areas of services/kilo-mcp/catalog.json. Generated from that catalog — read the catalog for current detail.
3+
description: Use when working with the Kilo MCP server, its general kilo_search and kilo_call tools, or its parent-scoped child-session tools. Covers model ID discovery, child workspace launches and callbacks, API discovery, query/mutation safety, and the top-level catalog areas.
44
---
55

66
<!--
@@ -13,12 +13,14 @@ Then regenerate:
1313

1414
# Kilo MCP
1515

16-
The Kilo MCP server exposes the Kilo API through two tools, `kilo_search` and
17-
`kilo_call`.
16+
General account connections expose the Kilo API through two tools, `kilo_search`
17+
and `kilo_call`. Parent-scoped Cloud Agent connections instead expose the dedicated
18+
child-session tools described below. Use the tool names published by your client;
19+
it may prefix them with the MCP server name.
1820

1921
The changes are recorded in `services/kilo-mcp/CHANGELOG.md`.
2022

21-
## How to use it
23+
## General API connections
2224

2325
1. **Search first.** `kilo_search` finds catalog endpoints. Never call a path from memory, and never guess one from this skill.
2426
2. **Call one path.** `kilo_call` takes a `path` from the catalog and an `input` that satisfies that row's `inputSchema`. A path outside the catalog and an input that violates the schema are rejected before any request is made.
@@ -36,6 +38,59 @@ The catalog is `services/kilo-mcp/catalog.json`. This skill is generated from
3638
it, and the catalog wins when the two disagree — read the catalog, not this
3739
file, for current detail.
3840

41+
## Parent-scoped child sessions
42+
43+
These connections publish `search_models`, `generate_message_id`, `spawn_session`,
44+
`list_child_sessions`, `get_session`, `get_message_result`, `send_message`, `interrupt_session`,
45+
`list_folders`, and `assign_workspace_to_folder`.
46+
They do not expose API `search` or `call`.
47+
48+
1. Launch only when the user explicitly requests a Cloud Agent session. Children have independent sandboxes/worktrees; use local tools for this worktree.
49+
2. Resolve the requested model or established user preference with `search_models`; copy its exact `id`. Otherwise browse with `{}` and ask the user to choose. No implicit default: `isPreferred` is a recommendation. Omit `variant` unless requested; pass only a supported variant separately. Never guess or substitute IDs. `alias_target` names a floating alias's target; discovery does not prove policy approval.
50+
3. Call `spawn_session` with repository, self-contained task prompt, mode, exact model ID, and fresh UUID `operationKey`. Include constraints, verification, and Git/PR instructions. It starts immediately with multi-chat support. Organization and `createdOnPlatform` are inherited, not caller inputs.
51+
4. Set `callbackTarget: { "url": "session:parent" }` for completion/failure/interruption messages; omit for none. Prefer callbacks over polling; never wait in a tool for one.
52+
5. `list_child_sessions` recovers IDs and `initialMessageId` when recorded; `get_session` checks status; `get_message_result` reads outcomes. Before a new authorized follow-up, call `generate_message_id({})` and copy its `messageId` into `send_message`. This generates no work. Retain it for retries; never replace it after an uncertain send. Initial tasks use `initialMessageId`; report if absent, never invent it. Admission, queued/running, and missing results are not completion. `interrupt_session` is for authorized Stop.
53+
6. `list_folders` discovers existing folder IDs, not workspace membership. Use `assign_workspace_to_folder` with `folderId` and the child's `cloudAgentSessionId`/`worktreeId` from listing or status. It files the whole worktree, including sibling chats; `folderId: null` unfiles it. Only this parent's child workspaces are movable. Folder creation, editing, deletion, and reordering are unavailable.
54+
7. After an ambiguous mutation failure, reconcile state before retrying. Keep the same `operationKey` or follow-up `messageId` for that same submission.
55+
8. Omitted `autoCommit` requests no automatic commit/push; follow-ups do not inherit it. Set `true` per authorized message. If publication is forbidden, set `false` and prohibit it in the prompt: `false` cannot restrict agent Git tools or cancel another prompt's request. Request PR creation in the prompt.
56+
57+
Authority/callbacks belong to the canonical parent (original root chat), even from
58+
siblings. Only direct children are manageable, never unrelated sessions or the
59+
parent. No grandchildren.
60+
61+
### Examples
62+
63+
Pseudocode; `modelId` comes from `search_models`; `launchUuid` is a fresh retained UUID.
64+
65+
```js
66+
const child = await spawn_session({
67+
githubRepo: 'owner/repo', model: modelId, mode: 'code',
68+
prompt: 'Fix the bug, run focused tests, and report. Do not commit, push, or create a PR.',
69+
operationKey: launchUuid, autoCommit: false,
70+
callbackTarget: { url: 'session:parent' },
71+
});
72+
```
73+
74+
After the callback, retrieve `initialMessageId` via `list_child_sessions` and pass
75+
it with `child.cloudAgentSessionId` to `get_message_result`. Authorized follow-up:
76+
77+
```js
78+
const { messageId } = await generate_message_id({});
79+
await send_message({
80+
cloudAgentSessionId: child.cloudAgentSessionId, messageId,
81+
payload: { type: 'prompt', prompt: followUpTask, mode: 'code', model: modelId },
82+
autoCommit: false,
83+
});
84+
```
85+
86+
After the callback, or as one bounded check:
87+
88+
```js
89+
await get_message_result({ cloudAgentSessionId: child.cloudAgentSessionId, messageId });
90+
```
91+
92+
Retain publication constraints in `followUpTask`.
93+
3994
## Reporting feedback and bugs
4095

4196
Report bugs, confusing behavior, and feature requests about the Kilo platform
@@ -92,6 +147,7 @@ exist as an org-scoped mirror under `organizations`, for example
92147
- `securityAuditLog`
93148
- `slack`
94149
- `spendAlerts`
150+
- `stepUp`
95151
- `todos`
96152
- `unifiedSessions`
97153
- `usageAnalytics`

‎.oxlintrc.json‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -206,6 +206,7 @@
206206
"services/model-eval-ingest/**/*.ts",
207207
"services/notifications/**/*.ts",
208208
"services/o11y/**/*.ts",
209+
"services/scim-sync/**/*.ts",
209210
"services/security-auto-analysis/**/*.ts",
210211
"services/security-sync/**/*.ts",
211212
"services/session-ingest/**/*.ts",

0 commit comments

Comments
 (0)