@agentshouse/kit 0.1.0-alpha.36 → 0.1.0-alpha.37
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/README.md +38 -2277
- package/bootstrap.json +5 -5
- package/docs/configuration.md +104 -0
- package/docs/google.md +33 -0
- package/docs/linux.md +46 -0
- package/docs/macos.md +26 -0
- package/docs/telegram.md +29 -0
- package/docs/windows.md +37 -0
- package/package.json +1 -1
package/bootstrap.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
|
-
"version": "0.1.0-alpha.
|
|
3
|
+
"version": "0.1.0-alpha.37",
|
|
4
4
|
"hosts": {
|
|
5
5
|
"linux": {
|
|
6
|
-
"command": "bash <(curl -fsSL https://github.com/agentshouse/kit/releases/download/v0.1.0-alpha.
|
|
6
|
+
"command": "bash <(curl -fsSL https://github.com/agentshouse/kit/releases/download/v0.1.0-alpha.37/connect-linux.sh)",
|
|
7
7
|
"asset": {
|
|
8
8
|
"name": "connect-linux.sh",
|
|
9
|
-
"url": "https://github.com/agentshouse/kit/releases/download/v0.1.0-alpha.
|
|
9
|
+
"url": "https://github.com/agentshouse/kit/releases/download/v0.1.0-alpha.37/connect-linux.sh"
|
|
10
10
|
},
|
|
11
11
|
"workspace": {
|
|
12
12
|
"argument": "--workspace",
|
|
@@ -14,10 +14,10 @@
|
|
|
14
14
|
}
|
|
15
15
|
},
|
|
16
16
|
"windows": {
|
|
17
|
-
"command": "& ([scriptblock]::Create((irm https://github.com/agentshouse/kit/releases/download/v0.1.0-alpha.
|
|
17
|
+
"command": "& ([scriptblock]::Create((irm https://github.com/agentshouse/kit/releases/download/v0.1.0-alpha.37/connect-windows.ps1)))",
|
|
18
18
|
"asset": {
|
|
19
19
|
"name": "connect-windows.ps1",
|
|
20
|
-
"url": "https://github.com/agentshouse/kit/releases/download/v0.1.0-alpha.
|
|
20
|
+
"url": "https://github.com/agentshouse/kit/releases/download/v0.1.0-alpha.37/connect-windows.ps1"
|
|
21
21
|
},
|
|
22
22
|
"workspace": {
|
|
23
23
|
"argument": "--workspace",
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
# Configuration
|
|
2
|
+
|
|
3
|
+
`kit.json` in Kit home is the one configuration file. Every section below is
|
|
4
|
+
required; a file that omits one is refused.
|
|
5
|
+
|
|
6
|
+
```json
|
|
7
|
+
{
|
|
8
|
+
"availability": "continuous",
|
|
9
|
+
"execution_authority": "allow",
|
|
10
|
+
"migrators": [],
|
|
11
|
+
"instances": [
|
|
12
|
+
{
|
|
13
|
+
"id": "acme",
|
|
14
|
+
"preset": "custom",
|
|
15
|
+
"services": [
|
|
16
|
+
{
|
|
17
|
+
"service": "notes",
|
|
18
|
+
"source_ref": "src_acme_notes",
|
|
19
|
+
"rooms": ["work-room"],
|
|
20
|
+
"backfill": { "days": 30 },
|
|
21
|
+
"connector": {
|
|
22
|
+
"command": ["/usr/local/bin/acme-export", "--ndjson"],
|
|
23
|
+
"timeout_ms": 120000,
|
|
24
|
+
"environment": { "ACME_REGION": "eu" },
|
|
25
|
+
"secrets": {
|
|
26
|
+
"ACME_TOKEN": { "environment": "ACME_TOKEN_SOURCE" },
|
|
27
|
+
"ACME_KEY": { "file": "/run/secrets/acme-key" }
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
]
|
|
32
|
+
}
|
|
33
|
+
],
|
|
34
|
+
"clients": [
|
|
35
|
+
{
|
|
36
|
+
"kind": "claude-code",
|
|
37
|
+
"settings": "/home/ada/.claude/settings.json"
|
|
38
|
+
}
|
|
39
|
+
],
|
|
40
|
+
"host": null,
|
|
41
|
+
"skills": true
|
|
42
|
+
}
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
- `availability`: `"continuous"` for a computer that stays online,
|
|
46
|
+
`"intermittent"` for a laptop.
|
|
47
|
+
- `execution_authority`: `"allow"` or `"refuse"`, this computer's answer to
|
|
48
|
+
every permission request an agent makes.
|
|
49
|
+
- `instances`: your own sources, each with a `custom` connector (below).
|
|
50
|
+
- `clients`: agent clients outside Kit whose settings get House's session-start
|
|
51
|
+
hook. `claude-code` is the one supported kind; declare `[]` for none.
|
|
52
|
+
- `migrators`: `[]` unless you run a migrator.
|
|
53
|
+
- `host`: `null` unless this computer reports its capacity to House.
|
|
54
|
+
- `skills`: `true` accepts the Skill set, `false` declines it. The connect
|
|
55
|
+
command sets it.
|
|
56
|
+
|
|
57
|
+
Agents and agent CLIs are chosen in House, not here. Send your changes to
|
|
58
|
+
House with:
|
|
59
|
+
|
|
60
|
+
```sh
|
|
61
|
+
kit apply
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
## Secrets
|
|
65
|
+
|
|
66
|
+
Never write a secret into `kit.json`. Under `secrets`, name an environment
|
|
67
|
+
variable (`{ "environment": "NAME" }`) or a file (`{ "file": "/path" }`); Kit
|
|
68
|
+
passes its value to the connector only.
|
|
69
|
+
|
|
70
|
+
## Custom connectors
|
|
71
|
+
|
|
72
|
+
A connector is your own command. Kit runs it without a shell, with only `PATH`,
|
|
73
|
+
`environment` and the resolved secrets, and never gives it a House credential.
|
|
74
|
+
It must finish within `timeout_ms` (at most 120000).
|
|
75
|
+
|
|
76
|
+
Kit writes one request line to its standard input:
|
|
77
|
+
|
|
78
|
+
```json
|
|
79
|
+
{ "contract": "2026-08-22", "instance": "acme", "cursor": null, "limit": 100 }
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
The command prints NDJSON: `item` lines, then at most one `cursor` line.
|
|
83
|
+
`cursor` in the next request is the last one it printed.
|
|
84
|
+
|
|
85
|
+
```
|
|
86
|
+
{"type":"item","namespace":"acme/notes","native_object_id":"note-91","native_version":"7","observed_at":"2026-08-20T09:15:00.000Z","body":"the note","author":"ada","url":"https://acme.example/notes/91","attachments":[{"url":"https://acme.example/files/1","name":"plan.pdf"}]}
|
|
87
|
+
{"type":"cursor","cursor":"page-2"}
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
`namespace`, `native_object_id`, `observed_at` and `body` are required. An
|
|
91
|
+
attachment is a `url`, or a local `file` with its exact `path`, `bytes`,
|
|
92
|
+
`sha256` and optional `media_type`. A malformed line, a non-zero exit or a
|
|
93
|
+
timeout rejects the whole run and nothing is delivered.
|
|
94
|
+
|
|
95
|
+
`backfill` bounds the first capture: `{ "days": 30 }`, `{ "count": 500 }` or
|
|
96
|
+
`{ "all": true }`.
|
|
97
|
+
|
|
98
|
+
```sh
|
|
99
|
+
kit source capture acme # capture every service of an instance now
|
|
100
|
+
kit source capture acme notes # one service
|
|
101
|
+
kit source status acme # health, cursor, gaps and unsaved files
|
|
102
|
+
kit source retry-files acme # save files a capture could not save
|
|
103
|
+
kit source reset acme notes # start again from the backfill boundary
|
|
104
|
+
```
|
package/docs/google.md
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# Google sources
|
|
2
|
+
|
|
3
|
+
You add Gmail, Calendar and Drive sources in the House App: an account name you
|
|
4
|
+
choose, the service, the Rooms it goes to, and how much history the first
|
|
5
|
+
capture takes. Nothing is configured on this computer.
|
|
6
|
+
|
|
7
|
+
Each service captures, read-only:
|
|
8
|
+
|
|
9
|
+
- Gmail: every message except Spam and Trash.
|
|
10
|
+
- Calendar: the account's primary calendar.
|
|
11
|
+
- Drive: the files the account owns.
|
|
12
|
+
|
|
13
|
+
## Signing in
|
|
14
|
+
|
|
15
|
+
Kit ships no Google OAuth client. Each account signs in with your own:
|
|
16
|
+
|
|
17
|
+
1. In your Google Cloud project, create an OAuth client of type **Desktop app**
|
|
18
|
+
and enable the API of each service you use.
|
|
19
|
+
2. When House asks, enter the client id and secret on its page.
|
|
20
|
+
3. Approve Google's consent. Google then sends the browser to a
|
|
21
|
+
`http://127.0.0.1:<port>/` address that does not load; copy that whole
|
|
22
|
+
address and paste it into the House page.
|
|
23
|
+
|
|
24
|
+
Kit then captures each signed-in source every 15 minutes.
|
|
25
|
+
|
|
26
|
+
```sh
|
|
27
|
+
kit source capture work # capture every source of the account now
|
|
28
|
+
kit source capture work gmail # one service
|
|
29
|
+
kit source status work
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
If `kit source status` reports `api_disabled`, enable the API it names in your
|
|
33
|
+
Google Cloud project.
|
package/docs/linux.md
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# Linux
|
|
2
|
+
|
|
3
|
+
Run the Linux command from the [README](../README.md#connect-a-computer) in a
|
|
4
|
+
terminal. It needs `bash`, `curl` and Docker Engine.
|
|
5
|
+
|
|
6
|
+
## Docker Engine
|
|
7
|
+
|
|
8
|
+
- A Docker Engine that already answers is used as it is, on any distribution.
|
|
9
|
+
- On Ubuntu 22.04, 24.04 or 26.04 LTS, anything missing is installed from
|
|
10
|
+
Docker's own apt repository through `sudo`, which asks for your password.
|
|
11
|
+
The command starts the `docker` service and adds you to the `docker` group.
|
|
12
|
+
- Ubuntu packages that conflict with Docker's (`docker.io`, `docker-compose`,
|
|
13
|
+
`docker-compose-v2`, `docker-doc`, `docker-buildx`, `podman-docker`,
|
|
14
|
+
`containerd`, `runc`) are not removed for you: remove them and run again.
|
|
15
|
+
- On any other distribution, install Docker Engine first.
|
|
16
|
+
|
|
17
|
+
A new `docker` group membership applies from your next sign-in. If a later run
|
|
18
|
+
says so, sign out and back in, then run the command again.
|
|
19
|
+
|
|
20
|
+
## What it creates
|
|
21
|
+
|
|
22
|
+
- `~/.house-kit`: Kit home, with your credential and `kit.json`.
|
|
23
|
+
- `~/AgentsHouse`: your workspace, mounted in the container as
|
|
24
|
+
`/agents/house`. Pass `--workspace /absolute/path` to use another directory.
|
|
25
|
+
|
|
26
|
+
Both are readable only by you. The credential is never printed.
|
|
27
|
+
|
|
28
|
+
## Updating
|
|
29
|
+
|
|
30
|
+
Run a newer release's command. While an Agent session is still running, the
|
|
31
|
+
update names it and leaves Kit as it is; run the command again once it ends.
|
|
32
|
+
Your credential, Kit home and workspace are kept.
|
|
33
|
+
|
|
34
|
+
## Pushing a working copy
|
|
35
|
+
|
|
36
|
+
From a directory under your workspace, such as a Room copy under
|
|
37
|
+
`working-copies/rooms/`, run:
|
|
38
|
+
|
|
39
|
+
```sh
|
|
40
|
+
bash <(curl -fsSL …/connect-linux.sh) house git push --owner
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## A House on this computer
|
|
44
|
+
|
|
45
|
+
`--house http://127.0.0.1:<port>` or `--house http://localhost:<port>` runs Kit
|
|
46
|
+
on the host network so it can reach a House served on this computer.
|
package/docs/macos.md
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# macOS
|
|
2
|
+
|
|
3
|
+
Run the Linux command from the [README](../README.md#connect-a-computer) in
|
|
4
|
+
Terminal. It works on Apple silicon and Intel Macs, including from a terminal
|
|
5
|
+
running under Rosetta.
|
|
6
|
+
|
|
7
|
+
## Docker Desktop
|
|
8
|
+
|
|
9
|
+
Kit on a Mac needs Docker Desktop.
|
|
10
|
+
|
|
11
|
+
- A Docker Desktop that already answers is used as it is.
|
|
12
|
+
- Other engines, such as Colima or OrbStack, are refused.
|
|
13
|
+
- Without `/Applications/Docker.app`, the command downloads Docker Desktop for
|
|
14
|
+
your chip and installs it through `sudo`, which asks for your password.
|
|
15
|
+
- The command opens Docker Desktop and waits up to five minutes while you
|
|
16
|
+
accept its terms or finish what its window asks. If it is still not ready,
|
|
17
|
+
run the command again.
|
|
18
|
+
|
|
19
|
+
## Notes
|
|
20
|
+
|
|
21
|
+
- A `--workspace` directory must be one Docker Desktop shares, such as one
|
|
22
|
+
under `/Users`.
|
|
23
|
+
- A House on this computer (`--house http://127.0.0.1:<port>`) needs host
|
|
24
|
+
networking enabled in Docker Desktop's settings.
|
|
25
|
+
|
|
26
|
+
Everything else works as on [Linux](linux.md).
|
package/docs/telegram.md
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# Telegram bot
|
|
2
|
+
|
|
3
|
+
Kit can connect your own Telegram bot so your House conversations appear there.
|
|
4
|
+
The bot token stays on this computer; House never receives it.
|
|
5
|
+
|
|
6
|
+
1. Create a bot with BotFather and turn on its Threaded Mode.
|
|
7
|
+
2. Send the bot one ordinary private message outside any topic, so Kit can
|
|
8
|
+
tell the bot is yours.
|
|
9
|
+
3. Connect it, entering the token at the hidden prompt:
|
|
10
|
+
|
|
11
|
+
```sh
|
|
12
|
+
kit telegram connect
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
4. Serve it; this keeps running until you stop it:
|
|
16
|
+
|
|
17
|
+
```sh
|
|
18
|
+
kit telegram serve
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
To release the bot:
|
|
22
|
+
|
|
23
|
+
```sh
|
|
24
|
+
kit telegram disconnect
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Run each command through the connect command as the
|
|
28
|
+
[README](../README.md#run-a-kit-command) shows. Only one computer can serve a
|
|
29
|
+
given bot.
|
package/docs/windows.md
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# Windows
|
|
2
|
+
|
|
3
|
+
Run the Windows command from the [README](../README.md#connect-a-computer) in
|
|
4
|
+
the 64-bit Windows PowerShell. It needs Windows 11 23H2 (build 22631) or later
|
|
5
|
+
on `amd64`. Windows Server, Windows 10 and Windows on ARM are refused.
|
|
6
|
+
|
|
7
|
+
## WSL 2 and Docker Desktop
|
|
8
|
+
|
|
9
|
+
- A Docker Desktop that already runs Linux containers on WSL 2 is used as it is.
|
|
10
|
+
- Without WSL, the command runs `wsl --install --no-distribution`. Approve the
|
|
11
|
+
administrator prompt, restart Windows, and run the command again. An old WSL
|
|
12
|
+
is updated the same way.
|
|
13
|
+
- Without Docker Desktop, the command downloads it and installs it for your
|
|
14
|
+
account only, without administrator rights.
|
|
15
|
+
- The command starts Docker Desktop and waits up to five minutes while you
|
|
16
|
+
accept its terms or finish what its window asks. If it is still not ready,
|
|
17
|
+
run the command again.
|
|
18
|
+
- Windows containers, the Hyper-V engine and other Docker engines are refused.
|
|
19
|
+
|
|
20
|
+
## What it creates
|
|
21
|
+
|
|
22
|
+
- `%USERPROFILE%\.house-kit`: Kit home.
|
|
23
|
+
- `%USERPROFILE%\AgentsHouse`: your workspace. Pass
|
|
24
|
+
`--workspace 'D:\Agents'` to use another directory.
|
|
25
|
+
|
|
26
|
+
Both are restricted to your Windows account. A path containing a comma is
|
|
27
|
+
refused.
|
|
28
|
+
|
|
29
|
+
## Notes
|
|
30
|
+
|
|
31
|
+
- Append `kit` and a command to run it, as on [Linux](linux.md). Each run
|
|
32
|
+
leaves its exit status in `$LASTEXITCODE`.
|
|
33
|
+
- When a command asks for a secret, such as a Telegram bot token, keep its
|
|
34
|
+
output on the terminal: with output redirected, what you type is echoed.
|
|
35
|
+
- A House on this computer needs host networking enabled in Docker Desktop's
|
|
36
|
+
settings.
|
|
37
|
+
- This bootstrap has not yet been run on a real Windows computer.
|