@josephyan/qingflow-app-user-mcp 0.2.0-beta.53 → 0.2.0-beta.54

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
@@ -3,13 +3,13 @@
3
3
  Install:
4
4
 
5
5
  ```bash
6
- npm install @josephyan/qingflow-app-user-mcp@0.2.0-beta.53
6
+ npm install @josephyan/qingflow-app-user-mcp@0.2.0-beta.54
7
7
  ```
8
8
 
9
9
  Run:
10
10
 
11
11
  ```bash
12
- npx -y -p @josephyan/qingflow-app-user-mcp@0.2.0-beta.53 qingflow-app-user-mcp
12
+ npx -y -p @josephyan/qingflow-app-user-mcp@0.2.0-beta.54 qingflow-app-user-mcp
13
13
  ```
14
14
 
15
15
  Environment:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@josephyan/qingflow-app-user-mcp",
3
- "version": "0.2.0-beta.53",
3
+ "version": "0.2.0-beta.54",
4
4
  "description": "Operational end-user MCP for Qingflow records, tasks, comments, and directory workflows.",
5
5
  "license": "MIT",
6
6
  "type": "module",
package/pyproject.toml CHANGED
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "qingflow-mcp"
7
- version = "0.2.0b53"
7
+ version = "0.2.0b54"
8
8
  description = "User-authenticated MCP server for Qingflow"
9
9
  readme = "README.md"
10
10
  license = "MIT"
@@ -5742,7 +5742,7 @@ class RecordTools(ToolBase):
5742
5742
  raw_values: list[JSONValue],
5743
5743
  *,
5744
5744
  resolution_state: LookupResolutionState | None = None,
5745
- location: str,
5745
+ location: str = "field",
5746
5746
  ) -> list[JSONObject]:
5747
5747
  if field.que_type in SINGLE_SELECT_QUE_TYPES:
5748
5748
  return [_option_value(raw_values[0], field)]
@@ -7283,6 +7283,20 @@ class RecordTools(ToolBase):
7283
7283
  )
7284
7284
  return payload
7285
7285
  if not ranked:
7286
+ scope = field.dept_select_scope if isinstance(field.dept_select_scope, dict) else {}
7287
+ has_scope_config = field.dept_select_scope_type is not None or bool(scope)
7288
+ if not has_scope_config:
7289
+ payload = self._lookup_department_detail(context, keyword, purpose="value")
7290
+ self._append_lookup_resolution(
7291
+ resolution_state,
7292
+ field=field,
7293
+ kind="department",
7294
+ input_value=value,
7295
+ resolved_to=payload,
7296
+ method="workspace_exact_lookup",
7297
+ confidence=1.0,
7298
+ )
7299
+ return payload
7286
7300
  raise RecordInputError(
7287
7301
  message=f"department value for field '{field.que_title}' could not be resolved in the current candidate scope",
7288
7302
  error_code="DEPARTMENT_NOT_IN_CANDIDATE_SCOPE",