@getunblocked/sdk 0.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 (50) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +211 -0
  3. package/dist/agents.d.ts +301 -0
  4. package/dist/agents.d.ts.map +1 -0
  5. package/dist/agents.js +262 -0
  6. package/dist/agents.js.map +1 -0
  7. package/dist/client.d.ts +39 -0
  8. package/dist/client.d.ts.map +1 -0
  9. package/dist/client.js +76 -0
  10. package/dist/client.js.map +1 -0
  11. package/dist/errors.d.ts +70 -0
  12. package/dist/errors.d.ts.map +1 -0
  13. package/dist/errors.js +96 -0
  14. package/dist/errors.js.map +1 -0
  15. package/dist/http.d.ts +16 -0
  16. package/dist/http.d.ts.map +1 -0
  17. package/dist/http.js +222 -0
  18. package/dist/http.js.map +1 -0
  19. package/dist/index.d.ts +10 -0
  20. package/dist/index.d.ts.map +1 -0
  21. package/dist/index.js +7 -0
  22. package/dist/index.js.map +1 -0
  23. package/dist/timing.d.ts +9 -0
  24. package/dist/timing.d.ts.map +1 -0
  25. package/dist/timing.js +86 -0
  26. package/dist/timing.js.map +1 -0
  27. package/dist/types.d.ts +273 -0
  28. package/dist/types.d.ts.map +1 -0
  29. package/dist/types.js +2 -0
  30. package/dist/types.js.map +1 -0
  31. package/dist/version.d.ts +14 -0
  32. package/dist/version.d.ts.map +1 -0
  33. package/dist/version.js +22 -0
  34. package/dist/version.js.map +1 -0
  35. package/docs/README.md +28 -0
  36. package/docs/agent-frameworks.md +84 -0
  37. package/docs/api-design.md +53 -0
  38. package/docs/authentication.md +71 -0
  39. package/docs/configuration.md +67 -0
  40. package/docs/context.md +131 -0
  41. package/docs/contributing.md +51 -0
  42. package/docs/errors-and-retries.md +135 -0
  43. package/docs/getting-started.md +62 -0
  44. package/docs/low-level-requests.md +72 -0
  45. package/docs/pagination.md +29 -0
  46. package/docs/release.md +73 -0
  47. package/docs/runtime-and-packaging.md +57 -0
  48. package/docs/typescript.md +102 -0
  49. package/examples/context-research-tool.ts +10 -0
  50. package/package.json +51 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Next Chapter Software, Inc.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,211 @@
1
+ # Unblocked TypeScript SDK
2
+
3
+ Lightweight TypeScript wrapper for the [Unblocked Public API](https://docs.getunblocked.com/api-reference/quickstart).
4
+
5
+ The SDK uses the same API token authentication as the public API: pass a Personal Access Token or Team Access Token as a bearer token. You can pass the token explicitly or set `UNBLOCKED_API_TOKEN`.
6
+
7
+ ## Install
8
+
9
+ ```bash
10
+ bun add @getunblocked/sdk
11
+ # or: npm install @getunblocked/sdk
12
+ ```
13
+
14
+ The package is a public scoped package on npm. The compiled `dist/` is committed
15
+ to the repo too, so a direct git install needs no build step and pulls in no
16
+ dependencies (the SDK has zero runtime dependencies):
17
+
18
+ ```bash
19
+ bun add git+ssh://git@github.com/unblocked/unblocked-typescript-sdk.git#v0.1.0
20
+ ```
21
+
22
+ Always pin a tag (e.g. `#v0.1.0`) for git installs so they're reproducible —
23
+ omitting it tracks the default branch.
24
+
25
+ > The `github:owner/repo` shorthand and plain `https` git URLs go through GitHub's unauthenticated tarball API, which 404s on a private repo. Use the `git+ssh://` URL above (or a tokenized `https` URL) so a git install authenticates.
26
+
27
+ > **Public template extraction:** now that the SDK package is public, `examples/eve-pr-triage` can be extracted into its own repo (`unblocked/eve-pr-triage-agent`, configured as a GitHub *template* repo for the "Use this template" button — no `-template` suffix; keep `eve` in the name for harness discoverability). Swap its `@getunblocked/sdk` dependency from `file:../..` to the published package and drop the `predeploy`/`postdeploy` tarball step. Leave a link-out here and in `docs/agent-frameworks.md`. The extraction's benefits (Vercel deploy button, public showcase, own issue tracker) switch on once the SDK is public.
28
+
29
+ > **When the GitHub repo goes public:** enable npm provenance — add `id-token: write` to the `permissions` block in `publish.yml` and `--provenance` to the `npm publish` step. Provenance is blocked while the *source repo* is private (the attestation publishes repo/workflow metadata to the public Sigstore log), even though the npm package itself is public.
30
+
31
+ ## Quickstart
32
+
33
+ ```ts
34
+ import Unblocked from "@getunblocked/sdk";
35
+
36
+ const unblocked = new Unblocked({
37
+ apiKey: process.env.UNBLOCKED_API_TOKEN,
38
+ });
39
+
40
+ const research = await unblocked.context.research({
41
+ query: "How does the user authentication system work?",
42
+ });
43
+
44
+ console.log(research.summary);
45
+ for (const source of research.sources) {
46
+ console.log(source.content);
47
+ console.log(source.url);
48
+ }
49
+
50
+ const code = await unblocked.context.search.code({
51
+ query: "rate limiting",
52
+ });
53
+
54
+ const urls = await unblocked.context.get.urls({
55
+ urls: ["https://my.company.com/apollo/ticket/123456"],
56
+ });
57
+ ```
58
+
59
+ The same flow is available as a runnable script — from a clone of this repo (no install or build step needed):
60
+
61
+ ```bash
62
+ UNBLOCKED_API_TOKEN=unb_... node examples/quickstart.mjs "How does auth work?"
63
+ ```
64
+
65
+ ## Documentation
66
+
67
+ Detailed guides live in [`docs/`](./docs/README.md):
68
+
69
+ - [Getting Started](./docs/getting-started.md)
70
+ - [Authentication](./docs/authentication.md)
71
+ - [Configuration](./docs/configuration.md)
72
+ - [Context](./docs/context.md)
73
+ - [Pagination](./docs/pagination.md)
74
+ - [Errors and Retries](./docs/errors-and-retries.md)
75
+ - [Agent Frameworks](./docs/agent-frameworks.md)
76
+ - [Low-Level Requests](./docs/low-level-requests.md)
77
+ - [Runtime and Packaging](./docs/runtime-and-packaging.md)
78
+ - [TypeScript Guide](./docs/typescript.md)
79
+
80
+ ## Authentication
81
+
82
+ Unblocked supports Personal Access Tokens and Team Access Tokens. Both are sent as:
83
+
84
+ ```http
85
+ Authorization: Bearer <token>
86
+ ```
87
+
88
+ The client resolves tokens in this order:
89
+
90
+ 1. `new Unblocked({ apiKey })`
91
+ 2. `new Unblocked({ token })`
92
+ 3. `UNBLOCKED_API_TOKEN`
93
+ 4. `UNBLOCKED_API_KEY`
94
+
95
+ `apiKey` and `token` can also be async token providers:
96
+
97
+ ```ts
98
+ const unblocked = new Unblocked({
99
+ apiKey: async () => getTokenFromSecretManager(),
100
+ });
101
+ ```
102
+
103
+ ## Client Options
104
+
105
+ ```ts
106
+ const unblocked = new Unblocked({
107
+ apiKey: process.env.UNBLOCKED_API_TOKEN,
108
+ baseUrl: "https://getunblocked.com/api",
109
+ timeoutMs: 30_000,
110
+ maxRetries: 2,
111
+ retryDelayMs: 500,
112
+ fetch: globalThis.fetch,
113
+ });
114
+ ```
115
+
116
+ `GET`, `PUT`, and `DELETE` requests retry transient network failures and `408`, `429`, `500`, `502`, `503`, and `504` responses. `POST` and `PATCH` are not retried by default because they are not generally safe to replay.
117
+
118
+ ## API Surface
119
+
120
+ ```ts
121
+ const unblocked = new Unblocked();
122
+
123
+ await unblocked.context.research({ query, instruction, effort });
124
+
125
+ await unblocked.context.search.code({ query, instruction });
126
+ await unblocked.context.search.prs({ query, instruction });
127
+ await unblocked.context.search.issues({ query, instruction });
128
+ await unblocked.context.search.documentation({ query, instruction });
129
+ await unblocked.context.search.messages({ query, instruction });
130
+
131
+ await unblocked.context.query.issues({ query, projects, user_name });
132
+ await unblocked.context.query.prs({ query, projects, user_name });
133
+
134
+ await unblocked.context.get.urls({ urls });
135
+ await unblocked.context.get.rules({ repoName, ruleId, task, language, paths });
136
+ ```
137
+
138
+ Search, query, and get methods resolve to `{ sources: ContextSearchSource[] }`. Research also returns a `summary` and the `effort` used:
139
+
140
+ ```ts
141
+ const research = await unblocked.context.research({ query: "How does auth work?" });
142
+
143
+ research.summary; // string
144
+ research.sources; // [{ content, title?, url?, sourceType?, provider? }, ...]
145
+ research.effort; // "low" | "medium" | "high"
146
+
147
+ const code = await unblocked.context.search.code({ query: "rate limiting" });
148
+ code.sources; // [{ content, title?, url?, sourceType?, provider? }, ...]
149
+ ```
150
+
151
+ See [`docs/context.md`](./docs/context.md) for the full surface and effort levels.
152
+
153
+ ## Low-Level Requests
154
+
155
+ The resource methods cover the public API, but the client also exposes typed request helpers for new endpoints or advanced callers:
156
+
157
+ ```ts
158
+ const result = await unblocked.request("POST", "/tools/context/research", {
159
+ body: { query: "How does auth work?" },
160
+ });
161
+ ```
162
+
163
+ ## Agent Frameworks
164
+
165
+ The SDK exports plain functions and JSON-schema-shaped descriptors so frameworks can adapt them without pulling in framework-specific dependencies.
166
+
167
+ ```ts
168
+ import { createUnblockedTools, unblockedToolSchemas } from "@getunblocked/sdk";
169
+
170
+ const tools = createUnblockedTools({
171
+ apiKey: process.env.UNBLOCKED_API_TOKEN,
172
+ });
173
+
174
+ export const research = {
175
+ ...unblockedToolSchemas.research,
176
+ execute: tools.research,
177
+ };
178
+ ```
179
+
180
+ For frameworks such as Flue or Eve, put the wrapper above in the framework's TypeScript tool file and let that framework handle its own tool registration conventions.
181
+
182
+ See [`examples/quickstart.mjs`](./examples/quickstart.mjs) for a minimal runnable script, and `examples/context-research-tool.ts` for the tool-module pattern above.
183
+
184
+ For a full local programmable-harness demo, see [`examples/flue-bug-triage`](./examples/flue-bug-triage/README.md). For a deployable GitHub-App-webhook PR-triage agent that makes Unblocked context a required triage step, see [`examples/eve-pr-triage`](./examples/eve-pr-triage/README.md).
185
+
186
+ ## Runtime Support
187
+
188
+ - ESM package
189
+ - No runtime dependencies
190
+ - Uses the platform `fetch`
191
+ - Requires Node.js 18+ or any runtime with `fetch`
192
+
193
+ ## Error Handling
194
+
195
+ Non-2xx API responses throw `UnblockedApiError` with `status`, `statusText`, response `headers`, parsed response `body`, and `requestId` (the `X-Request-ID` header). The thrown error is a status-specific subclass — `UnblockedBadRequestError` (400), `UnblockedAuthenticationError` (401), `UnblockedPermissionDeniedError` (403), `UnblockedNotFoundError` (404), `UnblockedRateLimitError` (429), and `UnblockedServerError` (5xx) — all extending `UnblockedApiError`. Request timeouts throw `UnblockedTimeoutError`.
196
+
197
+ ```ts
198
+ import { UnblockedApiError, UnblockedTimeoutError } from "@getunblocked/sdk";
199
+
200
+ try {
201
+ await unblocked.context.research({ query: "How does auth work?" });
202
+ } catch (error) {
203
+ if (error instanceof UnblockedApiError) {
204
+ console.error(error.status, error.body, error.requestId);
205
+ } else if (error instanceof UnblockedTimeoutError) {
206
+ console.error(error.message);
207
+ }
208
+ }
209
+ ```
210
+
211
+ See [`docs/errors-and-retries.md`](./docs/errors-and-retries.md) for the full subclass table.
@@ -0,0 +1,301 @@
1
+ import { UnblockedClient } from "./client.js";
2
+ import type { ContextGetResponse, ContextGetRulesRequest, ContextGetUrlsRequest, ContextQueryIssuesRequest, ContextQueryPrsRequest, ContextQueryResponse, ContextResearchRequest, ContextResearchResponse, ContextSearchRequest, ContextSearchResponse, UnblockedClientOptions } from "./types.js";
3
+ export interface UnblockedAgentTools {
4
+ research(input: ContextResearchRequest): Promise<ContextResearchResponse>;
5
+ searchCode(input: ContextSearchRequest): Promise<ContextSearchResponse>;
6
+ searchPrs(input: ContextSearchRequest): Promise<ContextSearchResponse>;
7
+ searchIssues(input: ContextSearchRequest): Promise<ContextSearchResponse>;
8
+ searchDocumentation(input: ContextSearchRequest): Promise<ContextSearchResponse>;
9
+ searchMessages(input: ContextSearchRequest): Promise<ContextSearchResponse>;
10
+ queryIssues(input: ContextQueryIssuesRequest): Promise<ContextQueryResponse>;
11
+ queryPrs(input: ContextQueryPrsRequest): Promise<ContextQueryResponse>;
12
+ getUrls(input: ContextGetUrlsRequest): Promise<ContextGetResponse>;
13
+ getRules(input: ContextGetRulesRequest): Promise<ContextGetResponse>;
14
+ }
15
+ export declare function createUnblockedTools(clientOrOptions?: UnblockedClient | UnblockedClientOptions): UnblockedAgentTools;
16
+ export declare const unblockedToolSchemas: {
17
+ readonly research: {
18
+ readonly description: "Unified multi-source research across all connected context; synthesizes an answer with references.";
19
+ readonly parameters: {
20
+ readonly type: "object";
21
+ readonly properties: {
22
+ readonly query: {
23
+ readonly type: "string";
24
+ readonly description: "The research question to investigate.";
25
+ };
26
+ readonly instruction: {
27
+ readonly type: "string";
28
+ readonly description: "Optional guidance shaping how the research is performed or presented.";
29
+ };
30
+ readonly effort: {
31
+ readonly type: "string";
32
+ readonly enum: readonly ["low", "medium", "high"];
33
+ readonly description: "Effort level: low (quick lookup), medium (normal), high (broad cross-system research).";
34
+ };
35
+ readonly toolCallId: {
36
+ readonly type: "string";
37
+ readonly description: "Optional identifier correlating this call with the originating tool call.";
38
+ };
39
+ readonly sessionId: {
40
+ readonly type: "string";
41
+ readonly description: "Optional session identifier grouping related context calls.";
42
+ };
43
+ };
44
+ readonly required: readonly ["query"];
45
+ };
46
+ };
47
+ readonly searchCode: {
48
+ readonly description: "Search the connected codebase for relevant code.";
49
+ readonly parameters: {
50
+ readonly type: "object";
51
+ readonly properties: {
52
+ readonly query: {
53
+ readonly type: "string";
54
+ readonly description: "The code search query.";
55
+ };
56
+ readonly instruction: {
57
+ readonly type: "string";
58
+ readonly description: "Optional guidance shaping how the search is performed or presented.";
59
+ };
60
+ readonly toolCallId: {
61
+ readonly type: "string";
62
+ readonly description: "Optional identifier correlating this call with the originating tool call.";
63
+ };
64
+ readonly sessionId: {
65
+ readonly type: "string";
66
+ readonly description: "Optional session identifier grouping related context calls.";
67
+ };
68
+ };
69
+ readonly required: readonly ["query"];
70
+ };
71
+ };
72
+ readonly searchPrs: {
73
+ readonly description: "Search pull requests for relevant changes and discussion.";
74
+ readonly parameters: {
75
+ readonly type: "object";
76
+ readonly properties: {
77
+ readonly query: {
78
+ readonly type: "string";
79
+ readonly description: "The pull request search query.";
80
+ };
81
+ readonly instruction: {
82
+ readonly type: "string";
83
+ readonly description: "Optional guidance shaping how the search is performed or presented.";
84
+ };
85
+ readonly toolCallId: {
86
+ readonly type: "string";
87
+ readonly description: "Optional identifier correlating this call with the originating tool call.";
88
+ };
89
+ readonly sessionId: {
90
+ readonly type: "string";
91
+ readonly description: "Optional session identifier grouping related context calls.";
92
+ };
93
+ };
94
+ readonly required: readonly ["query"];
95
+ };
96
+ };
97
+ readonly searchIssues: {
98
+ readonly description: "Search issues for relevant reports and discussion.";
99
+ readonly parameters: {
100
+ readonly type: "object";
101
+ readonly properties: {
102
+ readonly query: {
103
+ readonly type: "string";
104
+ readonly description: "The issue search query.";
105
+ };
106
+ readonly instruction: {
107
+ readonly type: "string";
108
+ readonly description: "Optional guidance shaping how the search is performed or presented.";
109
+ };
110
+ readonly toolCallId: {
111
+ readonly type: "string";
112
+ readonly description: "Optional identifier correlating this call with the originating tool call.";
113
+ };
114
+ readonly sessionId: {
115
+ readonly type: "string";
116
+ readonly description: "Optional session identifier grouping related context calls.";
117
+ };
118
+ };
119
+ readonly required: readonly ["query"];
120
+ };
121
+ };
122
+ readonly searchDocumentation: {
123
+ readonly description: "Search connected documentation for relevant content.";
124
+ readonly parameters: {
125
+ readonly type: "object";
126
+ readonly properties: {
127
+ readonly query: {
128
+ readonly type: "string";
129
+ readonly description: "The documentation search query.";
130
+ };
131
+ readonly instruction: {
132
+ readonly type: "string";
133
+ readonly description: "Optional guidance shaping how the search is performed or presented.";
134
+ };
135
+ readonly toolCallId: {
136
+ readonly type: "string";
137
+ readonly description: "Optional identifier correlating this call with the originating tool call.";
138
+ };
139
+ readonly sessionId: {
140
+ readonly type: "string";
141
+ readonly description: "Optional session identifier grouping related context calls.";
142
+ };
143
+ };
144
+ readonly required: readonly ["query"];
145
+ };
146
+ };
147
+ readonly searchMessages: {
148
+ readonly description: "Search connected messages and conversations for relevant discussion.";
149
+ readonly parameters: {
150
+ readonly type: "object";
151
+ readonly properties: {
152
+ readonly query: {
153
+ readonly type: "string";
154
+ readonly description: "The message search query.";
155
+ };
156
+ readonly instruction: {
157
+ readonly type: "string";
158
+ readonly description: "Optional guidance shaping how the search is performed or presented.";
159
+ };
160
+ readonly toolCallId: {
161
+ readonly type: "string";
162
+ readonly description: "Optional identifier correlating this call with the originating tool call.";
163
+ };
164
+ readonly sessionId: {
165
+ readonly type: "string";
166
+ readonly description: "Optional session identifier grouping related context calls.";
167
+ };
168
+ };
169
+ readonly required: readonly ["query"];
170
+ };
171
+ };
172
+ readonly queryIssues: {
173
+ readonly description: "Query issues by natural-language query, optionally scoped by projects and/or user.";
174
+ readonly parameters: {
175
+ readonly type: "object";
176
+ readonly properties: {
177
+ readonly query: {
178
+ readonly type: "string";
179
+ readonly description: "The issue query.";
180
+ };
181
+ readonly projects: {
182
+ readonly type: "array";
183
+ readonly items: {
184
+ readonly type: "string";
185
+ };
186
+ readonly description: "Optional list of projects to scope the query to.";
187
+ };
188
+ readonly user_name: {
189
+ readonly type: "string";
190
+ readonly description: "Optional user name to scope the query to.";
191
+ };
192
+ readonly toolCallId: {
193
+ readonly type: "string";
194
+ readonly description: "Optional identifier correlating this call with the originating tool call.";
195
+ };
196
+ readonly sessionId: {
197
+ readonly type: "string";
198
+ readonly description: "Optional session identifier grouping related context calls.";
199
+ };
200
+ };
201
+ readonly required: readonly ["query"];
202
+ };
203
+ };
204
+ readonly queryPrs: {
205
+ readonly description: "Query pull requests by natural-language query, optionally scoped by projects and/or user.";
206
+ readonly parameters: {
207
+ readonly type: "object";
208
+ readonly properties: {
209
+ readonly query: {
210
+ readonly type: "string";
211
+ readonly description: "The pull request query.";
212
+ };
213
+ readonly projects: {
214
+ readonly type: "array";
215
+ readonly items: {
216
+ readonly type: "string";
217
+ };
218
+ readonly description: "Optional list of projects to scope the query to.";
219
+ };
220
+ readonly user_name: {
221
+ readonly type: "string";
222
+ readonly description: "Optional user name to scope the query to.";
223
+ };
224
+ readonly toolCallId: {
225
+ readonly type: "string";
226
+ readonly description: "Optional identifier correlating this call with the originating tool call.";
227
+ };
228
+ readonly sessionId: {
229
+ readonly type: "string";
230
+ readonly description: "Optional session identifier grouping related context calls.";
231
+ };
232
+ };
233
+ readonly required: readonly ["query"];
234
+ };
235
+ };
236
+ readonly getUrls: {
237
+ readonly description: "Fetch and summarize the content of specific URLs.";
238
+ readonly parameters: {
239
+ readonly type: "object";
240
+ readonly properties: {
241
+ readonly urls: {
242
+ readonly type: "array";
243
+ readonly items: {
244
+ readonly type: "string";
245
+ };
246
+ readonly description: "The URLs to fetch content for.";
247
+ };
248
+ readonly toolCallId: {
249
+ readonly type: "string";
250
+ readonly description: "Optional identifier correlating this call with the originating tool call.";
251
+ };
252
+ readonly sessionId: {
253
+ readonly type: "string";
254
+ readonly description: "Optional session identifier grouping related context calls.";
255
+ };
256
+ };
257
+ readonly required: readonly ["urls"];
258
+ };
259
+ };
260
+ readonly getRules: {
261
+ readonly description: "Get the coding rules and conventions for a repository, optionally scoped by task, language, and paths.";
262
+ readonly parameters: {
263
+ readonly type: "object";
264
+ readonly properties: {
265
+ readonly repoName: {
266
+ readonly type: "string";
267
+ readonly description: "The repository to fetch rules for.";
268
+ };
269
+ readonly ruleId: {
270
+ readonly type: "string";
271
+ readonly description: "Optional specific rule identifier to fetch.";
272
+ };
273
+ readonly task: {
274
+ readonly type: "string";
275
+ readonly description: "Optional task description to scope the rules lookup to.";
276
+ };
277
+ readonly language: {
278
+ readonly type: "string";
279
+ readonly description: "Optional programming language to scope the rules lookup to.";
280
+ };
281
+ readonly paths: {
282
+ readonly type: "array";
283
+ readonly items: {
284
+ readonly type: "string";
285
+ };
286
+ readonly description: "Optional file paths to scope the rules lookup to.";
287
+ };
288
+ readonly toolCallId: {
289
+ readonly type: "string";
290
+ readonly description: "Optional identifier correlating this call with the originating tool call.";
291
+ };
292
+ readonly sessionId: {
293
+ readonly type: "string";
294
+ readonly description: "Optional session identifier grouping related context calls.";
295
+ };
296
+ };
297
+ readonly required: readonly ["repoName"];
298
+ };
299
+ };
300
+ };
301
+ //# sourceMappingURL=agents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../src/agents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EACV,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,yBAAyB,EACzB,sBAAsB,EACtB,oBAAoB,EACpB,sBAAsB,EACtB,uBAAuB,EACvB,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAC1E,UAAU,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACxE,SAAS,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACvE,YAAY,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAC1E,mBAAmB,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACjF,cAAc,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAC5E,WAAW,CAAC,KAAK,EAAE,yBAAyB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAC7E,QAAQ,CAAC,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACvE,OAAO,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACnE,QAAQ,CAAC,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;CACtE;AAED,wBAAgB,oBAAoB,CAAC,eAAe,GAAE,eAAe,GAAG,sBAA2B,GAAG,mBAAmB,CAmCxH;AAYD,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwNvB,CAAC"}