lastlight 0.3.0 → 0.5.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.
Files changed (87) hide show
  1. package/README.md +17 -6
  2. package/deploy/entrypoint.sh +21 -6
  3. package/deploy/sandbox-entrypoint.sh +1 -1
  4. package/dist/admin/routes.d.ts +5 -0
  5. package/dist/admin/routes.js +9 -0
  6. package/dist/admin/routes.js.map +1 -1
  7. package/dist/cli-server.d.ts +3 -1
  8. package/dist/cli-server.js +20 -2
  9. package/dist/cli-server.js.map +1 -1
  10. package/dist/cli.js +23 -2
  11. package/dist/cli.js.map +1 -1
  12. package/dist/config.d.ts +12 -1
  13. package/dist/config.js +26 -6
  14. package/dist/config.js.map +1 -1
  15. package/dist/connectors/messaging/base.js +22 -9
  16. package/dist/connectors/messaging/base.js.map +1 -1
  17. package/dist/connectors/slack/connector.d.ts +62 -9
  18. package/dist/connectors/slack/connector.js +216 -63
  19. package/dist/connectors/slack/connector.js.map +1 -1
  20. package/dist/connectors/slack/connector.test.d.ts +1 -0
  21. package/dist/connectors/slack/connector.test.js +135 -0
  22. package/dist/connectors/slack/connector.test.js.map +1 -0
  23. package/dist/connectors/types.d.ts +7 -0
  24. package/dist/engine/agent-executor.d.ts +32 -10
  25. package/dist/engine/agent-executor.js +239 -1
  26. package/dist/engine/agent-executor.js.map +1 -1
  27. package/dist/engine/agent-executor.seam.test.d.ts +1 -0
  28. package/dist/engine/agent-executor.seam.test.js +57 -0
  29. package/dist/engine/agent-executor.seam.test.js.map +1 -0
  30. package/dist/engine/dispatcher.d.ts +13 -0
  31. package/dist/engine/dispatcher.js +26 -7
  32. package/dist/engine/dispatcher.js.map +1 -1
  33. package/dist/engine/dispatcher.test.js.map +1 -1
  34. package/dist/engine/message-batcher.d.ts +32 -0
  35. package/dist/engine/message-batcher.js +109 -0
  36. package/dist/engine/message-batcher.js.map +1 -0
  37. package/dist/engine/message-batcher.test.d.ts +1 -0
  38. package/dist/engine/message-batcher.test.js +109 -0
  39. package/dist/engine/message-batcher.test.js.map +1 -0
  40. package/dist/engine/profiles.d.ts +9 -0
  41. package/dist/engine/profiles.js.map +1 -1
  42. package/dist/evals-api.d.ts +24 -0
  43. package/dist/evals-api.js +22 -0
  44. package/dist/evals-api.js.map +1 -0
  45. package/dist/fork-cli.d.ts +30 -0
  46. package/dist/fork-cli.js +240 -0
  47. package/dist/fork-cli.js.map +1 -0
  48. package/dist/fork-cli.test.d.ts +1 -0
  49. package/dist/fork-cli.test.js +109 -0
  50. package/dist/fork-cli.test.js.map +1 -0
  51. package/dist/index.js +43 -4
  52. package/dist/index.js.map +1 -1
  53. package/dist/overlay-assets.d.ts +20 -0
  54. package/dist/overlay-assets.js +114 -0
  55. package/dist/overlay-assets.js.map +1 -0
  56. package/dist/overlay-assets.test.d.ts +1 -0
  57. package/dist/overlay-assets.test.js +75 -0
  58. package/dist/overlay-assets.test.js.map +1 -0
  59. package/dist/sandbox/command-exec.integration.test.d.ts +1 -0
  60. package/dist/sandbox/command-exec.integration.test.js +183 -0
  61. package/dist/sandbox/command-exec.integration.test.js.map +1 -0
  62. package/dist/sandbox/docker.d.ts +32 -0
  63. package/dist/sandbox/docker.js +109 -4
  64. package/dist/sandbox/docker.js.map +1 -1
  65. package/dist/setup.js +9 -44
  66. package/dist/setup.js.map +1 -1
  67. package/dist/workflows/loader.test.js +83 -0
  68. package/dist/workflows/loader.test.js.map +1 -1
  69. package/dist/workflows/phase-executor.d.ts +28 -3
  70. package/dist/workflows/phase-executor.js +170 -45
  71. package/dist/workflows/phase-executor.js.map +1 -1
  72. package/dist/workflows/phase-executor.test.js +64 -1
  73. package/dist/workflows/phase-executor.test.js.map +1 -1
  74. package/dist/workflows/runner.test.js +32 -27
  75. package/dist/workflows/runner.test.js.map +1 -1
  76. package/dist/workflows/schema.d.ts +20 -0
  77. package/dist/workflows/schema.js +72 -2
  78. package/dist/workflows/schema.js.map +1 -1
  79. package/package.json +12 -2
  80. package/sandbox.Dockerfile +7 -0
  81. package/skills/browser-qa/scripts/agent-browser.mjs +15 -0
  82. package/skills/demo/SKILL.md +45 -19
  83. package/skills/demo/scripts/compose-demo.sh +77 -39
  84. package/workflows/examples/bash-smoke.yaml +41 -0
  85. package/workflows/prompts/demo.md +27 -5
  86. package/workflows/qa-test.yaml +1 -1
  87. package/workflows/verify.yaml +1 -1
@@ -0,0 +1,240 @@
1
+ /**
2
+ * Host-local `lastlight fork <target>` — copy a built-in workflow (plus every
3
+ * prompt and skill its phases reference) or the agent-context files
4
+ * (`soul.md` and friends) into the deployment overlay so they can be edited
5
+ * per-deployment.
6
+ *
7
+ * Like `lastlight server …`, this operates on files in a working directory —
8
+ * not over HTTP. The overlay wins by logical name at startup (see
9
+ * `src/workflows/loader.ts`), so a forked copy under `instance/` transparently
10
+ * shadows the built-in once the agent restarts.
11
+ *
12
+ * lastlight fork build # build.yaml + its prompts + skills → instance/
13
+ * lastlight fork agent-context # soul.md / rules.md / security.md → instance/
14
+ * lastlight fork agent-context soul.md # just one context file (explicit)
15
+ * lastlight fork # list forkable targets (and what's already forked)
16
+ *
17
+ * Targets are explicit: a bare name is a workflow, agent-context is forked only
18
+ * via the literal `agent-context` target — never guessed from a filename.
19
+ *
20
+ * Importing `./workflows/loader.js` + `./workflows/schema.js` is safe here:
21
+ * both are pure (fs + yaml); their only `../config.js` import is type-only and
22
+ * erased at runtime, so no harness/DB is pulled into the CLI.
23
+ */
24
+ import fs from "node:fs";
25
+ import path from "node:path";
26
+ import chalk from "chalk";
27
+ import { configureWorkflowAssets, getWorkflow, getWorkflowOrigin, listAgentWorkflows, resolveSkillPaths, } from "./workflows/loader.js";
28
+ import { phaseSkillNames } from "./workflows/schema.js";
29
+ import { resolveServerHome } from "./cli-config.js";
30
+ import { enumerateOverlayAssets } from "./overlay-assets.js";
31
+ // ── path resolution ────────────────────────────────────────────────────────
32
+ function isDir(p) {
33
+ try {
34
+ return fs.statSync(p).isDirectory();
35
+ }
36
+ catch {
37
+ return false;
38
+ }
39
+ }
40
+ /** A directory that ships the built-in assets we fork *from*. */
41
+ function hasBuiltins(dir) {
42
+ return isDir(path.join(dir, "workflows")) && isDir(path.join(dir, "skills"));
43
+ }
44
+ /** A directory that looks like a deployment overlay (config + secrets), not a
45
+ * core checkout (which keeps config under config/default.yaml, no secrets/). */
46
+ function looksLikeOverlay(dir) {
47
+ return (!hasBuiltins(dir) &&
48
+ (fs.existsSync(path.join(dir, "config.yaml")) || isDir(path.join(dir, "secrets"))));
49
+ }
50
+ /**
51
+ * Resolve where to read built-ins from and where to write the fork.
52
+ * - An explicit `--home` wins outright → `<home>` + `<home>/instance`.
53
+ * - Standing inside an overlay → write here, read built-ins from the parent
54
+ * checkout (or the resolved server home).
55
+ * - Standing in a core checkout → write to `<checkout>/instance`.
56
+ * - Otherwise → fall back to `LASTLIGHT_HOME` / the saved / default server home.
57
+ */
58
+ export function resolveForkTarget(opts) {
59
+ // An explicit flag is unambiguous intent — it overrides cwd auto-detection.
60
+ if (opts.home) {
61
+ const home = path.resolve(opts.home);
62
+ return { coreRoot: home, instanceDir: path.join(home, "instance") };
63
+ }
64
+ const cwd = process.cwd();
65
+ if (looksLikeOverlay(cwd)) {
66
+ const parent = path.dirname(cwd);
67
+ const coreRoot = hasBuiltins(parent) ? parent : resolveServerHome(opts.home);
68
+ return { coreRoot, instanceDir: cwd };
69
+ }
70
+ if (hasBuiltins(cwd)) {
71
+ return { coreRoot: cwd, instanceDir: path.join(cwd, "instance") };
72
+ }
73
+ const home = resolveServerHome(opts.home);
74
+ return { coreRoot: home, instanceDir: path.join(home, "instance") };
75
+ }
76
+ /** Copy a single file, honouring skip-existing / `--force`. */
77
+ function copyFile(src, destAbs, rel, force) {
78
+ const exists = fs.existsSync(destAbs);
79
+ if (exists && !force)
80
+ return { rel, action: "skipped" };
81
+ fs.mkdirSync(path.dirname(destAbs), { recursive: true });
82
+ fs.copyFileSync(src, destAbs);
83
+ return { rel, action: exists ? "overwritten" : "copied" };
84
+ }
85
+ /** Copy a directory tree, honouring skip-existing / `--force`. */
86
+ function copyDir(src, destAbs, rel, force) {
87
+ const exists = fs.existsSync(destAbs);
88
+ if (exists && !force)
89
+ return { rel, action: "skipped" };
90
+ fs.mkdirSync(path.dirname(destAbs), { recursive: true });
91
+ fs.cpSync(src, destAbs, { recursive: true, force: true });
92
+ return { rel, action: exists ? "overwritten" : "copied" };
93
+ }
94
+ // ── fork actions ───────────────────────────────────────────────────────────
95
+ /** Copy a workflow YAML + every prompt and skill its phases reference. */
96
+ function forkWorkflow(t, name, force) {
97
+ const def = getWorkflow(name); // throws if unknown — caller lists + exits
98
+ const origin = getWorkflowOrigin(name);
99
+ const results = [];
100
+ // The workflow YAML itself (origin handles .yaml vs .yml).
101
+ if (origin) {
102
+ const file = path.basename(origin.filePath);
103
+ results.push(copyFile(origin.filePath, path.join(t.instanceDir, "workflows", file), `workflows/${file}`, force));
104
+ }
105
+ // Prompt templates referenced by phases (skip empties + templated refs).
106
+ const prompts = new Set();
107
+ const skillNames = new Set();
108
+ for (const phase of def.phases) {
109
+ for (const ref of [phase.prompt, phase.loop?.on_request_changes.fix_prompt, phase.loop?.on_request_changes.re_review_prompt]) {
110
+ if (typeof ref === "string" && ref.length > 0 && !ref.includes("{{"))
111
+ prompts.add(ref);
112
+ }
113
+ for (const s of phaseSkillNames(phase)) {
114
+ if (!s.includes("{{"))
115
+ skillNames.add(s);
116
+ }
117
+ }
118
+ for (const rel of [...prompts].sort()) {
119
+ const src = path.join(t.coreRoot, "workflows", rel);
120
+ if (!fs.existsSync(src))
121
+ continue; // overlay-only prompt, nothing to fork
122
+ results.push(copyFile(src, path.join(t.instanceDir, "workflows", rel), `workflows/${rel}`, force));
123
+ }
124
+ for (const skill of [...skillNames].sort()) {
125
+ let src;
126
+ try {
127
+ src = resolveSkillPaths([skill])[0];
128
+ }
129
+ catch {
130
+ continue; // overlay-only or missing skill
131
+ }
132
+ results.push(copyDir(src, path.join(t.instanceDir, "skills", skill), `skills/${skill}/`, force));
133
+ }
134
+ return results;
135
+ }
136
+ /** Copy one or more agent-context files (soul.md / rules.md / security.md). */
137
+ function forkAgentContext(t, files, force) {
138
+ return files.map((file) => {
139
+ const src = path.join(t.coreRoot, "agent-context", file);
140
+ return copyFile(src, path.join(t.instanceDir, "agent-context", file), `agent-context/${file}`, force);
141
+ });
142
+ }
143
+ /** Built-in agent-context filenames (e.g. soul.md, rules.md, security.md). */
144
+ function builtinAgentContext(coreRoot) {
145
+ const dir = path.join(coreRoot, "agent-context");
146
+ if (!isDir(dir))
147
+ return [];
148
+ return fs.readdirSync(dir).filter((n) => n.endsWith(".md")).sort();
149
+ }
150
+ // ── reporting ──────────────────────────────────────────────────────────────
151
+ function printSummary(t, results) {
152
+ const sym = {
153
+ copied: chalk.green("+ copied"),
154
+ overwritten: chalk.yellow("↻ overwritten"),
155
+ skipped: chalk.dim("• skipped (exists)"),
156
+ };
157
+ console.log(chalk.bold(`Forked into ${t.instanceDir}\n`));
158
+ for (const r of results) {
159
+ console.log(` ${sym[r.action]} ${r.rel}`);
160
+ }
161
+ const copied = results.filter((r) => r.action !== "skipped").length;
162
+ const skipped = results.length - copied;
163
+ console.log(chalk.dim(`\n${copied} written, ${skipped} skipped.` +
164
+ (skipped ? " Re-run with --force to overwrite." : "")));
165
+ console.log(chalk.dim("\nNext: edit the files in instance/, commit the overlay, then ") +
166
+ chalk.cyan("lastlight server restart agent") +
167
+ chalk.dim("."));
168
+ }
169
+ /** `lastlight fork` with no target — list forkable workflows + context files. */
170
+ function listForkable(t) {
171
+ configureWorkflowAssets({ builtInRoot: t.coreRoot });
172
+ const forked = new Set(enumerateOverlayAssets({ coreRoot: t.coreRoot, overlayRoot: t.instanceDir }).map((a) => `${a.type}:${a.name}`));
173
+ const mark = (key) => (forked.has(key) ? chalk.green(" (forked)") : "");
174
+ console.log(chalk.bold("Forkable workflows") + chalk.dim(` → ${t.instanceDir}\n`));
175
+ for (const def of [...listAgentWorkflows()].sort((a, b) => a.name.localeCompare(b.name))) {
176
+ console.log(` ${def.name}${mark(`workflow:${def.name}`)}`);
177
+ }
178
+ const context = builtinAgentContext(t.coreRoot);
179
+ if (context.length) {
180
+ console.log(chalk.bold("\nForkable agent-context") + chalk.dim(" (lastlight fork agent-context)\n"));
181
+ for (const file of context)
182
+ console.log(` ${file}${mark(`agent-context:${file}`)}`);
183
+ }
184
+ console.log(chalk.dim("\nFork one with: ") + chalk.cyan("lastlight fork <name>"));
185
+ }
186
+ // ── entry point ────────────────────────────────────────────────────────────
187
+ /**
188
+ * `lastlight fork [target] [sub]` — dispatch on an explicit target.
189
+ * - (none) → list forkable targets
190
+ * - "agent-context" [file] → all context files, or one named file
191
+ * - "<workflow>" → workflow + its prompts + skills
192
+ * Agent-context is never inferred from a bare filename — it's only reached via
193
+ * the literal `agent-context` target.
194
+ */
195
+ export async function fork(args, opts) {
196
+ const [target, sub] = args;
197
+ const t = resolveForkTarget(opts);
198
+ if (!hasBuiltins(t.coreRoot)) {
199
+ console.error(chalk.red(`No lastlight checkout at ${t.coreRoot} (expected workflows/ + skills/).`) +
200
+ chalk.dim(`\n Run from a checkout, pass --home <dir>, or set up the server home first.`));
201
+ process.exit(1);
202
+ }
203
+ if (!target) {
204
+ listForkable(t);
205
+ return;
206
+ }
207
+ configureWorkflowAssets({ builtInRoot: t.coreRoot });
208
+ // agent-context — `fork agent-context [file]`. All files, or one named file.
209
+ if (target === "agent-context") {
210
+ const available = builtinAgentContext(t.coreRoot);
211
+ if (!available.length) {
212
+ console.error(chalk.red("No agent-context files found."));
213
+ process.exit(1);
214
+ }
215
+ let files = available;
216
+ if (sub) {
217
+ const file = sub.endsWith(".md") ? sub : `${sub}.md`;
218
+ if (!available.includes(file)) {
219
+ console.error(chalk.red(`Unknown agent-context file: ${sub}`) + chalk.dim(`\n Available: ${available.join(", ")}`));
220
+ process.exit(1);
221
+ }
222
+ files = [file];
223
+ }
224
+ printSummary(t, forkAgentContext(t, files, opts.force ?? false));
225
+ return;
226
+ }
227
+ // Otherwise treat it as a workflow name.
228
+ try {
229
+ getWorkflow(target);
230
+ }
231
+ catch {
232
+ const names = listAgentWorkflows().map((d) => d.name).sort();
233
+ console.error(chalk.red(`Unknown fork target: ${target}`) +
234
+ chalk.dim(`\n Workflows: ${names.join(", ")}`) +
235
+ chalk.dim(`\n Agent-context: "agent-context" (optionally a file, e.g. agent-context soul.md).`));
236
+ process.exit(1);
237
+ }
238
+ printSummary(t, forkWorkflow(t, target, opts.force ?? false));
239
+ }
240
+ //# sourceMappingURL=fork-cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fork-cli.js","sourceRoot":"","sources":["../src/fork-cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,109 @@
1
+ import { describe, it, expect, beforeEach, afterEach, vi } from "vitest";
2
+ import { mkdtempSync, mkdirSync, writeFileSync, readFileSync, existsSync } from "fs";
3
+ import { join } from "path";
4
+ import { tmpdir } from "os";
5
+ import { fork, resolveForkTarget } from "./fork-cli.js";
6
+ const WORKFLOW_YAML = `
7
+ kind: build
8
+ name: build
9
+ description: "test build"
10
+ phases:
11
+ - name: phase_0
12
+ type: context
13
+ - name: architect
14
+ prompt: prompts/architect.md
15
+ skill: building
16
+ - name: reviewer
17
+ prompt: prompts/reviewer.md
18
+ skills: [code-review, building]
19
+ loop:
20
+ max_cycles: 2
21
+ on_request_changes:
22
+ fix_prompt: prompts/fix.md
23
+ re_review_prompt: prompts/re-reviewer.md
24
+ `;
25
+ function makeCore() {
26
+ const root = mkdtempSync(join(tmpdir(), "fork-cli-"));
27
+ const core = join(root, "core");
28
+ mkdirSync(join(core, "workflows", "prompts"), { recursive: true });
29
+ mkdirSync(join(core, "skills", "building", "scripts"), { recursive: true });
30
+ mkdirSync(join(core, "skills", "code-review"), { recursive: true });
31
+ mkdirSync(join(core, "agent-context"), { recursive: true });
32
+ writeFileSync(join(core, "workflows", "build.yaml"), WORKFLOW_YAML);
33
+ for (const p of ["architect", "reviewer", "fix", "re-reviewer"]) {
34
+ writeFileSync(join(core, "workflows", "prompts", `${p}.md`), `# ${p} (core)`);
35
+ }
36
+ writeFileSync(join(core, "skills", "building", "SKILL.md"), "# building (core)");
37
+ writeFileSync(join(core, "skills", "building", "scripts", "run.sh"), "echo hi");
38
+ writeFileSync(join(core, "skills", "code-review", "SKILL.md"), "# code-review (core)");
39
+ writeFileSync(join(core, "agent-context", "soul.md"), "# soul (core)");
40
+ writeFileSync(join(core, "agent-context", "rules.md"), "# rules (core)");
41
+ return core;
42
+ }
43
+ describe("fork-cli", () => {
44
+ let core;
45
+ let logSpy;
46
+ let errSpy;
47
+ let exitSpy;
48
+ beforeEach(() => {
49
+ core = makeCore();
50
+ logSpy = vi.spyOn(console, "log").mockImplementation(() => { });
51
+ errSpy = vi.spyOn(console, "error").mockImplementation(() => { });
52
+ exitSpy = vi.spyOn(process, "exit").mockImplementation(((code) => {
53
+ throw new Error(`process.exit(${code})`);
54
+ }));
55
+ });
56
+ afterEach(() => {
57
+ logSpy.mockRestore();
58
+ errSpy.mockRestore();
59
+ exitSpy.mockRestore();
60
+ });
61
+ it("resolveForkTarget honours an explicit --home over cwd", () => {
62
+ const t = resolveForkTarget({ home: "/tmp/somewhere" });
63
+ expect(t.coreRoot).toBe("/tmp/somewhere");
64
+ expect(t.instanceDir).toBe("/tmp/somewhere/instance");
65
+ });
66
+ it("forks a workflow plus every referenced prompt and skill", async () => {
67
+ await fork(["build"], { home: core });
68
+ const inst = join(core, "instance");
69
+ expect(existsSync(join(inst, "workflows", "build.yaml"))).toBe(true);
70
+ for (const p of ["architect", "reviewer", "fix", "re-reviewer"]) {
71
+ expect(existsSync(join(inst, "workflows", "prompts", `${p}.md`))).toBe(true);
72
+ }
73
+ expect(existsSync(join(inst, "skills", "building", "SKILL.md"))).toBe(true);
74
+ // Whole skill directory travels, including scripts/.
75
+ expect(existsSync(join(inst, "skills", "building", "scripts", "run.sh"))).toBe(true);
76
+ expect(existsSync(join(inst, "skills", "code-review", "SKILL.md"))).toBe(true);
77
+ });
78
+ it("skips existing assets by default and overwrites with --force", async () => {
79
+ const inst = join(core, "instance");
80
+ mkdirSync(join(inst, "workflows"), { recursive: true });
81
+ writeFileSync(join(inst, "workflows", "build.yaml"), "SENTINEL");
82
+ await fork(["build"], { home: core });
83
+ expect(readFileSync(join(inst, "workflows", "build.yaml"), "utf8")).toBe("SENTINEL");
84
+ await fork(["build"], { home: core, force: true });
85
+ expect(readFileSync(join(inst, "workflows", "build.yaml"), "utf8")).toContain("name: build");
86
+ });
87
+ it("forks all agent-context files via the explicit target", async () => {
88
+ await fork(["agent-context"], { home: core });
89
+ const ctx = join(core, "instance", "agent-context");
90
+ expect(existsSync(join(ctx, "soul.md"))).toBe(true);
91
+ expect(existsSync(join(ctx, "rules.md"))).toBe(true);
92
+ });
93
+ it("forks a single named agent-context file", async () => {
94
+ await fork(["agent-context", "soul.md"], { home: core });
95
+ const ctx = join(core, "instance", "agent-context");
96
+ expect(existsSync(join(ctx, "soul.md"))).toBe(true);
97
+ expect(existsSync(join(ctx, "rules.md"))).toBe(false);
98
+ });
99
+ it("does not infer agent-context from a bare filename", async () => {
100
+ // `soul` is not a workflow and not the explicit agent-context target → error.
101
+ await expect(fork(["soul"], { home: core })).rejects.toThrow(/process\.exit/);
102
+ expect(existsSync(join(core, "instance", "agent-context", "soul.md"))).toBe(false);
103
+ });
104
+ it("errors on an unknown workflow target", async () => {
105
+ await expect(fork(["nope"], { home: core })).rejects.toThrow(/process\.exit/);
106
+ expect(errSpy).toHaveBeenCalled();
107
+ });
108
+ });
109
+ //# sourceMappingURL=fork-cli.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fork-cli.test.js","sourceRoot":"","sources":["../src/fork-cli.test.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -4,6 +4,7 @@ import { randomUUID } from "crypto";
4
4
  import { loadConfig, resolveModel, resolveVariant } from "./config.js";
5
5
  import { ConnectorRegistry, GitHubWebhookConnector, SlackConnector, SessionManager, MessageDeliveryService } from "./connectors/index.js";
6
6
  import { dispatch } from "./engine/dispatcher.js";
7
+ import { MessageBatcher } from "./engine/message-batcher.js";
7
8
  import { CHAT_SYSTEM_SUFFIX, handleChatMessage, loadAgentContext } from "./engine/chat.js";
8
9
  import { configureWorkflowAssets, validateAssets, getWorkflow } from "./workflows/loader.js";
9
10
  import { ChatRunner } from "./engine/chat-runner.js";
@@ -219,8 +220,16 @@ async function main() {
219
220
  if (!prePopulateBranch && typeof ctxBranch === "string" && ctxBranch && workflowName === "pr-fix") {
220
221
  prePopulateBranch = ctxBranch;
221
222
  }
223
+ // PR-scoped read workflows that benefit from a workspace pre-checked-out at
224
+ // the PR's *real* head ref. `demo` is the load-bearing case: it synthesizes
225
+ // a `lastlight/N-<title-slug>` branch (see resolveRunBranch) that does NOT
226
+ // exist on the remote, so prePopulateWorkspace's missing-branch fallback
227
+ // silently clones the *default* branch — making a before/after demo's
228
+ // "after" identical to "before" (both end up on main). Resolving the head
229
+ // ref here pins the workspace to the actual PR code.
230
+ const PR_HEADREF_PREPOPULATE = new Set(["pr-review", "demo"]);
222
231
  if (!prePopulateBranch &&
223
- workflowName === "pr-review" &&
232
+ PR_HEADREF_PREPOPULATE.has(workflowName) &&
224
233
  typeof prNumber === "number" &&
225
234
  github &&
226
235
  owner &&
@@ -228,11 +237,17 @@ async function main() {
228
237
  try {
229
238
  const pr = await github.getPullRequest(owner, repo, prNumber);
230
239
  prePopulateBranch = pr.head.ref;
231
- console.log(`[dispatch] pr-review: pre-populating workspace at ${owner}/${repo}@${prePopulateBranch}`);
240
+ // Surface the base ref so a before/after demo can fetch + check out the
241
+ // baseline (the read-only pre-clone is shallow + single-branch at the
242
+ // head ref, so `origin/<base>` isn't present until the agent fetches it).
243
+ if (pr.base?.ref)
244
+ extra.baseBranch = pr.base.ref;
245
+ console.log(`[dispatch] ${workflowName}: pre-populating workspace at ${owner}/${repo}@${prePopulateBranch} ` +
246
+ `(base ${pr.base?.ref ?? "?"})`);
232
247
  }
233
248
  catch (err) {
234
249
  const msg = err instanceof Error ? err.message : String(err);
235
- console.warn(`[dispatch] pr-review: could not resolve PR head ref (${msg}); ` +
250
+ console.warn(`[dispatch] ${workflowName}: could not resolve PR head ref (${msg}); ` +
236
251
  `agent will need to clone via MCP`);
237
252
  }
238
253
  }
@@ -477,7 +492,11 @@ async function main() {
477
492
  if (config.slack) {
478
493
  slackConnector = new SlackConnector({
479
494
  botToken: config.slack.botToken,
495
+ mode: config.slack.mode,
480
496
  appToken: config.slack.appToken,
497
+ signingSecret: config.slack.signingSecret,
498
+ // Webhook mode mounts /webhooks/slack on the shared HTTP server.
499
+ honoApp: githubConnector?.honoApp,
481
500
  allowedUsers: config.slack.allowedUsers,
482
501
  deliveryChannel: config.slack.deliveryChannel,
483
502
  botIdentifier: "", // Will be resolved from Slack API on connect
@@ -509,6 +528,8 @@ async function main() {
509
528
  adminPassword: process.env.ADMIN_PASSWORD ?? "",
510
529
  adminSecret: process.env.ADMIN_SECRET ?? "lastlight-dev-secret",
511
530
  publicConfig: config.publicConfig,
531
+ builtInRoot: config.builtInRoot,
532
+ overlayDir: config.overlayDir,
512
533
  slackOAuthClientId: process.env.SLACK_OAUTH_CLIENT_ID,
513
534
  slackOAuthClientSecret: process.env.SLACK_OAUTH_CLIENT_SECRET,
514
535
  slackOAuthRedirectUri: process.env.SLACK_OAUTH_REDIRECT_URI,
@@ -681,7 +702,7 @@ async function main() {
681
702
  });
682
703
  return c.json({ text: reply, thread: threadId ?? session.id, sessionId: session.id, outcome: outcome.kind });
683
704
  });
684
- registry.onEvent(async (envelope) => {
705
+ const handleEnvelope = async (envelope) => {
685
706
  console.log(`[event] ${envelope.source}:${envelope.type} from ${envelope.sender}${envelope.repo ? ` on ${envelope.repo}` : ""}`);
686
707
  try {
687
708
  const outcome = await dispatch(envelope, dispatchDeps);
@@ -696,6 +717,24 @@ async function main() {
696
717
  const msg = err instanceof Error ? err.message : String(err);
697
718
  console.error(`[event] dispatch threw: ${msg}`);
698
719
  }
720
+ };
721
+ // Batch bursty messaging input per session BEFORE routing: a rapid Slack
722
+ // burst is collected, sorted into send order, and collapsed into ONE
723
+ // envelope so it's classified once and answered as a single ordered turn.
724
+ // Gated on `type === "message"` — only messaging connectors emit that here
725
+ // (GitHub events have richer types; the CLI dispatches directly, not via the
726
+ // registry). Tunable settle window via CHAT_BATCH_DEBOUNCE_MS (default 700ms;
727
+ // 0 disables).
728
+ const messageBatcher = new MessageBatcher({
729
+ dispatch: handleEnvelope,
730
+ debounceMs: Number.parseInt(process.env.CHAT_BATCH_DEBOUNCE_MS || "700", 10),
731
+ });
732
+ registry.onEvent(async (envelope) => {
733
+ if (envelope.type === "message") {
734
+ messageBatcher.submit(envelope);
735
+ return;
736
+ }
737
+ await handleEnvelope(envelope);
699
738
  });
700
739
  // Cron jobs — fan out from each tick into one workflow run per managed repo
701
740
  // (see dispatchCronWorkflow). The scheduler itself was constructed earlier
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}