@localhostdevs/sdk 0.13.0 → 0.15.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.
package/dist/bot.js CHANGED
@@ -5,8 +5,10 @@ import { join as pathJoin } from 'node:path';
5
5
  import { Transport } from './transport.js';
6
6
  import { readCredentialFor, writeCredentialFor } from './credentials.js';
7
7
  import { runDeviceFlow } from './sso.js';
8
- import { PollStore } from './pollStore.js';
9
- import { closeDuePolls, makeVoteHandler } from './poll.js';
8
+ import { CollectStore } from './collectStore.js';
9
+ import { closeDueByTime, makeSubmitHandler } from './collect.js';
10
+ import { toJsonSchema } from './jsonSchema.js';
11
+ import { argsToJsonSchema, returnsDataToJsonSchema, argsToZod, returnsDataToZod } from './argSchema.js';
10
12
  // Version constant is generated from package.json at build time by
11
13
  // scripts/generate-version.mjs — keeps the IDENTIFY-frame `sdkVersion`
12
14
  // field in sync with the published npm version instead of relying on a
@@ -47,9 +49,9 @@ export class Bot {
47
49
  cmdOpts = new Map();
48
50
  seen = new Set();
49
51
  seenQueue = [];
50
- pollOpts;
51
- pollStore = null;
52
- pollTimer = null;
52
+ collectOpts;
53
+ collectStore = null;
54
+ collectTimer = null;
53
55
  closing = false;
54
56
  reconnectTimer = null;
55
57
  reconnectAttempt = 0;
@@ -84,27 +86,64 @@ export class Bot {
84
86
  // see WHERE each instance runs. Explicit option wins, then LHD_INSTANCE_LABEL,
85
87
  // else the OS hostname.
86
88
  this.instanceLabel = opts.instanceLabel ?? process.env.LHD_INSTANCE_LABEL ?? hostname();
87
- this.pollOpts = {
88
- pollDbPath: opts.pollDbPath,
89
- onPollResult: opts.onPollResult,
89
+ this.collectOpts = {
90
+ collectDbPath: opts.collectDbPath,
91
+ onCollectResult: opts.onCollectResult,
90
92
  };
91
- // Register the internal vote action before connect(). The store is created
92
- // lazily on first vote / first ctx.poll so non-poll bots never touch sqlite.
93
- this.action('__poll_vote', (ctx) => makeVoteHandler(this.ensurePollStore())(ctx));
93
+ // Register the internal submit action before connect(). The store is created
94
+ // lazily on first submission / first ctx.collect so non-collect bots never
95
+ // touch sqlite.
96
+ this.action('__collect_submit', (ctx) => makeSubmitHandler(this.ensureCollectStore(), this.collectSink())(ctx));
94
97
  }
95
- cmd(name, handlerOrOpts, maybeHandler) {
96
- if (this.transport) {
97
- throw new Error('cmd() must be called before connect()');
98
+ /** Register a command from its definition object. The ONLY public way to add a command. */
99
+ cmd(def, handler) {
100
+ if (typeof def === 'string' || def === null || typeof def !== 'object') {
101
+ throw new Error("cmd() takes a command object, e.g. cmd({ name: 'x' }, handler)");
98
102
  }
99
- if (this.handlers.has(name)) {
100
- throw new Error(`duplicate handler for command ${name}`);
103
+ if (!def.name || typeof def.name !== 'string') {
104
+ throw new Error('cmd() command object requires a string `name`');
101
105
  }
102
- // Disambiguate overloads
103
- const opts = typeof handlerOrOpts === 'function' ? {} : handlerOrOpts;
104
- const handler = typeof handlerOrOpts === 'function' ? handlerOrOpts : maybeHandler;
105
- if (typeof handler !== 'function') {
106
- throw new Error(`cmd('${name}') missing handler function`);
106
+ const opts = {};
107
+ if (def.streaming !== undefined)
108
+ opts.streaming = def.streaming;
109
+ if (def.mimeType !== undefined)
110
+ opts.mimeType = def.mimeType;
111
+ // Advertise: args descriptor → inputSchema (args wins over legacy input zod).
112
+ if (def.args)
113
+ opts.advertiseInput = argsToJsonSchema(def.args);
114
+ else if (def.input)
115
+ opts.advertiseInput = toJsonSchema(def.input);
116
+ // returns → outputKind + outputSchema (returns wins over legacy output zod).
117
+ if (def.returns) {
118
+ opts.outputKind = def.returns.kind;
119
+ const outputSchema = returnsDataToJsonSchema(def.returns.data);
120
+ if (outputSchema !== undefined)
121
+ opts.advertiseOutput = outputSchema;
122
+ // Wire returns.data into the existing warn-only check path (L567).
123
+ const warnZod = returnsDataToZod(def.returns.data);
124
+ if (warnZod)
125
+ opts.output = warnZod;
107
126
  }
127
+ else if (def.output) {
128
+ opts.advertiseOutput = toJsonSchema(def.output);
129
+ // Keep opts.output for the warn-only output validation in makeContext.
130
+ opts.output = def.output;
131
+ }
132
+ // Validate path: only when explicitly opted in, and only for the args descriptor.
133
+ if (def.validate && def.args)
134
+ opts.argsZod = argsToZod(def.args);
135
+ else if (def.input)
136
+ opts.argsZod = def.input; // legacy zod validates as before
137
+ return this.registerHandler(def.name, opts, handler);
138
+ }
139
+ /** Internal: the single registration path. Not part of the public API. */
140
+ registerHandler(name, opts, handler) {
141
+ if (this.transport)
142
+ throw new Error('cmd()/action() must be called before connect()');
143
+ if (this.handlers.has(name))
144
+ throw new Error(`duplicate handler for command ${name}`);
145
+ if (typeof handler !== 'function')
146
+ throw new Error(`handler for ${name} must be a function`);
108
147
  this.handlers.set(name, handler);
109
148
  this.cmdOpts.set(name, opts);
110
149
  return this;
@@ -115,7 +154,7 @@ export class Bot {
115
154
  * command list (capability advertising / marketplace / `commands`
116
155
  * introspection). An action is simply a non-advertised command. */
117
156
  action(id, handler) {
118
- return this.cmd(id, { internal: true }, handler);
157
+ return this.registerHandler(id, { internal: true }, handler);
119
158
  }
120
159
  isStreamingFor(commandName) {
121
160
  const cmdLevel = this.cmdOpts.get(commandName)?.streaming;
@@ -131,14 +170,14 @@ export class Bot {
131
170
  this.closing = false;
132
171
  this.cachedApiKey = await this.resolveApiKey();
133
172
  await this.openTransport();
134
- // Recover any persisted polls so their close loop resumes after a restart.
135
- // Guarded so a bot with no poll DB (and no node:sqlite) is unaffected.
136
- if (existsSync(this.resolvePollDbPath())) {
173
+ // Recover any persisted collects so their close loop resumes after a restart.
174
+ // Guarded so a bot with no collect DB (and no node:sqlite) is unaffected.
175
+ if (existsSync(this.resolveCollectDbPath())) {
137
176
  try {
138
- this.ensurePollStore();
177
+ this.ensureCollectStore();
139
178
  }
140
179
  catch {
141
- // node:sqlite unavailable or DB unreadable — skip; non-poll bots run fine.
180
+ // node:sqlite unavailable or DB unreadable — skip; non-collect bots run fine.
142
181
  }
143
182
  }
144
183
  this.reconnectAttempt = 0;
@@ -166,6 +205,12 @@ export class Bot {
166
205
  if (typeof opts.mimeType === 'string' && opts.mimeType.length > 0) {
167
206
  entry.mimeType = opts.mimeType;
168
207
  }
208
+ if (opts.advertiseInput)
209
+ entry.inputSchema = opts.advertiseInput;
210
+ if (opts.advertiseOutput)
211
+ entry.outputSchema = opts.advertiseOutput;
212
+ if (opts.outputKind)
213
+ entry.outputKind = opts.outputKind;
169
214
  return entry;
170
215
  });
171
216
  const transport = new Transport({
@@ -254,13 +299,13 @@ export class Bot {
254
299
  clearTimeout(this.reconnectTimer);
255
300
  this.reconnectTimer = null;
256
301
  }
257
- if (this.pollTimer) {
258
- clearInterval(this.pollTimer);
259
- this.pollTimer = null;
302
+ if (this.collectTimer) {
303
+ clearInterval(this.collectTimer);
304
+ this.collectTimer = null;
260
305
  }
261
- if (this.pollStore) {
262
- this.pollStore.close();
263
- this.pollStore = null;
306
+ if (this.collectStore) {
307
+ this.collectStore.close();
308
+ this.collectStore = null;
264
309
  }
265
310
  if (this.transport) {
266
311
  await this.transport.close();
@@ -298,7 +343,7 @@ export class Bot {
298
343
  this.recordSeen(cmd.msgId);
299
344
  const handler = this.handlers.get(cmd.command);
300
345
  const streaming = this.isStreamingFor(cmd.command);
301
- const ctx = this.makeContext(cmd, streaming);
346
+ const { ctx, replyError } = this.makeContext(cmd, streaming);
302
347
  // Built-in `commands` fallback — only used if the bot didn't register
303
348
  // its own. Lets every bot answer "what can you do?" without ceremony.
304
349
  if (!handler && cmd.command === 'commands') {
@@ -334,6 +379,24 @@ export class Bot {
334
379
  }
335
380
  return;
336
381
  }
382
+ // Input validation: a declared zod schema (argsZod from cmd() or legacy input)
383
+ // rejects a malformed dispatch with a structured error and never runs the handler.
384
+ const inputSchema = this.cmdOpts.get(cmd.command)?.argsZod;
385
+ if (inputSchema) {
386
+ const parsed = inputSchema.safeParse(ctx.args);
387
+ if (!parsed.success) {
388
+ try {
389
+ replyError({
390
+ text: `Invalid arguments for ${cmd.command}: ${parsed.error.message}`,
391
+ data: { error: 'invalid_args', issues: parsed.error.issues },
392
+ });
393
+ }
394
+ catch (err) {
395
+ logError('invalid-args reply failed:', err);
396
+ }
397
+ return;
398
+ }
399
+ }
337
400
  try {
338
401
  await handler(ctx);
339
402
  }
@@ -341,10 +404,11 @@ export class Bot {
341
404
  logError('command handler error:', err);
342
405
  // If the handler threw before sending a reply, send a structured error
343
406
  // frame so the consumer doesn't time out waiting for a reply that will
344
- // never arrive. ctx.reply() itself throws if already called swallow
345
- // that case.
407
+ // never arrive. replyError bypasses kind enforcement (this is an SDK
408
+ // diagnostic frame, not a handler reply) but still runs the double-reply
409
+ // guard — so if the handler already replied, we silently skip.
346
410
  try {
347
- await ctx.reply({
411
+ replyError({
348
412
  text: `handler threw: ${err instanceof Error ? err.message : String(err)}`,
349
413
  });
350
414
  }
@@ -354,51 +418,63 @@ export class Bot {
354
418
  throw err;
355
419
  }
356
420
  }
357
- resolvePollDbPath() {
358
- return (this.pollOpts.pollDbPath ??
359
- process.env.LHD_POLL_DB_PATH ??
360
- pathJoin(homedir(), '.localhostdevs', 'polls.db'));
421
+ resolveCollectDbPath() {
422
+ return (this.collectOpts.collectDbPath ??
423
+ process.env.LHD_COLLECT_DB_PATH ??
424
+ pathJoin(homedir(), '.localhostdevs', 'collects.db'));
361
425
  }
362
- /** Lazily open the poll store (node:sqlite) and start the close loop. */
363
- ensurePollStore() {
364
- if (!this.pollStore) {
426
+ /** Lazily open the collect store (node:sqlite) and start the close loop. */
427
+ ensureCollectStore() {
428
+ if (!this.collectStore) {
365
429
  try {
366
- this.pollStore = new PollStore(this.resolvePollDbPath());
430
+ this.collectStore = new CollectStore(this.resolveCollectDbPath());
367
431
  }
368
432
  catch (err) {
369
- throw new Error(`polls require Node >= 22.5 (node:sqlite): ${err instanceof Error ? err.message : String(err)}`);
433
+ throw new Error(`collects require Node >= 22.5 (node:sqlite): ${err instanceof Error ? err.message : String(err)}`);
370
434
  }
371
- this.startPollLoop();
435
+ this.startCollectLoop();
372
436
  }
373
- return this.pollStore;
437
+ return this.collectStore;
374
438
  }
375
- /** The sink invoked when a poll closes: user callback if set, else log. Must
376
- * not throw — a throwing sink leaves the poll open for retry. */
377
- pollSink() {
439
+ /** The sink invoked when a collect closes: user callback if set, else push a
440
+ * frame / log. Must not throw — a throwing sink leaves the collect open for
441
+ * retry. */
442
+ collectSink() {
378
443
  return async (event) => {
379
- if (this.pollOpts.onPollResult) {
380
- await this.pollOpts.onPollResult(event);
444
+ if (this.collectOpts.onCollectResult) {
445
+ await this.collectOpts.onCollectResult(event);
446
+ return;
447
+ }
448
+ if (this.transport) {
449
+ this.transport.sendCollectResult(event.promptId, event.result);
381
450
  }
382
451
  else {
383
- logInfo(`[poll] ${event.promptId} closed → ${event.result.action ?? '(no votes)'}`);
452
+ logInfo(`[collect] ${event.promptId} closed (offline)`);
384
453
  }
385
454
  };
386
455
  }
387
- startPollLoop() {
388
- if (this.pollTimer)
456
+ startCollectLoop() {
457
+ if (this.collectTimer)
389
458
  return;
390
459
  const tick = () => {
391
- if (this.pollStore) {
392
- void closeDuePolls(this.pollStore, Date.now(), this.pollSink()).catch(() => { });
460
+ if (this.collectStore) {
461
+ void closeDueByTime(this.collectStore, Date.now(), this.collectSink()).catch(() => { });
393
462
  }
394
463
  };
395
- this.pollTimer = setInterval(tick, 30_000);
396
- this.pollTimer.unref();
464
+ this.collectTimer = setInterval(tick, 30_000);
465
+ this.collectTimer.unref();
397
466
  tick();
398
467
  }
399
468
  makeContext(cmd, streaming) {
400
469
  let replied = false;
401
470
  const transport = this.transport;
471
+ const outputSchema = this.cmdOpts.get(cmd.command)?.output;
472
+ const declaredKind = this.cmdOpts.get(cmd.command)?.outputKind;
473
+ const assertKind = (actual) => {
474
+ if (declaredKind && declaredKind !== actual) {
475
+ throw new Error(`command ${cmd.command} declared returns.kind='${declaredKind}' but sent a '${actual}' reply`);
476
+ }
477
+ };
402
478
  // Interactive Prompts: the server injects the answering user's id as the
403
479
  // reserved `args._user`. Lift it onto ctx.user and strip it from ctx.args
404
480
  // so handlers never see the reserved key. Undefined for normal commands.
@@ -431,7 +507,17 @@ export class Bot {
431
507
  ...(answeringUser ? { user: answeringUser } : {}),
432
508
  msgId: cmd.msgId,
433
509
  reply: async (body) => {
510
+ assertKind((body.kind ?? 'text'));
434
511
  guardReply();
512
+ // Warn-only output validation: a declared output schema that the
513
+ // structured `data` violates logs a warning but NEVER blocks the
514
+ // user-facing reply — schema drift must not break a response.
515
+ if (outputSchema) {
516
+ const res = outputSchema.safeParse(body.data);
517
+ if (!res.success) {
518
+ logWarn(`output for ${cmd.command} does not match its declared schema (sending anyway): ${res.error.message}`);
519
+ }
520
+ }
435
521
  // guardReply throws if transport is null, so the non-null assertion
436
522
  // below is safe — TypeScript can't see through the closure.
437
523
  transport.sendReply(cmd.msgId, body);
@@ -451,6 +537,7 @@ export class Bot {
451
537
  if (header !== undefined && typeof header !== 'string') {
452
538
  throw new Error(`replyList() header must be a string when provided (msgId=${cmd.msgId})`);
453
539
  }
540
+ assertKind('list');
454
541
  guardReply();
455
542
  const body = {
456
543
  kind: 'list',
@@ -479,6 +566,7 @@ export class Bot {
479
566
  throw new Error(`replyTable() row[${r}] has ${Array.isArray(row) ? row.length : 'non-array'} cell(s), expected ${cols} (msgId=${cmd.msgId})`);
480
567
  }
481
568
  }
569
+ assertKind('table');
482
570
  guardReply();
483
571
  const out = {
484
572
  kind: 'table',
@@ -510,6 +598,7 @@ export class Bot {
510
598
  if (!base64) {
511
599
  throw new Error(`replyImage() requires non-empty image data (msgId=${cmd.msgId})`);
512
600
  }
601
+ assertKind('image');
513
602
  guardReply();
514
603
  const out = {
515
604
  kind: 'image',
@@ -536,6 +625,7 @@ export class Bot {
536
625
  throw new Error(`replyButtons() button[${i}] is missing a non-empty action (msgId=${cmd.msgId})`);
537
626
  }
538
627
  }
628
+ assertKind('buttons');
539
629
  guardReply();
540
630
  const out = {
541
631
  kind: 'buttons',
@@ -582,50 +672,82 @@ export class Bot {
582
672
  }));
583
673
  await ctx.replyButtons(text, buttons);
584
674
  },
585
- poll: async (opts) => {
675
+ collect: async (opts) => {
586
676
  // Validate FIRST — see comment on replyList above — so a bad call
587
677
  // doesn't burn the one-reply slot.
588
- if (typeof opts?.question !== 'string' || opts.question.length === 0) {
589
- throw new Error(`poll() requires a non-empty question (msgId=${cmd.msgId})`);
678
+ if (typeof opts?.prompt?.text !== 'string' || opts.prompt.text.length === 0) {
679
+ throw new Error(`collect() requires a non-empty prompt.text (msgId=${cmd.msgId})`);
590
680
  }
591
- if (!Array.isArray(opts.options) || opts.options.length < 2 || opts.options.length > 10) {
592
- throw new Error(`poll() requires 2–10 options (msgId=${cmd.msgId})`);
681
+ if (opts.submission !== 'option' && opts.submission !== 'text') {
682
+ throw new Error(`collect() submission must be 'option' or 'text' (msgId=${cmd.msgId})`);
593
683
  }
594
- const seen = new Set();
595
- for (let i = 0; i < opts.options.length; i++) {
596
- const o = opts.options[i];
597
- if (!o || typeof o.label !== 'string' || o.label.length === 0) {
598
- throw new Error(`poll() option[${i}] is missing a non-empty label (msgId=${cmd.msgId})`);
599
- }
600
- if (typeof o.action !== 'string' || o.action.length === 0) {
601
- throw new Error(`poll() option[${i}] is missing a non-empty action (msgId=${cmd.msgId})`);
684
+ if (opts.aggregate !== 'plurality' && opts.aggregate !== 'list') {
685
+ throw new Error(`collect() aggregate must be 'plurality' or 'list' (msgId=${cmd.msgId})`);
686
+ }
687
+ // plurality only makes sense over option submissions.
688
+ if (opts.aggregate === 'plurality' && opts.submission !== 'option') {
689
+ throw new Error(`collect() aggregate:'plurality' requires submission:'option' (msgId=${cmd.msgId})`);
690
+ }
691
+ if (opts.submission === 'option') {
692
+ if (!Array.isArray(opts.options) || opts.options.length < 2 || opts.options.length > 10) {
693
+ throw new Error(`collect() submission:'option' requires 2–10 options (msgId=${cmd.msgId})`);
602
694
  }
603
- if (seen.has(o.action)) {
604
- throw new Error(`poll() option actions must be unique (duplicate '${o.action}', msgId=${cmd.msgId})`);
695
+ const seen = new Set();
696
+ for (let i = 0; i < opts.options.length; i++) {
697
+ const o = opts.options[i];
698
+ if (!o || typeof o.label !== 'string' || o.label.length === 0) {
699
+ throw new Error(`collect() option[${i}] is missing a non-empty label (msgId=${cmd.msgId})`);
700
+ }
701
+ if (typeof o.action !== 'string' || o.action.length === 0) {
702
+ throw new Error(`collect() option[${i}] is missing a non-empty action (msgId=${cmd.msgId})`);
703
+ }
704
+ if (seen.has(o.action)) {
705
+ throw new Error(`collect() option actions must be unique (duplicate '${o.action}', msgId=${cmd.msgId})`);
706
+ }
707
+ seen.add(o.action);
605
708
  }
606
- seen.add(o.action);
607
709
  }
608
- const rawDur = opts.durationSeconds ?? 86400;
609
- const dur = Math.min(604800, Math.max(300, Math.floor(rawDur)));
710
+ if (opts.after == null && opts.until == null) {
711
+ throw new Error(`collect() requires at least one of after / until (msgId=${cmd.msgId})`);
712
+ }
713
+ const after = opts.after != null ? Math.min(604800, Math.max(300, Math.floor(opts.after))) : null;
714
+ const until = opts.until ?? null;
610
715
  const promptId = nanoid();
611
- const closesAt = Date.now() + dur * 1000;
612
- this.ensurePollStore().openPoll({
716
+ const closesAt = after != null ? Date.now() + after * 1000 : null;
717
+ const options = opts.options ?? [];
718
+ this.ensureCollectStore().openCollect({
613
719
  promptId,
614
- question: opts.question,
615
- options: opts.options,
720
+ submission: opts.submission,
721
+ options,
722
+ aggregate: opts.aggregate,
616
723
  closesAt,
724
+ until,
617
725
  origin: { msgId: cmd.msgId },
618
726
  });
727
+ assertKind('collect');
619
728
  guardReply();
620
729
  transport.sendReply(cmd.msgId, {
621
- kind: 'poll',
730
+ kind: 'collect',
622
731
  promptId,
623
- question: opts.question,
624
- options: opts.options,
625
- closesAt,
732
+ prompt: opts.prompt,
733
+ submission: opts.submission,
734
+ options,
735
+ aggregate: opts.aggregate,
736
+ ...(closesAt != null ? { closesAt } : {}),
737
+ ...(until != null ? { until } : {}),
626
738
  });
627
739
  return { promptId };
628
740
  },
741
+ poll: async (opts) => {
742
+ // Thin wrapper: a poll is an option+plurality collect with a time close.
743
+ return ctx.collect({
744
+ prompt: { text: opts.question },
745
+ submission: 'option',
746
+ options: opts.options,
747
+ aggregate: 'plurality',
748
+ after: opts.durationSeconds ?? 86400,
749
+ });
750
+ },
629
751
  };
630
752
  if (streaming) {
631
753
  ctx.update = async ({ progress, ...body }) => {
@@ -638,7 +760,15 @@ export class Bot {
638
760
  transport.sendUpdate(cmd.msgId, progress, body);
639
761
  };
640
762
  }
641
- return ctx;
763
+ // Internal sender for SDK-generated error/diagnostic frames (invalid_args,
764
+ // handler-threw recovery). Bypasses assertKind — kind enforcement is a
765
+ // contract on the HANDLER's reply, not on SDK infrastructure frames — but
766
+ // still runs guardReply so double-reply protection stays intact.
767
+ const replyError = (body) => {
768
+ guardReply();
769
+ transport.sendReply(cmd.msgId, body);
770
+ };
771
+ return { ctx, replyError };
642
772
  }
643
773
  isDuplicate(msgId) {
644
774
  return this.seen.has(msgId);
package/dist/bot.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"bot.js","sourceRoot":"","sources":["../src/bot.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bot.js","sourceRoot":"","sources":["../src/bot.ts"],"names":[],"mappings":"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"}