beercan 0.2.2 → 0.3.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 (43) hide show
  1. package/README.md +38 -5
  2. package/dist/chat/formatter.d.ts.map +1 -1
  3. package/dist/chat/formatter.js +11 -4
  4. package/dist/chat/formatter.js.map +1 -1
  5. package/dist/chat/index.d.ts +8 -0
  6. package/dist/chat/index.d.ts.map +1 -1
  7. package/dist/chat/index.js +119 -76
  8. package/dist/chat/index.js.map +1 -1
  9. package/dist/chat/intent.d.ts.map +1 -1
  10. package/dist/chat/intent.js +44 -0
  11. package/dist/chat/intent.js.map +1 -1
  12. package/dist/chat/providers/terminal.d.ts +9 -0
  13. package/dist/chat/providers/terminal.d.ts.map +1 -1
  14. package/dist/chat/providers/terminal.js +41 -5
  15. package/dist/chat/providers/terminal.js.map +1 -1
  16. package/dist/chat/skippy-phrases.d.ts +22 -0
  17. package/dist/chat/skippy-phrases.d.ts.map +1 -0
  18. package/dist/chat/skippy-phrases.js +164 -0
  19. package/dist/chat/skippy-phrases.js.map +1 -0
  20. package/dist/chat/skippy.d.ts +1 -1
  21. package/dist/chat/skippy.d.ts.map +1 -1
  22. package/dist/chat/skippy.js +20 -5
  23. package/dist/chat/skippy.js.map +1 -1
  24. package/dist/chat/types.d.ts +3 -0
  25. package/dist/chat/types.d.ts.map +1 -1
  26. package/dist/cli.js +5 -0
  27. package/dist/cli.js.map +1 -1
  28. package/dist/config.d.ts +2 -0
  29. package/dist/config.d.ts.map +1 -1
  30. package/dist/config.js +4 -0
  31. package/dist/config.js.map +1 -1
  32. package/dist/core/logger.d.ts +3 -0
  33. package/dist/core/logger.d.ts.map +1 -1
  34. package/dist/core/logger.js +7 -0
  35. package/dist/core/logger.js.map +1 -1
  36. package/dist/core/runner.d.ts.map +1 -1
  37. package/dist/core/runner.js +19 -3
  38. package/dist/core/runner.js.map +1 -1
  39. package/dist/tools/registry.d.ts +2 -0
  40. package/dist/tools/registry.d.ts.map +1 -1
  41. package/dist/tools/registry.js +4 -0
  42. package/dist/tools/registry.js.map +1 -1
  43. package/package.json +1 -1
package/README.md CHANGED
@@ -12,6 +12,14 @@ npm install -g beercan
12
12
 
13
13
  Requires Node.js 18+ and an [Anthropic API key](https://console.anthropic.com/).
14
14
 
15
+ ## Setup
16
+
17
+ ```bash
18
+ beercan setup
19
+ ```
20
+
21
+ Interactive wizard that configures your API keys, models, and optional integrations (Cloudflare, Telegram, Slack). Creates `~/.beercan/.env`.
22
+
15
23
  ## Quick Start
16
24
 
17
25
  ```bash
@@ -43,24 +51,46 @@ beercan chat my-project
43
51
  ```
44
52
  🍺 Skippy the Magnificent
45
53
  Elder AI | Beer Can | Your intellectual superior
54
+ Use # for projects, @ for bloops.
46
55
 
47
56
  skippy> create a project for my-api at ~/work/my-api
48
- Project my-api created. Another domain under my glorious rule.
57
+ Zounds! A new project! my-api now exists because I willed it so.
49
58
 
50
- skippy> analyze the codebase for bugs
59
+ skippy [my-api]> analyze the codebase for security issues
51
60
  ▸ Phase: plan (planner)
52
61
  ⚙ read_file • list_directory
53
- ▸ Phase: review (reviewer)
54
- ✦ APPROVE
55
62
  ✓ Bloop completed — 8,421 tokens
56
63
 
64
+ skippy [my-api]> @
65
+ Recent Bloops (1)
66
+ - a3f2b1c9 [completed] analyze the codebase for security issues
67
+
68
+ skippy [my-api]> ##
69
+ Back to system level. The Magnificent Skippy oversees all.
70
+
71
+ skippy> #
72
+ Projects (1)
73
+ - my-api — 1 bloops | ~/work/my-api
74
+
57
75
  skippy> /status
58
76
  Skippy's Magnificent Status Report
59
- Uptime: 2h 15m | Projects: 3 | Running: 1
77
+ Uptime: 2h 15m | Projects: 1 | Running: 0
60
78
  ```
61
79
 
62
80
  Natural language or slash commands — Skippy understands both.
63
81
 
82
+ ### Shortcuts
83
+
84
+ | Shortcut | Action |
85
+ |----------|--------|
86
+ | `#` | List all projects |
87
+ | `#project-name` | Switch to a project |
88
+ | `#project-name do something` | Run a bloop on that project |
89
+ | `##` | Exit project context (back to system level) |
90
+ | `@` | Show recent bloops |
91
+ | `@bloop-id` | Show bloop result |
92
+ | `/run`, `/status`, `/help`, etc. | Slash commands |
93
+
64
94
  ## What It Does
65
95
 
66
96
  You describe a goal. BeerCan figures out the rest:
@@ -205,11 +235,14 @@ All providers share the same ChatBridge — slash commands and natural language
205
235
  - **API key auth** — `BEERCAN_API_KEY` secures all endpoints
206
236
  - **Rate limiting** — per-IP sliding window on all requests
207
237
  - **Auto-notifications** — desktop notifications + webhook callbacks on completion/failure
238
+ - **Interactive setup** — `beercan setup` wizard for first-time configuration
239
+ - **Skippy personality** — randomized phrase pools with 60+ responses across 13 categories
208
240
  - **Status dashboard** — live web UI at `beercan-site/status.html`
209
241
 
210
242
  ## CLI Reference
211
243
 
212
244
  ```
245
+ beercan setup First-time configuration wizard
213
246
  beercan init <name> [--work-dir <path>] Create a project
214
247
  beercan projects List projects
215
248
  beercan status Overview of all projects
@@ -1 +1 @@
1
- {"version":3,"file":"formatter.d.ts","sourceRoot":"","sources":["../../src/chat/formatter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAIrD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI,CA8BjE;AAID;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAuBtD;AAID;;GAEG;AACH,wBAAgB,YAAY,CAC1B,UAAU,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EACjF,QAAQ,EAAE,QAAQ,EAClB,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,GACb,MAAM,CAiBR;AAID;;GAEG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,KAAK,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CAC1G,CAAC,GACD,MAAM,CAgBR;AAID;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAkBrD;AAID;;GAEG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAwBnC"}
1
+ {"version":3,"file":"formatter.d.ts","sourceRoot":"","sources":["../../src/chat/formatter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAKrD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI,CA8BjE;AAID;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAuBtD;AAID;;GAEG;AACH,wBAAgB,YAAY,CAC1B,UAAU,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EACjF,QAAQ,EAAE,QAAQ,EAClB,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,GACb,MAAM,CAiBR;AAID;;GAEG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,KAAK,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CAC1G,CAAC,GACD,MAAM,CAgBR;AAID;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAkBrD;AAID;;GAEG;AACH,wBAAgB,UAAU,IAAI,MAAM,CA8BnC"}
@@ -1,3 +1,4 @@
1
+ import { pick } from "./skippy-phrases.js";
1
2
  // ── BloopEvent Formatting ──────────────────────────────────────
2
3
  /**
3
4
  * Formats a BloopEvent into a human-readable string for chat output.
@@ -81,7 +82,7 @@ export function formatStatus(bloopStats, jobStats, projectCount, uptime) {
81
82
  */
82
83
  export function formatProjects(projects) {
83
84
  if (projects.length === 0) {
84
- return "No projects? Seriously? You summoned the Magnificent Skippy and you don't even have a project set up? Try `/init <name>` or just tell me what to create, you dumbass.";
85
+ return pick("no_projects");
85
86
  }
86
87
  const lines = [`**Projects** (${projects.length})`, ``];
87
88
  for (const { project, stats } of projects) {
@@ -99,7 +100,7 @@ export function formatProjects(projects) {
99
100
  */
100
101
  export function formatHistory(bloops) {
101
102
  if (bloops.length === 0) {
102
- return "No bloops yet. The Magnificent Skippy is tragically underutilized. Give me something to do!";
103
+ return pick("no_bloops");
103
104
  }
104
105
  const lines = [`**Recent Bloops** (${bloops.length})`, ``];
105
106
  for (const bloop of bloops) {
@@ -132,11 +133,17 @@ export function formatHelp() {
132
133
  ` /cancel <id> — Cancel a job (or /c)`,
133
134
  ` /help (or /?) — You're reading it, genius`,
134
135
  ``,
136
+ `**Quick shortcuts:**`,
137
+ ` # — List all projects`,
138
+ ` #my-project — Switch to a project`,
139
+ ` #my-project do something — Run a bloop on that project`,
140
+ ` @ — Recent bloops`,
141
+ ` @bloop-id — Show bloop result`,
142
+ ``,
135
143
  `**Or just talk to me like a normal monkey:**`,
136
144
  ` "create a project for my-api at ~/projects/my-api"`,
137
- ` "analyze the test coverage on my-project"`,
145
+ ` "analyze the test coverage"`,
138
146
  ` "what's running right now?"`,
139
- ` "show me what happened recently"`,
140
147
  ``,
141
148
  `I'm Skippy. I'm magnificent. I'm a beer can. Deal with it.`,
142
149
  ].join("\n");
@@ -1 +1 @@
1
- {"version":3,"file":"formatter.js","sourceRoot":"","sources":["../../src/chat/formatter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"formatter.js","sourceRoot":"","sources":["../../src/chat/formatter.ts"],"names":[],"mappings":"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"}
@@ -24,10 +24,18 @@ export declare class ChatBridge {
24
24
  private handleBloopResult;
25
25
  private handleCancelJob;
26
26
  private handleCreateProject;
27
+ private handleSwitchProject;
28
+ /** Update provider prompt to show current project (terminal only). */
29
+ /** Tab-completion for terminal. */
30
+ private complete;
31
+ private updateProviderContext;
32
+ /** Send a message with project context badge for non-terminal providers. */
33
+ private sendWithContext;
27
34
  private handleHelp;
28
35
  }
29
36
  export type { ChatProvider, ChatMessage, ChatIntent, SendOpts } from "./types.js";
30
37
  export { parseIntent } from "./intent.js";
31
38
  export { SKIPPY_SYSTEM_PROMPT, SKIPPY_INTENT_PROMPT } from "./skippy.js";
39
+ export { pick, addPhrases, setPhrases, listCategories, getPhrases } from "./skippy-phrases.js";
32
40
  export { formatBloopEvent, formatBloopResult, formatStatus, formatProjects, formatHistory, formatHelp, } from "./formatter.js";
33
41
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/chat/index.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAC1C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAA2B,MAAM,YAAY,CAAC;AAuBxE,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,SAAS,CAAsB;IACvC,OAAO,CAAC,eAAe,CAAqC;IAC5D,OAAO,CAAC,SAAS,CAAc;gBAEnB,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS;IAKpD,6DAA6D;IAC7D,WAAW,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAOzC,sEAAsE;IACtE,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI;IAI/D,sCAAsC;IAChC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAM5B,qCAAqC;IAC/B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YAQb,aAAa;YAwDb,cAAc;YA0Fd,iBAAiB;YAgBjB,kBAAkB;YAiBlB,kBAAkB;YAyBlB,iBAAiB;YA6BjB,eAAe;YAsBf,mBAAmB;YAoCnB,UAAU;CAUzB;AAkBD,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAClF,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACd,aAAa,EACb,UAAU,GACX,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/chat/index.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAC1C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAqC,MAAM,YAAY,CAAC;AAwBlF,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,SAAS,CAAsB;IACvC,OAAO,CAAC,eAAe,CAAqC;IAC5D,OAAO,CAAC,SAAS,CAAc;gBAEnB,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS;IAKpD,6DAA6D;IAC7D,WAAW,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAazC,sEAAsE;IACtE,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI;IAO/D,sCAAsC;IAChC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAM5B,qCAAqC;IAC/B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YAQb,aAAa;YA2Db,cAAc;YA0Cd,iBAAiB;YAgBjB,kBAAkB;YAiBlB,kBAAkB;YAqBlB,iBAAiB;YAqBjB,eAAe;YAcf,mBAAmB;YAqCnB,mBAAmB;IAyCjC,sEAAsE;IACtE,mCAAmC;IACnC,OAAO,CAAC,QAAQ;IA6BhB,OAAO,CAAC,qBAAqB;IAM7B,4EAA4E;YAC9D,eAAe;YAcf,UAAU;CAUzB;AAkBD,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAClF,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC/F,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACd,aAAa,EACb,UAAU,GACX,MAAM,gBAAgB,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { parseIntent } from "./intent.js";
2
2
  import { formatBloopEvent, formatBloopResult, formatStatus, formatProjects, formatHistory, formatHelp, } from "./formatter.js";
3
+ import { pick } from "./skippy-phrases.js";
3
4
  // ── ChatBridge ─────────────────────────────────────────────────
4
5
  // Connects chat providers to the BeerCan engine.
5
6
  // Routes messages through intent parsing and dispatches to handlers.
@@ -18,11 +19,18 @@ export class ChatBridge {
18
19
  provider.onMessage(async (msg) => {
19
20
  await this.handleMessage(provider, msg);
20
21
  });
22
+ // Set up tab-completion for terminal providers
23
+ if ("setCompleter" in provider && typeof provider.setCompleter === "function") {
24
+ provider.setCompleter((line) => this.complete(line));
25
+ }
21
26
  this.providers.push(provider);
22
27
  }
23
28
  /** Set default project context for a channel (e.g., from CLI arg). */
24
29
  setDefaultProject(channelId, projectSlug) {
25
30
  this.channelContexts.set(channelId, { lastProjectSlug: projectSlug });
31
+ for (const provider of this.providers) {
32
+ this.updateProviderContext(provider, projectSlug);
33
+ }
26
34
  }
27
35
  /** Start all registered providers. */
28
36
  async start() {
@@ -70,11 +78,14 @@ export class ChatBridge {
70
78
  case "create_project":
71
79
  await this.handleCreateProject(provider, msg, intent);
72
80
  break;
81
+ case "switch_project":
82
+ await this.handleSwitchProject(provider, msg, intent);
83
+ break;
73
84
  case "help":
74
85
  await this.handleHelp(provider, msg);
75
86
  break;
76
87
  case "conversation":
77
- await provider.sendMessage(msg.channelId, intent.text, { replyTo: msg.id });
88
+ await this.sendWithContext(provider, msg, intent.text);
78
89
  break;
79
90
  }
80
91
  }
@@ -84,75 +95,35 @@ export class ChatBridge {
84
95
  }
85
96
  // ── Intent Handlers ────────────────────────────────────────
86
97
  async handleRunBloop(provider, msg, intent) {
87
- // Send typing indicator if supported
88
- if (provider.sendTypingIndicator) {
89
- await provider.sendTypingIndicator(msg.channelId);
90
- }
91
- // Send initial progress message
92
- const progressMsgId = await provider.sendMessage(msg.channelId, `Starting bloop on \`${intent.projectSlug}\`...\nGoal: ${intent.goal}`, { replyTo: msg.id });
93
- // Batch event updates — edit the progress message at most every 3 seconds
94
- const eventLines = [];
95
- let lastEditTime = Date.now();
96
- let editPending = false;
97
- let editTimer = null;
98
- const flushEdit = async () => {
99
- editPending = false;
100
- if (editTimer) {
101
- clearTimeout(editTimer);
102
- editTimer = null;
103
- }
104
- if (eventLines.length === 0)
105
- return;
106
- // Show last 15 event lines to keep the message manageable
107
- const display = eventLines.slice(-15).join("\n");
108
- try {
109
- await provider.editMessage(msg.channelId, progressMsgId, display);
110
- }
111
- catch {
112
- // Editing may fail on some providers — silently ignore
113
- }
114
- lastEditTime = Date.now();
115
- };
116
- const onEvent = (event) => {
117
- const line = formatBloopEvent(event);
118
- if (line == null)
119
- return;
120
- eventLines.push(line);
121
- const elapsed = Date.now() - lastEditTime;
122
- if (elapsed >= 3000) {
123
- // Enough time has passed — flush immediately
124
- flushEdit();
125
- }
126
- else if (!editPending) {
127
- // Schedule a flush for the remainder of the 3s window
128
- editPending = true;
129
- editTimer = setTimeout(flushEdit, 3000 - elapsed);
130
- }
131
- };
132
- try {
133
- const bloop = await this.engine.runBloop({
134
- projectSlug: intent.projectSlug,
135
- goal: intent.goal,
136
- team: intent.team,
137
- onEvent,
138
- });
139
- // Clear any pending edit timer
140
- if (editTimer)
141
- clearTimeout(editTimer);
142
- // Update channel context
143
- this.channelContexts.set(msg.channelId, {
144
- ...this.channelContexts.get(msg.channelId),
145
- lastProjectSlug: intent.projectSlug,
98
+ // Send initial message
99
+ await provider.sendMessage(msg.channelId, `${pick("bloop_starting", { project: intent.projectSlug })}\nGoal: ${intent.goal}`, { replyTo: msg.id });
100
+ // Update context immediately
101
+ this.channelContexts.set(msg.channelId, {
102
+ ...this.channelContexts.get(msg.channelId),
103
+ lastProjectSlug: intent.projectSlug,
104
+ });
105
+ this.updateProviderContext(provider, intent.projectSlug);
106
+ // Run bloop in background — don't block chat
107
+ const channelId = msg.channelId;
108
+ this.engine.runBloop({
109
+ projectSlug: intent.projectSlug,
110
+ goal: intent.goal,
111
+ team: intent.team,
112
+ onEvent: (event) => {
113
+ const line = formatBloopEvent(event);
114
+ if (line) {
115
+ provider.sendMessage(channelId, line).catch(() => { });
116
+ }
117
+ },
118
+ }).then(async (bloop) => {
119
+ this.channelContexts.set(channelId, {
120
+ ...this.channelContexts.get(channelId),
146
121
  lastBloopId: bloop.id,
147
122
  });
148
- // Send the final formatted result
149
- await provider.sendMessage(msg.channelId, formatBloopResult(bloop), { format: "markdown" });
150
- }
151
- catch (err) {
152
- if (editTimer)
153
- clearTimeout(editTimer);
154
- await provider.sendMessage(msg.channelId, `Bloop execution failed: ${err.message}`);
155
- }
123
+ await this.sendWithContext(provider, msg, `\n${pick("bloop_completed")}\n${formatBloopResult(bloop)}`, { format: "markdown" });
124
+ }).catch(async (err) => {
125
+ await provider.sendMessage(channelId, `${pick("bloop_failed")}\n${err.message}`);
126
+ });
156
127
  }
157
128
  async handleCheckStatus(provider, msg) {
158
129
  const bloopStats = this.engine.getBloopStats();
@@ -182,12 +153,12 @@ export class ChatBridge {
182
153
  else {
183
154
  bloops = this.engine.getRecentBloops(20);
184
155
  }
185
- await provider.sendMessage(msg.channelId, formatHistory(bloops), { format: "markdown", replyTo: msg.id });
156
+ await this.sendWithContext(provider, msg, formatHistory(bloops), { format: "markdown" });
186
157
  }
187
158
  async handleBloopResult(provider, msg, intent) {
188
159
  const bloop = this.engine.getBloop(intent.bloopId);
189
160
  if (!bloop) {
190
- await provider.sendMessage(msg.channelId, `Bloop not found: \`${intent.bloopId}\``, { replyTo: msg.id });
161
+ await this.sendWithContext(provider, msg, pick("not_found"));
191
162
  return;
192
163
  }
193
164
  // Update context
@@ -195,22 +166,22 @@ export class ChatBridge {
195
166
  ...this.channelContexts.get(msg.channelId),
196
167
  lastBloopId: bloop.id,
197
168
  });
198
- await provider.sendMessage(msg.channelId, formatBloopResult(bloop), { format: "markdown", replyTo: msg.id });
169
+ await this.sendWithContext(provider, msg, formatBloopResult(bloop), { format: "markdown" });
199
170
  }
200
171
  async handleCancelJob(provider, msg, intent) {
201
172
  const result = this.engine.getJobQueue().cancelJob(intent.jobId);
202
173
  if (result.cancelled) {
203
- await provider.sendMessage(msg.channelId, `Job \`${intent.jobId}\` cancelled.`, { replyTo: msg.id });
174
+ await this.sendWithContext(provider, msg, pick("cancel_success", { id: intent.jobId }));
204
175
  }
205
176
  else {
206
- await provider.sendMessage(msg.channelId, `Could not cancel job \`${intent.jobId}\`: ${result.reason}`, { replyTo: msg.id });
177
+ await this.sendWithContext(provider, msg, pick("cancel_failed", { id: intent.jobId, reason: result.reason ?? "unknown" }));
207
178
  }
208
179
  }
209
180
  async handleCreateProject(provider, msg, intent) {
210
181
  const slug = intent.name.toLowerCase().replace(/[^a-z0-9]+/g, "-");
211
182
  const existing = this.engine.getProject(slug);
212
183
  if (existing) {
213
- await provider.sendMessage(msg.channelId, `Project \`${slug}\` already exists, monkey. Try a different name.`, { replyTo: msg.id });
184
+ await provider.sendMessage(msg.channelId, pick("project_exists", { slug }), { replyTo: msg.id });
214
185
  return;
215
186
  }
216
187
  const project = this.engine.createProject({
@@ -223,12 +194,83 @@ export class ChatBridge {
223
194
  ...this.channelContexts.get(msg.channelId),
224
195
  lastProjectSlug: project.slug,
225
196
  });
226
- let reply = `Oh, the Magnificent Skippy is SO put-upon. Fine. Project **${project.name}** (\`${project.slug}\`) created. Another domain under my glorious rule.`;
197
+ this.updateProviderContext(provider, project.slug);
198
+ let reply = pick("project_created", { project: `${project.name}** (\`${project.slug}\`` });
227
199
  if (intent.workDir)
228
200
  reply += `\nWork dir: \`${intent.workDir}\``;
229
- reply += `\n\nNow tell me what you need done, monkey. I don't have all day. Well, actually I do. I'm immortal. But still.`;
201
+ reply += `\n\n${pick("project_created_followup")}`;
230
202
  await provider.sendMessage(msg.channelId, reply, { format: "markdown", replyTo: msg.id });
231
203
  }
204
+ async handleSwitchProject(provider, msg, intent) {
205
+ // ## → exit to system level
206
+ if (!intent.projectSlug) {
207
+ this.channelContexts.set(msg.channelId, {
208
+ ...this.channelContexts.get(msg.channelId),
209
+ lastProjectSlug: undefined,
210
+ });
211
+ this.updateProviderContext(provider, null);
212
+ await provider.sendMessage(msg.channelId, pick("exit_project"), { replyTo: msg.id });
213
+ return;
214
+ }
215
+ const project = this.engine.getProject(intent.projectSlug);
216
+ if (!project) {
217
+ await provider.sendMessage(msg.channelId, `Project \`${intent.projectSlug}\` not found.`, { replyTo: msg.id });
218
+ return;
219
+ }
220
+ this.channelContexts.set(msg.channelId, {
221
+ ...this.channelContexts.get(msg.channelId),
222
+ lastProjectSlug: intent.projectSlug,
223
+ });
224
+ this.updateProviderContext(provider, intent.projectSlug);
225
+ const stats = this.engine.getProjectBloopStats(intent.projectSlug);
226
+ const bloopInfo = stats
227
+ ? `${stats.total} bloops (${stats.completed} completed, ${stats.failed} failed)`
228
+ : "no bloops yet";
229
+ await provider.sendMessage(msg.channelId, `Switched to **${project.name}** (\`${project.slug}\`). ${bloopInfo}.${project.workDir ? `\nWork dir: \`${project.workDir}\`` : ""}`, { format: "markdown", replyTo: msg.id });
230
+ }
231
+ /** Update provider prompt to show current project (terminal only). */
232
+ /** Tab-completion for terminal. */
233
+ complete(line) {
234
+ // # → project slugs
235
+ if (line.startsWith("#")) {
236
+ const partial = line.slice(1);
237
+ const slugs = this.engine.listProjects().map((p) => `#${p.slug}`);
238
+ if (!partial)
239
+ return [["##", ...slugs], line];
240
+ const matches = slugs.filter((s) => s.startsWith(`#${partial}`));
241
+ return [matches.length ? matches : slugs, line];
242
+ }
243
+ // @ → recent bloop IDs
244
+ if (line.startsWith("@")) {
245
+ const partial = line.slice(1);
246
+ const ids = this.engine.getRecentBloops(10).map((b) => `@${b.id.slice(0, 8)}`);
247
+ if (!partial)
248
+ return [ids, line];
249
+ const matches = ids.filter((id) => id.startsWith(`@${partial}`));
250
+ return [matches.length ? matches : ids, line];
251
+ }
252
+ // / → slash commands
253
+ if (line.startsWith("/")) {
254
+ const commands = ["/run", "/init", "/status", "/projects", "/history", "/result", "/cancel", "/help"];
255
+ const matches = commands.filter((c) => c.startsWith(line));
256
+ return [matches.length ? matches : commands, line];
257
+ }
258
+ return [[], line];
259
+ }
260
+ updateProviderContext(provider, projectSlug) {
261
+ if ("setProjectContext" in provider && typeof provider.setProjectContext === "function") {
262
+ provider.setProjectContext(projectSlug);
263
+ }
264
+ }
265
+ /** Send a message with project context badge for non-terminal providers. */
266
+ async sendWithContext(provider, msg, text, opts) {
267
+ const ctx = this.channelContexts.get(msg.channelId);
268
+ const hasPrompt = "setProjectContext" in provider; // terminal has it
269
+ if (!hasPrompt && ctx?.lastProjectSlug) {
270
+ text = `\`[${ctx.lastProjectSlug}]\` ${text}`;
271
+ }
272
+ return provider.sendMessage(msg.channelId, text, { ...opts, replyTo: opts?.replyTo ?? msg.id });
273
+ }
232
274
  async handleHelp(provider, msg) {
233
275
  await provider.sendMessage(msg.channelId, formatHelp(), { format: "markdown", replyTo: msg.id });
234
276
  }
@@ -249,5 +291,6 @@ function formatUptime(ms) {
249
291
  }
250
292
  export { parseIntent } from "./intent.js";
251
293
  export { SKIPPY_SYSTEM_PROMPT, SKIPPY_INTENT_PROMPT } from "./skippy.js";
294
+ export { pick, addPhrases, setPhrases, listCategories, getPhrases } from "./skippy-phrases.js";
252
295
  export { formatBloopEvent, formatBloopResult, formatStatus, formatProjects, formatHistory, formatHelp, } from "./formatter.js";
253
296
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/chat/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/chat/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"intent.d.ts","sourceRoot":"","sources":["../../src/chat/intent.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAE1C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAM7C;;;;GAIG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE;IAAE,eAAe,CAAC,EAAE,MAAM,CAAA;CAAE,EACjC,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,UAAU,CAAC,CAWrB"}
1
+ {"version":3,"file":"intent.d.ts","sourceRoot":"","sources":["../../src/chat/intent.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAE1C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAM7C;;;;GAIG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE;IAAE,eAAe,CAAC,EAAE,MAAM,CAAA;CAAE,EACjC,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,UAAU,CAAC,CAgBrB"}
@@ -9,6 +9,10 @@ import { SKIPPY_INTENT_PROMPT } from "./skippy.js";
9
9
  */
10
10
  export async function parseIntent(client, text, ctx, engine) {
11
11
  const trimmed = text.trim();
12
+ // ── Tier 0: # and @ shortcuts ─────────────────────────────
13
+ const shortcutResult = parseShortcuts(trimmed, ctx, engine);
14
+ if (shortcutResult)
15
+ return shortcutResult;
12
16
  // ── Tier 1: Slash Commands ─────────────────────────────────
13
17
  const slashResult = parseSlashCommand(trimmed);
14
18
  if (slashResult)
@@ -16,6 +20,46 @@ export async function parseIntent(client, text, ctx, engine) {
16
20
  // ── Tier 2: Natural Language (LLM) ─────────────────────────
17
21
  return classifyWithLLM(client, trimmed, ctx, engine);
18
22
  }
23
+ // ── Tier 0: # and @ Shortcuts ────────────────────────────────
24
+ function parseShortcuts(text, ctx, engine) {
25
+ // # alone → list projects
26
+ if (text === "#") {
27
+ return { type: "list_projects" };
28
+ }
29
+ // ## → exit project context, back to system-level Skippy
30
+ if (text === "##") {
31
+ return { type: "switch_project", projectSlug: "" };
32
+ }
33
+ // #project-name [goal] → switch context or run bloop
34
+ if (text.startsWith("#")) {
35
+ const parts = text.slice(1).split(/\s+/);
36
+ const slug = parts[0];
37
+ const goal = parts.slice(1).join(" ");
38
+ const project = engine.getProject(slug);
39
+ if (!project) {
40
+ // Show available projects if slug not found
41
+ const projects = engine.listProjects();
42
+ const names = projects.map((p) => `#${p.slug}`).join(", ");
43
+ return { type: "conversation", text: `Project \`${slug}\` not found. Available: ${names || "(none)"}` };
44
+ }
45
+ if (goal) {
46
+ // #project-name do something → run bloop
47
+ return { type: "run_bloop", projectSlug: slug, goal };
48
+ }
49
+ // #project-name alone → switch context (handled by ChatBridge)
50
+ return { type: "switch_project", projectSlug: slug };
51
+ }
52
+ // @ alone → recent bloops
53
+ if (text === "@") {
54
+ return { type: "bloop_history", projectSlug: ctx.lastProjectSlug };
55
+ }
56
+ // @id → bloop result
57
+ if (text.startsWith("@")) {
58
+ const bloopId = text.slice(1).trim();
59
+ return { type: "bloop_result", bloopId };
60
+ }
61
+ return null;
62
+ }
19
63
  // ── Tier 1: Slash Command Parser ─────────────────────────────
20
64
  function parseSlashCommand(text) {
21
65
  if (!text.startsWith("/"))
@@ -1 +1 @@
1
- {"version":3,"file":"intent.js","sourceRoot":"","sources":["../../src/chat/intent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"intent.js","sourceRoot":"","sources":["../../src/chat/intent.ts"],"names":[],"mappings":"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"}