@getopencrawl/sdk 0.0.0-stage → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +598 -2
- package/dist/agentPlatform.d.ts +142 -0
- package/dist/agentPlatform.d.ts.map +1 -0
- package/dist/agentPlatform.js +46 -0
- package/dist/agentPlatform.js.map +1 -0
- package/dist/agents.d.ts +237 -0
- package/dist/agents.d.ts.map +1 -0
- package/dist/agents.js +279 -0
- package/dist/agents.js.map +1 -0
- package/dist/answerContract.d.ts +85 -0
- package/dist/answerContract.d.ts.map +1 -0
- package/dist/answerContract.js +112 -0
- package/dist/answerContract.js.map +1 -0
- package/dist/answerView.d.ts +40 -0
- package/dist/answerView.d.ts.map +1 -0
- package/dist/answerView.js +118 -0
- package/dist/answerView.js.map +1 -0
- package/dist/configuration.d.ts +5 -0
- package/dist/configuration.d.ts.map +1 -0
- package/dist/configuration.js +29 -0
- package/dist/configuration.js.map +1 -0
- package/dist/customers.d.ts +176 -0
- package/dist/customers.d.ts.map +1 -0
- package/dist/customers.js +286 -0
- package/dist/customers.js.map +1 -0
- package/dist/errors.d.ts +35 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +58 -0
- package/dist/errors.js.map +1 -0
- package/dist/eventEvidence.d.ts +10 -0
- package/dist/eventEvidence.d.ts.map +1 -0
- package/dist/eventEvidence.js +52 -0
- package/dist/eventEvidence.js.map +1 -0
- package/dist/index.d.ts +98 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +139 -0
- package/dist/index.js.map +1 -0
- package/dist/productMonitors.d.ts +258 -0
- package/dist/productMonitors.d.ts.map +1 -0
- package/dist/productMonitors.js +68 -0
- package/dist/productMonitors.js.map +1 -0
- package/dist/researchAnswerContract.d.ts +8 -0
- package/dist/researchAnswerContract.d.ts.map +1 -0
- package/dist/researchAnswerContract.js +23 -0
- package/dist/researchAnswerContract.js.map +1 -0
- package/dist/researchAnswerView.d.ts +8 -0
- package/dist/researchAnswerView.d.ts.map +1 -0
- package/dist/researchAnswerView.js +27 -0
- package/dist/researchAnswerView.js.map +1 -0
- package/dist/researchCompletion.d.ts +114 -0
- package/dist/researchCompletion.d.ts.map +1 -0
- package/dist/researchCompletion.js +94 -0
- package/dist/researchCompletion.js.map +1 -0
- package/dist/serviceTenants.d.ts +15 -0
- package/dist/serviceTenants.d.ts.map +1 -0
- package/dist/serviceTenants.js +58 -0
- package/dist/serviceTenants.js.map +1 -0
- package/dist/tools.d.ts +59 -0
- package/dist/tools.d.ts.map +1 -0
- package/dist/tools.js +60 -0
- package/dist/tools.js.map +1 -0
- package/dist/transport.d.ts +34 -0
- package/dist/transport.d.ts.map +1 -0
- package/dist/transport.js +227 -0
- package/dist/transport.js.map +1 -0
- package/dist/types.d.ts +399 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/webhooks.d.ts +38 -0
- package/dist/webhooks.d.ts.map +1 -0
- package/dist/webhooks.js +73 -0
- package/dist/webhooks.js.map +1 -0
- package/examples/letter-customer-research-demo.mjs +54 -0
- package/examples/letter-customer-research-store.d.mts +38 -0
- package/examples/letter-customer-research-store.mjs +186 -0
- package/examples/letter-customer-research.d.mts +39 -0
- package/examples/letter-customer-research.mjs +194 -0
- package/examples/letter-event-receiver.d.mts +10 -0
- package/examples/letter-event-receiver.mjs +55 -0
- package/examples/letter-event-store.d.mts +35 -0
- package/examples/letter-event-store.mjs +84 -0
- package/examples/letter-seer.d.mts +31 -0
- package/examples/letter-seer.mjs +78 -0
- package/examples/letter-service-tenants.d.mts +12 -0
- package/examples/letter-service-tenants.mjs +49 -0
- package/examples/research-webhook-receiver.mjs +29 -0
- package/package.json +75 -4
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import type { Transport, RequestOptions } from './transport.js';
|
|
2
|
+
export type AgentSignupInput = {
|
|
3
|
+
organization: string;
|
|
4
|
+
email: string;
|
|
5
|
+
agent?: string;
|
|
6
|
+
create_new?: boolean;
|
|
7
|
+
};
|
|
8
|
+
export type AgentSignup = {
|
|
9
|
+
status: 'created';
|
|
10
|
+
organization: {
|
|
11
|
+
id: string;
|
|
12
|
+
name: string;
|
|
13
|
+
};
|
|
14
|
+
plan: string;
|
|
15
|
+
api_key: string;
|
|
16
|
+
limits: Record<string, number>;
|
|
17
|
+
next: Record<string, unknown>;
|
|
18
|
+
} | {
|
|
19
|
+
status: 'approval_required';
|
|
20
|
+
organization: {
|
|
21
|
+
name: string;
|
|
22
|
+
};
|
|
23
|
+
approve_url: string;
|
|
24
|
+
poll_url: string;
|
|
25
|
+
expires_in_seconds: number;
|
|
26
|
+
message: string;
|
|
27
|
+
};
|
|
28
|
+
export type AgentSignupPoll = {
|
|
29
|
+
status: 'pending' | 'expired' | 'denied' | 'consumed';
|
|
30
|
+
} | {
|
|
31
|
+
status: 'approved';
|
|
32
|
+
organization: {
|
|
33
|
+
id: string;
|
|
34
|
+
name: string;
|
|
35
|
+
};
|
|
36
|
+
api_key: string;
|
|
37
|
+
next: Record<string, unknown>;
|
|
38
|
+
};
|
|
39
|
+
export type ProjectSpec = {
|
|
40
|
+
name: string;
|
|
41
|
+
purpose: string;
|
|
42
|
+
customer: {
|
|
43
|
+
name: string;
|
|
44
|
+
website: string;
|
|
45
|
+
context: string;
|
|
46
|
+
};
|
|
47
|
+
watches: {
|
|
48
|
+
name: string;
|
|
49
|
+
urls: string[];
|
|
50
|
+
every: 'hour' | 'day' | 'week';
|
|
51
|
+
why: string;
|
|
52
|
+
crawl_pages: number;
|
|
53
|
+
include_media: boolean;
|
|
54
|
+
}[];
|
|
55
|
+
research: {
|
|
56
|
+
name: string;
|
|
57
|
+
question: string;
|
|
58
|
+
urls: string[];
|
|
59
|
+
use_watches: boolean;
|
|
60
|
+
}[];
|
|
61
|
+
connectors: {
|
|
62
|
+
toolkit: string;
|
|
63
|
+
name: string;
|
|
64
|
+
why: string;
|
|
65
|
+
}[];
|
|
66
|
+
webhooks: {
|
|
67
|
+
url: string;
|
|
68
|
+
watch: string;
|
|
69
|
+
}[];
|
|
70
|
+
};
|
|
71
|
+
export type ProjectHandoff = {
|
|
72
|
+
project_id: string;
|
|
73
|
+
name: string;
|
|
74
|
+
api_key?: string | null;
|
|
75
|
+
mcp: {
|
|
76
|
+
url: string;
|
|
77
|
+
headers: {
|
|
78
|
+
Authorization: string;
|
|
79
|
+
};
|
|
80
|
+
claude_code: string;
|
|
81
|
+
tools: string[];
|
|
82
|
+
};
|
|
83
|
+
cli: Record<string, unknown>;
|
|
84
|
+
api: Record<string, unknown>;
|
|
85
|
+
sdk: string;
|
|
86
|
+
built: {
|
|
87
|
+
watches: Record<string, unknown>[];
|
|
88
|
+
research: Record<string, unknown>[];
|
|
89
|
+
connectors: Record<string, unknown>[];
|
|
90
|
+
webhooks: Record<string, unknown>[];
|
|
91
|
+
};
|
|
92
|
+
notes: string[];
|
|
93
|
+
};
|
|
94
|
+
export type AgentTurn = {
|
|
95
|
+
session_id: string;
|
|
96
|
+
state: 'drafting' | 'building' | 'needs_connection' | 'ready';
|
|
97
|
+
spec: ProjectSpec;
|
|
98
|
+
open_issues: string[];
|
|
99
|
+
project: ProjectHandoff | null;
|
|
100
|
+
reply?: string;
|
|
101
|
+
questions?: string[];
|
|
102
|
+
ready?: boolean;
|
|
103
|
+
next: string;
|
|
104
|
+
transcript_turns: number;
|
|
105
|
+
updated_at: string;
|
|
106
|
+
connections?: Record<string, string>;
|
|
107
|
+
};
|
|
108
|
+
/** The OpenCrawl agent: describe a data project, answer its questions, build it. Use an organization admin key. */
|
|
109
|
+
export declare class AgentPlatform {
|
|
110
|
+
private readonly transport;
|
|
111
|
+
constructor(transport: Transport);
|
|
112
|
+
/** Start a conversation with a plain-language request, or a structured spec. */
|
|
113
|
+
start(input: {
|
|
114
|
+
message?: string;
|
|
115
|
+
spec?: Partial<ProjectSpec>;
|
|
116
|
+
}, options?: RequestOptions): Promise<AgentTurn>;
|
|
117
|
+
send(sessionId: string, input: {
|
|
118
|
+
message?: string;
|
|
119
|
+
spec?: Partial<ProjectSpec>;
|
|
120
|
+
}, options?: RequestOptions): Promise<AgentTurn>;
|
|
121
|
+
/** Build the agreed project. The returned project.api_key is shown only once. */
|
|
122
|
+
build(sessionId: string, options?: RequestOptions): Promise<AgentTurn>;
|
|
123
|
+
/** Verify app authorizations after the person opened each authorize_url. */
|
|
124
|
+
checkConnections(sessionId: string, options?: RequestOptions): Promise<AgentTurn>;
|
|
125
|
+
get(sessionId: string, options?: RequestOptions): Promise<AgentTurn>;
|
|
126
|
+
projects(options?: RequestOptions): Promise<{
|
|
127
|
+
items: (Omit<ProjectHandoff, 'api_key'> & {
|
|
128
|
+
session_id: string;
|
|
129
|
+
state: string;
|
|
130
|
+
})[];
|
|
131
|
+
}>;
|
|
132
|
+
}
|
|
133
|
+
/** Create a free organization (no key needed), or start an approval to join an existing one. */
|
|
134
|
+
export declare function signupOrganization(input: AgentSignupInput, options?: {
|
|
135
|
+
baseUrl?: string;
|
|
136
|
+
fetch?: typeof fetch;
|
|
137
|
+
}): Promise<AgentSignup>;
|
|
138
|
+
/** Poll an approval started by signupOrganization; the key is returned once. */
|
|
139
|
+
export declare function pollOrganizationSignup(pollUrl: string, options?: {
|
|
140
|
+
fetch?: typeof fetch;
|
|
141
|
+
}): Promise<AgentSignupPoll>;
|
|
142
|
+
//# sourceMappingURL=agentPlatform.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agentPlatform.d.ts","sourceRoot":"","sources":["../src/agentPlatform.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { OpenCrawlValidationError } from './errors.js';
|
|
2
|
+
const SESSION = /^ags_[a-f0-9]{32}$/;
|
|
3
|
+
/** The OpenCrawl agent: describe a data project, answer its questions, build it. Use an organization admin key. */
|
|
4
|
+
export class AgentPlatform {
|
|
5
|
+
transport;
|
|
6
|
+
constructor(transport) {
|
|
7
|
+
this.transport = transport;
|
|
8
|
+
}
|
|
9
|
+
/** Start a conversation with a plain-language request, or a structured spec. */
|
|
10
|
+
start(input, options = {}) {
|
|
11
|
+
if (!input?.message && !input?.spec)
|
|
12
|
+
throw new OpenCrawlValidationError('Describe what to build, or pass a spec.');
|
|
13
|
+
return this.transport.request('/api/v1/agent/sessions', { ...options, method: 'POST', body: input, automaticRetry: false, timeoutMs: options.timeoutMs ?? 120000 });
|
|
14
|
+
}
|
|
15
|
+
send(sessionId, input, options = {}) {
|
|
16
|
+
return this.transport.request(`/api/v1/agent/sessions/${session(sessionId)}/messages`, { ...options, method: 'POST', body: input, automaticRetry: false, timeoutMs: options.timeoutMs ?? 120000 });
|
|
17
|
+
}
|
|
18
|
+
/** Build the agreed project. The returned project.api_key is shown only once. */
|
|
19
|
+
build(sessionId, options = {}) { return this.send(sessionId, { action: 'build' }, options); }
|
|
20
|
+
/** Verify app authorizations after the person opened each authorize_url. */
|
|
21
|
+
checkConnections(sessionId, options = {}) { return this.send(sessionId, { action: 'check_connections' }, options); }
|
|
22
|
+
get(sessionId, options = {}) { return this.transport.request(`/api/v1/agent/sessions/${session(sessionId)}`, options); }
|
|
23
|
+
projects(options = {}) { return this.transport.request('/api/v1/agent/projects', options); }
|
|
24
|
+
}
|
|
25
|
+
function session(value) { if (!SESSION.test(value))
|
|
26
|
+
throw new OpenCrawlValidationError('Use a session ID returned by the OpenCrawl agent.'); return value; }
|
|
27
|
+
/** Create a free organization (no key needed), or start an approval to join an existing one. */
|
|
28
|
+
export async function signupOrganization(input, options = {}) {
|
|
29
|
+
const base = (options.baseUrl ?? 'https://app.getopencrawl.com').replace(/\/$/, '');
|
|
30
|
+
const response = await (options.fetch ?? fetch)(`${base}/api/v1/agent/signup`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(input) });
|
|
31
|
+
const value = await response.json();
|
|
32
|
+
if (!response.ok)
|
|
33
|
+
throw new OpenCrawlValidationError(typeof value?.detail === 'string' ? value.detail : 'Signup failed.');
|
|
34
|
+
return value;
|
|
35
|
+
}
|
|
36
|
+
/** Poll an approval started by signupOrganization; the key is returned once. */
|
|
37
|
+
export async function pollOrganizationSignup(pollUrl, options = {}) {
|
|
38
|
+
if (!/^https?:\/\/[^\s]+\/api\/v1\/agent\/signup\/[A-Za-z0-9_-]{20,64}$/.test(pollUrl))
|
|
39
|
+
throw new OpenCrawlValidationError('Use the poll_url returned by signup.');
|
|
40
|
+
const response = await (options.fetch ?? fetch)(pollUrl);
|
|
41
|
+
const value = await response.json();
|
|
42
|
+
if (!response.ok)
|
|
43
|
+
throw new OpenCrawlValidationError('Unknown signup request.');
|
|
44
|
+
return value;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=agentPlatform.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agentPlatform.js","sourceRoot":"","sources":["../src/agentPlatform.ts"],"names":[],"mappings":"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"}
|
package/dist/agents.d.ts
ADDED
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
import { Transport, type MutationOptions, type RequestOptions } from './transport.js';
|
|
2
|
+
export type ResearchCustomer = {
|
|
3
|
+
name: string;
|
|
4
|
+
website: string;
|
|
5
|
+
context?: string;
|
|
6
|
+
};
|
|
7
|
+
export type ResearchPolicy = 'completion_v1' | 'completion_v2' | 'completion_v3';
|
|
8
|
+
export type ResearchAgentInput = {
|
|
9
|
+
customer: ResearchCustomer;
|
|
10
|
+
goal: string;
|
|
11
|
+
collection_ids?: string[];
|
|
12
|
+
schedule_minutes?: 0;
|
|
13
|
+
research_policy?: ResearchPolicy;
|
|
14
|
+
};
|
|
15
|
+
export type ResearchAgentRunInput = {
|
|
16
|
+
expected_revision: number;
|
|
17
|
+
research_policy?: ResearchPolicy;
|
|
18
|
+
};
|
|
19
|
+
export type ResearchAgentWebPage = {
|
|
20
|
+
requested_url: string;
|
|
21
|
+
final_url: string;
|
|
22
|
+
body_sha256: string;
|
|
23
|
+
start: number;
|
|
24
|
+
end: number;
|
|
25
|
+
total_chars: number;
|
|
26
|
+
extractor: 'public-static-v3';
|
|
27
|
+
};
|
|
28
|
+
type ResearchAgentCitationBase = {
|
|
29
|
+
id: string;
|
|
30
|
+
url: string;
|
|
31
|
+
title: string;
|
|
32
|
+
quote: string;
|
|
33
|
+
start: number;
|
|
34
|
+
end: number;
|
|
35
|
+
body_sha256: string;
|
|
36
|
+
observed_at: string;
|
|
37
|
+
published_at: string | null;
|
|
38
|
+
};
|
|
39
|
+
export type ResearchAgentCitation = ResearchAgentCitationBase & ({
|
|
40
|
+
source_kind: 'web_search';
|
|
41
|
+
collection_id: null;
|
|
42
|
+
document_id: null;
|
|
43
|
+
version_id: null;
|
|
44
|
+
page?: never;
|
|
45
|
+
} | {
|
|
46
|
+
source_kind: 'indexed';
|
|
47
|
+
collection_id: string;
|
|
48
|
+
document_id: string;
|
|
49
|
+
version_id: string;
|
|
50
|
+
page?: never;
|
|
51
|
+
} | {
|
|
52
|
+
source_kind: 'web_page';
|
|
53
|
+
collection_id: null;
|
|
54
|
+
document_id: null;
|
|
55
|
+
version_id: null;
|
|
56
|
+
page: ResearchAgentWebPage;
|
|
57
|
+
});
|
|
58
|
+
export type ResearchAgentFinding = {
|
|
59
|
+
id: string;
|
|
60
|
+
claim: string;
|
|
61
|
+
relevance: string;
|
|
62
|
+
qualifiers: string[];
|
|
63
|
+
citations: ResearchAgentCitation[];
|
|
64
|
+
};
|
|
65
|
+
export type ResearchAgentRun = {
|
|
66
|
+
id: string;
|
|
67
|
+
agent_id: string;
|
|
68
|
+
agent_revision: number;
|
|
69
|
+
status: 'queued' | 'running' | 'completed' | 'partial' | 'needs_input' | 'failed' | 'unknown' | 'cancelled';
|
|
70
|
+
phase: 'queued' | 'researching' | 'synthesizing' | 'presenting' | 'finished';
|
|
71
|
+
created_at: string;
|
|
72
|
+
started_at: string | null;
|
|
73
|
+
finished_at: string | null;
|
|
74
|
+
outcome: 'findings' | 'no_supported_findings' | 'needs_input' | null;
|
|
75
|
+
findings: ResearchAgentFinding[];
|
|
76
|
+
gaps: string[];
|
|
77
|
+
usage: Record<string, unknown>;
|
|
78
|
+
error: {
|
|
79
|
+
code: string;
|
|
80
|
+
message: string;
|
|
81
|
+
} | null;
|
|
82
|
+
};
|
|
83
|
+
export type ResearchAgent = {
|
|
84
|
+
id: string;
|
|
85
|
+
customer: Required<ResearchCustomer>;
|
|
86
|
+
goal: string;
|
|
87
|
+
collection_ids: string[];
|
|
88
|
+
revision: number;
|
|
89
|
+
status: 'active' | 'paused';
|
|
90
|
+
schedule_minutes: 0 | 1440;
|
|
91
|
+
created_at: string;
|
|
92
|
+
updated_at: string;
|
|
93
|
+
latest_run: ResearchAgentRun | null;
|
|
94
|
+
};
|
|
95
|
+
export type ResearchAgentReceipt = {
|
|
96
|
+
agent: ResearchAgent;
|
|
97
|
+
run: ResearchAgentRun;
|
|
98
|
+
replayed: boolean;
|
|
99
|
+
};
|
|
100
|
+
export type ResearchAgentSchedule = {
|
|
101
|
+
agent_id: string;
|
|
102
|
+
revision: number;
|
|
103
|
+
enabled: boolean;
|
|
104
|
+
schedule_minutes: 0 | 1440;
|
|
105
|
+
next_scheduled_at: string | null;
|
|
106
|
+
blocked_reason: null | 'unknown' | 'failed' | 'needs_input' | 'cancelled' | 'access_changed' | 'agent_paused';
|
|
107
|
+
blocked_run_id: string | null;
|
|
108
|
+
deferred_reason: null | 'capacity' | 'daily_budget' | 'storage' | 'run_active' | 'history_capacity';
|
|
109
|
+
};
|
|
110
|
+
export type ResearchAgentRepeat = {
|
|
111
|
+
finding_id: string;
|
|
112
|
+
classification: 'first_seen' | 'exact_repeat';
|
|
113
|
+
first_seen_run_id: string;
|
|
114
|
+
first_seen_finding_id: string;
|
|
115
|
+
};
|
|
116
|
+
export type ResearchAgentRepeats = {
|
|
117
|
+
agent_id: string;
|
|
118
|
+
run_id: string;
|
|
119
|
+
status: 'available' | 'not_assessed';
|
|
120
|
+
items: ResearchAgentRepeat[];
|
|
121
|
+
};
|
|
122
|
+
export type ResearchAgentPage = {
|
|
123
|
+
items: ResearchAgent[];
|
|
124
|
+
next_cursor: string | null;
|
|
125
|
+
};
|
|
126
|
+
export type ResearchAgentRunPage = {
|
|
127
|
+
items: ResearchAgentRun[];
|
|
128
|
+
next_cursor: string;
|
|
129
|
+
has_more: boolean;
|
|
130
|
+
};
|
|
131
|
+
type SourceWindow<T> = T extends unknown ? Omit<T, 'quote' | 'start' | 'end'> & {
|
|
132
|
+
text: string;
|
|
133
|
+
} : never;
|
|
134
|
+
export type ResearchAgentSource = SourceWindow<Exclude<ResearchAgentCitation, {
|
|
135
|
+
source_kind: 'web_search';
|
|
136
|
+
}>>;
|
|
137
|
+
export type ResearchAgentSourceReceipt = {
|
|
138
|
+
agent_id: string;
|
|
139
|
+
run_id: string;
|
|
140
|
+
source: ResearchAgentSource;
|
|
141
|
+
};
|
|
142
|
+
export type ResearchAgentFeedbackRating = 'useful' | 'irrelevant' | 'incorrect' | 'outdated';
|
|
143
|
+
export type ResearchAgentFeedbackInput = {
|
|
144
|
+
expected_revision: number;
|
|
145
|
+
rating: ResearchAgentFeedbackRating;
|
|
146
|
+
note?: string | null;
|
|
147
|
+
};
|
|
148
|
+
export type ResearchAgentFeedbackReceipt = {
|
|
149
|
+
agent_id: string;
|
|
150
|
+
run_id: string;
|
|
151
|
+
finding_id: string;
|
|
152
|
+
feedback: {
|
|
153
|
+
version: 1;
|
|
154
|
+
revision: number;
|
|
155
|
+
} & ({
|
|
156
|
+
state: 'absent';
|
|
157
|
+
rating: null;
|
|
158
|
+
note: null;
|
|
159
|
+
updated_at: null;
|
|
160
|
+
} | {
|
|
161
|
+
state: 'deleted';
|
|
162
|
+
rating: null;
|
|
163
|
+
note: null;
|
|
164
|
+
updated_at: string;
|
|
165
|
+
} | {
|
|
166
|
+
state: 'active';
|
|
167
|
+
rating: ResearchAgentFeedbackRating;
|
|
168
|
+
note: string | null;
|
|
169
|
+
updated_at: string;
|
|
170
|
+
});
|
|
171
|
+
};
|
|
172
|
+
export type AgentWaitOptions = RequestOptions & {
|
|
173
|
+
maxWaitMs?: number;
|
|
174
|
+
pollIntervalMs?: number;
|
|
175
|
+
onProgress?: (run: ResearchAgentRun) => void;
|
|
176
|
+
};
|
|
177
|
+
export declare function validateAgentFeedbackInput(input: ResearchAgentFeedbackInput): Required<ResearchAgentFeedbackInput>;
|
|
178
|
+
export declare function validateAgentFeedback(value: unknown, agentId: string, runId: string, findingId: string): ResearchAgentFeedbackReceipt;
|
|
179
|
+
export declare function validateAgentInput(input: ResearchAgentInput): ResearchAgentInput;
|
|
180
|
+
export declare function validateAgentRun(value: unknown, agentId?: string, runId?: string): ResearchAgentRun;
|
|
181
|
+
export declare function validateAgent(value: unknown, id?: string): ResearchAgent;
|
|
182
|
+
export declare function validateAgentSchedule(value: unknown, agentId: string): ResearchAgentSchedule;
|
|
183
|
+
export declare function validateAgentRepeats(value: unknown, agentId: string, runId: string): ResearchAgentRepeats;
|
|
184
|
+
declare class AgentSchedule {
|
|
185
|
+
private readonly transport;
|
|
186
|
+
constructor(transport: Transport);
|
|
187
|
+
get(agentId: string, options?: RequestOptions): Promise<ResearchAgentSchedule>;
|
|
188
|
+
/** Compare-and-set; on an uncertain response, read the schedule before any further write. */
|
|
189
|
+
update(agentId: string, input: {
|
|
190
|
+
expected_revision: number;
|
|
191
|
+
enabled: boolean;
|
|
192
|
+
}, options?: RequestOptions): Promise<ResearchAgentSchedule>;
|
|
193
|
+
}
|
|
194
|
+
declare class AgentFeedback {
|
|
195
|
+
private readonly transport;
|
|
196
|
+
constructor(transport: Transport);
|
|
197
|
+
private path;
|
|
198
|
+
get(agentId: string, runId: string, findingId: string, options?: RequestOptions): Promise<ResearchAgentFeedbackReceipt>;
|
|
199
|
+
/** Compare-and-set only; read this same resource after an uncertain write. */
|
|
200
|
+
set(agentId: string, runId: string, findingId: string, input: ResearchAgentFeedbackInput, options?: RequestOptions): Promise<ResearchAgentFeedbackReceipt>;
|
|
201
|
+
delete(agentId: string, runId: string, findingId: string, expectedRevision: number, options?: RequestOptions): Promise<ResearchAgentFeedbackReceipt>;
|
|
202
|
+
}
|
|
203
|
+
declare class AgentRuns {
|
|
204
|
+
private readonly transport;
|
|
205
|
+
readonly feedback: AgentFeedback;
|
|
206
|
+
constructor(transport: Transport);
|
|
207
|
+
/** Read one admission-ordered page. Persist pending IDs with the cursor; this is not an update feed. */
|
|
208
|
+
list(agentId: string, options?: RequestOptions & {
|
|
209
|
+
limit?: number;
|
|
210
|
+
cursor?: string;
|
|
211
|
+
}): Promise<ResearchAgentRunPage>;
|
|
212
|
+
repeats(agentId: string, runId: string, options?: RequestOptions): Promise<ResearchAgentRepeats>;
|
|
213
|
+
/** One exact admitted source window. No new search or automatic source fetching. */
|
|
214
|
+
source(agentId: string, runId: string, sourceId: string, options?: RequestOptions): Promise<ResearchAgentSourceReceipt>;
|
|
215
|
+
create(agentId: string, input: ResearchAgentRunInput, options: MutationOptions): Promise<ResearchAgentReceipt>;
|
|
216
|
+
get(agentId: string, runId: string, options?: RequestOptions): Promise<ResearchAgentRun>;
|
|
217
|
+
wait(agentId: string, runId: string, options?: AgentWaitOptions): Promise<ResearchAgentRun>;
|
|
218
|
+
}
|
|
219
|
+
export declare class ResearchAgents {
|
|
220
|
+
private readonly transport;
|
|
221
|
+
readonly runs: AgentRuns;
|
|
222
|
+
readonly schedule: AgentSchedule;
|
|
223
|
+
constructor(transport: Transport);
|
|
224
|
+
create(input: ResearchAgentInput, options: MutationOptions): Promise<ResearchAgentReceipt>;
|
|
225
|
+
get(id: string, options?: RequestOptions): Promise<ResearchAgent>;
|
|
226
|
+
list(options?: RequestOptions & {
|
|
227
|
+
limit?: number;
|
|
228
|
+
cursor?: string;
|
|
229
|
+
}): Promise<ResearchAgentPage>;
|
|
230
|
+
update(id: string, input: {
|
|
231
|
+
expected_revision: number;
|
|
232
|
+
status: 'active' | 'paused';
|
|
233
|
+
}, options?: RequestOptions): Promise<ResearchAgent>;
|
|
234
|
+
receipt(operation: 'create' | `run:${string}`, options: MutationOptions): Promise<ResearchAgentReceipt>;
|
|
235
|
+
}
|
|
236
|
+
export {};
|
|
237
|
+
//# sourceMappingURL=agents.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../src/agents.ts"],"names":[],"mappings":"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"}
|