Commit Graph
207 Commits
Author SHA1 Message Date
bendtherules 1201486e6a feat(langfuse): filter out non-tool-call spans from export 2026-07-08 12:16:02 +05:30
bendtherules 8c565ecc8a Add npx install command to top also 2026-05-27 14:33:51 +05:30
bendtherules 99e30fcae5 feat(mcp-server): enhance session metadata with method and tool information 2026-04-28 20:10:07 +05:30
bendtherules fa31c3f66e feat(langfuse): enhance trace output structure with encapsulated result data 2026-04-27 19:03:49 +05:30
bendtherules d71726205d feat(langfuse): add tool-level spans with input/output and trace-level I/O
Each MCP tool handler now sets:
- LANGFUSE_TRACE_OUTPUT_ATTR on tool spans (maps to top-level trace output)
- LANGFUSE_OBSERVATION_INPUT_ATTR and LANGFUSE_OBSERVATION_OUTPUT_ATTR
  for detailed child observation views

HTTP root span renamed to 'mcp_http_request' for consistency with stdio.
All attribute keys use constants from langfuse-transport.ts.
2026-04-27 18:56:50 +05:30
bendtherules 54bc20cb7f feat(langfuse): add tool-level spans with input/output to traces
Wrap each MCP tool handler in withSpan()/withSpanContext() to create
individual named spans per tool call:
- ask262_search_spec_sections
- ask262_get_section_content
- ask262_evaluate_in_engine262

Each span includes:
- langfuse.observation.input: JSON of tool arguments (query, sectionIds, code)
- tool name and relevant metadata as span attributes

This makes the Langfuse trace hierarchy show which MCP tool was called
and what input it received, nested under the root HTTP/stdio request span.
2026-04-27 18:31:25 +05:30
bendtherules 627b80008e feat(langfuse): add opt-in Langfuse observability integration
Add Langfuse as an OTel trace transport for MCP request lifecycle tracking.

Changes:
- New src/lib/langfuse-transport.ts: initializes LangfuseSpanProcessor when
  ASK262_LANGFUSE_ENABLED=true with valid credentials
- src/lib/tracing.ts: add metadata to TraceContext, propagate it to child spans,
  use startActiveSpan for proper OTel context, add setupTracing() entry point,
  add getSessionMetadata() for version/transport metadata
- src/lib/logger.ts: include TraceContext.metadata in JSON log mixin
- src/mcp-server-{http,stdio}.ts: call setupTracing() at startup, pass
  version/transport metadata through withSpan/withSpanContext
- src/lib/fireworks-embeddings.ts: wrap API calls in withSpan() with gen_ai
  attributes for Langfuse generation/cost tracking
- .env.example: add LANGFUSE_* configuration variables
- AGENTS.md: document Langfuse integration
- package.json: add @langfuse/tracing, @langfuse/otel, @opentelemetry/sdk-node
2026-04-27 18:31:19 +05:30
bendtherules 40b439307e refactor(logger): console level matches file level, remove getConsoleLogLevel
Simplify logger by removing getConsoleLogLevel() and LOG_LEVEL_VALUES.
When ASK262_LOG_CONSOLE=true, console output uses the same level as
file logging (ASK262_LOG_LEVEL).
2026-04-27 17:03:07 +05:30
bendtherules f2934022ac chore(tests): print only warn/error logs during test runs
Set ASK262_LOG_CONSOLE=true and ASK262_LOG_LEVEL=warn for bun test
to surface important failures while keeping the output clean.
2026-04-27 17:00:44 +05:30
bendtherules 30cd83f6d4 fix(logger): make console logging opt-in via ASK262_LOG_CONSOLE
Console output is now disabled by default. Set ASK262_LOG_CONSOLE=true
to enable pretty-printed logs routed to stderr. This prevents:
- Stdio MCP protocol corruption from stdout noise
- Noisy test output during bun test runs

Also fixes misleading comments about HTTP/stdio log level defaults.
2026-04-27 16:59:16 +05:30
bendtherules af1daab2a8 fix(tests): update console output expectations to include quotes for string values 2026-04-27 16:47:11 +05:30
bendtherules 9b49d92cb8 fix(evaluate): use engine262 inspect() for console output
Replace naive manual .stringValue()/.value fallback with engine262's
inspect() function so console.log outputs readable strings instead of
raw engine262 internal objects.

Closes #5
2026-04-27 16:41:07 +05:30
bendtherules cc77ac19ae docs(readme): clarify JavaScript execution details and spec section capturing in features 2026-04-23 12:14:14 +05:30
bendtherules 8c3cff4ea0 fix: update Ollama embedding model version to 8b in code and documentation 2026-04-23 12:07:23 +05:30
bendtherules f4215a7c46 docs(readme): add “Try it now” quick‑start section, npx installation guide, and improve Ollama setup instructions. 2026-04-23 10:25:41 +05:30
bendtherules 498d5c1e30 0.0.15 2026-04-23 10:15:46 +05:30
bendtherules f767dfd109 0.0.14 2026-04-23 10:15:02 +05:30
bendtherules 9a584a1d41 Update package.json description and add server.json configuration file 2026-04-23 10:14:45 +05:30
bendtherules adcbdc91c4 Add ask prompt and metadata for tool orchestration guidance 2026-04-22 19:01:43 +05:30
bendtherules c2011173fb Fix prompt syntax 2026-04-22 18:54:35 +05:30
bendtherules 83719ee47b Improve tests 1 2026-04-22 18:00:49 +05:30
bendtherules fe9d4db9ac Improve prompt 3 2026-04-22 18:00:35 +05:30
bendtherules c481d41871 Improve prompt 2 2026-04-22 17:50:41 +05:30
bendtherules 5cf5c4b66e Improve prompt 2026-04-22 17:50:23 +05:30
bendtherules fcfe476928 test: strengthen getSectionContent recursive child section coverage
- Assert exact section count (2) instead of loose > 0 check
- Verify section ordering: requested first, children after
- Assert child sectionTitle matches mock data
- Add negative test: children excluded when recursive=false
2026-04-22 13:49:29 +05:30
bendtherules ee233859a7 fix(agent-tools): include recursively fetched child sections in output
Previously when recursive=true, child sections were fetched into sectionsData
but never included in the returned sections array. Now child sections are
properly appended to the output when recursive fetching is enabled.

- Refactor section building from .map() to for..of for clarity
- Add logic to append child sections not in original request
- Add test coverage for recursive child section inclusion
2026-04-22 13:43:13 +05:30
bendtherules afd7c465d7 Merge pull request #4 from bendtherules/logging
Add basic logging
2026-04-22 12:56:58 +05:30
bendtherules 9578502bca Add basic logging 2026-04-22 12:47:17 +05:30
bendtherules 204b12d5f7 fix(agent-tools): normalize childrensectionids handling and update tests for consistency 2026-04-22 12:22:35 +05:30
bendtherules 3649718b77 refactor(mcp): change HEAD endpoint to middleware for improved route handling 2026-04-22 11:03:45 +05:30
bendtherules a92546ace4 feat(mcp): add HEAD route for health probe and include it in CORS allowMethods 2026-04-22 10:42:16 +05:30
bendtherules ae76111854 Merge branch 'inspector' 2026-04-21 17:40:19 +05:30
bendtherules 5d7c8c0068 plan(logging): structured logging for MCP server with OpenTelemetry and Pino 2026-04-21 17:39:47 +05:30
bendtherules 2d1580ddc5 refactor(agent-tools): replace partIndex/totalParts with childrenSectionIds in getSectionContent
The getSectionContent tool schema and implementation now use `childrenSectionIds` (array of strings) instead of the previous pagination fields `partIndex` and `totalParts`. Updated Zod schema, output types, data handling, and returned objects accordingly. This change simplifies section handling by focusing on child section relationships rather than pagination.
2026-04-21 16:20:22 +05:30
bendtherules 0c2365425a style(server): reformat 2026-04-21 16:20:13 +05:30
bendtherules 962e9086dc Merge pull request #1 from bendtherules/inspector
Add inspector route
2026-04-21 13:07:53 +05:30
bendtherules fad74cad57 feat: prioritize COOLIFY_URL over MCP_PUBLIC_URL for inspector auto-connect URL
Added fallback to `process.env.COOLIFY_URL` before `MCP_PUBLIC_URL` when constructing the public URL for the MCP inspector, ensuring the correct base URL is used in environments where COOLIFY_URL is set.
2026-04-21 12:16:53 +05:30
bendtherules 5a94c1007b docs: update readme with inspector info 2026-04-21 10:14:43 +05:30
bendtherules 8c657b0578 docs(readme): add MCP Inspector UI guide and list HTTP server endpoints. 2026-04-21 09:17:57 +05:30
bendtherules e67103049a feat(env): add MCP_PUBLIC_URL entry to .env.example with documentation 2026-04-21 09:17:49 +05:30
bendtherules bfd79e47e3 docs(AGENTS): rewrite overview, commands, and project structure to focus on MCP server usage and updated tooling information. 2026-04-21 09:17:41 +05:30
bendtherules a2c57d4da0 refactor: move MCP endpoint above inspector for proper route priority
- Define /mcp endpoint before mounting inspector at /
- Ensures specific routes are matched before catch-all
- Prevents inspector from intercepting MCP requests
2026-04-21 09:06:17 +05:30
bendtherules 8911fb76aa fix: deduplicate section IDs in evaluateInEngine262 2026-04-20 19:09:44 +05:30
bendtherules 6d63806c19 chore: trigger deployment 2026-04-20 18:49:36 +05:30
bendtherules 95e58abdea chore: trigger deployment 2026-04-20 18:49:15 +05:30
bendtherules 16ee733577 chore: trigger deployment 2026-04-20 18:43:53 +05:30
bendtherules 35e8fadca2 Add mcp-use/inspector route 2026-04-20 18:33:44 +05:30
bendtherules 0334c5836b getSectionContent - allow multiple sectionids 2026-04-20 18:32:59 +05:30
bendtherules a26f90cef9 refactor(searchSpecSections): remove content field from result
- Eliminated `content` property from `searchSpecResultSchema` and output mapping.
- Updated `toolMetadata` description to reflect that only section references are returned and content must be fetched via `ask262_get_section_content`.
- Adjusted TypeScript code accordingly.
2026-04-20 18:07:54 +05:30
bendtherules 00b6924cea fix(server): bind server to all interfaces for Docker compatibility 2026-04-18 11:18:01 +05:30