<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Prabin Ghimire</title>
    <description>The latest articles on DEV Community by Prabin Ghimire (@prabin_ghimire_9d8643c0b0).</description>
    <link>https://dev.to/prabin_ghimire_9d8643c0b0</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3933627%2Fae5b3abe-b0ba-4d24-bd52-9e697ab88592.jpg</url>
      <title>DEV Community: Prabin Ghimire</title>
      <link>https://dev.to/prabin_ghimire_9d8643c0b0</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/prabin_ghimire_9d8643c0b0"/>
    <language>en</language>
    <item>
      <title>I Built a Verified Temporal API for AI Agents - Swiss Ephemeris, FastAPI, and a Calendar That Changes Every Year</title>
      <dc:creator>Prabin Ghimire</dc:creator>
      <pubDate>Fri, 15 May 2026 18:00:46 +0000</pubDate>
      <link>https://dev.to/prabin_ghimire_9d8643c0b0/i-built-a-verified-temporal-api-for-ai-agents-swiss-ephemeris-fastapi-and-a-calendar-that-2gg6</link>
      <guid>https://dev.to/prabin_ghimire_9d8643c0b0/i-built-a-verified-temporal-api-for-ai-agents-swiss-ephemeris-fastapi-and-a-calendar-that-2gg6</guid>
      <description>&lt;p&gt;AI Agents Should Call Tools for Time: Building Nepali Temporal Infrastructure with FastAPI and Swiss Ephemeris&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/dantwoashim" rel="noopener noreferrer"&gt;
        dantwoashim
      &lt;/a&gt; / &lt;a href="https://github.com/dantwoashim/Project_Parva" rel="noopener noreferrer"&gt;
        Project_Parva
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Open-source Nepali temporal infrastructure for BS/AD conversion, fiscal-year logic, panchanga computation, festivals, and source-aware calendar validation.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Project Parva&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;&lt;a href="https://github.com/dantwoashim/Project_Parva/actions/workflows/ci.yml" rel="noopener noreferrer"&gt;&lt;img src="https://github.com/dantwoashim/Project_Parva/actions/workflows/ci.yml/badge.svg" alt="CI"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Project Parva is open-source Nepali temporal infrastructure for Bikram Sambat conversion, fiscal-year logic, panchanga computation, festivals, and source-aware calendar validation.&lt;/p&gt;

&lt;p&gt;It also includes a controlled future-BS risk research layer for evaluating month-length assumptions before they affect financial, contractual, reporting, or operational systems.&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Why This Exists&lt;/h2&gt;
&lt;/div&gt;

&lt;p&gt;Nepali calendar logic is infrastructure, not decoration.&lt;/p&gt;

&lt;p&gt;BS dates affect fiscal reports, payroll, contracts, transaction records, holidays, reporting periods, renewals, interest periods, compliance exports, and audit trails. Fragile calendar tables can quietly become operational risk when they are copied, extended, or updated without source policy.&lt;/p&gt;

&lt;p&gt;Parva treats calendar behavior as something that should be explainable, source-aware, reproducible, and honest about confidence.&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;What Parva Provides&lt;/h2&gt;
&lt;/div&gt;

&lt;p&gt;&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;br&gt;
&lt;thead&gt;
&lt;br&gt;
&lt;tr&gt;
&lt;br&gt;
&lt;th&gt;Area&lt;/th&gt;
&lt;br&gt;
&lt;th&gt;Purpose&lt;/th&gt;
&lt;br&gt;
&lt;/tr&gt;
&lt;br&gt;
&lt;/thead&gt;
&lt;br&gt;
&lt;tbody&gt;
&lt;br&gt;
&lt;tr&gt;
&lt;br&gt;
&lt;td&gt;Calendar conversion&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;BS to AD, AD to BS, today endpoints, and month metadata&lt;/td&gt;
&lt;br&gt;
&lt;/tr&gt;
&lt;br&gt;
&lt;tr&gt;
&lt;br&gt;
&lt;td&gt;Fiscal-year logic&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;Nepali fiscal boundaries, fiscal labels, periods, and date-range helpers&lt;/td&gt;
&lt;br&gt;
&lt;/tr&gt;
&lt;br&gt;
&lt;tr&gt;
&lt;br&gt;
&lt;td&gt;Date validation&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;BS date validation and published-range checks&lt;/td&gt;
&lt;br&gt;
&lt;/tr&gt;
&lt;br&gt;
&lt;tr&gt;
&lt;br&gt;
&lt;td&gt;Panchanga and lunar computation&lt;/td&gt;
&lt;br&gt;
&lt;td&gt;Tithi,&lt;/td&gt;
&lt;br&gt;
&lt;/tr&gt;
&lt;br&gt;
&lt;/tbody&gt;
&lt;br&gt;
&lt;/table&gt;&lt;/div&gt;…&lt;/p&gt;
&lt;/div&gt;
&lt;br&gt;
  &lt;/div&gt;
&lt;br&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/dantwoashim/Project_Parva" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;
&lt;br&gt;&lt;br&gt;
A Claude, GPT, Gemini, or Cursor agent receives a simple task.

&lt;p&gt;Check whether a date falls inside a valid reporting period.&lt;/p&gt;

&lt;p&gt;The date uses Bikram Sambat, the official calendar used across Nepal.&lt;/p&gt;

&lt;p&gt;The agent answers confidently. The output passes the application schema. The log shows a successful run. The downstream system accepts the result.&lt;/p&gt;

&lt;p&gt;The date is wrong.&lt;/p&gt;

&lt;p&gt;That is the failure mode that pushed me deeper into Project Parva.&lt;/p&gt;

&lt;p&gt;Date bugs already create enough damage in normal software. Date bugs inside agentic systems feel worse because the model can wrap a wrong answer in fluent reasoning, structured JSON, and an explanation that sounds operationally correct.&lt;/p&gt;

&lt;p&gt;Project Parva is my attempt to build the grounding layer that Nepali time deserves.&lt;/p&gt;

&lt;p&gt;It started as an open-source Nepali calendar API. It has grown into source-aware temporal infrastructure for software systems, AI agents, and backend workflows that need reliable Bikram Sambat conversion, panchanga computation, holidays, fiscal logic, festivals, working days, and review-aware temporal decisions.&lt;/p&gt;

&lt;p&gt;Repository:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/dantwoashim/Project_Parva" rel="noopener noreferrer"&gt;https://github.com/dantwoashim/Project_Parva&lt;/a&gt;&lt;br&gt;
`&lt;/p&gt;

&lt;p&gt;......&lt;/p&gt;

&lt;p&gt;The real problem is temporal grounding&lt;/p&gt;

&lt;p&gt;Most systems treat calendars as formatting utilities.&lt;/p&gt;

&lt;p&gt;That works until the calendar carries legal, fiscal, religious, cultural, or institutional meaning.&lt;/p&gt;

&lt;p&gt;Bikram Sambat is an excellent stress test for modern software. A basic integration often starts with a simple need:&lt;/p&gt;

&lt;p&gt;Convert this BS date to AD.&lt;/p&gt;

&lt;p&gt;Then the real requirements appear.&lt;/p&gt;

&lt;p&gt;Validate this BS date.&lt;br&gt;
Find the fiscal year.&lt;br&gt;
Check whether this is a working day.&lt;br&gt;
Resolve a festival date.&lt;br&gt;
Compute tithi at sunrise.&lt;br&gt;
Handle location-aware panchanga.&lt;br&gt;
Explain the source of the result.&lt;br&gt;
Flag future-sensitive results for review.&lt;br&gt;
Give an AI agent a safe tool response.&lt;/p&gt;

&lt;p&gt;At that point, a calendar library becomes infrastructure.&lt;/p&gt;

&lt;p&gt;A bare response like this gives the caller a value:&lt;/p&gt;

&lt;p&gt;json&lt;br&gt;
{&lt;br&gt;
  "bs_date": "2082-01-01",&lt;br&gt;
  "ad_date": "2025-04-14"&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;A serious system needs the value plus its trust con:&lt;/p&gt;

&lt;p&gt;json&lt;br&gt;
{&lt;br&gt;
  "bs_date": "2082-01-01",&lt;br&gt;
  "ad_date": "2025-04-14",&lt;br&gt;
  "source_tier": "source_backed",&lt;br&gt;
  "confidence": "high",&lt;br&gt;
  "supported_range": {&lt;br&gt;
    "start": "2000-01-01",&lt;br&gt;
    "end": "2099-12-30"&lt;br&gt;
  },&lt;br&gt;
  "claim_boundary": "technical_reference",&lt;br&gt;
  "review_required": false&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;That second response is the heart of Project Parva.&lt;/p&gt;

&lt;p&gt;The API gives software a date and tells the software what kind of date it received.&lt;/p&gt;

&lt;p&gt;......&lt;/p&gt;

&lt;p&gt;Bikram Sambat is a backend systems problem&lt;/p&gt;

&lt;p&gt;The civil Bikram Sambat calendar, the panchanga layer, and Nepal’s institutional date workflows create a combined systems problem.&lt;/p&gt;

&lt;p&gt;The civil calendar needs verified month-length behavior. Panchanga needs solar and lunar computation. Festivals often depend on tithi, sunrise, and published convention. Working-day behavior depends on institution profiles. Fiscal logic depends on Nepali accounting conventions. Future-sensitive dates need clear review boundaries.&lt;/p&gt;

&lt;p&gt;A single “convert date” function covers only a small part of this surface.&lt;/p&gt;

&lt;p&gt;Project Parva separates the layers:&lt;/p&gt;

&lt;p&gt;civil date conversion&lt;br&gt;
astronomical panchanga computation&lt;br&gt;
festival and observance logic&lt;br&gt;
holiday and working-day profiles&lt;br&gt;
fiscal-year logic&lt;br&gt;
source metadata&lt;br&gt;
confidence metadata&lt;br&gt;
public verification gates&lt;br&gt;
research boundaries&lt;br&gt;
AI tool boundaries&lt;br&gt;
MCP adapter boundaries&lt;/p&gt;

&lt;p&gt;This separation makes the project larger than a date converter, and it makes the architecture much more interesting.&lt;/p&gt;

&lt;p&gt;......&lt;/p&gt;

&lt;p&gt;The astronomical layer&lt;/p&gt;

&lt;p&gt;Panchanga computation involves astronomy.&lt;/p&gt;

&lt;p&gt;Tithi comes from the angular separation between the Moon and the Sun.&lt;/p&gt;

&lt;p&gt;Nakshatra comes from sidereal lunar longitude.&lt;/p&gt;

&lt;p&gt;Yoga comes from combined solar and lunar longitude.&lt;/p&gt;

&lt;p&gt;Karana comes from half-tithi boundaries.&lt;/p&gt;

&lt;p&gt;Sunrise matters for udaya-tithi style decisions.&lt;/p&gt;

&lt;p&gt;Muhurta windows depend on date, location, timezone, and astronomical intervals.&lt;/p&gt;

&lt;p&gt;Project Parva uses Swiss Ephemeris through Python for this layer. The project also contains JPL and DE440-oriented policy work for higher-precision ephemeris research and differential verification.&lt;/p&gt;

&lt;p&gt;The important engineering decision is the separation between astronomical evidence and civil authority.&lt;/p&gt;

&lt;p&gt;Astronomy can tell the system where the Sun and Moon were.&lt;/p&gt;

&lt;p&gt;A source authority decides what a government, institution, calendar publication, or panchanga tradition actually recognizes.&lt;/p&gt;

&lt;p&gt;That distinction appears directly in the project’s data model.&lt;/p&gt;

&lt;p&gt;json&lt;br&gt;
{&lt;br&gt;
  "astronomy_status": "fallback_computed",&lt;br&gt;
  "civil_authority_status": "computed_not_official",&lt;br&gt;
  "boundary_risk": "medium",&lt;br&gt;
  "claim_boundary": "astronomy_evidence_not_civil_authority",&lt;br&gt;
  "review_required": true&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;This keeps the computation powerful while keeping the output honest enough for real software.&lt;/p&gt;

&lt;p&gt;......&lt;/p&gt;

&lt;p&gt;FastAPI as a temporal infrastructure surface&lt;/p&gt;

&lt;p&gt;The backend is Python 3.11 and FastAPI.&lt;/p&gt;

&lt;p&gt;FastAPI works well here because the API surface is part of the trust model.&lt;/p&gt;

&lt;p&gt;Typed request models, response models, OpenAPI generation, structured validation, and route-level boundaries matter when downstream systems use the output for automation.&lt;/p&gt;

&lt;p&gt;A route that returns a date carries more than data. It carries a contract.&lt;/p&gt;

&lt;p&gt;Project Parva uses a stable v3 API surface for public integrations. The broader repository also tracks route maturity, public/private/research boundaries, OpenAPI drift, source metadata, verification scripts, and SDK behavior.&lt;/p&gt;

&lt;p&gt;The route family includes stable public operations around:&lt;/p&gt;

&lt;p&gt;today&lt;br&gt;
BS to AD conversion&lt;br&gt;
AD to BS conversion&lt;br&gt;
date validation&lt;br&gt;
fiscal year&lt;br&gt;
working day logic&lt;br&gt;
festivals&lt;br&gt;
panchanga&lt;br&gt;
muhurta&lt;br&gt;
source metadata&lt;br&gt;
trust metadata&lt;br&gt;
policy metadata&lt;/p&gt;

&lt;p&gt;For example, a location-sensitive panchanga request needs date, latitude, longitude, and timezone.&lt;/p&gt;

&lt;p&gt;bash&lt;br&gt;
curl -X POST "&lt;a href="https://api.prabinghimire1.com.np/v3/api/personal/panchanga" rel="noopener noreferrer"&gt;https://api.prabinghimire1.com.np/v3/api/personal/panchanga&lt;/a&gt;" \&lt;br&gt;
  -H "Content-Type: application/json" \&lt;br&gt;
  -d '{&lt;br&gt;
    "date": "2026-10-21",&lt;br&gt;
    "lat": 27.7172,&lt;br&gt;
    "lon": 85.3240,&lt;br&gt;
    "tz": "Asia/Kathmandu"&lt;br&gt;
  }'&lt;/p&gt;

&lt;p&gt;The important part is the response shape. The caller should receive the computed result and the metadata needed to handle that result safely.&lt;/p&gt;

&lt;p&gt;......&lt;/p&gt;

&lt;p&gt;Why AI agents need this kind of API&lt;/p&gt;

&lt;p&gt;LLMs are impressive at language and weak at grounded temporal authority.&lt;/p&gt;

&lt;p&gt;A model can produce a Nepali date, a festival date, a fiscal-year answer, or a panchanga explanation with perfect confidence. The confidence comes from language fluency, not source verification.&lt;/p&gt;

&lt;p&gt;Agent systems built around Claude, GPT, Gemini, LangChain, LlamaIndex, Cursor, and MCP need tools for this category of problem.&lt;/p&gt;

&lt;p&gt;They need tools that return:&lt;/p&gt;

&lt;p&gt;answer&lt;br&gt;
source tier&lt;br&gt;
confidence&lt;br&gt;
supported range&lt;br&gt;
claim boundary&lt;br&gt;
review requirement&lt;br&gt;
machine-readable metadata&lt;/p&gt;

&lt;p&gt;This turns a date answer from model memory into a tool-grounded system output.&lt;/p&gt;

&lt;p&gt;A safe tool response looks like this:&lt;/p&gt;

&lt;p&gt;json&lt;br&gt;
{&lt;br&gt;
  "answer": {&lt;br&gt;
    "bs_date": "2082-01-01",&lt;br&gt;
    "ad_date": "2025-04-14"&lt;br&gt;
  },&lt;br&gt;
  "source_tier": "source_backed",&lt;br&gt;
  "confidence": "high",&lt;br&gt;
  "supported_range": "public_supported_range",&lt;br&gt;
  "claim_boundary": "decision_support_not_authority",&lt;br&gt;
  "review_required": false&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;That structure matters because agents pass outputs into other tools.&lt;/p&gt;

&lt;p&gt;A scheduling agent may call a calendar API.&lt;/p&gt;

&lt;p&gt;A payroll agent may compute a cutoff.&lt;/p&gt;

&lt;p&gt;A finance agent may label a reporting period.&lt;/p&gt;

&lt;p&gt;A government-service agent may answer a citizen.&lt;/p&gt;

&lt;p&gt;A school ERP assistant may generate a schedule.&lt;/p&gt;

&lt;p&gt;An AI system that guesses time creates quiet failure. An AI system that calls a deterministic temporal tool creates auditable behavior.&lt;/p&gt;

&lt;p&gt;That is the role Parva is designed to play.&lt;/p&gt;

&lt;p&gt;......&lt;/p&gt;

&lt;p&gt;MCP as a thin adapter&lt;/p&gt;

&lt;p&gt;MCP is useful because it gives AI clients a common way to discover and call external tools.&lt;/p&gt;

&lt;p&gt;It also creates a new safety surface.&lt;/p&gt;

&lt;p&gt;A tool descriptor can make a system safer or more dangerous. A vague tool description can teach an agent to overuse a route. An overpowered tool can expose admin or research behavior. A missing boundary can make a computed value look authoritative.&lt;/p&gt;

&lt;p&gt;Project Parva treats MCP as a thin adapter over the verified public surface.&lt;/p&gt;

&lt;p&gt;The MCP resources are shaped around things an agent can safely inspect:&lt;/p&gt;

&lt;p&gt;parva://capabilities&lt;br&gt;
parva://route-maturity&lt;br&gt;
parva://source-policy&lt;br&gt;
parva://supported-ranges&lt;br&gt;
parva://known-limitations&lt;br&gt;
parva://benchmark-summary&lt;/p&gt;

&lt;p&gt;The public-safe tools are intentionally small:&lt;/p&gt;

&lt;p&gt;convert_bs_to_ad&lt;br&gt;
convert_ad_to_bs&lt;br&gt;
get_nepali_today&lt;br&gt;
check_holiday&lt;br&gt;
check_working_day&lt;br&gt;
get_fiscal_year&lt;br&gt;
get_festival_date&lt;br&gt;
get_panchanga_summary&lt;br&gt;
check_temporal_claim&lt;/p&gt;

&lt;p&gt;The server is read-only by design. The manifest tests check route safety, descriptor safety, digest stability, resource exposure, and tool boundaries.&lt;/p&gt;

&lt;p&gt;MCP is useful here because time is a perfect tool-use domain. The model should delegate the temporal fact to a system built for temporal facts.&lt;/p&gt;

&lt;p&gt;......&lt;/p&gt;

&lt;p&gt;Source metadata is a first-class feature&lt;/p&gt;

&lt;p&gt;Most calendar systems store dates.&lt;/p&gt;

&lt;p&gt;Project Parva stores dates with con.&lt;/p&gt;

&lt;p&gt;For source-backed results, the response can include provenance information, source tiers, release metadata, confidence labels, and calculation method details.&lt;/p&gt;

&lt;p&gt;A festival result can carry data like:&lt;/p&gt;

&lt;p&gt;json&lt;br&gt;
{&lt;br&gt;
  "data": {&lt;br&gt;
    "festival": "Dashain",&lt;br&gt;
    "bs_date": "2082-06-29",&lt;br&gt;
    "ad_date": "2025-10-15",&lt;br&gt;
    "quality_band": "source_backed",&lt;br&gt;
    "provenance": {&lt;br&gt;
      "source_tier": "published",&lt;br&gt;
      "method": "festival_rule_with_source_metadata",&lt;br&gt;
      "review_required": false&lt;br&gt;
    }&lt;br&gt;
  },&lt;br&gt;
  "meta": {&lt;br&gt;
    "calculation_trace_id": "trace_...",&lt;br&gt;
    "method_profile": "public_reference",&lt;br&gt;
    "claim_boundary": "technical_reference"&lt;br&gt;
  }&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;This feels closer to supply-chain thinking than ordinary calendar programming.&lt;/p&gt;

&lt;p&gt;The system should know where the value came from, how it was produced, what confidence it carries, and how far the caller can safely use it.&lt;/p&gt;

&lt;p&gt;That design becomes especially valuable when the caller is another machine.&lt;/p&gt;

&lt;p&gt;......&lt;/p&gt;

&lt;p&gt;Public verification is part of the product&lt;/p&gt;

&lt;p&gt;The project now treats verification as a product surface.&lt;/p&gt;

&lt;p&gt;A temporal infrastructure project needs more than unit tests. It needs checks that enforce trust boundaries across generated artifacts, docs, OpenAPI, routes, SDKs, AI tools, and reports.&lt;/p&gt;

&lt;p&gt;The repository includes public verification around:&lt;/p&gt;

&lt;p&gt;bash&lt;br&gt;
python scripts/parva_trust_verify.py&lt;br&gt;
python scripts/check_future_bs_public_leakage.py&lt;br&gt;
python scripts/release/check_public_openapi_drift.py&lt;br&gt;
python scripts/check_docs_links.py&lt;br&gt;
python scripts/check_path_leaks.py&lt;br&gt;
python -m pytest -q -m "not private_source and not wide_corpus and not research_artifact"&lt;br&gt;
python scripts/release/verify_public.py&lt;/p&gt;

&lt;p&gt;These checks answer questions that normal test suites miss:&lt;/p&gt;

&lt;p&gt;Did a private path leak into public files?&lt;br&gt;
Did a public OpenAPI artifact expose a research route?&lt;br&gt;
Did Future-BS exact output cross into the public surface?&lt;br&gt;
Did docs link to local generated files?&lt;br&gt;
Did public tests start depending on private data?&lt;br&gt;
Did trust manifests drift?&lt;/p&gt;

&lt;p&gt;That is infrastructure work.&lt;/p&gt;

&lt;p&gt;The output of the project should be correct. The boundary around the output should be correct too.&lt;/p&gt;

&lt;p&gt;......&lt;/p&gt;

&lt;p&gt;Nepali Time Reliability Benchmark&lt;/p&gt;

&lt;p&gt;Project Parva also includes an initial Nepali Time Reliability Benchmark.&lt;/p&gt;

&lt;p&gt;The benchmark tests the kind of behavior that real systems need:&lt;/p&gt;

&lt;p&gt;BS/AD conversion&lt;br&gt;
invalid BS dates&lt;br&gt;
holidays&lt;br&gt;
working days&lt;br&gt;
fiscal-year boundaries&lt;br&gt;
festival dates&lt;br&gt;
panchanga and tithi-at-sunrise behavior&lt;br&gt;
payroll and repayment review gates&lt;br&gt;
Future-BS review behavior&lt;br&gt;
source and confidence metadata&lt;br&gt;
machine-readable structure&lt;/p&gt;

&lt;p&gt;The scoring model includes:&lt;/p&gt;

&lt;p&gt;Correctness&lt;br&gt;
Source awareness&lt;br&gt;
Uncertainty handling&lt;br&gt;
Review gate behavior&lt;br&gt;
Machine-readable structure&lt;/p&gt;

&lt;p&gt;This is important because date infrastructure deserves benchmark pressure.&lt;/p&gt;

&lt;p&gt;A system can return the correct date and still fail the reliability test if it loses source metadata, hides uncertainty, or makes a future-sensitive output look final.&lt;/p&gt;

&lt;p&gt;For AI systems, that benchmark matters even more.&lt;/p&gt;

&lt;p&gt;An agent needs a tool that gets the answer and keeps the boundary.&lt;/p&gt;

&lt;p&gt;......&lt;/p&gt;

&lt;p&gt;Future-BS as a boundary problem&lt;/p&gt;

&lt;p&gt;Future Bikram Sambat work is one of the most sensitive areas in the project.&lt;/p&gt;

&lt;p&gt;The tempting version is simple:&lt;/p&gt;

&lt;p&gt;Compute future dates and return them.&lt;/p&gt;

&lt;p&gt;The serious version is better:&lt;/p&gt;

&lt;p&gt;Compute candidates, preserve source status, expose risk, require review, and keep official-source claims separate.&lt;/p&gt;

&lt;p&gt;Project Parva uses language like:&lt;/p&gt;

&lt;p&gt;computed_prediction_not_official&lt;br&gt;
review_required&lt;br&gt;
unsupported&lt;br&gt;
source_unavailable&lt;br&gt;
human_review_required&lt;/p&gt;

&lt;p&gt;This makes the system useful for research, planning, and risk analysis while keeping public integration behavior safe.&lt;/p&gt;

&lt;p&gt;A future-sensitive response should look more like:&lt;/p&gt;

&lt;p&gt;json&lt;br&gt;
{&lt;br&gt;
  "publication_status": "computed_prediction_not_official",&lt;br&gt;
  "review_required": true,&lt;br&gt;
  "claim_boundary": "future_calendar_decision_support",&lt;br&gt;
  "confidence": "research"&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;That design is less flashy than pretending to own the future.&lt;/p&gt;

&lt;p&gt;It is also the version that belongs inside serious software.&lt;/p&gt;

&lt;p&gt;......&lt;/p&gt;

&lt;p&gt;External rules are separate from astronomy&lt;/p&gt;

&lt;p&gt;Another lesson from the project is that time infrastructure needs institutional rule modeling.&lt;/p&gt;

&lt;p&gt;Astronomy gives the system one class of evidence.&lt;/p&gt;

&lt;p&gt;Institutions give the system another.&lt;/p&gt;

&lt;p&gt;Project Parva tracks external temporal rules for things like:&lt;/p&gt;

&lt;p&gt;holiday releases&lt;br&gt;
panchanga festival decisions&lt;br&gt;
fiscal-year assumptions&lt;br&gt;
working-day profiles&lt;br&gt;
bank holiday profiles&lt;br&gt;
payroll cutoff rules&lt;br&gt;
school calendar profiles&lt;br&gt;
municipality holiday notices&lt;br&gt;
regional observance variants&lt;br&gt;
Nepal Sambat observances&lt;br&gt;
udaya-tithi festival conventions&lt;/p&gt;

&lt;p&gt;Each rule can carry fields like:&lt;/p&gt;

&lt;p&gt;rule_id&lt;br&gt;
authority_type&lt;br&gt;
source_tier&lt;br&gt;
jurisdiction&lt;br&gt;
evidence_required&lt;br&gt;
public_safe&lt;br&gt;
review_required_when&lt;br&gt;
conflict_resolution&lt;br&gt;
examples&lt;/p&gt;

&lt;p&gt;That registry lets a system distinguish:&lt;/p&gt;

&lt;p&gt;The astronomy says X.&lt;br&gt;
A published source says Y.&lt;br&gt;
An institution policy says Z.&lt;br&gt;
This case needs review.&lt;/p&gt;

&lt;p&gt;This separation makes the architecture far cleaner.&lt;/p&gt;

&lt;p&gt;It also makes the project more useful to payroll systems, cooperatives, ERP tools, school systems, government portals, and AI agents.&lt;/p&gt;

&lt;p&gt;......&lt;/p&gt;

&lt;p&gt;Non-Gregorian calendars are frontier infrastructure&lt;/p&gt;

&lt;p&gt;Nepal is one example of a broader problem.&lt;/p&gt;

&lt;p&gt;Many jurisdictions operate with calendar systems that differ from the Gregorian assumptions built into most global software stacks.&lt;/p&gt;

&lt;p&gt;Examples include:&lt;/p&gt;

&lt;p&gt;Bikram Sambat&lt;br&gt;
Nepal Sambat&lt;br&gt;
Ethiopian calendar&lt;br&gt;
Hebrew calendar&lt;br&gt;
Islamic Hijri calendars&lt;br&gt;
Solar Hijri calendar&lt;br&gt;
traditional lunisolar calendars&lt;br&gt;
regional festival calendars&lt;/p&gt;

&lt;p&gt;The infrastructure pattern repeats:&lt;/p&gt;

&lt;p&gt;local calendar rules&lt;br&gt;
source authority&lt;br&gt;
astronomical computation&lt;br&gt;
institution-specific policy&lt;br&gt;
software integration&lt;br&gt;
AI tool grounding&lt;/p&gt;

&lt;p&gt;This is why Project Parva feels bigger than a Nepali date converter.&lt;/p&gt;

&lt;p&gt;The domain is Nepal.&lt;/p&gt;

&lt;p&gt;The pattern is global.&lt;/p&gt;

&lt;p&gt;As AI agents become normal parts of workflows, every non-Gregorian time system needs a grounded tool layer.&lt;/p&gt;

&lt;p&gt;Project Parva is one implementation of that idea.&lt;/p&gt;

&lt;p&gt;......&lt;/p&gt;

&lt;p&gt;API, SDKs, and integration surface&lt;/p&gt;

&lt;p&gt;The project includes:&lt;/p&gt;

&lt;p&gt;FastAPI backend&lt;br&gt;
OpenAPI docs&lt;br&gt;
Python SDK work&lt;br&gt;
JavaScript SDK work&lt;br&gt;
LangChain and LlamaIndex tool wrappers&lt;br&gt;
MCP manifest and server work&lt;br&gt;
public benchmark runners&lt;br&gt;
trust verification scripts&lt;br&gt;
route maturity profiles&lt;br&gt;
digital Panchanga sample release&lt;br&gt;
vendor conformance packet&lt;br&gt;
government proposal packet&lt;/p&gt;

&lt;p&gt;This gives the project several integration paths:&lt;/p&gt;

&lt;p&gt;Direct REST API&lt;br&gt;
OpenAPI clients&lt;br&gt;
Python SDK&lt;br&gt;
JavaScript SDK&lt;br&gt;
AI tool wrappers&lt;br&gt;
MCP-compatible clients&lt;br&gt;
benchmark runners&lt;br&gt;
self-hosted deployments&lt;/p&gt;

&lt;p&gt;The goal is practical.&lt;/p&gt;

&lt;p&gt;A developer should be able to call stable public routes.&lt;/p&gt;

&lt;p&gt;An AI engineer should be able to wrap those routes safely.&lt;/p&gt;

&lt;p&gt;A vendor should be able to test date behavior.&lt;/p&gt;

&lt;p&gt;A reviewer should be able to inspect verification gates.&lt;/p&gt;

&lt;p&gt;A future government or institutional workflow should be able to see how machine-readable temporal releases could work.&lt;/p&gt;

&lt;p&gt;......&lt;/p&gt;

&lt;p&gt;Getting started&lt;/p&gt;

&lt;p&gt;Repository:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/dantwoashim/Project_Parva" rel="noopener noreferrer"&gt;https://github.com/dantwoashim/Project_Parva&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Typical API use looks like:&lt;/p&gt;

&lt;p&gt;bash&lt;br&gt;
curl "&lt;a href="https://api.prabinghimire1.com.np/v3/api/calendar/today" rel="noopener noreferrer"&gt;https://api.prabinghimire1.com.np/v3/api/calendar/today&lt;/a&gt;"&lt;/p&gt;

&lt;p&gt;BS to AD conversion:&lt;/p&gt;

&lt;p&gt;bash&lt;br&gt;
curl -X POST "&lt;a href="https://api.prabinghimire1.com.np/v3/api/calendar/bs-to-gregorian" rel="noopener noreferrer"&gt;https://api.prabinghimire1.com.np/v3/api/calendar/bs-to-gregorian&lt;/a&gt;" \&lt;br&gt;
  -H "Content-Type: application/json" \&lt;br&gt;
  -d '{"year":2082,"month":1,"day":1}'&lt;/p&gt;

&lt;p&gt;Upcoming festivals:&lt;/p&gt;

&lt;p&gt;bash&lt;br&gt;
curl "&lt;a href="https://api.prabinghimire1.com.np/v3/api/festivals/upcoming?days=30" rel="noopener noreferrer"&gt;https://api.prabinghimire1.com.np/v3/api/festivals/upcoming?days=30&lt;/a&gt;"&lt;/p&gt;

&lt;p&gt;Panchanga:&lt;/p&gt;

&lt;p&gt;bash&lt;br&gt;
curl -X POST "&lt;a href="https://api.prabinghimire1.com.np/v3/api/personal/panchanga" rel="noopener noreferrer"&gt;https://api.prabinghimire1.com.np/v3/api/personal/panchanga&lt;/a&gt;" \&lt;br&gt;
  -H "Content-Type: application/json" \&lt;br&gt;
  -d '{&lt;br&gt;
    "date":"2026-10-21",&lt;br&gt;
    "lat":27.7172,&lt;br&gt;
    "lon":85.3240,&lt;br&gt;
    "tz":"Asia/Kathmandu"&lt;br&gt;
  }'&lt;/p&gt;

&lt;p&gt;Public verification from the repository:&lt;/p&gt;

&lt;p&gt;bash&lt;br&gt;
python scripts/release/verify_public.py&lt;/p&gt;

&lt;p&gt;Benchmark runners:&lt;/p&gt;

&lt;p&gt;bash&lt;br&gt;
python public-benchmark/runners/run_against_static_baseline.py&lt;br&gt;
python public-benchmark/runners/run_against_parva.py&lt;/p&gt;

&lt;p&gt;......&lt;/p&gt;

&lt;p&gt;The core idea&lt;/p&gt;

&lt;p&gt;Project Parva exists because Nepali time deserves better infrastructure.&lt;/p&gt;

&lt;p&gt;A calendar API should return dates.&lt;/p&gt;

&lt;p&gt;A temporal infrastructure layer should return dates, sources, confidence, review boundaries, supported ranges, and machine-readable safety metadata.&lt;/p&gt;

&lt;p&gt;That distinction matters for backend systems.&lt;/p&gt;

&lt;p&gt;It matters for government digitization.&lt;/p&gt;

&lt;p&gt;It matters for fintech and payroll.&lt;/p&gt;

&lt;p&gt;It matters for panchanga and festival software.&lt;/p&gt;

&lt;p&gt;It matters for AI agents.&lt;/p&gt;

&lt;p&gt;The sentence that captures the project is simple:&lt;/p&gt;

&lt;p&gt;AI agents should call tools for time.&lt;/p&gt;

&lt;p&gt;For Nepal, Project Parva is building that tool layer.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>python</category>
      <category>fastapi</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
