@falai/agent 4.0.0-alpha.12 → 4.0.0-alpha.13

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 (55) hide show
  1. package/dist/cjs/core/FlowSpec.d.ts +2 -0
  2. package/dist/cjs/core/FlowSpec.d.ts.map +1 -1
  3. package/dist/cjs/core/FlowSpec.js +25 -2
  4. package/dist/cjs/core/FlowSpec.js.map +1 -1
  5. package/dist/cjs/core/Runner.d.ts +6 -0
  6. package/dist/cjs/core/Runner.d.ts.map +1 -1
  7. package/dist/cjs/core/Runner.js +63 -12
  8. package/dist/cjs/core/Runner.js.map +1 -1
  9. package/dist/cjs/types/flow.d.ts +14 -0
  10. package/dist/cjs/types/flow.d.ts.map +1 -1
  11. package/dist/cjs/types/session.d.ts +1 -1
  12. package/dist/cjs/types/session.d.ts.map +1 -1
  13. package/dist/cjs/utils/outcomes.d.ts +1 -0
  14. package/dist/cjs/utils/outcomes.d.ts.map +1 -1
  15. package/dist/cjs/utils/outcomes.js +1 -0
  16. package/dist/cjs/utils/outcomes.js.map +1 -1
  17. package/dist/cjs/utils/schema.d.ts +3 -3
  18. package/dist/cjs/utils/schema.d.ts.map +1 -1
  19. package/dist/cjs/utils/schema.js +4 -3
  20. package/dist/cjs/utils/schema.js.map +1 -1
  21. package/dist/core/FlowSpec.d.ts +2 -0
  22. package/dist/core/FlowSpec.d.ts.map +1 -1
  23. package/dist/core/FlowSpec.js +26 -3
  24. package/dist/core/FlowSpec.js.map +1 -1
  25. package/dist/core/Runner.d.ts +6 -0
  26. package/dist/core/Runner.d.ts.map +1 -1
  27. package/dist/core/Runner.js +63 -12
  28. package/dist/core/Runner.js.map +1 -1
  29. package/dist/types/flow.d.ts +14 -0
  30. package/dist/types/flow.d.ts.map +1 -1
  31. package/dist/types/session.d.ts +1 -1
  32. package/dist/types/session.d.ts.map +1 -1
  33. package/dist/utils/outcomes.d.ts +1 -0
  34. package/dist/utils/outcomes.d.ts.map +1 -1
  35. package/dist/utils/outcomes.js +1 -0
  36. package/dist/utils/outcomes.js.map +1 -1
  37. package/dist/utils/schema.d.ts +3 -3
  38. package/dist/utils/schema.d.ts.map +1 -1
  39. package/dist/utils/schema.js +4 -3
  40. package/dist/utils/schema.js.map +1 -1
  41. package/docs/concepts/collection.md +40 -5
  42. package/docs/concepts/pipeline.md +3 -2
  43. package/docs/reference/fields.md +5 -3
  44. package/docs/reference/flow-spec.md +6 -3
  45. package/docs/reference/flow.md +7 -2
  46. package/docs/reference/outcomes.md +2 -1
  47. package/docs/reference/step.md +5 -2
  48. package/docs/rfc/v4-one-flow.md +2 -0
  49. package/package.json +1 -1
  50. package/src/core/FlowSpec.ts +32 -4
  51. package/src/core/Runner.ts +56 -10
  52. package/src/types/flow.ts +14 -0
  53. package/src/types/session.ts +1 -0
  54. package/src/utils/outcomes.ts +1 -0
  55. package/src/utils/schema.ts +4 -3
@@ -18,7 +18,7 @@
18
18
  import { FlowConfigurationError } from "../types/errors.js";
19
19
  import { isDuration } from "../utils/duration.js";
20
20
  import { splitPhrases } from "../utils/phrases.js";
21
- import { toWireSchema } from "../utils/schema.js";
21
+ import { extractMode, toWireSchema } from "../utils/schema.js";
22
22
  // ── fromSpec / toSpec ───────────────────────────────────────────────────
23
23
  /**
24
24
  * A spec as a typed flow. The slugs and names inside a spec are strings from
@@ -50,6 +50,7 @@ export function toSpec(flow) {
50
50
  on: flow.on?.map((trigger, i) => triggerToSpec(trigger, at(`trigger #${i + 1}`))),
51
51
  anchor: flow.anchor,
52
52
  while: jsonPred(flow.while, at("while")),
53
+ collect: flow.collect,
53
54
  clearOnStart: flow.clearOnStart,
54
55
  steps: flow.steps.map((step) => stepToSpec(step, at(`step "${step.id}"`))),
55
56
  onEnd: flow.onEnd,
@@ -97,11 +98,13 @@ function stepToSpec(step, at) {
97
98
  instructions: step.instructions?.map((ins, i) => instructionToSpec(ins, `${at} instructions[${i}]`)),
98
99
  };
99
100
  if (step.collect !== undefined) {
100
- return compact({ ...base, kind: "collect", collect: step.collect, prompt: step.prompt, ...talk });
101
+ return compact({ ...base, kind: "collect", collect: step.collect, prompt: step.prompt, question: step.question, ...talk });
101
102
  }
102
103
  if (step.prompt === undefined) {
103
104
  throw problem(at, "has neither prompt nor collect", "A talk step needs a guideline, fields to collect, or both.");
104
105
  }
106
+ if (step.question !== undefined)
107
+ throw questionWithoutCollect(at);
105
108
  return compact({ ...base, kind: "prompt", prompt: step.prompt, ...talk });
106
109
  }
107
110
  /** `typeof step.wait` alone does not narrow the union for tsc; this does. */
@@ -256,8 +259,18 @@ export function validateFlow(input, registries) {
256
259
  }
257
260
  }
258
261
  };
262
+ for (const field of flow.collect ?? [])
263
+ slug(field, flowAt, "collect");
259
264
  for (const field of flow.clearOnStart ?? [])
260
265
  slug(field, flowAt, "clearOnStart");
266
+ // A field taken only from the answer to a step that asks it can never be filled when no step asks it.
267
+ const asked = new Set(flow.steps.flatMap((step) => step.collect ?? []));
268
+ for (const field of flow.collect ?? []) {
269
+ if (!asked.has(field) && extractMode(fields[field]) === "asked") {
270
+ warnings.push(`${flowAt}: collect lists "${field}", which is only taken from the answer to a step that asks it, and no ` +
271
+ "step does. Add it to a step's collect, or set extract: 'anywhere' on the field.");
272
+ }
273
+ }
261
274
  pred(flow.while, flowAt, "while");
262
275
  toolNames(flow.tools, flowAt);
263
276
  flow.instructions?.forEach((ins, i) => pred(ins.if, flowAt, `instructions[${i}].if`));
@@ -307,8 +320,13 @@ export function validateFlow(input, registries) {
307
320
  slug(field, at, "collect");
308
321
  for (const field of Object.keys(step.ask ?? {}))
309
322
  slug(field, at, "ask");
323
+ if (step.question !== undefined && !step.collect?.length)
324
+ throw questionWithoutCollect(at);
310
325
  const fields_ = step.collect ?? [];
311
- if (step.prompt === undefined && fields_.length > 0 && fields_.every((f) => !step.ask?.[f] && !fields[f].ask)) {
326
+ if (step.prompt === undefined &&
327
+ step.question === undefined &&
328
+ fields_.length > 0 &&
329
+ fields_.every((f) => !step.ask?.[f] && !fields[f].ask)) {
312
330
  warnings.push(`${at}: collects ${fields_.map((f) => `"${f}"`).join(", ")} with no prompt and no ask; the AI has nothing ` +
313
331
  "to go on. Add a prompt or an ask per field.");
314
332
  }
@@ -458,6 +476,7 @@ export function flowSpecSchema(registries) {
458
476
  kind: enumOf(["collect"]),
459
477
  collect: { ...slugList, description: "Fields the AI asks for until they are known" },
460
478
  prompt: orNull(STRING),
479
+ question: orNull({ type: "string", description: "A fixed first question, sent word for word; later asks are the AI's" }),
461
480
  maxAsks: orNull({ ...INTEGER, description: "Times a field may be asked before it is skipped; default 3" }),
462
481
  branches,
463
482
  }),
@@ -500,6 +519,7 @@ export function flowSpecSchema(registries) {
500
519
  on: orNull(list(trigger, "What starts a run; null = started by hand")),
501
520
  anchor: orNull({ type: "string", description: "'session' (default) or a host anchor such as 'lead'" }),
502
521
  while: orNull({ ...condition, description: "The run ends when this stops holding" }),
522
+ collect: slugList && orNull({ ...slugList, description: "The data this flow needs; its steps ask for it in order, and any of it the lead gives is noted" }),
503
523
  clearOnStart: slugList && orNull({ ...slugList, description: "Fields to forget when a run starts" }),
504
524
  steps: list(step, "In order; a run moves to the next step unless `then` says otherwise"),
505
525
  onEnd: orNull(enumOf(["end", "stay", "reset"], "After the last step: end the run, stay on the last talk step it took answering every message, or reset to the first")),
@@ -543,6 +563,9 @@ function orNull(schema) {
543
563
  return typeof schema.type === "string" ? { ...schema, type: [schema.type, "null"] } : { anyOf: [schema, NULL] };
544
564
  }
545
565
  // ── Shared helpers ──────────────────────────────────────────────────────
566
+ function questionWithoutCollect(at) {
567
+ return problem(at, "has a question but collects nothing", "A fixed question asks for fields: add collect, or send the text with a say step.");
568
+ }
546
569
  function problem(at, what, fix) {
547
570
  return new FlowConfigurationError(`[FlowConfigurationError] ${at}: ${what}. ${fix}`);
548
571
  }
@@ -1 +1 @@
1
- {"version":3,"file":"FlowSpec.js","sourceRoot":"","sources":["../../src/core/FlowSpec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FlowSpec.js","sourceRoot":"","sources":["../../src/core/FlowSpec.ts"],"names":[],"mappings":"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"}
@@ -130,6 +130,12 @@ export declare class Runner<C = unknown, D = unknown> {
130
130
  /** Validate a raw extracted value and write it; unknown or invalid values leave an outcome line instead. */
131
131
  private writeField;
132
132
  advance(turn: Turn<C, D>): Promise<TalkRequest<C, D> | IdleRequest<C, D> | null>;
133
+ /**
134
+ * Send the step's fixed question when this is its first ask: every field it collects still unknown, none asked yet,
135
+ * and the run not staying (a staying run answers the lead). The question counts as one ask of each field. False when
136
+ * the AI should phrase the ask instead.
137
+ */
138
+ private askFixed;
133
139
  /**
134
140
  * Everything Speak needs for this turn's one speaker. Instructions are agent,
135
141
  * then flow, then step (idle: agent, then idle), each already judged by its
@@ -1 +1 @@
1
- {"version":3,"file":"Runner.d.ts","sourceRoot":"","sources":["../../src/core/Runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Runner.d.ts","sourceRoot":"","sources":["../../src/core/Runner.ts"],"names":[],"mappings":"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"}
@@ -64,6 +64,15 @@ function defaultRepeat(kind) {
64
64
  function talkKind(step) {
65
65
  return step.collect?.length ? "collect" : "prompt";
66
66
  }
67
+ /** Everything a flow collects: its own `collect`, then each talk step's, once each. */
68
+ function flowFields(flow) {
69
+ const fields = new Set(flow.collect);
70
+ for (const step of flow.steps)
71
+ if (isTalk(step))
72
+ for (const field of step.collect ?? [])
73
+ fields.add(field);
74
+ return [...fields];
75
+ }
67
76
  function kindOf(step) {
68
77
  if (!step)
69
78
  return "if";
@@ -468,18 +477,28 @@ export class Runner {
468
477
  }
469
478
  const fields = {};
470
479
  const data = turn.session.data;
480
+ const harvestable = (field) => {
481
+ const def = this.options.fields[field];
482
+ return def !== undefined && !isKnown(data[field]) && extractMode(def) === "anywhere";
483
+ };
471
484
  for (const flow of [...(floorFlow ? [floorFlow] : []), ...eligible]) {
472
- for (const step of flow.steps) {
473
- if (!isTalk(step))
474
- continue;
475
- for (const field of step.collect ?? []) {
476
- const def = this.options.fields[field];
477
- if (def && !isKnown(data[field]) && extractMode(def) === "anywhere")
478
- fields[field] = def;
479
- }
480
- }
485
+ for (const field of flowFields(flow).filter(harvestable))
486
+ fields[field] = this.options.fields[field];
487
+ }
488
+ const judging = messageFlows.length > 0 || mentionFlows.length > 0 || branches.length > 0 || Object.keys(fields).length > 0;
489
+ // With nobody on the floor the catch-all may take this message, and an opening message often says the most. The
490
+ // fields its first step asks ride on that step's speak call, so alone they spend no call; a fixed question has no speak call.
491
+ // ponytail: "first step" is steps[0]; a catch-all that opens with a say or an if pays the call for that step's fields too.
492
+ const fallback = floorRun ? undefined : this.messageFlows(turn, (list) => list.length === 0)[0];
493
+ if (fallback) {
494
+ const first = fallback.steps[0];
495
+ const free = new Set(first && isTalk(first) && first.question === undefined ? first.collect : []);
496
+ const own = flowFields(fallback).filter(harvestable);
497
+ if (judging || own.some((field) => !free.has(field)))
498
+ for (const field of own)
499
+ fields[field] = this.options.fields[field];
481
500
  }
482
- if (!messageFlows.length && !mentionFlows.length && !branches.length && !Object.keys(fields).length)
501
+ if (!judging && !Object.keys(fields).length)
483
502
  return null;
484
503
  return {
485
504
  text: turn.what.text,
@@ -651,7 +670,33 @@ export class Runner {
651
670
  turn.queue.push(resumed);
652
671
  await this.drain(turn);
653
672
  }
654
- return this.speaker(turn);
673
+ const speaker = this.speaker(turn);
674
+ if (speaker && !("idle" in speaker) && this.askFixed(turn, speaker)) {
675
+ turn.talk = undefined;
676
+ return null;
677
+ }
678
+ return speaker;
679
+ }
680
+ /**
681
+ * Send the step's fixed question when this is its first ask: every field it collects still unknown, none asked yet,
682
+ * and the run not staying (a staying run answers the lead). The question counts as one ask of each field. False when
683
+ * the AI should phrase the ask instead.
684
+ */
685
+ askFixed(turn, { run, step, pending }) {
686
+ const { question, collect = [] } = step;
687
+ if (question === undefined || run.staying)
688
+ return false;
689
+ if (pending.length !== collect.length || pending.some((field) => (run.asked[field] ?? 0) > 0))
690
+ return false;
691
+ const key = this.stepKey(run, step);
692
+ turn.messages.push({ text: render(question, this.scope(turn, run)), kind: "verbatim", afterMs: turn.afterMs, key, runId: run.id, stepId: step.id });
693
+ turn.afterMs = 0;
694
+ turn.spokeBy.add(run.id);
695
+ turn.spoke = true;
696
+ for (const field of pending)
697
+ run.asked[field] = (run.asked[field] ?? 0) + 1;
698
+ this.outcome(turn, run, { kind: "collect", status: "ok", key, code: "asked-fixed", stepId: step.id });
699
+ return true;
655
700
  }
656
701
  /**
657
702
  * Everything Speak needs for this turn's one speaker. Instructions are agent,
@@ -802,8 +847,11 @@ export class Runner {
802
847
  }
803
848
  }
804
849
  run.status = "asking";
850
+ // Reached after Speak (settle's drain), a talk step waits for the next message; a fixed question costs no call, so it goes out now, as a say would.
805
851
  if (!turn.speakDone)
806
852
  turn.talk = { run, flow, step, pending };
853
+ else
854
+ this.askFixed(turn, { run, flow, step, pending });
807
855
  return;
808
856
  }
809
857
  if (isSay(step)) {
@@ -946,8 +994,11 @@ export class Runner {
946
994
  }
947
995
  if ("step" in target) {
948
996
  const data = turn.session.data;
949
- for (const field of target.clear ?? [])
997
+ // Forgetting a field means asking for it from scratch: its ask count goes too, so a fixed question goes out again.
998
+ for (const field of target.clear ?? []) {
950
999
  delete data[field];
1000
+ delete run.asked[field];
1001
+ }
951
1002
  this.jump(turn, run, flow, target.step);
952
1003
  return;
953
1004
  }