@lloyal-labs/rig 1.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.
Files changed (86) hide show
  1. package/README.md +188 -0
  2. package/dist/index.d.ts +19 -0
  3. package/dist/index.d.ts.map +1 -0
  4. package/dist/index.js +36 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/reranker.d.ts +22 -0
  7. package/dist/reranker.d.ts.map +1 -0
  8. package/dist/reranker.js +76 -0
  9. package/dist/reranker.js.map +1 -0
  10. package/dist/resources/files.d.ts +28 -0
  11. package/dist/resources/files.d.ts.map +1 -0
  12. package/dist/resources/files.js +98 -0
  13. package/dist/resources/files.js.map +1 -0
  14. package/dist/resources/index.d.ts +9 -0
  15. package/dist/resources/index.d.ts.map +1 -0
  16. package/dist/resources/index.js +13 -0
  17. package/dist/resources/index.js.map +1 -0
  18. package/dist/resources/types.d.ts +39 -0
  19. package/dist/resources/types.d.ts.map +1 -0
  20. package/dist/resources/types.js +3 -0
  21. package/dist/resources/types.js.map +1 -0
  22. package/dist/sources/corpus-research.md +14 -0
  23. package/dist/sources/corpus.d.ts +48 -0
  24. package/dist/sources/corpus.d.ts.map +1 -0
  25. package/dist/sources/corpus.js +91 -0
  26. package/dist/sources/corpus.js.map +1 -0
  27. package/dist/sources/extract.md +5 -0
  28. package/dist/sources/index.d.ts +10 -0
  29. package/dist/sources/index.d.ts.map +1 -0
  30. package/dist/sources/index.js +14 -0
  31. package/dist/sources/index.js.map +1 -0
  32. package/dist/sources/search-extract.md +6 -0
  33. package/dist/sources/types.d.ts +28 -0
  34. package/dist/sources/types.d.ts.map +1 -0
  35. package/dist/sources/types.js +3 -0
  36. package/dist/sources/types.js.map +1 -0
  37. package/dist/sources/web-research.md +12 -0
  38. package/dist/sources/web.d.ts +78 -0
  39. package/dist/sources/web.d.ts.map +1 -0
  40. package/dist/sources/web.js +319 -0
  41. package/dist/sources/web.js.map +1 -0
  42. package/dist/tools/fetch-page.d.ts +26 -0
  43. package/dist/tools/fetch-page.d.ts.map +1 -0
  44. package/dist/tools/fetch-page.js +72 -0
  45. package/dist/tools/fetch-page.js.map +1 -0
  46. package/dist/tools/grep.d.ts +30 -0
  47. package/dist/tools/grep.d.ts.map +1 -0
  48. package/dist/tools/grep.js +79 -0
  49. package/dist/tools/grep.js.map +1 -0
  50. package/dist/tools/index.d.ts +39 -0
  51. package/dist/tools/index.d.ts.map +1 -0
  52. package/dist/tools/index.js +49 -0
  53. package/dist/tools/index.js.map +1 -0
  54. package/dist/tools/plan.d.ts +76 -0
  55. package/dist/tools/plan.d.ts.map +1 -0
  56. package/dist/tools/plan.js +98 -0
  57. package/dist/tools/plan.js.map +1 -0
  58. package/dist/tools/read-file.d.ts +62 -0
  59. package/dist/tools/read-file.d.ts.map +1 -0
  60. package/dist/tools/read-file.js +123 -0
  61. package/dist/tools/read-file.js.map +1 -0
  62. package/dist/tools/report.d.ts +22 -0
  63. package/dist/tools/report.d.ts.map +1 -0
  64. package/dist/tools/report.js +26 -0
  65. package/dist/tools/report.js.map +1 -0
  66. package/dist/tools/research.d.ts +57 -0
  67. package/dist/tools/research.d.ts.map +1 -0
  68. package/dist/tools/research.js +117 -0
  69. package/dist/tools/research.js.map +1 -0
  70. package/dist/tools/search.d.ts +34 -0
  71. package/dist/tools/search.d.ts.map +1 -0
  72. package/dist/tools/search.js +69 -0
  73. package/dist/tools/search.js.map +1 -0
  74. package/dist/tools/types.d.ts +84 -0
  75. package/dist/tools/types.d.ts.map +1 -0
  76. package/dist/tools/types.js +3 -0
  77. package/dist/tools/types.js.map +1 -0
  78. package/dist/tools/web-research.d.ts +60 -0
  79. package/dist/tools/web-research.d.ts.map +1 -0
  80. package/dist/tools/web-research.js +136 -0
  81. package/dist/tools/web-research.js.map +1 -0
  82. package/dist/tools/web-search.d.ts +42 -0
  83. package/dist/tools/web-search.d.ts.map +1 -0
  84. package/dist/tools/web-search.js +83 -0
  85. package/dist/tools/web-search.js.map +1 -0
  86. package/package.json +45 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web.js","sourceRoot":"","sources":["../../src/sources/web.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import type { Operation } from 'effection';
2
+ import { Tool } from '@lloyal-labs/lloyal-agents';
3
+ import type { JsonSchema } from '@lloyal-labs/lloyal-agents';
4
+ /**
5
+ * Fetch a web page and extract readable article content.
6
+ *
7
+ * Uses the Fetch API with a 10-second timeout, then extracts the
8
+ * article body via linkedom + Readability. Content is truncated to
9
+ * `maxChars` (default 6000). PDF URLs are rejected early since
10
+ * binary content cannot be extracted as readable text.
11
+ *
12
+ * @category Rig
13
+ */
14
+ export declare class FetchPageTool extends Tool<{
15
+ url: string;
16
+ }> {
17
+ readonly name = "fetch_page";
18
+ readonly description = "Fetch a web page and extract its article content. Returns readable text with title and excerpt. Use to read search results or follow links discovered in pages.";
19
+ readonly parameters: JsonSchema;
20
+ private _maxChars;
21
+ constructor(maxChars?: number);
22
+ execute(args: {
23
+ url: string;
24
+ }): Operation<unknown>;
25
+ }
26
+ //# sourceMappingURL=fetch-page.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch-page.d.ts","sourceRoot":"","sources":["../../src/tools/fetch-page.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAE7D;;;;;;;;;GASG;AACH,qBAAa,aAAc,SAAQ,IAAI,CAAC;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;IACtD,QAAQ,CAAC,IAAI,gBAAgB;IAC7B,QAAQ,CAAC,WAAW,qKAAqK;IACzL,QAAQ,CAAC,UAAU,EAAE,UAAU,CAI7B;IAEF,OAAO,CAAC,SAAS,CAAS;gBAEd,QAAQ,SAAO;IAK1B,OAAO,CAAC,IAAI,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC,OAAO,CAAC;CA+CpD"}
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FetchPageTool = void 0;
4
+ const effection_1 = require("effection");
5
+ const lloyal_agents_1 = require("@lloyal-labs/lloyal-agents");
6
+ /**
7
+ * Fetch a web page and extract readable article content.
8
+ *
9
+ * Uses the Fetch API with a 10-second timeout, then extracts the
10
+ * article body via linkedom + Readability. Content is truncated to
11
+ * `maxChars` (default 6000). PDF URLs are rejected early since
12
+ * binary content cannot be extracted as readable text.
13
+ *
14
+ * @category Rig
15
+ */
16
+ class FetchPageTool extends lloyal_agents_1.Tool {
17
+ name = 'fetch_page';
18
+ description = 'Fetch a web page and extract its article content. Returns readable text with title and excerpt. Use to read search results or follow links discovered in pages.';
19
+ parameters = {
20
+ type: 'object',
21
+ properties: { url: { type: 'string', description: 'URL to fetch' } },
22
+ required: ['url'],
23
+ };
24
+ _maxChars;
25
+ constructor(maxChars = 6000) {
26
+ super();
27
+ this._maxChars = maxChars;
28
+ }
29
+ *execute(args) {
30
+ const url = args.url?.trim();
31
+ if (!url)
32
+ return { error: 'url must not be empty' };
33
+ // Early reject PDF URLs — can't extract readable content from binary PDF
34
+ const lowerUrl = url.toLowerCase();
35
+ if (lowerUrl.endsWith('.pdf') || lowerUrl.includes('.pdf?') || lowerUrl.includes('.pdf#')) {
36
+ return { error: 'PDF documents cannot be extracted. Try searching for an HTML version of this content.', url };
37
+ }
38
+ const maxChars = this._maxChars;
39
+ return yield* (0, effection_1.call)(async () => {
40
+ let res;
41
+ try {
42
+ res = await fetch(url, {
43
+ headers: { 'User-Agent': 'Mozilla/5.0 (compatible; lloyal-agents/1.0)' },
44
+ signal: AbortSignal.timeout(10_000),
45
+ });
46
+ }
47
+ catch (err) {
48
+ return { error: `Fetch failed: ${err.message}`, url };
49
+ }
50
+ if (!res.ok)
51
+ return { error: `HTTP ${res.status} ${res.statusText}`, url };
52
+ const contentType = res.headers.get('content-type') || '';
53
+ if (contentType.includes('application/pdf')) {
54
+ return { error: 'PDF documents cannot be extracted. Try searching for an HTML version of this content.', url };
55
+ }
56
+ const html = await res.text();
57
+ const { parseHTML } = await Promise.resolve().then(() => require('linkedom'));
58
+ const { document } = parseHTML(html);
59
+ const { Readability } = await Promise.resolve().then(() => require('@mozilla/readability'));
60
+ const article = new Readability(document).parse();
61
+ if (!article)
62
+ return { url, content: '[Could not extract article content]' };
63
+ let content = article.textContent ?? '';
64
+ if (content.length > maxChars) {
65
+ content = content.slice(0, maxChars) + '\n\n[truncated]';
66
+ }
67
+ return { url, title: article.title, content, excerpt: article.excerpt };
68
+ });
69
+ }
70
+ }
71
+ exports.FetchPageTool = FetchPageTool;
72
+ //# sourceMappingURL=fetch-page.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch-page.js","sourceRoot":"","sources":["../../src/tools/fetch-page.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import type { Operation } from 'effection';
2
+ import { Tool } from '@lloyal-labs/lloyal-agents';
3
+ import type { JsonSchema } from '@lloyal-labs/lloyal-agents';
4
+ import type { Resource } from '../resources/types';
5
+ /**
6
+ * Exhaustive regex search across all corpus resources
7
+ *
8
+ * Scans every line of every loaded {@link Resource} for matches
9
+ * against a regular expression. Returns matching lines with file
10
+ * names and line numbers, capped at 50 results. Complements
11
+ * {@link SearchTool} which ranks by semantic relevance -- grep
12
+ * finds exact patterns exhaustively.
13
+ *
14
+ * @category Rig
15
+ */
16
+ export declare class GrepTool extends Tool<{
17
+ pattern: string;
18
+ ignoreCase?: boolean;
19
+ }> {
20
+ readonly name = "grep";
21
+ readonly description = "Search the entire corpus for a regex pattern. Returns every matching line with line numbers and total match count. Complements search() which ranks by relevance \u2014 grep scans exhaustively.";
22
+ readonly parameters: JsonSchema;
23
+ private _resources;
24
+ constructor(resources: Resource[]);
25
+ execute(args: {
26
+ pattern: string;
27
+ ignoreCase?: boolean;
28
+ }): Operation<unknown>;
29
+ }
30
+ //# sourceMappingURL=grep.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grep.d.ts","sourceRoot":"","sources":["../../src/tools/grep.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAEnD;;;;;;;;;;GAUG;AACH,qBAAa,QAAS,SAAQ,IAAI,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;IAC3E,QAAQ,CAAC,IAAI,UAAU;IACvB,QAAQ,CAAC,WAAW,sMAAiM;IACrN,QAAQ,CAAC,UAAU,EAAE,UAAU,CAO7B;IAEF,OAAO,CAAC,UAAU,CAAa;gBAEnB,SAAS,EAAE,QAAQ,EAAE;IAKhC,OAAO,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,SAAS,CAAC,OAAO,CAAC;CA2C9E"}
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GrepTool = void 0;
4
+ const lloyal_agents_1 = require("@lloyal-labs/lloyal-agents");
5
+ /**
6
+ * Exhaustive regex search across all corpus resources
7
+ *
8
+ * Scans every line of every loaded {@link Resource} for matches
9
+ * against a regular expression. Returns matching lines with file
10
+ * names and line numbers, capped at 50 results. Complements
11
+ * {@link SearchTool} which ranks by semantic relevance -- grep
12
+ * finds exact patterns exhaustively.
13
+ *
14
+ * @category Rig
15
+ */
16
+ class GrepTool extends lloyal_agents_1.Tool {
17
+ name = 'grep';
18
+ description = 'Search the entire corpus for a regex pattern. Returns every matching line with line numbers and total match count. Complements search() which ranks by relevance — grep scans exhaustively.';
19
+ parameters = {
20
+ type: 'object',
21
+ properties: {
22
+ pattern: { type: 'string', description: 'Regex pattern (e.g. "\\bshor\\b" for whole-word, "hidden_secret" for literal)' },
23
+ ignoreCase: { type: 'boolean', description: 'Case-insensitive matching (default: true)' },
24
+ },
25
+ required: ['pattern'],
26
+ };
27
+ _resources;
28
+ constructor(resources) {
29
+ super();
30
+ this._resources = resources;
31
+ }
32
+ *execute(args) {
33
+ const pattern = args.pattern?.trim();
34
+ if (!pattern)
35
+ return { error: 'pattern must not be empty' };
36
+ const flags = (args.ignoreCase === false) ? 'g' : 'gi';
37
+ let re;
38
+ try {
39
+ re = new RegExp(pattern, flags);
40
+ }
41
+ catch {
42
+ return { error: `Invalid regex: ${pattern}` };
43
+ }
44
+ const matches = [];
45
+ let totalMatches = 0;
46
+ for (const res of this._resources) {
47
+ const lines = res.content.split('\n');
48
+ for (let i = 0; i < lines.length; i++) {
49
+ const hits = lines[i].match(re);
50
+ if (hits) {
51
+ totalMatches += hits.length;
52
+ const raw = lines[i].trim();
53
+ let text;
54
+ if (raw.length <= 200) {
55
+ text = raw;
56
+ }
57
+ else {
58
+ const idx = raw.search(re);
59
+ const start = Math.max(0, idx - 40);
60
+ const end = Math.min(raw.length, start + 200);
61
+ text = (start > 0 ? '\u2026' : '') + raw.slice(start, end) + (end < raw.length ? '\u2026' : '');
62
+ }
63
+ matches.push({ file: res.name, line: i + 1, text });
64
+ }
65
+ }
66
+ }
67
+ if (totalMatches === 0) {
68
+ return {
69
+ totalMatches: 0, matchingLines: 0, matches: [],
70
+ note: 'Zero matches does NOT mean the topic is absent \u2014 only that this exact pattern was not found. Try search() for semantic matching or a broader/simpler regex.',
71
+ };
72
+ }
73
+ const limit = 50;
74
+ const truncated = matches.length > limit;
75
+ return { totalMatches, matchingLines: matches.length, truncated, matches: matches.slice(0, limit) };
76
+ }
77
+ }
78
+ exports.GrepTool = GrepTool;
79
+ //# sourceMappingURL=grep.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grep.js","sourceRoot":"","sources":["../../src/tools/grep.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import type { Toolkit } from '@lloyal-labs/lloyal-agents';
2
+ import type { Resource, Chunk } from '../resources/types';
3
+ import type { Reranker } from './types';
4
+ import { ReportTool } from './report';
5
+ export { ResearchTool } from './research';
6
+ export type { ResearchToolOpts } from './research';
7
+ export { WebSearchTool, TavilyProvider } from './web-search';
8
+ export type { SearchProvider, SearchResult, Reranker, ScoredChunk, ScoredResult } from './types';
9
+ export { FetchPageTool } from './fetch-page';
10
+ export { WebResearchTool } from './web-research';
11
+ export type { WebResearchToolOpts } from './web-research';
12
+ export { PlanTool } from './plan';
13
+ export type { PlanResult, PlanQuestion, PlanToolOpts } from './plan';
14
+ /**
15
+ * Shared singleton {@link ReportTool} instance.
16
+ *
17
+ * Re-used across toolkits since ReportTool is stateless.
18
+ *
19
+ * @category Rig
20
+ */
21
+ export declare const reportTool: ReportTool;
22
+ /**
23
+ * Build the standard corpus-research toolkit.
24
+ *
25
+ * Returns a {@link Toolkit} containing {@link SearchTool},
26
+ * {@link ReadFileTool}, {@link GrepTool}, and {@link ReportTool}
27
+ * wired to the provided resources, chunks, and reranker.
28
+ *
29
+ * @param opts - Resources, chunks, and reranker to bind into the tools.
30
+ * @returns A ready-to-use toolkit for corpus research agents.
31
+ *
32
+ * @category Rig
33
+ */
34
+ export declare function createTools(opts: {
35
+ resources: Resource[];
36
+ chunks: Chunk[];
37
+ reranker: Reranker;
38
+ }): Toolkit;
39
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAIxC,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC7D,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACjG,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,YAAY,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAErE;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,YAAmB,CAAC;AAE3C;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE;IAChC,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,QAAQ,EAAE,QAAQ,CAAC;CACpB,GAAG,OAAO,CAOV"}
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.reportTool = exports.PlanTool = exports.WebResearchTool = exports.FetchPageTool = exports.TavilyProvider = exports.WebSearchTool = exports.ResearchTool = void 0;
4
+ exports.createTools = createTools;
5
+ const lloyal_agents_1 = require("@lloyal-labs/lloyal-agents");
6
+ const search_1 = require("./search");
7
+ const read_file_1 = require("./read-file");
8
+ const grep_1 = require("./grep");
9
+ const report_1 = require("./report");
10
+ var research_1 = require("./research");
11
+ Object.defineProperty(exports, "ResearchTool", { enumerable: true, get: function () { return research_1.ResearchTool; } });
12
+ var web_search_1 = require("./web-search");
13
+ Object.defineProperty(exports, "WebSearchTool", { enumerable: true, get: function () { return web_search_1.WebSearchTool; } });
14
+ Object.defineProperty(exports, "TavilyProvider", { enumerable: true, get: function () { return web_search_1.TavilyProvider; } });
15
+ var fetch_page_1 = require("./fetch-page");
16
+ Object.defineProperty(exports, "FetchPageTool", { enumerable: true, get: function () { return fetch_page_1.FetchPageTool; } });
17
+ var web_research_1 = require("./web-research");
18
+ Object.defineProperty(exports, "WebResearchTool", { enumerable: true, get: function () { return web_research_1.WebResearchTool; } });
19
+ var plan_1 = require("./plan");
20
+ Object.defineProperty(exports, "PlanTool", { enumerable: true, get: function () { return plan_1.PlanTool; } });
21
+ /**
22
+ * Shared singleton {@link ReportTool} instance.
23
+ *
24
+ * Re-used across toolkits since ReportTool is stateless.
25
+ *
26
+ * @category Rig
27
+ */
28
+ exports.reportTool = new report_1.ReportTool();
29
+ /**
30
+ * Build the standard corpus-research toolkit.
31
+ *
32
+ * Returns a {@link Toolkit} containing {@link SearchTool},
33
+ * {@link ReadFileTool}, {@link GrepTool}, and {@link ReportTool}
34
+ * wired to the provided resources, chunks, and reranker.
35
+ *
36
+ * @param opts - Resources, chunks, and reranker to bind into the tools.
37
+ * @returns A ready-to-use toolkit for corpus research agents.
38
+ *
39
+ * @category Rig
40
+ */
41
+ function createTools(opts) {
42
+ return (0, lloyal_agents_1.createToolkit)([
43
+ new search_1.SearchTool(opts.chunks, opts.reranker),
44
+ new read_file_1.ReadFileTool(opts.resources),
45
+ new grep_1.GrepTool(opts.resources),
46
+ exports.reportTool,
47
+ ]);
48
+ }
49
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":";;;AAwCA,kCAWC;AAnDD,8DAA2D;AAI3D,qCAAsC;AACtC,2CAA2C;AAC3C,iCAAkC;AAClC,qCAAsC;AAEtC,uCAA0C;AAAjC,wGAAA,YAAY,OAAA;AAErB,2CAA6D;AAApD,2GAAA,aAAa,OAAA;AAAE,4GAAA,cAAc,OAAA;AAEtC,2CAA6C;AAApC,2GAAA,aAAa,OAAA;AACtB,+CAAiD;AAAxC,+GAAA,eAAe,OAAA;AAExB,+BAAkC;AAAzB,gGAAA,QAAQ,OAAA;AAGjB;;;;;;GAMG;AACU,QAAA,UAAU,GAAG,IAAI,mBAAU,EAAE,CAAC;AAE3C;;;;;;;;;;;GAWG;AACH,SAAgB,WAAW,CAAC,IAI3B;IACC,OAAO,IAAA,6BAAa,EAAC;QACnB,IAAI,mBAAU,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC;QAC1C,IAAI,wBAAY,CAAC,IAAI,CAAC,SAAS,CAAC;QAChC,IAAI,eAAQ,CAAC,IAAI,CAAC,SAAS,CAAC;QAC5B,kBAAU;KACX,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,76 @@
1
+ import type { Operation } from 'effection';
2
+ import { Tool } from '@lloyal-labs/lloyal-agents';
3
+ import type { JsonSchema } from '@lloyal-labs/lloyal-agents';
4
+ import { Session } from '@lloyal-labs/sdk';
5
+ /**
6
+ * Configuration for {@link PlanTool}.
7
+ *
8
+ * @category Rig
9
+ */
10
+ export interface PlanToolOpts {
11
+ /** System and user prompt templates. User prompt supports `{{count}}` and `{{query}}` placeholders. */
12
+ prompt: {
13
+ system: string;
14
+ user: string;
15
+ };
16
+ /** Active session whose trunk is used as the parent branch for generation. */
17
+ session: Session;
18
+ /** Maximum number of sub-questions the planner may produce. */
19
+ maxQuestions: number;
20
+ }
21
+ /**
22
+ * A single sub-question produced by the planner with intent classification.
23
+ *
24
+ * @category Rig
25
+ */
26
+ export interface PlanQuestion {
27
+ /** The sub-question text. */
28
+ text: string;
29
+ /** Whether the question can be answered via research or needs user clarification. */
30
+ intent: 'research' | 'clarify';
31
+ }
32
+ /**
33
+ * Output returned by {@link PlanTool} execution.
34
+ *
35
+ * @category Rig
36
+ */
37
+ export interface PlanResult {
38
+ /** Classified sub-questions (may be empty if the query needs no decomposition). */
39
+ questions: PlanQuestion[];
40
+ /** Number of tokens generated during planning. */
41
+ tokenCount: number;
42
+ /** Wall-clock time for the planning pass in milliseconds. */
43
+ timeMs: number;
44
+ }
45
+ /**
46
+ * Grammar-constrained query decomposition and intent classification.
47
+ *
48
+ * Analyzes a research query and produces an array of {@link PlanQuestion}
49
+ * sub-questions, each classified as `"research"` (answerable via search)
50
+ * or `"clarify"` (needs user input). Uses a JSON grammar to guarantee
51
+ * structured output. Returns an empty array if the query is focused
52
+ * enough to research directly.
53
+ *
54
+ * The harness interprets the result: all-research triggers parallel
55
+ * dispatch, all-clarify returns to the user, mixed drops clarify
56
+ * questions and dispatches only research ones.
57
+ *
58
+ * @category Rig
59
+ */
60
+ export declare class PlanTool extends Tool<{
61
+ query: string;
62
+ context?: string;
63
+ }> {
64
+ readonly name = "plan";
65
+ readonly description = "Analyze a research query. Return sub-questions classified as \"research\" (answerable via web search) or \"clarify\" (needs user input). Return empty array if the query is focused enough to research directly.";
66
+ readonly parameters: JsonSchema;
67
+ private _prompt;
68
+ private _session;
69
+ private _maxQuestions;
70
+ constructor(opts: PlanToolOpts);
71
+ execute(args: {
72
+ query: string;
73
+ context?: string;
74
+ }): Operation<unknown>;
75
+ }
76
+ //# sourceMappingURL=plan.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../src/tools/plan.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAiB,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAG3C;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,uGAAuG;IACvG,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACzC,8EAA8E;IAC9E,OAAO,EAAE,OAAO,CAAC;IACjB,+DAA+D;IAC/D,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,6BAA6B;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,qFAAqF;IACrF,MAAM,EAAE,UAAU,GAAG,SAAS,CAAC;CAChC;AAED;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,mFAAmF;IACnF,SAAS,EAAE,YAAY,EAAE,CAAC;IAC1B,kDAAkD;IAClD,UAAU,EAAE,MAAM,CAAC;IACnB,6DAA6D;IAC7D,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;;;GAcG;AACH,qBAAa,QAAS,SAAQ,IAAI,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;IACrE,QAAQ,CAAC,IAAI,UAAU;IACvB,QAAQ,CAAC,WAAW,sNAAkN;IACtO,QAAQ,CAAC,UAAU,EAAE,UAAU,CAO7B;IAEF,OAAO,CAAC,OAAO,CAAmC;IAClD,OAAO,CAAC,QAAQ,CAAU;IAC1B,OAAO,CAAC,aAAa,CAAS;gBAElB,IAAI,EAAE,YAAY;IAO7B,OAAO,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC,OAAO,CAAC;CA4DxE"}
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PlanTool = void 0;
4
+ const effection_1 = require("effection");
5
+ const lloyal_agents_1 = require("@lloyal-labs/lloyal-agents");
6
+ /**
7
+ * Grammar-constrained query decomposition and intent classification.
8
+ *
9
+ * Analyzes a research query and produces an array of {@link PlanQuestion}
10
+ * sub-questions, each classified as `"research"` (answerable via search)
11
+ * or `"clarify"` (needs user input). Uses a JSON grammar to guarantee
12
+ * structured output. Returns an empty array if the query is focused
13
+ * enough to research directly.
14
+ *
15
+ * The harness interprets the result: all-research triggers parallel
16
+ * dispatch, all-clarify returns to the user, mixed drops clarify
17
+ * questions and dispatches only research ones.
18
+ *
19
+ * @category Rig
20
+ */
21
+ class PlanTool extends lloyal_agents_1.Tool {
22
+ name = 'plan';
23
+ description = 'Analyze a research query. Return sub-questions classified as "research" (answerable via web search) or "clarify" (needs user input). Return empty array if the query is focused enough to research directly.';
24
+ parameters = {
25
+ type: 'object',
26
+ properties: {
27
+ query: { type: 'string', description: 'The research query to analyze' },
28
+ context: { type: 'string', description: 'Optional context from prior clarification' },
29
+ },
30
+ required: ['query'],
31
+ };
32
+ _prompt;
33
+ _session;
34
+ _maxQuestions;
35
+ constructor(opts) {
36
+ super();
37
+ this._prompt = opts.prompt;
38
+ this._session = opts.session;
39
+ this._maxQuestions = opts.maxQuestions;
40
+ }
41
+ *execute(args) {
42
+ const ctx = yield* lloyal_agents_1.Ctx.expect();
43
+ const t = performance.now();
44
+ const schema = {
45
+ type: 'object',
46
+ properties: {
47
+ questions: {
48
+ type: 'array',
49
+ items: {
50
+ type: 'object',
51
+ properties: {
52
+ text: { type: 'string' },
53
+ intent: { type: 'string', enum: ['research', 'clarify'] },
54
+ },
55
+ required: ['text', 'intent'],
56
+ },
57
+ maxItems: this._maxQuestions,
58
+ },
59
+ },
60
+ required: ['questions'],
61
+ };
62
+ const grammar = yield* (0, effection_1.call)(() => ctx.jsonSchemaToGrammar(JSON.stringify(schema)));
63
+ let userContent = this._prompt.user
64
+ .replace('{{count}}', String(this._maxQuestions))
65
+ .replace('{{query}}', args.query);
66
+ if (args.context) {
67
+ userContent += `\n\nUser clarification:\n${args.context}`;
68
+ }
69
+ const messages = [
70
+ { role: 'system', content: this._prompt.system },
71
+ { role: 'user', content: userContent },
72
+ ];
73
+ const { prompt } = yield* (0, effection_1.call)(() => ctx.formatChat(JSON.stringify(messages), { enableThinking: false }));
74
+ const parent = this._session.trunk ?? undefined;
75
+ const result = yield* (0, lloyal_agents_1.generate)({
76
+ prompt,
77
+ grammar,
78
+ params: { temperature: 0.3 },
79
+ parent,
80
+ });
81
+ const { output, tokenCount } = result;
82
+ const timeMs = performance.now() - t;
83
+ try {
84
+ const parsed = JSON.parse(output);
85
+ const raw = (parsed.questions || []);
86
+ const questions = raw
87
+ .slice(0, this._maxQuestions)
88
+ .filter(q => typeof q.text === 'string' && (q.intent === 'research' || q.intent === 'clarify'))
89
+ .map(q => ({ text: q.text, intent: q.intent }));
90
+ return { questions, tokenCount, timeMs };
91
+ }
92
+ catch {
93
+ return { questions: [], tokenCount, timeMs };
94
+ }
95
+ }
96
+ }
97
+ exports.PlanTool = PlanTool;
98
+ //# sourceMappingURL=plan.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan.js","sourceRoot":"","sources":["../../src/tools/plan.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ import type { Operation } from 'effection';
2
+ import { Tool } from '@lloyal-labs/lloyal-agents';
3
+ import type { JsonSchema, ToolContext } from '@lloyal-labs/lloyal-agents';
4
+ import type { Resource } from '../resources/types';
5
+ /**
6
+ * Subtract previously-covered ranges from a target range
7
+ *
8
+ * Given a target half-open interval `[s, e)` and an array of
9
+ * already-covered intervals, returns the sub-ranges of `[s, e)`
10
+ * that have not yet been covered. Used by {@link ReadFileTool}
11
+ * to avoid re-reading lines the agent has already seen.
12
+ *
13
+ * @param range - Target range `[start, end)` (0-indexed)
14
+ * @param covered - Array of previously-covered `[start, end)` ranges
15
+ * @returns Uncovered sub-ranges of the target
16
+ *
17
+ * @category Rig
18
+ */
19
+ export declare function subtractRanges([s, e]: [number, number], covered: [number, number][]): [number, number][];
20
+ /**
21
+ * Merge overlapping or adjacent half-open ranges into a minimal set
22
+ *
23
+ * Sorts the input ranges by start position, then collapses any
24
+ * overlapping or touching intervals. Used by {@link ReadFileTool}
25
+ * to maintain a compact record of lines already read per agent.
26
+ *
27
+ * @param ranges - Array of `[start, end)` ranges to merge
28
+ * @returns Merged non-overlapping ranges sorted by start
29
+ *
30
+ * @category Rig
31
+ */
32
+ export declare function mergeRanges(ranges: [number, number][]): [number, number][];
33
+ /**
34
+ * Read content from corpus files by line range
35
+ *
36
+ * Tracks which lines each agent has already read and returns only
37
+ * the unread portions, preventing redundant context inflation.
38
+ * Line ranges typically come from {@link SearchTool} results.
39
+ *
40
+ * Uses {@link subtractRanges} and {@link mergeRanges} internally
41
+ * to maintain per-agent read tracking keyed by `agentId:filename`.
42
+ *
43
+ * @category Rig
44
+ */
45
+ export declare class ReadFileTool extends Tool<{
46
+ filename: string;
47
+ startLine?: number;
48
+ endLine?: number;
49
+ }> {
50
+ readonly name = "read_file";
51
+ readonly description = "Read content from a file at specific line ranges. Use startLine/endLine from search results.";
52
+ readonly parameters: JsonSchema;
53
+ private _resources;
54
+ private _readRanges;
55
+ constructor(resources: Resource[]);
56
+ execute(args: {
57
+ filename: string;
58
+ startLine?: number;
59
+ endLine?: number;
60
+ } & Record<string, unknown>, context?: ToolContext): Operation<unknown>;
61
+ }
62
+ //# sourceMappingURL=read-file.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read-file.d.ts","sourceRoot":"","sources":["../../src/tools/read-file.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC1E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAEnD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAC5B,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EACxB,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,GAC1B,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAYpB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAa1E;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,YAAa,SAAQ,IAAI,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;IAChG,QAAQ,CAAC,IAAI,eAAe;IAC5B,QAAQ,CAAC,WAAW,kGAAkG;IACtH,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAEhC,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,WAAW,CAAyC;gBAEhD,SAAS,EAAE,QAAQ,EAAE;IAkBhC,OAAO,CACN,IAAI,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC1F,OAAO,CAAC,EAAE,WAAW,GACpB,SAAS,CAAC,OAAO,CAAC;CA2BtB"}