diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6807fdd..439827b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -13,31 +13,23 @@ jobs: ci: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - name: Checkout + uses: actions/checkout@v4 # Provides both Flutter and the pinned Dart SDK for the workspace. - - uses: subosito/flutter-action@v2 + - name: Set up Flutter + uses: subosito/flutter-action@v2 with: channel: stable - - - name: Install Melos - run: dart global activate melos ^7.0.0 + cache: true - name: Resolve workspace run: flutter pub get + # Melos is resolved from the workspace lock, not installed globally. + - name: CI + run: dart run melos run ci --no-select + # TODO(M0): enable once the first generated code exists (tools/codegen_check). # - name: Check generated code is up to date # run: dart run tools/codegen_check/bin/codegen_check.dart - - - name: Format - run: melos run format - - - name: Analyze - run: melos run analyze - - - name: Architecture rules - run: melos run arch - - - name: Test - run: melos run test diff --git a/.gitignore b/.gitignore index 81d868e..75b3742 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ # Dart / Flutter .dart_tool/ +pubspec.lock *.dart.js *.js.deps *.js.map diff --git a/AGENTS.md b/AGENTS.md index 4ffc847..5038e30 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -4,7 +4,7 @@ This file is read first. It is short on purpose: it contains the invariants, the ## What the project is -AlteriOne is a personal universal assistant: one runtime with three modes (`chat`, `task`, `resident`), extensions (built-in or loaded as AOT modules), LLM providers, and LSP and MCP integrations in the MVP. It has a single owner and no multi-user mode. The stack is Dart 3.13 in a monorepo managed with the Dart workspace and Melos 7. +AlteriOne is a personal universal assistant: one runtime with three modes (`chat`, `task`, `resident`), extensions (built-in or loaded as AOT modules), LLM providers, and LSP and MCP integrations in the MVP. It has a single owner and no multi-user mode. The stack is Dart 3.13 in a monorepo managed with the Dart workspace and Melos 8. ## Invariants (never break) @@ -32,6 +32,8 @@ Before M0, `dart pub get` in the root is enough. After M0, the Melos scripts def - `melos run test`: tests; - `melos run ci`: all of the above. +Melos is run through the workspace lock via `dart run melos` (no global install). + ## Reading map Before a task, open `docs/spec/index.md` and find the row for your task. Then read the `AGENTS.md` of the directory you work in. Read only the spec files you need; the rest waste context. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 9972211..3e68305 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -25,7 +25,9 @@ Do not silently invent decisions that are missing from the spec: write the quest ## Development setup -Requirements: Dart `^3.13.0` (a [Flutter](https://flutter.dev) SDK `3.47+` provides it), Melos 7. +Requirements: Dart `^3.13.0` (a [Flutter](https://flutter.dev) SDK `3.47+` provides it), Melos 8. + +Melos is run through the workspace lock via `dart run melos` (no global install). ```sh flutter pub get # one resolution for the whole workspace diff --git a/README.md b/README.md index 9815feb..1c7c217 100644 --- a/README.md +++ b/README.md @@ -31,7 +31,7 @@ Distinctive decisions (each recorded in `docs/adr/` and `docs/spec/`): ## Repository layout -One Dart workspace (one `pubspec.lock`, shared resolution) plus Melos. Packages prefixed `alteri_one_` are published to pub.dev; the rest are marked `publish_to: none`. +One Dart workspace (lock file generated, not committed, shared resolution) plus Melos. Packages prefixed `alteri_one_` are published to pub.dev; the rest are marked `publish_to: none`. | Path | Package | Purpose | |---|---|---| @@ -60,12 +60,12 @@ One Dart workspace (one `pubspec.lock`, shared resolution) plus Melos. Packages ## Getting started -Requirements: [Dart](https://dart.dev) `^3.13.0` (a Flutter SDK gives you Dart; the client also needs [Flutter](https://flutter.dev) `3.47+`), and [Melos](https://pub.dev/packages/melos) 7. +Requirements: [Dart](https://dart.dev) `^3.13.0` (a Flutter SDK gives you Dart; the client also needs [Flutter](https://flutter.dev) `3.47+`), and [Melos](https://pub.dev/packages/melos) 8. ```sh git clone https://github.com/dip-develop/alteri-one.git cd alteri-one -flutter pub get # resolves the whole workspace, one lock file +flutter pub get # resolves the whole workspace, lock file generated, not committed melos run format # formatting melos run analyze # analyzer with fatal infos melos run arch # dependency rules (tools/arch_check) diff --git a/docs/adr/0011-melos-8-dependency-upgrade.md b/docs/adr/0011-melos-8-dependency-upgrade.md new file mode 100644 index 0000000..e813520 --- /dev/null +++ b/docs/adr/0011-melos-8-dependency-upgrade.md @@ -0,0 +1,26 @@ +# 0011. Melos 8 tooling line, lock file removal, and CI rewrite + +- Status: Accepted +- Date: 2026-10-20 + +## Context + +The Melos 7 global install is broken on the current toolchain, and the committed `pubspec.lock` keeps producing stale resolution diffs. The `build_runner` line is capped below 2.17.0 because of `injectable_generator` (build 4), and `openai_dart` stays on 8 because of `genkit_openai`. The scaffold originally pinned Melos 7 everywhere and committed a single root lock file; the Melos 7 scripts (`melos exec -c ...`) also need re-verification against the 8.x syntax. + +## Decision + +Upgrade the tooling to Melos 8.9.0 and run it through the workspace lock with `dart run melos` (no global install). Remove `pubspec.lock` from version control and add it to `.gitignore`; the lock file is generated on demand. Rewrite the CI workflow from scratch using `dart run melos run ci --no-select`. Keep `build_runner <2.17.0` because of the `injectable_generator` build 4 ceiling, and keep `openai_dart` 8 because of `genkit_openai`. The root `pubspec.yaml` carries the `melos:` configuration and the updated `melos.scripts` (Melos 8 forms: `run`/`exec` with `command`/`concurrency`/`packageFilters`, and `dependsOn` for `ci`). Update sections 4 and 5.2 of `docs/spec/architecture.md` accordingly. + +Q2 and T12 are resolved by this ADR. + +## Alternatives + +- Stay on Melos 7: rejected, the global install is broken and the 7.x script syntax is the unverified path. +- Restore PR #36 (the previous Melos 8 attempt): rejected; that attempt was reverted and is superseded by this one, which rewrites CI from scratch. + +## Consequences + +- All documentation and configuration now reference Melos 8; contributors run `dart run melos` instead of a global binary. +- The repository no longer commits a lock file; contributors run `dart pub get`/`flutter pub get` to regenerate it. +- `build_runner` and `openai_dart` ceilings remain in place until the upstream generators/providers are updated; tracked as open constraints, not as blockers. +- `docs/spec/open-questions.md` Q2 and `docs/spec/open-questions.md` T12 are marked resolved/closed. \ No newline at end of file diff --git a/docs/plan/M0.md b/docs/plan/M0.md index 00c1892..e722ab3 100644 --- a/docs/plan/M0.md +++ b/docs/plan/M0.md @@ -5,8 +5,8 @@ - ADR: — ## Acceptance criteria -- [x] Workspace with globs, one `pubspec.lock`, `resolution: workspace` in every member -- [x] Melos configured in the root `pubspec.yaml` (no `melos.yaml`), scripts: `format`, `analyze`, `gen`, `arch`, `test`, `ci` +- [x] Workspace with globs, lock file generated, not committed, `resolution: workspace` in every member +- [x] Melos configured in the root `pubspec.yaml` (no `melos.yaml`), scripts: `format`, `analyze`, `gen`, `arch`, `test`, `ci` (Melos 8) - [x] Shared `analysis_options.yaml` included by every member - [x] All workspace members exist with pubspecs, stub libraries, and metadata; no functional implementation - [x] `melos run ci` is green (stubs only) @@ -29,7 +29,7 @@ ## Open checks [VERIFY] - [x] T2 partially resolved: `genkit 1.0.0` requires `schemantic ^1.0.0`, so the workspace is pinned to schemantic 1.0, not 0.2.x (see `open-questions.md`, Q1) - [ ] T2: schemantic 1.0.0 annotations on SDK 3.13 -- [ ] T12: `melos.scripts` syntax and `melos exec` flags in Melos 7.8.x (see `open-questions.md`, Q2 on Melos 8) +- [x] T12: `melos.scripts` syntax and `melos exec` flags in Melos 8.9.0 (see `open-questions.md`, Q2) — closed ## Outcome -Scaffold created on 2026-10-17: 22 workspace members, root workspace + Melos 7 config, community files. Spikes and the three tools remain. +Scaffold created on 2026-10-17: 22 workspace members, root workspace + Melos 8 config, community files. Spikes and the three tools remain. diff --git a/docs/spec/architecture.md b/docs/spec/architecture.md index e4317b1..920e2df 100644 --- a/docs/spec/architecture.md +++ b/docs/spec/architecture.md @@ -9,8 +9,8 @@ Minimum versions as of the date of writing. Check the current version on pub.dev | Component | Minimum | Notes | |---|---|---| | Dart SDK | `^3.13.0` | fixed | -| Dart workspace | globs in `workspace:` | globs since Dart 3.11; one `pubspec.lock` at the root | -| Melos | 7.x | configured in the root `pubspec.yaml`; `melos.yaml` is not used [VERIFY current version] | +| Dart workspace | globs in `workspace:` | globs since Dart 3.11; lock file is generated and not committed | +| Melos | 8.x | configured in the root `pubspec.yaml`; `melos.yaml` is not used; run via `dart run melos` from the workspace lock | | bloc | `^9.2.0` | pure Dart. `flutter_bloc` only in the client | | bloc_concurrency | current | `sequential`, `droppable`, `restartable`, `concurrent` | | bloc_test | current | state tests [VERIFY compatibility with bloc 9] | @@ -23,11 +23,11 @@ Minimum versions as of the date of writing. Check the current version on pub.dev | genkit_a2ui | not used in the MVP | outside the MVP | | dotprompt | `^2.0.0` | `.prompt` files with JSON Schema in the frontmatter | | handlebars_dart | through dotprompt | no separate dependency unless custom helpers are needed | -| schemantic | `0.2.x` line | compatible with genkit packages. Do not use `1.0.0-rc.1` until verified [VERIFY] | +| schemantic | `^1.0.0` | stable release; matches genkit (`genkit: ^1.0.0`) | | hive_ce | current | `Box` and `LazyBox` | | shelf | current | HTTP and HTTPS through `securityContext` [VERIFY signature] | | injectable | current | DI in `core` and `app`, environments `dev`, `prod`, `test` | -| build_runner | current | code generation for schemantic and injectable | +| build_runner | current | code generation for schemantic and injectable; ceiling `<2.17.0` due to `injectable_generator` (build 4) | | yaml | current | configuration parsing | | http | current | client in `alteri_one_client` and providers | @@ -35,12 +35,12 @@ All workspace members resolve together. Version conflicts appear immediately. Ke ## 5. Repository layout -The monorepo is one Dart workspace (one `pubspec.lock`, shared dependency resolution) plus Melos 7 (scripts, filtering, versions, publishing). Packages are grouped by purpose and by publishing rules, not by technology. +The monorepo is one Dart workspace (lock file generated, not committed, shared dependency resolution) plus Melos 8 (scripts, filtering, versions, publishing). Packages are grouped by purpose and by publishing rules, not by technology. ``` alteri-one/ ├── pubspec.yaml # workspace root and Melos configuration (melos:, melos.scripts) -├── pubspec.lock # one lock file for the whole workspace +├── pubspec.lock # generated, not committed ├── analysis_options.yaml # shared lint rules, included by each member │ ├── packages/ # public pub.dev libraries (semver, changelog) @@ -100,7 +100,7 @@ alteri-one/ ### 5.2 Melos configuration -Melos 7 reads its settings from the root `pubspec.yaml`. There is no separate `melos.yaml`. Scripts are declared in `melos.scripts`. +Melos 8 reads its settings from the root `pubspec.yaml`. There is no separate `melos.yaml`. Scripts are declared in `melos.scripts`. Melos is run through the workspace lock via `dart run melos` (no global install). T12 is closed: Melos 8 syntax verified against 8.9.0. ```yaml # pubspec.yaml (root) @@ -117,18 +117,38 @@ workspace: - e2e - tools/* dev_dependencies: - melos: ^7.0.0 # [VERIFY current version on pub.dev] + melos: ^8.9.0 melos: scripts: - analyze: melos exec -c 1 -- dart analyze --fatal-infos - test: melos exec -c 4 --dir-exists=test -- dart test - format: dart format --set-exit-if-changed . - gen: melos exec -c 1 --depends-on build_runner -- dart run build_runner build --delete-conflicting-outputs - arch: dart run tools/arch_check/bin/arch_check.dart - ci: melos run format && melos run analyze && melos run arch && melos run test + format: + run: dart format --set-exit-if-changed . + analyze: + exec: + command: dart analyze --fatal-infos + concurrency: 1 + gen: + exec: + command: dart run build_runner build --delete-conflicting-outputs + concurrency: 1 + packageFilters: + dependsOn: build_runner + arch: + run: dart run tools/arch_check/bin/arch_check.dart + test: + exec: + command: dart test + concurrency: 4 + packageFilters: + dirExists: test + ci: + dependsOn: + - format + - analyze + - arch + - test ``` -[VERIFY: syntax of `melos.scripts`, composite scripts, and `melos exec` flags in the selected Melos 7 version.] +[VERIFY T12 closed: Melos 8 syntax verified against 8.9.0.] Versions and publishing: `melos version` uses conventional commits for `packages/`, `providers/`, and `extensions/`. Publishing follows the dependency order. Packages with `publish_to: none` are never published. diff --git a/docs/spec/forbidden-glossary.md b/docs/spec/forbidden-glossary.md index aefff6a..93389f6 100644 --- a/docs/spec/forbidden-glossary.md +++ b/docs/spec/forbidden-glossary.md @@ -12,7 +12,7 @@ Do not use anything listed here, even if you find it in old examples, articles, | MCP stdio as the extension transport | replaced by AOT modules and built-in mode | `Isolate.spawnUri` behind `ExtensionTransport`, or built-in mode | | `alterione-sdk` as the only package | replaced by a set of packages | `alteri_one_*` | | `alterione_*` as a package prefix | corrected | `alteri_one_*` | -| `melos.yaml` and `pubspec_overrides.yaml` | Melos 7 and pub workspaces | root `pubspec.yaml` with `workspace:` and `melos:` | +| `melos.yaml` and `pubspec_overrides.yaml` | Melos 8 and pub workspaces | root `pubspec.yaml` with `workspace:` and `melos:` | | Node.js or npm as the agent runtime | project decision | Dart, native binary | | Multi-user mode, accounts, tenants | out of scope: a personal assistant | one owner, devices with tokens | | `sqlite`, `drift` | replaced | Hive CE | diff --git a/docs/spec/open-questions.md b/docs/spec/open-questions.md index bb9ffbc..9b025de 100644 --- a/docs/spec/open-questions.md +++ b/docs/spec/open-questions.md @@ -9,7 +9,7 @@ Added during the M0 scaffold (2026-10-17). Until answered, the scaffold takes th | ID | Question | Conservative choice taken | |---|---|---| | Q1 | schemantic line: the spec pins 0.2.x ("do not use 1.0.0-rc.1 until verified"), but `genkit 1.0.0` declares `schemantic: ^1.0.0`, so 0.2.x cannot coexist with genkit in one workspace, and schemantic 1.0.0 is now a stable release. Confirm the move to the 1.0.0 line and update section 4. | pinned `schemantic: ^1.0.0` everywhere | -| Q2 | Melos line: the spec pins Melos 7 everywhere; Melos 8.x is the current pub.dev release. Migrate to 8 and update sections 4 and 5.2? [VERIFY T12] covers script syntax on 7.x. | pinned `melos: ^7.0.0` (resolves 7.8.2) | +| Q2 | ~~Melos line: the spec pins Melos 7 everywhere; Melos 8.x is the current pub.dev release. Migrate to 8 and update sections 4 and 5.2? [VERIFY T12 closed] covers script syntax on 7.x.~~ Resolved 2026-10-20: migrated to Melos 8.9.0; sections 4 and 5.2 updated. | pinned `melos: ^8.9.0` (resolves 8.9.0) | | Q3 | `tools/docs_check` is required by `docs/spec/index.md` ("Rules for maintaining documents") but is missing from the repository layout in `docs/spec/architecture.md`, section 5. Add it to section 5? | scaffolded `tools/docs_check` | | Q4 | ~~Repository URL: the spec gives the repository name `alteri-one` but not the GitHub owner.~~ Resolved 2026-10-17: the owner is `dip-develop`; all pubspecs and docs use `https://github.com/dip-develop/alteri-one`. | resolved | | Q5 | `public_member_api_docs` cannot coexist with the primary-constructor style mandated by section 7.2: the Dart 3.13.5 analyzer does not attach `///` comments to primary-constructor parameters (the style used by every example in `domain.md` section 8). Re-enable the lint when the analyzer supports parameter docs. Until then, parameter dartdoc stays mandatory by convention; `packages/AGENTS.md` ("public classes and methods have English dartdoc") is enforced in review, not by the analyzer. | lint omitted from the shared set; docs kept by convention | @@ -34,7 +34,7 @@ T1 is closed (ADR-0007). T14 is closed: the `RunBloc` suite in `alteri_one_core` | T9 | `hive_ce` API names (`openLazyBox`, encryption) | M0 | adjust the adapter | | T10 | the `SKILL.md` format in `genkit_middleware` | M5 | a custom parser | | T11 | the `dart build cli` command on Dart 3.13 for each OS | M4 | `dart compile exe` | -| T12 | `melos.scripts` syntax, composite scripts, `melos exec` flags | M0 | fix the root `pubspec.yaml` | +| T12 | ~~`melos.scripts` syntax, composite scripts, `melos exec` flags~~ Closed 2026-10-20: Melos 8 syntax verified against 8.9.0. | M0 | done | | T13 | the `shelf_io.serve` signature with `securityContext` | M4b | a TLS proxy in front of the daemon | | T14 | `bloc_test` compatibility with bloc 9 | M2 | test transitions as pure functions | | T15 | `StatePublisher` queue limits and overflow behavior | M5 | tune limits per topic | diff --git a/docs/spec/product.md b/docs/spec/product.md index 46de629..4e97fa9 100644 --- a/docs/spec/product.md +++ b/docs/spec/product.md @@ -9,12 +9,12 @@ | Name | AlteriOne | | Purpose | personal universal assistant: `chat`, `task`, and `resident` modes in one runtime | | Domain | https://alteri.one | -| Repository | `alteri-one`, monorepo: Dart workspace and Melos 7 | +| Repository | `alteri-one`, monorepo: Dart workspace and Melos 8 | | Dart packages | prefix `alteri_one_*` | | Binary | `alterione` (core and CLI). Personal builds get their own names | | License | Apache-2.0 | | Dart SDK | `^3.13.0` | -| Build and tasks | Dart pub workspace (dependency resolution) and Melos 7 (scripts, versions, publishing) | +| Build and tasks | Dart pub workspace (dependency resolution) and Melos 8 (scripts, versions, publishing) | | Website | Jaspr, SSR | | Configuration | YAML, schema from schemantic | | User model | one owner per instance, several devices of the owner; no accounts, no multi-user mode | diff --git a/docs/spec/roadmap.md b/docs/spec/roadmap.md index d55afd3..b6aa236 100644 --- a/docs/spec/roadmap.md +++ b/docs/spec/roadmap.md @@ -14,7 +14,7 @@ Each milestone ends with a green `melos run ci`, updated documents (if decisions | Milestone | Scope | In MVP | |---|---|---| -| M0 | Skeleton: workspace with globs, Melos 7, `analysis_options.yaml`, `tools/arch_check`, `tools/codegen_check`, `tools/docs_check`, CI. Spikes: schemantic, Hive (`kill -9`, `flush`), llama-server, Melos syntax, `dart language-server`, `mcp_dart`, keyring libraries | yes | +| M0 | Skeleton: workspace with globs, Melos 8, `analysis_options.yaml`, `tools/arch_check`, `tools/codegen_check`, `tools/docs_check`, CI. Spikes: schemantic, Hive (`kill -9`, `flush`), llama-server, Melos syntax, `dart language-server`, `mcp_dart`, keyring libraries | yes | | M1 | Contracts: `alteri_one_contracts`, `alteri_one_provider_api`, `alteri_one_sdk`, `alteri_one_client`, state projection types, golden tests | yes | | M2 | Domain and loop: `transition`, `PolicyGate` with taints and rights, journal, `RunBloc`, loop with a fake `LlmPort`, `chat` mode. Target metrics measured (section 2.8) | yes | | M3 | llama.cpp provider: adapter over `genkit_openai`, probe, conformance. Adapter decision recorded as an ADR | yes | diff --git a/pubspec.lock b/pubspec.lock deleted file mode 100644 index a09401e..0000000 --- a/pubspec.lock +++ /dev/null @@ -1,968 +0,0 @@ -# Generated by pub -# See https://dart.dev/tools/pub/glossary#lockfile -packages: - _fe_analyzer_shared: - dependency: transitive - description: - name: _fe_analyzer_shared - sha256: "9a3386eea899815698dd55995277cf7cb8572ee52b399a6edfb7ae2b50e5fc19" - url: "https://pub.dev" - source: hosted - version: "105.0.0" - analyzer: - dependency: transitive - description: - name: analyzer - sha256: "62993bed6eadbe9596c5c20d5c167e7bc563c5fe266657a04ddeb93bdb84f4c9" - url: "https://pub.dev" - source: hosted - version: "14.1.0" - ansi_styles: - dependency: transitive - description: - name: ansi_styles - sha256: "9c656cc12b3c27b17dd982b2cc5c0cfdfbdabd7bc8f3ae5e8542d9867b47ce8a" - url: "https://pub.dev" - source: hosted - version: "0.3.2+1" - ansicolor: - dependency: transitive - description: - name: ansicolor - sha256: "50e982d500bc863e1d703448afdbf9e5a72eb48840a4f766fa361ffd6877055f" - url: "https://pub.dev" - source: hosted - version: "2.0.3" - args: - dependency: transitive - description: - name: args - sha256: d0481093c50b1da8910eb0bb301626d4d8eb7284aa739614d2b394ee09e3ea04 - url: "https://pub.dev" - source: hosted - version: "2.7.0" - async: - dependency: transitive - description: - name: async - sha256: e2eb0491ba5ddb6177742d2da23904574082139b07c1e33b8503b9f46f3e1a37 - url: "https://pub.dev" - source: hosted - version: "2.13.1" - bloc: - dependency: transitive - description: - name: bloc - sha256: e03b235924e4f509c27b5d6b2f949200e0a91149a9818b4f65eeb56662b75413 - url: "https://pub.dev" - source: hosted - version: "9.2.1" - bloc_concurrency: - dependency: transitive - description: - name: bloc_concurrency - sha256: "86b7b17a0a78f77fca0d7c030632b59b593b22acea2d96972588f40d4ef53a94" - url: "https://pub.dev" - source: hosted - version: "0.3.0" - bloc_test: - dependency: transitive - description: - name: bloc_test - sha256: "1dd549e58be35148bc22a9135962106aa29334bc1e3f285994946a1057b29d7b" - url: "https://pub.dev" - source: hosted - version: "10.0.0" - boolean_selector: - dependency: transitive - description: - name: boolean_selector - sha256: "8aab1771e1243a5063b8b0ff68042d67334e3feab9e95b9490f9a6ebf73b42ea" - url: "https://pub.dev" - source: hosted - version: "2.1.2" - build: - dependency: transitive - description: - name: build - sha256: "8a5c5761af8e31748bba3c82f68925ace40f3225c3eea25be9beb57eca7cd7a8" - url: "https://pub.dev" - source: hosted - version: "4.0.11" - build_config: - dependency: transitive - description: - name: build_config - sha256: d466ed2dc9c6cd1d169948879b84ee061eb5e22c64a7c6089879c6296d272a8d - url: "https://pub.dev" - source: hosted - version: "1.3.3" - build_daemon: - dependency: transitive - description: - name: build_daemon - sha256: "39ab65f7c60c19af64b9ef96e6a5d3ab48355f7dddfd98a9079d55a8cb6628fc" - url: "https://pub.dev" - source: hosted - version: "4.1.7" - build_runner: - dependency: transitive - description: - name: build_runner - sha256: "894c243f6bc32015fec466ce30a6925bd537a77a426ee5bf481120477eb3de67" - url: "https://pub.dev" - source: hosted - version: "2.16.1" - built_collection: - dependency: transitive - description: - name: built_collection - sha256: "44922ecebd8e3d0cef743dadd3b54df4e87e2a4c52a29465a1872aa9e192caa8" - url: "https://pub.dev" - source: hosted - version: "5.1.2" - built_value: - dependency: transitive - description: - name: built_value - sha256: f87ea98192116f7093cb214551ce1929caae0681fdba282b3d8b4462adee7bb7 - url: "https://pub.dev" - source: hosted - version: "8.13.0" - characters: - dependency: transitive - description: - name: characters - sha256: faf38497bda5ead2a8c7615f4f7939df04333478bf32e4173fcb06d428b5716b - url: "https://pub.dev" - source: hosted - version: "1.4.1" - charcode: - dependency: transitive - description: - name: charcode - sha256: fb0f1107cac15a5ea6ef0a6ef71a807b9e4267c713bb93e00e92d737cc8dbd8a - url: "https://pub.dev" - source: hosted - version: "1.4.0" - checked_yaml: - dependency: transitive - description: - name: checked_yaml - sha256: "959525d3162f249993882720d52b7e0c833978df229be20702b33d48d91de70f" - url: "https://pub.dev" - source: hosted - version: "2.0.4" - cli_config: - dependency: transitive - description: - name: cli_config - sha256: ac20a183a07002b700f0c25e61b7ee46b23c309d76ab7b7640a028f18e4d99ec - url: "https://pub.dev" - source: hosted - version: "0.2.0" - cli_launcher: - dependency: transitive - description: - name: cli_launcher - sha256: d2dd1baf7ae4ff1550e731dcb8fe669a5c652903e833f75359c178222c44214e - url: "https://pub.dev" - source: hosted - version: "0.3.4" - cli_util: - dependency: transitive - description: - name: cli_util - sha256: "71e43f1976c3eae2d9468a5b4d6600bf8cae61508b87f27fa1799228935d48ab" - url: "https://pub.dev" - source: hosted - version: "0.5.2" - clock: - dependency: transitive - description: - name: clock - sha256: e51d50bca3217c9a9fa2b41a30e4a38971133f5f9ec7a3d57bae095007f1d28e - url: "https://pub.dev" - source: hosted - version: "1.1.3" - code_builder: - dependency: transitive - description: - name: code_builder - sha256: "811709c1badd02fc054039a13f66e0db1961865f9a314175f68c3eaeebec786f" - url: "https://pub.dev" - source: hosted - version: "4.13.0" - collection: - dependency: transitive - description: - name: collection - sha256: "2f5709ae4d3d59dd8f7cd309b4e023046b57d8a6c82130785d2b0e5868084e76" - url: "https://pub.dev" - source: hosted - version: "1.19.1" - conventional_commit: - dependency: transitive - description: - name: conventional_commit - sha256: c40b1b449ce2a63fa2ce852f35e3890b1e182f5951819934c0e4a66254bc0dc3 - url: "https://pub.dev" - source: hosted - version: "0.6.1+1" - convert: - dependency: transitive - description: - name: convert - sha256: b30acd5944035672bc15c6b7a8b47d773e41e2f17de064350988c5d02adb1c68 - url: "https://pub.dev" - source: hosted - version: "3.1.2" - coverage: - dependency: transitive - description: - name: coverage - sha256: "956a3de0725ca232ad353565a8290d3357592bf4250f6f298a185e2d949c5d3d" - url: "https://pub.dev" - source: hosted - version: "1.15.1" - crypto: - dependency: transitive - description: - name: crypto - sha256: c8ea0233063ba03258fbcf2ca4d6dadfefe14f02fab57702265467a19f27fadf - url: "https://pub.dev" - source: hosted - version: "3.0.7" - csslib: - dependency: transitive - description: - name: csslib - sha256: "09bad715f418841f976c77db72d5398dc1253c21fb9c0c7f0b0b985860b2d58e" - url: "https://pub.dev" - source: hosted - version: "1.0.2" - dart_style: - dependency: transitive - description: - name: dart_style - sha256: a0e4f65339b31eb6a9e6a12e14b4682a48d46fbc54a82f4a702396fbdbac63a7 - url: "https://pub.dev" - source: hosted - version: "3.1.14" - decimal: - dependency: transitive - description: - name: decimal - sha256: "2c3c8b74f2948066d3f42585477aec9cfc48fefd7a723a4d4274a6c71a5c0df7" - url: "https://pub.dev" - source: hosted - version: "3.2.6" - diff_match_patch: - dependency: transitive - description: - name: diff_match_patch - sha256: "2efc9e6e8f449d0abe15be240e2c2a3bcd977c8d126cfd70598aee60af35c0a4" - url: "https://pub.dev" - source: hosted - version: "0.4.1" - dotprompt: - dependency: transitive - description: - name: dotprompt - sha256: d588959f509a67062874c4378085f982a7ed4d10ae521c9504cd9c3331f13304 - url: "https://pub.dev" - source: hosted - version: "2.0.0" - email_validator: - dependency: transitive - description: - name: email_validator - sha256: b19aa5d92fdd76fbc65112060c94d45ba855105a28bb6e462de7ff03b12fa1fb - url: "https://pub.dev" - source: hosted - version: "3.0.0" - ffi: - dependency: transitive - description: - name: ffi - sha256: "6d7fd89431262d8f3125e81b50d3847a091d846eafcd4fdb88dd06f36d705a45" - url: "https://pub.dev" - source: hosted - version: "2.2.0" - file: - dependency: transitive - description: - name: file - sha256: a3b4f84adafef897088c160faf7dfffb7696046cb13ae90b508c2cbc95d3b8d4 - url: "https://pub.dev" - source: hosted - version: "7.0.1" - fixnum: - dependency: transitive - description: - name: fixnum - sha256: b6dc7065e46c974bc7c5f143080a6764ec7a4be6da1285ececdc37be96de53be - url: "https://pub.dev" - source: hosted - version: "1.1.1" - flutter: - dependency: transitive - description: flutter - source: sdk - version: "0.0.0" - flutter_bloc: - dependency: transitive - description: - name: flutter_bloc - sha256: cf51747952201a455a1c840f8171d273be009b932c75093020f9af64f2123e38 - url: "https://pub.dev" - source: hosted - version: "9.1.1" - flutter_lints: - dependency: transitive - description: - name: flutter_lints - sha256: "3105dc8492f6183fb076ccf1f351ac3d60564bff92e20bfc4af9cc1651f4e7e1" - url: "https://pub.dev" - source: hosted - version: "6.0.0" - frontend_server_client: - dependency: transitive - description: - name: frontend_server_client - sha256: "404dbf9bce29beafbe9dcb19219447b6f7d49900cd42b8d3b7af102b24508e25" - url: "https://pub.dev" - source: hosted - version: "4.1.0" - genkit: - dependency: transitive - description: - name: genkit - sha256: "478f914efde52c6c1c0f2177b5a1632c2e5dc39e88cab29b48930d80137c1a2a" - url: "https://pub.dev" - source: hosted - version: "1.0.0" - genkit_openai: - dependency: transitive - description: - name: genkit_openai - sha256: "963843257ad027c641e4fcc5594a174f035be413137093a6c0c6903c23b2b80c" - url: "https://pub.dev" - source: hosted - version: "1.0.0" - get_it: - dependency: transitive - description: - name: get_it - sha256: "2b5c6b077aad30bba9782178baff6076a2044141f1d5f2f15b43bca3fbe74874" - url: "https://pub.dev" - source: hosted - version: "9.3.0" - glob: - dependency: transitive - description: - name: glob - sha256: "218aeb56050c714f62a3182775320dfa04602b55074873e24e31bbd39bda96fb" - url: "https://pub.dev" - source: hosted - version: "2.2.0" - graphs: - dependency: transitive - description: - name: graphs - sha256: "741bbf84165310a68ff28fe9e727332eef1407342fca52759cb21ad8177bb8d0" - url: "https://pub.dev" - source: hosted - version: "2.3.2" - handlebars_dart: - dependency: transitive - description: - name: handlebars_dart - sha256: "267f946bae6b46be5f80150a4572740098a460866ee2b6cb7ac39cd463eb7562" - url: "https://pub.dev" - source: hosted - version: "1.0.0" - hive_ce: - dependency: transitive - description: - name: hive_ce - sha256: "8b6eea82b06a7e2bb298a6a279139c45838b82491a66f3972bf609d48681392a" - url: "https://pub.dev" - source: hosted - version: "2.22.0" - hotreloader: - dependency: transitive - description: - name: hotreloader - sha256: "66871df468fc24eee81f1a0a7cb98acc104716f9b7376d355437b48d633c4ebf" - url: "https://pub.dev" - source: hosted - version: "4.4.0" - html: - dependency: transitive - description: - name: html - sha256: "43b67b8f43321ab066817dfac5619596c98bb1b61624e77203bb4351785f9699" - url: "https://pub.dev" - source: hosted - version: "0.15.7" - http: - dependency: transitive - description: - name: http - sha256: "87721a4a50b19c7f1d49001e51409bddc46303966ce89a65af4f4e6004896412" - url: "https://pub.dev" - source: hosted - version: "1.6.0" - http_multi_server: - dependency: transitive - description: - name: http_multi_server - sha256: aa6199f908078bb1c5efb8d8638d4ae191aac11b311132c3ef48ce352fb52ef8 - url: "https://pub.dev" - source: hosted - version: "3.2.2" - http_parser: - dependency: transitive - description: - name: http_parser - sha256: "178d74305e7866013777bab2c3d8726205dc5a4dd935297175b19a23a2e66571" - url: "https://pub.dev" - source: hosted - version: "4.1.2" - injectable: - dependency: transitive - description: - name: injectable - sha256: "1da6399509e44ddb0d8a4a35291d7122c4efb5c625a9d733bf5e48d4a72e379e" - url: "https://pub.dev" - source: hosted - version: "3.0.0" - injectable_generator: - dependency: transitive - description: - name: injectable_generator - sha256: "24d525c60ed9abf345c8749c3291ca1b3f1d21fd53344c0c644da820a92049df" - url: "https://pub.dev" - source: hosted - version: "3.1.3" - intl: - dependency: transitive - description: - name: intl - sha256: "1ca20c894b1717686a2319b8548763d812bc0aabdac580420a44c5178c57a867" - url: "https://pub.dev" - source: hosted - version: "0.20.3" - io: - dependency: transitive - description: - name: io - sha256: "2635216ca6a737e60de577ffa1a48a0bec76ca8a62917cfc1bb88c14c570646f" - url: "https://pub.dev" - source: hosted - version: "1.1.0" - isolate_channel: - dependency: transitive - description: - name: isolate_channel - sha256: a9d3d620695bc984244dafae00b95e4319d6974b2d77f4b9e1eb4f2efe099094 - url: "https://pub.dev" - source: hosted - version: "0.6.1" - jaspr: - dependency: transitive - description: - name: jaspr - sha256: c4e7459389fadb3f48ed7c2d5165b000ad93f4aaa08f86a490eaf5d3b652bb3e - url: "https://pub.dev" - source: hosted - version: "0.23.5" - json_annotation: - dependency: transitive - description: - name: json_annotation - sha256: "2a743920d81b7910627f68ee2c9ac1fc0bfee32b9fc3403587d7c6791ca12f80" - url: "https://pub.dev" - source: hosted - version: "4.12.0" - json_schema_builder: - dependency: transitive - description: - name: json_schema_builder - sha256: "657db3229ba10305c48e8686e8b3aca16e12e639c3a7b96687a6eeb7836b6e1b" - url: "https://pub.dev" - source: hosted - version: "0.1.7" - lean_builder: - dependency: transitive - description: - name: lean_builder - sha256: "5acef0857ec7163da8e6e5c86a9d7df87ce2487c8e866eb24c60508b82e67917" - url: "https://pub.dev" - source: hosted - version: "1.2.2" - lints: - dependency: transitive - description: - name: lints - sha256: "12f842a479589fea194fe5c5a3095abc7be0c1f2ddfa9a0e76aed1dbd26a87df" - url: "https://pub.dev" - source: hosted - version: "6.1.0" - logging: - dependency: transitive - description: - name: logging - sha256: c8245ada5f1717ed44271ed1c26b8ce85ca3228fd2ffdb75468ab01979309d61 - url: "https://pub.dev" - source: hosted - version: "1.3.0" - matcher: - dependency: transitive - description: - name: matcher - sha256: "31bd099b47c10cd1aeb55146a2d46ce0277630ecef3f7dae54ad7873f36696cd" - url: "https://pub.dev" - source: hosted - version: "0.12.20" - material_color_utilities: - dependency: transitive - description: - name: material_color_utilities - sha256: "9c337007e82b1889149c82ed242ed1cb24a66044e30979c44912381e9be4c48b" - url: "https://pub.dev" - source: hosted - version: "0.13.0" - melos: - dependency: "direct dev" - description: - name: melos - sha256: "5fc1a858e3d90fdc42f2f423b95f901214bbc3d9e80c99125d9352f12453721d" - url: "https://pub.dev" - source: hosted - version: "7.8.2" - meta: - dependency: transitive - description: - name: meta - sha256: "307249ce4ff29d58a18e97f6345f539382eb9c9c29ecda628900f31de0443dd9" - url: "https://pub.dev" - source: hosted - version: "1.19.0" - mime: - dependency: transitive - description: - name: mime - sha256: bd47de35f07e27267e69c8c8b22edf9473bfee170a60d60fcc93730c5144b7f6 - url: "https://pub.dev" - source: hosted - version: "2.1.0" - mocktail: - dependency: transitive - description: - name: mocktail - sha256: "5e1bf53cc7baa8062a33b84424deb61513858ea05c601b8509e683815b5914aa" - url: "https://pub.dev" - source: hosted - version: "1.0.5" - mustache_template: - dependency: transitive - description: - name: mustache_template - sha256: "17a8de9072575bb1a3237b90ed1f756b2189995b334df2ad12b7cdd76b13f3ce" - url: "https://pub.dev" - source: hosted - version: "2.0.6" - nested: - dependency: transitive - description: - name: nested - sha256: "03bac4c528c64c95c722ec99280375a6f2fc708eec17c7b3f07253b626cd2a20" - url: "https://pub.dev" - source: hosted - version: "1.0.0" - node_preamble: - dependency: transitive - description: - name: node_preamble - sha256: "6e7eac89047ab8a8d26cf16127b5ed26de65209847630400f9aefd7cd5c730db" - url: "https://pub.dev" - source: hosted - version: "2.0.2" - openai_dart: - dependency: transitive - description: - name: openai_dart - sha256: "75612562082498b8271ffa030308db032c65b68aa862b458ee752376e0341311" - url: "https://pub.dev" - source: hosted - version: "8.1.0" - package_config: - dependency: transitive - description: - name: package_config - sha256: ffcf4cf3d6c0b74ac43708d9f56625506e8a68aa935abe9d267a7330f320eb5d - url: "https://pub.dev" - source: hosted - version: "3.0.0" - path: - dependency: transitive - description: - name: path - sha256: "75cca69d1490965be98c73ceaea117e8a04dd21217b37b292c9ddbec0d955bc5" - url: "https://pub.dev" - source: hosted - version: "1.9.1" - petitparser: - dependency: transitive - description: - name: petitparser - sha256: "2f1564aadb14215e478563b5406cb80729d022158c01dc50c96013c2f7eb4790" - url: "https://pub.dev" - source: hosted - version: "7.1.0" - platform: - dependency: transitive - description: - name: platform - sha256: a36d119c13416516a7b5913fbe8af8531e11633d784c550b2125f76c758524ec - url: "https://pub.dev" - source: hosted - version: "3.2.0" - pool: - dependency: transitive - description: - name: pool - sha256: "4177f68c237ea2128d1bee66ac17b2ce05ba3dbaafcbdd54c5d40a39d0b6b11c" - url: "https://pub.dev" - source: hosted - version: "1.5.3" - process: - dependency: transitive - description: - name: process - sha256: "4242ba3508d37e01808bdf71ad1d5bb93a8d671bf2e7450e6b1b353fb0808891" - url: "https://pub.dev" - source: hosted - version: "5.0.6" - prompts: - dependency: transitive - description: - name: prompts - sha256: "3773b845e85a849f01e793c4fc18a45d52d7783b4cb6c0569fad19f9d0a774a1" - url: "https://pub.dev" - source: hosted - version: "2.0.0" - provider: - dependency: transitive - description: - name: provider - sha256: "4e82183fa20e5ca25703ead7e05de9e4cceed1fbd1eadc1ac3cb6f565a09f272" - url: "https://pub.dev" - source: hosted - version: "6.1.5+1" - pub_semver: - dependency: transitive - description: - name: pub_semver - sha256: "261236774e8b1d69cfc6b9eabbc96c40f25e7a2d6b171f3385d4f65d5734fb24" - url: "https://pub.dev" - source: hosted - version: "2.2.1" - pub_updater: - dependency: transitive - description: - name: pub_updater - sha256: "739a0161d73a6974c0675b864fb0cf5147305f7b077b7f03a58fa7a9ab3e7e7d" - url: "https://pub.dev" - source: hosted - version: "0.5.0" - pubspec_parse: - dependency: transitive - description: - name: pubspec_parse - sha256: c38b81cbf34450b67e0265d73433569d12e34782e30ed769c9cc99c9d5f2e796 - url: "https://pub.dev" - source: hosted - version: "1.6.0" - rational: - dependency: transitive - description: - name: rational - sha256: cb808fb6f1a839e6fc5f7d8cb3b0a10e1db48b3be102de73938c627f0b636336 - url: "https://pub.dev" - source: hosted - version: "2.2.3" - recase: - dependency: transitive - description: - name: recase - sha256: e4eb4ec2dcdee52dcf99cb4ceabaffc631d7424ee55e56f280bc039737f89213 - url: "https://pub.dev" - source: hosted - version: "4.1.0" - schemantic: - dependency: transitive - description: - name: schemantic - sha256: f56f27cfc1db2466f3102b4d2814e184128df43aee92e093a880273dd1bccb75 - url: "https://pub.dev" - source: hosted - version: "1.0.0" - shelf: - dependency: transitive - description: - name: shelf - sha256: e75e9cf311d7fd712048038cc17c25199c38536c20330d53e7db058b543d5a48 - url: "https://pub.dev" - source: hosted - version: "1.4.3" - shelf_gzip: - dependency: transitive - description: - name: shelf_gzip - sha256: "4f4b793c0f969f348aece1ab4cc05fceba9fea431c1ce76b1bc0fa369cecfc15" - url: "https://pub.dev" - source: hosted - version: "4.1.0" - shelf_packages_handler: - dependency: transitive - description: - name: shelf_packages_handler - sha256: "89f967eca29607c933ba9571d838be31d67f53f6e4ee15147d5dc2934fee1b1e" - url: "https://pub.dev" - source: hosted - version: "3.0.2" - shelf_proxy: - dependency: transitive - description: - name: shelf_proxy - sha256: "0c3a7b2b4c111cae8a6d9077701e0622c6013d38a780373ac359d6d45b3aa10b" - url: "https://pub.dev" - source: hosted - version: "1.0.5" - shelf_static: - dependency: transitive - description: - name: shelf_static - sha256: "480504af9e5323899c5be26a4f6c2fc4437d50954d39842f0290f4ae733d57b4" - url: "https://pub.dev" - source: hosted - version: "1.2.0" - shelf_web_socket: - dependency: transitive - description: - name: shelf_web_socket - sha256: "3632775c8e90d6c9712f883e633716432a27758216dfb61bd86a8321c0580925" - url: "https://pub.dev" - source: hosted - version: "3.0.0" - sky_engine: - dependency: transitive - description: flutter - source: sdk - version: "0.0.0" - source_gen: - dependency: transitive - description: - name: source_gen - sha256: "833ea7d15b5be79949d3d6c077da0267a0bd93c16897b36a771395a91e63086e" - url: "https://pub.dev" - source: hosted - version: "4.3.1" - source_map_stack_trace: - dependency: transitive - description: - name: source_map_stack_trace - sha256: c0713a43e323c3302c2abe2a1cc89aa057a387101ebd280371d6a6c9fa68516b - url: "https://pub.dev" - source: hosted - version: "2.1.2" - source_maps: - dependency: transitive - description: - name: source_maps - sha256: "14c2945847669b44089bb1222f66873d7ff7103c58911917f2a63c5a62327898" - url: "https://pub.dev" - source: hosted - version: "0.10.14" - source_span: - dependency: transitive - description: - name: source_span - sha256: "56a02f1f4cd1a2d96303c0144c93bd6d909eea6bee6bf5a0e0b685edbd4c47ab" - url: "https://pub.dev" - source: hosted - version: "1.10.2" - stack_trace: - dependency: transitive - description: - name: stack_trace - sha256: "277654b3034d17ac6f9f1cb5595db011b1d5d41e8806866db28e0abaa101c490" - url: "https://pub.dev" - source: hosted - version: "1.12.2" - stream_channel: - dependency: transitive - description: - name: stream_channel - sha256: "969e04c80b8bcdf826f8f16579c7b14d780458bd97f56d107d3950fdbeef059d" - url: "https://pub.dev" - source: hosted - version: "2.1.4" - stream_transform: - dependency: transitive - description: - name: stream_transform - sha256: a00e5f18bffc764f923e7dec1038527f7fe7a1791361a7117f0358193f13d53a - url: "https://pub.dev" - source: hosted - version: "2.1.2" - string_scanner: - dependency: transitive - description: - name: string_scanner - sha256: "921cd31725b72fe181906c6a94d987c78e3b98c2e205b397ea399d4054872b43" - url: "https://pub.dev" - source: hosted - version: "1.4.1" - term_glyph: - dependency: transitive - description: - name: term_glyph - sha256: "7f554798625ea768a7518313e58f83891c7f5024f88e46e7182a4558850a4b8e" - url: "https://pub.dev" - source: hosted - version: "1.2.2" - test: - dependency: transitive - description: - name: test - sha256: "44b2fccf4407bcdb5e105c064c5d6b5e2a640c87761f8b03cdce8cf532d98cfa" - url: "https://pub.dev" - source: hosted - version: "1.33.0" - test_api: - dependency: transitive - description: - name: test_api - sha256: "47481c58bb92d0b1d218f0510ff5647e768f8e1256d07077a151fb520923b51d" - url: "https://pub.dev" - source: hosted - version: "0.7.15" - test_core: - dependency: transitive - description: - name: test_core - sha256: "9dec4c178bd61493e1cd2060ffe701fcb61c43da2493e99590fb1b0cc82eb4af" - url: "https://pub.dev" - source: hosted - version: "0.6.21" - typed_data: - dependency: transitive - description: - name: typed_data - sha256: f9049c039ebfeb4cf7a7104a675823cd72dba8297f264b6637062516699fa006 - url: "https://pub.dev" - source: hosted - version: "1.4.0" - universal_web: - dependency: transitive - description: - name: universal_web - sha256: c58bee740bb9672a3df36cef9b8ee06e75e738d91bcb4309f1ada62a0763a1c0 - url: "https://pub.dev" - source: hosted - version: "1.1.1+2" - vector_math: - dependency: transitive - description: - name: vector_math - sha256: "92b9910f66ed1057fd4da7b040ae7c74cafacf885bdc81be496928d5049b032d" - url: "https://pub.dev" - source: hosted - version: "2.4.3" - vm_service: - dependency: transitive - description: - name: vm_service - sha256: "89b11d62e1040ee681af3b4f1c97a803ecbf010c6e8b9c5896ee5b08c3bf7b78" - url: "https://pub.dev" - source: hosted - version: "15.4.0" - watcher: - dependency: transitive - description: - name: watcher - sha256: "1398c9f081a753f9226febe8900fce8f7d0a67163334e1c94a2438339d79d635" - url: "https://pub.dev" - source: hosted - version: "1.2.1" - web: - dependency: transitive - description: - name: web - sha256: "868d88a33d8a87b18ffc05f9f030ba328ffefba92d6c127917a2ba740f9cfe4a" - url: "https://pub.dev" - source: hosted - version: "1.1.1" - web_socket: - dependency: transitive - description: - name: web_socket - sha256: "34d64019aa8e36bf9842ac014bb5d2f5586ca73df5e4d9bf5c936975cae6982c" - url: "https://pub.dev" - source: hosted - version: "1.0.1" - web_socket_channel: - dependency: transitive - description: - name: web_socket_channel - sha256: d645757fb0f4773d602444000a8131ff5d48c9e47adfe9772652dd1a4f2d45c8 - url: "https://pub.dev" - source: hosted - version: "3.0.3" - webkit_inspection_protocol: - dependency: transitive - description: - name: webkit_inspection_protocol - sha256: "87d3f2333bb240704cd3f1c6b5b7acd8a10e7f0bc28c28dcf14e782014f4a572" - url: "https://pub.dev" - source: hosted - version: "1.2.1" - xml: - dependency: transitive - description: - name: xml - sha256: "0fe8cc98946def31cbcbc8734aa4067031e6f65ea3a78a508060bfed2200bfeb" - url: "https://pub.dev" - source: hosted - version: "7.1.0" - xxh3: - dependency: transitive - description: - name: xxh3 - sha256: "399a0438f5d426785723c99da6b16e136f4953fb1e9db0bf270bd41dd4619916" - url: "https://pub.dev" - source: hosted - version: "1.2.0" - yaml: - dependency: transitive - description: - name: yaml - sha256: f67cdd8e07d3c6329146aaef1ba043542b3134c12489f553ca9a7435d1068aea - url: "https://pub.dev" - source: hosted - version: "3.1.4" - yaml_edit: - dependency: transitive - description: - name: yaml_edit - sha256: "07c9e63ba42519745182b88ca12264a7ba2484d8239958778dfe4d44fe760488" - url: "https://pub.dev" - source: hosted - version: "2.2.4" -sdks: - dart: ">=3.13.0 <4.0.0" - flutter: ">=1.16.0" diff --git a/pubspec.yaml b/pubspec.yaml index c5722ab..ac987f3 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -20,15 +20,34 @@ workspace: - tools/* dev_dependencies: - # [VERIFY T12] Melos 8.x exists; the specification pins the 7.x line. - # See docs/spec/open-questions.md before moving to 8. - melos: ^7.0.0 + # Melos 8.x: run from the workspace lock via `dart run melos`. + melos: ^8.9.0 melos: scripts: - format: dart format --set-exit-if-changed . - analyze: melos exec -c 1 -- dart analyze --fatal-infos - gen: melos exec -c 1 --depends-on build_runner -- dart run build_runner build --delete-conflicting-outputs - arch: dart run tools/arch_check/bin/arch_check.dart - test: melos exec -c 4 --dir-exists=test -- dart test - ci: melos run format && melos run analyze && melos run arch && melos run test + format: + run: dart format --set-exit-if-changed . + analyze: + exec: + command: dart analyze --fatal-infos + concurrency: 1 + gen: + exec: + command: dart run build_runner build --delete-conflicting-outputs + concurrency: 1 + packageFilters: + dependsOn: build_runner + arch: + run: dart run tools/arch_check/bin/arch_check.dart + test: + exec: + command: dart test + concurrency: 4 + packageFilters: + dirExists: test + ci: + dependsOn: + - format + - analyze + - arch + - test