@claudexor/orchestrator 3.0.4 → 3.1.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.
Files changed (64) hide show
  1. package/dist/attemptFinalize.d.ts +162 -0
  2. package/dist/attemptFinalize.d.ts.map +1 -0
  3. package/dist/attemptFinalize.js +368 -0
  4. package/dist/attemptFinalize.js.map +1 -0
  5. package/dist/attemptTelemetry.d.ts +88 -7
  6. package/dist/attemptTelemetry.d.ts.map +1 -1
  7. package/dist/attemptTelemetry.js +276 -14
  8. package/dist/attemptTelemetry.js.map +1 -1
  9. package/dist/budgetFailure.d.ts +70 -0
  10. package/dist/budgetFailure.d.ts.map +1 -0
  11. package/dist/budgetFailure.js +114 -0
  12. package/dist/budgetFailure.js.map +1 -0
  13. package/dist/candidateEvidence.d.ts +55 -1
  14. package/dist/candidateEvidence.d.ts.map +1 -1
  15. package/dist/candidateEvidence.js +72 -0
  16. package/dist/candidateEvidence.js.map +1 -1
  17. package/dist/continuation.d.ts +77 -0
  18. package/dist/continuation.d.ts.map +1 -0
  19. package/dist/continuation.js +92 -0
  20. package/dist/continuation.js.map +1 -0
  21. package/dist/deepScanReducer.d.ts +148 -0
  22. package/dist/deepScanReducer.d.ts.map +1 -0
  23. package/dist/deepScanReducer.js +352 -0
  24. package/dist/deepScanReducer.js.map +1 -0
  25. package/dist/harnessFailure.d.ts +27 -0
  26. package/dist/harnessFailure.d.ts.map +1 -0
  27. package/dist/harnessFailure.js +61 -0
  28. package/dist/harnessFailure.js.map +1 -0
  29. package/dist/orchestrator.d.ts +97 -10
  30. package/dist/orchestrator.d.ts.map +1 -1
  31. package/dist/orchestrator.js +1213 -295
  32. package/dist/orchestrator.js.map +1 -1
  33. package/dist/planQuestions.d.ts.map +1 -1
  34. package/dist/planQuestions.js +105 -50
  35. package/dist/planQuestions.js.map +1 -1
  36. package/dist/planRun.d.ts +15 -7
  37. package/dist/planRun.d.ts.map +1 -1
  38. package/dist/planRun.js +88 -42
  39. package/dist/planRun.js.map +1 -1
  40. package/dist/planTerminal.d.ts +36 -0
  41. package/dist/planTerminal.d.ts.map +1 -0
  42. package/dist/planTerminal.js +63 -0
  43. package/dist/planTerminal.js.map +1 -0
  44. package/dist/runSupport.d.ts +50 -2
  45. package/dist/runSupport.d.ts.map +1 -1
  46. package/dist/runSupport.js +60 -6
  47. package/dist/runSupport.js.map +1 -1
  48. package/dist/runTelemetryWriter.d.ts +6 -1
  49. package/dist/runTelemetryWriter.d.ts.map +1 -1
  50. package/dist/runTelemetryWriter.js +2 -0
  51. package/dist/runTelemetryWriter.js.map +1 -1
  52. package/dist/runTerminals.d.ts +15 -4
  53. package/dist/runTerminals.d.ts.map +1 -1
  54. package/dist/runTerminals.js +16 -1
  55. package/dist/runTerminals.js.map +1 -1
  56. package/dist/structuredOutput.d.ts +27 -0
  57. package/dist/structuredOutput.d.ts.map +1 -1
  58. package/dist/structuredOutput.js +65 -7
  59. package/dist/structuredOutput.js.map +1 -1
  60. package/dist/transientClassify.d.ts +59 -0
  61. package/dist/transientClassify.d.ts.map +1 -0
  62. package/dist/transientClassify.js +109 -0
  63. package/dist/transientClassify.js.map +1 -0
  64. package/package.json +17 -17
@@ -4,6 +4,33 @@ export interface StructuredOutputVerdict {
4
4
  status: "passed" | "failed";
5
5
  reason: string | null;
6
6
  }
7
+ /** A declared dialect is caller-actionable, not a retryable engine failure. */
8
+ export declare class UnsupportedOutputSchemaDialectError extends Error {
9
+ readonly dialect: unknown;
10
+ readonly status = 400;
11
+ readonly code = "unsupported_schema_dialect";
12
+ readonly retryable = false;
13
+ readonly supportedDialects: {
14
+ dialect: "draft-07" | "draft-2020-12";
15
+ uri: "http://json-schema.org/draft-07/schema#" | "https://json-schema.org/draft/2020-12/schema";
16
+ }[];
17
+ readonly context: {
18
+ supportedDialects: {
19
+ dialect: "draft-07" | "draft-2020-12";
20
+ uri: "http://json-schema.org/draft-07/schema#" | "https://json-schema.org/draft/2020-12/schema";
21
+ }[];
22
+ };
23
+ readonly requiredActions: string[];
24
+ constructor(dialect: unknown);
25
+ }
26
+ /** A malformed schema is a caller error and retrying the same input cannot help. */
27
+ export declare class InvalidOutputSchemaError extends Error {
28
+ readonly status = 400;
29
+ readonly code = "invalid_output_schema";
30
+ readonly retryable = false;
31
+ readonly requiredActions: string[];
32
+ constructor(cause: unknown);
33
+ }
7
34
  /** Preflight: prove a caller schema COMPILES under the same ajv the validator
8
35
  * uses, so a malformed schema is refused before any run dir exists instead of
9
36
  * crashing the validator mid-run. Throws on a schema ajv cannot build. */
@@ -1 +1 @@
1
- {"version":3,"file":"structuredOutput.d.ts","sourceRoot":"","sources":["../src/structuredOutput.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAIrD,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC5B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED;;2EAE2E;AAC3E,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAShF;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE;IAC7C,KAAK,EAAE,aAAa,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,QAAQ,CAAC;IACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CACvC,GAAG,uBAAuB,CAmE1B"}
1
+ {"version":3,"file":"structuredOutput.d.ts","sourceRoot":"","sources":["../src/structuredOutput.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAWrD,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC5B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED,+EAA+E;AAC/E,qBAAa,mCAAoC,SAAQ,KAAK;IAUhD,QAAQ,CAAC,OAAO,EAAE,OAAO;IATrC,QAAQ,CAAC,MAAM,OAAO;IACtB,QAAQ,CAAC,IAAI,gCAAgC;IAC7C,QAAQ,CAAC,SAAS,SAAS;IAC3B,QAAQ,CAAC,iBAAiB;;;QAAwE;IAClG,QAAQ,CAAC,OAAO;;;;;MAAiD;IACjE,QAAQ,CAAC,eAAe,WAEtB;gBAEmB,OAAO,EAAE,OAAO;CAMtC;AAED,oFAAoF;AACpF,qBAAa,wBAAyB,SAAQ,KAAK;IACjD,QAAQ,CAAC,MAAM,OAAO;IACtB,QAAQ,CAAC,IAAI,2BAA2B;IACxC,QAAQ,CAAC,SAAS,SAAS;IAC3B,QAAQ,CAAC,eAAe,WAA+C;gBAE3D,KAAK,EAAE,OAAO;CAO3B;AA8BD;;2EAE2E;AAC3E,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAOhF;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE;IAC7C,KAAK,EAAE,aAAa,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,QAAQ,CAAC;IACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CACvC,GAAG,uBAAuB,CAsE1B"}
@@ -1,21 +1,76 @@
1
1
  import { join } from "node:path";
2
2
  import AjvModule from "ajv";
3
+ import Ajv2020Module from "ajv/dist/2020.js";
3
4
  // ajv ships CJS; under NodeNext the default import resolves to the module
4
5
  // namespace whose `.default` is the constructor (module.exports.default is set
5
6
  // by ajv itself, so this is correct at runtime in both ESM and CJS).
6
7
  const Ajv = AjvModule.default ?? AjvModule;
7
- import { SCHEMA_VERSION, StructuredOutputConformance } from "@claudexor/schema";
8
- import { nowIso } from "@claudexor/util";
8
+ const Ajv2020 = Ajv2020Module.default ?? Ajv2020Module;
9
+ import { DEFAULT_OUTPUT_SCHEMA_DIALECT, OUTPUT_SCHEMA_DIALECTS, outputSchemaDialectFromUri, SCHEMA_VERSION, StructuredOutputConformance, } from "@claudexor/schema";
10
+ import { hashJson, nowIso } from "@claudexor/util";
11
+ /** A declared dialect is caller-actionable, not a retryable engine failure. */
12
+ export class UnsupportedOutputSchemaDialectError extends Error {
13
+ dialect;
14
+ status = 400;
15
+ code = "unsupported_schema_dialect";
16
+ retryable = false;
17
+ supportedDialects = OUTPUT_SCHEMA_DIALECTS.map(({ dialect, uri }) => ({ dialect, uri }));
18
+ context = { supportedDialects: this.supportedDialects };
19
+ requiredActions = [
20
+ `set $schema to one of: ${OUTPUT_SCHEMA_DIALECTS.map(({ uri }) => uri).join(", ")}; or omit $schema for ${DEFAULT_OUTPUT_SCHEMA_DIALECT}`,
21
+ ];
22
+ constructor(dialect) {
23
+ super(`unsupported outputSchema dialect ${JSON.stringify(dialect)}; supported dialects: ${OUTPUT_SCHEMA_DIALECTS.map(({ uri }) => uri).join(", ")} (omitted $schema defaults to ${DEFAULT_OUTPUT_SCHEMA_DIALECT})`);
24
+ this.dialect = dialect;
25
+ this.name = "UnsupportedOutputSchemaDialectError";
26
+ }
27
+ }
28
+ /** A malformed schema is a caller error and retrying the same input cannot help. */
29
+ export class InvalidOutputSchemaError extends Error {
30
+ status = 400;
31
+ code = "invalid_output_schema";
32
+ retryable = false;
33
+ requiredActions = ["fix the output schema and retry the run"];
34
+ constructor(cause) {
35
+ super(`outputSchema is not a compilable JSON Schema: ${cause instanceof Error ? cause.message : String(cause)}`, { cause });
36
+ this.name = "InvalidOutputSchemaError";
37
+ }
38
+ }
39
+ function outputSchemaDialect(schema) {
40
+ const declared = schema["$schema"];
41
+ if (declared === undefined)
42
+ return DEFAULT_OUTPUT_SCHEMA_DIALECT;
43
+ if (typeof declared !== "string")
44
+ throw new UnsupportedOutputSchemaDialectError(declared);
45
+ const dialect = outputSchemaDialectFromUri(declared);
46
+ if (dialect)
47
+ return dialect;
48
+ throw new UnsupportedOutputSchemaDialectError(declared);
49
+ }
50
+ function outputSchemaCompiler(schema) {
51
+ const dialect = outputSchemaDialect(schema);
52
+ // The selected Ajv class already fixes the dialect. Removing the declaration
53
+ // lets us accept the URI's harmless http/https and trailing-# spellings while
54
+ // still compiling the caller's validation keywords under the declared draft.
55
+ const schemaForCompiler = { ...schema };
56
+ delete schemaForCompiler["$schema"];
57
+ return {
58
+ ajv: dialect === "draft-2020-12"
59
+ ? new Ajv2020({ allErrors: true, strict: false })
60
+ : new Ajv({ allErrors: true, strict: false }),
61
+ schema: schemaForCompiler,
62
+ };
63
+ }
9
64
  /** Preflight: prove a caller schema COMPILES under the same ajv the validator
10
65
  * uses, so a malformed schema is refused before any run dir exists instead of
11
66
  * crashing the validator mid-run. Throws on a schema ajv cannot build. */
12
67
  export function assertOutputSchemaCompiles(schema) {
13
- const ajv = new Ajv({ allErrors: true, strict: false });
68
+ const compiler = outputSchemaCompiler(schema);
14
69
  try {
15
- ajv.compile(schema);
70
+ compiler.ajv.compile(compiler.schema);
16
71
  }
17
72
  catch (err) {
18
- throw new Error(`outputSchema is not a compilable JSON Schema: ${err instanceof Error ? err.message : String(err)}`);
73
+ throw new InvalidOutputSchemaError(err);
19
74
  }
20
75
  }
21
76
  /**
@@ -34,6 +89,7 @@ export function assertOutputSchemaCompiles(schema) {
34
89
  * (diagnostic) for the embedder to inspect; an unparsable answer writes nothing.
35
90
  */
36
91
  export function finalizeStructuredOutput(opts) {
92
+ const schemaDialect = outputSchemaDialect(opts.schema);
37
93
  const text = opts.answerText?.trim() ?? "";
38
94
  let value;
39
95
  let parsed = false;
@@ -57,9 +113,9 @@ export function finalizeStructuredOutput(opts) {
57
113
  // strict:false — accept the JSON Schema dialect as-authored; do not
58
114
  // re-litigate meta-schema strictness (the boundary already proved it
59
115
  // compiles). This validates the ORIGINAL caller schema.
60
- const ajv = new Ajv({ allErrors: true, strict: false });
116
+ const compiler = outputSchemaCompiler(opts.schema);
61
117
  try {
62
- const validate = ajv.compile(opts.schema);
118
+ const validate = compiler.ajv.compile(compiler.schema);
63
119
  if (validate(value) === true) {
64
120
  status = "passed";
65
121
  }
@@ -88,6 +144,8 @@ export function finalizeStructuredOutput(opts) {
88
144
  }
89
145
  const receipt = StructuredOutputConformance.parse({
90
146
  schema_version: SCHEMA_VERSION,
147
+ schema_dialect: schemaDialect,
148
+ schema_hash: hashJson(opts.schema),
91
149
  status,
92
150
  reason: status === "passed" ? null : reason,
93
151
  output_path: outputPath,
@@ -1 +1 @@
1
- {"version":3,"file":"structuredOutput.js","sourceRoot":"","sources":["../src/structuredOutput.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,SAAS,MAAM,KAAK,CAAC;AAG5B,0EAA0E;AAC1E,+EAA+E;AAC/E,qEAAqE;AACrE,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,IAAK,SAAiD,CAAC;AAGpF,OAAO,EAAE,cAAc,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAChF,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAOzC;;2EAE2E;AAC3E,MAAM,UAAU,0BAA0B,CAAC,MAA+B;IACxE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IACxD,IAAI,CAAC;QACH,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,iDAAiD,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CACpG,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,wBAAwB,CAAC,IAMxC;IACC,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC3C,IAAI,KAAc,CAAC;IACnB,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,IAAI,MAAM,GAAkB,IAAI,CAAC;IACjC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,GAAG,mDAAmD,CAAC;IAC/D,CAAC;SAAM,CAAC;QACN,IAAI,CAAC;YACH,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACzB,MAAM,GAAG,IAAI,CAAC;QAChB,CAAC;QAAC,MAAM,CAAC;YACP,sEAAsE;YACtE,sEAAsE;YACtE,MAAM,GAAG,gCAAgC,CAAC;QAC5C,CAAC;IACH,CAAC;IACD,IAAI,MAAM,GAAwB,QAAQ,CAAC;IAC3C,IAAI,MAAM,EAAE,CAAC;QACX,oEAAoE;QACpE,qEAAqE;QACrE,wDAAwD;QACxD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC1C,IAAI,QAAQ,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;gBAC7B,MAAM,GAAG,QAAQ,CAAC;YACpB,CAAC;iBAAM,CAAC;gBACN,MAAM;oBACJ,CAAC,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC;yBACpB,GAAG,CAAC,CAAC,CAAc,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,YAAY,IAAI,GAAG,KAAK,CAAC,CAAC,OAAO,IAAI,SAAS,EAAE,CAAC;yBAC9E,IAAI,CAAC,IAAI,CAAC;yBACV,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,0BAA0B,CAAC;YACpD,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,GAAG,oCAAoC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QAClG,CAAC;IACH,CAAC;IACD,qEAAqE;IACrE,+EAA+E;IAC/E,IAAI,UAAU,GAAkB,IAAI,CAAC;IACrC,IAAI,MAAM,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QAClC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QAChG,UAAU,GAAG,mBAAmB,CAAC;IACnC,CAAC;SAAM,IAAI,MAAM,EAAE,CAAC;QAClB,IAAI,CAAC,KAAK,CAAC,SAAS,CAClB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,qBAAqB,CAAC,EAC1C,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CACtC,CAAC;QACF,UAAU,GAAG,2BAA2B,CAAC;IAC3C,CAAC;IACD,MAAM,OAAO,GAAG,2BAA2B,CAAC,KAAK,CAAC;QAChD,cAAc,EAAE,cAAc;QAC9B,MAAM;QACN,MAAM,EAAE,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM;QAC3C,WAAW,EAAE,UAAU;QACvB,YAAY,EAAE,MAAM,EAAE;KACvB,CAAC,CAAC;IACH,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,wBAAwB,CAAC,EAAE,OAAO,CAAC,CAAC;IAC7E,IAAI,UAAU,EAAE,CAAC;QACf,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE;YAC5B,IAAI,EAAE,mBAAmB;YACzB,IAAI,EAAE,UAAU;YAChB,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;SACxD,CAAC,CAAC;IACL,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;AAC5C,CAAC"}
1
+ {"version":3,"file":"structuredOutput.js","sourceRoot":"","sources":["../src/structuredOutput.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Typed harness-failure taxonomy (GH #31): the SINGLE place that classifies an
3
+ * adapter/stream failure at the adapter→orchestrator boundary into a
4
+ * `HarnessFailureCategory` + `retryable` verdict, preserving the safe provider
5
+ * metadata. Governance is fully typed — only typed event fields
6
+ * (`transient`/`rate_limit`/`status.error_category`) and the run loop's typed
7
+ * exit disclosure are read, never prose. The retry policy gates on `retryable`;
8
+ * required-actions attach auth guidance only on `auth_failed`.
9
+ */
10
+ import type { HarnessEvent, HarnessFailureCategory } from "@claudexor/schema";
11
+ /**
12
+ * A single classified transient failure. `kind` keeps the fine-grained adapter
13
+ * label; `category` is the typed taxonomy the retry policy and required-actions
14
+ * read; `retryable` is the centralized gate. Provider metadata (HTTP status,
15
+ * retry delay, kill signal, adapter code) is preserved as disclosed evidence —
16
+ * never fabricated.
17
+ */
18
+ export interface TransientFailureObservation {
19
+ kind: NonNullable<HarnessEvent["transient"]>["kind"];
20
+ category: HarnessFailureCategory;
21
+ retryable: boolean;
22
+ retryDelayMs: number | null;
23
+ httpStatus: number | null;
24
+ signal: string | null;
25
+ adapterCode: string | null;
26
+ }
27
+ /** A typed `transient` signal: a `timeout` kind is the timeout category; every
28
+ * other adapter-declared transient is a generic retryable harness error. */
29
+ export declare function classifyTransientSignal(t: NonNullable<HarnessEvent["transient"]>): TransientFailureObservation;
30
+ /** A typed `rate_limit` signal is a first-class transient category (not only a
31
+ * W5.4 rotation signal). */
32
+ export declare function classifyRateLimit(retryDelayMs: number | null): TransientFailureObservation;
33
+ /** Map the vendor's typed `status.error_category` onto the taxonomy. Only the
34
+ * deterministic FAILURE classes are surfaced here; rate limits arrive via the
35
+ * dedicated `rate_limit` signal, and transient/overload retries the vendor
36
+ * drives itself are not our failures (returns null → not recorded). */
37
+ export declare function classifyStatusError(ec: NonNullable<NonNullable<HarnessEvent["status"]>["error_category"]>, retryDelayMs: number | null): TransientFailureObservation | null;
38
+ /**
39
+ * Classify a process crash from the run loop's TYPED `completed` payload
40
+ * (never prose): a spawn failure is a config/environment error (retrying
41
+ * replays the same missing binary/bad config); a non-aborted signal kill or
42
+ * non-zero exit is a settled crash. An aborted completion (our watchdog/cancel)
43
+ * is never a crash. Returns null when the completion carries no crash evidence.
44
+ */
45
+ export declare function classifyCompletedCrash(payload: Record<string, unknown> | undefined): TransientFailureObservation | null;
46
+ /**
47
+ * Classify an adapter/stream throw. The inactivity watchdog surfaces a typed
48
+ * `HarnessInactivityTimeoutError` (timeout); every other throw is a process
49
+ * crash. A THROWN failure is a give-up, not a mid-stream recoverable transient:
50
+ * the watchdog already aborted a wedged stream and a crashed child is settled,
51
+ * so it is classified and disclosed but never auto-retried here (preserving the
52
+ * pre-#31 terminate-on-throw behavior). Never parses prose — `errorName` is the
53
+ * constructor name.
54
+ */
55
+ export declare function classifyAdapterThrow(opts: {
56
+ errorName: string | null;
57
+ signal?: string | null;
58
+ }): TransientFailureObservation;
59
+ //# sourceMappingURL=transientClassify.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transientClassify.d.ts","sourceRoot":"","sources":["../src/transientClassify.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAE9E;;;;;;GAMG;AACH,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,WAAW,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACrD,QAAQ,EAAE,sBAAsB,CAAC;IACjC,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAoCD;4EAC4E;AAC5E,wBAAgB,uBAAuB,CACrC,CAAC,EAAE,WAAW,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,GACxC,2BAA2B,CAI7B;AAED;4BAC4B;AAC5B,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,2BAA2B,CAE1F;AAED;;;uEAGuE;AACvE,wBAAgB,mBAAmB,CACjC,EAAE,EAAE,WAAW,CAAC,WAAW,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,EACtE,YAAY,EAAE,MAAM,GAAG,IAAI,GAC1B,2BAA2B,GAAG,IAAI,CAqBpC;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAC3C,2BAA2B,GAAG,IAAI,CAepC;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE;IACzC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB,GAAG,2BAA2B,CAO9B"}
@@ -0,0 +1,109 @@
1
+ /**
2
+ * Whether a classified category admits a bounded stream retry. Only failures
3
+ * the adapter DISCLOSED mid-stream as recoverable (a typed transient or a rate
4
+ * limit) are retried — retrying replays the work with a fresh session. Auth /
5
+ * capability / config are deterministic refusals. A process crash and an
6
+ * inactivity-watchdog give-up are NOT auto-retried here (the watchdog exists to
7
+ * STOP a wedged stream; a crashed child is settled, not replayed): they are
8
+ * still classified and disclosed, but the run terminates on them.
9
+ */
10
+ const CATEGORY_RETRYABLE = {
11
+ timeout: true,
12
+ rate_limited: true,
13
+ unknown_harness_error: true,
14
+ process_crash: false,
15
+ auth_failed: false,
16
+ capability_refused: false,
17
+ config_error: false,
18
+ };
19
+ function observation(category, extra = {}) {
20
+ return {
21
+ kind: extra.kind ?? "unknown",
22
+ category,
23
+ retryable: CATEGORY_RETRYABLE[category],
24
+ retryDelayMs: extra.retryDelayMs ?? null,
25
+ httpStatus: extra.httpStatus ?? null,
26
+ signal: extra.signal ?? null,
27
+ adapterCode: extra.adapterCode ?? null,
28
+ };
29
+ }
30
+ /** A typed `transient` signal: a `timeout` kind is the timeout category; every
31
+ * other adapter-declared transient is a generic retryable harness error. */
32
+ export function classifyTransientSignal(t) {
33
+ const category = t.kind === "timeout" ? "timeout" : "unknown_harness_error";
34
+ return observation(category, { kind: t.kind, retryDelayMs: t.retry_delay_ms ?? null });
35
+ }
36
+ /** A typed `rate_limit` signal is a first-class transient category (not only a
37
+ * W5.4 rotation signal). */
38
+ export function classifyRateLimit(retryDelayMs) {
39
+ return observation("rate_limited", { retryDelayMs });
40
+ }
41
+ /** Map the vendor's typed `status.error_category` onto the taxonomy. Only the
42
+ * deterministic FAILURE classes are surfaced here; rate limits arrive via the
43
+ * dedicated `rate_limit` signal, and transient/overload retries the vendor
44
+ * drives itself are not our failures (returns null → not recorded). */
45
+ export function classifyStatusError(ec, retryDelayMs) {
46
+ let category;
47
+ switch (ec) {
48
+ case "authentication_failed":
49
+ category = "auth_failed";
50
+ break;
51
+ case "oauth_org_not_allowed":
52
+ case "model_not_found":
53
+ category = "capability_refused";
54
+ break;
55
+ case "billing_error":
56
+ case "invalid_request":
57
+ case "max_output_tokens":
58
+ category = "config_error";
59
+ break;
60
+ default:
61
+ // rate_limit/overloaded/server_error/unknown: not surfaced from status.
62
+ category = null;
63
+ }
64
+ if (!category)
65
+ return null;
66
+ return observation(category, { retryDelayMs, adapterCode: ec });
67
+ }
68
+ /**
69
+ * Classify a process crash from the run loop's TYPED `completed` payload
70
+ * (never prose): a spawn failure is a config/environment error (retrying
71
+ * replays the same missing binary/bad config); a non-aborted signal kill or
72
+ * non-zero exit is a settled crash. An aborted completion (our watchdog/cancel)
73
+ * is never a crash. Returns null when the completion carries no crash evidence.
74
+ */
75
+ export function classifyCompletedCrash(payload) {
76
+ if (!payload || payload["aborted"])
77
+ return null;
78
+ const spawnFailed = payload["spawn_failed"] === true;
79
+ const signal = typeof payload["exit_signal"] === "string" ? payload["exit_signal"] : null;
80
+ const exitCode = typeof payload["exit_code"] === "number" ? payload["exit_code"] : null;
81
+ if (spawnFailed) {
82
+ return observation("config_error", { signal, adapterCode: "spawn_failed" });
83
+ }
84
+ if (signal !== null || (exitCode !== null && exitCode !== 0)) {
85
+ return observation("process_crash", {
86
+ signal,
87
+ adapterCode: exitCode !== null ? `exit_${exitCode}` : null,
88
+ });
89
+ }
90
+ return null;
91
+ }
92
+ /**
93
+ * Classify an adapter/stream throw. The inactivity watchdog surfaces a typed
94
+ * `HarnessInactivityTimeoutError` (timeout); every other throw is a process
95
+ * crash. A THROWN failure is a give-up, not a mid-stream recoverable transient:
96
+ * the watchdog already aborted a wedged stream and a crashed child is settled,
97
+ * so it is classified and disclosed but never auto-retried here (preserving the
98
+ * pre-#31 terminate-on-throw behavior). Never parses prose — `errorName` is the
99
+ * constructor name.
100
+ */
101
+ export function classifyAdapterThrow(opts) {
102
+ const isTimeout = opts.errorName === "HarnessInactivityTimeoutError";
103
+ const base = observation(isTimeout ? "timeout" : "process_crash", {
104
+ kind: isTimeout ? "timeout" : "unknown",
105
+ signal: opts.signal ?? null,
106
+ });
107
+ return { ...base, retryable: false };
108
+ }
109
+ //# sourceMappingURL=transientClassify.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transientClassify.js","sourceRoot":"","sources":["../src/transientClassify.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@claudexor/orchestrator",
3
- "version": "3.0.4",
3
+ "version": "3.1.0",
4
4
  "license": "MIT",
5
5
  "description": "Hub that composes all subsystems and implements the three canonical intents (ask, plan, agent) with their strategy flags (ask deep-scan, plan solo/council, agent best-of-N race, attempt caps, until-clean, create, delegate).",
6
6
  "type": "module",
@@ -17,24 +17,24 @@
17
17
  ],
18
18
  "dependencies": {
19
19
  "ajv": "^8.20.0",
20
- "@claudexor/arbitration": "3.0.4",
21
- "@claudexor/budget": "3.0.4",
22
- "@claudexor/config": "3.0.4",
23
- "@claudexor/context": "3.0.4",
24
- "@claudexor/artifact-store": "3.0.4",
25
- "@claudexor/core": "3.0.4",
26
- "@claudexor/delivery": "3.0.4",
27
- "@claudexor/event-log": "3.0.4",
28
- "@claudexor/gateway": "3.0.4",
29
- "@claudexor/review": "3.0.4",
30
- "@claudexor/policy": "3.0.4",
31
- "@claudexor/schema": "3.0.4",
32
- "@claudexor/synthesis": "3.0.4",
33
- "@claudexor/workspace": "3.0.4",
34
- "@claudexor/util": "3.0.4"
20
+ "@claudexor/arbitration": "3.1.0",
21
+ "@claudexor/artifact-store": "3.1.0",
22
+ "@claudexor/budget": "3.1.0",
23
+ "@claudexor/config": "3.1.0",
24
+ "@claudexor/core": "3.1.0",
25
+ "@claudexor/context": "3.1.0",
26
+ "@claudexor/delivery": "3.1.0",
27
+ "@claudexor/gateway": "3.1.0",
28
+ "@claudexor/event-log": "3.1.0",
29
+ "@claudexor/policy": "3.1.0",
30
+ "@claudexor/review": "3.1.0",
31
+ "@claudexor/schema": "3.1.0",
32
+ "@claudexor/synthesis": "3.1.0",
33
+ "@claudexor/util": "3.1.0",
34
+ "@claudexor/workspace": "3.1.0"
35
35
  },
36
36
  "devDependencies": {
37
- "@claudexor/harness-fake": "3.0.4"
37
+ "@claudexor/harness-fake": "3.1.0"
38
38
  },
39
39
  "repository": {
40
40
  "type": "git",