@tasksai/install 0.1.36 → 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 +11 -6
- package/package.json +1 -1
- package/runtime/server.py +43 -49
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
|
-
##
|
|
79
|
+
## Jurisdiction sources
|
|
80
80
|
|
|
81
|
-
For jurisdiction-sensitive
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
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,
|
|
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
package/runtime/server.py
CHANGED
|
@@ -1707,49 +1707,48 @@ def build_tools(prefix, product_name, occupation):
|
|
|
1707
1707
|
),
|
|
1708
1708
|
]
|
|
1709
1709
|
|
|
1710
|
-
|
|
1711
|
-
|
|
1712
|
-
|
|
1713
|
-
|
|
1714
|
-
|
|
1715
|
-
|
|
1716
|
-
|
|
1717
|
-
|
|
1718
|
-
|
|
1719
|
-
|
|
1720
|
-
|
|
1721
|
-
|
|
1722
|
-
|
|
1723
|
-
"
|
|
1724
|
-
"
|
|
1725
|
-
|
|
1726
|
-
|
|
1727
|
-
|
|
1728
|
-
"
|
|
1729
|
-
|
|
1730
|
-
|
|
1731
|
-
|
|
1732
|
-
"
|
|
1733
|
-
|
|
1734
|
-
|
|
1735
|
-
|
|
1736
|
-
"
|
|
1737
|
-
|
|
1738
|
-
|
|
1739
|
-
|
|
1740
|
-
"
|
|
1741
|
-
|
|
1742
|
-
|
|
1743
|
-
|
|
1744
|
-
"
|
|
1745
|
-
|
|
1746
|
-
"description": "Optional MLS or Realtor-association name only; never send credentials, listing data, or member-only content.",
|
|
1747
|
-
},
|
|
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.",
|
|
1748
1746
|
},
|
|
1749
|
-
"required": ["skill_id"],
|
|
1750
1747
|
},
|
|
1751
|
-
|
|
1752
|
-
|
|
1748
|
+
"required": ["skill_id"],
|
|
1749
|
+
},
|
|
1750
|
+
),
|
|
1751
|
+
)
|
|
1753
1752
|
return tools
|
|
1754
1753
|
|
|
1755
1754
|
|
|
@@ -1944,17 +1943,12 @@ async def call_tool(name, arguments):
|
|
|
1944
1943
|
))]
|
|
1945
1944
|
|
|
1946
1945
|
# ── Jurisdiction Sources ─────────────────────────────────────────────
|
|
1947
|
-
elif name == f"{prefix}_jurisdiction_sources"
|
|
1948
|
-
"realtortasksai",
|
|
1949
|
-
"farmertasksai",
|
|
1950
|
-
"teachertasksai",
|
|
1951
|
-
}:
|
|
1946
|
+
elif name == f"{prefix}_jurisdiction_sources":
|
|
1952
1947
|
path = jurisdiction_sources_path(arguments or {})
|
|
1953
1948
|
result = await api_get(path)
|
|
1954
1949
|
if (
|
|
1955
|
-
|
|
1956
|
-
and (
|
|
1957
|
-
and result.get("status") not in {"ready", "provisional"}
|
|
1950
|
+
(arguments or {}).get("state")
|
|
1951
|
+
and result.get("status") not in {"ready", "provisional", "needs_jurisdiction"}
|
|
1958
1952
|
):
|
|
1959
1953
|
try:
|
|
1960
1954
|
result = await api_post(
|