koppler 0.2.0 → 0.2.1
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 +17 -17
- package/dist/.built +1 -1
- package/dist/core/migrations/stack/0.2.0.js +40 -7
- package/dist/core/migrations/stack/0.2.0.js.map +1 -1
- package/dist/core/migrations/stack/0.2.1.js +7 -0
- package/dist/core/migrations/stack/0.2.1.js.map +1 -0
- package/dist/core/migrations/stack/index.js +3 -2
- package/dist/core/migrations/stack/index.js.map +1 -1
- package/dist/engine/early-log.js +39 -0
- package/dist/engine/early-log.js.map +1 -0
- package/dist/engine/listen.js +23 -0
- package/dist/engine/listen.js.map +1 -1
- package/dist/engine/processes.js +19 -2
- package/dist/engine/processes.js.map +1 -1
- package/dist/engine/up.js +28 -0
- package/dist/engine/up.js.map +1 -1
- package/dist/koppler.mjs +10 -2
- package/dist/koppler.mjs.map +1 -1
- package/dist/page/assets/index-CD2dld8S.css +1 -0
- package/dist/page/assets/index-CcNVMT0j.js +44 -0
- package/dist/page/index.html +2 -2
- package/package.json +2 -2
- package/skills/koppler-run/SKILL.md +2 -2
- package/skills/koppler-run/VERSION +1 -1
- package/dist/page/assets/index-C1AShWL6.css +0 -1
- package/dist/page/assets/index-daRDhJFi.js +0 -43
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Koppler
|
|
2
2
|
|
|
3
|
-
<img alt="koppler: plug your local code into the real stack. npm install -g koppler, on macOS and Linux" src="https://raw.githubusercontent.com/evan-mcgeek/koppler/v0.2.
|
|
3
|
+
<img alt="koppler: plug your local code into the real stack. npm install -g koppler, on macOS and Linux" src="https://raw.githubusercontent.com/evan-mcgeek/koppler/v0.2.1/docs/images/banner.png">
|
|
4
4
|
|
|
5
5
|
Plug your local code into the real stack.
|
|
6
6
|
The apps you change run on your own machine, the rest keeps calling the deployed environment, and you never learn how each backend is run.
|
|
@@ -12,7 +12,7 @@ Everything you leave unplugged keeps calling the deployed environment you chose.
|
|
|
12
12
|
Koppler is for local development.
|
|
13
13
|
It helps most when you work on one app (a mobile app, a front end, one API) and need a few of its neighbours running next to it.
|
|
14
14
|
|
|
15
|
-
<img alt="One feature, Checkout, worked on across four apps: the mobile app and web shop cabled to a local Orders API, which calls a local Payments API; each runs its feature/checkout branch, Orders API has its deployed QA database and a local SQS queue, two apps carry a note for the agent, and everything runs" src="https://raw.githubusercontent.com/evan-mcgeek/koppler/v0.2.
|
|
15
|
+
<img alt="One feature, Checkout, worked on across four apps: the mobile app and web shop cabled to a local Orders API, which calls a local Payments API; each runs its feature/checkout branch, Orders API has its deployed QA database and a local SQS queue, two apps carry a note for the agent, and everything runs" src="https://raw.githubusercontent.com/evan-mcgeek/koppler/v0.2.1/docs/images/board.png">
|
|
16
16
|
|
|
17
17
|
## How it works
|
|
18
18
|
|
|
@@ -24,7 +24,7 @@ It helps most when you work on one app (a mobile app, a front end, one API) and
|
|
|
24
24
|
- **Stop and revert.** One click stops what Koppler started and undoes every temporary change. Apps you started yourself are left alone.
|
|
25
25
|
- **Secrets stay yours.** You store them in the macOS Keychain (on Linux, in files only you can read); Koppler starts an app with them and never shows them.
|
|
26
26
|
|
|
27
|
-
<img alt="The review before a Run on QA: the four apps that start on feature/checkout with their notes for the agent, what keeps calling deployed QA, and the tunnel that opens" src="https://raw.githubusercontent.com/evan-mcgeek/koppler/v0.2.
|
|
27
|
+
<img alt="The review before a Run on QA: the four apps that start on feature/checkout with their notes for the agent, what keeps calling deployed QA, and the tunnel that opens" src="https://raw.githubusercontent.com/evan-mcgeek/koppler/v0.2.1/docs/images/review.png" width="520">
|
|
28
28
|
|
|
29
29
|
## Install
|
|
30
30
|
|
|
@@ -35,7 +35,7 @@ koppler canvas
|
|
|
35
35
|
```
|
|
36
36
|
|
|
37
37
|
`koppler init` finds your repos and your team's stack (or starts a new one), and `koppler canvas` opens the canvas in your browser.
|
|
38
|
-
[Getting started](https://github.com/evan-mcgeek/koppler/blob/v0.2.
|
|
38
|
+
[Getting started](https://github.com/evan-mcgeek/koppler/blob/v0.2.1/docs/getting-started.md) walks through the first run.
|
|
39
39
|
|
|
40
40
|
## The agent add-on
|
|
41
41
|
|
|
@@ -50,12 +50,12 @@ In Claude Code, add the plugin:
|
|
|
50
50
|
```
|
|
51
51
|
|
|
52
52
|
For any other agent (GitHub Copilot CLI, VS Code, OpenCode), or Claude Code without the plugin, run `koppler agent init`.
|
|
53
|
-
It links the [skill](https://github.com/evan-mcgeek/koppler/blob/v0.2.
|
|
53
|
+
It links the [skill](https://github.com/evan-mcgeek/koppler/blob/v0.2.1/plugin/skills/koppler-run) into each agent it finds and registers `koppler mcp`, its MCP server.
|
|
54
54
|
Either way, the agent drives the `koppler` command, so install the app first.
|
|
55
55
|
|
|
56
56
|
## Requirements
|
|
57
57
|
|
|
58
|
-
- macOS (secrets live in the Keychain) or Linux (secrets live in private files, without the per-read prompt; see [security](https://github.com/evan-mcgeek/koppler/blob/v0.2.
|
|
58
|
+
- macOS (secrets live in the Keychain) or Linux (secrets live in private files, without the per-read prompt; see [security](https://github.com/evan-mcgeek/koppler/blob/v0.2.1/docs/security.md)).
|
|
59
59
|
- git and Node 22 or newer.
|
|
60
60
|
|
|
61
61
|
Everything else depends on your stack (the .NET SDK, Flutter, Docker, the AWS CLI, ...).
|
|
@@ -63,21 +63,21 @@ Everything else depends on your stack (the .NET SDK, Flutter, Docker, the AWS CL
|
|
|
63
63
|
|
|
64
64
|
## Documentation
|
|
65
65
|
|
|
66
|
-
- [Getting started](https://github.com/evan-mcgeek/koppler/blob/v0.2.
|
|
67
|
-
- [The canvas](https://github.com/evan-mcgeek/koppler/blob/v0.2.
|
|
68
|
-
- [App kinds](https://github.com/evan-mcgeek/koppler/blob/v0.2.
|
|
69
|
-
- [Secrets and safety](https://github.com/evan-mcgeek/koppler/blob/v0.2.
|
|
70
|
-
- [Commands](https://github.com/evan-mcgeek/koppler/blob/v0.2.
|
|
71
|
-
- [Stack format](https://github.com/evan-mcgeek/koppler/blob/v0.2.
|
|
72
|
-
- [Releasing](https://github.com/evan-mcgeek/koppler/blob/v0.2.
|
|
66
|
+
- [Getting started](https://github.com/evan-mcgeek/koppler/blob/v0.2.1/docs/getting-started.md): install, the first stack, the first run.
|
|
67
|
+
- [The canvas](https://github.com/evan-mcgeek/koppler/blob/v0.2.1/docs/canvas.md): boards, cables, queues, environments, Run and Stop.
|
|
68
|
+
- [App kinds](https://github.com/evan-mcgeek/koppler/blob/v0.2.1/docs/app-kinds.md): what Koppler can run and how.
|
|
69
|
+
- [Secrets and safety](https://github.com/evan-mcgeek/koppler/blob/v0.2.1/docs/security.md): how secrets are kept, and what an agent may and may not do.
|
|
70
|
+
- [Commands](https://github.com/evan-mcgeek/koppler/blob/v0.2.1/docs/commands.md): every `koppler` command.
|
|
71
|
+
- [Stack format](https://github.com/evan-mcgeek/koppler/blob/v0.2.1/plugin/skills/koppler-run/references/stack.md): the `stack.json` reference.
|
|
72
|
+
- [Releasing](https://github.com/evan-mcgeek/koppler/blob/v0.2.1/docs/releasing.md): how a version tag publishes Koppler to npm.
|
|
73
73
|
|
|
74
74
|
## Repository
|
|
75
75
|
|
|
76
76
|
| Folder | What |
|
|
77
77
|
|---|---|
|
|
78
|
-
| [`app/`](https://github.com/evan-mcgeek/koppler/blob/v0.2.
|
|
79
|
-
| [`plugin/`](https://github.com/evan-mcgeek/koppler/blob/v0.2.
|
|
80
|
-
| [`docs/`](https://github.com/evan-mcgeek/koppler/blob/v0.2.
|
|
78
|
+
| [`app/`](https://github.com/evan-mcgeek/koppler/blob/v0.2.1/app) | The `koppler` package: the command, the engine, the canvas and its local server |
|
|
79
|
+
| [`plugin/`](https://github.com/evan-mcgeek/koppler/blob/v0.2.1/plugin) | The agent add-on: a Claude Code plugin with the `koppler-run` skill |
|
|
80
|
+
| [`docs/`](https://github.com/evan-mcgeek/koppler/blob/v0.2.1/docs) | User documentation |
|
|
81
81
|
|
|
82
82
|
Koppler runs from `app/dist/`, which `npm run build` makes from `app/src/` (`npm install` first).
|
|
83
83
|
While working on Koppler itself, link `app/scripts/koppler-dev.mjs` as `koppler`: it rebuilds when the source is newer, then runs the build.
|
|
@@ -100,4 +100,4 @@ See the [project board](https://github.com/users/evan-mcgeek/projects/2) for wha
|
|
|
100
100
|
|
|
101
101
|
## License
|
|
102
102
|
|
|
103
|
-
[MIT](https://github.com/evan-mcgeek/koppler/blob/v0.2.
|
|
103
|
+
[MIT](https://github.com/evan-mcgeek/koppler/blob/v0.2.1/LICENSE)
|
package/dist/.built
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
2026-10-
|
|
1
|
+
2026-10-19T23:11:13.547Z
|
|
@@ -1,20 +1,36 @@
|
|
|
1
1
|
// 0.2.0: databases are named once under `databases` and apps `uses` them, where before each app stated a tunnel to
|
|
2
2
|
// each database (and the hosts entry its settings dial) among its own needs.
|
|
3
3
|
import { withDatabases } from "../../databases.js";
|
|
4
|
-
import { tunnelKind } from "../../ports.js";
|
|
5
4
|
const PORTS = { 5432: 'postgres', 3306: 'mysql', 6379: 'valkey', 6380: 'valkey' };
|
|
6
5
|
const ENGINE = /postgres|mysql|aurora|rds|cluster|valkey|redis|elasticache|database|\bdb\b|cache/i;
|
|
6
|
+
/** The fields of a tunnel to a database that each have a place once it is a database; one with any other stays. */
|
|
7
|
+
const MOVED = new Set(['tunnel', 'port', 'what', 'cmd', 'note']);
|
|
7
8
|
/** A tunnel to a database or cache: by its port, or by what it says it reaches. One a setting points at stays. */
|
|
8
|
-
const isDatabase = (need) =>
|
|
9
|
+
const isDatabase = (need) => Object.keys(need).every(field => MOVED.has(field)) &&
|
|
10
|
+
!!need.tunnel &&
|
|
9
11
|
!!need.port &&
|
|
10
|
-
!need.env &&
|
|
11
|
-
!need.connectsAs &&
|
|
12
12
|
(!!PORTS[need.port] || ENGINE.test(`${need.tunnel} ${need.what ?? ''}`));
|
|
13
13
|
const kindOf = (need) => /redis/i.test(need.tunnel ?? '')
|
|
14
14
|
? 'redis'
|
|
15
15
|
: (PORTS[need.port ?? 0] ?? (/mysql/i.test(need.what ?? '') ? 'mysql' : 'postgres'));
|
|
16
16
|
/** A hosts entry for a database endpoint, not for an app. */
|
|
17
17
|
const isEndpoint = (need) => !!need.hosts && !need.tunnel && ENGINE.test(need.hosts);
|
|
18
|
+
const ENVIRONMENTS = new Set(['dev', 'qa', 'test', 'uat', 'stg', 'staging', 'prod', 'production', 'internal']);
|
|
19
|
+
/**
|
|
20
|
+
* A database's name: what its tunnel said it reaches ("Orders (Postgres)" is Orders), or, when that says only "Database"
|
|
21
|
+
* or "Cache", its host's first label without the environment's words.
|
|
22
|
+
*/
|
|
23
|
+
const nameOf = (need) => {
|
|
24
|
+
const said = (need.what ?? '').replace(/\s*\([^)]*\)$/, '');
|
|
25
|
+
if (said && !/^(database|cache|tunnel)$/i.test(said))
|
|
26
|
+
return said;
|
|
27
|
+
const words = (need.tunnel ?? '')
|
|
28
|
+
.split('.')[0]
|
|
29
|
+
?.split('-')
|
|
30
|
+
.filter(word => word && !ENVIRONMENTS.has(word)) ?? [];
|
|
31
|
+
const text = words.join(' ');
|
|
32
|
+
return text ? text.charAt(0).toUpperCase() + text.slice(1) : 'Database';
|
|
33
|
+
};
|
|
18
34
|
const slug = (text) => text
|
|
19
35
|
.toLowerCase()
|
|
20
36
|
.replace(/[^a-z0-9]+/g, '-')
|
|
@@ -46,8 +62,7 @@ function up(raw, say) {
|
|
|
46
62
|
let key = byHost.get(host);
|
|
47
63
|
if (!key) {
|
|
48
64
|
// "Orders (Postgres)" is the database Orders; its kind is said apart.
|
|
49
|
-
const
|
|
50
|
-
const name = said.replace(/\s*\([^)]*\)$/, '') || said;
|
|
65
|
+
const name = nameOf(need);
|
|
51
66
|
key = slug(name);
|
|
52
67
|
while (databases[key])
|
|
53
68
|
key = `${key}-2`;
|
|
@@ -64,6 +79,7 @@ function up(raw, say) {
|
|
|
64
79
|
(app.uses ??= {})[key] ??= {};
|
|
65
80
|
changes.push(`${app.name ?? id} uses ${key} instead of its own tunnel to ${host}`);
|
|
66
81
|
}
|
|
82
|
+
const notes = {};
|
|
67
83
|
// On each environment, the tunnel of the same port, in the same order, reaches the same database there.
|
|
68
84
|
for (const env of own.length ? stack.envs : []) {
|
|
69
85
|
const list = env === first ? app.prereqs : app.envs?.[env]?.prereqs;
|
|
@@ -78,15 +94,32 @@ function up(raw, say) {
|
|
|
78
94
|
const database = databases[key];
|
|
79
95
|
if (!there || !database)
|
|
80
96
|
continue;
|
|
81
|
-
const reach = env === first
|
|
97
|
+
const reach = env === first
|
|
98
|
+
? database
|
|
99
|
+
: ((database.envs ??= {})[env] ??= {
|
|
100
|
+
tunnel: there.tunnel,
|
|
101
|
+
port: there.port,
|
|
102
|
+
...(there.cmd && { cmd: there.cmd }),
|
|
103
|
+
});
|
|
82
104
|
if (reach['tunnel'] !== there.tunnel || reach['port'] !== there.port)
|
|
83
105
|
continue;
|
|
84
106
|
list.splice(list.indexOf(there), 1);
|
|
107
|
+
// What an app said about its tunnel is about how it uses the database: it goes with its use.
|
|
108
|
+
if (there.note)
|
|
109
|
+
(notes[key] ??= []).push([env, there.note]);
|
|
85
110
|
const users = dials.get(`${key}@${env}`) ?? [];
|
|
86
111
|
users.push({ list, endpoint: own.length === 1 && endpoints.length === 1 ? endpoints[0] : undefined });
|
|
87
112
|
dials.set(`${key}@${env}`, users);
|
|
88
113
|
}
|
|
89
114
|
}
|
|
115
|
+
// One note for every environment, or each said with its environment.
|
|
116
|
+
for (const [key, said] of Object.entries(notes)) {
|
|
117
|
+
const kept = [...new Set(said.map(([, note]) => note))];
|
|
118
|
+
const note = kept.length === 1 ? kept[0] : said.map(([env, one]) => `${env.toUpperCase()}: ${one}`).join('\n');
|
|
119
|
+
const use = app.uses?.[key];
|
|
120
|
+
if (use && note)
|
|
121
|
+
use['note'] = note;
|
|
122
|
+
}
|
|
90
123
|
}
|
|
91
124
|
// The name a database's apps dial goes with it when every one of them dials it.
|
|
92
125
|
for (const [at, users] of dials) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"0.2.0.js","sourceRoot":"","sources":["../../../../src/core/migrations/stack/0.2.0.ts"],"names":[],"mappings":"AAAA,mHAAmH;AACnH,6EAA6E;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"0.2.0.js","sourceRoot":"","sources":["../../../../src/core/migrations/stack/0.2.0.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { databasesNamedOnce } from "./0.2.0.js";
|
|
2
|
+
export const databasesNamedOnceAgain = {
|
|
3
|
+
version: '0.2.1',
|
|
4
|
+
about: 'Names each database once where 0.2.0 left the stack alone, keeping each tunnel command and note',
|
|
5
|
+
up: databasesNamedOnce.up,
|
|
6
|
+
};
|
|
7
|
+
//# sourceMappingURL=0.2.1.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"0.2.1.js","sourceRoot":"","sources":["../../../../src/core/migrations/stack/0.2.1.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEhD,MAAM,CAAC,MAAM,uBAAuB,GAAc;IAChD,OAAO,EAAE,OAAO;IAChB,KAAK,EAAE,iGAAiG;IACxG,EAAE,EAAE,kBAAkB,CAAC,EAAE;CAC1B,CAAC"}
|
|
@@ -2,11 +2,12 @@
|
|
|
2
2
|
// file named for the version that introduces it, and the format's version moves to it.
|
|
3
3
|
import { migrate } from "../run.js";
|
|
4
4
|
import { databasesNamedOnce } from "./0.2.0.js";
|
|
5
|
+
import { databasesNamedOnceAgain } from "./0.2.1.js";
|
|
5
6
|
export const STACK_FORMAT = {
|
|
6
7
|
name: 'The stack',
|
|
7
8
|
key: 'koppler',
|
|
8
|
-
version: '0.2.
|
|
9
|
-
migrations: [databasesNamedOnce],
|
|
9
|
+
version: '0.2.1',
|
|
10
|
+
migrations: [databasesNamedOnce, databasesNamedOnceAgain],
|
|
10
11
|
};
|
|
11
12
|
/** A stack as written, in this Koppler's format: what every reader of the stack works with. */
|
|
12
13
|
export const migrateStack = (raw) => migrate(raw, STACK_FORMAT);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/migrations/stack/index.ts"],"names":[],"mappings":"AAAA,sHAAsH;AACtH,uFAAuF;AACvF,OAAO,EAAE,OAAO,EAAyB,MAAM,WAAW,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/migrations/stack/index.ts"],"names":[],"mappings":"AAAA,sHAAsH;AACtH,uFAAuF;AACvF,OAAO,EAAE,OAAO,EAAyB,MAAM,WAAW,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAErD,MAAM,CAAC,MAAM,YAAY,GAAW;IAClC,IAAI,EAAE,WAAW;IACjB,GAAG,EAAE,SAAS;IACd,OAAO,EAAE,OAAO;IAChB,UAAU,EAAE,CAAC,kBAAkB,EAAE,uBAAuB,CAAC;CAC1D,CAAC;AAEF,+FAA+F;AAC/F,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,GAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
// An app can start and answer, and still log errors in its first seconds: a failed migration, a missing setting, a
|
|
2
|
+
// connection refused. After a run starts apps, their logs are read for a while for those.
|
|
3
|
+
import fs from 'node:fs';
|
|
4
|
+
import { redact } from "../scrub.js";
|
|
5
|
+
import { alive, readRecord, sleep } from "./processes.js";
|
|
6
|
+
/** How long after its start an app's log is read, in seconds. */
|
|
7
|
+
export const earlyLogSeconds = () => Number(process.env['KOPPLER_EARLY_LOG'] ?? 30);
|
|
8
|
+
const PROBLEM = /\b(error|exception|fatal|unhandled|panic|traceback|refused|failed)\b|^\s*(fail|crit):/i;
|
|
9
|
+
const NOT_ONE = /\b(no|0) (errors?|exceptions?|failures?)\b|\berrors?: 0\b/i;
|
|
10
|
+
/** The lines of a log that tell of a problem, secrets masked, at most `most`. */
|
|
11
|
+
export function launchProblems(text, most = 5) {
|
|
12
|
+
return text
|
|
13
|
+
.split('\n')
|
|
14
|
+
.map(line => line.trim())
|
|
15
|
+
.filter(line => line && PROBLEM.test(line) && !NOT_ONE.test(line))
|
|
16
|
+
.slice(0, most)
|
|
17
|
+
.map(line => redact(line).slice(0, 240));
|
|
18
|
+
}
|
|
19
|
+
/** What each app's first seconds showed: nothing wrong, the lines that tell of a problem, or that it stopped. */
|
|
20
|
+
export async function readEarlyLogs(ids) {
|
|
21
|
+
const seconds = earlyLogSeconds();
|
|
22
|
+
const records = ids.flatMap(id => {
|
|
23
|
+
const record = readRecord(id);
|
|
24
|
+
return record ? [{ id, record }] : [];
|
|
25
|
+
});
|
|
26
|
+
const last = Math.max(0, ...records.map(({ record }) => Date.parse(record.startedAt) + seconds * 1000 - Date.now()));
|
|
27
|
+
await sleep(last);
|
|
28
|
+
return Object.fromEntries(records.map(({ id, record }) => {
|
|
29
|
+
let text = '';
|
|
30
|
+
try {
|
|
31
|
+
text = fs.readFileSync(record.log, 'utf8');
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
// No log to read: nothing to say about it.
|
|
35
|
+
}
|
|
36
|
+
return [id, { stopped: !alive(record), lines: launchProblems(text) }];
|
|
37
|
+
}));
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=early-log.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"early-log.js","sourceRoot":"","sources":["../../src/engine/early-log.ts"],"names":[],"mappings":"AAAA,mHAAmH;AACnH,0FAA0F;AAC1F,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAE1D,iEAAiE;AACjE,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC,CAAC;AAEpF,MAAM,OAAO,GAAG,wFAAwF,CAAC;AACzG,MAAM,OAAO,GAAG,4DAA4D,CAAC;AAE7E,iFAAiF;AACjF,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,IAAI,GAAG,CAAC;IACnD,OAAO,IAAI;SACR,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SACxB,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACjE,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC;SACd,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AAC7C,CAAC;AAED,iHAAiH;AACjH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,GAAa;IAC/C,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;IAClC,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;QAC/B,MAAM,MAAM,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC;QAC9B,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACxC,CAAC,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IACrH,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;IAClB,OAAO,MAAM,CAAC,WAAW,CACvB,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;QAC7B,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,IAAI,CAAC;YACH,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAC7C,CAAC;QAAC,MAAM,CAAC;YACP,2CAA2C;QAC7C,CAAC;QACD,OAAO,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACxE,CAAC,CAAC,CACH,CAAC;AACJ,CAAC"}
|
package/dist/engine/listen.js
CHANGED
|
@@ -51,6 +51,29 @@ export function finishTaken() {
|
|
|
51
51
|
return false;
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
|
+
/**
|
|
55
|
+
* Run inside an agent session, a command that sets up the canvas (starting it, a new stack or board, switching stacks)
|
|
56
|
+
* ends by telling that session to connect, unless it already is: only the session itself can listen, in the background,
|
|
57
|
+
* for the canvas's requests to reach it.
|
|
58
|
+
*/
|
|
59
|
+
export function askToConnect() {
|
|
60
|
+
const session = process.env['CLAUDE_CODE_SESSION_ID'];
|
|
61
|
+
if (!session)
|
|
62
|
+
return;
|
|
63
|
+
let current = null;
|
|
64
|
+
try {
|
|
65
|
+
current = JSON.parse(fs.readFileSync(path.join(tempDir(), 'listener.json'), 'utf8'));
|
|
66
|
+
}
|
|
67
|
+
catch {
|
|
68
|
+
// Nobody connected yet.
|
|
69
|
+
}
|
|
70
|
+
const connected = !current?.disconnected && (!!listenerPid(current) || !!current?.busy);
|
|
71
|
+
if (connected && current?.agentSession === session)
|
|
72
|
+
return;
|
|
73
|
+
console.log(connected
|
|
74
|
+
? "CONNECT: another agent session gets the canvas's requests. To have them here, run `koppler listen take` in the background in this session."
|
|
75
|
+
: "CONNECT: no agent session gets the canvas's requests yet. Run `koppler listen take` in the background in this session, now, so they reach you.");
|
|
76
|
+
}
|
|
54
77
|
export async function listen(argv) {
|
|
55
78
|
const temp = tempDir();
|
|
56
79
|
const inbox = path.join(temp, 'prompts.jsonl');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listen.js","sourceRoot":"","sources":["../../src/engine/listen.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"listen.js","sourceRoot":"","sources":["../../src/engine/listen.ts"],"names":[],"mappings":"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"}
|
package/dist/engine/processes.js
CHANGED
|
@@ -6,13 +6,13 @@ import https from 'node:https';
|
|
|
6
6
|
import path from 'node:path';
|
|
7
7
|
import { execFileSync, spawn } from 'node:child_process';
|
|
8
8
|
import { fail, Failure } from "../failure.js";
|
|
9
|
-
import { CODE, logsDir, stateDir } from "../paths.js";
|
|
9
|
+
import { CODE, logsDir, stateDir, tempDir } from "../paths.js";
|
|
10
10
|
import { appEnv } from "../safe-env.js";
|
|
11
11
|
import { redact } from "../scrub.js";
|
|
12
12
|
import { keepRunLog } from "./run-logs.js";
|
|
13
13
|
import { keepPreviousLog } from "./session.js";
|
|
14
14
|
import { APP_ID } from "../ids.js";
|
|
15
|
-
import { writeJson } from "../json-files.js";
|
|
15
|
+
import { readJson, writeJson } from "../json-files.js";
|
|
16
16
|
const PROCS = path.join(stateDir(), 'procs');
|
|
17
17
|
/** What a process started by Koppler can be called. */
|
|
18
18
|
export const NAME = APP_ID;
|
|
@@ -326,11 +326,28 @@ export async function restartOne(record) {
|
|
|
326
326
|
await startProcess(start);
|
|
327
327
|
return `${stopped}, started again`;
|
|
328
328
|
}
|
|
329
|
+
/** A stopped app's card shows no steps: the agent's checklist for it and the run's steps for it go; others' stay. */
|
|
330
|
+
function forgetSteps(name) {
|
|
331
|
+
const status = path.join(tempDir(), 'status.json');
|
|
332
|
+
const shown = readJson(status, null);
|
|
333
|
+
const app = shown?.apps?.[name];
|
|
334
|
+
if (shown && app && 'steps' in app) {
|
|
335
|
+
const { steps: _gone, ...rest } = app;
|
|
336
|
+
writeJson(status, { ...shown, apps: { ...shown.apps, [name]: rest } });
|
|
337
|
+
}
|
|
338
|
+
const file = path.join(tempDir(), 'progress.json');
|
|
339
|
+
const progress = readJson(file, null);
|
|
340
|
+
if (progress?.apps && Object.hasOwn(progress.apps, name)) {
|
|
341
|
+
const { [name]: _gone, ...apps } = progress.apps;
|
|
342
|
+
writeJson(file, { ...progress, apps });
|
|
343
|
+
}
|
|
344
|
+
}
|
|
329
345
|
export async function stopOne(record) {
|
|
330
346
|
const forget = () => {
|
|
331
347
|
// Some apps outlive their process, e.g. a mobile app on a simulator: close them too.
|
|
332
348
|
runAll(record.onStop);
|
|
333
349
|
fs.rmSync(recordPath(record.name), { force: true });
|
|
350
|
+
forgetSteps(record.name);
|
|
334
351
|
};
|
|
335
352
|
if (!alive(record)) {
|
|
336
353
|
forget();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processes.js","sourceRoot":"","sources":["../../src/engine/processes.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"processes.js","sourceRoot":"","sources":["../../src/engine/processes.ts"],"names":[],"mappings":"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"}
|
package/dist/engine/up.js
CHANGED
|
@@ -33,6 +33,7 @@ import { appOn } from "../core/stack.js";
|
|
|
33
33
|
import { databasesOf, localValue } from "../core/databases.js";
|
|
34
34
|
import { localAddresses } from "./local-databases.js";
|
|
35
35
|
import { opens } from "../server/cable-test.js";
|
|
36
|
+
import { earlyLogSeconds, readEarlyLogs } from "./early-log.js";
|
|
36
37
|
import os from 'node:os';
|
|
37
38
|
const USAGE = 'usage: koppler up <app...> [--cable <caller>:<callee>]... [--env <env>] | --board "<name>" | --run <id>';
|
|
38
39
|
const running = (name) => {
|
|
@@ -465,6 +466,26 @@ async function startQueues(up, chosen) {
|
|
|
465
466
|
* Apps the others call start first, so a caller finds its callee answering, and an app's `after` (a migration that
|
|
466
467
|
* runs to completion) before it; a loop just starts in board order.
|
|
467
468
|
*/
|
|
469
|
+
const FIRST = `First ${String(earlyLogSeconds())} s`;
|
|
470
|
+
/** The first seconds of each app the run started: its log read for errors, a failure left for the agent with its lines. */
|
|
471
|
+
async function readFirstSeconds(up, ids) {
|
|
472
|
+
if (!ids.length)
|
|
473
|
+
return;
|
|
474
|
+
const seconds = String(earlyLogSeconds());
|
|
475
|
+
console.log(`Reading the first ${seconds} s of ${ids.map(id => nameOf(up.stack, id)).join(', ')}…`);
|
|
476
|
+
for (const [id, { stopped, lines }] of Object.entries(await readEarlyLogs(ids))) {
|
|
477
|
+
const name = nameOf(up.stack, id);
|
|
478
|
+
if (!stopped && !lines.length) {
|
|
479
|
+
up.step(id, FIRST, 'done', `No errors in its first ${seconds} s.`);
|
|
480
|
+
continue;
|
|
481
|
+
}
|
|
482
|
+
const said = stopped
|
|
483
|
+
? `It stopped within ${seconds} s of starting.`
|
|
484
|
+
: `Its log shows problems in its first ${seconds} s.`;
|
|
485
|
+
up.step(id, FIRST, 'failed', [said, ...lines].join('\n'));
|
|
486
|
+
up.left.push(`${name}: ${said} Read its log (koppler logs ${id})${lines.length ? `:\n${lines.map(line => ` ${line}`).join('\n')}` : '.'}`);
|
|
487
|
+
}
|
|
488
|
+
}
|
|
468
489
|
async function startApps(up) {
|
|
469
490
|
const { ids, env, edges, node, step } = up;
|
|
470
491
|
const order = [];
|
|
@@ -483,6 +504,8 @@ async function startApps(up) {
|
|
|
483
504
|
};
|
|
484
505
|
ids.forEach(visit);
|
|
485
506
|
const yours = [];
|
|
507
|
+
// The apps this run starts itself, whose first seconds are read for problems once all have started.
|
|
508
|
+
const started = [];
|
|
486
509
|
// An app whose start failed, and why; the apps that need it are not started, unless a call says to start anyway.
|
|
487
510
|
const down = new Map();
|
|
488
511
|
const needs = (id) => [
|
|
@@ -532,6 +555,10 @@ async function startApps(up) {
|
|
|
532
555
|
continue;
|
|
533
556
|
}
|
|
534
557
|
step(id, 'Start', 'done', up.stack.apps[id]?.once ? 'Finished.' : 'Running.');
|
|
558
|
+
if (runIn !== 'mock' && !up.stack.apps[id]?.once) {
|
|
559
|
+
started.push(id);
|
|
560
|
+
step(id, FIRST, 'todo', 'Reading its log for problems.');
|
|
561
|
+
}
|
|
535
562
|
}
|
|
536
563
|
}
|
|
537
564
|
if (yours.length)
|
|
@@ -550,6 +577,7 @@ async function startApps(up) {
|
|
|
550
577
|
else if (!wants && watcher)
|
|
551
578
|
console.log(await stopOne(watcher));
|
|
552
579
|
}
|
|
580
|
+
await readFirstSeconds(up, started);
|
|
553
581
|
if (down.size)
|
|
554
582
|
throw new Failure(`Not everything started:\n${[...down].map(([id, why]) => ` ${nameOf(up.stack, id)}: ${why.split('\n')[0] ?? ''}`).join('\n')}`);
|
|
555
583
|
}
|