@tasksai/install 0.1.35 → 0.1.37

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
@@ -76,14 +76,19 @@ and avoids overwriting existing files unless explicitly told to overwrite.
76
76
  Generated document content is handled by the customer's AI framework and local
77
77
  MCP runtime; it is not sent to TasksAI websites or APIs.
78
78
 
79
- ## Realtor jurisdiction sources
79
+ ## Jurisdiction sources
80
80
 
81
- For jurisdiction-sensitive RealtorTasksAI workflows, the local runtime sends
82
- only the selected skill ID and general state, county, city, public-authority,
83
- and MLS labels to the TasksAI API. It never sends the user's prompt, property
84
- address, client facts, uploaded records, or generated document.
81
+ For jurisdiction-sensitive TasksAI workflows, the local runtime sends only the
82
+ selected skill ID and general state, county, city, public-authority, MLS,
83
+ association, certifier, program-office, insurer, lender, payer, union, or
84
+ licensing-board labels to the TasksAI API. It never sends the user's prompt,
85
+ address, client, patient, student, employee, customer, project, property, farm,
86
+ production, health, financial, or case records, uploaded records, or generated
87
+ document.
85
88
 
86
89
  The API returns a reviewed source pack when one exists. If it does not, the
87
90
  licensed runtime can request a controlled official-web lookup. Live results are
88
91
  cached, source-linked, and visibly labeled `provisional`; they never substitute
89
- for private MLS rules, brokerage policy, approved forms, or professional review.
92
+ for private MLS rules, brokerage policy, approved forms, product labels,
93
+ permits, payer rules, program notices, certifier standards, insurer or lender
94
+ requirements, agency correspondence, or professional review.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tasksai/install",
3
- "version": "0.1.35",
3
+ "version": "0.1.37",
4
4
  "description": "Shared TasksAI MCP installer CLI",
5
5
  "type": "module",
6
6
  "bin": {
package/runtime/server.py CHANGED
@@ -661,7 +661,6 @@ async def report_activation_event(event_name, *, skill_id=None, file_format=None
661
661
  "install_id": get_install_id(),
662
662
  "metadata": {
663
663
  "source": "mcp_runtime",
664
- "client": "mcp-server",
665
664
  "tool_version": SERVER_VERSION,
666
665
  },
667
666
  })
@@ -1708,49 +1707,48 @@ def build_tools(prefix, product_name, occupation):
1708
1707
  ),
1709
1708
  ]
1710
1709
 
1711
- if prefix in {"realtortasksai", "farmertasksai", "teachertasksai"}:
1712
- tools.insert(
1713
- 2,
1714
- Tool(
1715
- name=f"{prefix}_jurisdiction_sources",
1716
- description=(
1717
- f"Retrieve the current jurisdiction-and-authority sources for a jurisdiction-sensitive {product_name} workflow. "
1718
- "Use after the applicable state is known and before applying state, local, district, regulator, form, or policy requirements. "
1719
- "For RealtorTasksAI, a missing reviewed pack can trigger a licensed, privacy-safe official-web lookup whose results are explicitly provisional. "
1720
- "Send only the skill ID and general authority labels; never send an address, person name, student or client facts, documents, or generated content."
1721
- ),
1722
- inputSchema={
1723
- "type": "object",
1724
- "properties": {
1725
- "skill_id": {
1726
- "type": "string",
1727
- "description": "Exact workflow ID requesting a task-specific source pack.",
1728
- },
1729
- "state": {
1730
- "type": "string",
1731
- "description": "Property state name or two-letter code. Omit only to obtain a blocking missing-jurisdiction response.",
1732
- },
1733
- "county": {
1734
- "type": "string",
1735
- "description": "Optional county name only; do not include an address.",
1736
- },
1737
- "locality": {
1738
- "type": "string",
1739
- "description": "Optional city or municipality name only; do not include an address.",
1740
- },
1741
- "district": {
1742
- "type": "string",
1743
- "description": "Optional public authority or school-district name only; do not include a person, student, or record identifier.",
1744
- },
1745
- "mls": {
1746
- "type": "string",
1747
- "description": "Optional MLS or Realtor-association name only; never send credentials, listing data, or member-only content.",
1748
- },
1710
+ tools.insert(
1711
+ 2,
1712
+ Tool(
1713
+ name=f"{prefix}_jurisdiction_sources",
1714
+ description=(
1715
+ f"Retrieve the current jurisdiction-and-authority sources for a jurisdiction-sensitive {product_name} workflow. "
1716
+ "Use after the applicable state is known and before applying state, local, district, regulator, form, program, license, permit, payer, tax, safety, or policy requirements. "
1717
+ "When a reviewed pack is missing, this can trigger a licensed, privacy-safe official-web lookup whose results are explicitly provisional. "
1718
+ "Send only the skill ID and general authority labels; never send an address, person name, student, client, patient, employee, customer, case, property, farm, project, financial, production, health, document, or generated-content record."
1719
+ ),
1720
+ inputSchema={
1721
+ "type": "object",
1722
+ "properties": {
1723
+ "skill_id": {
1724
+ "type": "string",
1725
+ "description": "Exact workflow ID requesting a task-specific source pack.",
1726
+ },
1727
+ "state": {
1728
+ "type": "string",
1729
+ "description": "General state name or two-letter code for the task. Omit only to obtain a blocking missing-jurisdiction response.",
1730
+ },
1731
+ "county": {
1732
+ "type": "string",
1733
+ "description": "Optional county name only; do not include an address or customer record.",
1734
+ },
1735
+ "locality": {
1736
+ "type": "string",
1737
+ "description": "Optional city or municipality name only; do not include an address or customer record.",
1738
+ },
1739
+ "district": {
1740
+ "type": "string",
1741
+ "description": "Optional public authority, district, extension office, conservation district, water district, school district, licensing board, program office, regulator, court, or certifier name only; do not include a person, student, patient, client, farm, project, property, or record identifier.",
1742
+ },
1743
+ "mls": {
1744
+ "type": "string",
1745
+ "description": "Optional association, MLS, certifier, insurer, lender, payer, union, or public program label only; never send credentials, listing data, financials, production records, health records, client records, or member-only content.",
1749
1746
  },
1750
- "required": ["skill_id"],
1751
1747
  },
1752
- ),
1753
- )
1748
+ "required": ["skill_id"],
1749
+ },
1750
+ ),
1751
+ )
1754
1752
  return tools
1755
1753
 
1756
1754
 
@@ -1945,17 +1943,12 @@ async def call_tool(name, arguments):
1945
1943
  ))]
1946
1944
 
1947
1945
  # ── Jurisdiction Sources ─────────────────────────────────────────────
1948
- elif name == f"{prefix}_jurisdiction_sources" and prefix in {
1949
- "realtortasksai",
1950
- "farmertasksai",
1951
- "teachertasksai",
1952
- }:
1946
+ elif name == f"{prefix}_jurisdiction_sources":
1953
1947
  path = jurisdiction_sources_path(arguments or {})
1954
1948
  result = await api_get(path)
1955
1949
  if (
1956
- prefix == "realtortasksai"
1957
- and (arguments or {}).get("state")
1958
- and result.get("status") not in {"ready", "provisional"}
1950
+ (arguments or {}).get("state")
1951
+ and result.get("status") not in {"ready", "provisional", "needs_jurisdiction"}
1959
1952
  ):
1960
1953
  try:
1961
1954
  result = await api_post(