@steel-dev/atlas 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 (112) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +219 -0
  3. package/dist/agent.d.ts +34 -0
  4. package/dist/agent.js +133 -0
  5. package/dist/async.d.ts +19 -0
  6. package/dist/async.js +172 -0
  7. package/dist/atlas.d.ts +19 -0
  8. package/dist/atlas.js +69 -0
  9. package/dist/budget.d.ts +64 -0
  10. package/dist/budget.js +336 -0
  11. package/dist/checklist.d.ts +115 -0
  12. package/dist/checklist.js +297 -0
  13. package/dist/cli.js +38700 -0
  14. package/dist/config.d.ts +80 -0
  15. package/dist/config.js +109 -0
  16. package/dist/context.d.ts +26 -0
  17. package/dist/context.js +250 -0
  18. package/dist/custom-tools.d.ts +26 -0
  19. package/dist/custom-tools.js +33 -0
  20. package/dist/defaults.d.ts +10 -0
  21. package/dist/defaults.js +37 -0
  22. package/dist/economy.d.ts +12 -0
  23. package/dist/economy.js +6 -0
  24. package/dist/env.d.ts +1 -0
  25. package/dist/env.js +8 -0
  26. package/dist/errors.d.ts +6 -0
  27. package/dist/errors.js +11 -0
  28. package/dist/event-hub.d.ts +11 -0
  29. package/dist/event-hub.js +83 -0
  30. package/dist/events.d.ts +105 -0
  31. package/dist/events.js +1 -0
  32. package/dist/html-extract.d.ts +21 -0
  33. package/dist/html-extract.js +459 -0
  34. package/dist/index.d.ts +59 -0
  35. package/dist/index.js +26 -0
  36. package/dist/memory.d.ts +2 -0
  37. package/dist/memory.js +38 -0
  38. package/dist/model.d.ts +49 -0
  39. package/dist/model.js +630 -0
  40. package/dist/orchestrate.d.ts +5 -0
  41. package/dist/orchestrate.js +277 -0
  42. package/dist/pdf-extract.d.ts +5 -0
  43. package/dist/pdf-extract.js +20 -0
  44. package/dist/prompts.d.ts +2 -0
  45. package/dist/prompts.js +6 -0
  46. package/dist/providers/domain/arxiv.d.ts +6 -0
  47. package/dist/providers/domain/arxiv.js +83 -0
  48. package/dist/providers/domain/clinicaltrials.d.ts +6 -0
  49. package/dist/providers/domain/clinicaltrials.js +104 -0
  50. package/dist/providers/domain/edgar.d.ts +10 -0
  51. package/dist/providers/domain/edgar.js +92 -0
  52. package/dist/providers/domain/index.d.ts +14 -0
  53. package/dist/providers/domain/index.js +7 -0
  54. package/dist/providers/domain/openalex.d.ts +7 -0
  55. package/dist/providers/domain/openalex.js +128 -0
  56. package/dist/providers/domain/pubmed.d.ts +8 -0
  57. package/dist/providers/domain/pubmed.js +123 -0
  58. package/dist/providers/domain/semantic-scholar.d.ts +6 -0
  59. package/dist/providers/domain/semantic-scholar.js +112 -0
  60. package/dist/providers/domain/shared.d.ts +12 -0
  61. package/dist/providers/domain/shared.js +39 -0
  62. package/dist/providers/domain/wikipedia.d.ts +6 -0
  63. package/dist/providers/domain/wikipedia.js +71 -0
  64. package/dist/providers/exa-agent.d.ts +9 -0
  65. package/dist/providers/exa-agent.js +67 -0
  66. package/dist/providers/fetch.d.ts +66 -0
  67. package/dist/providers/fetch.js +675 -0
  68. package/dist/providers/parallel-agent.d.ts +11 -0
  69. package/dist/providers/parallel-agent.js +100 -0
  70. package/dist/providers/perplexity-agent.d.ts +17 -0
  71. package/dist/providers/perplexity-agent.js +86 -0
  72. package/dist/providers/search.d.ts +65 -0
  73. package/dist/providers/search.js +433 -0
  74. package/dist/providers/store.d.ts +48 -0
  75. package/dist/providers/store.js +217 -0
  76. package/dist/researcher.d.ts +20 -0
  77. package/dist/researcher.js +3 -0
  78. package/dist/robots.d.ts +16 -0
  79. package/dist/robots.js +146 -0
  80. package/dist/roles.d.ts +6 -0
  81. package/dist/roles.js +4 -0
  82. package/dist/run.d.ts +65 -0
  83. package/dist/run.js +371 -0
  84. package/dist/safe-dispatcher.d.ts +16 -0
  85. package/dist/safe-dispatcher.js +32 -0
  86. package/dist/safety.d.ts +23 -0
  87. package/dist/safety.js +206 -0
  88. package/dist/sandbox.d.ts +22 -0
  89. package/dist/sandbox.js +228 -0
  90. package/dist/search-normalize.d.ts +2 -0
  91. package/dist/search-normalize.js +13 -0
  92. package/dist/source-documents.d.ts +77 -0
  93. package/dist/source-documents.js +421 -0
  94. package/dist/sources.d.ts +57 -0
  95. package/dist/sources.js +1 -0
  96. package/dist/spine.d.ts +19 -0
  97. package/dist/spine.js +722 -0
  98. package/dist/state.d.ts +90 -0
  99. package/dist/state.js +27 -0
  100. package/dist/structured.d.ts +7 -0
  101. package/dist/structured.js +18 -0
  102. package/dist/tools.d.ts +33 -0
  103. package/dist/tools.js +1187 -0
  104. package/dist/trace-digest.d.ts +11 -0
  105. package/dist/trace-digest.js +309 -0
  106. package/dist/trace.d.ts +225 -0
  107. package/dist/trace.js +278 -0
  108. package/dist/trail.d.ts +15 -0
  109. package/dist/trail.js +74 -0
  110. package/dist/url.d.ts +1 -0
  111. package/dist/url.js +25 -0
  112. package/package.json +107 -0
@@ -0,0 +1,59 @@
1
+ import { exaAgent } from "./providers/exa-agent.js";
2
+ import { basicFetch, exaContents, steel as steelFetch } from "./providers/fetch.js";
3
+ import { parallelAgent } from "./providers/parallel-agent.js";
4
+ import { perplexityAgent } from "./providers/perplexity-agent.js";
5
+ import { brave as braveSearch, exa as exaSearch, nativeModelSearch, tavily as tavilySearch } from "./providers/search.js";
6
+ export { Atlas } from "./atlas.js";
7
+ export type { ModelPricing, PricingTable } from "./budget.js";
8
+ export { DEFAULT_PRICING } from "./budget.js";
9
+ export type { AtlasConfig, Budget, ConcurrencyConfig, Effort, ResearchOptions, SourceFilter, TraceMode, } from "./config.js";
10
+ export type { ResearchTool, ToolContext } from "./custom-tools.js";
11
+ export { researchTool } from "./custom-tools.js";
12
+ export type { Citation, ResearchEvent, ResearchEventMap, ResearchEventType, RunStats, StopReason, } from "./events.js";
13
+ export { EVENT_SCHEMA_VERSION } from "./events.js";
14
+ export type { ModelRole } from "./model.js";
15
+ export type { Researcher, ResearcherContext, ResearchReport, } from "./researcher.js";
16
+ export { researcher } from "./researcher.js";
17
+ export type { ResearchResult, ResearchRun, ResumeOptions, RunStatus, SourceRecord, } from "./run.js";
18
+ export type { SafetyPolicy } from "./safety.js";
19
+ export type { StructuredResult } from "./structured.js";
20
+ export type { CriticalSpan, DigestAgent, DigestAnomaly, DigestPhase, RunDigest, RunTrace, Span, SpanKind, SpanStatus, TraceStep, } from "./trace.js";
21
+ export { TRACE_SCHEMA_VERSION } from "./trace.js";
22
+ export declare const exa: {
23
+ search: typeof exaSearch;
24
+ contents: typeof exaContents;
25
+ agent: typeof exaAgent;
26
+ };
27
+ export declare const brave: {
28
+ search: typeof braveSearch;
29
+ };
30
+ export declare const tavily: {
31
+ search: typeof tavilySearch;
32
+ };
33
+ export declare const native: {
34
+ search: typeof nativeModelSearch;
35
+ };
36
+ export declare const steel: {
37
+ fetch: typeof steelFetch;
38
+ };
39
+ export declare const basic: {
40
+ fetch: typeof basicFetch;
41
+ };
42
+ export declare const perplexity: {
43
+ agent: typeof perplexityAgent;
44
+ };
45
+ export declare const parallel: {
46
+ agent: typeof parallelAgent;
47
+ };
48
+ export type { AtlasErrorCode } from "./errors.js";
49
+ export { AtlasError } from "./errors.js";
50
+ export type { ArxivOptions, ClinicalTrialsOptions, EdgarOptions, OpenAlexOptions, PubmedOptions, SemanticScholarOptions, WikipediaOptions, } from "./providers/domain/index.js";
51
+ export { arxiv, clinicaltrials, edgar, openalex, pubmed, semanticScholar, wikipedia, } from "./providers/domain/index.js";
52
+ export type { ExaAgentOptions } from "./providers/exa-agent.js";
53
+ export type { FetchAttempt, FetchedPage, FetchProvider, FetchRequest, SteelOptions, } from "./providers/fetch.js";
54
+ export type { ParallelAgentOptions } from "./providers/parallel-agent.js";
55
+ export type { PerplexityAgentOptions } from "./providers/perplexity-agent.js";
56
+ export type { BraveOptions, ExaOptions, NativeModelSearchOptions, SearchProvider, SearchQuery, SearchResult, TavilyOptions, } from "./providers/search.js";
57
+ export type { JournalEntry, RunStore, RunSummary } from "./providers/store.js";
58
+ export { fileStore, loadTrace, memoryStore } from "./providers/store.js";
59
+ export type { SourceDiscoveredLink, SourceExtractionAttempt, SourceExtractionMetadata, } from "./sources.js";
package/dist/index.js ADDED
@@ -0,0 +1,26 @@
1
+ import { exaAgent } from "./providers/exa-agent.js";
2
+ import { basicFetch, exaContents, steel as steelFetch, } from "./providers/fetch.js";
3
+ import { parallelAgent } from "./providers/parallel-agent.js";
4
+ import { perplexityAgent } from "./providers/perplexity-agent.js";
5
+ import { brave as braveSearch, exa as exaSearch, nativeModelSearch, tavily as tavilySearch, } from "./providers/search.js";
6
+ export { Atlas } from "./atlas.js";
7
+ export { DEFAULT_PRICING } from "./budget.js";
8
+ export { researchTool } from "./custom-tools.js";
9
+ export { EVENT_SCHEMA_VERSION } from "./events.js";
10
+ export { researcher } from "./researcher.js";
11
+ export { TRACE_SCHEMA_VERSION } from "./trace.js";
12
+ export const exa = {
13
+ search: exaSearch,
14
+ contents: exaContents,
15
+ agent: exaAgent,
16
+ };
17
+ export const brave = { search: braveSearch };
18
+ export const tavily = { search: tavilySearch };
19
+ export const native = { search: nativeModelSearch };
20
+ export const steel = { fetch: steelFetch };
21
+ export const basic = { fetch: basicFetch };
22
+ export const perplexity = { agent: perplexityAgent };
23
+ export const parallel = { agent: parallelAgent };
24
+ export { AtlasError } from "./errors.js";
25
+ export { arxiv, clinicaltrials, edgar, openalex, pubmed, semanticScholar, wikipedia, } from "./providers/domain/index.js";
26
+ export { fileStore, loadTrace, memoryStore } from "./providers/store.js";
@@ -0,0 +1,2 @@
1
+ import type { ModelMessage } from "ai";
2
+ export declare function stubToolResultWindow(messages: ModelMessage[], keep: number): ModelMessage[];
package/dist/memory.js ADDED
@@ -0,0 +1,38 @@
1
+ const STUB_TOOLS = new Set([
2
+ "search",
3
+ "fetch",
4
+ "read_source",
5
+ "search_sources",
6
+ "run_code",
7
+ ]);
8
+ function stubPart(part) {
9
+ const name = String(part.toolName ?? "tool");
10
+ const stub = `[${name} result paged out — the sources it produced are stored; reopen them with search_sources or read_source]`;
11
+ return { ...part, output: { type: "text", value: stub } };
12
+ }
13
+ export function stubToolResultWindow(messages, keep) {
14
+ const positions = [];
15
+ messages.forEach((m, i) => {
16
+ if (m.role === "tool" && Array.isArray(m.content)) {
17
+ m.content.forEach((part, k) => {
18
+ if (part?.type === "tool-result" &&
19
+ STUB_TOOLS.has(String(part.toolName))) {
20
+ positions.push(`${i}:${k}`);
21
+ }
22
+ });
23
+ }
24
+ });
25
+ if (positions.length <= keep)
26
+ return messages;
27
+ const keepSet = new Set(positions.slice(positions.length - keep));
28
+ return messages.map((m, i) => {
29
+ if (m.role !== "tool" || !Array.isArray(m.content))
30
+ return m;
31
+ const content = m.content.map((part, k) => part?.type === "tool-result" &&
32
+ STUB_TOOLS.has(String(part.toolName)) &&
33
+ !keepSet.has(`${i}:${k}`)
34
+ ? stubPart(part)
35
+ : part);
36
+ return { ...m, content };
37
+ });
38
+ }
@@ -0,0 +1,49 @@
1
+ import type { LanguageModelV3, LanguageModelV3GenerateResult, LanguageModelV3Usage } from "@ai-sdk/provider";
2
+ import { type LanguageModel } from "ai";
3
+ import type { ConcurrencyGate } from "./async.js";
4
+ import { type BudgetGrant, type PricingTable, type TokenUsage } from "./budget.js";
5
+ import type { JournalWriter, ReplayCache } from "./providers/store.js";
6
+ import { type TraceRecorder } from "./trace.js";
7
+ export type ModelRole = "lead" | "research" | "write";
8
+ export type ResolvedModel = Exclude<LanguageModel, string>;
9
+ export interface RunUsage {
10
+ byRole: Map<string, TokenUsage>;
11
+ replayedUSD: number;
12
+ }
13
+ export declare function createRunUsage(): RunUsage;
14
+ export declare function totalFreshTokens(usage: RunUsage): number;
15
+ export declare function tokenUsageFromV3(usage: LanguageModelV3Usage): TokenUsage;
16
+ export interface RateLimitNotice {
17
+ attempt: number;
18
+ delayMs: number;
19
+ error: unknown;
20
+ }
21
+ export interface EngineModelHooks {
22
+ role: ModelRole;
23
+ grant: BudgetGrant;
24
+ pricing: PricingTable;
25
+ gate: ConcurrencyGate;
26
+ usage: RunUsage;
27
+ journal?: JournalWriter | undefined;
28
+ replay?: ReplayCache | undefined;
29
+ modelCache?: ModelCallCache | undefined;
30
+ recorder?: TraceRecorder | undefined;
31
+ onCost?: ((usd: number) => void) | undefined;
32
+ onUnknownModel?: ((modelId: string) => void) | undefined;
33
+ onRateLimit?: ((notice: RateLimitNotice) => void) | undefined;
34
+ onCacheHit?: (() => void) | undefined;
35
+ budgetExhausted?: (() => boolean) | undefined;
36
+ callOrdinals?: Map<string, number> | undefined;
37
+ }
38
+ export declare function normalizeForCacheKey(serialized: string): string;
39
+ interface JournaledCall {
40
+ content: LanguageModelV3GenerateResult["content"];
41
+ finishReason: LanguageModelV3GenerateResult["finishReason"];
42
+ usage: LanguageModelV3Usage;
43
+ providerMetadata?: LanguageModelV3GenerateResult["providerMetadata"];
44
+ }
45
+ export type ModelCallCache = Map<string, JournaledCall>;
46
+ export declare function createModelCallCache(): ModelCallCache;
47
+ export declare function engineModel(model: ResolvedModel, hooks: EngineModelHooks): LanguageModelV3;
48
+ export declare const MODEL_CALL_MAX_RETRIES = 0;
49
+ export {};