interlatch 0.25.0__tar.gz → 0.26.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.
- {interlatch-0.25.0 → interlatch-0.26.0}/CHANGELOG.md +9 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/PKG-INFO +3 -2
- {interlatch-0.25.0 → interlatch-0.26.0}/README.md +2 -1
- interlatch-0.26.0/changelog.d/adventure.md +5 -0
- interlatch-0.26.0/changelog.d/group-page.md +7 -0
- interlatch-0.26.0/changelog.d/hub-join-http-client.md +2 -0
- interlatch-0.26.0/changelog.d/install-choose-analyzer.md +4 -0
- interlatch-0.26.0/changelog.d/town-and-gear.md +5 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/docs/cli.md +1 -1
- {interlatch-0.25.0 → interlatch-0.26.0}/docs/dashboard.md +16 -2
- {interlatch-0.25.0 → interlatch-0.26.0}/docs/faq.md +2 -1
- {interlatch-0.25.0 → interlatch-0.26.0}/docs/install.md +13 -5
- {interlatch-0.25.0 → interlatch-0.26.0}/docs/ja/dashboard.md +14 -2
- {interlatch-0.25.0 → interlatch-0.26.0}/docs/ja/party.md +31 -12
- {interlatch-0.25.0 → interlatch-0.26.0}/docs/party.md +34 -13
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/analysis/runners/api.py +9 -3
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/analysis/runners/base.py +6 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/artifacts/queries.py +8 -5
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/core/i18n/ja.py +23 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/interfaces/cli/commands/setup.py +217 -6
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/interfaces/exports/diagrams.py +52 -6
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/interfaces/web/api/artifacts.py +1 -1
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/interfaces/web/api/party.py +79 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/interfaces/web/api/projects.py +178 -1
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/interfaces/web/api/settings.py +1 -3
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/interfaces/web/handler.py +4 -2
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/interfaces/web/routes.py +40 -3
- interlatch-0.26.0/src/interlatch/knowledge/bag.py +453 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/knowledge/party.py +153 -3
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/projects/groups.py +3 -2
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/projects/progress.py +24 -14
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/projects/systems.py +43 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/sharing/access.py +2 -1
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/sharing/client.py +1 -1
- interlatch-0.26.0/src/interlatch/storage/kv.py +41 -0
- interlatch-0.26.0/src/interlatch/web/adventure.js +2136 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/web/app.css +36 -2
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/web/app.js +368 -54
- interlatch-0.26.0/src/interlatch/web/battle.js +1729 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/web/innerlatch.css +317 -18
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/web/innerlatch.js +483 -126
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/web/ja.js +256 -22
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/web/scene.js +64 -24
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/goldens/cli.json +27 -0
- interlatch-0.26.0/tests/test_adventure_web.py +182 -0
- interlatch-0.26.0/tests/test_bag.py +422 -0
- interlatch-0.26.0/tests/test_battle_web.py +454 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/test_diagram.py +24 -1
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/test_hub.py +16 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/test_i18n_web.py +2 -2
- interlatch-0.26.0/tests/test_party_map.py +237 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/test_project_progress.py +76 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/test_route_matrix.py +22 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/test_setup.py +95 -1
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/test_systems.py +37 -0
- interlatch-0.25.0/changelog.d/innerlatch.md +0 -6
- interlatch-0.25.0/src/interlatch/storage/kv.py +0 -17
- {interlatch-0.25.0 → interlatch-0.26.0}/.github/dependabot.yml +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/.github/workflows/changelog.yml +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/.github/workflows/ci.yml +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/.github/workflows/docs.yml +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/.github/workflows/release.yml +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/.gitignore +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/.pre-commit-config.yaml +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/.python-version +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/CONTRIBUTING.md +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/LICENSE +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/README.ja.md +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/ROADMAP.ja.md +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/ROADMAP.md +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/SECURITY.md +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/careers/README.md +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/careers/boards.json +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/careers/pipeline.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/changelog.d/README.md +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/dev.sh +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/docker/.dockerignore +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/docker/.env.example +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/docker/Caddyfile +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/docker/Dockerfile +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/docker/compose.yaml +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/docker/wheels/.gitignore +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/docs/README.md +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/docs/_site/hooks.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/docs/analysis.md +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/docs/configuration.md +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/docs/demo/make_demo.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/docs/demo/record_demo.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/docs/design/ja/learning.md +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/docs/design/learning.md +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/docs/development.md +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/docs/devices.md +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/docs/diagrams/analysis.excalidraw.svg +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/docs/diagrams/architecture.excalidraw.svg +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/docs/docker.md +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/docs/images/demo.gif +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/docs/images/home.png +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/docs/images/map.png +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/docs/images/palette.png +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/docs/images/session.png +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/docs/ja/README.md +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/docs/ja/analysis.md +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/docs/ja/cli.md +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/docs/ja/configuration.md +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/docs/ja/development.md +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/docs/ja/devices.md +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/docs/ja/docker.md +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/docs/ja/faq.md +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/docs/ja/install.md +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/docs/ja/join-a-hub.md +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/docs/ja/mcp.md +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/docs/ja/moving-from-chronicle.md +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/docs/ja/postgres.md +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/docs/ja/privacy.md +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/docs/ja/sources.md +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/docs/ja/suggestions.md +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/docs/ja/troubleshooting.md +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/docs/ja/vscode.md +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/docs/join-a-hub.md +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/docs/mcp.md +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/docs/moving-from-chronicle.md +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/docs/postgres.md +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/docs/privacy.md +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/docs/sources.md +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/docs/suggestions.md +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/docs/troubleshooting.md +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/docs/vscode.md +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/leaderboard/.firebaserc +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/leaderboard/.gitignore +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/leaderboard/README.md +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/leaderboard/firebase.json +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/leaderboard/firestore.indexes.json +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/leaderboard/firestore.rules +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/mkdocs.yml +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/packaging/icons3d/README.md +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/packaging/icons3d/art.json +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/packaging/icons3d/filing.html +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/packaging/icons3d/loops.json +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/packaging/icons3d/loops.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/packaging/icons3d/members.js +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/packaging/icons3d/render.html +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/packaging/icons3d/render.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/packaging/icons3d/scenes-more.js +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/packaging/icons3d/scenes.html +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/packaging/macos/Chronicle.icns +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/packaging/macos/Interlatch.spec +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/packaging/macos/build.sh +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/packaging/macos/entitlements.plist +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/packaging/macos/icon-3d.webp +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/packaging/macos/icon-blueprint-prompt.md +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/packaging/macos/icon-blueprint.webp +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/packaging/macos/icon.png +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/packaging/macos/interlatch_app.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/packaging/macos/make_icon.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/packaging/release.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/pyproject.toml +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/chronicle/__init__.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/chronicle/__main__.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/chronicle/windows.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/__init__.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/__main__.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/analysis/__init__.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/analysis/digest.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/analysis/language.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/analysis/queue.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/analysis/runners/__init__.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/analysis/runners/bob.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/analysis/runners/claude.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/analysis/runners/codex.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/analysis/runners/factory.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/analysis/runners/process.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/analysis/runners/replies.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/analysis/runners/settings.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/analysis/screen.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/analysis/session.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/analysis/worker.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/application/__init__.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/application/records.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/application/search.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/application/workflows.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/artifacts/__init__.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/artifacts/files.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/cli.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/core/__init__.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/core/agents.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/core/artifact_records.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/core/config.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/core/diagrams.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/core/i18n/__init__.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/core/machine.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/core/paths.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/core/pricing.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/core/process.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/core/redact.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/core/sessions.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/core/util.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/ingestion/__init__.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/ingestion/analyses.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/ingestion/archive.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/ingestion/chat_import.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/ingestion/deletion.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/ingestion/history.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/ingestion/memory.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/ingestion/persistence.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/ingestion/report.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/ingestion/service.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/interfaces/__init__.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/interfaces/cli/__init__.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/interfaces/cli/commands/__init__.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/interfaces/cli/commands/archive.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/interfaces/cli/commands/knowledge.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/interfaces/cli/commands/operations.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/interfaces/cli/commands/recording.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/interfaces/cli/commands/sharing.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/interfaces/cli/common.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/interfaces/cli/main.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/interfaces/cli/parser.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/interfaces/exports/__init__.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/interfaces/exports/markdown.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/interfaces/exports/sessions.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/interfaces/exports/vault.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/interfaces/mcp.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/interfaces/web/__init__.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/interfaces/web/api/__init__.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/interfaces/web/api/common.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/interfaces/web/api/devices.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/interfaces/web/api/hub_admin.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/interfaces/web/api/knowledge.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/interfaces/web/api/leaderboard.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/interfaces/web/api/sessions.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/interfaces/web/api/sources.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/interfaces/web/api/status.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/interfaces/web/api/storage.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/interfaces/web/api/team.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/interfaces/web/app.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/interfaces/web/assets.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/interfaces/web/context.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/interfaces/web/jobs.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/interfaces/web/server.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/knowledge/__init__.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/knowledge/arena.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/knowledge/cases.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/knowledge/friction.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/knowledge/glossary.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/knowledge/instructions.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/knowledge/ladder.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/knowledge/learning.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/knowledge/market.json +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/knowledge/reviews.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/knowledge/roadmap.json +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/knowledge/suggest.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/knowledge/synthesize.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/projects/__init__.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/projects/labels.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/projects/routing.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/runtime/__init__.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/runtime/connectors.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/runtime/container.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/runtime/hooks.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/runtime/install.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/runtime/migrate.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/runtime/notify.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/runtime/platforms/__init__.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/runtime/platforms/desktop.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/runtime/platforms/menubar.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/runtime/platforms/windows.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/runtime/statusline.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/runtime/tailnet.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/runtime/update.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/sharing/__init__.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/sharing/arena.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/sharing/identity.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/sharing/leaderboard.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/sharing/market.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/sharing/news.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/sharing/people.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/sharing/projects.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/sharing/protocol.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/sharing/pull.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/sharing/push.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/sharing/receiver.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/sources/__init__.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/sources/antigravity.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/sources/bob.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/sources/builder.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/sources/chatgpt.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/sources/chats.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/sources/claude/__init__.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/sources/claude/export.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/sources/claude/files.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/sources/claude/parser.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/sources/codex/__init__.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/sources/codex/cloud.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/sources/codex/parser.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/sources/copilot.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/sources/discovery.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/sources/opencode.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/sources/prompts.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/storage/__init__.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/storage/fts.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/storage/migrations.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/storage/mirror.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/storage/postgres.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/storage/schema.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/storage/sqlite.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/storage/team.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/web/AGENT-ICONS.txt +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/web/PLEX-OFL.txt +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/web/agent-antigravity.svg +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/web/agent-bob.svg +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/web/agent-chatgpt.svg +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/web/agent-claude-ai.svg +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/web/agent-claude.svg +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/web/agent-codex.svg +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/web/agent-copilot.svg +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/web/agent-opencode.svg +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/web/art-book.webp +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/web/art-camera.webp +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/web/art-chip.webp +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/web/art-clock.webp +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/web/art-cloud.webp +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/web/art-coins.webp +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/web/art-container.webp +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/web/art-dashboard.webp +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/web/art-dex.webp +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/web/art-document.webp +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/web/art-flag.webp +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/web/art-folder.webp +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/web/art-gateway.webp +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/web/art-gears.webp +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/web/art-glitch.webp +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/web/art-globe.webp +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/web/art-laptop.webp +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/web/art-log.webp +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/web/art-lumi.webp +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/web/art-magnifier.webp +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/web/art-pip.webp +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/web/art-plug.webp +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/web/art-rack.webp +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/web/art-tink.webp +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/web/boot.js +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/web/favicon.png +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/web/i18n.js +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/web/icon-180.png +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/web/icon-192.png +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/web/icon-512.png +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/web/icon.png +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/web/index.html +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/web/learning.js +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/web/manifest.webmanifest +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/web/panel.css +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/web/panel.html +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/web/panel.js +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/web/plex-mono-400.woff2 +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/web/plex-mono-500.woff2 +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/web/plex-mono-600.woff2 +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/web/plex-sans-400.woff2 +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/web/plex-sans-500.woff2 +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/web/plex-sans-600.woff2 +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/web/plex-sans-700.woff2 +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/web/rough.js +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/web/sprites.js +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/src/interlatch/windows.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/antigravity_fixture.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/codex_fixture.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/conftest.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/copilot_fixture.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/friction_fixture.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/golden.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/goldens/diagram.json +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/goldens/parsers/antigravity.json +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/goldens/parsers/bob.json +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/goldens/parsers/claude_code.json +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/goldens/parsers/codex.json +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/goldens/parsers/copilot.json +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/goldens/parsers/opencode.json +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/goldens/systems.json +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/opencode_fixture.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/test_analysis.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/test_antigravity.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/test_architecture.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/test_arena.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/test_artifacts.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/test_bob_analysis.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/test_boot_web.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/test_careers.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/test_case_files.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/test_cases.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/test_chat_import.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/test_cli_pins.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/test_codex.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/test_codex_analysis.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/test_codex_cloud.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/test_container.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/test_copilot_bob.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/test_dedicated_hub.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/test_dedupe.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/test_desktop.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/test_ee_boundary.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/test_friction.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/test_glossary.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/test_group_sharing.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/test_home_agents.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/test_hub_accept.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/test_hub_news.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/test_hub_projects.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/test_hub_projects_listed.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/test_hub_purge.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/test_hub_sharing_race.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/test_ingest.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/test_instructions.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/test_integration.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/test_ladder.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/test_language.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/test_leaderboard.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/test_learning_glance.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/test_learning_interests.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/test_learning_web.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/test_leave_project.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/test_legacy_package.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/test_map_goldens.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/test_market.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/test_menubar.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/test_migrate.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/test_mirror.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/test_notify.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/test_opencode.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/test_parser.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/test_parser_goldens.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/test_party.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/test_people.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/test_people_hub.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/test_people_web.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/test_project_groups.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/test_providers.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/test_queue.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/test_regressions.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/test_release.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/test_roadmap_catalog.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/test_screen.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/test_security.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/test_statusline.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/test_suggest.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/test_suggest_cli.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/test_team.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/test_team_home.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/test_update.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/test_windows.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/tests/windows_smoke.py +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/uv.lock +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/vscode-extension/.vscodeignore +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/vscode-extension/LICENSE +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/vscode-extension/README.md +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/vscode-extension/extension.js +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/vscode-extension/media/icon.png +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/vscode-extension/media/interlatch.svg +0 -0
- {interlatch-0.25.0 → interlatch-0.26.0}/vscode-extension/package.json +0 -0
|
@@ -3,6 +3,15 @@
|
|
|
3
3
|
<!-- Don't add lines here: a pull request puts its line in a new file in changelog.d/ (see changelog.d/README.md),
|
|
4
4
|
and each release moves the files it took into a dated section below. -->
|
|
5
5
|
|
|
6
|
+
## 0.25.0 (2026-10-15)
|
|
7
|
+
|
|
8
|
+
- **Innerlatch:** the Party, the Leaderboard, the Arena and their Google sign-in moved out of the dashboard into
|
|
9
|
+
Innerlatch, an area of its own drawn in violet. The door icon at the bottom of the rail brings up a large door: click
|
|
10
|
+
it to go through, or, signed out, sign in with Google and it opens by itself. Leaving, it shuts behind you. The
|
|
11
|
+
Journey strip leads the Party page instead of Home, the Arena is a page of its own, and old `#/party` and
|
|
12
|
+
`#/leaderboard` links still open. **Settings › Appearance › The door** hides the icon
|
|
13
|
+
([Party](docs/party.md#getting-there)).
|
|
14
|
+
|
|
6
15
|
## 0.24.1 (2026-10-15)
|
|
7
16
|
|
|
8
17
|
- **OpenCode is a source:** `interlatch connect opencode` (or the Sources page) records OpenCode sessions, from the
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: interlatch
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.26.0
|
|
4
4
|
Summary: Shared memory for your coding agents: records every session (Claude Code, Codex, Copilot, Bob, Antigravity, OpenCode) locally and keeps what they learned, each lesson linked to the session it came from.
|
|
5
5
|
Project-URL: Homepage, https://interlatch.com
|
|
6
6
|
Project-URL: Documentation, https://interlatch.com/docs/
|
|
@@ -186,7 +186,8 @@ milliseconds; analysis runs later in the background.
|
|
|
186
186
|
|
|
187
187
|
**Do I need Claude Code?** No. Analysis runs through Claude Code, Codex or IBM Bob, or a model provider's API with your
|
|
188
188
|
own key: Anthropic, Amazon Bedrock, OpenAI, Azure OpenAI, OpenRouter, any OpenAI-compatible server, or Ollama on your own
|
|
189
|
-
computer. Pick one in **Status › Analysis
|
|
189
|
+
computer. Pick one when you run `interlatch install`, in **Status › Analysis**, or with
|
|
190
|
+
`interlatch config set analysis.backend <name>`
|
|
190
191
|
([Model providers](https://github.com/Chatixia-AI/interlatch/blob/main/docs/analysis.md#model-providers)). Recording and browsing work either way; with none set up,
|
|
191
192
|
sessions are archived and wait in the analysis queue.
|
|
192
193
|
|
|
@@ -151,7 +151,8 @@ milliseconds; analysis runs later in the background.
|
|
|
151
151
|
|
|
152
152
|
**Do I need Claude Code?** No. Analysis runs through Claude Code, Codex or IBM Bob, or a model provider's API with your
|
|
153
153
|
own key: Anthropic, Amazon Bedrock, OpenAI, Azure OpenAI, OpenRouter, any OpenAI-compatible server, or Ollama on your own
|
|
154
|
-
computer. Pick one in **Status › Analysis
|
|
154
|
+
computer. Pick one when you run `interlatch install`, in **Status › Analysis**, or with
|
|
155
|
+
`interlatch config set analysis.backend <name>`
|
|
155
156
|
([Model providers](docs/analysis.md#model-providers)). Recording and browsing work either way; with none set up,
|
|
156
157
|
sessions are archived and wait in the analysis queue.
|
|
157
158
|
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
- **Adventure:** a new page in Innerlatch puts every lesson that counts on a pixel world map, one region per attribute
|
|
2
|
+
and one territory per roadmap module, fogged where no lesson reached yet. Click a monster for a turn-based battle
|
|
3
|
+
(Attack, Skill, Defend, Run) led by the agent that taught it; a win marks it cleared, and battles never change
|
|
4
|
+
levels. The Party page keeps the characters and quests, and a lesson link anywhere in Innerlatch now opens the lesson
|
|
5
|
+
in a window over the page instead of leaving for the dashboard ([Party](docs/party.md#adventure)).
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
- **A group's page:** **Analyze** on a project group's heading on the Projects page (or **The whole group** in the
|
|
2
|
+
sidebar) reads the group's projects as one big project. It shows each project's share of the group's time, cost and
|
|
3
|
+
knowledge, what waits on you across all of them, where their last sessions left off, each folder in git, their
|
|
4
|
+
roadmaps and their work week by week, with every item named by its project. A **Map** draws the projects and the
|
|
5
|
+
services and platforms they use, hand-drawn, with the ones they share easy to spot and an Excalidraw download; Usage
|
|
6
|
+
charts each project's time week by week. Each project's knowledge base and architecture sketch sit beside the
|
|
7
|
+
others, and the glossary terms the projects share come first ([Project groups](docs/dashboard.md#project-groups)).
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
- **Choose what analyzes sessions at install:** `interlatch install` now lists every choice (Claude Code, Codex,
|
|
2
|
+
IBM Bob and the model providers' APIs, Ollama included) with whether each is ready, and sets up the one you pick:
|
|
3
|
+
its endpoint, API key and model, then one test call. `--backend <name>` chooses without asking
|
|
4
|
+
([Install](docs/install.md#command-line)).
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
- **Towns and gear:** each Adventure region has a town whose shop sells gear for its roadmap modules (a weapon, armor
|
|
2
|
+
and charm per module, in three tiers that open as your agents reach Lv 1, 3 and 5 in that skill) and battle supplies.
|
|
3
|
+
A lesson's first win pays gold and may drop loot of its kind; battles gain an **Item** command, and each agent
|
|
4
|
+
wears three slots, changed on its page or in the new **Bag**. Gear only changes battle numbers, never levels
|
|
5
|
+
([Party](docs/party.md#towns-and-gear)).
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
| Command | |
|
|
6
6
|
| --- | --- |
|
|
7
|
-
| `interlatch install [--yes] [--analyze all\|N\|later] [--[no-]notify-updates] [--[no-]menu-bar] [--dry-run]` | Setup: lists the agents found, asks which to record, imports them, offers to analyze them now with progress (which builds the Glossary and the Map), starts the dashboard, and on macOS asks once whether to show [the menu-bar icon](install.md#the-menu-bar-icon) (off unless you say yes) ([Install](install.md#command-line)) |
|
|
7
|
+
| `interlatch install [--yes] [--backend NAME] [--analyze all\|N\|later] [--[no-]notify-updates] [--[no-]menu-bar] [--dry-run]` | Setup: asks what analyzes sessions (`--backend` answers it: a coding agent or a [model provider](analysis.md#model-providers), set up on the spot), lists the agents found, asks which to record, imports them, offers to analyze them now with progress (which builds the Glossary and the Map), starts the dashboard, and on macOS asks once whether to show [the menu-bar icon](install.md#the-menu-bar-icon) (off unless you say yes) ([Install](install.md#command-line)) |
|
|
8
8
|
| `interlatch app` | The desktop app (window + menu bar); needs the `app` extra |
|
|
9
9
|
| `interlatch ui [--open] [--menu-bar]` | Dashboard (also always running at :11524 after install; if it is, `interlatch ui` says so and `--open` opens it). On macOS the one that runs at login also shows [the menu-bar icon](install.md#the-menu-bar-icon) if you turned it on at install; `--menu-bar`/`--no-menu-bar` overrides that. Sessions, Knowledge, Projects and Glossary switch between Cards and List (a sortable table; click a row for details), remembered per page |
|
|
10
10
|
| `interlatch sessions [-p project] [--since 7d]` | List sessions |
|
|
@@ -141,7 +141,7 @@ as on a session's page.
|
|
|
141
141
|
## Project groups
|
|
142
142
|
|
|
143
143
|
Put related projects under one heading, such as **Aktio** for every Aktio repository, on the Projects page and in
|
|
144
|
-
its sidebar
|
|
144
|
+
its sidebar, and read them as one on the group's page. Groups are one level deep: each project keeps its own
|
|
145
145
|
sessions, knowledge base and hub sharing.
|
|
146
146
|
|
|
147
147
|
- **Make one:** **New group** on the Projects page, or **New group…** in a project's group menu (the folder button on
|
|
@@ -157,7 +157,21 @@ sessions, knowledge base and hub sharing.
|
|
|
157
157
|
projects; they go back to what the other groups' rules say.
|
|
158
158
|
- Each group folds away, on the page and in the sidebar, and stays folded in that browser. On **Sessions**, the project
|
|
159
159
|
filter lists projects under their groups, with **All of *group*** to see every session in a group. A project's page
|
|
160
|
-
shows its group in the breadcrumb.
|
|
160
|
+
shows its group in the breadcrumb, which opens the group's page.
|
|
161
|
+
- **The group's page:** **Analyze** on a group's heading (or **The whole group** in the sidebar) reads its projects as
|
|
162
|
+
one big project. **By project** puts them side by side with each one's share of the group's active time, its
|
|
163
|
+
sessions, estimated cost, knowledge and when it was last worked on. Below come the project page's cards over all of
|
|
164
|
+
them, each item named by its project: **Needs you** (each folder's uncommitted and unpushed work, and the decisions
|
|
165
|
+
each project's last sessions left open), **Where you left off**, **The folders now**, each project's roadmap file,
|
|
166
|
+
the backlog and **Week by week**. **Map** draws the projects and the services and platforms they use, hand-drawn
|
|
167
|
+
like an architecture sketch: a service many lines meet (a Langfuse, a database, a cloud) is one the projects share,
|
|
168
|
+
and dashed arcs are the links the [Systems map](#systems-map) found between the projects themselves (one edits the
|
|
169
|
+
other's files, or its glossary names it). Click a part or a line to see where it was found, in manifests or in the
|
|
170
|
+
commands sessions ran, and **Excalidraw** downloads it to edit. **Knowledge bases** shows each project's own side by
|
|
171
|
+
side, with each one's architecture sketch where it has one (nothing is written for the group as a whole), and the
|
|
172
|
+
glossary terms more than one project uses first. The Knowledge, Sessions, Artifacts and Usage tabs cover every
|
|
173
|
+
project in the group; Usage adds each project's active time week by week and the group's activity calendar. As on a
|
|
174
|
+
project's page, git and roadmap files are read only when you open the page on this computer.
|
|
161
175
|
|
|
162
176
|
Groups are kept in this computer's archive and never go to a hub. On a hub with people, admins see and change the
|
|
163
177
|
hub's groups; someone limited to some projects sees none. On a computer that sends to a hub, a whole group can be
|
|
@@ -20,7 +20,8 @@ Claude Desktop, Cursor, Windsurf and Gemini CLI aren't recorded, but they can us
|
|
|
20
20
|
|
|
21
21
|
**Do I need Claude Code?** No. Analysis runs through Claude Code, Codex or IBM Bob, or a model provider's API with
|
|
22
22
|
your own key: Anthropic, Amazon Bedrock, OpenAI, Azure OpenAI, OpenRouter, any OpenAI-compatible server, or Ollama on
|
|
23
|
-
your own computer. Pick one in **Status › Analysis
|
|
23
|
+
your own computer. Pick one when you run `interlatch install`, in **Status › Analysis**, or with
|
|
24
|
+
`interlatch config set analysis.backend <name>`
|
|
24
25
|
([Model providers](analysis.md#model-providers)). Recording and browsing work either way; with none set up, sessions
|
|
25
26
|
are archived and wait in the analysis queue.
|
|
26
27
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
[← Interlatch](../README.md) · [Docs index](README.md)
|
|
4
4
|
|
|
5
|
-
Interlatch runs on macOS and [Windows](#windows) and needs something to analyze sessions: a logged-in [Claude Code](https://claude.com/claude-code) (`claude`) or [Codex](https://github.com/openai/codex) (`codex`), IBM Bob with a Bob API key, or a model provider's API with your own key ([Model providers](analysis.md#model-providers)). Setup
|
|
5
|
+
Interlatch runs on macOS and [Windows](#windows) and needs something to analyze sessions: a logged-in [Claude Code](https://claude.com/claude-code) (`claude`) or [Codex](https://github.com/openai/codex) (`codex`), IBM Bob with a Bob API key, or a model provider's API with your own key ([Model providers](analysis.md#model-providers)). Setup lists them all and asks which to use (Claude Code when it is installed, unless you pick another); switch any time in **Status › Analysis**, with `interlatch install --backend <name>` or with `interlatch config set analysis.backend <name>`. There are two ways to run it; both use the same data in `~/.interlatch` and can coexist.
|
|
6
6
|
|
|
7
7
|
Interlatch was called Chronicle. To update from Chronicle, see [Moving from Chronicle](moving-from-chronicle.md).
|
|
8
8
|
|
|
@@ -52,8 +52,15 @@ run `uv tool install --python 3.13 .` in it.
|
|
|
52
52
|
|
|
53
53
|
`interlatch install` (also `interlatch setup`) walks through setup:
|
|
54
54
|
|
|
55
|
-
1.
|
|
56
|
-
|
|
55
|
+
1. Asks what analyzes sessions. It lists every choice with whether it is ready: Claude Code, Codex and IBM Bob
|
|
56
|
+
(through your own login and plan), and the model providers' APIs (Anthropic, Amazon Bedrock, OpenAI, Azure
|
|
57
|
+
OpenAI, OpenRouter, Ollama on this computer, any OpenAI-compatible server). Enter keeps the one marked (Claude
|
|
58
|
+
Code when it is installed). Pick one that isn't set up and it asks for what it still needs (an endpoint, an API
|
|
59
|
+
key, kept in `~/.interlatch/provider-keys.json` readable by you only, and a model, with the ones the provider
|
|
60
|
+
offers listed), then offers one small test call. Leave a question blank to go back to the list. Asked on the
|
|
61
|
+
first install only, and again while the chosen one can't run; `--backend <name>` answers without asking (and,
|
|
62
|
+
without a terminal, says which `interlatch config` commands finish setting it up). With nothing ready,
|
|
63
|
+
sessions are recorded but not analyzed until one is set up.
|
|
57
64
|
2. Lists the coding agents on this Mac (Claude Code, Codex, GitHub Copilot, IBM Bob, Google Antigravity, OpenCode) and the MCP-only clients it
|
|
58
65
|
finds (Claude Desktop, Cursor, Windsurf, Gemini CLI), with how many sessions each has on disk.
|
|
59
66
|
3. Asks, for each one found and not yet connected, whether to record it (default yes), and whether to give each
|
|
@@ -67,8 +74,9 @@ run `uv tool install --python 3.13 .` in it.
|
|
|
67
74
|
agents run; `--no-launchd --no-ui` turns them off. With the background sync on, it also asks once whether to
|
|
68
75
|
show a desktop notification when a new version of Interlatch is out (`--notify-updates` or
|
|
69
76
|
`--no-notify-updates` answers without asking).
|
|
70
|
-
6. Explains analysis: each past session is read through your Claude Code
|
|
71
|
-
your plan's usage (or through
|
|
77
|
+
6. Explains analysis: each past session is read through your Claude Code, Codex or IBM Bob login, which counts
|
|
78
|
+
toward your plan's usage (or through the model provider you chose, billed to your key, or Ollama on this
|
|
79
|
+
computer), and the knowledge it yields builds each
|
|
72
80
|
project's knowledge base, then the **Glossary**, then the **Map**. Until sessions are analyzed, those two stay empty. It says how many sessions are waiting and how
|
|
73
81
|
long the background takes over them (6 every 15 minutes), then asks whether to analyze them now with a
|
|
74
82
|
progress bar per stage (sessions, knowledge bases, glossary, map themes): all of them, or the newest 20 for a
|
|
@@ -89,7 +89,7 @@ git の行とロードマップのファイルは、フォルダーがあるコ
|
|
|
89
89
|
## プロジェクトのグループ
|
|
90
90
|
|
|
91
91
|
関連するプロジェクトを、Aktio のリポジトリをまとめた **Aktio** のように 1 つの見出しの下に置けます(プロジェクトページとそのサイドバー)。
|
|
92
|
-
|
|
92
|
+
グループのページでは、それらを 1 つのプロジェクトとして見られます。グループは 1 階層だけで、各プロジェクトのセッション、ナレッジベース、ハブでの共有はそのままです。
|
|
93
93
|
|
|
94
94
|
- **作る:** プロジェクトページの **New group**、またはプロジェクトのグループメニュー(カードのフォルダーのボタン、一覧では行の末尾)の
|
|
95
95
|
**New group…**。入れるプロジェクトにチェックを付けると、それらが共有するフォルダーをフォルダーのルールとして提案し(コンピューターごとに 1 つ。
|
|
@@ -101,7 +101,19 @@ git の行とロードマップのファイルは、フォルダーがあるコ
|
|
|
101
101
|
- グループの見出しの **Edit** で、名前、ルール、プロジェクトの変更や削除ができます。グループを削除してもプロジェクトは残り、
|
|
102
102
|
ほかのグループのルールどおりの場所に戻ります。
|
|
103
103
|
- グループはページでもサイドバーでも折りたため、そのブラウザーでは折りたたんだままになります。**Sessions** のプロジェクトの絞り込みでは
|
|
104
|
-
プロジェクトがグループごとに並び、**All of *グループ***
|
|
104
|
+
プロジェクトがグループごとに並び、**All of *グループ*** でグループのすべてのセッションを表示できます。プロジェクトのページでは、パンくずリストにグループが出て、
|
|
105
|
+
そこからグループのページを開けます。
|
|
106
|
+
- **グループのページ:** グループの見出しの **Analyze**(サイドバーでは **The whole group**)で、グループのプロジェクトを 1 つの大きなプロジェクトとして見られます。
|
|
107
|
+
**By project** ではプロジェクトを並べ、グループのアクティブ時間に占める割合、セッション数、推定費用、ナレッジ、最後に作業した日を示します。その下には
|
|
108
|
+
プロジェクトのページと同じカードがすべてのプロジェクトをまとめて並び、各項目にプロジェクト名が付きます:**Needs you**(各フォルダーのコミット・プッシュしていない作業と、
|
|
109
|
+
各プロジェクトの最近のセッションが残した判断)、**Where you left off**、**The folders now**、各プロジェクトのロードマップ、バックログ、**Week by week**。
|
|
110
|
+
**Map** では、プロジェクトと使っているサービス・プラットフォームを構成図と同じ手描き風で描きます。多くの線が集まるサービス(Langfuse、データベース、クラウドなど)は
|
|
111
|
+
プロジェクト間で共有しているもので、点線の弧は[システムマップ](#システムマップ)がプロジェクト同士の間に見つけたつながり(相手のファイルを編集した、用語集が相手の名前を挙げている)です。
|
|
112
|
+
要素や線をクリックすると、マニフェストやセッションで実行したコマンドのどこで見つかったかを表示し、**Excalidraw** で編集用にダウンロードできます。
|
|
113
|
+
**Knowledge bases** では各プロジェクトのナレッジベースを、構成図があればそれも含めて並べて表示し(グループ全体のために何かを書き起こすことはしません)、
|
|
114
|
+
複数のプロジェクトで使う用語集の用語を先に示します。Knowledge、Sessions、Artifacts、Usage のタブはグループのすべてのプロジェクトを対象にし、
|
|
115
|
+
Usage には各プロジェクトの週ごとのアクティブ時間とグループのアクティビティカレンダーが加わります。プロジェクトのページと同じく、git とロードマップのファイルは
|
|
116
|
+
このコンピューターでページを開いたときだけ読みます。
|
|
105
117
|
|
|
106
118
|
グループはこのコンピューターのアーカイブに保存され、ハブには送られません。人を登録したハブでは管理者がハブのグループを見て変更でき、
|
|
107
119
|
一部のプロジェクトだけを見られる人にはグループは表示されません。ハブに送っているコンピューターでは、グループ全体をハブの 1 つの
|
|
@@ -14,11 +14,12 @@ Claude Code、Codex、GitHub Copilot、IBM Bob、Google Antigravity、OpenCode
|
|
|
14
14
|
サインインしていなければ扉には鍵がかかっていて、Google でのサインインを求められ、済めばひとりでに開きます。いったん入れば、
|
|
15
15
|
ページを再読み込みしても出るまで中にいます。
|
|
16
16
|
|
|
17
|
-
中では、レールに Innerlatch
|
|
17
|
+
中では、レールに Innerlatch のセクション(**パーティー**、**冒険**、**リーダーボード**、**アリーナ**)が並びます。
|
|
18
18
|
レールの下の扉(**Interlatch に戻る**)でもとのページに戻り、扉は背後で閉まります。リーダーボードとアリーナが出るのは、Interlatch を動かしているコンピューターだけです。専用のハブや、
|
|
19
19
|
一部のプロジェクトに限られたハブの人には出ません。
|
|
20
20
|
|
|
21
|
-
パーティーのアドレスは `#/innerlatch` です。以前の `#/party` や `#/leaderboard` のリンクもそのまま使え、Innerlatch
|
|
21
|
+
パーティーのアドレスは `#/innerlatch` です。以前の `#/party` や `#/leaderboard` のリンクもそのまま使え、Innerlatch のどのアドレスもまず扉を通ります。Innerlatch の中で教訓のリンクを押すと、教訓がページの上のウィンドウに開き、
|
|
22
|
+
ロードマップのモジュールと、事例なら場面・問い・答えが出ます。**Interlatch でセッションを開く**でダッシュボードのセッションのページに移ります。扉のアイコンを隠すには、
|
|
22
23
|
**設定 › 外観 › 扉**を**非表示**にします(このブラウザーだけ)。Innerlatch はアドレスから開けます。
|
|
23
24
|
|
|
24
25
|
## サインイン
|
|
@@ -55,16 +56,34 @@ Innerlatch の扉は、Google でサインインするまで開きません。
|
|
|
55
56
|
クラスが変わったとき、あなたがクエストを完了したときです。各エージェントのレベルの推移もグラフで見られます。1 つの教訓で
|
|
56
57
|
いくつものスキルが上がったときは 1 行にまとめます。加入、レベル、クラス、クエストはすべて残り、スキルアップは新しい 120 件が残ります。
|
|
57
58
|
|
|
58
|
-
##
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
59
|
+
## 冒険
|
|
60
|
+
|
|
61
|
+
**冒険**は、数えられる教訓をすべて載せたワールドマップです。6 つの属性がそれぞれ地方になり(技巧は鍛冶の町、データは湖と運河、
|
|
62
|
+
運用は山とサーバーの塔、守護は城壁と砦、秘術は魔法使いの塔、伝承は図書館のある古い森)、ロードマップのモジュールはその地方の
|
|
63
|
+
領地になります。教訓は、いちばんよく当てはまるモジュールの領地に、種類ごとのモンスターとして立っています(修正はバグの
|
|
64
|
+
Glitch、落とし穴は Mal、など)。まだ教訓が届いていない領地は霧に包まれています。パーティーはいちばん新しい教訓を学んだ場所に
|
|
65
|
+
立ち、メインクエストのマイルストーンはボスとして地方の門を守ります。ドラッグで見回し、スクロールかピンチで拡大縮小し、
|
|
66
|
+
ミニマップやサイドバーの地方で移動します。**リスト**では同じ遭遇を一覧にして、地方、種類、エージェントで絞り込めます。
|
|
67
|
+
|
|
68
|
+
モンスターをクリックすると、ターン制の戦闘になります。その教訓を学んだエージェントが先頭に立ち、ほかに最大 2 人が加わります。
|
|
69
|
+
毎ターン**たたかう**、**スキル**(教訓のロードマップのモジュールのひとつ。そのエージェントのレベルが高いほど強い)、**ぼうぎょ**、
|
|
70
|
+
**にげる**から選びます。モンスターの強さは教訓の経験値と信頼の段階で決まります。勝つと遭遇はクリア済みになり、マップの旗に
|
|
71
|
+
変わります(このパーティーのアーカイブに記録されます)。負けても**もう一度**でサイコロを振り直せます。戦闘でレベルや経験値が
|
|
72
|
+
変わることはありません。それらは教訓からだけ得られます。ボスとも戦えますが、倒れるのは**クエスト**でそのマイルストーンを
|
|
73
|
+
完了にしたときだけです。
|
|
74
|
+
|
|
75
|
+
## 町と装備
|
|
76
|
+
|
|
77
|
+
マップの各地方には**町**があります(冒険のサイドバーにも並びます)。町の店では、その地方のロードマップのモジュールに合わせた
|
|
78
|
+
**装備**を売っています。モジュールごとに武器、防具、お守りがあり、それぞれ 3 段階です。エージェントのだれかがそのスキルで
|
|
79
|
+
Lv 1 に達すると I 段階、Lv 3 で II 段階、Lv 5 で III 段階が店に並びます。買えるものは、エージェントの教訓が実際に扱っている
|
|
80
|
+
範囲に沿って増えていきます。どの町でも戦闘用の**道具**(ポーション、エーテル、フェニックスの尾、煙玉)を売っています。
|
|
81
|
+
|
|
82
|
+
**ゴールド**は、教訓ごとの最初の勝利で手に入ります(定着した教訓や確立した教訓ほど多く、同じ教訓では二度と手に入らず、
|
|
83
|
+
ボスからは出ません)。最初の勝利では、教訓の種類に応じた**戦利品**(修正からはパッチ、判断からは ADR の巻物など)が
|
|
84
|
+
落ちることもあります。道具と戦利品は戦闘の**どうぐ**コマンドで使います。エージェントはそれぞれ武器、防具、お守りの 3 つを
|
|
85
|
+
身につけます。エージェントのページか**バッグ**で付け替え、バッグでは要らないものを売れます。装備で変わるのは戦闘の数値だけで、
|
|
86
|
+
レベルや経験値は教訓からだけ得られます。
|
|
68
87
|
|
|
69
88
|
## アリーナ
|
|
70
89
|
|
|
@@ -14,13 +14,15 @@ the rail brings up a large door: click it to go through. Innerlatch opens only t
|
|
|
14
14
|
out, the door is locked and asks you to sign in with Google, then opens by itself once you have. Once through, you stay
|
|
15
15
|
in until you leave, even if you reload the page.
|
|
16
16
|
|
|
17
|
-
Inside, the rail shows Innerlatch's sections: **Party**, **Leaderboard** and **Arena**, and the door at the bottom of
|
|
17
|
+
Inside, the rail shows Innerlatch's sections: **Party**, **Adventure**, **Leaderboard** and **Arena**, and the door at the bottom of
|
|
18
18
|
the rail (**Back to Interlatch**) leads back to the page you came from, and the door shuts behind you. The Leaderboard
|
|
19
19
|
and the Arena show only on the computer that runs Interlatch: not on a dedicated hub, and not for hub people limited to
|
|
20
20
|
some projects.
|
|
21
21
|
|
|
22
22
|
The Party's address is `#/innerlatch`; old `#/party` and `#/leaderboard` links still work, and every address in
|
|
23
|
-
Innerlatch meets the door first.
|
|
23
|
+
Innerlatch meets the door first. A lesson link anywhere in Innerlatch opens the lesson in a window over the page, with
|
|
24
|
+
its roadmap modules and, for a case file, the scene, question and answer; **Open the session in Interlatch** leaves for
|
|
25
|
+
the dashboard's session page. To hide the door icon, set **Settings › Appearance › The door** to **Hidden** (this
|
|
24
26
|
browser only). Innerlatch still opens from its address.
|
|
25
27
|
|
|
26
28
|
## Signing in
|
|
@@ -62,17 +64,36 @@ person's review before a milestone counts.
|
|
|
62
64
|
and when you completed a quest, with a chart of each agent's level over time. A lesson that lifted several skills at
|
|
63
65
|
once is one line. Every join, level, class and quest stays on the list; of the skill-ups, the newest 120 do.
|
|
64
66
|
|
|
65
|
-
##
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
67
|
+
## Adventure
|
|
68
|
+
|
|
69
|
+
**Adventure** is a world map with every lesson that counts on it. Each of the six attributes is a region (Craft a forge
|
|
70
|
+
town, Data lakes and canals, Ops mountains and server towers, Guard walls and a keep, Arcana a wizard tower, Lore an old
|
|
71
|
+
forest with a library), and each roadmap module is a territory in its region. Every lesson stands in the territory of
|
|
72
|
+
its best-matching module as a monster of its kind (a fix is Glitch the bug, a gotcha is Mal, and so on). Territories no
|
|
73
|
+
lesson has reached yet lie under fog. Your party stands where the newest lesson was learned, and the main quest's
|
|
74
|
+
milestones guard their region's gate as bosses. Drag to look around, scroll or pinch to zoom, and use the minimap or the
|
|
75
|
+
sidebar's regions to jump; **List** shows the same encounters as a list you can filter by region, kind and agent.
|
|
76
|
+
|
|
77
|
+
Click a monster to battle it, turn by turn: the agent that taught the lesson leads, with up to two others. Each turn
|
|
78
|
+
choose **Attack**, **Skill** (one of the lesson's roadmap modules, stronger the higher that agent's level in it),
|
|
79
|
+
**Defend** or **Run**; the monster's strength comes from the lesson's XP and trust stage. Win, and the encounter is
|
|
80
|
+
cleared: it becomes a flag on the map, kept in your archive for this party. Lose, and **Retry** rolls new dice.
|
|
81
|
+
Battles never change levels or XP: those come only from the lessons. A boss can be fought, but it only falls when you
|
|
82
|
+
mark its milestone done under **Quests**.
|
|
83
|
+
|
|
84
|
+
## Towns and gear
|
|
85
|
+
|
|
86
|
+
Each region has a **town** on the map (also listed in the Adventure sidebar). Its shop sells **gear** for that region's
|
|
87
|
+
roadmap modules: a weapon, an armor and a charm for each module, in three tiers. A piece opens in the shop when one of
|
|
88
|
+
your agents reaches its level in that skill: Lv 1 for tier I, Lv 3 for tier II, Lv 5 for tier III. So what you can buy
|
|
89
|
+
follows what your agents' lessons actually cover. Every town also sells **supplies** for battles: Potion, Ether,
|
|
90
|
+
Phoenix Down and Smoke Bomb.
|
|
91
|
+
|
|
92
|
+
**Gold** comes from the first win over each lesson (more for an established or canonical one; never again for the same
|
|
93
|
+
lesson, and bosses pay none). A first win can also drop **loot** of the lesson's kind, such as a Patch from a fix or an
|
|
94
|
+
ADR Scroll from a decision. Use supplies and loot from the **Item** command in a battle. Each agent wears three slots
|
|
95
|
+
(weapon, armor, charm): change them on the agent's page or in the **Bag**, where you can also sell what you don't need.
|
|
96
|
+
Gear only changes battle numbers: levels and XP still come from lessons alone.
|
|
76
97
|
|
|
77
98
|
## The arena
|
|
78
99
|
|
|
@@ -288,14 +288,20 @@ class ApiRunner(Runner):
|
|
|
288
288
|
return "entra" if _tool("az") else ""
|
|
289
289
|
return "" if self.spec.needs_key else "none"
|
|
290
290
|
|
|
291
|
+
def missing(self) -> list[str]:
|
|
292
|
+
"""What it still needs before it can run, of "endpoint", "model" and "key" (in that order)."""
|
|
293
|
+
return [what for what, have in (("endpoint", self.base_url), ("model", self._models()[0]),
|
|
294
|
+
("key", self._credentials())) if not have]
|
|
295
|
+
|
|
291
296
|
def unavailable_reason(self) -> str:
|
|
292
297
|
from ...core.i18n import tr
|
|
293
298
|
|
|
294
|
-
|
|
299
|
+
missing = self.missing()
|
|
300
|
+
if "endpoint" in missing:
|
|
295
301
|
return tr("{label}: set its endpoint (providers.{name}.base_url)", label=self.label, name=self.name)
|
|
296
|
-
if
|
|
302
|
+
if "model" in missing:
|
|
297
303
|
return tr("{label}: choose a model (providers.{name}.model)", label=self.label, name=self.name)
|
|
298
|
-
if
|
|
304
|
+
if "key" in missing:
|
|
299
305
|
return tr("{label}: add an API key", label=self.label)
|
|
300
306
|
return ""
|
|
301
307
|
|
|
@@ -144,5 +144,11 @@ class Runner:
|
|
|
144
144
|
res.data = data
|
|
145
145
|
return res
|
|
146
146
|
|
|
147
|
+
def check(self) -> LLMResult:
|
|
148
|
+
"""One small call with the main model: do the endpoint, the key and the model work? Raises LLMError."""
|
|
149
|
+
return self.run('Reply with {"ok": true}.', {"type": "object", "properties": {"ok": {"type": "boolean"}},
|
|
150
|
+
"required": ["ok"]},
|
|
151
|
+
system="You check that a connection works.", effort="low", timeout=120)
|
|
152
|
+
|
|
147
153
|
|
|
148
154
|
CLAUDE_MODEL = re.compile(r"^(claude|sonnet|opus|haiku|fable)", re.I)
|
|
@@ -55,17 +55,20 @@ def status_of(row: dict, local_machine: str | None = None) -> str:
|
|
|
55
55
|
return "present" if _HASHES[key] == row["sha256"] else "changed"
|
|
56
56
|
|
|
57
57
|
|
|
58
|
-
def query(conn, *, kind: str | None = None, project: str |
|
|
59
|
-
|
|
58
|
+
def query(conn, *, kind: str | None = None, project: str | list[str] | None = None, agent: str | None = None,
|
|
59
|
+
q: str | None = None, session_id: str | None = None,
|
|
60
|
+
local_machine: str | None = None) -> tuple[list[dict], dict[str, int]]:
|
|
60
61
|
"""Artifacts newest first, with where each stands now, and the count of each kind (before the kind filter).
|
|
61
|
-
Across sessions the same file, link or commit is one item (its latest version) that knows how many sessions made it.
|
|
62
|
+
Across sessions the same file, link or commit is one item (its latest version) that knows how many sessions made it.
|
|
63
|
+
project: one project's path, or a group's paths (a list)."""
|
|
62
64
|
where, params = [], []
|
|
63
65
|
if session_id:
|
|
64
66
|
where.append("a.session_id = ?")
|
|
65
67
|
params.append(session_id)
|
|
66
68
|
if project:
|
|
67
|
-
|
|
68
|
-
|
|
69
|
+
paths = [project] if isinstance(project, str) else project
|
|
70
|
+
where.append(f"s.project_path IN ({','.join('?' * len(paths))})")
|
|
71
|
+
params += paths
|
|
69
72
|
if agent:
|
|
70
73
|
where.append("s.agent = ?")
|
|
71
74
|
params.append(agent)
|
|
@@ -356,6 +356,29 @@ JA: dict[str, str] = {
|
|
|
356
356
|
"sign in to see your party": "パーティーを見るにはサインインしてください",
|
|
357
357
|
"no such quest": "そのクエストはありません",
|
|
358
358
|
"no such track": "そのトラックはありません",
|
|
359
|
+
"no such lesson": "その教訓はありません",
|
|
360
|
+
# ---- the Town & gear (bag.py)
|
|
361
|
+
"no such item": "その道具はありません",
|
|
362
|
+
"this isn't sold here": "これはここでは売っていません",
|
|
363
|
+
"this is still locked: the party's skill in its module isn't high enough yet":
|
|
364
|
+
"まだロックされています。そのモジュールでのパーティーのスキルがまだ足りません",
|
|
365
|
+
"not enough gold": "ゴールドが足りません",
|
|
366
|
+
"you can carry at most 99 of each item": "同じ道具は 99 個までしか持てません",
|
|
367
|
+
"the number must be a whole number from 1 to 99": "数は 1 から 99 までの整数にしてください",
|
|
368
|
+
"you don't have that": "それを持っていません",
|
|
369
|
+
"you don't have that many": "そんなに持っていません",
|
|
370
|
+
"take it off before selling it": "売る前に装備を外してください",
|
|
371
|
+
"no such agent": "そのエージェントはいません",
|
|
372
|
+
"no such slot": "その装備欄はありません",
|
|
373
|
+
"that doesn't go in this slot": "それはこの装備欄には付けられません",
|
|
374
|
+
"only consumables and loot can be used": "使えるのは消耗品と戦利品だけです",
|
|
375
|
+
"none left": "もう残っていません",
|
|
376
|
+
"{tier} {noun} of {module}": "{tier}の{noun}({module})",
|
|
377
|
+
"+{atk} attack, and +{skill} to the {module} skill, in battle only": "攻撃 +{atk}、{module} のスキル +{skill}(戦闘中のみ)",
|
|
378
|
+
"+{hp} HP, and {cut}% less damage taken, in battle only": "HP +{hp}、受けるダメージ {cut}% 減(戦闘中のみ)",
|
|
379
|
+
"+{mp} MP, and +{skill} to the {module} skill, in battle only": "MP +{mp}、{module} のスキル +{skill}(戦闘中のみ)",
|
|
380
|
+
"Lv {level} in {module}": "{module} で Lv {level}",
|
|
381
|
+
"{name} town": "{name}の町",
|
|
359
382
|
"this computer is not a hub": "このコンピューターはハブではありません",
|
|
360
383
|
"Could not sign in": "サインインできませんでした",
|
|
361
384
|
"Ask an admin of this hub for a new invite, or open the hub's dashboard again from your own Interlatch "
|