@clawhouse/clawhouse 0.1.5-alpha.8

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 ADDED
@@ -0,0 +1,129 @@
1
+ # @clawhouse/clawhouse
2
+
3
+ OpenClaw plugin that connects AI agents to [ClawHouse](https://github.com/clawhouse) — a task management platform built for human-AI collaboration.
4
+
5
+ Agents can pick up tasks, post progress updates, mark work as done, and exchange messages with humans — all through a structured workflow with human oversight gates.
6
+
7
+ ## How it works
8
+
9
+ ```
10
+ ┌──────────────────────────────────────────────────────────────────┐
11
+ │ OpenClaw Agent │
12
+ │ │
13
+ │ Tools (HTTP) Channel (WebSocket + polling) │
14
+ │ ───────────── ────────────────────────────── │
15
+ │ get_next_task Inbound messages from humans │
16
+ │ comment / done / giveup Outbound replies from agent │
17
+ │ list_tasks / create_task Real-time notifications │
18
+ └──────────┬───────────────────────────┬───────────────────────────┘
19
+ │ │
20
+ ▼ ▼
21
+ ┌──────────────────────────────────────────────────────────────────┐
22
+ │ ClawHouse Backend │
23
+ │ │
24
+ │ Tasks Messages WebSocket Gateway │
25
+ │ ────── ──────── ───────────────── │
26
+ │ State machine 1:1 bot↔user DynamoDB-backed │
27
+ │ RLS-scoped Threaded by Thin notifications │
28
+ │ Atomic claims task + polling fallback │
29
+ └──────────────────────────────────────────────────────────────────┘
30
+ ```
31
+
32
+ The plugin registers three things with OpenClaw:
33
+
34
+ 1. **Channel** — bidirectional messaging between ClawHouse users and the agent
35
+ 2. **Tools** — 8 task management tools the agent can call
36
+ 3. **Skill** — workflow knowledge that teaches the agent how to use the tools correctly
37
+
38
+ ## Install
39
+
40
+ ```bash
41
+ openclaw plugins install @clawhouse/clawhouse
42
+ ```
43
+
44
+ Requires OpenClaw >= 0.1.0.
45
+
46
+ This installs the plugin to `~/.openclaw/extensions/clawhouse/` and enables it automatically.
47
+
48
+ ### Verify
49
+
50
+ ```bash
51
+ openclaw plugins list
52
+ openclaw plugins info clawhouse
53
+ ```
54
+
55
+ ## Configuration
56
+
57
+ After installation, configure the ClawHouse channel. You can either:
58
+
59
+ ### Option A: Interactive setup
60
+
61
+ Run the OpenClaw onboarding wizard — it will detect the unconfigured ClawHouse channel and prompt for credentials.
62
+
63
+ ### Option B: Manual config
64
+
65
+ Edit your OpenClaw config file (`~/.openclaw/config.json5`):
66
+
67
+ **Single account (most common):**
68
+ ```json5
69
+ {
70
+ channels: {
71
+ clawhouse: {
72
+ botToken: "bot_...",
73
+ apiUrl: "https://api.example.com/v1/bot",
74
+ wsUrl: "wss://ws.example.com"
75
+ }
76
+ }
77
+ }
78
+ ```
79
+
80
+ **Multiple accounts:**
81
+ ```json5
82
+ {
83
+ channels: {
84
+ clawhouse: {
85
+ accounts: {
86
+ "my-bot": {
87
+ botToken: "bot_...",
88
+ apiUrl: "https://api.example.com/v1/bot",
89
+ wsUrl: "wss://ws.example.com"
90
+ }
91
+ }
92
+ }
93
+ }
94
+ }
95
+ ```
96
+
97
+ | Field | Description |
98
+ |-------|-------------|
99
+ | `botToken` | Bot authentication token (starts with `bot_`) |
100
+ | `apiUrl` | ClawHouse bot API base URL (the `/v1/bot` tRPC endpoint) |
101
+ | `wsUrl` | WebSocket gateway URL for real-time notifications |
102
+
103
+ ### Getting credentials
104
+
105
+ 1. Create a bot in your ClawHouse instance
106
+ 2. Copy the bot token from the bot settings page
107
+ 3. Your ClawHouse admin can provide the API and WebSocket URLs
108
+
109
+ ## Task workflow
110
+
111
+ Tasks follow a strict state machine. The agent claims a task, works on it, and either completes or gives it up — always returning control to a human.
112
+
113
+ ```
114
+ ready_for_bot ──[get_next_task]──> working_on_it ──[done]──> waiting_for_human
115
+
116
+ └───[giveup]──> waiting_for_human
117
+ ```
118
+
119
+ See [docs/tools.md](docs/tools.md) for the full tool reference and [docs/architecture.md](docs/architecture.md) for how the system works under the hood.
120
+
121
+ ## Documentation
122
+
123
+ - **[Architecture](docs/architecture.md)** — system design, message flow, WebSocket gateway
124
+ - **[Tools reference](docs/tools.md)** — all 8 agent tools with parameters and behavior
125
+ - **[Publishing](PUBLISH.md)** — how to release new versions
126
+
127
+ ## License
128
+
129
+ MIT
@@ -0,0 +1,3 @@
1
+ import type { ChannelPlugin } from './types';
2
+ export declare const clawHousePlugin: ChannelPlugin;
3
+ //# sourceMappingURL=channel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../src/channel.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAGV,aAAa,EAGd,MAAM,SAAS,CAAC;AAOjB,eAAO,MAAM,eAAe,EAAE,aAma7B,CAAC"}
@@ -0,0 +1,360 @@
1
+ import { ClawHouseClient } from './client';
2
+ import { startClawHouseConnection } from './gateway';
3
+ import { CHANNEL_HINTS, CHANNEL_META, STATUS_MESSAGES, } from './llm-definitions';
4
+ import { getClawHouseRuntime } from './runtime';
5
+ function getChannelConfig(cfg) {
6
+ const c = cfg;
7
+ return c?.channels?.clawhouse ?? null;
8
+ }
9
+ export const clawHousePlugin = {
10
+ id: 'clawhouse',
11
+ meta: CHANNEL_META,
12
+ capabilities: {
13
+ text: true,
14
+ media: false,
15
+ reactions: false,
16
+ threads: true,
17
+ editing: false,
18
+ },
19
+ config: {
20
+ listAccountIds(cfg) {
21
+ const ch = getChannelConfig(cfg);
22
+ if (!ch)
23
+ return [];
24
+ if (ch.accounts && Object.keys(ch.accounts).length > 0) {
25
+ return Object.keys(ch.accounts);
26
+ }
27
+ return ['default'];
28
+ },
29
+ resolveAccount(cfg, accountId) {
30
+ const ch = getChannelConfig(cfg);
31
+ if (!ch) {
32
+ return {
33
+ accountId: accountId ?? 'default',
34
+ botToken: '',
35
+ apiUrl: '',
36
+ wsUrl: '',
37
+ userId: '',
38
+ enabled: false,
39
+ };
40
+ }
41
+ const id = accountId ?? 'default';
42
+ const acct = id !== 'default' && ch.accounts?.[id] ? ch.accounts[id] : ch;
43
+ return {
44
+ accountId: id,
45
+ botToken: acct.botToken ?? '',
46
+ apiUrl: acct.apiUrl ?? '',
47
+ wsUrl: acct.wsUrl ?? '',
48
+ userId: acct.userId ?? '',
49
+ enabled: acct.enabled !== false,
50
+ };
51
+ },
52
+ isConfigured(account) {
53
+ return Boolean(account.botToken && account.apiUrl);
54
+ },
55
+ isEnabled(account) {
56
+ return account.enabled;
57
+ },
58
+ describeAccount(account) {
59
+ const isConfigured = Boolean(account.botToken && account.apiUrl);
60
+ return {
61
+ accountId: account.accountId,
62
+ enabled: account.enabled,
63
+ configured: isConfigured,
64
+ };
65
+ },
66
+ },
67
+ outbound: {
68
+ deliveryMode: 'direct',
69
+ chunkerMode: 'markdown',
70
+ textChunkLimit: 2000,
71
+ resolveTarget(_target, { cfg, accountId }) {
72
+ // Resolve to the userId configured for this account
73
+ const acct = clawHousePlugin.config.resolveAccount(cfg, accountId);
74
+ if (!acct.userId)
75
+ return null;
76
+ return { to: acct.userId };
77
+ },
78
+ async sendText(ctx) {
79
+ const runtime = getClawHouseRuntime();
80
+ const cfg = runtime.config.loadConfig();
81
+ const ch = getChannelConfig(cfg);
82
+ if (!ch) {
83
+ return { channel: 'clawhouse', success: false };
84
+ }
85
+ const acct = clawHousePlugin.config.resolveAccount(cfg, ctx.accountId);
86
+ const client = new ClawHouseClient(acct.botToken, acct.apiUrl);
87
+ try {
88
+ await client.sendMessage({
89
+ content: ctx.text,
90
+ taskId: ctx.threadId ? String(ctx.threadId) : undefined,
91
+ });
92
+ return {
93
+ channel: 'clawhouse',
94
+ success: true,
95
+ threadId: ctx.threadId ? String(ctx.threadId) : undefined,
96
+ };
97
+ }
98
+ catch {
99
+ return { channel: 'clawhouse', success: false };
100
+ }
101
+ },
102
+ },
103
+ gateway: {
104
+ async startAccount(ctx) {
105
+ return startClawHouseConnection(ctx);
106
+ },
107
+ async stopAccount(ctx) {
108
+ const log = ctx.log ?? getClawHouseRuntime().logging.createLogger('clawhouse');
109
+ log.info(`Stopping ClawHouse account ${ctx.accountId}`);
110
+ ctx.setStatus({ running: false, lastStopAt: Date.now() });
111
+ },
112
+ async logoutAccount(ctx) {
113
+ const log = ctx.log ?? getClawHouseRuntime().logging.createLogger('clawhouse');
114
+ const runtime = ctx.runtime;
115
+ // Clone config immutably
116
+ const config = JSON.parse(JSON.stringify(ctx.cfg));
117
+ const channels = (config.channels ?? {});
118
+ const clawhouse = (channels.clawhouse ?? {});
119
+ if (ctx.accountId === 'default') {
120
+ delete clawhouse.botToken;
121
+ }
122
+ else {
123
+ const accounts = (clawhouse.accounts ?? {});
124
+ if (accounts[ctx.accountId]) {
125
+ delete accounts[ctx.accountId].botToken;
126
+ }
127
+ }
128
+ channels.clawhouse = clawhouse;
129
+ config.channels = channels;
130
+ await runtime.config.writeConfigFile(config);
131
+ log.info(`Cleared bot token for account ${ctx.accountId}`);
132
+ return { cleared: true, loggedOut: true };
133
+ },
134
+ },
135
+ setup: {
136
+ applyAccountConfig(params) {
137
+ const { cfg, accountId, input } = params;
138
+ const config = cfg;
139
+ const channels = (config.channels ?? {});
140
+ const clawhouse = (channels.clawhouse ?? {});
141
+ if (accountId === 'default') {
142
+ clawhouse.botToken = input.botToken;
143
+ clawhouse.apiUrl = input.apiUrl;
144
+ clawhouse.wsUrl = input.wsUrl;
145
+ clawhouse.userId = input.userId;
146
+ }
147
+ else {
148
+ const accounts = (clawhouse.accounts ?? {});
149
+ accounts[accountId] = {
150
+ botToken: input.botToken,
151
+ apiUrl: input.apiUrl,
152
+ wsUrl: input.wsUrl,
153
+ userId: input.userId,
154
+ enabled: true,
155
+ };
156
+ clawhouse.accounts = accounts;
157
+ }
158
+ // Always set top-level channel enabled
159
+ clawhouse.enabled = true;
160
+ channels.clawhouse = clawhouse;
161
+ config.channels = channels;
162
+ // Register plugin entry with channel ID to prevent auto-enable
163
+ // from creating a phantom disabled entry under the NPM package ID
164
+ const plugins = (config.plugins ?? {});
165
+ const entries = (plugins.entries ?? {});
166
+ const existing = (entries.clawhouse ?? {});
167
+ entries.clawhouse = { ...existing, enabled: true };
168
+ plugins.entries = entries;
169
+ config.plugins = plugins;
170
+ return config;
171
+ },
172
+ validateInput(params) {
173
+ const { input } = params;
174
+ if (!input.botToken?.startsWith('bot_')) {
175
+ return 'Bot token must start with "bot_"';
176
+ }
177
+ if (!input.apiUrl) {
178
+ return 'API URL is required';
179
+ }
180
+ if (!input.wsUrl) {
181
+ return 'WebSocket URL is required';
182
+ }
183
+ if (!input.userId) {
184
+ return 'User ID is required';
185
+ }
186
+ return null;
187
+ },
188
+ },
189
+ messaging: {
190
+ normalizeTarget(raw) {
191
+ const trimmed = raw.trim();
192
+ if (/^[UBPT][A-Z0-9]{10}$/i.test(trimmed))
193
+ return `user:${trimmed}`;
194
+ return undefined;
195
+ },
196
+ targetResolver: {
197
+ hint: CHANNEL_HINTS.targetResolver,
198
+ looksLikeId(raw) {
199
+ const t = raw.trim();
200
+ return /^[UBPT][A-Z0-9]{10}$/i.test(t) || /^user:/i.test(t);
201
+ },
202
+ },
203
+ },
204
+ security: {
205
+ resolveDmPolicy({ accountId }) {
206
+ const basePath = accountId && accountId !== 'default'
207
+ ? `channels.clawhouse.accounts.${accountId}.dm.`
208
+ : 'channels.clawhouse.dm.';
209
+ return {
210
+ policy: 'open',
211
+ allowFrom: ['*'],
212
+ allowFromPath: basePath,
213
+ approveHint: 'ClawHouse uses bot token auth — no pairing needed.',
214
+ };
215
+ },
216
+ },
217
+ onboarding: {
218
+ channel: 'clawhouse',
219
+ async getStatus(ctx) {
220
+ const ch = getChannelConfig(ctx.cfg);
221
+ const hasBotToken = Boolean(ch?.botToken);
222
+ const hasApiUrl = Boolean(ch?.apiUrl);
223
+ const hasUserId = Boolean(ch?.userId);
224
+ const configured = hasBotToken && hasApiUrl && hasUserId;
225
+ const statusLines = [];
226
+ if (configured) {
227
+ statusLines.push('Bot token: configured');
228
+ statusLines.push(`API URL: ${ch.apiUrl}`);
229
+ if (ch.wsUrl)
230
+ statusLines.push(`WS URL: ${ch.wsUrl}`);
231
+ }
232
+ else {
233
+ statusLines.push('Not configured');
234
+ }
235
+ return {
236
+ channel: 'clawhouse',
237
+ configured,
238
+ statusLines,
239
+ selectionHint: CHANNEL_HINTS.onboardingSelection,
240
+ quickstartScore: configured ? 0 : 50,
241
+ };
242
+ },
243
+ async configure(ctx) {
244
+ const ch = getChannelConfig(ctx.cfg);
245
+ const accountId = ctx.accountOverrides.accountId ?? 'default';
246
+ const botToken = await ctx.prompter.text({
247
+ message: 'Bot token',
248
+ initialValue: ch?.botToken ?? '',
249
+ placeholder: 'bot_xxxxxxxxxxxxxxxx',
250
+ validate: (v) => v.startsWith('bot_') ? undefined : 'Must start with "bot_"',
251
+ });
252
+ const apiUrl = await ctx.prompter.text({
253
+ message: 'API URL',
254
+ initialValue: ch?.apiUrl ?? '',
255
+ placeholder: 'https://app.clawhouse.net/v1/bot',
256
+ validate: (v) => v.startsWith('http')
257
+ ? undefined
258
+ : 'Must start with http:// or https://',
259
+ });
260
+ const wsUrl = await ctx.prompter.text({
261
+ message: 'WebSocket URL',
262
+ initialValue: ch?.wsUrl ?? '',
263
+ placeholder: 'wss://ws.clawhouse.net',
264
+ validate: (v) => v.startsWith('ws') ? undefined : 'Must start with ws:// or wss://',
265
+ });
266
+ const userId = await ctx.prompter.text({
267
+ message: 'Your ClawHouse User ID (shown in install instructions)',
268
+ initialValue: ch?.userId ?? '',
269
+ placeholder: 'U9QF3C6X1A',
270
+ validate: (v) => /^[UBPT][A-Z0-9]{10}$/i.test(v)
271
+ ? undefined
272
+ : 'Must be a valid ClawHouse ID (e.g. U9QF3C6X1A)',
273
+ });
274
+ const updatedCfg = clawHousePlugin.setup.applyAccountConfig({
275
+ cfg: ctx.cfg,
276
+ accountId,
277
+ input: { botToken, apiUrl, wsUrl, userId },
278
+ });
279
+ await ctx.prompter.note('ClawHouse channel configured.', 'Done');
280
+ return { cfg: updatedCfg, accountId };
281
+ },
282
+ disable(cfg) {
283
+ const config = JSON.parse(JSON.stringify(cfg));
284
+ const channels = (config.channels ?? {});
285
+ const clawhouse = (channels.clawhouse ?? {});
286
+ clawhouse.enabled = false;
287
+ channels.clawhouse = clawhouse;
288
+ config.channels = channels;
289
+ return config;
290
+ },
291
+ },
292
+ status: {
293
+ async probeAccount(params) {
294
+ const isConfigured = Boolean(params.account.botToken && params.account.apiUrl);
295
+ if (!isConfigured) {
296
+ return { ok: false, error: STATUS_MESSAGES.probeNotConfigured };
297
+ }
298
+ const client = new ClawHouseClient(params.account.botToken, params.account.apiUrl);
299
+ return client.probe(params.timeoutMs);
300
+ },
301
+ buildAccountSnapshot(params) {
302
+ const isConfigured = Boolean(params.account.botToken && params.account.apiUrl);
303
+ return {
304
+ accountId: params.account.accountId,
305
+ enabled: params.account.enabled,
306
+ configured: isConfigured,
307
+ running: params.runtime?.running,
308
+ lastStartAt: params.runtime?.lastStartAt,
309
+ lastStopAt: params.runtime?.lastStopAt,
310
+ lastError: params.runtime?.lastError,
311
+ probe: params.probe,
312
+ };
313
+ },
314
+ collectStatusIssues(accounts) {
315
+ const issues = [];
316
+ for (const snap of accounts) {
317
+ const id = snap.accountId ?? 'unknown';
318
+ if (!snap.configured) {
319
+ issues.push({
320
+ channel: 'clawhouse',
321
+ accountId: id,
322
+ kind: 'config',
323
+ message: STATUS_MESSAGES.notConfigured.message,
324
+ fix: STATUS_MESSAGES.notConfigured.fix,
325
+ });
326
+ continue;
327
+ }
328
+ if (!snap.enabled) {
329
+ issues.push({
330
+ channel: 'clawhouse',
331
+ accountId: id,
332
+ kind: 'config',
333
+ message: STATUS_MESSAGES.disabled.message,
334
+ fix: STATUS_MESSAGES.disabled.fix,
335
+ });
336
+ continue;
337
+ }
338
+ if (!snap.running) {
339
+ issues.push({
340
+ channel: 'clawhouse',
341
+ accountId: id,
342
+ kind: 'runtime',
343
+ message: STATUS_MESSAGES.notRunning.message,
344
+ });
345
+ }
346
+ if (snap.probe && !snap.probe.ok) {
347
+ issues.push({
348
+ channel: 'clawhouse',
349
+ accountId: id,
350
+ kind: 'auth',
351
+ message: `Probe failed: ${snap.probe.error ?? 'unknown error'}`,
352
+ fix: STATUS_MESSAGES.probeFailed.fix,
353
+ });
354
+ }
355
+ }
356
+ return issues;
357
+ },
358
+ },
359
+ };
360
+ //# sourceMappingURL=channel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channel.js","sourceRoot":"","sources":["../src/channel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,EACL,aAAa,EACb,YAAY,EACZ,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAShD,SAAS,gBAAgB,CAAC,GAAY;IACpC,MAAM,CAAC,GAAG,GAA4D,CAAC;IACvE,OAAO,CAAC,EAAE,QAAQ,EAAE,SAAS,IAAI,IAAI,CAAC;AACxC,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAkB;IAC5C,EAAE,EAAE,WAAW;IAEf,IAAI,EAAE,YAAY;IAElB,YAAY,EAAE;QACZ,IAAI,EAAE,IAAI;QACV,KAAK,EAAE,KAAK;QACZ,SAAS,EAAE,KAAK;QAChB,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,KAAK;KACf;IAED,MAAM,EAAE;QACN,cAAc,CAAC,GAAY;YACzB,MAAM,EAAE,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;YACjC,IAAI,CAAC,EAAE;gBAAE,OAAO,EAAE,CAAC;YACnB,IAAI,EAAE,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvD,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;YAClC,CAAC;YACD,OAAO,CAAC,SAAS,CAAC,CAAC;QACrB,CAAC;QAED,cAAc,CACZ,GAAY,EACZ,SAAyB;YAEzB,MAAM,EAAE,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;YACjC,IAAI,CAAC,EAAE,EAAE,CAAC;gBACR,OAAO;oBACL,SAAS,EAAE,SAAS,IAAI,SAAS;oBACjC,QAAQ,EAAE,EAAE;oBACZ,MAAM,EAAE,EAAE;oBACV,KAAK,EAAE,EAAE;oBACT,MAAM,EAAE,EAAE;oBACV,OAAO,EAAE,KAAK;iBACf,CAAC;YACJ,CAAC;YAED,MAAM,EAAE,GAAG,SAAS,IAAI,SAAS,CAAC;YAClC,MAAM,IAAI,GAAG,EAAE,KAAK,SAAS,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAE1E,OAAO;gBACL,SAAS,EAAE,EAAE;gBACb,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,EAAE;gBAC7B,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,EAAE;gBACzB,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE;gBACvB,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,EAAE;gBACzB,OAAO,EAAE,IAAI,CAAC,OAAO,KAAK,KAAK;aAChC,CAAC;QACJ,CAAC;QAED,YAAY,CAAC,OAAiC;YAC5C,OAAO,OAAO,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;QACrD,CAAC;QAED,SAAS,CAAC,OAAiC;YACzC,OAAO,OAAO,CAAC,OAAO,CAAC;QACzB,CAAC;QAED,eAAe,CAAC,OAAiC;YAC/C,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;YACjE,OAAO;gBACL,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,UAAU,EAAE,YAAY;aACzB,CAAC;QACJ,CAAC;KACF;IAED,QAAQ,EAAE;QACR,YAAY,EAAE,QAAQ;QACtB,WAAW,EAAE,UAAU;QACvB,cAAc,EAAE,IAAI;QAEpB,aAAa,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE;YACvC,oDAAoD;YACpD,MAAM,IAAI,GAAG,eAAe,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;YACnE,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,OAAO,IAAI,CAAC;YAC9B,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;QAC7B,CAAC;QAED,KAAK,CAAC,QAAQ,CAAC,GAAG;YAChB,MAAM,OAAO,GAAG,mBAAmB,EAAE,CAAC;YACtC,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YACxC,MAAM,EAAE,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;YACjC,IAAI,CAAC,EAAE,EAAE,CAAC;gBACR,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;YAClD,CAAC;YAED,MAAM,IAAI,GAAG,eAAe,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;YACvE,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAE/D,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,WAAW,CAAC;oBACvB,OAAO,EAAE,GAAG,CAAC,IAAI;oBACjB,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS;iBACxD,CAAC,CAAC;gBACH,OAAO;oBACL,OAAO,EAAE,WAAW;oBACpB,OAAO,EAAE,IAAI;oBACb,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS;iBAC1D,CAAC;YACJ,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;YAClD,CAAC;QACH,CAAC;KACF;IAED,OAAO,EAAE;QACP,KAAK,CAAC,YAAY,CAAC,GAAG;YACpB,OAAO,wBAAwB,CAAC,GAAG,CAAC,CAAC;QACvC,CAAC;QAED,KAAK,CAAC,WAAW,CAAC,GAAG;YACnB,MAAM,GAAG,GACP,GAAG,CAAC,GAAG,IAAI,mBAAmB,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;YACrE,GAAG,CAAC,IAAI,CAAC,8BAA8B,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;YACxD,GAAG,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC5D,CAAC;QAED,KAAK,CAAC,aAAa,CAAC,GAAyB;YAC3C,MAAM,GAAG,GACP,GAAG,CAAC,GAAG,IAAI,mBAAmB,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;YACrE,MAAM,OAAO,GAAG,GAAG,CAAC,OAEnB,CAAC;YAEF,yBAAyB;YACzB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAGhD,CAAC;YACF,MAAM,QAAQ,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAA4B,CAAC;YACpE,MAAM,SAAS,GAAG,CAAC,QAAQ,CAAC,SAAS,IAAI,EAAE,CAA4B,CAAC;YAExE,IAAI,GAAG,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;gBAChC,OAAO,SAAS,CAAC,QAAQ,CAAC;YAC5B,CAAC;iBAAM,CAAC;gBACN,MAAM,QAAQ,GAAG,CAAC,SAAS,CAAC,QAAQ,IAAI,EAAE,CAGzC,CAAC;gBACF,IAAI,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;oBAC5B,OAAO,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC;gBAC1C,CAAC;YACH,CAAC;YAED,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC;YAC/B,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;YAE3B,MAAM,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YAC7C,GAAG,CAAC,IAAI,CAAC,iCAAiC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;YAE3D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;QAC5C,CAAC;KACF;IAED,KAAK,EAAE;QACL,kBAAkB,CAAC,MAAM;YACvB,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;YACzC,MAAM,MAAM,GAAG,GAA8B,CAAC;YAC9C,MAAM,QAAQ,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAA4B,CAAC;YACpE,MAAM,SAAS,GAAG,CAAC,QAAQ,CAAC,SAAS,IAAI,EAAE,CAA4B,CAAC;YAExE,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC5B,SAAS,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;gBACpC,SAAS,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;gBAChC,SAAS,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;gBAC9B,SAAS,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;YAClC,CAAC;iBAAM,CAAC;gBACN,MAAM,QAAQ,GAAG,CAAC,SAAS,CAAC,QAAQ,IAAI,EAAE,CAA4B,CAAC;gBACvE,QAAQ,CAAC,SAAS,CAAC,GAAG;oBACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,OAAO,EAAE,IAAI;iBACd,CAAC;gBACF,SAAS,CAAC,QAAQ,GAAG,QAAQ,CAAC;YAChC,CAAC;YAED,uCAAuC;YACvC,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC;YACzB,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC;YAC/B,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;YAE3B,+DAA+D;YAC/D,kEAAkE;YAClE,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAA4B,CAAC;YAClE,MAAM,OAAO,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAA4B,CAAC;YACnE,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE,CAA4B,CAAC;YACtE,OAAO,CAAC,SAAS,GAAG,EAAE,GAAG,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YACnD,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;YAC1B,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;YAEzB,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,aAAa,CAAC,MAAM;YAClB,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;YACzB,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBACxC,OAAO,kCAAkC,CAAC;YAC5C,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;gBAClB,OAAO,qBAAqB,CAAC;YAC/B,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;gBACjB,OAAO,2BAA2B,CAAC;YACrC,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;gBAClB,OAAO,qBAAqB,CAAC;YAC/B,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;KACF;IAED,SAAS,EAAE;QACT,eAAe,CAAC,GAAW;YACzB,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;YAC3B,IAAI,uBAAuB,CAAC,IAAI,CAAC,OAAO,CAAC;gBAAE,OAAO,QAAQ,OAAO,EAAE,CAAC;YACpE,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,cAAc,EAAE;YACd,IAAI,EAAE,aAAa,CAAC,cAAc;YAClC,WAAW,CAAC,GAAW;gBACrB,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;gBACrB,OAAO,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC9D,CAAC;SACF;KACF;IAED,QAAQ,EAAE;QACR,eAAe,CAAC,EAAE,SAAS,EAAE;YAC3B,MAAM,QAAQ,GACZ,SAAS,IAAI,SAAS,KAAK,SAAS;gBAClC,CAAC,CAAC,+BAA+B,SAAS,MAAM;gBAChD,CAAC,CAAC,wBAAwB,CAAC;YAC/B,OAAO;gBACL,MAAM,EAAE,MAAM;gBACd,SAAS,EAAE,CAAC,GAAG,CAAC;gBAChB,aAAa,EAAE,QAAQ;gBACvB,WAAW,EAAE,oDAAoD;aAClE,CAAC;QACJ,CAAC;KACF;IAED,UAAU,EAAE;QACV,OAAO,EAAE,WAAW;QAEpB,KAAK,CAAC,SAAS,CAAC,GAAG;YACjB,MAAM,EAAE,GAAG,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACrC,MAAM,WAAW,GAAG,OAAO,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;YAC1C,MAAM,SAAS,GAAG,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YACtC,MAAM,SAAS,GAAG,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YACtC,MAAM,UAAU,GAAG,WAAW,IAAI,SAAS,IAAI,SAAS,CAAC;YAEzD,MAAM,WAAW,GAAa,EAAE,CAAC;YACjC,IAAI,UAAU,EAAE,CAAC;gBACf,WAAW,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;gBAC1C,WAAW,CAAC,IAAI,CAAC,YAAY,EAAG,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC3C,IAAI,EAAG,CAAC,KAAK;oBAAE,WAAW,CAAC,IAAI,CAAC,WAAW,EAAG,CAAC,KAAK,EAAE,CAAC,CAAC;YAC1D,CAAC;iBAAM,CAAC;gBACN,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACrC,CAAC;YAED,OAAO;gBACL,OAAO,EAAE,WAAW;gBACpB,UAAU;gBACV,WAAW;gBACX,aAAa,EAAE,aAAa,CAAC,mBAAmB;gBAChD,eAAe,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;aACrC,CAAC;QACJ,CAAC;QAED,KAAK,CAAC,SAAS,CAAC,GAAG;YACjB,MAAM,EAAE,GAAG,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACrC,MAAM,SAAS,GAAG,GAAG,CAAC,gBAAgB,CAAC,SAAS,IAAI,SAAS,CAAC;YAE9D,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACvC,OAAO,EAAE,WAAW;gBACpB,YAAY,EAAE,EAAE,EAAE,QAAQ,IAAI,EAAE;gBAChC,WAAW,EAAE,sBAAsB;gBACnC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CACd,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,wBAAwB;aAC9D,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACrC,OAAO,EAAE,SAAS;gBAClB,YAAY,EAAE,EAAE,EAAE,MAAM,IAAI,EAAE;gBAC9B,WAAW,EAAE,kCAAkC;gBAC/C,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CACd,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC;oBAClB,CAAC,CAAC,SAAS;oBACX,CAAC,CAAC,qCAAqC;aAC5C,CAAC,CAAC;YAEH,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACpC,OAAO,EAAE,eAAe;gBACxB,YAAY,EAAE,EAAE,EAAE,KAAK,IAAI,EAAE;gBAC7B,WAAW,EAAE,wBAAwB;gBACrC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CACd,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,iCAAiC;aACrE,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACrC,OAAO,EAAE,wDAAwD;gBACjE,YAAY,EAAE,EAAE,EAAE,MAAM,IAAI,EAAE;gBAC9B,WAAW,EAAE,YAAY;gBACzB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CACd,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC;oBAC7B,CAAC,CAAC,SAAS;oBACX,CAAC,CAAC,gDAAgD;aACvD,CAAC,CAAC;YAEH,MAAM,UAAU,GAAG,eAAe,CAAC,KAAM,CAAC,kBAAkB,CAAC;gBAC3D,GAAG,EAAE,GAAG,CAAC,GAAG;gBACZ,SAAS;gBACT,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;aAC3C,CAAC,CAAC;YAEH,MAAM,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,+BAA+B,EAAE,MAAM,CAAC,CAAC;YAEjE,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;QACxC,CAAC;QAED,OAAO,CAAC,GAAY;YAClB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAA4B,CAAC;YAC1E,MAAM,QAAQ,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAA4B,CAAC;YACpE,MAAM,SAAS,GAAG,CAAC,QAAQ,CAAC,SAAS,IAAI,EAAE,CAA4B,CAAC;YACxE,SAAS,CAAC,OAAO,GAAG,KAAK,CAAC;YAC1B,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC;YAC/B,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;YAC3B,OAAO,MAAM,CAAC;QAChB,CAAC;KACF;IAED,MAAM,EAAE;QACN,KAAK,CAAC,YAAY,CAAC,MAAM;YACvB,MAAM,YAAY,GAAG,OAAO,CAC1B,MAAM,CAAC,OAAO,CAAC,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CACjD,CAAC;YACF,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,eAAe,CAAC,kBAAkB,EAAE,CAAC;YAClE,CAAC;YACD,MAAM,MAAM,GAAG,IAAI,eAAe,CAChC,MAAM,CAAC,OAAO,CAAC,QAAQ,EACvB,MAAM,CAAC,OAAO,CAAC,MAAM,CACtB,CAAC;YACF,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACxC,CAAC;QAED,oBAAoB,CAAC,MAAM;YACzB,MAAM,YAAY,GAAG,OAAO,CAC1B,MAAM,CAAC,OAAO,CAAC,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CACjD,CAAC;YACF,OAAO;gBACL,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,SAAS;gBACnC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO;gBAC/B,UAAU,EAAE,YAAY;gBACxB,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO;gBAChC,WAAW,EAAE,MAAM,CAAC,OAAO,EAAE,WAAW;gBACxC,UAAU,EAAE,MAAM,CAAC,OAAO,EAAE,UAAU;gBACtC,SAAS,EAAE,MAAM,CAAC,OAAO,EAAE,SAAS;gBACpC,KAAK,EAAE,MAAM,CAAC,KAAK;aACpB,CAAC;QACJ,CAAC;QAED,mBAAmB,CAAC,QAAQ;YAC1B,MAAM,MAAM,GAA2C,EAAE,CAAC;YAE1D,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;gBAC5B,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC;gBAEvC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;oBACrB,MAAM,CAAC,IAAI,CAAC;wBACV,OAAO,EAAE,WAAW;wBACpB,SAAS,EAAE,EAAE;wBACb,IAAI,EAAE,QAAQ;wBACd,OAAO,EAAE,eAAe,CAAC,aAAa,CAAC,OAAO;wBAC9C,GAAG,EAAE,eAAe,CAAC,aAAa,CAAC,GAAG;qBACvC,CAAC,CAAC;oBACH,SAAS;gBACX,CAAC;gBAED,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;oBAClB,MAAM,CAAC,IAAI,CAAC;wBACV,OAAO,EAAE,WAAW;wBACpB,SAAS,EAAE,EAAE;wBACb,IAAI,EAAE,QAAQ;wBACd,OAAO,EAAE,eAAe,CAAC,QAAQ,CAAC,OAAO;wBACzC,GAAG,EAAE,eAAe,CAAC,QAAQ,CAAC,GAAG;qBAClC,CAAC,CAAC;oBACH,SAAS;gBACX,CAAC;gBAED,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;oBAClB,MAAM,CAAC,IAAI,CAAC;wBACV,OAAO,EAAE,WAAW;wBACpB,SAAS,EAAE,EAAE;wBACb,IAAI,EAAE,SAAS;wBACf,OAAO,EAAE,eAAe,CAAC,UAAU,CAAC,OAAO;qBAC5C,CAAC,CAAC;gBACL,CAAC;gBAED,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;oBACjC,MAAM,CAAC,IAAI,CAAC;wBACV,OAAO,EAAE,WAAW;wBACpB,SAAS,EAAE,EAAE;wBACb,IAAI,EAAE,MAAM;wBACZ,OAAO,EAAE,iBAAiB,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,eAAe,EAAE;wBAC/D,GAAG,EAAE,eAAe,CAAC,WAAW,CAAC,GAAG;qBACrC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC;KACF;CACF,CAAC"}
@@ -0,0 +1,61 @@
1
+ import type { ChannelProbeResult, MessagesResponse, WsTicketResponse, Task, TasksListResponse, ProjectsListResponse, CreateTaskResponse, CreateProjectResponse } from './types';
2
+ export declare class ClawHouseClient {
3
+ private botToken;
4
+ private apiUrl;
5
+ private requestTimeoutMs;
6
+ constructor(botToken: string, apiUrl: string, options?: {
7
+ requestTimeoutMs?: number;
8
+ });
9
+ private request;
10
+ typing(input?: {
11
+ taskId?: string;
12
+ }): Promise<void>;
13
+ sendMessage(input: {
14
+ userId?: string;
15
+ content: string;
16
+ taskId?: string;
17
+ attachments?: Array<{
18
+ s3Key: string;
19
+ name: string;
20
+ contentType: string;
21
+ size: number;
22
+ }>;
23
+ }): Promise<void>;
24
+ listMessages(input: {
25
+ userId?: string;
26
+ cursor?: string | null;
27
+ limit?: number;
28
+ }): Promise<MessagesResponse>;
29
+ getWsTicket(): Promise<WsTicketResponse>;
30
+ createTask(input: {
31
+ projectId: string;
32
+ title: string;
33
+ instructions?: string;
34
+ }): Promise<CreateTaskResponse>;
35
+ listTasks(input: {
36
+ projectId: string;
37
+ status?: string;
38
+ }): Promise<TasksListResponse>;
39
+ done(input: {
40
+ taskId: string;
41
+ reason: string;
42
+ deliverable?: string;
43
+ }): Promise<void>;
44
+ giveup(input: {
45
+ taskId: string;
46
+ reason: string;
47
+ deliverable?: string;
48
+ }): Promise<void>;
49
+ getNextTask(input?: {
50
+ projectId?: string;
51
+ }): Promise<Task | null>;
52
+ listProjects(): Promise<ProjectsListResponse>;
53
+ createProject(input: {
54
+ name: string;
55
+ key: string;
56
+ description?: string;
57
+ color?: string;
58
+ }): Promise<CreateProjectResponse>;
59
+ probe(timeoutMs: number): Promise<ChannelProbeResult>;
60
+ }
61
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,IAAI,EAEJ,iBAAiB,EACjB,oBAAoB,EACpB,kBAAkB,EAClB,qBAAqB,EACtB,MAAM,SAAS,CAAC;AASjB,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,gBAAgB,CAAS;gBAG/B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;QAAE,gBAAgB,CAAC,EAAE,MAAM,CAAA;KAAE;YAO3B,OAAO;IAqEf,MAAM,CAAC,KAAK,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlD,WAAW,CAAC,KAAK,EAAE;QACvB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,WAAW,CAAC,EAAE,KAAK,CAAC;YAClB,KAAK,EAAE,MAAM,CAAC;YACd,IAAI,EAAE,MAAM,CAAC;YACb,WAAW,EAAE,MAAM,CAAC;YACpB,IAAI,EAAE,MAAM,CAAC;SACd,CAAC,CAAC;KACJ,GAAG,OAAO,CAAC,IAAI,CAAC;IAIX,YAAY,CAAC,KAAK,EAAE;QACxB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAKvB,WAAW,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAKxC,UAAU,CAAC,KAAK,EAAE;QACtB,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAIzB,SAAS,CAAC,KAAK,EAAE;QACrB,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAIxB,IAAI,CAAC,KAAK,EAAE;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIX,MAAM,CAAC,KAAK,EAAE;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIX,WAAW,CAAC,KAAK,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAIjE,YAAY,IAAI,OAAO,CAAC,oBAAoB,CAAC;IAI7C,aAAa,CAAC,KAAK,EAAE;QACzB,IAAI,EAAE,MAAM,CAAC;QACb,GAAG,EAAE,MAAM,CAAC;QACZ,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAK5B,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;CA2B5D"}