@neuledge/graph 0.3.0 → 0.3.2

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 CHANGED
@@ -3,7 +3,7 @@
3
3
  # @neuledge/graph
4
4
 
5
5
 
6
- **Give LLMs real knowledge structured, live, and reliable so they reason with facts, not guesses.**
6
+ **Stop building API integrations. Connect your LLM to live data in one line of code.**
7
7
 
8
8
  [![npm version](https://img.shields.io/npm/v/@neuledge/graph.svg)](https://www.npmjs.com/package/@neuledge/graph)
9
9
  [![License](https://img.shields.io/npm/l/@neuledge/graph.svg)](https://github.com/neuledge/graph/blob/main/LICENSE)
@@ -17,7 +17,7 @@
17
17
 
18
18
  ## Overview
19
19
 
20
- `@neuledge/graph` connects your AI to live, structured data sources so your models can answer with certainty. Stop hallucinations before they happen by grounding your LLM in real-time, verified data.
20
+ `@neuledge/graph` gives your AI instant access to live, structured data from weather APIs, stock markets, and currency exchanges - without the integration work. Get accurate answers in under _100ms_, not hallucinated guesses.
21
21
 
22
22
  ### Why @neuledge/graph?
23
23
 
@@ -69,7 +69,7 @@ const { text } = await agent.generate({
69
69
  | `What is the weather in San Francisco?` | `San Francisco is sunny, about 68°F.` |
70
70
  | `What time is it in Tokyo?` | `It's 3:42 PM JST.` |
71
71
  | `When is the next Monday?` | `The next Monday is on February 10, 2025.` |
72
- | `When is Thanksgiving next year?` | `Thanksgiving in 2026 falls on November 26.` |
72
+ | `When is next Thanksgiving?` | `Thanksgiving in 2026 falls on November 26.` |
73
73
  | `How much is $250 in euros?` | `$250 equals €215.` |
74
74
  | `Price of Apple stock?` | `Apple (AAPL) is trading at $175.20` |
75
75
  | `Latest headlines about AI` | *Coming soon…* |
@@ -113,11 +113,11 @@ yarn add @neuledge/graph zod
113
113
  ```typescript
114
114
  import { anthropic } from "@ai-sdk/anthropic";
115
115
  import { NeuledgeGraph } from "@neuledge/graph";
116
- import { Experimental_Agent as Agent, stepCountIs, tool } from "ai";
116
+ import { stepCountIs, ToolLoopAgent, tool } from "ai";
117
117
 
118
118
  const graph = new NeuledgeGraph();
119
119
 
120
- const agent = new Agent({
120
+ const agent = new ToolLoopAgent({
121
121
  model: anthropic("claude-sonnet-4-5"),
122
122
  tools: {
123
123
  lookup: tool(graph.lookup),
@@ -125,7 +125,7 @@ const agent = new Agent({
125
125
  stopWhen: stepCountIs(20),
126
126
  });
127
127
 
128
- const { textStream } = agent.stream({
128
+ const { textStream } = await agent.stream({
129
129
  prompt: "Compare Apple and Microsoft stock prices",
130
130
  });
131
131
 
package/dist/graph.js CHANGED
@@ -8,7 +8,7 @@ export class NeuledgeGraph {
8
8
  this.baseUrl =
9
9
  options.baseUrl ||
10
10
  process.env.NEULEDGE_GRAPH_BASE_URL ||
11
- "https://api.graph.neuledge.com/v1";
11
+ "https://api.graph.neuledge.com/v0";
12
12
  this.timeout = options.timeout || 10000;
13
13
  }
14
14
  lookup = bindLookup(this);
package/dist/lookup.js CHANGED
@@ -20,12 +20,17 @@ The system tries to match your query to a **built-in template** and fill the \`{
20
20
 
21
21
  **The most popular templates used:**
22
22
  * \`cities.{city}.weather\`
23
- * \`cities.{city}.time\`
23
+ * \`country_codes.{country_code}.cities.{city}.weather\`
24
+ * \`provinces.{province}.cities.{city}.weather\`
25
+ * \`regions.{region}.cities.{city}.weather\`
26
+ * \`states.{state}.cities.{city}.weather\`
27
+ * \`timezones.{continent}.{region}.time\`
28
+ * \`timezones.{continent}.{region}.{city}.time\`
24
29
  * \`stocks.{stock}.quote\`
25
30
  * \`currencies.{from}.rate.{to}\`
31
+ * \`country_codes.{country_code}.holidays\`
26
32
  * \`calendar.next.{weekday}\`
27
33
  * \`calendar.in.{integer}.{unit}\`
28
- * \`holidays.{holiday}.next\`
29
34
 
30
35
  **Key principle:** Even if your query doesn't exactly match a template, the tool will **suggest the closest available templates**, allowing you to refine and retrieve the live data. When in doubt, try a query - the tool will guide you to the right template.`;
31
36
  export const NeuledgeGraphLookupParams = z.object({
@@ -1 +1 @@
1
- {"version":3,"file":"lookup.js","sourceRoot":"","sources":["../src/lookup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAgB3C,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;kQA0B8O,CAAC;AAKnQ,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,QAAQ,CACP,yFAAyF,CAC1F;IAEH,eAAe;IACf,gBAAgB;IAChB,iBAAiB;IACjB,gDAAgD;IAChD,2BAA2B;IAC3B,qBAAqB;IACrB,gIAAgI;IAChI,YAAY;IACZ,uBAAuB;IACvB,EAAE;IACF,gBAAgB;IAChB,oBAAoB;IACpB,qEAAqE;IACrE,qBAAqB;IACrB,qGAAqG;IACrG,YAAY;IACZ,uBAAuB;IACvB,EAAE;IACF,kBAAkB;IAClB,oBAAoB;IACpB,sBAAsB;IACtB,qBAAqB;IACrB,yGAAyG;IACzG,YAAY;IACZ,uBAAuB;IACvB,EAAE;IACF,oBAAoB;IACpB,oBAAoB;IACpB,kBAAkB;IAClB,oDAAoD;IACpD,0EAA0E;IAC1E,YAAY;IACZ,qBAAqB;IACrB,iFAAiF;IACjF,YAAY;IACZ,uBAAuB;IACvB,EAAE;IACF,kBAAkB;IAClB,oBAAoB;IACpB,kBAAkB;IAClB,sCAAsC;IACtC,+EAA+E;IAC/E,YAAY;IACZ,qBAAqB;IACrB,gGAAgG;IAChG,YAAY;IACZ,uBAAuB;IACvB,SAAS;IACT,iBAAiB;IACjB,+EAA+E;IAC/E,QAAQ;IACR,mBAAmB;CACpB,CAAC,CAAC;AA4BH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAoB,EAAuB,EAAE;IACtE,MAAM,MAAM,GAAwB,MAAM,CAAC,MAAM,CAC/C,KAAK,EAAE,MAAiC,EAAE,EAAE,CAC1C,QAAQ,CAA8B,KAAK,EAAE;QAC3C,GAAG,EAAE,SAAS;QACd,MAAM,EAAE,MAAM;QACd,IAAI,EAAE;YACJ,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,2BAA2B;SACQ;KACtC,CAAC,CAAC,KAAK,CACN,CAAC,KAAK,EAAoC,EAAE,CAAC,CAAC;QAC5C,MAAM,EAAE,OAAO;QACf,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;KACjC,CAAC,CACH,EACH;QACE,WAAW;QACX,UAAU,EAAE,yBAAyB;QACrC,MAAM,EAAE,yBAAyB;QACjC,WAAW,EAAE,yBAAyB;QACtC,OAAO,EAAE,IAAa;KACvB,CACF,CAAC;IAEF,6DAA6D;IAC7D,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;IAE7E,wBAAwB;IACxB,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC;IAExB,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"}
1
+ {"version":3,"file":"lookup.js","sourceRoot":"","sources":["../src/lookup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAgB3C,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kQA+B8O,CAAC;AAKnQ,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,QAAQ,CACP,yFAAyF,CAC1F;IAEH,eAAe;IACf,gBAAgB;IAChB,iBAAiB;IACjB,gDAAgD;IAChD,2BAA2B;IAC3B,qBAAqB;IACrB,gIAAgI;IAChI,YAAY;IACZ,uBAAuB;IACvB,EAAE;IACF,gBAAgB;IAChB,oBAAoB;IACpB,qEAAqE;IACrE,qBAAqB;IACrB,qGAAqG;IACrG,YAAY;IACZ,uBAAuB;IACvB,EAAE;IACF,kBAAkB;IAClB,oBAAoB;IACpB,sBAAsB;IACtB,qBAAqB;IACrB,yGAAyG;IACzG,YAAY;IACZ,uBAAuB;IACvB,EAAE;IACF,oBAAoB;IACpB,oBAAoB;IACpB,kBAAkB;IAClB,oDAAoD;IACpD,0EAA0E;IAC1E,YAAY;IACZ,qBAAqB;IACrB,iFAAiF;IACjF,YAAY;IACZ,uBAAuB;IACvB,EAAE;IACF,kBAAkB;IAClB,oBAAoB;IACpB,kBAAkB;IAClB,sCAAsC;IACtC,+EAA+E;IAC/E,YAAY;IACZ,qBAAqB;IACrB,gGAAgG;IAChG,YAAY;IACZ,uBAAuB;IACvB,SAAS;IACT,iBAAiB;IACjB,+EAA+E;IAC/E,QAAQ;IACR,mBAAmB;CACpB,CAAC,CAAC;AA4BH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAoB,EAAuB,EAAE;IACtE,MAAM,MAAM,GAAwB,MAAM,CAAC,MAAM,CAC/C,KAAK,EAAE,MAAiC,EAAE,EAAE,CAC1C,QAAQ,CAA8B,KAAK,EAAE;QAC3C,GAAG,EAAE,SAAS;QACd,MAAM,EAAE,MAAM;QACd,IAAI,EAAE;YACJ,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,2BAA2B;SACQ;KACtC,CAAC,CAAC,KAAK,CACN,CAAC,KAAK,EAAoC,EAAE,CAAC,CAAC;QAC5C,MAAM,EAAE,OAAO;QACf,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;KACjC,CAAC,CACH,EACH;QACE,WAAW;QACX,UAAU,EAAE,yBAAyB;QACrC,MAAM,EAAE,yBAAyB;QACjC,WAAW,EAAE,yBAAyB;QACtC,OAAO,EAAE,IAAa;KACvB,CACF,CAAC;IAEF,6DAA6D;IAC7D,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;IAE7E,wBAAwB;IACxB,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC;IAExB,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,38 +1,27 @@
1
1
  {
2
2
  "name": "@neuledge/graph",
3
- "version": "0.3.0",
4
- "description": "Give LLMs real knowledge structured, live, and reliable so they reason with facts, not guesses.",
3
+ "version": "0.3.2",
4
+ "description": "Connect your LLM to live weather, stocks, and currency data without API integration work. Structured data in <100ms.",
5
5
  "keywords": [
6
- "ai",
7
6
  "llm",
8
- "agents",
9
- "openai",
7
+ "ai",
8
+ "knowledge-graph",
9
+ "live-data",
10
+ "weather-api",
11
+ "stock-api",
12
+ "currency-exchange",
13
+ "ai-agents",
10
14
  "anthropic",
11
- "langchain",
15
+ "openai",
12
16
  "vercel-ai",
13
- "ai-sdk",
14
- "tool",
15
- "function-calling",
16
- "structured-data",
17
- "live-data",
18
- "knowledge-graph",
17
+ "langchain",
19
18
  "real-time-data",
20
- "data-fetching",
21
- "ai-integration",
22
- "ai-tools",
23
- "lookup",
24
- "grounding",
25
- "no-rag",
26
- "no-indexes",
27
- "json-api",
28
- "data-layer",
29
- "ai-infrastructure",
30
- "neuledge",
31
- "weather",
32
- "stocks",
33
- "price",
34
- "fx",
35
- "rates"
19
+ "structured-data",
20
+ "tool-calling",
21
+ "function-calling",
22
+ "rag",
23
+ "hallucination",
24
+ "grounding"
36
25
  ],
37
26
  "main": "dist/index.js",
38
27
  "types": "dist/index.d.ts",