@owlmeans/agent-common 0.1.18-rc.24 → 0.1.18-rc.25

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 CHANGED
@@ -46,7 +46,7 @@ This package ships embedded agent skills under `agent-meta/`. After installing y
46
46
  your project's skill store (`.agents/skills/`):
47
47
 
48
48
  ```sh
49
- npx @owlmeans/agent-skills@^0.1.18-rc.20
49
+ npx @owlmeans/agent-skills@^0.1.18-rc.21
50
50
  ```
51
51
 
52
52
  The embedded files are version-matched to this package release. Do not edit them
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "schemaVersion": 2,
3
3
  "package": "@owlmeans/agent-common",
4
- "version": "0.1.18-rc.24",
5
- "generatedAt": "2026-09-12T14:21:25.461Z",
4
+ "version": "0.1.18-rc.25",
5
+ "generatedAt": "2026-09-15T12:21:31.885Z",
6
6
  "canonicalRepo": "https://github.com/owlmeans/common",
7
7
  "entries": [
8
8
  {
@@ -8,7 +8,7 @@ user-invocable: false
8
8
  # @owlmeans/agent-common
9
9
 
10
10
  **Layer:** Cross-cutting domain
11
- **Install:** `"@owlmeans/agent-common": "^0.1.18-rc.24"` in `dependencies`
11
+ **Install:** `"@owlmeans/agent-common": "^0.1.18-rc.25"` in `dependencies`
12
12
 
13
13
  Serializable contracts for the agent family. No LangChain, no LangGraph, no storage driver — a
14
14
  backend or a browser bundle imports these to read what an agent wrote without pulling the runtime.
package/build/consts.d.ts CHANGED
@@ -33,6 +33,15 @@ export declare const AGENT_CHECKPOINT_STORE = "agent-checkpoint-store";
33
33
  export declare const DEFAULT_MAX_STATE_CHARS = 256000;
34
34
  export declare const DEFAULT_STEP_ATTEMPTS = 1;
35
35
  export declare const DEFAULT_STEP_TIMEOUT = 1800000;
36
+ /**
37
+ * Where a pipeline's answers live in its state.
38
+ *
39
+ * One key, named here rather than per pipeline, because an answer has to survive every hop it can
40
+ * take: a resume merges answers into it, a composing step forwards it to its child, and a reader
41
+ * looks a question up by id. Scalars and keys, like everything else a state holds — the answer's
42
+ * decision travels here and its prose belongs wherever that pipeline keeps its documents.
43
+ */
44
+ export declare const INQUIRY_ANSWERS_KEY = "answers";
36
45
  /** The lifecycle flow every agent run is driven through. */
37
46
  export declare const AGENT_RUN_FLOW = "agent-run";
38
47
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,WAAW,CAAA;AAEtC;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB,6BAA6B,CAAA;AAClE,eAAO,MAAM,wBAAwB,6BAA6B,CAAA;AAClE,eAAO,MAAM,yBAAyB,8BAA8B,CAAA;AACpE,eAAO,MAAM,wBAAwB,6BAA6B,CAAA;AAClE,eAAO,MAAM,sBAAsB,2BAA2B,CAAA;AAE9D;;;;;;;;;;GAUG;AACH,eAAO,MAAM,uBAAuB,SAAU,CAAA;AAC9C,eAAO,MAAM,qBAAqB,IAAI,CAAA;AACtC,eAAO,MAAM,oBAAoB,UAAY,CAAA;AAE7C,4DAA4D;AAC5D,eAAO,MAAM,cAAc,cAAc,CAAA;AAEzC;;;;;;;;;;;;GAYG;AACH,oBAAY,YAAY;IACtB,QAAQ,aAAa;IACrB,QAAQ,aAAa;IACrB,OAAO,YAAY;IACnB,UAAU,eAAe;IACzB,QAAQ,aAAa;IACrB,MAAM,WAAW;CAClB;AAED,iDAAiD;AACjD,oBAAY,kBAAkB;IAC5B,OAAO,YAAY;IACnB,IAAI,SAAS;IACb,QAAQ,aAAa;IACrB,MAAM,WAAW;IACjB,IAAI,SAAS;CACd;AAED,2FAA2F;AAC3F,oBAAY,cAAc;IACxB,EAAE,OAAO;IACT,MAAM,WAAW;CAClB;AAED;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,OAAO,CAAA;AACzC,eAAO,MAAM,oBAAoB,MAAM,CAAA;AACvC,eAAO,MAAM,oBAAoB,IAAI,CAAA;AACrC,eAAO,MAAM,yBAAyB,OAAO,CAAA;AAC7C,eAAO,MAAM,2BAA2B,KAAK,CAAA;AAE7C,6EAA6E;AAC7E,eAAO,MAAM,SAAS,MAAM,CAAA"}
1
+ {"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,WAAW,CAAA;AAEtC;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB,6BAA6B,CAAA;AAClE,eAAO,MAAM,wBAAwB,6BAA6B,CAAA;AAClE,eAAO,MAAM,yBAAyB,8BAA8B,CAAA;AACpE,eAAO,MAAM,wBAAwB,6BAA6B,CAAA;AAClE,eAAO,MAAM,sBAAsB,2BAA2B,CAAA;AAE9D;;;;;;;;;;GAUG;AACH,eAAO,MAAM,uBAAuB,SAAU,CAAA;AAC9C,eAAO,MAAM,qBAAqB,IAAI,CAAA;AACtC,eAAO,MAAM,oBAAoB,UAAY,CAAA;AAE7C;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,YAAY,CAAA;AAE5C,4DAA4D;AAC5D,eAAO,MAAM,cAAc,cAAc,CAAA;AAEzC;;;;;;;;;;;;GAYG;AACH,oBAAY,YAAY;IACtB,QAAQ,aAAa;IACrB,QAAQ,aAAa;IACrB,OAAO,YAAY;IACnB,UAAU,eAAe;IACzB,QAAQ,aAAa;IACrB,MAAM,WAAW;CAClB;AAED,iDAAiD;AACjD,oBAAY,kBAAkB;IAC5B,OAAO,YAAY;IACnB,IAAI,SAAS;IACb,QAAQ,aAAa;IACrB,MAAM,WAAW;IACjB,IAAI,SAAS;CACd;AAED,2FAA2F;AAC3F,oBAAY,cAAc;IACxB,EAAE,OAAO;IACT,MAAM,WAAW;CAClB;AAED;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,OAAO,CAAA;AACzC,eAAO,MAAM,oBAAoB,MAAM,CAAA;AACvC,eAAO,MAAM,oBAAoB,IAAI,CAAA;AACrC,eAAO,MAAM,yBAAyB,OAAO,CAAA;AAC7C,eAAO,MAAM,2BAA2B,KAAK,CAAA;AAE7C,6EAA6E;AAC7E,eAAO,MAAM,SAAS,MAAM,CAAA"}
package/build/consts.js CHANGED
@@ -33,6 +33,15 @@ export const AGENT_CHECKPOINT_STORE = 'agent-checkpoint-store';
33
33
  export const DEFAULT_MAX_STATE_CHARS = 256_000;
34
34
  export const DEFAULT_STEP_ATTEMPTS = 1;
35
35
  export const DEFAULT_STEP_TIMEOUT = 1_800_000;
36
+ /**
37
+ * Where a pipeline's answers live in its state.
38
+ *
39
+ * One key, named here rather than per pipeline, because an answer has to survive every hop it can
40
+ * take: a resume merges answers into it, a composing step forwards it to its child, and a reader
41
+ * looks a question up by id. Scalars and keys, like everything else a state holds — the answer's
42
+ * decision travels here and its prose belongs wherever that pipeline keeps its documents.
43
+ */
44
+ export const INQUIRY_ANSWERS_KEY = 'answers';
36
45
  /** The lifecycle flow every agent run is driven through. */
37
46
  export const AGENT_RUN_FLOW = 'agent-run';
38
47
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"consts.js","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,QAAQ,CAAA;AAEtC;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,0BAA0B,CAAA;AAClE,MAAM,CAAC,MAAM,wBAAwB,GAAG,0BAA0B,CAAA;AAClE,MAAM,CAAC,MAAM,yBAAyB,GAAG,2BAA2B,CAAA;AACpE,MAAM,CAAC,MAAM,wBAAwB,GAAG,0BAA0B,CAAA;AAClE,MAAM,CAAC,MAAM,sBAAsB,GAAG,wBAAwB,CAAA;AAE9D;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,OAAO,CAAA;AAC9C,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAA;AACtC,MAAM,CAAC,MAAM,oBAAoB,GAAG,SAAS,CAAA;AAE7C,4DAA4D;AAC5D,MAAM,CAAC,MAAM,cAAc,GAAG,WAAW,CAAA;AAEzC;;;;;;;;;;;;GAYG;AACH,MAAM,CAAN,IAAY,YAOX;AAPD,WAAY,YAAY;IACtB,qCAAqB,CAAA;IACrB,qCAAqB,CAAA;IACrB,mCAAmB,CAAA;IACnB,yCAAyB,CAAA;IACzB,qCAAqB,CAAA;IACrB,iCAAiB,CAAA;AACnB,CAAC,EAPW,YAAY,KAAZ,YAAY,QAOvB;AAED,iDAAiD;AACjD,MAAM,CAAN,IAAY,kBAMX;AAND,WAAY,kBAAkB;IAC5B,yCAAmB,CAAA;IACnB,mCAAa,CAAA;IACb,2CAAqB,CAAA;IACrB,uCAAiB,CAAA;IACjB,mCAAa,CAAA;AACf,CAAC,EANW,kBAAkB,KAAlB,kBAAkB,QAM7B;AAED,2FAA2F;AAC3F,MAAM,CAAN,IAAY,cAGX;AAHD,WAAY,cAAc;IACxB,2BAAS,CAAA;IACT,mCAAiB,CAAA;AACnB,CAAC,EAHW,cAAc,KAAd,cAAc,QAGzB;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,CAAA;AACzC,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,CAAA;AACvC,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAA;AACrC,MAAM,CAAC,MAAM,yBAAyB,GAAG,IAAI,CAAA;AAC7C,MAAM,CAAC,MAAM,2BAA2B,GAAG,EAAE,CAAA;AAE7C,6EAA6E;AAC7E,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,CAAA"}
1
+ {"version":3,"file":"consts.js","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,QAAQ,CAAA;AAEtC;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,0BAA0B,CAAA;AAClE,MAAM,CAAC,MAAM,wBAAwB,GAAG,0BAA0B,CAAA;AAClE,MAAM,CAAC,MAAM,yBAAyB,GAAG,2BAA2B,CAAA;AACpE,MAAM,CAAC,MAAM,wBAAwB,GAAG,0BAA0B,CAAA;AAClE,MAAM,CAAC,MAAM,sBAAsB,GAAG,wBAAwB,CAAA;AAE9D;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,OAAO,CAAA;AAC9C,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAA;AACtC,MAAM,CAAC,MAAM,oBAAoB,GAAG,SAAS,CAAA;AAE7C;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,SAAS,CAAA;AAE5C,4DAA4D;AAC5D,MAAM,CAAC,MAAM,cAAc,GAAG,WAAW,CAAA;AAEzC;;;;;;;;;;;;GAYG;AACH,MAAM,CAAN,IAAY,YAOX;AAPD,WAAY,YAAY;IACtB,qCAAqB,CAAA;IACrB,qCAAqB,CAAA;IACrB,mCAAmB,CAAA;IACnB,yCAAyB,CAAA;IACzB,qCAAqB,CAAA;IACrB,iCAAiB,CAAA;AACnB,CAAC,EAPW,YAAY,KAAZ,YAAY,QAOvB;AAED,iDAAiD;AACjD,MAAM,CAAN,IAAY,kBAMX;AAND,WAAY,kBAAkB;IAC5B,yCAAmB,CAAA;IACnB,mCAAa,CAAA;IACb,2CAAqB,CAAA;IACrB,uCAAiB,CAAA;IACjB,mCAAa,CAAA;AACf,CAAC,EANW,kBAAkB,KAAlB,kBAAkB,QAM7B;AAED,2FAA2F;AAC3F,MAAM,CAAN,IAAY,cAGX;AAHD,WAAY,cAAc;IACxB,2BAAS,CAAA;IACT,mCAAiB,CAAA;AACnB,CAAC,EAHW,cAAc,KAAd,cAAc,QAGzB;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,CAAA;AACzC,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,CAAA;AACvC,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAA;AACrC,MAAM,CAAC,MAAM,yBAAyB,GAAG,IAAI,CAAA;AAC7C,MAAM,CAAC,MAAM,2BAA2B,GAAG,EAAE,CAAA;AAE7C,6EAA6E;AAC7E,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,CAAA"}
package/build/errors.d.ts CHANGED
@@ -57,4 +57,15 @@ export declare class PipelineStateTooLargeError extends AgentCommonError {
57
57
  static typeName: string;
58
58
  constructor(message?: string);
59
59
  }
60
+ /**
61
+ * A run was asked to wait for an answer it has no way of being given.
62
+ *
63
+ * Thrown when a step asks a question, nobody is there to answer it, and the pipeline has no run
64
+ * store: parking would leave nothing behind to resume, so the step fails at once rather than
65
+ * stopping a run that could never be started again.
66
+ */
67
+ export declare class PipelineNotResumableError extends AgentCommonError {
68
+ static typeName: string;
69
+ constructor(message?: string);
70
+ }
60
71
  //# sourceMappingURL=errors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAEhD,qBAAa,gBAAiB,SAAQ,cAAc;IAClD,OAAuB,QAAQ,EAAE,MAAM,CAAoC;IAE3E,YAAY,OAAO,GAAE,MAAgB,EAEpC;CACF;AAED,qFAAqF;AACrF,qBAAa,kBAAmB,SAAQ,gBAAgB;IACtD,OAAuB,QAAQ,EAAE,MAAM,CAAyC;IAEhF,YAAY,OAAO,GAAE,MAAgB,EAGpC;CACF;AAED;;;;;;GAMG;AACH,qBAAa,iBAAkB,SAAQ,gBAAgB;IACrD,OAAuB,QAAQ,EAAE,MAAM,CAA6C;IAEpF,YAAY,OAAO,GAAE,MAAgB,EAGpC;CACF;AAED;;;;;;GAMG;AACH,qBAAa,oBAAqB,SAAQ,gBAAgB;IACxD,OAAuB,QAAQ,EAAE,MAAM,CAAgD;IAEvF,YAAY,OAAO,GAAE,MAAgB,EAGpC;CACF;AAED,oFAAoF;AACpF,qBAAa,wBAAyB,SAAQ,gBAAgB;IAC5D,OAAuB,QAAQ,EAAE,MAAM,CAAoD;IAE3F,YAAY,OAAO,GAAE,MAAgB,EAGpC;CACF;AAED;;;;;GAKG;AACH,qBAAa,0BAA2B,SAAQ,gBAAgB;IAC9D,OAAuB,QAAQ,EAAE,MAAM,CAAsD;IAE7F,YAAY,OAAO,GAAE,MAAgB,EAGpC;CACF;AAED;;;;;;;GAOG;AACH,qBAAa,0BAA2B,SAAQ,gBAAgB;IAC9D,OAAuB,QAAQ,EAAE,MAAM,CAAsD;IAE7F,YAAY,OAAO,GAAE,MAAgB,EAGpC;CACF"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAEhD,qBAAa,gBAAiB,SAAQ,cAAc;IAClD,OAAuB,QAAQ,EAAE,MAAM,CAAoC;IAE3E,YAAY,OAAO,GAAE,MAAgB,EAEpC;CACF;AAED,qFAAqF;AACrF,qBAAa,kBAAmB,SAAQ,gBAAgB;IACtD,OAAuB,QAAQ,EAAE,MAAM,CAAyC;IAEhF,YAAY,OAAO,GAAE,MAAgB,EAGpC;CACF;AAED;;;;;;GAMG;AACH,qBAAa,iBAAkB,SAAQ,gBAAgB;IACrD,OAAuB,QAAQ,EAAE,MAAM,CAA6C;IAEpF,YAAY,OAAO,GAAE,MAAgB,EAGpC;CACF;AAED;;;;;;GAMG;AACH,qBAAa,oBAAqB,SAAQ,gBAAgB;IACxD,OAAuB,QAAQ,EAAE,MAAM,CAAgD;IAEvF,YAAY,OAAO,GAAE,MAAgB,EAGpC;CACF;AAED,oFAAoF;AACpF,qBAAa,wBAAyB,SAAQ,gBAAgB;IAC5D,OAAuB,QAAQ,EAAE,MAAM,CAAoD;IAE3F,YAAY,OAAO,GAAE,MAAgB,EAGpC;CACF;AAED;;;;;GAKG;AACH,qBAAa,0BAA2B,SAAQ,gBAAgB;IAC9D,OAAuB,QAAQ,EAAE,MAAM,CAAsD;IAE7F,YAAY,OAAO,GAAE,MAAgB,EAGpC;CACF;AAED;;;;;;;GAOG;AACH,qBAAa,0BAA2B,SAAQ,gBAAgB;IAC9D,OAAuB,QAAQ,EAAE,MAAM,CAAsD;IAE7F,YAAY,OAAO,GAAE,MAAgB,EAGpC;CACF;AAED;;;;;;GAMG;AACH,qBAAa,yBAA0B,SAAQ,gBAAgB;IAC7D,OAAuB,QAAQ,EAAE,MAAM,CAAqD;IAE5F,YAAY,OAAO,GAAE,MAAgB,EAGpC;CACF"}
package/build/errors.js CHANGED
@@ -77,6 +77,20 @@ export class PipelineStateTooLargeError extends AgentCommonError {
77
77
  this.type = PipelineStateTooLargeError.typeName;
78
78
  }
79
79
  }
80
+ /**
81
+ * A run was asked to wait for an answer it has no way of being given.
82
+ *
83
+ * Thrown when a step asks a question, nobody is there to answer it, and the pipeline has no run
84
+ * store: parking would leave nothing behind to resume, so the step fails at once rather than
85
+ * stopping a run that could never be started again.
86
+ */
87
+ export class PipelineNotResumableError extends AgentCommonError {
88
+ static typeName = `PipelineNotResumable${AgentCommonError.typeName}`;
89
+ constructor(message = 'error') {
90
+ super(`pipeline-not-resumable:${message}`);
91
+ this.type = PipelineNotResumableError.typeName;
92
+ }
93
+ }
80
94
  ResilientError.registerErrorClass(AgentCommonError);
81
95
  ResilientError.registerErrorClass(AgentRunStateError);
82
96
  ResilientError.registerErrorClass(PipelineSpecError);
@@ -84,4 +98,5 @@ ResilientError.registerErrorClass(PipelineVersionError);
84
98
  ResilientError.registerErrorClass(PipelineUnknownStepError);
85
99
  ResilientError.registerErrorClass(PipelineNotIdempotentError);
86
100
  ResilientError.registerErrorClass(PipelineStateTooLargeError);
101
+ ResilientError.registerErrorClass(PipelineNotResumableError);
87
102
  //# sourceMappingURL=errors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAEhD,MAAM,OAAO,gBAAiB,SAAQ,cAAc;IAC3C,MAAM,CAAU,QAAQ,GAAW,QAAQ,cAAc,CAAC,QAAQ,EAAE,CAAA;IAE3E,YAAY,OAAO,GAAW,OAAO;QACnC,KAAK,CAAC,gBAAgB,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,CAAC,CAAA;IACtD,CAAC;CACF;AAED,qFAAqF;AACrF,MAAM,OAAO,kBAAmB,SAAQ,gBAAgB;IAC/C,MAAM,CAAU,QAAQ,GAAW,WAAW,gBAAgB,CAAC,QAAQ,EAAE,CAAA;IAEhF,YAAY,OAAO,GAAW,OAAO;QACnC,KAAK,CAAC,aAAa,OAAO,EAAE,CAAC,CAAA;QAC7B,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC,QAAQ,CAAA;IACzC,CAAC;CACF;AAED;;;;;;GAMG;AACH,MAAM,OAAO,iBAAkB,SAAQ,gBAAgB;IAC9C,MAAM,CAAU,QAAQ,GAAW,eAAe,gBAAgB,CAAC,QAAQ,EAAE,CAAA;IAEpF,YAAY,OAAO,GAAW,OAAO;QACnC,KAAK,CAAC,iBAAiB,OAAO,EAAE,CAAC,CAAA;QACjC,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC,QAAQ,CAAA;IACxC,CAAC;CACF;AAED;;;;;;GAMG;AACH,MAAM,OAAO,oBAAqB,SAAQ,gBAAgB;IACjD,MAAM,CAAU,QAAQ,GAAW,kBAAkB,gBAAgB,CAAC,QAAQ,EAAE,CAAA;IAEvF,YAAY,OAAO,GAAW,OAAO;QACnC,KAAK,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAA;QACpC,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC,QAAQ,CAAA;IAC3C,CAAC;CACF;AAED,oFAAoF;AACpF,MAAM,OAAO,wBAAyB,SAAQ,gBAAgB;IACrD,MAAM,CAAU,QAAQ,GAAW,sBAAsB,gBAAgB,CAAC,QAAQ,EAAE,CAAA;IAE3F,YAAY,OAAO,GAAW,OAAO;QACnC,KAAK,CAAC,iBAAiB,OAAO,EAAE,CAAC,CAAA;QACjC,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC,QAAQ,CAAA;IAC/C,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,OAAO,0BAA2B,SAAQ,gBAAgB;IACvD,MAAM,CAAU,QAAQ,GAAW,wBAAwB,gBAAgB,CAAC,QAAQ,EAAE,CAAA;IAE7F,YAAY,OAAO,GAAW,OAAO;QACnC,KAAK,CAAC,wBAAwB,OAAO,EAAE,CAAC,CAAA;QACxC,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC,QAAQ,CAAA;IACjD,CAAC;CACF;AAED;;;;;;;GAOG;AACH,MAAM,OAAO,0BAA2B,SAAQ,gBAAgB;IACvD,MAAM,CAAU,QAAQ,GAAW,wBAAwB,gBAAgB,CAAC,QAAQ,EAAE,CAAA;IAE7F,YAAY,OAAO,GAAW,OAAO;QACnC,KAAK,CAAC,kBAAkB,OAAO,EAAE,CAAC,CAAA;QAClC,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC,QAAQ,CAAA;IACjD,CAAC;CACF;AAED,cAAc,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAA;AACnD,cAAc,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,CAAA;AACrD,cAAc,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,CAAA;AACpD,cAAc,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,CAAA;AACvD,cAAc,CAAC,kBAAkB,CAAC,wBAAwB,CAAC,CAAA;AAC3D,cAAc,CAAC,kBAAkB,CAAC,0BAA0B,CAAC,CAAA;AAC7D,cAAc,CAAC,kBAAkB,CAAC,0BAA0B,CAAC,CAAA"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import type { Inquiry } from '@owlmeans/llm-common';
1
2
  import type { ResourceRecord } from '@owlmeans/resource';
2
3
  /**
3
4
  * What a pipeline carries between its steps.
@@ -62,7 +63,28 @@ export declare enum PipelineRunStatus {
62
63
  Done = "done",
63
64
  Failed = "failed",
64
65
  /** Stopped on purpose with work left — a budget expired, or the caller asked. Resumable. */
65
- Aborted = "aborted"
66
+ Aborted = "aborted",
67
+ /**
68
+ * Stopped on purpose, waiting for an answer to {@link PipelineRun.inquiry}.
69
+ *
70
+ * Resumable, and NOT stale: a waiting run has no process behind it and its `heartbeatAt` will not
71
+ * move again until somebody answers. A reconciler that reads staleness alone would take this for
72
+ * a crashed run and repair what is merely waiting.
73
+ */
74
+ Waiting = "waiting"
75
+ }
76
+ /**
77
+ * What a `Waiting` run is waiting for.
78
+ *
79
+ * Written by the runner when a step asks a question nobody could answer while it ran, and read by
80
+ * everything that reports a run — a resume delivers the answer under {@link Inquiry.id}, which is
81
+ * the only thing that routes it back.
82
+ */
83
+ export interface PipelineRunInquiry {
84
+ /** The step that asked. A resume re-enters exactly this one. */
85
+ step: string;
86
+ askedAt: string;
87
+ inquiry: Inquiry;
66
88
  }
67
89
  /**
68
90
  * The data plane of a pipeline run, and the ONE authority on where it stands.
@@ -98,6 +120,13 @@ export interface PipelineRun extends ResourceRecord {
98
120
  error?: string;
99
121
  /** The last thing a step said about itself. Progress, not state. */
100
122
  note?: string;
123
+ /**
124
+ * The question this run stopped on.
125
+ *
126
+ * Present only while `status === Waiting`, and cleared on every entry of the run — a row that
127
+ * kept advertising a question it has already been given would have every reader offer it again.
128
+ */
129
+ inquiry?: PipelineRunInquiry;
101
130
  /** Whatever lock the run held, so a resume can re-take the same one. */
102
131
  lockTask?: string;
103
132
  /** How many times this run has been RESUMED. Reset only by a `Done` outcome. */
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../src/pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAIxD;;;;;;;GAOG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAEnD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ;;;;;;;;OAQG;IACH,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,oEAAoE;IACpE,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,kFAAkF;IAClF,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,mDAAmD;IACnD,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb;;;;;;OAMG;IACH,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,gBAAgB,EAAE,CAAA;CAC1B;AAED,2CAA2C;AAC3C,oBAAY,iBAAiB;IAC3B,OAAO,YAAY;IACnB,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,4FAA4F;IAC5F,OAAO,YAAY;CACpB;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,WAAY,SAAQ,cAAc;IACjD,uFAAuF;IACvF,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,yFAAyF;IACzF,KAAK,EAAE,MAAM,CAAA;IACb,qFAAqF;IACrF,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,iBAAiB,CAAA;IACzB,4DAA4D;IAC5D,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,0EAA0E;IAC1E,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,oGAAoG;IACpG,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;IAClB,4EAA4E;IAC5E,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,oEAAoE;IACpE,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,wEAAwE;IACxE,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,gFAAgF;IAChF,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,qEAAqE;AACrE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,iDAAiD;IACjD,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAMD;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,SAAU,YAAY,KAAG,IA6DzD,CAAA;AAgCD;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,SAAU,YAAY,KAAG,MAAM,EA0C7D,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,SAAU,YAAY,QAAQ,MAAM,KAAG,MAAM,EAmB5E,CAAA;AAED,sFAAsF;AACtF,eAAO,MAAM,YAAY,SAAU,YAAY,QAAQ,MAAM,KAAG,gBAAgB,GAAG,IAC5B,CAAA"}
1
+ {"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../src/pipeline.ts"],"names":[],"mappings":"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"}
package/build/pipeline.js CHANGED
@@ -8,6 +8,14 @@ export var PipelineRunStatus;
8
8
  PipelineRunStatus["Failed"] = "failed";
9
9
  /** Stopped on purpose with work left — a budget expired, or the caller asked. Resumable. */
10
10
  PipelineRunStatus["Aborted"] = "aborted";
11
+ /**
12
+ * Stopped on purpose, waiting for an answer to {@link PipelineRun.inquiry}.
13
+ *
14
+ * Resumable, and NOT stale: a waiting run has no process behind it and its `heartbeatAt` will not
15
+ * move again until somebody answers. A reconciler that reads staleness alone would take this for
16
+ * a crashed run and repair what is merely waiting.
17
+ */
18
+ PipelineRunStatus["Waiting"] = "waiting";
11
19
  })(PipelineRunStatus || (PipelineRunStatus = {}));
12
20
  const fault = (faults, message) => {
13
21
  faults.push(message);
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../src/pipeline.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../src/pipeline.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@owlmeans/agent-common",
3
- "version": "0.1.18-rc.24",
3
+ "version": "0.1.18-rc.25",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "scripts": {
@@ -29,10 +29,10 @@
29
29
  "typescript": "^7.0.2"
30
30
  },
31
31
  "dependencies": {
32
- "@owlmeans/error": "^0.1.18-rc.16",
33
- "@owlmeans/flow": "^0.1.18-rc.22",
34
- "@owlmeans/llm-common": "^0.1.18-rc.20",
35
- "@owlmeans/resource": "^0.1.18-rc.17"
32
+ "@owlmeans/error": "^0.1.18-rc.17",
33
+ "@owlmeans/flow": "^0.1.18-rc.23",
34
+ "@owlmeans/llm-common": "^0.1.18-rc.21",
35
+ "@owlmeans/resource": "^0.1.18-rc.18"
36
36
  },
37
37
  "publishConfig": {
38
38
  "access": "public"
package/src/consts.ts CHANGED
@@ -36,6 +36,16 @@ export const DEFAULT_MAX_STATE_CHARS = 256_000
36
36
  export const DEFAULT_STEP_ATTEMPTS = 1
37
37
  export const DEFAULT_STEP_TIMEOUT = 1_800_000
38
38
 
39
+ /**
40
+ * Where a pipeline's answers live in its state.
41
+ *
42
+ * One key, named here rather than per pipeline, because an answer has to survive every hop it can
43
+ * take: a resume merges answers into it, a composing step forwards it to its child, and a reader
44
+ * looks a question up by id. Scalars and keys, like everything else a state holds — the answer's
45
+ * decision travels here and its prose belongs wherever that pipeline keeps its documents.
46
+ */
47
+ export const INQUIRY_ANSWERS_KEY = 'answers'
48
+
39
49
  /** The lifecycle flow every agent run is driven through. */
40
50
  export const AGENT_RUN_FLOW = 'agent-run'
41
51
 
package/src/errors.ts CHANGED
@@ -92,6 +92,22 @@ export class PipelineStateTooLargeError extends AgentCommonError {
92
92
  }
93
93
  }
94
94
 
95
+ /**
96
+ * A run was asked to wait for an answer it has no way of being given.
97
+ *
98
+ * Thrown when a step asks a question, nobody is there to answer it, and the pipeline has no run
99
+ * store: parking would leave nothing behind to resume, so the step fails at once rather than
100
+ * stopping a run that could never be started again.
101
+ */
102
+ export class PipelineNotResumableError extends AgentCommonError {
103
+ public static override typeName: string = `PipelineNotResumable${AgentCommonError.typeName}`
104
+
105
+ constructor(message: string = 'error') {
106
+ super(`pipeline-not-resumable:${message}`)
107
+ this.type = PipelineNotResumableError.typeName
108
+ }
109
+ }
110
+
95
111
  ResilientError.registerErrorClass(AgentCommonError)
96
112
  ResilientError.registerErrorClass(AgentRunStateError)
97
113
  ResilientError.registerErrorClass(PipelineSpecError)
@@ -99,3 +115,4 @@ ResilientError.registerErrorClass(PipelineVersionError)
99
115
  ResilientError.registerErrorClass(PipelineUnknownStepError)
100
116
  ResilientError.registerErrorClass(PipelineNotIdempotentError)
101
117
  ResilientError.registerErrorClass(PipelineStateTooLargeError)
118
+ ResilientError.registerErrorClass(PipelineNotResumableError)
package/src/pipeline.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import type { Inquiry } from '@owlmeans/llm-common'
1
2
  import type { ResourceRecord } from '@owlmeans/resource'
2
3
  import { DEFAULT_STEP_ATTEMPTS } from './consts.js'
3
4
  import { PipelineSpecError, PipelineUnknownStepError } from './errors.js'
@@ -69,6 +70,28 @@ export enum PipelineRunStatus {
69
70
  Failed = 'failed',
70
71
  /** Stopped on purpose with work left — a budget expired, or the caller asked. Resumable. */
71
72
  Aborted = 'aborted',
73
+ /**
74
+ * Stopped on purpose, waiting for an answer to {@link PipelineRun.inquiry}.
75
+ *
76
+ * Resumable, and NOT stale: a waiting run has no process behind it and its `heartbeatAt` will not
77
+ * move again until somebody answers. A reconciler that reads staleness alone would take this for
78
+ * a crashed run and repair what is merely waiting.
79
+ */
80
+ Waiting = 'waiting',
81
+ }
82
+
83
+ /**
84
+ * What a `Waiting` run is waiting for.
85
+ *
86
+ * Written by the runner when a step asks a question nobody could answer while it ran, and read by
87
+ * everything that reports a run — a resume delivers the answer under {@link Inquiry.id}, which is
88
+ * the only thing that routes it back.
89
+ */
90
+ export interface PipelineRunInquiry {
91
+ /** The step that asked. A resume re-enters exactly this one. */
92
+ step: string
93
+ askedAt: string
94
+ inquiry: Inquiry
72
95
  }
73
96
 
74
97
  /**
@@ -105,6 +128,13 @@ export interface PipelineRun extends ResourceRecord {
105
128
  error?: string
106
129
  /** The last thing a step said about itself. Progress, not state. */
107
130
  note?: string
131
+ /**
132
+ * The question this run stopped on.
133
+ *
134
+ * Present only while `status === Waiting`, and cleared on every entry of the run — a row that
135
+ * kept advertising a question it has already been given would have every reader offer it again.
136
+ */
137
+ inquiry?: PipelineRunInquiry
108
138
  /** Whatever lock the run held, so a resume can re-take the same one. */
109
139
  lockTask?: string
110
140
  /** How many times this run has been RESUMED. Reset only by a `Done` outcome. */
@@ -1,8 +1,10 @@
1
1
  import { describe, expect, test } from 'bun:test'
2
+ import { InquiryKind } from '@owlmeans/llm-common'
2
3
  import {
4
+ INQUIRY_ANSWERS_KEY, PipelineRunStatus,
3
5
  orderPipelineSteps, pipelineDescendants, pipelineStep, validatePipelineSpec,
4
6
  } from '../src/index.js'
5
- import type { PipelineSpec } from '../src/index.js'
7
+ import type { PipelineRun, PipelineSpec } from '../src/index.js'
6
8
 
7
9
  /**
8
10
  * The spec is the one thing in this family that is checked without a model, a slot or a network, so
@@ -125,3 +127,41 @@ describe('agent-common — descendants', () => {
125
127
  expect(pipelineStep(graph, 'a')?.step).toBe('a')
126
128
  })
127
129
  })
130
+
131
+ describe('agent-common — a run that is waiting for an answer', () => {
132
+ const waiting = (): PipelineRun => ({
133
+ runId: 'r', pipeline: 'test', version: 1, scope: 'p1',
134
+ status: PipelineRunStatus.Waiting,
135
+ completed: ['a'], pending: ['b'], state: `{"${INQUIRY_ANSWERS_KEY}":{}}`, stateChars: 15,
136
+ warnings: [], attempts: 0,
137
+ inquiry: {
138
+ step: 'b',
139
+ askedAt: '2026-01-01T00:00:00.000Z',
140
+ inquiry: {
141
+ id: 'q1', kind: InquiryKind.Choice, question: 'Which product is this?',
142
+ options: [{ value: 'a', label: 'A' }, { value: 'b', label: 'B' }],
143
+ },
144
+ },
145
+ startedAt: '2026-01-01T00:00:00.000Z',
146
+ heartbeatAt: '2026-01-01T00:00:00.000Z',
147
+ updatedAt: '2026-01-01T00:00:00.000Z',
148
+ })
149
+
150
+ test('`Waiting` is its own status, distinct from the two that mean the run stopped badly', () => {
151
+ // A reconciler branches on this string. Aborted means nobody asked anything and a resume may
152
+ // simply carry on; Waiting means a resume without an answer would park on the same question.
153
+ expect(PipelineRunStatus.Waiting).toBe('waiting')
154
+ expect(PipelineRunStatus.Waiting).not.toBe(PipelineRunStatus.Aborted)
155
+ expect(PipelineRunStatus.Waiting).not.toBe(PipelineRunStatus.Failed)
156
+ })
157
+
158
+ test('a row carrying its inquiry survives the wire unchanged', () => {
159
+ // These records cross process boundaries and storage backends; the question's id is the ONLY
160
+ // thing that routes an answer back, so it has to arrive spelled exactly as it was written.
161
+ const restored = JSON.parse(JSON.stringify(waiting())) as PipelineRun
162
+
163
+ expect(restored).toEqual(waiting())
164
+ expect(restored.inquiry?.inquiry.id).toBe('q1')
165
+ expect(restored.inquiry?.step).toBe('b')
166
+ })
167
+ })