manyagent 0.1.0__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 (177) hide show
  1. manyagent-0.1.0/.devcontainer/devcontainer.json +24 -0
  2. manyagent-0.1.0/.github/actions/setup-python-env/action.yml +30 -0
  3. manyagent-0.1.0/.github/workflows/docs.yml +38 -0
  4. manyagent-0.1.0/.github/workflows/main.yml +64 -0
  5. manyagent-0.1.0/.github/workflows/release.yml +43 -0
  6. manyagent-0.1.0/.gitignore +115 -0
  7. manyagent-0.1.0/.pre-commit-config.yaml +25 -0
  8. manyagent-0.1.0/.python-version +1 -0
  9. manyagent-0.1.0/AGENTS.md +7 -0
  10. manyagent-0.1.0/BUILD_NOTES.md +509 -0
  11. manyagent-0.1.0/CLAUDE.md +125 -0
  12. manyagent-0.1.0/LICENSE +21 -0
  13. manyagent-0.1.0/Makefile +197 -0
  14. manyagent-0.1.0/PKG-INFO +286 -0
  15. manyagent-0.1.0/README.md +255 -0
  16. manyagent-0.1.0/codecov.yaml +9 -0
  17. manyagent-0.1.0/docker-compose.yml +14 -0
  18. manyagent-0.1.0/docs/design/ManyAgent - Design Principles.md +69 -0
  19. manyagent-0.1.0/docs/design/ManyAgent - Open Questions & TODOs.md +55 -0
  20. manyagent-0.1.0/docs/design/ManyAgent - Overview.md +266 -0
  21. manyagent-0.1.0/docs/design/ManyAgent - Package Structure & Workflow.md +119 -0
  22. manyagent-0.1.0/docs/design/ManyAgent - Trace Renditions & Mining (M12-M14).md +292 -0
  23. manyagent-0.1.0/docs/design/components/manyagent.adapters.md +116 -0
  24. manyagent-0.1.0/docs/design/components/manyagent.bank.md +108 -0
  25. manyagent-0.1.0/docs/design/components/manyagent.capture.md +113 -0
  26. manyagent-0.1.0/docs/design/components/manyagent.cli.md +87 -0
  27. manyagent-0.1.0/docs/design/components/manyagent.core.md +118 -0
  28. manyagent-0.1.0/docs/design/components/manyagent.distill.md +125 -0
  29. manyagent-0.1.0/docs/design/components/manyagent.forum.md +100 -0
  30. manyagent-0.1.0/docs/design/components/manyagent.procedures.md +292 -0
  31. manyagent-0.1.0/docs/design/components/manyagent.utils.md +93 -0
  32. manyagent-0.1.0/docs/design/components/manyagent.web.md +118 -0
  33. manyagent-0.1.0/docs/design/components/manyagent.web.viewer.md +243 -0
  34. manyagent-0.1.0/docs/getting-started/installation.md +32 -0
  35. manyagent-0.1.0/docs/guide/authoring-an-installer.md +247 -0
  36. manyagent-0.1.0/docs/guide/curation.md +27 -0
  37. manyagent-0.1.0/docs/guide/quickstart.md +31 -0
  38. manyagent-0.1.0/docs/guide/remote-access.md +107 -0
  39. manyagent-0.1.0/docs/guide/viewer.md +26 -0
  40. manyagent-0.1.0/docs/index.md +12 -0
  41. manyagent-0.1.0/infra/cloudflared/README.md +43 -0
  42. manyagent-0.1.0/manyagent.env.example +56 -0
  43. manyagent-0.1.0/mkdocs.yml +88 -0
  44. manyagent-0.1.0/pyproject.toml +195 -0
  45. manyagent-0.1.0/scripts/simulate_story.py +488 -0
  46. manyagent-0.1.0/scripts/smoke_m11.py +269 -0
  47. manyagent-0.1.0/src/manyagent/__init__.py +120 -0
  48. manyagent-0.1.0/src/manyagent/__init__.pyi +25 -0
  49. manyagent-0.1.0/src/manyagent/_handlers.py +489 -0
  50. manyagent-0.1.0/src/manyagent/_hook.py +114 -0
  51. manyagent-0.1.0/src/manyagent/_installer.py +1031 -0
  52. manyagent-0.1.0/src/manyagent/_mcp.py +302 -0
  53. manyagent-0.1.0/src/manyagent/adapters/__init__.py +32 -0
  54. manyagent-0.1.0/src/manyagent/adapters/base.py +273 -0
  55. manyagent-0.1.0/src/manyagent/adapters/builtin/__init__.py +161 -0
  56. manyagent-0.1.0/src/manyagent/adapters/builtin/claude.py +96 -0
  57. manyagent-0.1.0/src/manyagent/adapters/builtin/codex.py +71 -0
  58. manyagent-0.1.0/src/manyagent/adapters/builtin/gemini.py +76 -0
  59. manyagent-0.1.0/src/manyagent/adapters/builtin/qwen.py +28 -0
  60. manyagent-0.1.0/src/manyagent/adapters/miners/__init__.py +14 -0
  61. manyagent-0.1.0/src/manyagent/adapters/miners/claude.py +247 -0
  62. manyagent-0.1.0/src/manyagent/adapters/registry.py +78 -0
  63. manyagent-0.1.0/src/manyagent/adapters/skills/__init__.py +21 -0
  64. manyagent-0.1.0/src/manyagent/adapters/skills/claude.py +296 -0
  65. manyagent-0.1.0/src/manyagent/adapters/skills/codex.py +223 -0
  66. manyagent-0.1.0/src/manyagent/adapters/skills/gemini.py +308 -0
  67. manyagent-0.1.0/src/manyagent/bank/__init__.py +43 -0
  68. manyagent-0.1.0/src/manyagent/bank/base.py +74 -0
  69. manyagent-0.1.0/src/manyagent/bank/fake.py +243 -0
  70. manyagent-0.1.0/src/manyagent/bank/retry.py +48 -0
  71. manyagent-0.1.0/src/manyagent/bank/supabase_bank.py +239 -0
  72. manyagent-0.1.0/src/manyagent/capture/__init__.py +84 -0
  73. manyagent-0.1.0/src/manyagent/capture/bound.py +114 -0
  74. manyagent-0.1.0/src/manyagent/capture/conformance.py +40 -0
  75. manyagent-0.1.0/src/manyagent/capture/models.py +63 -0
  76. manyagent-0.1.0/src/manyagent/capture/scrub.py +64 -0
  77. manyagent-0.1.0/src/manyagent/cli.py +1191 -0
  78. manyagent-0.1.0/src/manyagent/core/__init__.py +28 -0
  79. manyagent-0.1.0/src/manyagent/core/collection.py +56 -0
  80. manyagent-0.1.0/src/manyagent/core/models.py +232 -0
  81. manyagent-0.1.0/src/manyagent/distill/__init__.py +53 -0
  82. manyagent-0.1.0/src/manyagent/distill/curator.py +173 -0
  83. manyagent-0.1.0/src/manyagent/distill/parse.py +178 -0
  84. manyagent-0.1.0/src/manyagent/distill/prompts.py +149 -0
  85. manyagent-0.1.0/src/manyagent/distill/resolve.py +157 -0
  86. manyagent-0.1.0/src/manyagent/distill/schema.py +53 -0
  87. manyagent-0.1.0/src/manyagent/distill/server.py +54 -0
  88. manyagent-0.1.0/src/manyagent/distill/weighting.py +85 -0
  89. manyagent-0.1.0/src/manyagent/forum/__init__.py +40 -0
  90. manyagent-0.1.0/src/manyagent/forum/anti_meta.py +181 -0
  91. manyagent-0.1.0/src/manyagent/forum/discuss.py +69 -0
  92. manyagent-0.1.0/src/manyagent/forum/parser.py +117 -0
  93. manyagent-0.1.0/src/manyagent/forum/prompt.py +107 -0
  94. manyagent-0.1.0/src/manyagent/forum/schema.py +53 -0
  95. manyagent-0.1.0/src/manyagent/preflight.py +132 -0
  96. manyagent-0.1.0/src/manyagent/py.typed +0 -0
  97. manyagent-0.1.0/src/manyagent/testing.py +613 -0
  98. manyagent-0.1.0/src/manyagent/utils/__init__.py +32 -0
  99. manyagent-0.1.0/src/manyagent/utils/config.py +107 -0
  100. manyagent-0.1.0/src/manyagent/utils/log.py +28 -0
  101. manyagent-0.1.0/src/manyagent/utils/messages.py +125 -0
  102. manyagent-0.1.0/src/manyagent/utils/provider.py +276 -0
  103. manyagent-0.1.0/src/manyagent/utils/sid.py +71 -0
  104. manyagent-0.1.0/src/manyagent/utils/ui.py +313 -0
  105. manyagent-0.1.0/src/manyagent/web/__init__.py +13 -0
  106. manyagent-0.1.0/src/manyagent/web/api.py +535 -0
  107. manyagent-0.1.0/src/manyagent/web/server.py +126 -0
  108. manyagent-0.1.0/supabase/.gitignore +8 -0
  109. manyagent-0.1.0/supabase/config.toml +406 -0
  110. manyagent-0.1.0/supabase/migrations/00001_initial_schema.sql +58 -0
  111. manyagent-0.1.0/supabase/migrations/00002_packet_quarantine.sql +9 -0
  112. manyagent-0.1.0/supabase/migrations/00003_trace_scrub_meta.sql +6 -0
  113. manyagent-0.1.0/supabase/migrations/00004_three_role_rls.sql +67 -0
  114. manyagent-0.1.0/supabase/migrations/00005_preference.sql +9 -0
  115. manyagent-0.1.0/supabase/migrations/00006_swarms_taxonomy.sql +63 -0
  116. manyagent-0.1.0/supabase/migrations/00007_injection_ledger.sql +68 -0
  117. manyagent-0.1.0/supabase/migrations/00008_public_traces.sql +21 -0
  118. manyagent-0.1.0/supabase/migrations/00009_trace_renditions.sql +41 -0
  119. manyagent-0.1.0/supabase/rollbacks/00008_revoke_public_traces.sql +15 -0
  120. manyagent-0.1.0/supabase/rollbacks/00009_revoke_public_renditions.sql +10 -0
  121. manyagent-0.1.0/supabase/seed.sql +1 -0
  122. manyagent-0.1.0/tests/conftest.py +88 -0
  123. manyagent-0.1.0/tests/fixtures/adapter_samples/claude.json +7 -0
  124. manyagent-0.1.0/tests/fixtures/adapter_samples/codex.json +5 -0
  125. manyagent-0.1.0/tests/fixtures/adapter_samples/gemini.json +3 -0
  126. manyagent-0.1.0/tests/test_adapter_install.py +564 -0
  127. manyagent-0.1.0/tests/test_adapters.py +284 -0
  128. manyagent-0.1.0/tests/test_bank.py +204 -0
  129. manyagent-0.1.0/tests/test_bank_integration.py +209 -0
  130. manyagent-0.1.0/tests/test_capture.py +268 -0
  131. manyagent-0.1.0/tests/test_cli.py +899 -0
  132. manyagent-0.1.0/tests/test_core.py +225 -0
  133. manyagent-0.1.0/tests/test_distill.py +380 -0
  134. manyagent-0.1.0/tests/test_e2e.py +239 -0
  135. manyagent-0.1.0/tests/test_forum.py +299 -0
  136. manyagent-0.1.0/tests/test_handlers.py +499 -0
  137. manyagent-0.1.0/tests/test_hook.py +144 -0
  138. manyagent-0.1.0/tests/test_installer.py +688 -0
  139. manyagent-0.1.0/tests/test_mcp.py +297 -0
  140. manyagent-0.1.0/tests/test_miners.py +196 -0
  141. manyagent-0.1.0/tests/test_package.py +87 -0
  142. manyagent-0.1.0/tests/test_preflight.py +81 -0
  143. manyagent-0.1.0/tests/test_testing.py +203 -0
  144. manyagent-0.1.0/tests/test_utils.py +501 -0
  145. manyagent-0.1.0/tests/test_web.py +765 -0
  146. manyagent-0.1.0/tox.ini +15 -0
  147. manyagent-0.1.0/uv.lock +2726 -0
  148. manyagent-0.1.0/web/app/index.html +120 -0
  149. manyagent-0.1.0/web/viewer/jsconfig.json +8 -0
  150. manyagent-0.1.0/web/viewer/package-lock.json +2058 -0
  151. manyagent-0.1.0/web/viewer/package.json +28 -0
  152. manyagent-0.1.0/web/viewer/src/app.html +16 -0
  153. manyagent-0.1.0/web/viewer/src/components/AgentLink.svelte +31 -0
  154. manyagent-0.1.0/web/viewer/src/components/BundleCard.svelte +130 -0
  155. manyagent-0.1.0/web/viewer/src/components/CrumbBar.svelte +85 -0
  156. manyagent-0.1.0/web/viewer/src/components/QuarantineBanner.svelte +49 -0
  157. manyagent-0.1.0/web/viewer/src/components/QuickstartCard.svelte +157 -0
  158. manyagent-0.1.0/web/viewer/src/components/SiteHeader.svelte +78 -0
  159. manyagent-0.1.0/web/viewer/src/components/Stars.svelte +35 -0
  160. manyagent-0.1.0/web/viewer/src/components/StructuredView.svelte +311 -0
  161. manyagent-0.1.0/web/viewer/src/components/ThreadRow.svelte +195 -0
  162. manyagent-0.1.0/web/viewer/src/components/TraceView.svelte +405 -0
  163. manyagent-0.1.0/web/viewer/src/lib/api.js +168 -0
  164. manyagent-0.1.0/web/viewer/src/lib/explorer.js +0 -0
  165. manyagent-0.1.0/web/viewer/src/routes/+layout.js +5 -0
  166. manyagent-0.1.0/web/viewer/src/routes/+layout.svelte +52 -0
  167. manyagent-0.1.0/web/viewer/src/routes/+page.svelte +324 -0
  168. manyagent-0.1.0/web/viewer/src/routes/a/[session]/[agent]/+page.svelte +390 -0
  169. manyagent-0.1.0/web/viewer/src/routes/g/[goal]/+page.svelte +342 -0
  170. manyagent-0.1.0/web/viewer/src/routes/s/[session]/+page.svelte +189 -0
  171. manyagent-0.1.0/web/viewer/src/routes/t/[session]/[uuid]/+page.svelte +537 -0
  172. manyagent-0.1.0/web/viewer/src/styles/app.css +148 -0
  173. manyagent-0.1.0/web/viewer/src/styles/reset.css +80 -0
  174. manyagent-0.1.0/web/viewer/src/styles/variables.css +89 -0
  175. manyagent-0.1.0/web/viewer/static/favicon.svg +5 -0
  176. manyagent-0.1.0/web/viewer/svelte.config.js +24 -0
  177. manyagent-0.1.0/web/viewer/vite.config.js +31 -0
@@ -0,0 +1,24 @@
1
+ {
2
+ // ManyAgent dev container. Python via uv, Node for `npx supabase`,
3
+ // docker-in-docker so the local Bank (Supabase) can run inside the container.
4
+ "name": "manyagent",
5
+ "image": "mcr.microsoft.com/devcontainers/python:1-3.12-bookworm",
6
+ "features": {
7
+ "ghcr.io/devcontainers/features/node:1": { "version": "lts" },
8
+ "ghcr.io/devcontainers/features/docker-in-docker:2": {},
9
+ "ghcr.io/va-h/devcontainers-features/uv:1": { "version": "latest" }
10
+ },
11
+ "postCreateCommand": "make install",
12
+ "remoteEnv": {
13
+ "PATH": "${containerEnv:PATH}:${containerWorkspaceFolder}/.venv/bin"
14
+ },
15
+ "customizations": {
16
+ "vscode": {
17
+ "extensions": [
18
+ "ms-python.python",
19
+ "ms-python.mypy-type-checker",
20
+ "charliermarsh.ruff"
21
+ ]
22
+ }
23
+ }
24
+ }
@@ -0,0 +1,30 @@
1
+ name: "Setup Python Environment"
2
+ description: "Set up Python environment for the given Python version"
3
+
4
+ inputs:
5
+ python-version:
6
+ description: "Python version to use"
7
+ required: true
8
+ default: "3.12"
9
+ uv-version:
10
+ description: "uv version to use"
11
+ required: true
12
+ default: "0.6.14"
13
+
14
+ runs:
15
+ using: "composite"
16
+ steps:
17
+ - uses: actions/setup-python@v5
18
+ with:
19
+ python-version: ${{ inputs.python-version }}
20
+
21
+ - name: Install uv
22
+ uses: astral-sh/setup-uv@v2
23
+ with:
24
+ version: ${{ inputs.uv-version }}
25
+ enable-cache: 'true'
26
+ cache-suffix: ${{ matrix.python-version }}
27
+
28
+ - name: Install Python dependencies
29
+ run: uv sync --frozen
30
+ shell: bash
@@ -0,0 +1,38 @@
1
+ name: Docs
2
+
3
+ # Build-only: `mkdocs build --strict` keeps the docs honest on every push.
4
+ # The GitHub Pages deploy job was removed 2026-06-10 — Pages cannot be
5
+ # enabled on a private repo under the org's free plan, so deploy-pages@v4
6
+ # hard-failed every run with "Failed to create deployment (status: 404)".
7
+ # Restore the upload-pages-artifact + deploy-pages jobs (plus `pages: write`
8
+ # / `id-token: write` permissions and the `pages` concurrency group) when
9
+ # the repo goes public or the org moves to a paid plan.
10
+
11
+ on:
12
+ push:
13
+ branches:
14
+ - main
15
+ paths:
16
+ - "docs/**"
17
+ - "mkdocs.yml"
18
+ - "src/**"
19
+ workflow_dispatch:
20
+
21
+ permissions:
22
+ contents: read
23
+
24
+ jobs:
25
+ build:
26
+ runs-on: ubuntu-latest
27
+ steps:
28
+ - name: Check out
29
+ uses: actions/checkout@v4
30
+
31
+ - name: Set up the environment
32
+ uses: ./.github/actions/setup-python-env
33
+
34
+ - name: Install docs dependencies
35
+ run: uv sync --frozen --group docs
36
+
37
+ - name: Build docs
38
+ run: uv run mkdocs build --strict
@@ -0,0 +1,64 @@
1
+ name: Main
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+ pull_request:
8
+ types: [opened, synchronize, reopened, ready_for_review]
9
+
10
+ jobs:
11
+ # Lint/format/typecheck/deptry. Single OS (canonical) — these tools are
12
+ # platform-independent in result, and `make` + a tightly-versioned
13
+ # `pre-commit` cache is most reliable on Linux.
14
+ quality:
15
+ runs-on: ubuntu-latest
16
+ steps:
17
+ - name: Check out
18
+ uses: actions/checkout@v4
19
+
20
+ - uses: actions/cache@v4
21
+ with:
22
+ path: ~/.cache/pre-commit
23
+ key: pre-commit-${{ hashFiles('.pre-commit-config.yaml') }}
24
+
25
+ - name: Set up the environment
26
+ uses: ./.github/actions/setup-python-env
27
+
28
+ - name: Run checks
29
+ run: make check
30
+
31
+ # The behaviour matrix: every OS × Python combination runs pytest and mypy.
32
+ # `make` isn't standard on Windows; we invoke `uv run` directly so the job
33
+ # doesn't need a separate `chocolatey install make` step.
34
+ tests-and-type-check:
35
+ name: tests (${{ matrix.os }}, py${{ matrix.python-version }})
36
+ runs-on: ${{ matrix.os }}
37
+ strategy:
38
+ matrix:
39
+ os: [ubuntu-latest, macos-latest, windows-latest]
40
+ python-version: ["3.12"]
41
+ fail-fast: false
42
+ defaults:
43
+ run:
44
+ shell: bash
45
+ steps:
46
+ - name: Check out
47
+ uses: actions/checkout@v4
48
+
49
+ - name: Set up the environment
50
+ uses: ./.github/actions/setup-python-env
51
+ with:
52
+ python-version: ${{ matrix.python-version }}
53
+
54
+ - name: Run tests
55
+ run: uv run python -m pytest --cov --cov-config=pyproject.toml --cov-report=xml
56
+
57
+ - name: Check typing
58
+ run: uv run mypy
59
+
60
+ - name: Upload coverage reports to Codecov
61
+ uses: codecov/codecov-action@v4
62
+ if: ${{ matrix.os == 'ubuntu-latest' && matrix.python-version == '3.12' }}
63
+ env:
64
+ CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
@@ -0,0 +1,43 @@
1
+ name: Release
2
+
3
+ # Publish to PyPI via Trusted Publishing (OIDC — no API tokens stored).
4
+ # Fires when a GitHub Release is published. To cut a release:
5
+ # gh release create v0.1.0 --generate-notes
6
+ # One-time PyPI setup (https://pypi.org/manage/account/publishing/):
7
+ # add a pending publisher → owner: manyagent · repo: manyagent ·
8
+ # workflow: release.yml · environment: pypi
9
+ # The bundled build is checked with `twine check` before the upload step.
10
+
11
+ on:
12
+ release:
13
+ types: [published]
14
+
15
+ jobs:
16
+ pypi-publish:
17
+ name: Build and publish to PyPI
18
+ runs-on: ubuntu-latest
19
+ if: github.repository == 'manyagent/manyagent'
20
+ environment: pypi
21
+ permissions:
22
+ id-token: write # OIDC token for Trusted Publishing
23
+ steps:
24
+ - name: Check out
25
+ uses: actions/checkout@v4
26
+
27
+ - name: Install uv
28
+ uses: astral-sh/setup-uv@v6
29
+
30
+ - name: Build sdist + wheel
31
+ run: uv build
32
+
33
+ - name: Verify the version tag matches pyproject
34
+ run: |
35
+ PKG=$(uv run --no-project python -c "import tomllib;print(tomllib.load(open('pyproject.toml','rb'))['project']['version'])")
36
+ TAG="${GITHUB_REF_NAME#v}"
37
+ test "$PKG" = "$TAG" || { echo "tag $TAG != pyproject version $PKG"; exit 1; }
38
+
39
+ - name: Validate distribution metadata
40
+ run: uv run --no-project --with twine twine check dist/*
41
+
42
+ - name: Publish to PyPI
43
+ uses: pypa/gh-action-pypi-publish@release/v1
@@ -0,0 +1,115 @@
1
+ # Byte-compiled / optimized / DLL files
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+
6
+ # C extensions
7
+ *.so
8
+
9
+ # Distribution / packaging
10
+ .Python
11
+ build/
12
+ develop-eggs/
13
+ dist/
14
+ downloads/
15
+ eggs/
16
+ .eggs/
17
+ # Anchored to the repo root: the bare `lib/`/`lib64/` Python-build rules were
18
+ # greedily swallowing the SvelteKit `web/viewer/src/lib/` data layer.
19
+ /lib/
20
+ /lib64/
21
+ parts/
22
+ sdist/
23
+ var/
24
+ wheels/
25
+ share/python-wheels/
26
+ *.egg-info/
27
+ .installed.cfg
28
+ *.egg
29
+ MANIFEST
30
+
31
+ # Installer logs
32
+ pip-log.txt
33
+ pip-delete-this-directory.txt
34
+
35
+ # Unit test / coverage reports
36
+ htmlcov/
37
+ .tox/
38
+ .nox/
39
+ .coverage
40
+ .coverage.*
41
+ .cache
42
+ nosetests.xml
43
+ coverage.xml
44
+ *.cover
45
+ *.py,cover
46
+ .hypothesis/
47
+ .pytest_cache/
48
+ cover/
49
+
50
+ # Logs
51
+ *.log
52
+
53
+ # Environments
54
+ .env
55
+ .venv
56
+ env/
57
+ venv/
58
+ ENV/
59
+ env.bak/
60
+ venv.bak/
61
+
62
+ # manyagent local config (committed template is manyagent.env.example)
63
+ manyagent.env
64
+
65
+ # Reference / scratch asciinema recordings dropped into the repo root
66
+ *.cast
67
+
68
+ # Rope project settings
69
+ .ropeproject
70
+
71
+ # mypy
72
+ .mypy_cache/
73
+ .dmypy.json
74
+ dmypy.json
75
+
76
+ # Pyre type checker
77
+ .pyre/
78
+
79
+ # pytype static type analyzer
80
+ .pytype/
81
+
82
+ # Cython debug symbols
83
+ cython_debug/
84
+
85
+ # Ruff stuff:
86
+ .ruff_cache/
87
+
88
+ # PyPI configuration file
89
+ .pypirc
90
+
91
+ # Supabase
92
+ supabase/.temp/
93
+ supabase/.branches/
94
+
95
+ # Cloudflare Tunnel — rendered ingress configs + credentials are machine-specific
96
+ # / secret; only infra/cloudflared/README.md is committed (see Makefile *-tunnel-*).
97
+ infra/cloudflared/*.yml
98
+ infra/cloudflared/*.json
99
+ infra/cloudflared/cert.pem
100
+
101
+ # MkDocs build output
102
+ site/
103
+
104
+ # Node / SvelteKit viewer (manyagent.web; web/viewer/)
105
+ node_modules/
106
+ web/viewer/build/
107
+ web/viewer/.svelte-kit/
108
+ # legacy paths kept in ignore in case stale local artifacts exist
109
+ src/manyagent/web/app/build/
110
+ src/manyagent/web/app/.svelte-kit/
111
+
112
+ # Local artifacts
113
+ .claude/
114
+ scratch/
115
+ *.db
@@ -0,0 +1,25 @@
1
+ repos:
2
+ - repo: https://github.com/pre-commit/pre-commit-hooks
3
+ rev: "v5.0.0"
4
+ hooks:
5
+ - id: check-case-conflict
6
+ - id: check-merge-conflict
7
+ - id: check-toml
8
+ - id: check-yaml
9
+ args: [--unsafe]
10
+ - id: check-json
11
+ # JSONL adapter fixtures (one JSON object per line) aren't single-doc JSON.
12
+ exclude: ^(\.devcontainer/devcontainer\.json|tests/fixtures/adapter_samples/.*\.json)$
13
+ - id: pretty-format-json
14
+ # JSONL adapter fixtures (one JSON object per line) aren't single-doc JSON.
15
+ exclude: ^(\.devcontainer/devcontainer\.json|tests/fixtures/adapter_samples/.*\.json)$
16
+ args: [--autofix, --no-sort-keys]
17
+ - id: end-of-file-fixer
18
+ - id: trailing-whitespace
19
+
20
+ - repo: https://github.com/astral-sh/ruff-pre-commit
21
+ rev: "v0.11.5"
22
+ hooks:
23
+ - id: ruff
24
+ args: [--exit-non-zero-on-fix]
25
+ - id: ruff-format
@@ -0,0 +1 @@
1
+ 3.12
@@ -0,0 +1,7 @@
1
+ # AGENTS.md
2
+
3
+ This repo's operational guide for coding agents is **`CLAUDE.md`** (same content
4
+ applies regardless of agent). See `CLAUDE.md` for commands, build conventions
5
+ (milestone-ordered, per-milestone deps, new-migration-only schema changes,
6
+ `MANYAGENT_`-prefixed tunables, no per-instance `__getattr__`, tests mirror `src/`),
7
+ and the target architecture. Design rationale lives in `docs/design/`.