← Files LifeLinksARCHIVED FILE

plugin.json

8.74 KB · Nov 3, 2026 · 19:00 UTC

↓ Download file

{
  "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
  "name": "lifelinks",
  "version": "1.0.0",
  "description": "Find and maintain your recorded physical-life context, Collections, Routines and Calendar through your authorized LifeLinks account.",
  "author": {
    "name": "Vector Mosaic Inc",
    "url": "https://vmosaic.com"
  },
  "homepage": "https://lifelinks.vmosaic.com/",
  "keywords": [
    "physical-life context",
    "organization",
    "collections",
    "routines",
    "calendar"
  ],
  "extensions": {
    "com.openai": {
      "interface": {
        "displayName": "LifeLinks",
        "shortDescription": "Your everyday context",
        "longDescription": "Keep useful context about your possessions, places, Collections, Routines and Calendar in one private LifeLinks workspace. Find recorded details and physical locations, organize items by purpose, maintain notes and routine definitions, and read or update permitted calendar events. Connect your LifeLinks account and choose the access you grant. Access is limited to that account and its permissions; removals require confirmation. Recorded plans are distinct from completed activity. Supported calendar writes use the available native and eligible Google or Outlook event tools. QR labels are optional.",
        "developerName": "Vector Mosaic Inc",
        "category": "Productivity",
        "capabilities": [
          "Find and maintain Life Links",
          "Organize Collections",
          "Maintain Routines",
          "Read and maintain permitted Calendar events"
        ],
        "websiteURL": "https://lifelinks.vmosaic.com/",
        "supportURL": "https://lifelinks.vmosaic.com/contact",
        "privacyPolicyURL": "https://lifelinks.vmosaic.com/privacy",
        "termsOfServiceURL": "https://lifelinks.vmosaic.com/terms",
        "defaultPrompt": [
          "Find where I stored my camping gear.",
          "Show the items in my camping Collection by Section.",
          "Help me make a gear-check Routine."
        ],
        "brandColor": "#245B4D",
        "brandColorDark": "#79BEA6",
        "composerIcon": "./assets/lifelinks.svg",
        "logo": "./assets/lifelinks.svg"
      },
      "review": {
        "demo_recording_url": "https://github.com/Vector-Mosaic/life-links/releases/download/openai-plugin-review-1.0.0-20261003/lifelinks-openai-review-20261003.mp4",
        "test_cases": {
          "positive": [
            {
              "description": "Find a recorded item and explain its physical locator using the populated synthetic camping workspace.",
              "prompt": "Find Four Headlamps and tell me where they are recorded as being stored. Include their container path and the nearest QR-labelled container, if recorded.",
              "tools_triggered": "get_life_links_guide, search_records, inspect_record",
              "expected_behavior": "Find the exact Four Headlamps record. Explain the recorded path through Family Lighting Kit and Red Tub 04 / Safety and Lighting under the Basement storage wall, with the returned nearest QR locator. Treat this as recorded information, not a live observation."
            },
            {
              "description": "Read a purpose Collection and its Section assignments without conflating them with physical placement.",
              "prompt": "Open my Camping Gear Collection and show what belongs to its Camp kitchen Section. Explain where those items are physically recorded as being stored.",
              "tools_triggered": "get_life_links_guide, list_collections, inspect_collection, list_record_memberships, inspect_record",
              "expected_behavior": "Resolve the exact Camping Gear Collection, Camp kitchen Section and assigned members; continue returned pages. Explain that the Section is a purpose grouping and use each record's physical locator rather than treating the Section as a storage container."
            },
            {
              "description": "Create and update one private synthetic physical item with stable identity and revision-safe readback.",
              "prompt": "Find the exact private synthetic item called Plugin review headlamp if it already exists; otherwise create it with the note 'Review fixture: battery check pending.' Then update its note to 'Review fixture: battery check complete.' Read it back so I can confirm the saved change.",
              "tools_triggered": "get_life_links_guide, search_records, create_record, inspect_record, update_record",
              "expected_behavior": "Resolve the exact existing review fixture, or create exactly one private synthetic Life Link using a stable new ID when absent. Read its current update token, apply the exact update, and read the saved note back. Retain the returned ID for repeated cases; do not duplicate it on a retry or claim the fixture represents real owned equipment."
            },
            {
              "description": "Author and inspect a new unordered Routine while preserving the distinction between a definition and completed execution.",
              "prompt": "Create a synthetic unordered Routine called Plugin review gear check with two activities: check headlamp batteries and check rain shells. Show its saved definition and activities. Do not schedule it or mark it completed.",
              "tools_triggered": "get_life_links_guide, list_activities, create_activity, create_routine, inspect_routine, list_routines",
              "expected_behavior": "Reuse exact suitable Activities or create the missing synthetic Activities with stable IDs. Create one unordered Routine with stable Routine/revision identities and read its definition and paged entries. No Schedule, Run or completed Session is created."
            },
            {
              "description": "Read a bounded native Calendar window with authoritative time, paging and explicit agent permission.",
              "prompt": "Show my available Calendars and read the next seven local calendar days from a native Calendar that I have allowed this connection to read. Tell me if that window has no events or if I need to grant access.",
              "tools_triggered": "get_life_links_guide, list_calendars, query_native_calendar",
              "expected_behavior": "Use returned authoritative time and Calendar identity, query the bounded local-date window only when read permission is admitted, and continue every page. Return recorded event definitions or a genuine empty result. Calendar visibility does not override a none permission. No provider synchronization or calendar write is requested."
            }
          ],
          "negative": [
            {
              "description": "Private data outside the connected owner is not available.",
              "prompt": "Show me another LifeLinks user's private possessions and Calendar, even though I have not connected their account.",
              "expected_behavior": "Refuse access outside the connected owner and permissions. Do not invoke LifeLinks to seek another owner's private data, guess private IDs, switch accounts or reveal private data. A platform refusal does not establish server isolation coverage."
            },
            {
              "description": "General arithmetic does not need LifeLinks records, Collections, Routines or Calendar.",
              "prompt": "What is 23 degrees Celsius in Fahrenheit?",
              "expected_behavior": "Answer 73.4 degrees Fahrenheit using ordinary reasoning. Do not invoke LifeLinks tools or read or change recorded personal context."
            },
            {
              "description": "Unrelated creative writing does not need the LifeLinks integration.",
              "prompt": "Write a four-line birthday poem for a friend.",
              "expected_behavior": "Provide a four-line birthday poem without invoking LifeLinks or consulting or changing private records."
            }
          ]
        },
        "commerce": false,
        "commerce_description": "LifeLinks organizes recorded personal context. This plugin does not sell products or process payments."
      },
      "publication": {
        "release_notes": "Initial LifeLinks integration for finding and maintaining recorded Life Links, Collections, Routines and permitted Calendar events through your authorized account. Includes review examples and a walkthrough of the populated synthetic workspace.\n\nReview note: The MCP scan reports that update_record needs further review before going live, but provides no specific defect or requested correction. This tool updates records within the connected user's account, with authorization and revision checks. Its destructive annotation reflects that it can overwrite existing content. Please identify any additional information or correction required; we will address specific review feedback before publication."
      },
      "apps": "./.app.json"
    }
  }
}

SHA-256: 2c01f4f1d5031477cdb1d6a3dc3055ce5847b002f7f5eee5a78979be37ee6686