Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions CAMPUS_DATA_OWNERSHIP.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
# Campus data ownership

Canonical public University of Toronto campus facts and geometry live in `GapwiseHQ/data`. UTM's reviewed entrance/routing dataset lives under `data/utm`; UTSG and UTSC identities and geometry live in their own campus directories.
Canonical public campus facts and geometry across all 11 supported Canadian universities (13 campus models) live in `GapwiseHQ/data`. University datasets live under their canonical identifiers (e.g. `universities/carleton`, `universities/queens`, etc.); UTM's reviewed entrance/routing dataset lives under `data/utm`, and UTSG and UTSC identities and geometry live in their respective campus directories.

`gapwise` consumes a validated build-time snapshot and remains authoritative for deterministic routing/gap-planning behavior, the public API/OpenAPI contract, SDK semantics, and product presentation. `docs` documents released contracts; it must not become an independent source of campus facts or product behavior.

## Documentation rules

- Link raw UTM data, provenance, confidence/evidence, geometry, entrances, and routing graph sources to `data`.
- Link raw campus data, provenance, confidence/evidence, geometry, entrances, and routing graph sources to `data`.
- Document routing behavior, API response semantics, OpenAPI, and SDK behavior from released `gapwise` contracts.
- Do not copy a campus dataset into this repository merely to make documentation convenient.
- Do not imply that `data.gapwise.ca` must be reachable for the product/API to route; core uses a vendored build-time snapshot.
Expand Down
6 changes: 3 additions & 3 deletions ECOSYSTEM.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,15 @@ All seven first-party product repositories are owned by the **Gapwise** GitHub o
| `GapwiseHQ/android` | native Android implementation, Android device integration, persistence adapters, and Android distribution behavior |
| `GapwiseHQ/ios` | native iOS implementation, Apple-platform integration, persistence adapters, and iOS distribution behavior |
| `GapwiseHQ/ai` | OAuth/MCP delegation, tool schemas, permissions, bounded mutations, AI compatibility evidence |
| `GapwiseHQ/data` | **canonical public University of Toronto campus facts and geometry**, entrances, routing graph data, provenance, schemas, evidence, attribution, validation, and reuse |
| `GapwiseHQ/data` | **canonical public campus facts and geometry across 11 supported universities (13 campus models)**, entrances, routing graph data, provenance, schemas, evidence, attribution, validation, and reuse |
| `GapwiseHQ/docs` | released public developer documentation and documentation information architecture |
| `GapwiseHQ/status` | operational health and incident communication |

`gapwise` vendors a validated build-time mirror of `data/utm` from the `data` repository at `src/data/utm`. That local path preserves existing imports and deterministic deployment behavior; it is not a second campus-data authority and does not create a runtime dependency on `data.gapwise.ca` or GitHub.

## Product scope

Gapwise timetable identity and web building maps support UTM, UTSG, UTSC, and mixed-campus schedules. The first-party public campus API, reviewed entrance and pedestrian route graph, places, and production raw-data distribution currently cover UTM. Documentation must preserve that specific boundary instead of implying equivalent routing coverage at all three campuses.
Gapwise supports 11 Canadian universities across 13 campus models. The first-party public campus API, reviewed building/entrance and pedestrian route graph, places, and production data support multi-university discovery and campus models, with full deterministic routing available for supported institutions including UTM and Carleton. Documentation must preserve specific campus routing coverage instead of implying identical entrance/routing graph depth across all campuses.

## Current developer-platform state

Expand All @@ -43,7 +43,7 @@ TypeScript and Python are equal first-party SDKs. Documentation should provide c
## Documentation rules

1. OpenAPI + core implementation own public HTTP behavior and deterministic calculations.
2. `data` owns raw public University of Toronto campus facts, geometry, routing graph data, provenance, and evidence.
2. `data` owns raw public campus facts across 11 supported universities, geometry, routing graph data, provenance, and evidence.
3. SDK docs follow released package/source behavior and never invent methods or types.
4. Registry claims are evidence-based: reserved/configured is not the same as published.
5. Runtime claims are evidence-based: Node/Bun/Deno/browser support should reflect CI/release verification rather than assumptions.
Expand Down
9 changes: 7 additions & 2 deletions contracts/mcp-live-surface.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"contractVersion": 2,
"registeredToolCount": 20,
"registeredToolCount": 25,
"registeredTools": {
"publicRead": [
"list_utm_buildings",
Expand All @@ -9,7 +9,12 @@
"search_utm_places",
"get_utm_place",
"route_between_utm_buildings",
"plan_utm_gap_window"
"plan_utm_gap_window",
"list_supported_universities",
"list_campus_buildings",
"search_campus_buildings",
"get_campus_building",
"route_between_campus_buildings"
],
"privateRead": [
"get_ai_delegation_status",
Expand Down
4 changes: 2 additions & 2 deletions src/content/docs/ai/connect.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ Private student-context tools use OAuth. Protected-resource metadata is publishe
https://ai.gapwise.ca/.well-known/oauth-protected-resource
```

A client can discover and use stateless public UTM campus tools without private Gapwise account access. To use private schedule/planning tools, the client must follow protected-resource discovery, complete browser-based authorization, and retain the resulting authorization securely.
A client can discover and use stateless public campus tools across supported universities without private Gapwise account access. To use private schedule/planning tools, the client must follow protected-resource discovery, complete browser-based authorization, and retain the resulting authorization securely.

## Connection workflow

Expand All @@ -33,6 +33,6 @@ Authorization happens at the Gapwise boundary. A legitimate integration does not

The MCP transport permits unauthenticated initialization and tool discovery. Protected private tool execution remains fail-closed until the caller presents a verified OAuth credential and the student has an active delegation with the required capability.

The service exposes 20 tools: seven stateless public campus reads, twelve permissioned private reads/status/planning tools, and one bounded private write. See [Tools](/ai/tools/) for the catalog and [Authentication & delegation](/ai/authentication/) for the authorization boundaries.
The service exposes 25 tools: twelve stateless public campus reads, twelve permissioned private reads/status/planning tools, and one bounded private write. See [Tools](/ai/tools/) for the catalog and [Authentication & delegation](/ai/authentication/) for the authorization boundaries.

Before connecting a particular product, check [Client compatibility](/ai/compatibility/). Broad named-client support is not claimed until the real production OAuth/read/write/revoke matrices are complete.
10 changes: 5 additions & 5 deletions src/content/docs/ai/index.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
---
title: Gapwise AI & MCP
description: Connect AI clients to public UTM campus intelligence and explicitly delegated Gapwise context without turning deterministic facts into model guesses.
description: Connect AI clients to public campus intelligence across 11 supported universities and explicitly delegated Gapwise context without turning deterministic facts into model guesses.
---

Gapwise AI is the **remote Model Context Protocol (MCP) integration boundary** between an AI client and Gapwise. It exposes stateless public UTM campus intelligence plus narrowly permissioned private student context without giving a client unrestricted account access.
Gapwise AI is the **remote Model Context Protocol (MCP) integration boundary** between an AI client and Gapwise. It exposes stateless public campus intelligence plus narrowly permissioned private student context without giving a client unrestricted account access.

The client supplies the model and reasoning layer. **Gapwise supplies the canonical facts, permissions, and bounded actions.**

Expand Down Expand Up @@ -44,9 +44,9 @@ Implementation source: [github.com/GapwiseHQ/ai](https://github.com/GapwiseHQ/ai

## Current live surface

The release surface registers **20 tools**:
The release surface registers **25 tools**:

- seven stateless public UTM campus-intelligence reads;
- twelve stateless public campus-intelligence reads (including multi-university discovery, buildings, and routing);
- twelve OAuth-protected private schedule/status/planning reads; and
- one bounded OAuth-protected private write.

Expand All @@ -60,7 +60,7 @@ Important boundaries:

## API or AI & MCP?

Use the **public API / SDKs** when a conventional application integration needs UTM buildings, places, deterministic routes, or gap assessment without an MCP client.
Use the **public API / SDKs** when a conventional application integration needs campus buildings, places, deterministic routes, or gap assessment across supported universities without an MCP client.

Use **Gapwise AI & MCP** when an AI client should access the same public campus intelligence and/or explicitly delegated Gapwise student context through one tool-oriented protocol surface.

Expand Down
2 changes: 1 addition & 1 deletion src/content/docs/ai/support.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ Revoke AI access from Gapwise to remove delegated connector state/actions and cl

## Public campus tools

The UTM building/routing/gap-window tools are stateless public campus intelligence. They do not indicate that a client has access to the user's private timetable or live location.
The public building, routing, and gap-window tools across supported universities are stateless public campus intelligence. They do not indicate that a client has access to the user's private timetable or live location.

## Service health

Expand Down
9 changes: 7 additions & 2 deletions src/content/docs/ai/tools.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
---
title: Tools
description: "The 20 tools in the Gapwise AI MCP surface: seven public UTM campus tools and thirteen permissioned student-context tools."
description: "The 25 tools in the Gapwise AI MCP surface: twelve public campus tools and thirteen permissioned student-context tools."
---

The Gapwise AI MCP surface contains **20 tools**: seven stateless public UTM campus-intelligence tools, twelve permissioned private read/status/planning tools, and one bounded private write tool.
The Gapwise AI MCP surface contains **25 tools**: twelve stateless public campus-intelligence tools, twelve permissioned private read/status/planning tools, and one bounded private write tool.

This catalog is checked against a synchronized copy of AI's [machine-readable live-surface manifest](https://github.com/GapwiseHQ/ai/blob/main/contracts/mcp-live-surface.json). The AI runtime remains authoritative for schemas returned by MCP discovery.

Expand All @@ -22,6 +22,11 @@ Public tools do **not** require a Gapwise account and do not read a student's ti
| `get_utm_place` | Retrieve a canonical place by stable identifier without inventing missing access or location facts. |
| `route_between_utm_buildings` | Run Gapwise's deterministic building-to-building routing engine and preserve routed/approximate/unavailable status, verification, time/distance, accessibility state, confidence, and warnings. |
| `plan_utm_gap_window` | Run Gapwise's deterministic gap-assessment engine for an explicit free window between two UTM buildings and explicit supplied preferences. It does not discover a user's private free time. |
| `list_supported_universities` | List all supported universities and campus editions across the Gapwise platform with capabilities and status. |
| `list_campus_buildings` | List canonical buildings for any supported university and campus with coverage and metadata. |
| `search_campus_buildings` | Search canonical buildings across any supported university and campus by code, official name, or alias. |
| `get_campus_building` | Resolve a canonical building for any supported university and campus; unknown values fail closed. |
| `route_between_campus_buildings` | Calculate deterministic building-to-building routes across any supported university and campus with confidence and verification status. |

## Private read, status, and planning tools

Expand Down
10 changes: 6 additions & 4 deletions src/content/docs/api.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@ title: API overview
description: The public Gapwise campus intelligence API v1.
---

Gapwise exposes public UTM campus primitives over HTTPS. The canonical production base URL is `https://api.gapwise.ca/v1`. The API is intentionally unauthenticated and preserves provenance, verification state, and uncertainty instead of fabricating missing facts.
Gapwise exposes public campus primitives across 11 supported Canadian universities (and 13 campus models) over HTTPS. The canonical production base URL is `https://api.gapwise.ca/v1`. The API is intentionally unauthenticated and preserves provenance, verification state, and uncertainty instead of fabricating missing facts.

## Public API or AI & MCP?

Use this API when you need **public campus intelligence**: buildings, places, deterministic routes, or route-aware assessment of an explicit free interval your application already knows.
Use this API when you need **public campus intelligence**: universities, campuses, buildings, places, deterministic routes, or route-aware assessment of an explicit free interval your application already knows.

If a compatible AI client needs **private student context or bounded personal actions**, use the separate [Gapwise AI & MCP](/ai/) integration. That boundary is OAuth-protected, explicitly delegated, permissioned, and revocable.

Expand All @@ -23,11 +23,13 @@ The two surfaces are intentionally separate:
| Method | Endpoint | Purpose |
| --- | --- | --- |
| `GET` | `/v1` | API capabilities, versions, and privacy boundary |
| `GET` | `/v1/buildings` | Search and list canonical UTM buildings |
| `GET` | `/v1/universities` | Discover all 11 supported universities, editions, and capabilities |
| `GET` | `/v1/campuses` | Discover all 13 supported campus models and metadata |
| `GET` | `/v1/buildings` | Search and list canonical buildings for any supported university/campus |
| `GET` | `/v1/buildings/:building` | Resolve one building by code, exact name, or recognized alias |
| `GET` | `/v1/places` | Search and list campus places |
| `GET` | `/v1/places/:placeId` | Resolve one canonical place |
| `POST` | `/v1/routes` | Calculate a deterministic building-level route |
| `POST` | `/v1/routes` | Calculate a deterministic building-level route for any supported university |
| `POST` | `/v1/gaps/plan` | Assess a route-aware explicit free interval |

All canonical endpoints live under `https://api.gapwise.ca`.
Expand Down
24 changes: 20 additions & 4 deletions src/content/docs/api/buildings.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
---
title: Buildings
description: Canonical UTM building identity, discovery, pagination, and provenance.
description: Canonical building identity, discovery, pagination, and provenance across supported universities.
---

The v1 building resources expose stable Gapwise identities for recognized UTM buildings. Identity/search coverage does not imply that every entrance, indoor path, floor, or accessibility detail has been surveyed.
The v1 building resources expose stable Gapwise identities for recognized campus buildings across 11 supported universities. Identity/search coverage does not imply that every entrance, indoor path, floor, or accessibility detail has been surveyed.

## List and search

Expand All @@ -15,12 +15,20 @@ Supported query parameters:

| Parameter | Meaning |
| --- | --- |
| `university` | Target university identifier (e.g. `carleton`, `uoft`, `tmu`, `mcmaster`, etc.; defaults to `uoft`) |
| `campus` | Target campus identifier (e.g. `carleton`, `utm`, `st-george`, `scarborough`; defaults to `utm`) |
| `q` | Case-insensitive substring search across canonical code, name, and aliases |
| `category` | `academic`, `residence`, or `facility` |
| `limit` | Page size, 1–100; defaults to 50 |
| `offset` | Zero-based collection offset |

Example:
Example for Carleton University:

```bash
curl 'https://api.gapwise.ca/v1/buildings?university=carleton&limit=20'
```

Example for U of T Mississauga (default):

```bash
curl 'https://api.gapwise.ca/v1/buildings?q=instructional&category=academic&limit=20&offset=0'
Expand All @@ -34,7 +42,15 @@ Search normalizes Unicode before matching. Filters combine deterministically, an
GET https://api.gapwise.ca/v1/buildings/:building
```

The identifier may be a canonical Gapwise code, exact canonical name, or recognized alias. Ambiguous identifiers return HTTP `409` with error code `ambiguous_building` and candidate codes in `error.details`.
The identifier may be a canonical Gapwise code, exact canonical name, or recognized alias. Ambiguous identifiers return HTTP `409` with error code `ambiguous_building` and candidate codes in `error.details`. Supply `university` (and optionally `campus`) as a query parameter if querying a non-default institution.

Carleton University example:

```bash
curl 'https://api.gapwise.ca/v1/buildings/ML?university=carleton'
```

UTM example:

```bash
curl https://api.gapwise.ca/v1/buildings/MN
Expand Down
25 changes: 18 additions & 7 deletions src/content/docs/api/routing.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
---
title: Routing
description: Deterministic UTM building-to-building routing and uncertainty semantics.
description: Deterministic building-to-building routing and uncertainty semantics across supported universities.
---

Gapwise v1 exposes deterministic building-level campus routing. It uses the project's bundled campus graph and source-backed routing facts; it does not ask an LLM to invent paths.
Gapwise v1 exposes deterministic building-level campus routing. It uses the project's bundled campus graphs and source-backed routing facts; it does not ask an LLM to invent paths.

## Calculate a route

Expand All @@ -12,7 +12,17 @@ POST https://api.gapwise.ca/v1/routes
Content-Type: application/json
```

Minimal request:
Minimal request for Carleton University:

```json
{
"from": "TB",
"to": "ML",
"university": "carleton"
}
```

Request for UTM (default university and campus):

```json
{
Expand All @@ -21,14 +31,15 @@ Minimal request:
}
```

Optional route preferences can select a supported mode and tune walking/transition assumptions:
You can explicitly specify `university` (defaults to `uoft`) and `campus` (defaults to `utm`). Optional route preferences can select a supported mode and tune walking/transition assumptions:

```json
{
"from": "MN",
"to": "IB",
"from": "TB",
"to": "ML",
"university": "carleton",
"preferences": {
"mode": "prefer-indoor",
"mode": "fastest",
"walkingSpeedMps": 1.2,
"transitionBufferMinutes": 2
}
Expand Down
4 changes: 2 additions & 2 deletions src/content/docs/data/datasets.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
---
title: Dataset catalog
description: Major canonical UTM campus datasets published by Gapwise Data.
description: Canonical campus datasets and raw artifacts published by Gapwise Data.
---

The currently published canonical UTM subtree lives under `data/utm`. Production Data builds distribute that validated tree at `https://data.gapwise.ca/datasets/utm/latest/`. Canonical UTSG and UTSC identity and geometry datasets live in their own repository directories but are not yet included in this raw production channel.
Gapwise Data publishes canonical campus datasets across 11 supported universities (13 campus models). Campus-wide models are maintained under `universities/<id>/campus.json` containing buildings, coordinates, and navigation metadata. In addition, the reviewed UTM subtree lives under `data/utm`, distributed as raw artifacts at `https://data.gapwise.ca/datasets/utm/latest/`. Additional university datasets (such as Carleton, Queen's, Western, Ottawa, McMaster, Laurier, York, Guelph, Brock, UTSG, and UTSC) live in their own canonical directories.

## Major surfaces

Expand Down
Loading
Loading