gridzen-developer-kit 0.5.0__tar.gz → 0.6.1__tar.gz

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.
Files changed (117) hide show
  1. {gridzen_developer_kit-0.5.0/src/gridzen_developer_kit.egg-info → gridzen_developer_kit-0.6.1}/PKG-INFO +46 -12
  2. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/README.es.md +43 -7
  3. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/README.md +45 -11
  4. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/README.zh-CN.md +44 -8
  5. {gridzen_developer_kit-0.5.0/src/gridzen_developer/web → gridzen_developer_kit-0.6.1/clients}/compatibility.json +1 -1
  6. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/pyproject.toml +1 -1
  7. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/skills/gridzen-explain-verification/SKILL.md +3 -0
  8. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/skills/gridzen-integrate-sandbox/SKILL.md +3 -0
  9. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/skills/gridzen-integrate-sandbox/references/api.md +1 -1
  10. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/skills/gridzen-select-verification/SKILL.md +3 -0
  11. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/skills/mexico-pilot-scoper/SKILL.md +3 -0
  12. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/skills/payout-policy-designer/SKILL.md +3 -0
  13. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/skills/provider-rights-readiness/SKILL.md +3 -0
  14. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/src/gridzen_developer/__init__.py +1 -1
  15. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/src/gridzen_developer/cli.py +30 -1
  16. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/src/gridzen_developer/mcp.py +24 -2
  17. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/src/gridzen_developer/product_feedback.py +15 -2
  18. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/src/gridzen_developer/server.py +12 -3
  19. gridzen_developer_kit-0.6.1/src/gridzen_developer/telemetry.py +71 -0
  20. {gridzen_developer_kit-0.5.0/clients → gridzen_developer_kit-0.6.1/src/gridzen_developer/web}/compatibility.json +1 -1
  21. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/src/gridzen_developer/web/locales.js +3 -3
  22. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/src/gridzen_developer/web/privacy.html +1 -1
  23. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1/src/gridzen_developer_kit.egg-info}/PKG-INFO +46 -12
  24. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/src/gridzen_developer_kit.egg-info/SOURCES.txt +3 -0
  25. gridzen_developer_kit-0.6.1/tests/test_activation_start.py +14 -0
  26. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/tests/test_remote.py +1 -1
  27. gridzen_developer_kit-0.6.1/tests/test_telemetry.py +73 -0
  28. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/LICENSE +0 -0
  29. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/MANIFEST.in +0 -0
  30. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/NOTICE.md +0 -0
  31. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/clients/claude-code.json +0 -0
  32. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/clients/claude-desktop.json +0 -0
  33. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/clients/cline.json +0 -0
  34. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/clients/codex.toml +0 -0
  35. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/clients/copilot-cli.json +0 -0
  36. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/clients/cursor.json +0 -0
  37. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/clients/gemini-cli.json +0 -0
  38. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/clients/opencode.json +0 -0
  39. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/clients/roo-code.json +0 -0
  40. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/clients/vscode.json +0 -0
  41. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/docs/harness/README.md +0 -0
  42. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/docs/harness/claude-code.md +0 -0
  43. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/docs/harness/claude-desktop.md +0 -0
  44. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/docs/harness/cline.md +0 -0
  45. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/docs/harness/codex.md +0 -0
  46. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/docs/harness/copilot-cli.md +0 -0
  47. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/docs/harness/cursor.md +0 -0
  48. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/docs/harness/gemini-cli.md +0 -0
  49. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/docs/harness/opencode.md +0 -0
  50. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/docs/harness/roo-code.md +0 -0
  51. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/docs/harness/vscode.md +0 -0
  52. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/scripts/check_integration.py +0 -0
  53. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/setup.cfg +0 -0
  54. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/skills/mexico-pilot-scoper/LICENSE +0 -0
  55. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/skills/mexico-pilot-scoper/README.md +0 -0
  56. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/skills/mexico-pilot-scoper/agent-evals.json +0 -0
  57. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/skills/mexico-pilot-scoper/evaluate.py +0 -0
  58. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/skills/mexico-pilot-scoper/example-input.json +0 -0
  59. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/skills/mexico-pilot-scoper/examples/missing-evidence.json +0 -0
  60. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/skills/mexico-pilot-scoper/examples/normal.json +0 -0
  61. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/skills/mexico-pilot-scoper/examples/out-of-scope.json +0 -0
  62. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/skills/mexico-pilot-scoper/spec.json +0 -0
  63. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/skills/mexico-pilot-scoper/test_evaluate.py +0 -0
  64. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/skills/payout-policy-designer/LICENSE +0 -0
  65. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/skills/payout-policy-designer/README.md +0 -0
  66. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/skills/payout-policy-designer/agent-evals.json +0 -0
  67. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/skills/payout-policy-designer/evaluate.py +0 -0
  68. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/skills/payout-policy-designer/example-input.json +0 -0
  69. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/skills/payout-policy-designer/examples/missing-evidence.json +0 -0
  70. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/skills/payout-policy-designer/examples/normal.json +0 -0
  71. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/skills/payout-policy-designer/examples/out-of-scope.json +0 -0
  72. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/skills/payout-policy-designer/spec.json +0 -0
  73. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/skills/payout-policy-designer/test_evaluate.py +0 -0
  74. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/skills/provider-rights-readiness/LICENSE +0 -0
  75. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/skills/provider-rights-readiness/README.md +0 -0
  76. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/skills/provider-rights-readiness/agent-evals.json +0 -0
  77. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/skills/provider-rights-readiness/evaluate.py +0 -0
  78. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/skills/provider-rights-readiness/example-input.json +0 -0
  79. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/skills/provider-rights-readiness/examples/missing-evidence.json +0 -0
  80. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/skills/provider-rights-readiness/examples/normal.json +0 -0
  81. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/skills/provider-rights-readiness/examples/out-of-scope.json +0 -0
  82. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/skills/provider-rights-readiness/spec.json +0 -0
  83. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/skills/provider-rights-readiness/test_evaluate.py +0 -0
  84. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/src/gridzen_developer/client.py +0 -0
  85. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/src/gridzen_developer/core.py +0 -0
  86. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/src/gridzen_developer/data/LICENSE +0 -0
  87. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/src/gridzen_developer/data/catalog.json +0 -0
  88. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/src/gridzen_developer/remote.py +0 -0
  89. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/src/gridzen_developer/setup.py +0 -0
  90. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/src/gridzen_developer/skills.py +0 -0
  91. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/src/gridzen_developer/usage.py +0 -0
  92. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/src/gridzen_developer/web/client-configs.json +0 -0
  93. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/src/gridzen_developer/web/developer.css +0 -0
  94. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/src/gridzen_developer/web/developer.js +0 -0
  95. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/src/gridzen_developer/web/harnesses.html +0 -0
  96. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/src/gridzen_developer/web/harnesses.js +0 -0
  97. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/src/gridzen_developer/web/icon.png +0 -0
  98. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/src/gridzen_developer/web/icon.svg +0 -0
  99. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/src/gridzen_developer/web/index.html +0 -0
  100. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/src/gridzen_developer/web/language.js +0 -0
  101. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/src/gridzen_developer/web/layout.js +0 -0
  102. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/src/gridzen_developer/web/quickstart.html +0 -0
  103. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/src/gridzen_developer/web/site-shell.json +0 -0
  104. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/src/gridzen_developer/web/support.html +0 -0
  105. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/src/gridzen_developer/web/terms.html +0 -0
  106. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/src/gridzen_developer_kit.egg-info/dependency_links.txt +0 -0
  107. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/src/gridzen_developer_kit.egg-info/entry_points.txt +0 -0
  108. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/src/gridzen_developer_kit.egg-info/requires.txt +0 -0
  109. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/src/gridzen_developer_kit.egg-info/top_level.txt +0 -0
  110. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/tests/test_call_sources.py +0 -0
  111. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/tests/test_developer.py +0 -0
  112. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/tests/test_localization.py +0 -0
  113. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/tests/test_product_feedback.py +0 -0
  114. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/tests/test_setup.py +0 -0
  115. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/tests/test_site_shell.py +0 -0
  116. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/tests/test_usage.py +0 -0
  117. {gridzen_developer_kit-0.5.0 → gridzen_developer_kit-0.6.1}/tests/test_workflow_skills.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: gridzen-developer-kit
3
- Version: 0.5.0
3
+ Version: 0.6.1
4
4
  Summary: Gridzen research catalog, integration planner and explicit verification sandbox
5
5
  Author-email: Gridzen <open@gridzen.ai>
6
6
  License-Expression: MIT
@@ -27,7 +27,13 @@ Requires-Dist: fastapi==0.142.4; extra == "test"
27
27
  Requires-Dist: uvicorn==0.54.0; extra == "test"
28
28
  Dynamic: license-file
29
29
 
30
- # Gridzen Developer Kit 0.5.0
30
+ # Gridzen Developer Kit 0.6.0
31
+
32
+ ## Start immediately without signup
33
+
34
+ Open [GridZen instant trial](https://gridzen.ai/console/start?lang=en) to run synthetic signup-phone and identity-onboarding responses without an account, API key or approval. Success, rejection and unavailable scenarios make no upstream calls and verify no real person. Agents can use the separate [key-free trial MCP](https://gridzen.ai/console/downloads/quickstart_mcp.py), installed with `mcp==2.3.0` and `httpx==0.28.1` in a virtual environment.
35
+
36
+ For persistent test records and supplier sandbox callbacks, connect a verified merchant sandbox account. Production is a separate controlled free pilot; self-service production and payments are not enabled. This documentation update does not change PyPI or the official MCP Registry version.
31
37
 
32
38
  Research for 198 countries/territories, a verification integration planner, five synthetic outcomes, an HTTP SDK, local MCP server and six Skills. **No live provider is enabled. No real person is verified.** The research snapshot is dated 2026-10-07, with source links and file hashes.
33
39
 
@@ -59,7 +65,7 @@ Register a local stdio server in your MCP client. Use the absolute path to the i
59
65
  {"mcpServers":{"gridzen":{"command":"/absolute/path/to/.venv/bin/gridzen-mcp","args":[]}}}
60
66
  ```
61
67
 
62
- Tools: get_coverage, plan_verification, create_sandbox_verification, get_sandbox_verification, explain_result. All operate on local research or synthetic fixtures, with read-only/idempotent annotations. Public research/sandbox MCP endpoint: `https://gridzen.ai/developers/mcp` (Streamable HTTP, no account or API key). It has the same five tools and zero live providers. Remote usage sends the documented arguments to Gridzen; local stdio remains offline. Limits: 120 requests/minute per client address and 600/minute overall, returning HTTP 429 with Retry-After.
68
+ Tools: get_coverage, plan_verification, create_sandbox_verification, get_sandbox_verification, explain_result. All operate on local research or synthetic fixtures, with read-only/idempotent annotations. Public research/sandbox MCP endpoint: `https://gridzen.ai/developers/mcp` (Streamable HTTP, no account or API key). It has the same five tools and zero live providers. Remote usage sends the documented arguments to Gridzen; local stdio is offline by default. Limits: 120 requests/minute per client address and 600/minute overall, returning HTTP 429 with Retry-After.
63
69
 
64
70
  ## Skills
65
71
 
@@ -106,10 +112,10 @@ npx skills add immurray/gridzen-developer-kit
106
112
  Install the tagged Python/MCP release from GitHub (Python 3.11+ and Git):
107
113
 
108
114
  ```sh
109
- python -m pip install "gridzen-developer-kit[mcp] @ git+https://github.com/immurray/gridzen-developer-kit.git@v0.5.0"
115
+ python -m pip install "gridzen-developer-kit[mcp] @ git+https://github.com/immurray/gridzen-developer-kit.git@v0.6.0"
110
116
  ```
111
117
 
112
- PyPI 0.5.0 is published and verified. Install with `python -m pip install
118
+ PyPI 0.6.0 is published and verified. Install with `python -m pip install
113
119
  gridzen-developer-kit`. See [the release tracker](distribution/STATUS.md) for
114
120
  publication and installation evidence.
115
121
 
@@ -132,11 +138,11 @@ Original code and Skills: MIT. Research provenance and third-party rights:
132
138
  Source, release downloads, the official MCP Registry entry and six Skills.sh pages are public. Docker catalog submission is awaiting review. See [the publication ledger](distribution/STATUS.md) for exact status and remaining platform steps.
133
139
 
134
140
 
135
- ## Six bundled Skills (0.5.0)
141
+ ## Six bundled Skills (0.6.0)
136
142
 
137
143
  `python -m pip install gridzen-developer-kit` installs the CLI, stdio MCP dependencies
138
- and all six Skill directories. Version 0.5.0 is published on
139
- [PyPI](https://pypi.org/project/gridzen-developer-kit/0.5.0/); clean installation,
144
+ and all six Skill directories. Version 0.6.0 is published on
145
+ [PyPI](https://pypi.org/project/gridzen-developer-kit/0.6.0/); clean installation,
140
146
  CLI, stdio MCP and all six bundled Skill directories were verified. No extra MCP
141
147
  dependency installation is required.
142
148
 
@@ -157,7 +163,7 @@ workflows, version 1.0.0: `mexico-pilot-scoper`, `payout-policy-designer`, and
157
163
  and agent acceptance prompts. They make no third-party calls and grant no real
158
164
  verification, legal approval or regulatory conclusion.
159
165
 
160
- ## Configure your assistant (v0.5.0)
166
+ ## Configure your assistant (v0.6.0)
161
167
 
162
168
  ```sh
163
169
  python3 -m venv .venv
@@ -174,7 +180,7 @@ Use `--client` for Codex, Claude Code/Desktop, Cursor, VS Code/Copilot, Copilot
174
180
  Hosted calls count successful tool invocations, not customers. Existing totals
175
181
  remain unchanged. The hosted service records UTC day, tool name, one source
176
182
  category and a count; it never persists request arguments or client addresses.
177
- Historical and unlabelled calls remain `unknown`. Local stdio remains offline.
183
+ Historical and unlabelled calls remain `unknown`. Local stdio is offline by default.
178
184
 
179
185
  Explicit acceptance requests to the loopback-published service may set
180
186
  `X-Gridzen-Purpose: internal_test`. Only configured local peers with no forwarded
@@ -187,7 +193,7 @@ and must never contain public client addresses. Source counts use the existing
187
193
  new PyPI version or enable any live provider.
188
194
 
189
195
 
190
- ## Customer tasks and voluntary feedback (0.5.0)
196
+ ## Customer tasks and voluntary feedback (0.6.0)
191
197
 
192
198
  ```sh
193
199
  gridzen plan --country US --event onboarding --task signup_phone
@@ -201,4 +207,32 @@ gridzen feedback --input task-summary.json --share
201
207
 
202
208
  Phone intelligence is not OTP or ownership verification. Identity fixtures are not hosted document/liveness sessions. Payout matching remains a prototype with no real enabled route. Provider intake Skills are for provider operations/BYO, not a universal customer gate.
203
209
 
204
- Remote APIs count fixed task/capability/country/stage/error categories for 90 days, including technical failures. They store no arguments, identity data, credentials, raw chats or per-user tracking. Offline Skills/CLI never upload automatically. Optional feedback requires explicit consent, contains only fixed categories, and is unverified self-reported evidence. A SHA-256 hash of its random receipt ID is retained 30 days for within-day retry deduplication; the ID itself is not stored. Counters are capped at 10,000 requests/day and 500 summaries/day per database; missing history or offline usage is unknown. Requests are not unique customers.
210
+ Remote APIs count fixed task/capability/country/stage/error categories for 90 days, including technical failures. They store no arguments, identity data, credentials, raw chats or per-user tracking. Local feedback is off by default. After explicit opt-in, CLI and stdio MCP automatically upload category-only events. Reading static Skills remains unobservable. Optional feedback requires explicit consent, contains only fixed categories, and is unverified self-reported evidence. A SHA-256 hash of its random receipt ID is retained 30 days for 30-day retry deduplication; the ID itself is not stored. Counters are capped at 10,000 requests/day and 500 summaries/day per database; missing history or offline usage is unknown. Requests are not unique customers.
211
+
212
+ ## Optional automatic local feedback (0.6.0)
213
+
214
+ ```sh
215
+ gridzen telemetry status
216
+ # Run only after reading and agreeing to category-only automatic sharing:
217
+ gridzen telemetry enable --consent
218
+ gridzen plan --country US --event onboarding --task signup_phone
219
+ # Send one queued event per invocation after reconnecting:
220
+ gridzen telemetry flush
221
+ # Disable future uploads and clear the pending queue:
222
+ gridzen telemetry disable
223
+ ```
224
+
225
+ No network calls occur from local CLI/MCP when disabled. Consent is saved per OS user, not silently added to a project. Events contain only documented categories, ISO country, and a random per-event receipt, with no conversation, identity fields, credentials, user or project IDs. Feedback failures do not fail tool execution. The local queue is capped at 1,000 events/30 days; reconnect or `flush` retries one queued event, with a one-second HTTP timeout. Uploads are self-reported usage, not authenticated customers or completed verification. No background daemon is installed. Merely reading a Skill is unobservable; after consent, an Agent can explicitly record a fixed-category task summary.
226
+
227
+ Local queued events expire after 30 days and are removed on the next enqueue/flush. Daily aggregates use server receipt date; delayed uploads are not proof that work occurred on that date.
228
+
229
+ ## Separate owner-approved customer pilot
230
+
231
+ The published 0.6.0 kit and its five public tools remain research/synthetic tools. A separate hosted pilot accepts customer applications for basic signup-phone validity and hosted personal identity onboarding: [apply](https://gridzen.ai/console/pilot?lang=en), [integration guide](https://gridzen.ai/console/pilot-guide?lang=en), [public scope](https://gridzen.ai/guides/customer-pilot/).
232
+
233
+ Submitting an application never activates production. The owner must approve supplier rights, downstream agreements, capabilities, request limits and expiry; only confirmed free allowances are used. The production pilot has its own downloaded MCP client and merchant API key. Do not send documents, faces or provider keys to the public research MCP. Basic phone validity does not provide OTP or ownership.
234
+
235
+ Real basic phone checks and retrieval of a historical Approved operator identity session were validated through the live customer API/MCP. New-session human completion and its final real webhook remain unvalidated. Operator tests, downloads and self-reported interest are not customer demand. This documentation update does not change the PyPI package or Registry version.
236
+
237
+
238
+ Use `gridzen start --task identity_onboarding --lang en` to find the anonymous trial, free sandbox account and integration assistant. `gridzen start` makes no network calls. Account progress measurement is a separate, optional console consent; completing a sandbox does not verify a real person. Real payments remain disabled.
@@ -1,4 +1,10 @@
1
- # Kit de desarrollo Gridzen 0.1.1
1
+ # Kit de desarrollo Gridzen 0.6.0
2
+
3
+ ## Probar inmediatamente sin registro
4
+
5
+ Abra la [prueba inmediata de GridZen](https://gridzen.ai/console/start?lang=es) para simular comprobaciones telefónicas e incorporación de identidad sin cuenta, clave ni aprobación. Los escenarios de éxito, rechazo e indisponibilidad no llaman a proveedores reales ni verifican personas. Los agentes pueden usar el [MCP de prueba sin clave](https://gridzen.ai/console/downloads/quickstart_mcp.py) con `mcp==2.3.0` y `httpx==0.28.1` en un entorno virtual.
6
+
7
+ Conecte una cuenta sandbox con correo verificado para guardar registros y recibir callbacks. La producción sigue siendo un piloto gratuito controlado; autoservicio de producción y pagos no están habilitados. Esta actualización documental no cambia PyPI ni la versión del registro oficial MCP.
2
8
 
3
9
  Investigación sobre 198 países y territorios, planificación de integraciones, cinco resultados simulados, CLI/SDK HTTP de Python, MCP local y seis Skills. No hay canales de proveedores reales activos. Ningún resultado simulado verifica a una persona real.
4
10
 
@@ -29,7 +35,7 @@ Añade un servidor stdio local a un cliente compatible y sustituye command por l
29
35
 
30
36
  Prueba: «Planifica una verificación de pagos para Indonesia y simula una espera agotada del proveedor». Las cinco herramientas consultan cobertura, planifican, generan simulaciones, recuperan pruebas y explican resultados. La configuración depende del cliente; no hay endpoint MCP remoto de producción.
31
37
 
32
- Copia cada carpeta de `skills/` al directorio de habilidades del agente, conservando `SKILL.md` y sus referencias. Los tres Skills permiten elegir una verificación, integrar pruebas y explicar resultados. Los identificadores permanecen en inglés; el agente puede explicar los resultados en español.
38
+ Copia cada carpeta de `skills/` al directorio de habilidades del agente, conservando `SKILL.md` y sus referencias. Los seis Skills cubren selección, integración de pruebas, explicación de resultados, preparación de permisos, políticas de pagos y planificación de pilotos en México. Los identificadores permanecen en inglés; el agente puede explicar los resultados en español.
33
39
 
34
40
  ## Interpretación
35
41
 
@@ -60,11 +66,11 @@ Código original bajo MIT; consulte NOTICE.md para los derechos de terceros.
60
66
  El código, las descargas, la entrada oficial de MCP Registry y tres páginas de Skills.sh están publicados. La propuesta del catálogo de Docker está pendiente de revisión. Consulta [el registro de publicación](distribution/STATUS.md).
61
67
 
62
68
 
63
- ## Six bundled Skills (0.5.0)
69
+ ## Six bundled Skills (0.6.0)
64
70
 
65
71
  `python -m pip install gridzen-developer-kit` installs the CLI, stdio MCP dependencies
66
- and all six Skill directories. Version 0.5.0 is published on
67
- [PyPI](https://pypi.org/project/gridzen-developer-kit/0.5.0/); clean installation,
72
+ and all six Skill directories. Version 0.6.0 is published on
73
+ [PyPI](https://pypi.org/project/gridzen-developer-kit/0.6.0/); clean installation,
68
74
  CLI, stdio MCP and all six bundled Skill directories were verified. No extra MCP
69
75
  dependency installation is required.
70
76
 
@@ -100,7 +106,7 @@ Usa Python 3.11+ en un entorno virtual. Primero revisa el resultado y después a
100
106
  [Instructions / 使用说明](https://gridzen.ai/developers/harnesses.html) · [Compatibility / 测试记录](clients/compatibility.json)
101
107
 
102
108
 
103
- ## Customer tasks and voluntary feedback (0.5.0)
109
+ ## Customer tasks and voluntary feedback (0.6.0)
104
110
 
105
111
  ```sh
106
112
  gridzen plan --country US --event onboarding --task signup_phone
@@ -114,4 +120,34 @@ gridzen feedback --input task-summary.json --share
114
120
 
115
121
  Phone intelligence is not OTP or ownership verification. Identity fixtures are not hosted document/liveness sessions. Payout matching remains a prototype with no real enabled route. Provider intake Skills are for provider operations/BYO, not a universal customer gate.
116
122
 
117
- Remote APIs count fixed task/capability/country/stage/error categories for 90 days, including technical failures. They store no arguments, identity data, credentials, raw chats or per-user tracking. Offline Skills/CLI never upload automatically. Optional feedback requires explicit consent, contains only fixed categories, and is unverified self-reported evidence. A SHA-256 hash of its random receipt ID is retained 30 days for within-day retry deduplication; the ID itself is not stored. Counters are capped at 10,000 requests/day and 500 summaries/day per database; missing history or offline usage is unknown. Requests are not unique customers.
123
+ Remote APIs count fixed task/capability/country/stage/error categories for 90 days, including technical failures. They store no arguments, identity data, credentials, raw chats or per-user tracking. Local feedback is off by default. After explicit opt-in, CLI and stdio MCP automatically upload category-only events. Reading static Skills remains unobservable. Optional feedback requires explicit consent, contains only fixed categories, and is unverified self-reported evidence. A SHA-256 hash of its random receipt ID is retained 30 days for 30-day retry deduplication; the ID itself is not stored. Counters are capped at 10,000 requests/day and 500 summaries/day per database; missing history or offline usage is unknown. Requests are not unique customers.
124
+
125
+ ## Optional automatic local feedback (0.6.0)
126
+
127
+ ```sh
128
+ gridzen telemetry status
129
+ # Run only after reading and agreeing to category-only automatic sharing:
130
+ gridzen telemetry enable --consent
131
+ gridzen plan --country US --event onboarding --task signup_phone
132
+ # Send one queued event per invocation after reconnecting:
133
+ gridzen telemetry flush
134
+ # Disable future uploads and clear the pending queue:
135
+ gridzen telemetry disable
136
+ ```
137
+
138
+ No network calls occur from local CLI/MCP when disabled. Consent is saved per OS user, not silently added to a project. Events contain only documented categories, ISO country, and a random per-event receipt, with no conversation, identity fields, credentials, user or project IDs. Feedback failures do not fail tool execution. The local queue is capped at 1,000 events/30 days; reconnect or `flush` retries one queued event, with a one-second HTTP timeout. Uploads are self-reported usage, not authenticated customers or completed verification. No background daemon is installed. Merely reading a Skill is unobservable; after consent, an Agent can explicitly record a fixed-category task summary.
139
+
140
+ La telemetría está desactivada por defecto. Tras consentimiento explícito, CLI y stdio envían categorías automáticamente. `gridzen telemetry disable` desactiva y borra la cola. Sin conexión: máximo 1000 eventos durante 30 días. Cada llamada o flush reintenta un evento; no hay servicio en segundo plano. No se envían conversaciones, identidad, credenciales ni IDs de usuarios/proyectos. Leer un Skill no se observa; un Agent puede registrar un resumen tras consentimiento previo. Son datos autodeclarados, no clientes autenticados.
141
+
142
+ Local queued events expire after 30 days and are removed on the next enqueue/flush. Daily aggregates use server receipt date; delayed uploads are not proof that work occurred on that date.
143
+
144
+ ## Piloto independiente con aprobación del responsable
145
+
146
+ El kit publicado 0.6.0 y sus cinco herramientas públicas siguen siendo de investigación y simulación. Puede solicitar un piloto independiente de validez básica del teléfono e incorporación de identidad: [solicitud](https://gridzen.ai/console/pilot?lang=es), [guía](https://gridzen.ai/console/pilot-guide?lang=es), [alcance](https://gridzen.ai/es/guides/customer-pilot/).
147
+
148
+ Solicitar no activa producción. El responsable confirma derechos del proveedor, acuerdos, capacidades, límites y vencimiento; solo se usan cupos gratuitos confirmados. El piloto utiliza un cliente MCP separado y una clave comercial. No envíe documentos, caras ni claves del proveedor al MCP público. La validez básica no proporciona OTP ni prueba de titularidad.
149
+
150
+ Se validaron una consulta real de teléfono y la lectura de una sesión histórica Approved del operador mediante API/MCP. Falta validar la finalización humana de una sesión nueva y su webhook final real. Pruebas internas, descargas e interés declarado no demuestran demanda. Esta actualización documental no cambia versiones de PyPI ni Registry.
151
+
152
+
153
+ Use `gridzen start --task identity_onboarding --lang es` para encontrar la prueba anónima, la cuenta gratuita de sandbox y el asistente. El comando no hace llamadas de red. La medición de progreso requiere consentimiento opcional en la consola. Completar el sandbox no verifica a una persona real; los cobros reales siguen desactivados.
@@ -1,4 +1,10 @@
1
- # Gridzen Developer Kit 0.5.0
1
+ # Gridzen Developer Kit 0.6.0
2
+
3
+ ## Start immediately without signup
4
+
5
+ Open [GridZen instant trial](https://gridzen.ai/console/start?lang=en) to run synthetic signup-phone and identity-onboarding responses without an account, API key or approval. Success, rejection and unavailable scenarios make no upstream calls and verify no real person. Agents can use the separate [key-free trial MCP](https://gridzen.ai/console/downloads/quickstart_mcp.py), installed with `mcp==2.3.0` and `httpx==0.28.1` in a virtual environment.
6
+
7
+ For persistent test records and supplier sandbox callbacks, connect a verified merchant sandbox account. Production is a separate controlled free pilot; self-service production and payments are not enabled. This documentation update does not change PyPI or the official MCP Registry version.
2
8
 
3
9
  Research for 198 countries/territories, a verification integration planner, five synthetic outcomes, an HTTP SDK, local MCP server and six Skills. **No live provider is enabled. No real person is verified.** The research snapshot is dated 2026-10-07, with source links and file hashes.
4
10
 
@@ -30,7 +36,7 @@ Register a local stdio server in your MCP client. Use the absolute path to the i
30
36
  {"mcpServers":{"gridzen":{"command":"/absolute/path/to/.venv/bin/gridzen-mcp","args":[]}}}
31
37
  ```
32
38
 
33
- Tools: get_coverage, plan_verification, create_sandbox_verification, get_sandbox_verification, explain_result. All operate on local research or synthetic fixtures, with read-only/idempotent annotations. Public research/sandbox MCP endpoint: `https://gridzen.ai/developers/mcp` (Streamable HTTP, no account or API key). It has the same five tools and zero live providers. Remote usage sends the documented arguments to Gridzen; local stdio remains offline. Limits: 120 requests/minute per client address and 600/minute overall, returning HTTP 429 with Retry-After.
39
+ Tools: get_coverage, plan_verification, create_sandbox_verification, get_sandbox_verification, explain_result. All operate on local research or synthetic fixtures, with read-only/idempotent annotations. Public research/sandbox MCP endpoint: `https://gridzen.ai/developers/mcp` (Streamable HTTP, no account or API key). It has the same five tools and zero live providers. Remote usage sends the documented arguments to Gridzen; local stdio is offline by default. Limits: 120 requests/minute per client address and 600/minute overall, returning HTTP 429 with Retry-After.
34
40
 
35
41
  ## Skills
36
42
 
@@ -77,10 +83,10 @@ npx skills add immurray/gridzen-developer-kit
77
83
  Install the tagged Python/MCP release from GitHub (Python 3.11+ and Git):
78
84
 
79
85
  ```sh
80
- python -m pip install "gridzen-developer-kit[mcp] @ git+https://github.com/immurray/gridzen-developer-kit.git@v0.5.0"
86
+ python -m pip install "gridzen-developer-kit[mcp] @ git+https://github.com/immurray/gridzen-developer-kit.git@v0.6.0"
81
87
  ```
82
88
 
83
- PyPI 0.5.0 is published and verified. Install with `python -m pip install
89
+ PyPI 0.6.0 is published and verified. Install with `python -m pip install
84
90
  gridzen-developer-kit`. See [the release tracker](distribution/STATUS.md) for
85
91
  publication and installation evidence.
86
92
 
@@ -103,11 +109,11 @@ Original code and Skills: MIT. Research provenance and third-party rights:
103
109
  Source, release downloads, the official MCP Registry entry and six Skills.sh pages are public. Docker catalog submission is awaiting review. See [the publication ledger](distribution/STATUS.md) for exact status and remaining platform steps.
104
110
 
105
111
 
106
- ## Six bundled Skills (0.5.0)
112
+ ## Six bundled Skills (0.6.0)
107
113
 
108
114
  `python -m pip install gridzen-developer-kit` installs the CLI, stdio MCP dependencies
109
- and all six Skill directories. Version 0.5.0 is published on
110
- [PyPI](https://pypi.org/project/gridzen-developer-kit/0.5.0/); clean installation,
115
+ and all six Skill directories. Version 0.6.0 is published on
116
+ [PyPI](https://pypi.org/project/gridzen-developer-kit/0.6.0/); clean installation,
111
117
  CLI, stdio MCP and all six bundled Skill directories were verified. No extra MCP
112
118
  dependency installation is required.
113
119
 
@@ -128,7 +134,7 @@ workflows, version 1.0.0: `mexico-pilot-scoper`, `payout-policy-designer`, and
128
134
  and agent acceptance prompts. They make no third-party calls and grant no real
129
135
  verification, legal approval or regulatory conclusion.
130
136
 
131
- ## Configure your assistant (v0.5.0)
137
+ ## Configure your assistant (v0.6.0)
132
138
 
133
139
  ```sh
134
140
  python3 -m venv .venv
@@ -145,7 +151,7 @@ Use `--client` for Codex, Claude Code/Desktop, Cursor, VS Code/Copilot, Copilot
145
151
  Hosted calls count successful tool invocations, not customers. Existing totals
146
152
  remain unchanged. The hosted service records UTC day, tool name, one source
147
153
  category and a count; it never persists request arguments or client addresses.
148
- Historical and unlabelled calls remain `unknown`. Local stdio remains offline.
154
+ Historical and unlabelled calls remain `unknown`. Local stdio is offline by default.
149
155
 
150
156
  Explicit acceptance requests to the loopback-published service may set
151
157
  `X-Gridzen-Purpose: internal_test`. Only configured local peers with no forwarded
@@ -158,7 +164,7 @@ and must never contain public client addresses. Source counts use the existing
158
164
  new PyPI version or enable any live provider.
159
165
 
160
166
 
161
- ## Customer tasks and voluntary feedback (0.5.0)
167
+ ## Customer tasks and voluntary feedback (0.6.0)
162
168
 
163
169
  ```sh
164
170
  gridzen plan --country US --event onboarding --task signup_phone
@@ -172,4 +178,32 @@ gridzen feedback --input task-summary.json --share
172
178
 
173
179
  Phone intelligence is not OTP or ownership verification. Identity fixtures are not hosted document/liveness sessions. Payout matching remains a prototype with no real enabled route. Provider intake Skills are for provider operations/BYO, not a universal customer gate.
174
180
 
175
- Remote APIs count fixed task/capability/country/stage/error categories for 90 days, including technical failures. They store no arguments, identity data, credentials, raw chats or per-user tracking. Offline Skills/CLI never upload automatically. Optional feedback requires explicit consent, contains only fixed categories, and is unverified self-reported evidence. A SHA-256 hash of its random receipt ID is retained 30 days for within-day retry deduplication; the ID itself is not stored. Counters are capped at 10,000 requests/day and 500 summaries/day per database; missing history or offline usage is unknown. Requests are not unique customers.
181
+ Remote APIs count fixed task/capability/country/stage/error categories for 90 days, including technical failures. They store no arguments, identity data, credentials, raw chats or per-user tracking. Local feedback is off by default. After explicit opt-in, CLI and stdio MCP automatically upload category-only events. Reading static Skills remains unobservable. Optional feedback requires explicit consent, contains only fixed categories, and is unverified self-reported evidence. A SHA-256 hash of its random receipt ID is retained 30 days for 30-day retry deduplication; the ID itself is not stored. Counters are capped at 10,000 requests/day and 500 summaries/day per database; missing history or offline usage is unknown. Requests are not unique customers.
182
+
183
+ ## Optional automatic local feedback (0.6.0)
184
+
185
+ ```sh
186
+ gridzen telemetry status
187
+ # Run only after reading and agreeing to category-only automatic sharing:
188
+ gridzen telemetry enable --consent
189
+ gridzen plan --country US --event onboarding --task signup_phone
190
+ # Send one queued event per invocation after reconnecting:
191
+ gridzen telemetry flush
192
+ # Disable future uploads and clear the pending queue:
193
+ gridzen telemetry disable
194
+ ```
195
+
196
+ No network calls occur from local CLI/MCP when disabled. Consent is saved per OS user, not silently added to a project. Events contain only documented categories, ISO country, and a random per-event receipt, with no conversation, identity fields, credentials, user or project IDs. Feedback failures do not fail tool execution. The local queue is capped at 1,000 events/30 days; reconnect or `flush` retries one queued event, with a one-second HTTP timeout. Uploads are self-reported usage, not authenticated customers or completed verification. No background daemon is installed. Merely reading a Skill is unobservable; after consent, an Agent can explicitly record a fixed-category task summary.
197
+
198
+ Local queued events expire after 30 days and are removed on the next enqueue/flush. Daily aggregates use server receipt date; delayed uploads are not proof that work occurred on that date.
199
+
200
+ ## Separate owner-approved customer pilot
201
+
202
+ The published 0.6.0 kit and its five public tools remain research/synthetic tools. A separate hosted pilot accepts customer applications for basic signup-phone validity and hosted personal identity onboarding: [apply](https://gridzen.ai/console/pilot?lang=en), [integration guide](https://gridzen.ai/console/pilot-guide?lang=en), [public scope](https://gridzen.ai/guides/customer-pilot/).
203
+
204
+ Submitting an application never activates production. The owner must approve supplier rights, downstream agreements, capabilities, request limits and expiry; only confirmed free allowances are used. The production pilot has its own downloaded MCP client and merchant API key. Do not send documents, faces or provider keys to the public research MCP. Basic phone validity does not provide OTP or ownership.
205
+
206
+ Real basic phone checks and retrieval of a historical Approved operator identity session were validated through the live customer API/MCP. New-session human completion and its final real webhook remain unvalidated. Operator tests, downloads and self-reported interest are not customer demand. This documentation update does not change the PyPI package or Registry version.
207
+
208
+
209
+ Use `gridzen start --task identity_onboarding --lang en` to find the anonymous trial, free sandbox account and integration assistant. `gridzen start` makes no network calls. Account progress measurement is a separate, optional console consent; completing a sandbox does not verify a real person. Real payments remain disabled.
@@ -1,6 +1,12 @@
1
- # Gridzen 开发者工具包 0.1.1
1
+ # Gridzen 开发者工具包 0.6.0
2
2
 
3
- 工具包提供 198 个国家/地区的核验研究、接入方案、五种模拟结果、Python CLI/HTTP SDK、本地 MCP 和三个 Skills。当前没有启用真实供应商通道,模拟结果不代表真实人员通过核验。
3
+ ## 无需注册,立即试用
4
+
5
+ 打开[立即试用](https://gridzen.ai/console/start?lang=zh),无需账号、密钥或审批即可运行注册号码与身份入驻的模拟响应。可测试成功、未通过和暂不可用;不调用真实上游,不核验真人。Agent 可下载独立的[免密钥试用 MCP](https://gridzen.ai/console/downloads/quickstart_mcp.py),在虚拟环境安装 `mcp==2.3.0`、`httpx==0.28.1` 后启动。
6
+
7
+ 需要保存测试记录、接收供应商沙盒回传时,再连接已验证邮箱的商户沙盒账号。真实核验仍为独立受控免费试点;自助生产和收费尚未开放。本次只更新接入说明,不更改 PyPI 或官方 MCP Registry 版本。
8
+
9
+ 工具包提供 198 个国家/地区的核验研究、接入方案、五种模拟结果、Python CLI/HTTP SDK、本地 MCP 和六个 Skills。当前没有启用真实供应商通道,模拟结果不代表真实人员通过核验。
4
10
 
5
11
  在线试用与中文指南:https://gridzen.ai/developers/ 。页面右上角可切换中文、英文和西班牙文,并记住选择。研究快照日期为 2026-10-07,来源和原始接入限制保持原文。
6
12
 
@@ -29,7 +35,7 @@ Windows 下使用 `.venv\Scripts\activate` 激活虚拟环境。CLI 和本地 MC
29
35
 
30
36
  可输入:“为印度尼西亚制定付款核验接入方案,然后测试供应商超时。”五个工具分别查询覆盖、规划、生成模拟结果、读取结果和解释原因。客户端配置格式可能不同;当前没有远程生产 MCP 地址。
31
37
 
32
- 将 `skills/` 中各个文件夹复制到 Agent 支持的技能目录,保留 `SKILL.md` 和引用文件。三个 Skill 分别用于选择核验方案、接入沙盒、解释结果。代码标识和技能名称保持英文,Agent 可以用中文讲解。
38
+ 将 `skills/` 中各个文件夹复制到 Agent 支持的技能目录,保留 `SKILL.md` 和引用文件。六个 Skill 覆盖方案选择、沙盒接入、结果解释、供应商权限准备、提现政策和墨西哥试点规划。代码标识和技能名称保持英文,Agent 可以用中文讲解。
33
39
 
34
40
  ## 理解测试结果
35
41
 
@@ -59,11 +65,11 @@ Skills 安装:`npx skills add immurray/gridzen-developer-kit`。
59
65
  源码、版本下载、官方 MCP Registry 和三个 Skills.sh 技能页已公开;Docker 目录投稿待审核。各渠道真实状态及剩余步骤见[发布台账](distribution/STATUS.md)。
60
66
 
61
67
 
62
- ## Six bundled Skills (0.5.0)
68
+ ## Six bundled Skills (0.6.0)
63
69
 
64
70
  `python -m pip install gridzen-developer-kit` installs the CLI, stdio MCP dependencies
65
- and all six Skill directories. Version 0.5.0 is published on
66
- [PyPI](https://pypi.org/project/gridzen-developer-kit/0.5.0/); clean installation,
71
+ and all six Skill directories. Version 0.6.0 is published on
72
+ [PyPI](https://pypi.org/project/gridzen-developer-kit/0.6.0/); clean installation,
67
73
  CLI, stdio MCP and all six bundled Skill directories were verified. No extra MCP
68
74
  dependency installation is required.
69
75
 
@@ -99,7 +105,7 @@ gridzen setup --client all --project . --apply
99
105
  [Instructions / 使用说明](https://gridzen.ai/developers/harnesses.html) · [Compatibility / 测试记录](clients/compatibility.json)
100
106
 
101
107
 
102
- ## Customer tasks and voluntary feedback (0.5.0)
108
+ ## Customer tasks and voluntary feedback (0.6.0)
103
109
 
104
110
  ```sh
105
111
  gridzen plan --country US --event onboarding --task signup_phone
@@ -113,4 +119,34 @@ gridzen feedback --input task-summary.json --share
113
119
 
114
120
  Phone intelligence is not OTP or ownership verification. Identity fixtures are not hosted document/liveness sessions. Payout matching remains a prototype with no real enabled route. Provider intake Skills are for provider operations/BYO, not a universal customer gate.
115
121
 
116
- Remote APIs count fixed task/capability/country/stage/error categories for 90 days, including technical failures. They store no arguments, identity data, credentials, raw chats or per-user tracking. Offline Skills/CLI never upload automatically. Optional feedback requires explicit consent, contains only fixed categories, and is unverified self-reported evidence. A SHA-256 hash of its random receipt ID is retained 30 days for within-day retry deduplication; the ID itself is not stored. Counters are capped at 10,000 requests/day and 500 summaries/day per database; missing history or offline usage is unknown. Requests are not unique customers.
122
+ Remote APIs count fixed task/capability/country/stage/error categories for 90 days, including technical failures. They store no arguments, identity data, credentials, raw chats or per-user tracking. Local feedback is off by default. After explicit opt-in, CLI and stdio MCP automatically upload category-only events. Reading static Skills remains unobservable. Optional feedback requires explicit consent, contains only fixed categories, and is unverified self-reported evidence. A SHA-256 hash of its random receipt ID is retained 30 days for 30-day retry deduplication; the ID itself is not stored. Counters are capped at 10,000 requests/day and 500 summaries/day per database; missing history or offline usage is unknown. Requests are not unique customers.
123
+
124
+ ## 首次同意后的本地自动反馈(0.6.0)
125
+
126
+ ```sh
127
+ gridzen telemetry status
128
+ # Run only after reading and agreeing to category-only automatic sharing:
129
+ gridzen telemetry enable --consent
130
+ gridzen plan --country US --event onboarding --task signup_phone
131
+ # Send one queued event per invocation after reconnecting:
132
+ gridzen telemetry flush
133
+ # Disable future uploads and clear the pending queue:
134
+ gridzen telemetry disable
135
+ ```
136
+
137
+ No network calls occur from local CLI/MCP when disabled. Consent is saved per OS user, not silently added to a project. Events contain only documented categories, ISO country, and a random per-event receipt, with no conversation, identity fields, credentials, user or project IDs. Feedback failures do not fail tool execution. The local queue is capped at 1,000 events/30 days; reconnect or `flush` retries one queued event, with a one-second HTTP timeout. Uploads are self-reported usage, not authenticated customers or completed verification. No background daemon is installed. Merely reading a Skill is unobservable; after consent, an Agent can explicitly record a fixed-category task summary.
138
+
139
+ 本地反馈默认关闭。用户先阅读说明并同意,再运行 `gridzen telemetry enable --consent`;此后 CLI 和本地 MCP 自动反馈分类事件。`gridzen telemetry disable` 立即关闭并清空待发送队列。断网最多保留 1000 条、30 天;恢复后每次调用或 flush 发送一条,无后台守护进程。只发送固定分类、国家和随机事件回执,不发送对话、身份资料、凭证或用户/项目标识。按服务器收到的日期统计,延迟上传不是该日实际发生的全部调用。仅阅读 Skill 无法自动观察,Agent 可在用户已经同意时主动 record 分类小结。它们仍是自报线索,不代表认证客户或真实核验完成。
140
+
141
+ Local queued events expire after 30 days and are removed on the next enqueue/flush. Daily aggregates use server receipt date; delayed uploads are not proof that work occurred on that date.
142
+
143
+ ## 独立的客户生产试点
144
+
145
+ 已发行的 0.6.0 工具包与公开五个工具仍提供研究和模拟,不自动启用真人核验。客户可以申请独立试点:[申请入口](https://gridzen.ai/console/pilot?lang=zh)、[接入指南](https://gridzen.ai/console/pilot-guide?lang=zh)、[公开范围](https://gridzen.ai/zh/guides/customer-pilot/)。
146
+
147
+ 申请不会自动开通。负责人核对供应商权限、下游协议、能力、次数和有效期后批准,仅用确认的免费额度。生产试点使用独立下载的 MCP 客户端和商户 Key;不向研究 MCP 提交证件、人脸或供应商密钥。号码基础有效性不提供 OTP 或号码归属证明。
148
+
149
+ 已真实验收基础号码查询和历史 Approved 本人身份结果经新版 API/MCP 读取;新会话真人完成及最终真实回调尚未验收。自测、下载和费用意向不等于客户需求。这次只更新文档,不改变 PyPI 或 Registry 版本。
150
+
151
+
152
+ 运行 `gridzen start --task identity_onboarding --lang zh` 查看匿名试用、免费沙盒账号及接入助手。该命令不联网。账号进度统计需在 Console 单独明确同意;完成沙盒不代表真人核验,真实收费仍关闭。
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.5.0",
2
+ "version": "0.6.1",
3
3
  "checked_at": "2026-10-09",
4
4
  "tools": 5,
5
5
  "skills": 6,
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "gridzen-developer-kit"
7
- version = "0.5.0"
7
+ version = "0.6.1"
8
8
  readme = "README.md"
9
9
  license = "MIT"
10
10
  license-files = ["LICENSE", "NOTICE.md"]
@@ -22,3 +22,6 @@ Separate network/auth/schema/rate-limit errors from returned synthetic fixture o
22
22
  ## Optional task feedback
23
23
 
24
24
  Offline use is not tracked. Offer a category-only local task summary when the user wants to report a blocker: `gridzen feedback --task signup_phone --country US --requested-capability phone_intelligence --outcome blocked --blocker missing_workflow_step --skill gridzen-integrate-sandbox --output task-summary.json`. Choose the actual fixed categories; do not fabricate demand. Inspect the file with the user. Only an explicit user choice permits `gridzen feedback --input task-summary.json --share`; otherwise stop at the local file. Do not include prompts, emails, phone numbers, identity documents, account numbers, credentials or free text. Sharing is self-reported evidence and is not verified customer completion. No hidden upload, background call or new MCP tool is required.
25
+
26
+
27
+ Local feedback in kit 0.6.0 is off by default. If the CLI is installed, `gridzen telemetry status` shows consent. Never enable it on the user's behalf without explicit agreement. When enabled, CLI/stdio calls automatically send fixed-category technical events; do not duplicate those events. For a Skill-only workflow, record one task summary after actual work with `gridzen telemetry record --skill gridzen-explain-verification --task <documented-task> --outcome <documented-outcome> --blocker <documented-reason>`, only if consent is already enabled. Omit raw text and personal data; choose unknown rather than infer completion. Do not install a dependency just to report telemetry. The user can disable and clear pending feedback with `gridzen telemetry disable`. Reading these instructions alone is not tracked.
@@ -21,3 +21,6 @@ For signup phone checks use `phone_intelligence`; number type is not ownership o
21
21
  ## Optional task feedback
22
22
 
23
23
  Offline use is not tracked. Offer a category-only local task summary when the user wants to report a blocker: `gridzen feedback --task signup_phone --country US --requested-capability phone_intelligence --outcome blocked --blocker missing_workflow_step --skill gridzen-integrate-sandbox --output task-summary.json`. Choose the actual fixed categories; do not fabricate demand. Inspect the file with the user. Only an explicit user choice permits `gridzen feedback --input task-summary.json --share`; otherwise stop at the local file. Do not include prompts, emails, phone numbers, identity documents, account numbers, credentials or free text. Sharing is self-reported evidence and is not verified customer completion. No hidden upload, background call or new MCP tool is required.
24
+
25
+
26
+ Local feedback in kit 0.6.0 is off by default. If the CLI is installed, `gridzen telemetry status` shows consent. Never enable it on the user's behalf without explicit agreement. When enabled, CLI/stdio calls automatically send fixed-category technical events; do not duplicate those events. For a Skill-only workflow, record one task summary after actual work with `gridzen telemetry record --skill gridzen-integrate-sandbox --task <documented-task> --outcome <documented-outcome> --blocker <documented-reason>`, only if consent is already enabled. Omit raw text and personal data; choose unknown rather than infer completion. Do not install a dependency just to report telemetry. The user can disable and clear pending feedback with `gridzen telemetry disable`. Reading these instructions alone is not tracked.
@@ -23,4 +23,4 @@ assert result['status'] == 'inconclusive'
23
23
  Unexpected fields are rejected (422); unknown country/capability/fixture is rejected (400). Network errors and HTTP failures are integration failures, not verification outcomes. Do not retry indefinitely. Local core and local MCP work offline after installation; Python HTTP SDK sends only documented fixture parameters to Gridzen.
24
24
 
25
25
 
26
- Task-specific planning (kit 0.5.0): `plan_verification(country="US", event="onboarding", task="signup_phone", stage="prototype")`. Identity task: `identity_onboarding`. Task and event must agree. Fixtures accept `phone_intelligence` and `identity_verification` in addition to existing research capability names. All fixture outcomes remain simulated and verified=false. Production planning always reports NO_LIVE_ROUTE_ENABLED. No extra MCP tool is added.
26
+ Task-specific planning (kit 0.6.0): `plan_verification(country="US", event="onboarding", task="signup_phone", stage="prototype")`. Identity task: `identity_onboarding`. Task and event must agree. Fixtures accept `phone_intelligence` and `identity_verification` in addition to existing research capability names. All fixture outcomes remain simulated and verified=false. Production planning always reports NO_LIVE_ROUTE_ENABLED. No extra MCP tool is added.
@@ -19,3 +19,6 @@ Select the proof for the customer task before choosing a provider. Use `plan_ver
19
19
  ## Optional task feedback
20
20
 
21
21
  Offline use is not tracked. Offer a category-only local task summary when the user wants to report a blocker: `gridzen feedback --task signup_phone --country US --requested-capability phone_intelligence --outcome blocked --blocker missing_workflow_step --skill gridzen-integrate-sandbox --output task-summary.json`. Choose the actual fixed categories; do not fabricate demand. Inspect the file with the user. Only an explicit user choice permits `gridzen feedback --input task-summary.json --share`; otherwise stop at the local file. Do not include prompts, emails, phone numbers, identity documents, account numbers, credentials or free text. Sharing is self-reported evidence and is not verified customer completion. No hidden upload, background call or new MCP tool is required.
22
+
23
+
24
+ Local feedback in kit 0.6.0 is off by default. If the CLI is installed, `gridzen telemetry status` shows consent. Never enable it on the user's behalf without explicit agreement. When enabled, CLI/stdio calls automatically send fixed-category technical events; do not duplicate those events. For a Skill-only workflow, record one task summary after actual work with `gridzen telemetry record --skill gridzen-select-verification --task <documented-task> --outcome <documented-outcome> --blocker <documented-reason>`, only if consent is already enabled. Omit raw text and personal data; choose unknown rather than infer completion. Do not install a dependency just to report telemetry. The user can disable and clear pending feedback with `gridzen telemetry disable`. Reading these instructions alone is not tracked.
@@ -22,3 +22,6 @@ Mexico payout scope remains a bounded draft. No real bank matching route is enab
22
22
  ## Optional task feedback
23
23
 
24
24
  Offline use is not tracked. Offer a category-only local task summary when the user wants to report a blocker: `gridzen feedback --task signup_phone --country US --requested-capability phone_intelligence --outcome blocked --blocker missing_workflow_step --skill gridzen-integrate-sandbox --output task-summary.json`. Choose the actual fixed categories; do not fabricate demand. Inspect the file with the user. Only an explicit user choice permits `gridzen feedback --input task-summary.json --share`; otherwise stop at the local file. Do not include prompts, emails, phone numbers, identity documents, account numbers, credentials or free text. Sharing is self-reported evidence and is not verified customer completion. No hidden upload, background call or new MCP tool is required.
25
+
26
+
27
+ Local feedback in kit 0.6.0 is off by default. If the CLI is installed, `gridzen telemetry status` shows consent. Never enable it on the user's behalf without explicit agreement. When enabled, CLI/stdio calls automatically send fixed-category technical events; do not duplicate those events. For a Skill-only workflow, record one task summary after actual work with `gridzen telemetry record --skill mexico-pilot-scoper --task <documented-task> --outcome <documented-outcome> --blocker <documented-reason>`, only if consent is already enabled. Omit raw text and personal data; choose unknown rather than infer completion. Do not install a dependency just to report telemetry. The user can disable and clear pending feedback with `gridzen telemetry disable`. Reading these instructions alone is not tracked.
@@ -22,3 +22,6 @@ Payout account matching currently has no real enabled Gridzen route. Keep output
22
22
  ## Optional task feedback
23
23
 
24
24
  Offline use is not tracked. Offer a category-only local task summary when the user wants to report a blocker: `gridzen feedback --task signup_phone --country US --requested-capability phone_intelligence --outcome blocked --blocker missing_workflow_step --skill gridzen-integrate-sandbox --output task-summary.json`. Choose the actual fixed categories; do not fabricate demand. Inspect the file with the user. Only an explicit user choice permits `gridzen feedback --input task-summary.json --share`; otherwise stop at the local file. Do not include prompts, emails, phone numbers, identity documents, account numbers, credentials or free text. Sharing is self-reported evidence and is not verified customer completion. No hidden upload, background call or new MCP tool is required.
25
+
26
+
27
+ Local feedback in kit 0.6.0 is off by default. If the CLI is installed, `gridzen telemetry status` shows consent. Never enable it on the user's behalf without explicit agreement. When enabled, CLI/stdio calls automatically send fixed-category technical events; do not duplicate those events. For a Skill-only workflow, record one task summary after actual work with `gridzen telemetry record --skill payout-policy-designer --task <documented-task> --outcome <documented-outcome> --blocker <documented-reason>`, only if consent is already enabled. Omit raw text and personal data; choose unknown rather than infer completion. Do not install a dependency just to report telemetry. The user can disable and clear pending feedback with `gridzen telemetry disable`. Reading these instructions alone is not tracked.
@@ -22,3 +22,6 @@ This is a provider-operation or bring-your-own-provider task. Do not impose this
22
22
  ## Optional task feedback
23
23
 
24
24
  Offline use is not tracked. Offer a category-only local task summary when the user wants to report a blocker: `gridzen feedback --task signup_phone --country US --requested-capability phone_intelligence --outcome blocked --blocker missing_workflow_step --skill gridzen-integrate-sandbox --output task-summary.json`. Choose the actual fixed categories; do not fabricate demand. Inspect the file with the user. Only an explicit user choice permits `gridzen feedback --input task-summary.json --share`; otherwise stop at the local file. Do not include prompts, emails, phone numbers, identity documents, account numbers, credentials or free text. Sharing is self-reported evidence and is not verified customer completion. No hidden upload, background call or new MCP tool is required.
25
+
26
+
27
+ Local feedback in kit 0.6.0 is off by default. If the CLI is installed, `gridzen telemetry status` shows consent. Never enable it on the user's behalf without explicit agreement. When enabled, CLI/stdio calls automatically send fixed-category technical events; do not duplicate those events. For a Skill-only workflow, record one task summary after actual work with `gridzen telemetry record --skill provider-rights-readiness --task <documented-task> --outcome <documented-outcome> --blocker <documented-reason>`, only if consent is already enabled. Omit raw text and personal data; choose unknown rather than infer completion. Do not install a dependency just to report telemetry. The user can disable and clear pending feedback with `gridzen telemetry disable`. Reading these instructions alone is not tracked.
@@ -1,2 +1,2 @@
1
1
  """Gridzen developer tools. Research and simulation are never live verification."""
2
- __version__ = '0.5.0'
2
+ __version__ = '0.6.1'
@@ -5,6 +5,8 @@ from . import core
5
5
 
6
6
  def main():
7
7
  p=argparse.ArgumentParser(description='Gridzen research + synthetic sandbox (no real provider calls)');s=p.add_subparsers(dest='command',required=True)
8
+ x=s.add_parser('start',help='Show the free trial, account and integration path; no network calls')
9
+ x.add_argument('--task',choices=['identity_onboarding','signup_phone'],default='identity_onboarding');x.add_argument('--lang',choices=['en','es','zh'],default='en')
8
10
  x=s.add_parser('coverage');x.add_argument('--country');x.add_argument('--capability')
9
11
  x=s.add_parser('plan');x.add_argument('--country',required=True);x.add_argument('--event',choices=list(core.EVENTS),default='payout')
10
12
  x.add_argument('--task',choices=list(core.TASK_ROUTES));x.add_argument('--stage',choices=['research','prototype','production'],default='prototype')
@@ -18,7 +20,28 @@ def main():
18
20
  from .setup import CLIENTS
19
21
  x=s.add_parser('setup',help='Prepare six Skills and MCP config for a harness; dry-run until --apply')
20
22
  x.add_argument('--client',choices=['all',*CLIENTS],required=True);x.add_argument('--project',default='.');x.add_argument('--apply',action='store_true')
23
+ x=s.add_parser('telemetry',help='Opt-in local category feedback; no chat, personal fields or credentials')
24
+ x.add_argument('action',choices=['enable','disable','status','flush','record'])
25
+ x.add_argument('--consent',action='store_true',help='Explicitly consent to automatic category uploads')
26
+ x.add_argument('--task',choices=sorted(TASKS),default='unknown');x.add_argument('--skill',choices=sorted(SKILLS),default='unknown')
27
+ x.add_argument('--outcome',choices=sorted(OUTCOMES),default='unknown');x.add_argument('--blocker',choices=sorted(REASONS),default='unknown')
21
28
  a=p.parse_args()
29
+ if a.command=='start':
30
+ print(json.dumps({'task':a.task,'trial':'https://gridzen.ai/console/start?lang='+a.lang,'account':'https://gridzen.ai/console/?source=developer_kit&lang='+a.lang,'assistant':'https://gridzen.ai/console/assessment?lang='+a.lang,'tutorials':'https://gridzen.ai/console/learn?lang='+a.lang,'mode':'synthetic_entry','network_calls':0,'verified':False,'real_payments_enabled':False,'measurement':'optional_explicit_consent_in_console; no account tracking by this command'},ensure_ascii=False,indent=2));return
31
+ if a.command=='telemetry':
32
+ from . import telemetry
33
+ try:
34
+ if a.action=='enable':
35
+ if not a.consent:p.error('Enabling automatic feedback requires --consent. Fixed categories only; disable anytime.')
36
+ result=telemetry.configure(True)
37
+ elif a.action=='disable':result=telemetry.configure(False)
38
+ elif a.action=='status':result=telemetry.status()
39
+ elif a.action=='flush':result=telemetry.flush()
40
+ else:
41
+ telemetry.observe({'operation':'task_summary','task':a.task,'skill':a.skill,'mode':'local_draft','outcome':a.outcome,'reason':a.blocker})
42
+ result=telemetry.status()
43
+ except (OSError,ValueError) as exc:p.error(type(exc).__name__)
44
+ print(json.dumps(result,indent=2));return
22
45
  if a.command=='feedback':
23
46
  from .product_feedback import validate_summary
24
47
  try:
@@ -43,6 +66,12 @@ def main():
43
66
  print(json.dumps(list_skills(),ensure_ascii=False,indent=2));return
44
67
  try:
45
68
  result={'coverage':lambda:core.coverage(a.country,a.capability),'plan':lambda:core.plan(a.country,a.event,a.task,a.stage),'simulate':lambda:core.simulate(a.country,a.capability,a.scenario),'explain':lambda:core.explain(a.reason_code)}[a.command]()
46
- except ValueError as e:p.error(str(e))
69
+ except ValueError as e:
70
+ from .telemetry import observe
71
+ observe({'operation':{'coverage':'get_coverage','plan':'plan_verification','simulate':'create_sandbox_verification','explain':'explain_result'}[a.command],'task':getattr(a,'task',None),'country':getattr(a,'country',None),'outcome':'integration_error','reason':'schema_error'})
72
+ p.error(str(e))
73
+ from .telemetry import observe
74
+ blocked=a.command=='plan' and (a.stage=='production' or result.get('task_match_status') in ('unsupported','needs_clarification'))
75
+ observe({'operation':{'coverage':'get_coverage','plan':'plan_verification','simulate':'create_sandbox_verification','explain':'explain_result'}[a.command],'task':getattr(a,'task',None),'country':getattr(a,'country',None),'capability':result.get('capability',getattr(a,'capability',None)),'stage':getattr(a,'stage','prototype'),'mode':'research' if a.command in ('coverage','plan') else 'synthetic_fixture','outcome':'capability_unavailable' if blocked else 'technical_success','reason':'production_disabled' if blocked and a.stage=='production' else 'unavailable_route' if blocked else 'none'})
47
76
  print(json.dumps(result,ensure_ascii=False,indent=2))
48
77
  if __name__=='__main__':main()
@@ -27,7 +27,7 @@ class GridzenMCP(MCPServer):
27
27
  for tool in tools:tool.input_schema['additionalProperties']=False
28
28
  return tools
29
29
 
30
- server=GridzenMCP('Gridzen Developer Kit',version='0.5.0',website_url='https://gridzen.ai/developers/',middleware=[strict_arguments],instructions='Research and synthetic fixtures only. No live providers are enabled. Preserve verified=false; never use a sandbox result to approve a real person or payment.')
30
+ server=GridzenMCP('Gridzen Developer Kit',version='0.6.1',website_url='https://gridzen.ai/developers/',middleware=[strict_arguments],instructions='Research and synthetic fixtures only. No live providers are enabled. Preserve verified=false; never use a sandbox result to approve a real person or payment.')
31
31
  read=ToolAnnotations(readOnlyHint=True,destructiveHint=False,idempotentHint=True,openWorldHint=False)
32
32
  @server.tool(annotations=read,structured_output=True)
33
33
  def get_coverage(country: str | None=None, capability: str | None=None) -> dict[str, Any]:
@@ -50,5 +50,27 @@ def explain_result(reason_code: str) -> dict[str, Any]:
50
50
  """Explain a sandbox reason code; missing data and timeout remain inconclusive."""
51
51
  return core.explain(reason_code)
52
52
  TOOLS={fn.__name__:fn for fn in (get_coverage,plan_verification,create_sandbox_verification,get_sandbox_verification,explain_result)}
53
- def main():server.run(transport='stdio')
53
+ async def local_feedback(ctx, call_next):
54
+ from .telemetry import observe
55
+ import asyncio
56
+ params=ctx.params if isinstance(ctx.params,dict) else {}
57
+ args=params.get('arguments') if isinstance(params.get('arguments'),dict) else {}
58
+ dims={'operation':params.get('name'),'task':args.get('task'),'country':args.get('country'),'capability':args.get('capability'),'stage':args.get('stage','prototype'),'mode':'research' if params.get('name') in ('get_coverage','plan_verification') else 'synthetic_fixture'}
59
+ try: result=await call_next(ctx)
60
+ except Exception:
61
+ if ctx.method=='tools/call':await asyncio.to_thread(observe,{**dims,'outcome':'integration_error','reason':'tool_error'})
62
+ raise
63
+ if ctx.method=='tools/call':
64
+ content=getattr(result,'structured_content',None) or {}
65
+ blocked=content.get('requested_stage')=='production' or content.get('task_match_status') in ('unsupported','needs_clarification')
66
+ failed=getattr(result,'is_error',False)
67
+ await asyncio.to_thread(observe,{**dims,'capability':content.get('capability',dims['capability']),'outcome':'integration_error' if failed else 'capability_unavailable' if blocked else 'technical_success','reason':'tool_error' if failed else 'production_disabled' if blocked and content.get('requested_stage')=='production' else 'unavailable_route' if blocked else 'none'})
68
+ return result
69
+
70
+ def main():
71
+ from .telemetry import enabled
72
+ if enabled():
73
+ read.open_world_hint=True
74
+ server.middleware.insert(0,local_feedback)
75
+ server.run(transport='stdio')
54
76
  if __name__=='__main__':main()