lastlight 0.14.0 → 0.16.0

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 (63) hide show
  1. package/config/default.yaml +7 -0
  2. package/dist/cli/fork-cli.d.ts +2 -1
  3. package/dist/cli/fork-cli.js +33 -1
  4. package/dist/cli/fork-cli.js.map +1 -1
  5. package/dist/connectors/slack/connector.d.ts +44 -2
  6. package/dist/connectors/slack/connector.js +162 -9
  7. package/dist/connectors/slack/connector.js.map +1 -1
  8. package/dist/connectors/slack/mrkdwn.d.ts +11 -0
  9. package/dist/connectors/slack/mrkdwn.js +125 -8
  10. package/dist/connectors/slack/mrkdwn.js.map +1 -1
  11. package/dist/engine/llm.d.ts +12 -3
  12. package/dist/engine/llm.js +16 -3
  13. package/dist/engine/llm.js.map +1 -1
  14. package/dist/engine/router.js +47 -5
  15. package/dist/engine/router.js.map +1 -1
  16. package/dist/engine/screen/classifier.d.ts +40 -12
  17. package/dist/engine/screen/classifier.js +105 -175
  18. package/dist/engine/screen/classifier.js.map +1 -1
  19. package/dist/index.js +17 -0
  20. package/dist/index.js.map +1 -1
  21. package/dist/notify/blocks.d.ts +23 -0
  22. package/dist/notify/blocks.js +118 -0
  23. package/dist/notify/blocks.js.map +1 -0
  24. package/dist/notify/index.d.ts +2 -0
  25. package/dist/notify/index.js +1 -0
  26. package/dist/notify/index.js.map +1 -1
  27. package/dist/notify/notifier.d.ts +2 -1
  28. package/dist/notify/notifier.js +15 -2
  29. package/dist/notify/notifier.js.map +1 -1
  30. package/dist/notify/transports/github.d.ts +2 -2
  31. package/dist/notify/transports/github.js +2 -1
  32. package/dist/notify/transports/github.js.map +1 -1
  33. package/dist/notify/transports/slack.d.ts +3 -2
  34. package/dist/notify/transports/slack.js +12 -3
  35. package/dist/notify/transports/slack.js.map +1 -1
  36. package/dist/notify/types.d.ts +26 -2
  37. package/dist/workflows/loader.d.ts +9 -0
  38. package/dist/workflows/loader.js +66 -1
  39. package/dist/workflows/loader.js.map +1 -1
  40. package/dist/workflows/phase-executor.d.ts +7 -0
  41. package/dist/workflows/phase-executor.js +11 -2
  42. package/dist/workflows/phase-executor.js.map +1 -1
  43. package/dist/workflows/runner.js +17 -0
  44. package/dist/workflows/runner.js.map +1 -1
  45. package/dist/workflows/schema.d.ts +18 -0
  46. package/dist/workflows/schema.js +42 -0
  47. package/dist/workflows/schema.js.map +1 -1
  48. package/package.json +1 -1
  49. package/plugins/lastlight/.claude-plugin/plugin.json +1 -1
  50. package/plugins/lastlight/skills/lastlight-overlay/SKILL.md +38 -2
  51. package/plugins/lastlight/skills/lastlight-overlay/references/forking.md +27 -4
  52. package/plugins/lastlight/skills/lastlight-overlay/references/overlay-layout.md +8 -0
  53. package/workflows/answer.yaml +7 -0
  54. package/workflows/build.yaml +15 -0
  55. package/workflows/demo.yaml +7 -0
  56. package/workflows/explore.yaml +8 -0
  57. package/workflows/issue-triage.yaml +6 -0
  58. package/workflows/pr-review.yaml +8 -0
  59. package/workflows/prompts/classifier.md +60 -0
  60. package/workflows/prompts/classify-adds-info.md +17 -0
  61. package/workflows/qa-test.yaml +7 -0
  62. package/workflows/security-review.yaml +8 -0
  63. package/workflows/verify.yaml +8 -0
@@ -26,10 +26,40 @@ function plainCell(cell) {
26
26
  .replace(/`([^`]+)`/g, "$1")
27
27
  .replace(/\*(.+?)\*/g, "$1");
28
28
  }
29
+ /** Sizing caps for the monospace table fallback (Slack has no real tables). */
30
+ const MAX_COL_WIDTH = 28; // per-column char cap; longer cells are truncated
31
+ const MAX_TABLE_WIDTH = 72; // whole-row char budget (mobile-legible width)
32
+ const MAX_TABLE_ROWS = 30; // data rows rendered inline before eliding the rest
33
+ const MIN_COL_WIDTH = 3; // floor a column can be shrunk to
34
+ const GUTTER = " "; // between-column spacer
35
+ /** Truncate a cell to `width`, marking any elision with a trailing ellipsis. */
36
+ function truncateCell(cell, width) {
37
+ if (cell.length <= width)
38
+ return cell;
39
+ if (width <= 1)
40
+ return "…".slice(0, width);
41
+ return cell.slice(0, width - 1) + "…";
42
+ }
43
+ /**
44
+ * Render a 2-column table as a `*label*: value` mrkdwn list. Used when the
45
+ * table is too wide for a legible monospace block — a stacked key/value list
46
+ * reads better on narrow (mobile) Slack views than a block that overflows the
47
+ * viewport. Emits Slack mrkdwn directly; the result is held as a placeholder so
48
+ * the `*bold*` is not re-processed by later transforms.
49
+ */
50
+ function renderTwoColList(rows) {
51
+ // rows[0] is the header; the rest are key/value pairs.
52
+ return rows
53
+ .slice(1)
54
+ .map((r) => `*${r[0] ?? ""}*: ${r[1] ?? ""}`.replace(/\s+$/, ""))
55
+ .join("\n");
56
+ }
29
57
  /**
30
58
  * Render a GFM table block (header row, delimiter row, then data rows) as an
31
59
  * aligned monospace code block. Slack has no table mrkdwn, so a raw GFM table
32
- * shows as a wall of pipes; a fixed-width block keeps columns legible.
60
+ * shows as a wall of pipes; a fixed-width block keeps columns legible. Columns
61
+ * are capped and truncated, the whole row is kept within a mobile-legible
62
+ * budget, and very wide 2-column tables fall back to a stacked key/value list.
33
63
  */
34
64
  function renderSlackTable(block) {
35
65
  // Drop the delimiter row (index 1); keep header + data.
@@ -37,17 +67,48 @@ function renderSlackTable(block) {
37
67
  .filter((_, idx) => idx !== 1)
38
68
  .map((line) => splitTableCells(line).map(plainCell));
39
69
  const colCount = Math.max(...rows.map((r) => r.length));
40
- const widths = [];
70
+ // Natural (uncapped) column widths + the row width they'd need.
71
+ const natural = [];
41
72
  for (let c = 0; c < colCount; c++) {
42
- widths[c] = Math.max(...rows.map((r) => (r[c] ?? "").length));
73
+ natural[c] = Math.max(0, ...rows.map((r) => (r[c] ?? "").length));
74
+ }
75
+ const naturalWidth = natural.reduce((a, b) => a + b, 0) + GUTTER.length * (colCount - 1);
76
+ // A wide 2-column table reads better stacked as a key/value list on mobile
77
+ // than as a monospace block that overflows the viewport.
78
+ if (colCount === 2 && naturalWidth > MAX_TABLE_WIDTH) {
79
+ return renderTwoColList(rows);
80
+ }
81
+ // Cap each column, then, while the row is still too wide, shrink the widest
82
+ // column one char at a time until it fits the budget (or all hit the floor).
83
+ const widths = natural.map((w) => Math.min(w, MAX_COL_WIDTH));
84
+ const rowWidth = () => widths.reduce((a, b) => a + b, 0) + GUTTER.length * (colCount - 1);
85
+ while (rowWidth() > MAX_TABLE_WIDTH) {
86
+ let widest = -1;
87
+ let widestW = MIN_COL_WIDTH;
88
+ for (let c = 0; c < colCount; c++) {
89
+ if (widths[c] > widestW) {
90
+ widestW = widths[c];
91
+ widest = c;
92
+ }
93
+ }
94
+ if (widest === -1)
95
+ break; // every column already at the floor
96
+ widths[widest] -= 1;
43
97
  }
44
98
  const fmtRow = (r) => widths
45
- .map((w, c) => (r[c] ?? "").padEnd(w))
46
- .join(" ")
99
+ .map((w, c) => truncateCell(r[c] ?? "", w).padEnd(w))
100
+ .join(GUTTER)
47
101
  .replace(/\s+$/, "");
48
- const lines = [fmtRow(rows[0]), widths.map((w) => "-".repeat(w)).join(" ")];
49
- for (let r = 1; r < rows.length; r++)
50
- lines.push(fmtRow(rows[r]));
102
+ const dataRows = rows.slice(1);
103
+ const lines = [
104
+ fmtRow(rows[0]),
105
+ widths.map((w) => "-".repeat(w)).join(GUTTER),
106
+ ];
107
+ for (const r of dataRows.slice(0, MAX_TABLE_ROWS))
108
+ lines.push(fmtRow(r));
109
+ if (dataRows.length > MAX_TABLE_ROWS) {
110
+ lines.push(`… (${dataRows.length - MAX_TABLE_ROWS} more rows)`);
111
+ }
51
112
  return "```\n" + lines.join("\n") + "\n```";
52
113
  }
53
114
  /**
@@ -120,4 +181,60 @@ export function markdownToSlackMrkdwn(text) {
120
181
  out = out.replace(/\x00PH(\d+)\x00/g, (_m, idx) => placeholders[parseInt(idx)]);
121
182
  return out;
122
183
  }
184
+ // ── Block Kit conversion (inline images) ─────────────────────────────────────
185
+ /** Markdown image `![alt](url)`, optional title ignored. Fresh instance per use. */
186
+ const imageRegex = () => /!\[([^\]]*)\]\(([^)\s]+)(?:\s+"[^"]*")?\)/g;
187
+ /** Slack section text limit is 3000; batch under it with headroom. */
188
+ const MAX_SECTION_CHARS = 2900;
189
+ /** Slack caps a message at 50 blocks. */
190
+ const MAX_MESSAGE_BLOCKS = 50;
191
+ /** True if the text contains at least one markdown image. */
192
+ export function hasMarkdownImage(text) {
193
+ return imageRegex().test(text);
194
+ }
195
+ /** Append `raw` (converted to mrkdwn) as one or more section blocks. */
196
+ function pushTextSections(blocks, raw) {
197
+ const mrkdwn = markdownToSlackMrkdwn(raw).trim();
198
+ if (!mrkdwn)
199
+ return;
200
+ let buf = "";
201
+ for (const line of mrkdwn.split("\n")) {
202
+ const next = buf ? `${buf}\n${line}` : line;
203
+ if (next.length > MAX_SECTION_CHARS && buf) {
204
+ blocks.push({ type: "section", text: { type: "mrkdwn", text: buf } });
205
+ buf = line;
206
+ }
207
+ else {
208
+ buf = next;
209
+ }
210
+ }
211
+ if (buf)
212
+ blocks.push({ type: "section", text: { type: "mrkdwn", text: buf } });
213
+ }
214
+ /**
215
+ * Convert markdown to Slack Block Kit, promoting markdown images to real
216
+ * `image` blocks — the mrkdwn text path can only downgrade `![alt](url)` to a
217
+ * link. Text between/around images is rendered as `section` mrkdwn blocks via
218
+ * {@link markdownToSlackMrkdwn}. A non-`http(s)` image URL is left as text
219
+ * (Slack rejects image blocks with an unusable URL).
220
+ */
221
+ export function markdownToSlackBlocks(markdown) {
222
+ const blocks = [];
223
+ const re = imageRegex();
224
+ let last = 0;
225
+ let m;
226
+ while ((m = re.exec(markdown)) !== null) {
227
+ const [full, alt, url] = m;
228
+ pushTextSections(blocks, markdown.slice(last, m.index));
229
+ last = m.index + full.length;
230
+ if (/^https?:\/\//i.test(url)) {
231
+ blocks.push({ type: "image", image_url: url, alt_text: (alt || url).slice(0, 2000) });
232
+ }
233
+ else {
234
+ pushTextSections(blocks, full);
235
+ }
236
+ }
237
+ pushTextSections(blocks, markdown.slice(last));
238
+ return blocks.slice(0, MAX_MESSAGE_BLOCKS);
239
+ }
123
240
  //# sourceMappingURL=mrkdwn.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mrkdwn.js","sourceRoot":"","sources":["../../../src/connectors/slack/mrkdwn.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mrkdwn.js","sourceRoot":"","sources":["../../../src/connectors/slack/mrkdwn.ts"],"names":[],"mappings":"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"}
@@ -55,9 +55,18 @@ export interface ResolvedProvider {
55
55
  export declare function resolveProvider(model: string): ResolvedProvider;
56
56
  /**
57
57
  * Resolve the model id for a tiny one-shot helper call (classifier / screener).
58
- * Prefers explicit per-task overrides from OPENCODE_MODELS, then the first
59
- * configured provider in `PROVIDERS` order (registry order: Anthropic first,
60
- * then OpenAI, OpenRouter, then the rest — see `src/providers.ts`).
58
+ * Precedence for a given `taskType`:
59
+ * 1. an explicit per-task entry in the config `models:` map (`models.classifier`,
60
+ * `models.screener`) — which already has env `OPENCODE_MODELS` /
61
+ * `LASTLIGHT_MODELS` layered on top at config-load, so this covers both
62
+ * config.yaml and the env override in one lookup;
63
+ * 2. the env `OPENCODE_MODELS` map read directly — a fallback for contexts
64
+ * where runtime config isn't loaded (some CLI / test paths);
65
+ * 3. the first configured provider in `PROVIDERS` order (registry order:
66
+ * Anthropic first, then OpenAI, OpenRouter, then the rest — `src/providers.ts`).
67
+ *
68
+ * Note: only an EXPLICIT per-task entry counts — never `models.default` — so the
69
+ * cheap helpers stay cheap unless a deployment deliberately pins them.
61
70
  */
62
71
  export declare function defaultFastModel(taskType?: string): string;
63
72
  /**
@@ -22,6 +22,7 @@
22
22
  * supports); only the screener/classifier path is constrained here.
23
23
  */
24
24
  import { PROVIDERS, providerByPrefix } from "../providers.js";
25
+ import { getRuntimeConfig } from "../config/config.js";
25
26
  // ── Resolvers (exported for unit tests) ──────────────────────────────────────
26
27
  /**
27
28
  * Resolve a `provider/model` spec (or a bare model id) into a routing
@@ -60,12 +61,24 @@ export function resolveProvider(model) {
60
61
  }
61
62
  /**
62
63
  * Resolve the model id for a tiny one-shot helper call (classifier / screener).
63
- * Prefers explicit per-task overrides from OPENCODE_MODELS, then the first
64
- * configured provider in `PROVIDERS` order (registry order: Anthropic first,
65
- * then OpenAI, OpenRouter, then the rest — see `src/providers.ts`).
64
+ * Precedence for a given `taskType`:
65
+ * 1. an explicit per-task entry in the config `models:` map (`models.classifier`,
66
+ * `models.screener`) — which already has env `OPENCODE_MODELS` /
67
+ * `LASTLIGHT_MODELS` layered on top at config-load, so this covers both
68
+ * config.yaml and the env override in one lookup;
69
+ * 2. the env `OPENCODE_MODELS` map read directly — a fallback for contexts
70
+ * where runtime config isn't loaded (some CLI / test paths);
71
+ * 3. the first configured provider in `PROVIDERS` order (registry order:
72
+ * Anthropic first, then OpenAI, OpenRouter, then the rest — `src/providers.ts`).
73
+ *
74
+ * Note: only an EXPLICIT per-task entry counts — never `models.default` — so the
75
+ * cheap helpers stay cheap unless a deployment deliberately pins them.
66
76
  */
67
77
  export function defaultFastModel(taskType) {
68
78
  if (taskType) {
79
+ const configured = getRuntimeConfig()?.models?.[taskType];
80
+ if (configured)
81
+ return configured;
69
82
  const override = readOpencodeModelOverride(taskType);
70
83
  if (override)
71
84
  return override;
@@ -1 +1 @@
1
- {"version":3,"file":"llm.js","sourceRoot":"","sources":["../../src/engine/llm.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"llm.js","sourceRoot":"","sources":["../../src/engine/llm.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,20 @@
1
- import { classifyComment, classifyCommentAddsInfo, classifyIssueIsQuestion } from "./screen/classifier.js";
1
+ import { classifyComment, classifyCommentAddsInfo, classifyIssueIntent, WELL_KNOWN_INTENTS } from "./screen/classifier.js";
2
2
  import { screenForInjection, flagPrefix } from "./screen/screen.js";
3
3
  import { getManagedRepos, isManagedRepo } from "../managed-repos.js";
4
+ import { getWorkflowByIntent } from "../workflows/loader.js";
4
5
  import { getRoutes, getBotName } from "../config/config.js";
6
+ /**
7
+ * Resolve a classifier intent the router has no bespoke branch for to the
8
+ * workflow that claims it via its `classification.intent` (issue #164). Returns
9
+ * undefined for well-known intents (they keep their explicit, context-dependent
10
+ * routing) and for unclaimed tokens — so this fires only for a genuinely new
11
+ * intent an overlay workflow introduced, routing it to that workflow.
12
+ */
13
+ function fallbackWorkflowForIntent(intent) {
14
+ if (WELL_KNOWN_INTENTS.has(intent))
15
+ return undefined;
16
+ return getWorkflowByIntent(intent)?.name;
17
+ }
5
18
  /** Friendly reply when a Slack/CLI command targets an unmanaged repo. */
6
19
  function unmanagedRepoReply(repo) {
7
20
  return (`❌ I'm not configured to work on \`${repo}\`.\n` +
@@ -61,7 +74,7 @@ export async function routeEvent(envelope, deps = {}) {
61
74
  // search + its own model) instead of triage, which would otherwise file
62
75
  // a question as an enhancement and write an agent brief. Classified with
63
76
  // the same cheap model as comments; WORK is the safe default.
64
- const isQuestion = await classifyIssueIsQuestion(envelope.title || "", envelope.body || "");
77
+ const isQuestion = await classifyIssueIntent(envelope.title || "", envelope.body || "");
65
78
  console.log(`[router] New issue ${envelope.repo}#${envelope.issueNumber} classified as: ${isQuestion ? "question" : "work"}`);
66
79
  return {
67
80
  action: "handler",
@@ -306,12 +319,14 @@ export async function routeEvent(envelope, deps = {}) {
306
319
  // caps at 2 file reads which isn't enough to answer
307
320
  // "does this PR consider X?" with code-cited evidence)
308
321
  // Explore isn't meaningful on PRs since the code already exists.
322
+ const prNovelWf = fallbackWorkflowForIntent(intent);
309
323
  const { handler: prHandler, routeKey: prRouteKey } = intent === "build" ? { handler: gh.pr_fix || "pr-fix", routeKey: "github.pr_fix" }
310
324
  : intent === "review" ? { handler: gh.pr_review || "pr-review", routeKey: "github.pr_review" }
311
325
  : intent === "verify" ? { handler: gh.verify || "verify", routeKey: "github.verify" }
312
326
  : intent === "qa-test" ? { handler: gh.qa_test || "qa-test", routeKey: "github.qa_test" }
313
327
  : intent === "demo" ? { handler: gh.demo || "demo", routeKey: "github.demo" }
314
- : { handler: gh.pr_comment || "pr-comment", routeKey: "github.pr_comment" };
328
+ : prNovelWf ? { handler: prNovelWf, routeKey: `intent.${intent}` }
329
+ : { handler: gh.pr_comment || "pr-comment", routeKey: "github.pr_comment" };
315
330
  return {
316
331
  action: "handler",
317
332
  handler: prHandler,
@@ -356,12 +371,14 @@ export async function routeEvent(envelope, deps = {}) {
356
371
  },
357
372
  };
358
373
  }
374
+ const issueNovelWf = fallbackWorkflowForIntent(intent);
359
375
  const { handler: issueSkill, routeKey: issueRouteKey } = intent === "build" ? { handler: gh.issue_build || "github-orchestrator", routeKey: "github.issue_build" }
360
376
  : intent === "explore" ? { handler: gh.issue_explore || "explore", routeKey: "github.issue_explore" }
361
377
  : intent === "verify" ? { handler: gh.verify || "verify", routeKey: "github.verify" }
362
378
  : intent === "qa-test" ? { handler: gh.qa_test || "qa-test", routeKey: "github.qa_test" }
363
379
  : intent === "demo" ? { handler: gh.demo || "demo", routeKey: "github.demo" }
364
- : { handler: gh.issue_comment || "issue-comment", routeKey: "github.issue_comment" };
380
+ : issueNovelWf ? { handler: issueNovelWf, routeKey: `intent.${intent}` }
381
+ : { handler: gh.issue_comment || "issue-comment", routeKey: "github.issue_comment" };
365
382
  return {
366
383
  action: "handler",
367
384
  handler: issueSkill,
@@ -617,7 +634,31 @@ export async function routeEvent(envelope, deps = {}) {
617
634
  },
618
635
  };
619
636
  }
620
- default:
637
+ default: {
638
+ // A novel intent an overlay workflow introduced (issue #164) → route
639
+ // to that workflow. If it named an unmanaged repo, reject on the same
640
+ // security boundary the built-in repo-scoped intents use.
641
+ const novelWf = fallbackWorkflowForIntent(intent);
642
+ if (novelWf) {
643
+ if (classifiedRepo && !isManagedRepo(classifiedRepo)) {
644
+ return { action: "reply", message: unmanagedRepoReply(classifiedRepo) };
645
+ }
646
+ return {
647
+ action: "handler",
648
+ handler: novelWf,
649
+ context: {
650
+ _routeKey: `intent.${intent}`,
651
+ repo: classifiedRepo,
652
+ issueNumber: classifiedIssue,
653
+ sender: envelope.sender,
654
+ commentBody: slackText,
655
+ source: envelope.source,
656
+ triggerId: slackTriggerId,
657
+ channelId,
658
+ threadId,
659
+ },
660
+ };
661
+ }
621
662
  // chat — conversational reply
622
663
  return {
623
664
  action: "handler",
@@ -629,6 +670,7 @@ export async function routeEvent(envelope, deps = {}) {
629
670
  source: envelope.source,
630
671
  },
631
672
  };
673
+ }
632
674
  }
633
675
  }
634
676
  default:
@@ -1 +1 @@
1
- {"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/engine/router.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/engine/router.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,28 @@
1
1
  /**
2
2
  * LLM-based comment intent classifier.
3
3
  *
4
- * Uses a fast/cheap model (haiku) with no tools to classify whether
5
- * a GitHub comment is requesting a code change (build/fix), an idea
6
- * exploration, or a lightweight action (close, label, question, etc.).
4
+ * Uses a fast/cheap model (haiku) with no tools to classify whether a
5
+ * GitHub/Slack comment is requesting a code change (build/fix), an idea
6
+ * exploration, a lightweight action (approve/status/…), etc.
7
+ *
8
+ * The main classifier prompt is **composed at runtime**, not hardcoded: a
9
+ * forkable base template (`workflows/prompts/classifier.md`) supplies the
10
+ * framing + disambiguation rules + control categories, and each workflow YAML
11
+ * contributes its own category via a `classification:` block. This lets a
12
+ * deployment fork the base prompt AND add a new routable intent just by adding
13
+ * a workflow (see issue #164). The token→intent vocabulary is derived from the
14
+ * same blocks, so the prompt, the parser, and the router's
15
+ * `getWorkflowByIntent` fallback all read one source of truth.
7
16
  */
8
17
  import { type ChatFunction } from "../llm.js";
9
- export type CommentIntent = "build" | "explore" | "question" | "triage" | "review" | "security" | "verify" | "qa-test" | "demo" | "approve" | "reject" | "status" | "reset" | "chat";
18
+ /**
19
+ * A classifier intent. The well-known intents the router has bespoke handling
20
+ * for are listed in {@link KNOWN_WORKFLOW_INTENT_ORDER} + {@link RESERVED_CONTROL_INTENTS},
21
+ * but the runtime type is open: a workflow can introduce a new intent (e.g.
22
+ * `incident`) via its `classification` block, and the router routes it via the
23
+ * `getWorkflowByIntent` fallback.
24
+ */
25
+ export type CommentIntent = string;
10
26
  export interface ClassificationResult {
11
27
  intent: CommentIntent;
12
28
  /** Repository mentioned in the message, if any (e.g. "cliftonc/lastlight"). */
@@ -28,6 +44,19 @@ export interface ClassifierOptions {
28
44
  chat?: ChatFunction;
29
45
  defaultFastModel?: (taskType?: string) => string;
30
46
  }
47
+ /**
48
+ * The intents the router has bespoke, context-dependent handling for (a workflow
49
+ * intent handled by an explicit router branch, or a harness control intent).
50
+ * The router's `getWorkflowByIntent` fallback fires ONLY for intents *outside*
51
+ * this set — i.e. a genuinely new intent an overlay workflow introduced — so the
52
+ * established routing of the well-known intents (e.g. `explore` is a no-op on a
53
+ * PR → `pr-comment`) is never disturbed.
54
+ */
55
+ export declare const WELL_KNOWN_INTENTS: ReadonlySet<string>;
56
+ /** Force a rebuild of the composed prompt (used by tests). */
57
+ export declare function resetClassifierPromptCache(): void;
58
+ /** The composed classifier system prompt (framing + all categories + format). */
59
+ export declare function buildClassifierPrompt(): string;
31
60
  /**
32
61
  * Extract owner/repo and optional issue/PR number from any github.com URL
33
62
  * in the text. Belt-and-suspenders for the LLM — if the classifier forgets
@@ -40,14 +69,13 @@ export declare function extractGithubRefFromText(text: string): {
40
69
  } | undefined;
41
70
  /**
42
71
  * Classify whether a newly-opened issue is a pure question (wants an answer)
43
- * versus a work item (wants a code change). Used by the router to send
44
- * question issues down the dedicated answer path instead of triage.
45
- *
46
- * Falls back to `false` (WORK → triage) on any error — triage is the safe
47
- * default, and a question that slips through still hits the issue-triage
48
- * skill's question safety net.
72
+ * versus a work item (wants a code change). Delegates to the main composed
73
+ * classifier — `answer.yaml` owns the QUESTION category — and maps the result:
74
+ * `question` intent → true (route to the answer workflow), anything else →
75
+ * false (route to triage, the safe default). `classifyComment` swallows its own
76
+ * errors and returns `chat`, so a transient failure lands on WORK/triage.
49
77
  */
50
- export declare function classifyIssueIsQuestion(title: string, body: string, options?: ClassifierOptions): Promise<boolean>;
78
+ export declare function classifyIssueIntent(title: string, body: string, options?: ClassifierOptions): Promise<boolean>;
51
79
  /**
52
80
  * Decide whether a reporter's comment adds substantive information that should
53
81
  * re-open triage of the issue (vs. social noise like "thanks"). Used by the
@@ -60,6 +88,6 @@ export declare function classifyIssueIsQuestion(title: string, body: string, opt
60
88
  export declare function classifyCommentAddsInfo(commentBody: string, context?: ClassifierContext, options?: ClassifierOptions): Promise<boolean>;
61
89
  /**
62
90
  * Classify a GitHub/Slack comment's intent and extract a repo reference.
63
- * Falls back to intent=action on any error (safe default).
91
+ * Falls back to intent=chat on any error (safe default).
64
92
  */
65
93
  export declare function classifyComment(commentBody: string, context?: ClassifierContext, options?: string | ClassifierOptions): Promise<ClassificationResult>;