datoon 1.7.0__tar.gz → 1.7.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 (125) hide show
  1. {datoon-1.7.0 → datoon-1.7.1}/.github/workflows/publish-mcp.yml +33 -10
  2. datoon-1.7.1/.github/workflows/publish.yml +82 -0
  3. {datoon-1.7.0 → datoon-1.7.1}/CHANGELOG.md +7 -0
  4. {datoon-1.7.0 → datoon-1.7.1}/MARKETPLACES.md +16 -10
  5. {datoon-1.7.0 → datoon-1.7.1}/PKG-INFO +1 -1
  6. {datoon-1.7.0 → datoon-1.7.1}/src/datoon/_version.py +3 -3
  7. {datoon-1.7.0 → datoon-1.7.1}/src/datoon/mcp_server.py +5 -0
  8. {datoon-1.7.0 → datoon-1.7.1}/src/datoon.egg-info/PKG-INFO +1 -1
  9. {datoon-1.7.0 → datoon-1.7.1}/src/datoon.egg-info/scm_version.json +2 -2
  10. datoon-1.7.0/.github/workflows/publish.yml +0 -45
  11. {datoon-1.7.0 → datoon-1.7.1}/.agents/plugins/marketplace.json +0 -0
  12. {datoon-1.7.0 → datoon-1.7.1}/.claude-plugin/marketplace.json +0 -0
  13. {datoon-1.7.0 → datoon-1.7.1}/.claude-plugin/plugin.json +0 -0
  14. {datoon-1.7.0 → datoon-1.7.1}/.editorconfig +0 -0
  15. {datoon-1.7.0 → datoon-1.7.1}/.gitattributes +0 -0
  16. {datoon-1.7.0 → datoon-1.7.1}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  17. {datoon-1.7.0 → datoon-1.7.1}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  18. {datoon-1.7.0 → datoon-1.7.1}/.github/dependabot.yml +0 -0
  19. {datoon-1.7.0 → datoon-1.7.1}/.github/workflows/package-installer-smoke.yml +0 -0
  20. {datoon-1.7.0 → datoon-1.7.1}/.github/workflows/pages.yml +0 -0
  21. {datoon-1.7.0 → datoon-1.7.1}/.github/workflows/pre-commit.yml +0 -0
  22. {datoon-1.7.0 → datoon-1.7.1}/.github/workflows/release.yml +0 -0
  23. {datoon-1.7.0 → datoon-1.7.1}/.github/workflows/tests.yml +0 -0
  24. {datoon-1.7.0 → datoon-1.7.1}/.github/workflows/validate-artifacts.yml +0 -0
  25. {datoon-1.7.0 → datoon-1.7.1}/.github/workflows/workflow-lint.yml +0 -0
  26. {datoon-1.7.0 → datoon-1.7.1}/.gitignore +0 -0
  27. {datoon-1.7.0 → datoon-1.7.1}/.pre-commit-config.yaml +0 -0
  28. {datoon-1.7.0 → datoon-1.7.1}/.releaserc.yaml +0 -0
  29. {datoon-1.7.0 → datoon-1.7.1}/CLAUDE.md +0 -0
  30. {datoon-1.7.0 → datoon-1.7.1}/CONTRIBUTING.md +0 -0
  31. {datoon-1.7.0 → datoon-1.7.1}/INSTALL.md +0 -0
  32. {datoon-1.7.0 → datoon-1.7.1}/LICENSE +0 -0
  33. {datoon-1.7.0 → datoon-1.7.1}/README.md +0 -0
  34. {datoon-1.7.0 → datoon-1.7.1}/SECURITY.md +0 -0
  35. {datoon-1.7.0 → datoon-1.7.1}/SKILL.md +0 -0
  36. {datoon-1.7.0 → datoon-1.7.1}/assets/datoon-banner.svg +0 -0
  37. {datoon-1.7.0 → datoon-1.7.1}/benchmarks/agent_skill_eval/REPORT.md +0 -0
  38. {datoon-1.7.0 → datoon-1.7.1}/benchmarks/agent_skill_eval/agent_results.json +0 -0
  39. {datoon-1.7.0 → datoon-1.7.1}/benchmarks/agent_skill_eval/expected_answers.json +0 -0
  40. {datoon-1.7.0 → datoon-1.7.1}/benchmarks/agent_skill_eval/generate_payloads.py +0 -0
  41. {datoon-1.7.0 → datoon-1.7.1}/benchmarks/agent_skill_eval/payloads/1_large.json +0 -0
  42. {datoon-1.7.0 → datoon-1.7.1}/benchmarks/agent_skill_eval/payloads/1_medium.json +0 -0
  43. {datoon-1.7.0 → datoon-1.7.1}/benchmarks/agent_skill_eval/payloads/1_small.json +0 -0
  44. {datoon-1.7.0 → datoon-1.7.1}/benchmarks/agent_skill_eval/payloads/2_large.json +0 -0
  45. {datoon-1.7.0 → datoon-1.7.1}/benchmarks/agent_skill_eval/payloads/2_medium.json +0 -0
  46. {datoon-1.7.0 → datoon-1.7.1}/benchmarks/agent_skill_eval/payloads/2_small.json +0 -0
  47. {datoon-1.7.0 → datoon-1.7.1}/benchmarks/agent_skill_eval/payloads/3_large.json +0 -0
  48. {datoon-1.7.0 → datoon-1.7.1}/benchmarks/agent_skill_eval/payloads/3_medium.json +0 -0
  49. {datoon-1.7.0 → datoon-1.7.1}/benchmarks/agent_skill_eval/payloads/3_small.json +0 -0
  50. {datoon-1.7.0 → datoon-1.7.1}/benchmarks/agent_skill_eval/reports/1_large.report.json +0 -0
  51. {datoon-1.7.0 → datoon-1.7.1}/benchmarks/agent_skill_eval/reports/1_medium.report.json +0 -0
  52. {datoon-1.7.0 → datoon-1.7.1}/benchmarks/agent_skill_eval/reports/1_small.report.json +0 -0
  53. {datoon-1.7.0 → datoon-1.7.1}/benchmarks/agent_skill_eval/reports/2_large.report.json +0 -0
  54. {datoon-1.7.0 → datoon-1.7.1}/benchmarks/agent_skill_eval/reports/2_medium.report.json +0 -0
  55. {datoon-1.7.0 → datoon-1.7.1}/benchmarks/agent_skill_eval/reports/2_small.report.json +0 -0
  56. {datoon-1.7.0 → datoon-1.7.1}/benchmarks/agent_skill_eval/reports/3_large.report.json +0 -0
  57. {datoon-1.7.0 → datoon-1.7.1}/benchmarks/agent_skill_eval/reports/3_medium.report.json +0 -0
  58. {datoon-1.7.0 → datoon-1.7.1}/benchmarks/agent_skill_eval/reports/3_small.report.json +0 -0
  59. {datoon-1.7.0 → datoon-1.7.1}/benchmarks/agent_skill_eval/scored_agent_results.json +0 -0
  60. {datoon-1.7.0 → datoon-1.7.1}/benchmarks/agent_skill_eval/toon/1_large.toon +0 -0
  61. {datoon-1.7.0 → datoon-1.7.1}/benchmarks/agent_skill_eval/toon/1_medium.toon +0 -0
  62. {datoon-1.7.0 → datoon-1.7.1}/benchmarks/agent_skill_eval/toon/1_small.toon +0 -0
  63. {datoon-1.7.0 → datoon-1.7.1}/benchmarks/agent_skill_eval/toon/2_large.toon +0 -0
  64. {datoon-1.7.0 → datoon-1.7.1}/benchmarks/agent_skill_eval/toon/2_medium.toon +0 -0
  65. {datoon-1.7.0 → datoon-1.7.1}/benchmarks/agent_skill_eval/toon/2_small.toon +0 -0
  66. {datoon-1.7.0 → datoon-1.7.1}/benchmarks/agent_skill_eval/toon/3_large.toon +0 -0
  67. {datoon-1.7.0 → datoon-1.7.1}/benchmarks/agent_skill_eval/toon/3_medium.toon +0 -0
  68. {datoon-1.7.0 → datoon-1.7.1}/benchmarks/agent_skill_eval/toon/3_small.toon +0 -0
  69. {datoon-1.7.0 → datoon-1.7.1}/benchmarks/payloads.json +0 -0
  70. {datoon-1.7.0 → datoon-1.7.1}/benchmarks/results/.gitkeep +0 -0
  71. {datoon-1.7.0 → datoon-1.7.1}/benchmarks/run.py +0 -0
  72. {datoon-1.7.0 → datoon-1.7.1}/datoon/SKILL.md +0 -0
  73. {datoon-1.7.0 → datoon-1.7.1}/datoon.skill +0 -0
  74. {datoon-1.7.0 → datoon-1.7.1}/docs/.nojekyll +0 -0
  75. {datoon-1.7.0 → datoon-1.7.1}/docs/app.js +0 -0
  76. {datoon-1.7.0 → datoon-1.7.1}/docs/assets/datoon-banner.svg +0 -0
  77. {datoon-1.7.0 → datoon-1.7.1}/docs/index.html +0 -0
  78. {datoon-1.7.0 → datoon-1.7.1}/docs/styles.css +0 -0
  79. {datoon-1.7.0 → datoon-1.7.1}/glama.json +0 -0
  80. {datoon-1.7.0 → datoon-1.7.1}/install.sh +0 -0
  81. {datoon-1.7.0 → datoon-1.7.1}/plugins/datoon/.codex-plugin/plugin.json +0 -0
  82. {datoon-1.7.0 → datoon-1.7.1}/plugins/datoon/skills/datoon/SKILL.md +0 -0
  83. {datoon-1.7.0 → datoon-1.7.1}/pyproject.toml +0 -0
  84. {datoon-1.7.0 → datoon-1.7.1}/scripts/ab_skill_benchmark.py +0 -0
  85. {datoon-1.7.0 → datoon-1.7.1}/scripts/install.py +0 -0
  86. {datoon-1.7.0 → datoon-1.7.1}/scripts/summarize_agent_skill_eval.py +0 -0
  87. {datoon-1.7.0 → datoon-1.7.1}/scripts/validate_plugin_metadata.py +0 -0
  88. {datoon-1.7.0 → datoon-1.7.1}/scripts/validate_skill_sync.py +0 -0
  89. {datoon-1.7.0 → datoon-1.7.1}/server.json +0 -0
  90. {datoon-1.7.0 → datoon-1.7.1}/setup.cfg +0 -0
  91. {datoon-1.7.0 → datoon-1.7.1}/setup.sh +0 -0
  92. {datoon-1.7.0 → datoon-1.7.1}/skills/datoon/README.md +0 -0
  93. {datoon-1.7.0 → datoon-1.7.1}/skills/datoon/SKILL.md +0 -0
  94. {datoon-1.7.0 → datoon-1.7.1}/smithery.yaml +0 -0
  95. {datoon-1.7.0 → datoon-1.7.1}/src/datoon/__init__.py +0 -0
  96. {datoon-1.7.0 → datoon-1.7.1}/src/datoon/analyzer.py +0 -0
  97. {datoon-1.7.0 → datoon-1.7.1}/src/datoon/cli.py +0 -0
  98. {datoon-1.7.0 → datoon-1.7.1}/src/datoon/converter.py +0 -0
  99. {datoon-1.7.0 → datoon-1.7.1}/src/datoon/models.py +0 -0
  100. {datoon-1.7.0 → datoon-1.7.1}/src/datoon/py.typed +0 -0
  101. {datoon-1.7.0 → datoon-1.7.1}/src/datoon/readers/__init__.py +0 -0
  102. {datoon-1.7.0 → datoon-1.7.1}/src/datoon/readers/columnar.py +0 -0
  103. {datoon-1.7.0 → datoon-1.7.1}/src/datoon/readers/csv.py +0 -0
  104. {datoon-1.7.0 → datoon-1.7.1}/src/datoon/readers/excel.py +0 -0
  105. {datoon-1.7.0 → datoon-1.7.1}/src/datoon/readers/jsonl.py +0 -0
  106. {datoon-1.7.0 → datoon-1.7.1}/src/datoon/readers/numbers.py +0 -0
  107. {datoon-1.7.0 → datoon-1.7.1}/src/datoon/readers/xml.py +0 -0
  108. {datoon-1.7.0 → datoon-1.7.1}/src/datoon/readers/yaml.py +0 -0
  109. {datoon-1.7.0 → datoon-1.7.1}/src/datoon.egg-info/SOURCES.txt +0 -0
  110. {datoon-1.7.0 → datoon-1.7.1}/src/datoon.egg-info/dependency_links.txt +0 -0
  111. {datoon-1.7.0 → datoon-1.7.1}/src/datoon.egg-info/entry_points.txt +0 -0
  112. {datoon-1.7.0 → datoon-1.7.1}/src/datoon.egg-info/requires.txt +0 -0
  113. {datoon-1.7.0 → datoon-1.7.1}/src/datoon.egg-info/scm_file_list.json +0 -0
  114. {datoon-1.7.0 → datoon-1.7.1}/src/datoon.egg-info/top_level.txt +0 -0
  115. {datoon-1.7.0 → datoon-1.7.1}/tests/fixtures/users.expected.toon +0 -0
  116. {datoon-1.7.0 → datoon-1.7.1}/tests/fixtures/users.json +0 -0
  117. {datoon-1.7.0 → datoon-1.7.1}/tests/integration/test_toon_cli_integration.py +0 -0
  118. {datoon-1.7.0 → datoon-1.7.1}/tests/unit/test_analyzer.py +0 -0
  119. {datoon-1.7.0 → datoon-1.7.1}/tests/unit/test_cli.py +0 -0
  120. {datoon-1.7.0 → datoon-1.7.1}/tests/unit/test_converter_policy.py +0 -0
  121. {datoon-1.7.0 → datoon-1.7.1}/tests/unit/test_installer.py +0 -0
  122. {datoon-1.7.0 → datoon-1.7.1}/tests/unit/test_mcp_server.py +0 -0
  123. {datoon-1.7.0 → datoon-1.7.1}/tests/unit/test_models.py +0 -0
  124. {datoon-1.7.0 → datoon-1.7.1}/tests/unit/test_readers.py +0 -0
  125. {datoon-1.7.0 → datoon-1.7.1}/uv.lock +0 -0
@@ -1,15 +1,18 @@
1
1
  name: Publish to MCP Registry
2
2
 
3
- # Publishes server.json to the official MCP Registry after a GitHub Release.
3
+ # Publishes server.json to the official MCP Registry after a release.
4
4
  # Ownership is proven via GitHub OIDC (namespace io.github.andrii-su/*) and the
5
5
  # `mcp-name: io.github.andrii-su/datoon` token in the PyPI package README.
6
6
  #
7
- # Runs after publish.yml has pushed the tagged version to PyPI, so the registry
8
- # can validate the package + ownership token for the released version.
7
+ # Keys off the Release workflow's completion (GITHUB_TOKEN-created releases do
8
+ # not fire `release: published`). Runs only when main HEAD carries a new version
9
+ # tag, and waits for that version to appear on PyPI before publishing, so it
10
+ # never races the parallel Publish to PyPI workflow.
9
11
 
10
12
  on:
11
- release:
12
- types: [published]
13
+ workflow_run:
14
+ workflows: ["Release"]
15
+ types: [completed]
13
16
  workflow_dispatch:
14
17
 
15
18
  permissions:
@@ -18,16 +21,32 @@ permissions:
18
21
 
19
22
  jobs:
20
23
  publish:
24
+ if: >-
25
+ github.event_name == 'workflow_dispatch'
26
+ || github.event.workflow_run.conclusion == 'success'
21
27
  runs-on: ubuntu-latest
22
28
  steps:
23
29
  - uses: actions/checkout@v6
30
+ with:
31
+ ref: main
32
+ fetch-depth: 0
24
33
 
25
- - name: Resolve release version
34
+ - name: Resolve version to publish
26
35
  id: version
27
- run: echo "version=${GITHUB_REF_NAME#v}" >> "$GITHUB_OUTPUT"
36
+ run: |
37
+ version="$(git tag --points-at HEAD | sed 's/^v//' | head -1)"
38
+ if [ -z "$version" ] && [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
39
+ version="$(git describe --tags --abbrev=0 | sed 's/^v//')"
40
+ fi
41
+ echo "version=${version}" >> "$GITHUB_OUTPUT"
42
+ if [ -z "$version" ]; then
43
+ echo "No release tag at HEAD - nothing to publish."
44
+ else
45
+ echo "Publishing datoon ${version} to the MCP Registry."
46
+ fi
28
47
 
29
- - name: Sync server.json version to release tag
30
- if: github.event_name == 'release'
48
+ - name: Sync server.json version
49
+ if: steps.version.outputs.version != ''
31
50
  run: |
32
51
  version="${{ steps.version.outputs.version }}"
33
52
  tmp="$(mktemp)"
@@ -38,16 +57,18 @@ jobs:
38
57
  cat server.json
39
58
 
40
59
  - name: Install mcp-publisher
60
+ if: steps.version.outputs.version != ''
41
61
  run: |
42
62
  curl -sSL "https://github.com/modelcontextprotocol/registry/releases/latest/download/mcp-publisher_linux_amd64.tar.gz" \
43
63
  | tar -xz mcp-publisher
44
64
  sudo mv mcp-publisher /usr/local/bin/
45
65
 
46
66
  - name: Validate server.json
67
+ if: steps.version.outputs.version != ''
47
68
  run: mcp-publisher validate
48
69
 
49
70
  - name: Wait for the released version to appear on PyPI
50
- if: github.event_name == 'release'
71
+ if: steps.version.outputs.version != ''
51
72
  run: |
52
73
  version="${{ steps.version.outputs.version }}"
53
74
  url="https://pypi.org/pypi/datoon/${version}/json"
@@ -64,7 +85,9 @@ jobs:
64
85
  exit 1
65
86
 
66
87
  - name: Login via GitHub OIDC
88
+ if: steps.version.outputs.version != ''
67
89
  run: mcp-publisher login github-oidc
68
90
 
69
91
  - name: Publish to MCP Registry
92
+ if: steps.version.outputs.version != ''
70
93
  run: mcp-publisher publish
@@ -0,0 +1,82 @@
1
+ name: Publish to PyPI
2
+
3
+ # Releases are cut by the Release workflow using GITHUB_TOKEN, and GitHub does
4
+ # not fire `release: published` for events created by GITHUB_TOKEN. So this
5
+ # workflow keys off the Release workflow's completion instead, and publishes
6
+ # only when the current main HEAD carries a new version tag.
7
+
8
+ on:
9
+ workflow_run:
10
+ workflows: ["Release"]
11
+ types: [completed]
12
+ workflow_dispatch:
13
+
14
+ permissions:
15
+ contents: read
16
+ id-token: write
17
+
18
+ jobs:
19
+ build:
20
+ if: >-
21
+ github.event_name == 'workflow_dispatch'
22
+ || github.event.workflow_run.conclusion == 'success'
23
+ runs-on: ubuntu-latest
24
+ outputs:
25
+ version: ${{ steps.ver.outputs.version }}
26
+ steps:
27
+ - uses: actions/checkout@v6
28
+ with:
29
+ ref: main
30
+ fetch-depth: 0
31
+
32
+ - name: Resolve version to publish
33
+ id: ver
34
+ run: |
35
+ version="$(git tag --points-at HEAD | sed 's/^v//' | head -1)"
36
+ if [ -z "$version" ] && [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
37
+ version="$(git describe --tags --abbrev=0 | sed 's/^v//')"
38
+ fi
39
+ echo "version=${version}" >> "$GITHUB_OUTPUT"
40
+ if [ -z "$version" ]; then
41
+ echo "No release tag at HEAD - nothing to publish."
42
+ else
43
+ echo "Publishing datoon ${version}."
44
+ fi
45
+
46
+ - name: Check out the exact release tag
47
+ if: steps.ver.outputs.version != ''
48
+ run: git checkout "v${{ steps.ver.outputs.version }}"
49
+
50
+ - name: Install uv
51
+ if: steps.ver.outputs.version != ''
52
+ uses: astral-sh/setup-uv@v7
53
+
54
+ - name: Build distributions
55
+ if: steps.ver.outputs.version != ''
56
+ run: uv build
57
+
58
+ - name: Upload distributions
59
+ if: steps.ver.outputs.version != ''
60
+ uses: actions/upload-artifact@v7
61
+ with:
62
+ name: dist
63
+ path: dist/
64
+
65
+ publish:
66
+ needs: build
67
+ if: needs.build.outputs.version != ''
68
+ runs-on: ubuntu-latest
69
+ environment:
70
+ name: pypi
71
+ url: https://pypi.org/project/datoon/
72
+ steps:
73
+ - name: Download distributions
74
+ uses: actions/download-artifact@v8
75
+ with:
76
+ name: dist
77
+ path: dist/
78
+
79
+ - name: Publish to PyPI
80
+ uses: pypa/gh-action-pypi-publish@release/v1
81
+ with:
82
+ skip-existing: true
@@ -1,3 +1,10 @@
1
+ ## [1.7.1](https://github.com/andrii-su/datoon/compare/v1.7.0...v1.7.1) (2026-06-22)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * **mcp:** report datoon version in the MCP initialize handshake ([22ba5fd](https://github.com/andrii-su/datoon/commit/22ba5fd23071cf2fa6a2d2c51d306d761dce9dc4))
7
+
1
8
  # [1.7.0](https://github.com/andrii-su/datoon/compare/v1.6.0...v1.7.0) (2026-06-22)
2
9
 
3
10
 
@@ -22,17 +22,25 @@ ______________________________________________________________________
22
22
  [`README.md`](./README.md) (PyPI renders the README as the package description,
23
23
  which the registry validates).
24
24
  - **Publishing:** [`.github/workflows/publish-mcp.yml`](./.github/workflows/publish-mcp.yml)
25
- runs on every GitHub Release. It syncs `server.json`'s version to the release
26
- tag, validates, authenticates via **GitHub OIDC** (no stored secret), and runs
27
- `mcp-publisher publish`.
25
+ runs when the **Release** workflow completes (via `workflow_run`), and only
26
+ when main HEAD carries a new version tag. It syncs `server.json`'s version to
27
+ that tag, validates, waits for the version to appear on PyPI, authenticates via
28
+ **GitHub OIDC** (no stored secret), and runs `mcp-publisher publish`.
28
29
 
29
30
  > [!NOTE]
30
- > The ownership token first reaches PyPI with the release that includes this
31
- > change. The publish workflow validates against the released version on PyPI,
32
- > so the first successful registry publish happens on the **next** release after
33
- > this is merged.
31
+ > **Trigger note.** Releases are cut by semantic-release using `GITHUB_TOKEN`,
32
+ > and GitHub does not fire `release: published` for `GITHUB_TOKEN`-created
33
+ > events. Both [`publish.yml`](./.github/workflows/publish.yml) (PyPI) and
34
+ > publish-mcp.yml therefore key off the **Release** workflow's completion
35
+ > instead, gated on a new tag at HEAD.
34
36
 
35
- Manual publish (if needed):
37
+ > [!NOTE]
38
+ > The ownership token first reaches PyPI with the release that includes the
39
+ > marketplace change. The first successful publish happens on the next release
40
+ > after that merge.
41
+
42
+ Manual publish — **Publish to MCP Registry** workflow → **Run workflow**
43
+ (`workflow_dispatch`); it publishes the latest tag. Or locally:
36
44
 
37
45
  ```bash
38
46
  # Install mcp-publisher (see modelcontextprotocol/registry releases)
@@ -41,8 +49,6 @@ mcp-publisher login github # interactive OAuth, namespace io.github.andri
41
49
  mcp-publisher publish
42
50
  ```
43
51
 
44
- Re-run via the **Publish to MCP Registry** workflow's `workflow_dispatch`.
45
-
46
52
  ______________________________________________________________________
47
53
 
48
54
  ## 2. Smithery — one-time connect
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: datoon
3
- Version: 1.7.0
3
+ Version: 1.7.1
4
4
  Summary: Smart structured-data-to-TOON gateway with pragmatic auto-gating for LLM prompts.
5
5
  Author-email: Andrii Suruhov <andrii.suruhov@gmail.com>
6
6
  License: MIT License
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
18
18
  commit_id: str | None
19
19
  __commit_id__: str | None
20
20
 
21
- __version__ = version = '1.7.0'
22
- __version_tuple__ = version_tuple = (1, 7, 0)
21
+ __version__ = version = '1.7.1'
22
+ __version_tuple__ = version_tuple = (1, 7, 1)
23
23
 
24
- __commit_id__ = commit_id = 'g50cf0e107'
24
+ __commit_id__ = commit_id = 'g7a983c8dc'
@@ -12,6 +12,7 @@ except ImportError as exc:
12
12
  "MCP support requires the 'mcp' extra: pip install datoon[mcp]"
13
13
  ) from exc
14
14
 
15
+ from datoon import __version__
15
16
  from datoon.analyzer import analyze_payload
16
17
  from datoon.converter import DatoonError, convert_json_for_llm
17
18
  from datoon.models import ConversionConfig
@@ -25,6 +26,10 @@ mcp = FastMCP(
25
26
  "Use analyze_json to check if a payload is a good TOON candidate without converting."
26
27
  ),
27
28
  )
29
+ # FastMCP has no `version` parameter; set it on the underlying server so the
30
+ # MCP `initialize` handshake reports datoon's version instead of the mcp
31
+ # library's default.
32
+ mcp._mcp_server.version = __version__
28
33
 
29
34
 
30
35
  @mcp.tool()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: datoon
3
- Version: 1.7.0
3
+ Version: 1.7.1
4
4
  Summary: Smart structured-data-to-TOON gateway with pragmatic auto-gating for LLM prompts.
5
5
  Author-email: Andrii Suruhov <andrii.suruhov@gmail.com>
6
6
  License: MIT License
@@ -1,7 +1,7 @@
1
1
  {
2
- "tag": "1.7.0",
2
+ "tag": "1.7.1",
3
3
  "distance": 0,
4
- "node": "g50cf0e1074cf8076f98cdc712c69b94e2b531f4a",
4
+ "node": "g7a983c8dcb2664bc8656790578bfc4a48a7f47c3",
5
5
  "dirty": false,
6
6
  "branch": "HEAD",
7
7
  "node_date": "2026-06-22"
@@ -1,45 +0,0 @@
1
- name: Publish to PyPI
2
-
3
- on:
4
- release:
5
- types: [published]
6
-
7
- permissions:
8
- contents: read
9
- id-token: write
10
-
11
- jobs:
12
- build:
13
- runs-on: ubuntu-latest
14
- steps:
15
- - uses: actions/checkout@v6
16
- with:
17
- fetch-depth: 0
18
-
19
- - name: Install uv
20
- uses: astral-sh/setup-uv@v7
21
-
22
- - name: Build distributions
23
- run: uv build
24
-
25
- - name: Upload distributions
26
- uses: actions/upload-artifact@v7
27
- with:
28
- name: dist
29
- path: dist/
30
-
31
- publish:
32
- needs: build
33
- runs-on: ubuntu-latest
34
- environment:
35
- name: pypi
36
- url: https://pypi.org/project/datoon/
37
- steps:
38
- - name: Download distributions
39
- uses: actions/download-artifact@v8
40
- with:
41
- name: dist
42
- path: dist/
43
-
44
- - name: Publish to PyPI
45
- uses: pypa/gh-action-pypi-publish@release/v1
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes