@oneshot-agent/sdk 0.54.0 → 0.56.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.
@@ -0,0 +1,59 @@
1
+ export type PredictInput = {
2
+ model: "simulation";
3
+ simulation: {
4
+ variables: {
5
+ id: string;
6
+ distribution: {
7
+ value: number;
8
+ kind: "fixed";
9
+ } | {
10
+ kind: "uniform";
11
+ min: number;
12
+ max: number;
13
+ } | {
14
+ kind: "normal";
15
+ mean: number;
16
+ sd: number;
17
+ } | {
18
+ kind: "lognormal";
19
+ log_mean: number;
20
+ log_sd: number;
21
+ } | {
22
+ kind: "triangular";
23
+ min: number;
24
+ max: number;
25
+ mode: number;
26
+ } | {
27
+ kind: "bernoulli";
28
+ p: number;
29
+ } | {
30
+ values: number[];
31
+ kind: "discrete";
32
+ weights?: number[] | undefined;
33
+ };
34
+ }[];
35
+ outputs: {
36
+ id: string;
37
+ expression: string;
38
+ }[];
39
+ runs?: number | undefined;
40
+ seed?: number | undefined;
41
+ percentiles?: number[] | undefined;
42
+ };
43
+ time_limit_s?: number | undefined;
44
+ } | {
45
+ model: "forecast";
46
+ forecast: {
47
+ series: {
48
+ t: string | number;
49
+ y: number;
50
+ }[];
51
+ horizon: number;
52
+ frequency?: "hourly" | "daily" | "weekly" | "monthly" | "quarterly" | "yearly" | undefined;
53
+ seasonal_period?: number | undefined;
54
+ interval_levels?: number[] | undefined;
55
+ floor?: number | undefined;
56
+ };
57
+ time_limit_s?: number | undefined;
58
+ };
59
+ //# sourceMappingURL=predict-input.generated.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"predict-input.generated.d.ts","sourceRoot":"","sources":["../src/predict-input.generated.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,YAAY,GAAG;IACvB,KAAK,EAAE,YAAY,CAAC;IACpB,UAAU,EAAE;QACR,SAAS,EAAE;YACP,EAAE,EAAE,MAAM,CAAC;YACX,YAAY,EAAE;gBACV,KAAK,EAAE,MAAM,CAAC;gBACd,IAAI,EAAE,OAAO,CAAC;aACjB,GAAG;gBACA,IAAI,EAAE,SAAS,CAAC;gBAChB,GAAG,EAAE,MAAM,CAAC;gBACZ,GAAG,EAAE,MAAM,CAAC;aACf,GAAG;gBACA,IAAI,EAAE,QAAQ,CAAC;gBACf,IAAI,EAAE,MAAM,CAAC;gBACb,EAAE,EAAE,MAAM,CAAC;aACd,GAAG;gBACA,IAAI,EAAE,WAAW,CAAC;gBAClB,QAAQ,EAAE,MAAM,CAAC;gBACjB,MAAM,EAAE,MAAM,CAAC;aAClB,GAAG;gBACA,IAAI,EAAE,YAAY,CAAC;gBACnB,GAAG,EAAE,MAAM,CAAC;gBACZ,GAAG,EAAE,MAAM,CAAC;gBACZ,IAAI,EAAE,MAAM,CAAC;aAChB,GAAG;gBACA,IAAI,EAAE,WAAW,CAAC;gBAClB,CAAC,EAAE,MAAM,CAAC;aACb,GAAG;gBACA,MAAM,EAAE,MAAM,EAAE,CAAC;gBACjB,IAAI,EAAE,UAAU,CAAC;gBACjB,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;aAClC,CAAC;SACL,EAAE,CAAC;QACJ,OAAO,EAAE;YACL,EAAE,EAAE,MAAM,CAAC;YACX,UAAU,EAAE,MAAM,CAAC;SACtB,EAAE,CAAC;QACJ,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC1B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC1B,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;KACtC,CAAC;IACF,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC,GAAG;IACA,KAAK,EAAE,UAAU,CAAC;IAClB,QAAQ,EAAE;QACN,MAAM,EAAE;YACJ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;YACnB,CAAC,EAAE,MAAM,CAAC;SACb,EAAE,CAAC;QACJ,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC;QAC3F,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QACrC,eAAe,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;QACvC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;KAC9B,CAAC;IACF,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=predict-input.generated.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"predict-input.generated.js","sourceRoot":"","sources":["../src/predict-input.generated.ts"],"names":[],"mappings":""}
@@ -0,0 +1,97 @@
1
+ import type { ToolOptions } from './types';
2
+ import type { PredictInput } from './predict-input.generated';
3
+ export type { PredictInput } from './predict-input.generated';
4
+ /** Transport options are accepted; receipt metadata is not supported. */
5
+ export type PredictOptions = PredictInput & Omit<ToolOptions, 'memo' | 'valueTag' | 'decisionContext'>;
6
+ export type PredictModel = PredictInput['model'];
7
+ /** Durable job handle returned when Predict is submitted with wait: false. */
8
+ export type PredictPendingResult = {
9
+ status: 'pending' | 'processing';
10
+ request_id: string;
11
+ receipt_id?: string;
12
+ idempotencyKey: string;
13
+ };
14
+ type PredictMeta<M extends PredictModel> = {
15
+ model: M;
16
+ version: string;
17
+ size: number;
18
+ size_band: 'small' | 'medium' | 'large';
19
+ time_limit_s: number;
20
+ run_time_s: number;
21
+ };
22
+ type PredictBase<M extends PredictModel> = {
23
+ model: M;
24
+ version: string;
25
+ status: 'complete' | 'timeout';
26
+ checks: Array<{
27
+ name: string;
28
+ passed: boolean;
29
+ detail: string;
30
+ }>;
31
+ };
32
+ export type PredictSimulationResult = PredictBase<'simulation'> & {
33
+ prediction: {
34
+ outputs: Array<{
35
+ id: string;
36
+ mean: number;
37
+ median: number;
38
+ }>;
39
+ } | null;
40
+ uncertainty: {
41
+ outputs: Array<{
42
+ id: string;
43
+ sd: number;
44
+ mean_standard_error: number;
45
+ min: number;
46
+ max: number;
47
+ percentiles: Array<{
48
+ p: number;
49
+ value: number;
50
+ }>;
51
+ }>;
52
+ } | null;
53
+ meta: PredictMeta<'simulation'> & {
54
+ seed: number;
55
+ runs_requested: number;
56
+ runs_completed: number;
57
+ runs_discarded: number;
58
+ runs_kept: number;
59
+ };
60
+ };
61
+ export type PredictForecastResult = PredictBase<'forecast'> & {
62
+ prediction: {
63
+ points: Array<{
64
+ t: string | number;
65
+ value: number;
66
+ }>;
67
+ };
68
+ uncertainty: {
69
+ intervals: Array<{
70
+ level: number;
71
+ points: Array<{
72
+ t: string | number;
73
+ lower: number;
74
+ upper: number;
75
+ }>;
76
+ }>;
77
+ };
78
+ meta: PredictMeta<'forecast'> & {
79
+ method: string;
80
+ series_length: number;
81
+ gaps_filled: number;
82
+ frequency: NonNullable<Extract<PredictInput, {
83
+ model: 'forecast';
84
+ }>['forecast']['frequency']> | null;
85
+ seasonal_period: number | null;
86
+ horizon: number;
87
+ candidates_tried: number;
88
+ backtest: {
89
+ holdout_points: number;
90
+ mae: number;
91
+ rmse: number;
92
+ };
93
+ };
94
+ };
95
+ export type PredictResultFor<M extends PredictModel> = M extends 'simulation' ? PredictSimulationResult : PredictForecastResult;
96
+ export type PredictResult = PredictResultFor<PredictModel>;
97
+ //# sourceMappingURL=predict.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"predict.d.ts","sourceRoot":"","sources":["../src/predict.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=predict.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"predict.js","sourceRoot":"","sources":["../src/predict.ts"],"names":[],"mappings":""}
@@ -0,0 +1,143 @@
1
+ export type SolveInput = {
2
+ problem: "routing";
3
+ routing: {
4
+ objective: "distance" | "time" | "vehicles";
5
+ vehicles: {
6
+ id: string;
7
+ capacity: number;
8
+ start: {
9
+ id: string;
10
+ } | {
11
+ lat: number;
12
+ lng: number;
13
+ };
14
+ shift?: {
15
+ start: number;
16
+ end: number;
17
+ } | undefined;
18
+ end?: {
19
+ id: string;
20
+ } | {
21
+ lat: number;
22
+ lng: number;
23
+ } | undefined;
24
+ }[];
25
+ stops: {
26
+ id: string;
27
+ location: {
28
+ id: string;
29
+ } | {
30
+ lat: number;
31
+ lng: number;
32
+ };
33
+ demand?: number | undefined;
34
+ window?: {
35
+ start: number;
36
+ end: number;
37
+ } | undefined;
38
+ service_time?: number | undefined;
39
+ }[];
40
+ distance_unit?: string | undefined;
41
+ time_unit?: string | undefined;
42
+ speed?: number | undefined;
43
+ matrix?: {
44
+ ids: string[];
45
+ distance?: number[][] | undefined;
46
+ time?: number[][] | undefined;
47
+ } | undefined;
48
+ };
49
+ time_limit_s?: number | undefined;
50
+ } | {
51
+ problem: "allocation";
52
+ allocation: {
53
+ options: {
54
+ id: string;
55
+ capacity?: number | undefined;
56
+ }[];
57
+ objective: "minimise_cost" | "maximise_value";
58
+ items: {
59
+ id: string;
60
+ quantity?: number | undefined;
61
+ }[];
62
+ pairs: {
63
+ item: string;
64
+ option: string;
65
+ cost: number;
66
+ value?: number | undefined;
67
+ }[];
68
+ split?: boolean | undefined;
69
+ max_total_cost?: number | undefined;
70
+ min_share?: {
71
+ option: string;
72
+ share: number;
73
+ item?: string | undefined;
74
+ if_used?: boolean | undefined;
75
+ }[] | undefined;
76
+ max_share?: {
77
+ option: string;
78
+ share: number;
79
+ item?: string | undefined;
80
+ }[] | undefined;
81
+ required?: {
82
+ item: string;
83
+ option: string;
84
+ }[] | undefined;
85
+ forbidden?: {
86
+ item: string;
87
+ option: string;
88
+ }[] | undefined;
89
+ };
90
+ time_limit_s?: number | undefined;
91
+ } | {
92
+ problem: "packing";
93
+ packing: {
94
+ items: {
95
+ id: string;
96
+ size: Record<string, number>;
97
+ value?: number | undefined;
98
+ quantity?: number | undefined;
99
+ }[];
100
+ variant: "bin" | "knapsack";
101
+ dimensions: string[];
102
+ bins: {
103
+ id: string;
104
+ capacity: Record<string, number>;
105
+ quantity?: number | undefined;
106
+ }[];
107
+ incompatible?: [
108
+ string,
109
+ string
110
+ ][] | undefined;
111
+ };
112
+ time_limit_s?: number | undefined;
113
+ } | {
114
+ problem: "schedule";
115
+ schedule: {
116
+ objective: "cost" | "makespan" | "tardiness";
117
+ jobs: {
118
+ id: string;
119
+ duration: number;
120
+ release?: number | undefined;
121
+ due?: number | undefined;
122
+ needs?: unknown;
123
+ weight?: number | undefined;
124
+ }[];
125
+ resources: {
126
+ id: string;
127
+ capacity: number;
128
+ calendar?: {
129
+ start: number;
130
+ end: number;
131
+ }[] | undefined;
132
+ cost_per_unit_time?: number | undefined;
133
+ }[];
134
+ time_unit?: string | undefined;
135
+ precedence?: {
136
+ before: string;
137
+ after: string;
138
+ lag?: number | undefined;
139
+ }[] | undefined;
140
+ };
141
+ time_limit_s?: number | undefined;
142
+ };
143
+ //# sourceMappingURL=solve-input.generated.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solve-input.generated.d.ts","sourceRoot":"","sources":["../src/solve-input.generated.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=solve-input.generated.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solve-input.generated.js","sourceRoot":"","sources":["../src/solve-input.generated.ts"],"names":[],"mappings":""}
@@ -0,0 +1,129 @@
1
+ import type { ToolOptions } from './types';
2
+ import type { SolveInput } from './solve-input.generated';
3
+ export type { SolveInput } from './solve-input.generated';
4
+ /** Solve accepts transport options, but does not support receipt metadata. */
5
+ export type SolveOptions = SolveInput & Omit<ToolOptions, 'memo' | 'valueTag' | 'decisionContext'>;
6
+ export type SolveProblem = SolveInput['problem'];
7
+ /** `solution` of a `routing` result, as specified in docs/design/solve.md section 3. */
8
+ export interface SolveRoutingSolution {
9
+ routes: Array<{
10
+ vehicle: string;
11
+ stops: Array<{
12
+ id: string;
13
+ arrival: number;
14
+ departure: number;
15
+ load_after: number;
16
+ }>;
17
+ distance: number;
18
+ time: number;
19
+ }>;
20
+ unserved: string[];
21
+ }
22
+ /** `solution` of an `allocation` result, as specified in docs/design/solve.md. */
23
+ export interface SolveAllocationSolution {
24
+ assignments: Array<{
25
+ item: string;
26
+ option: string;
27
+ quantity: number;
28
+ fraction: number;
29
+ cost: number;
30
+ value: number | null;
31
+ }>;
32
+ per_option: Array<{
33
+ option: string;
34
+ quantity: number;
35
+ share: number;
36
+ cost: number;
37
+ value: number | null;
38
+ }>;
39
+ unassigned: Array<{
40
+ item: string;
41
+ quantity: number;
42
+ }>;
43
+ }
44
+ /** `solution` of a `packing` result; `left_out` is present for the `knapsack` variant only. */
45
+ export interface SolvePackingSolution {
46
+ bins: Array<{
47
+ bin: string;
48
+ index: number;
49
+ items: Array<{
50
+ id: string;
51
+ count: number;
52
+ }>;
53
+ used: Record<string, number>;
54
+ }>;
55
+ left_out?: Array<{
56
+ id: string;
57
+ count: number;
58
+ }>;
59
+ }
60
+ /** `solution` of a `schedule` result: each job's start, end, resource allocation and lateness. */
61
+ export interface SolveScheduleSolution {
62
+ starts: Array<{
63
+ job: string;
64
+ start: number;
65
+ end: number;
66
+ resources: Record<string, number>;
67
+ tardiness: number;
68
+ }>;
69
+ makespan: number;
70
+ }
71
+ /** The solution shape per problem. Adding a problem is one entry here (and its `SolveInput` variant). */
72
+ export interface SolveSolutions {
73
+ routing: SolveRoutingSolution;
74
+ allocation: SolveAllocationSolution;
75
+ packing: SolvePackingSolution;
76
+ schedule: SolveScheduleSolution;
77
+ }
78
+ /** Completed job result for exactly one problem, as specified in docs/design/solve.md. */
79
+ export interface SolveProblemResult<P extends SolveProblem> {
80
+ status: 'optimal' | 'feasible' | 'infeasible' | 'timeout';
81
+ objective_value: number | null;
82
+ bound: number | null;
83
+ gap: number | null;
84
+ solution: SolveSolutions[P] | null;
85
+ checks: Array<{
86
+ name: string;
87
+ satisfied: boolean;
88
+ worst_violation: number;
89
+ detail: string;
90
+ }>;
91
+ conflicts: Array<{
92
+ constraints: Array<{
93
+ family: string;
94
+ ref: string;
95
+ label: string;
96
+ }>;
97
+ explanation: string;
98
+ }>;
99
+ meta: {
100
+ problem: P;
101
+ size: Record<string, number>;
102
+ variables_estimated: number;
103
+ variables_built: number;
104
+ solve_time_s: number;
105
+ time_limit_s: number;
106
+ conflicts_complete: boolean | null;
107
+ };
108
+ }
109
+ /**
110
+ * Completed job result for the problem(s) in `P`. A union of problems distributes into one correlated
111
+ * variant per problem (`meta.problem` and `solution` agree), so a request typed as the whole `SolveInput`
112
+ * union yields a `SolveResult`, never one object with independent unions.
113
+ */
114
+ export type SolveResultFor<P extends SolveProblem> = P extends SolveProblem ? SolveProblemResult<P> : never;
115
+ /** Completed job result, discriminated by `meta.problem`: it narrows `solution` to the problem's shape. */
116
+ export type SolveResult = SolveResultFor<SolveProblem>;
117
+ /** `P` when it names exactly one problem, `never` when it is a union of problems. */
118
+ type SingleProblem<P extends SolveProblem, Each = P> = P extends unknown ? ([Each] extends [P] ? P : never) : never;
119
+ /**
120
+ * Narrows a `SolveResult` to one problem's result. TypeScript does not narrow a union through a nested
121
+ * check such as `result.meta.problem === 'packing'`, so a caller holding a `SolveResult` uses this guard.
122
+ *
123
+ * Only a single literal problem narrows. For a problem chosen at runtime (typed as a union of problems)
124
+ * the guard is a plain boolean: a type predicate for the whole union would make the reachable false
125
+ * branch `never`.
126
+ */
127
+ export declare function isSolveResultFor<P extends SolveProblem>(result: SolveResult, problem: SingleProblem<P>): result is SolveResultFor<P>;
128
+ export declare function isSolveResultFor(result: SolveResult, problem: SolveProblem): boolean;
129
+ //# sourceMappingURL=solve.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solve.d.ts","sourceRoot":"","sources":["../src/solve.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,YAAY,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAE1D,8EAA8E;AAC9E,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,UAAU,GAAG,iBAAiB,CAAC,CAAC;AAEnG,MAAM,MAAM,YAAY,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;AAEjD,wFAAwF;AACxF,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,KAAK,CAAC;QACZ,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,KAAK,CAAC;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACrF,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC,CAAC;IACH,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,kFAAkF;AAClF,MAAM,WAAW,uBAAuB;IACtC,WAAW,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC;IAC7H,UAAU,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC;IAC3G,UAAU,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACvD;AAED,+FAA+F;AAC/F,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,KAAK,CAAC;QACV,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,KAAK,CAAC;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAC5C,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAC9B,CAAC,CAAC;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACjD;AAED,kGAAkG;AAClG,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjH,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,yGAAyG;AACzG,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,oBAAoB,CAAC;IAC9B,UAAU,EAAE,uBAAuB,CAAC;IACpC,OAAO,EAAE,oBAAoB,CAAC;IAC9B,QAAQ,EAAE,qBAAqB,CAAC;CACjC;AAED,0FAA0F;AAC1F,MAAM,WAAW,kBAAkB,CAAC,CAAC,SAAS,YAAY;IACxD,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,YAAY,GAAG,SAAS,CAAC;IAC1D,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACnC,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,OAAO,CAAC;QAAC,eAAe,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7F,SAAS,EAAE,KAAK,CAAC;QACf,WAAW,EAAE,KAAK,CAAC;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACnE,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC,CAAC;IACH,IAAI,EAAE;QACJ,OAAO,EAAE,CAAC,CAAC;QACX,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC7B,mBAAmB,EAAE,MAAM,CAAC;QAC5B,eAAe,EAAE,MAAM,CAAC;QACxB,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;QACrB,kBAAkB,EAAE,OAAO,GAAG,IAAI,CAAC;KACpC,CAAC;CACH;AAED;;;;GAIG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,YAAY,IAAI,CAAC,SAAS,YAAY,GAAG,kBAAkB,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;AAE5G,2GAA2G;AAC3G,MAAM,MAAM,WAAW,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC;AAEvD,qFAAqF;AACrF,KAAK,aAAa,CAAC,CAAC,SAAS,YAAY,EAAE,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC;AAEpH;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC;AACtI,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC"}
package/dist/solve.js ADDED
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isSolveResultFor = isSolveResultFor;
4
+ function isSolveResultFor(result, problem) {
5
+ return result.meta.problem === problem;
6
+ }
7
+ //# sourceMappingURL=solve.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solve.js","sourceRoot":"","sources":["../src/solve.ts"],"names":[],"mappings":";;AAkGA,4CAEC;AAFD,SAAgB,gBAAgB,CAAC,MAAmB,EAAE,OAAqB;IACzE,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,KAAK,OAAO,CAAC;AACzC,CAAC"}
package/dist/types.d.ts CHANGED
@@ -45,6 +45,12 @@ export interface PaymentAuthorization {
45
45
  };
46
46
  }
47
47
  export type LoggerFn = (message: string) => void;
48
+ /**
49
+ * Observes the first status and subsequent changes, including completed/failed
50
+ * before the job wait settles. Status strings are passed through from the API.
51
+ * With waitForPhones, completed is deferred until the optional phone wait returns.
52
+ * Throws and rejected promises are ignored. Async callbacks are not awaited.
53
+ */
48
54
  export type StatusUpdateFn = (status: string, requestId: string) => void;
49
55
  export interface OneShotConfig {
50
56
  /** Option A: Raw private key (existing behavior) */
@@ -353,13 +359,33 @@ export interface PersonFindOptions extends ToolOptions {
353
359
  * regardless of which provider answers the search. */
354
360
  offset?: number;
355
361
  }
356
- export interface PersonProfileOptions extends ToolOptions {
362
+ /**
363
+ * What a caller knows about one person (#1899). Every single-person tool takes
364
+ * these same optional fields; at least one of `name`, `email`, `phone` or
365
+ * `profile_url` is required. The API resolves the rest (a LinkedIn URL from a
366
+ * name and company or an email, the other handles, the employer).
367
+ */
368
+ export interface PersonIdentity {
369
+ /** Full name. Works best with `company`. */
370
+ name?: string;
371
+ /** Employer name or domain, e.g. `'Coinbase'` or `'coinbase.com'`. */
372
+ company?: string;
373
+ email?: string;
374
+ phone?: string;
375
+ /** Profile URL on LinkedIn, X or GitHub. */
376
+ profile_url?: string;
377
+ /** Same as `profile_url` (older name). */
378
+ linkedin_url?: string;
379
+ /** Same as `profile_url` (older name). */
380
+ social_media_url?: string;
381
+ }
382
+ export interface PersonProfileOptions extends ToolOptions, PersonIdentity {
357
383
  /** Off by default. Adds the per-person add-on on the pricing page for up to one person; no phone hit guaranteed. */
358
384
  includePhone?: boolean;
359
- linkedin_url?: string;
360
- email?: string;
361
- name?: string;
385
+ /** Employer domain (older name; `company` takes a name or a domain). */
362
386
  company_domain?: string;
387
+ /** Employer name (older name; `company` takes a name or a domain). */
388
+ company_name?: string;
363
389
  }
364
390
  export interface CompanyFindOptions extends ToolOptions {
365
391
  name?: string;
@@ -379,26 +405,24 @@ export interface CompanyProfileOptions extends ToolOptions {
379
405
  linkedin_url?: string;
380
406
  ticker?: string;
381
407
  }
382
- export interface PersonEmailOptions extends ToolOptions {
408
+ export interface PersonEmailOptions extends ToolOptions, PersonIdentity {
409
+ /** Same as `name` (older name). */
383
410
  full_name?: string;
384
411
  first_name?: string;
385
412
  last_name?: string;
386
- company_domain: string;
413
+ /** Employer domain (older name; `company` takes a name or a domain). */
414
+ company_domain?: string;
415
+ /** Employer name (older name; `company` takes a name or a domain). */
416
+ company_name?: string;
387
417
  }
388
418
  export interface PersonEmailStatusOptions extends ToolOptions {
389
419
  email: string;
390
420
  }
391
- export interface PersonDossierOptions extends ToolOptions {
421
+ export interface PersonDossierOptions extends ToolOptions, PersonIdentity {
392
422
  /** Off by default. Adds the per-person add-on on the pricing page for up to one person; no phone hit guaranteed. */
393
423
  includePhone?: boolean;
394
- email?: string;
395
- social_media_url?: string;
396
- name?: string;
397
- company?: string;
398
424
  }
399
- export interface PersonSocialAccountsOptions extends ToolOptions {
400
- email?: string;
401
- social_media_url?: string;
425
+ export interface PersonSocialAccountsOptions extends ToolOptions, PersonIdentity {
402
426
  }
403
427
  export interface PersonArticlesOptions extends ToolOptions {
404
428
  name: string;
@@ -406,16 +430,11 @@ export interface PersonArticlesOptions extends ToolOptions {
406
430
  sort?: 'recent' | 'popular';
407
431
  limit?: number;
408
432
  }
409
- export interface PersonPostsOptions extends ToolOptions {
410
- social_media_url: string;
433
+ export interface PersonPostsOptions extends ToolOptions, PersonIdentity {
411
434
  }
412
- export interface PersonInterestsOptions extends ToolOptions {
413
- email?: string;
414
- phone?: string;
415
- social_media_url?: string;
435
+ export interface PersonInterestsOptions extends ToolOptions, PersonIdentity {
416
436
  }
417
- export interface PersonFollowersOptions extends ToolOptions {
418
- social_media_url: string;
437
+ export interface PersonFollowersOptions extends ToolOptions, PersonIdentity {
419
438
  type?: 'replies' | 'followers' | 'following' | 'followers,following';
420
439
  max_results?: number;
421
440
  }
@@ -1686,6 +1705,11 @@ export interface ComputeGoalStatus {
1686
1705
  next_run_at: string | null;
1687
1706
  };
1688
1707
  }
1708
+ /**
1709
+ * Observes distinct goal statuses from getComputeGoal, including the terminal
1710
+ * status before settlement. Throws/rejections are ignored; promises aren't awaited.
1711
+ */
1712
+ export type ComputeStatusUpdateFn = (status: ComputeGoalStatus['status'], goalId: string) => void;
1689
1713
  /** One thing a goal's task produced: a file a sandbox task left, or a tool result too large for the task row. */
1690
1714
  export interface ComputeOutput {
1691
1715
  /** Path-like key, e.g. `artifacts/<task_id>/result.txt`. */