@matteeh/osq 0.1.0 → 0.2.0
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.
- package/README.md +415 -72
- package/dist/cli/approve.d.ts +13 -3
- package/dist/cli/approve.d.ts.map +1 -1
- package/dist/cli/approve.js +59 -4
- package/dist/cli/approve.js.map +1 -1
- package/dist/cli/bin.js +0 -0
- package/dist/cli/confirm.d.ts +21 -0
- package/dist/cli/confirm.d.ts.map +1 -0
- package/dist/cli/confirm.js +28 -0
- package/dist/cli/confirm.js.map +1 -0
- package/dist/cli/doctor.d.ts +13 -0
- package/dist/cli/doctor.d.ts.map +1 -0
- package/dist/cli/doctor.js +23 -0
- package/dist/cli/doctor.js.map +1 -0
- package/dist/cli/done.d.ts +12 -0
- package/dist/cli/done.d.ts.map +1 -0
- package/dist/cli/done.js +26 -0
- package/dist/cli/done.js.map +1 -0
- package/dist/cli/inbox.d.ts +22 -0
- package/dist/cli/inbox.d.ts.map +1 -0
- package/dist/cli/inbox.js +41 -0
- package/dist/cli/inbox.js.map +1 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +127 -8
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/init.d.ts +1 -0
- package/dist/cli/init.d.ts.map +1 -1
- package/dist/cli/init.js +9 -3
- package/dist/cli/init.js.map +1 -1
- package/dist/cli/lint.d.ts +26 -0
- package/dist/cli/lint.d.ts.map +1 -0
- package/dist/cli/lint.js +60 -0
- package/dist/cli/lint.js.map +1 -0
- package/dist/cli/migrate.d.ts +18 -0
- package/dist/cli/migrate.d.ts.map +1 -0
- package/dist/cli/migrate.js +42 -0
- package/dist/cli/migrate.js.map +1 -0
- package/dist/cli/new.js +1 -1
- package/dist/cli/new.js.map +1 -1
- package/dist/cli/plan-queue.d.ts +50 -0
- package/dist/cli/plan-queue.d.ts.map +1 -0
- package/dist/cli/plan-queue.js +167 -0
- package/dist/cli/plan-queue.js.map +1 -0
- package/dist/cli/plan.d.ts +35 -0
- package/dist/cli/plan.d.ts.map +1 -0
- package/dist/cli/plan.js +153 -0
- package/dist/cli/plan.js.map +1 -0
- package/dist/cli/queue.d.ts +9 -0
- package/dist/cli/queue.d.ts.map +1 -0
- package/dist/cli/queue.js +24 -0
- package/dist/cli/queue.js.map +1 -0
- package/dist/cli/reject.d.ts +8 -0
- package/dist/cli/reject.d.ts.map +1 -0
- package/dist/cli/reject.js +18 -0
- package/dist/cli/reject.js.map +1 -0
- package/dist/cli/report.d.ts +1 -1
- package/dist/cli/report.d.ts.map +1 -1
- package/dist/cli/report.js +141 -14
- package/dist/cli/report.js.map +1 -1
- package/dist/cli/retry.d.ts +7 -0
- package/dist/cli/retry.d.ts.map +1 -0
- package/dist/cli/retry.js +29 -0
- package/dist/cli/retry.js.map +1 -0
- package/dist/cli/serve.d.ts +30 -0
- package/dist/cli/serve.d.ts.map +1 -0
- package/dist/cli/serve.js +136 -0
- package/dist/cli/serve.js.map +1 -0
- package/dist/cli/setup.d.ts.map +1 -1
- package/dist/cli/setup.js +7 -1
- package/dist/cli/setup.js.map +1 -1
- package/dist/cli/show.d.ts +2 -1
- package/dist/cli/show.d.ts.map +1 -1
- package/dist/cli/show.js +20 -3
- package/dist/cli/show.js.map +1 -1
- package/dist/cli/status.d.ts +1 -1
- package/dist/cli/status.d.ts.map +1 -1
- package/dist/cli/status.js +2 -2
- package/dist/cli/status.js.map +1 -1
- package/dist/cli/watch.d.ts +9 -6
- package/dist/cli/watch.d.ts.map +1 -1
- package/dist/cli/watch.js +15 -2
- package/dist/cli/watch.js.map +1 -1
- package/dist/core/foundation/config-codex.d.ts +22 -0
- package/dist/core/foundation/config-codex.d.ts.map +1 -0
- package/dist/core/foundation/config-codex.js +58 -0
- package/dist/core/foundation/config-codex.js.map +1 -0
- package/dist/core/foundation/config-doctor.d.ts +14 -0
- package/dist/core/foundation/config-doctor.d.ts.map +1 -0
- package/dist/core/foundation/config-doctor.js +29 -0
- package/dist/core/foundation/config-doctor.js.map +1 -0
- package/dist/core/foundation/config-env.d.ts +3 -0
- package/dist/core/foundation/config-env.d.ts.map +1 -0
- package/dist/core/foundation/config-env.js +22 -0
- package/dist/core/foundation/config-env.js.map +1 -0
- package/dist/core/foundation/config-gates.d.ts +22 -0
- package/dist/core/foundation/config-gates.d.ts.map +1 -0
- package/dist/core/foundation/config-gates.js +43 -0
- package/dist/core/foundation/config-gates.js.map +1 -0
- package/dist/core/foundation/config-pi.d.ts +64 -0
- package/dist/core/foundation/config-pi.d.ts.map +1 -0
- package/dist/core/foundation/config-pi.js +131 -0
- package/dist/core/foundation/config-pi.js.map +1 -0
- package/dist/core/foundation/config-planning.d.ts +24 -0
- package/dist/core/foundation/config-planning.d.ts.map +1 -0
- package/dist/core/foundation/config-planning.js +60 -0
- package/dist/core/foundation/config-planning.js.map +1 -0
- package/dist/core/foundation/config-queue.d.ts +15 -0
- package/dist/core/foundation/config-queue.d.ts.map +1 -0
- package/dist/core/foundation/config-queue.js +24 -0
- package/dist/core/foundation/config-queue.js.map +1 -0
- package/dist/core/foundation/config-serve.d.ts +20 -0
- package/dist/core/foundation/config-serve.d.ts.map +1 -0
- package/dist/core/foundation/config-serve.js +35 -0
- package/dist/core/foundation/config-serve.js.map +1 -0
- package/dist/core/{config.d.ts → foundation/config.d.ts} +34 -3
- package/dist/core/foundation/config.d.ts.map +1 -0
- package/dist/core/{config.js → foundation/config.js} +35 -18
- package/dist/core/foundation/config.js.map +1 -0
- package/dist/core/foundation/doctor-managed.d.ts +13 -0
- package/dist/core/foundation/doctor-managed.d.ts.map +1 -0
- package/dist/core/foundation/doctor-managed.js +77 -0
- package/dist/core/foundation/doctor-managed.js.map +1 -0
- package/dist/core/foundation/doctor.d.ts +19 -0
- package/dist/core/foundation/doctor.d.ts.map +1 -0
- package/dist/core/foundation/doctor.js +187 -0
- package/dist/core/foundation/doctor.js.map +1 -0
- package/dist/core/foundation/harness-catalog.d.ts +96 -0
- package/dist/core/foundation/harness-catalog.d.ts.map +1 -0
- package/dist/core/foundation/harness-catalog.js +182 -0
- package/dist/core/foundation/harness-catalog.js.map +1 -0
- package/dist/core/foundation/init-blocks.d.ts +33 -0
- package/dist/core/foundation/init-blocks.d.ts.map +1 -0
- package/dist/core/foundation/init-blocks.js +165 -0
- package/dist/core/foundation/init-blocks.js.map +1 -0
- package/dist/core/foundation/init-managed.d.ts +10 -0
- package/dist/core/foundation/init-managed.d.ts.map +1 -0
- package/dist/core/foundation/init-managed.js +115 -0
- package/dist/core/foundation/init-managed.js.map +1 -0
- package/dist/core/foundation/init.d.ts +18 -0
- package/dist/core/foundation/init.d.ts.map +1 -0
- package/dist/core/foundation/init.js +113 -0
- package/dist/core/foundation/init.js.map +1 -0
- package/dist/core/{logger.d.ts → foundation/logger.d.ts} +1 -0
- package/dist/core/foundation/logger.d.ts.map +1 -0
- package/dist/core/{logger.js → foundation/logger.js} +18 -2
- package/dist/core/foundation/logger.js.map +1 -0
- package/dist/core/{new.d.ts → foundation/new.d.ts} +3 -0
- package/dist/core/foundation/new.d.ts.map +1 -0
- package/dist/core/foundation/new.js +206 -0
- package/dist/core/foundation/new.js.map +1 -0
- package/dist/core/foundation/package-root.d.ts +9 -0
- package/dist/core/foundation/package-root.d.ts.map +1 -0
- package/dist/core/foundation/package-root.js +11 -0
- package/dist/core/foundation/package-root.js.map +1 -0
- package/dist/core/lifecycle/done.d.ts +17 -0
- package/dist/core/lifecycle/done.d.ts.map +1 -0
- package/dist/core/lifecycle/done.js +97 -0
- package/dist/core/lifecycle/done.js.map +1 -0
- package/dist/core/lifecycle/reject.d.ts +26 -0
- package/dist/core/lifecycle/reject.d.ts.map +1 -0
- package/dist/core/lifecycle/reject.js +83 -0
- package/dist/core/lifecycle/reject.js.map +1 -0
- package/dist/core/lifecycle/retry-transition.d.ts +23 -0
- package/dist/core/lifecycle/retry-transition.d.ts.map +1 -0
- package/dist/core/lifecycle/retry-transition.js +41 -0
- package/dist/core/lifecycle/retry-transition.js.map +1 -0
- package/dist/core/lifecycle/retry.d.ts +18 -0
- package/dist/core/lifecycle/retry.d.ts.map +1 -0
- package/dist/core/lifecycle/retry.js +179 -0
- package/dist/core/lifecycle/retry.js.map +1 -0
- package/dist/core/report/approval-flags.d.ts +29 -0
- package/dist/core/report/approval-flags.d.ts.map +1 -0
- package/dist/core/report/approval-flags.js +138 -0
- package/dist/core/report/approval-flags.js.map +1 -0
- package/dist/core/report/planning-economics.d.ts +39 -0
- package/dist/core/report/planning-economics.d.ts.map +1 -0
- package/dist/core/report/planning-economics.js +168 -0
- package/dist/core/report/planning-economics.js.map +1 -0
- package/dist/core/report/planning-observed.d.ts +59 -0
- package/dist/core/report/planning-observed.d.ts.map +1 -0
- package/dist/core/report/planning-observed.js +135 -0
- package/dist/core/report/planning-observed.js.map +1 -0
- package/dist/core/report/planning-records.d.ts +69 -0
- package/dist/core/report/planning-records.d.ts.map +1 -0
- package/dist/core/report/planning-records.js +149 -0
- package/dist/core/report/planning-records.js.map +1 -0
- package/dist/core/report/planning-slice-lookup.d.ts +13 -0
- package/dist/core/report/planning-slice-lookup.d.ts.map +1 -0
- package/dist/core/report/planning-slice-lookup.js +146 -0
- package/dist/core/report/planning-slice-lookup.js.map +1 -0
- package/dist/core/report/planning-slice-measures.d.ts +17 -0
- package/dist/core/report/planning-slice-measures.d.ts.map +1 -0
- package/dist/core/report/planning-slice-measures.js +85 -0
- package/dist/core/report/planning-slice-measures.js.map +1 -0
- package/dist/core/report/planning-slice-record.d.ts +4 -0
- package/dist/core/report/planning-slice-record.d.ts.map +1 -0
- package/dist/core/report/planning-slice-record.js +66 -0
- package/dist/core/report/planning-slice-record.js.map +1 -0
- package/dist/core/report/planning-slice-turns.d.ts +13 -0
- package/dist/core/report/planning-slice-turns.d.ts.map +1 -0
- package/dist/core/report/planning-slice-turns.js +41 -0
- package/dist/core/report/planning-slice-turns.js.map +1 -0
- package/dist/core/report/planning-slice.d.ts +70 -0
- package/dist/core/report/planning-slice.d.ts.map +1 -0
- package/dist/core/report/planning-slice.js +147 -0
- package/dist/core/report/planning-slice.js.map +1 -0
- package/dist/core/report/planning.d.ts +31 -0
- package/dist/core/report/planning.d.ts.map +1 -0
- package/dist/core/report/planning.js +75 -0
- package/dist/core/report/planning.js.map +1 -0
- package/dist/core/report/report-events.d.ts +52 -0
- package/dist/core/report/report-events.d.ts.map +1 -0
- package/dist/core/report/report-events.js +198 -0
- package/dist/core/report/report-events.js.map +1 -0
- package/dist/core/report/report-pre-spawn.d.ts +25 -0
- package/dist/core/report/report-pre-spawn.d.ts.map +1 -0
- package/dist/core/report/report-pre-spawn.js +40 -0
- package/dist/core/report/report-pre-spawn.js.map +1 -0
- package/dist/core/report/report-retries.d.ts +30 -0
- package/dist/core/report/report-retries.d.ts.map +1 -0
- package/dist/core/report/report-retries.js +100 -0
- package/dist/core/report/report-retries.js.map +1 -0
- package/dist/core/report/report.d.ts +276 -0
- package/dist/core/report/report.d.ts.map +1 -0
- package/dist/core/report/report.js +1421 -0
- package/dist/core/report/report.js.map +1 -0
- package/dist/core/{lock.d.ts → run/lock.d.ts} +6 -0
- package/dist/core/run/lock.d.ts.map +1 -0
- package/dist/core/{lock.js → run/lock.js} +7 -15
- package/dist/core/run/lock.js.map +1 -0
- package/dist/core/run/manifest.d.ts +39 -0
- package/dist/core/run/manifest.d.ts.map +1 -0
- package/dist/core/run/manifest.js +137 -0
- package/dist/core/run/manifest.js.map +1 -0
- package/dist/core/run/scope-hash.d.ts +71 -0
- package/dist/core/run/scope-hash.d.ts.map +1 -0
- package/dist/core/run/scope-hash.js +177 -0
- package/dist/core/run/scope-hash.js.map +1 -0
- package/dist/core/run/scope.d.ts +30 -0
- package/dist/core/run/scope.d.ts.map +1 -0
- package/dist/core/run/scope.js +193 -0
- package/dist/core/run/scope.js.map +1 -0
- package/dist/core/run/summary.d.ts +8 -0
- package/dist/core/run/summary.d.ts.map +1 -0
- package/dist/core/run/summary.js +25 -0
- package/dist/core/run/summary.js.map +1 -0
- package/dist/core/run/verification.d.ts +23 -0
- package/dist/core/run/verification.d.ts.map +1 -0
- package/dist/core/run/verification.js +78 -0
- package/dist/core/run/verification.js.map +1 -0
- package/dist/core/spec/approve.d.ts +31 -0
- package/dist/core/spec/approve.d.ts.map +1 -0
- package/dist/core/spec/approve.js +111 -0
- package/dist/core/spec/approve.js.map +1 -0
- package/dist/core/spec/delta.d.ts +77 -0
- package/dist/core/spec/delta.d.ts.map +1 -0
- package/dist/core/spec/delta.js +581 -0
- package/dist/core/spec/delta.js.map +1 -0
- package/dist/core/spec/digest-flags.d.ts +21 -0
- package/dist/core/spec/digest-flags.d.ts.map +1 -0
- package/dist/core/spec/digest-flags.js +194 -0
- package/dist/core/spec/digest-flags.js.map +1 -0
- package/dist/core/spec/digest-verify-starts.d.ts +5 -0
- package/dist/core/spec/digest-verify-starts.d.ts.map +1 -0
- package/dist/core/spec/digest-verify-starts.js +31 -0
- package/dist/core/spec/digest-verify-starts.js.map +1 -0
- package/dist/core/spec/digest.d.ts +42 -0
- package/dist/core/spec/digest.d.ts.map +1 -0
- package/dist/core/spec/digest.js +170 -0
- package/dist/core/spec/digest.js.map +1 -0
- package/dist/core/spec/hasher.d.ts +11 -0
- package/dist/core/spec/hasher.d.ts.map +1 -0
- package/dist/core/{hasher.js → spec/hasher.js} +27 -3
- package/dist/core/spec/hasher.js.map +1 -0
- package/dist/core/spec/linter.d.ts +79 -0
- package/dist/core/spec/linter.d.ts.map +1 -0
- package/dist/core/spec/linter.js +826 -0
- package/dist/core/spec/linter.js.map +1 -0
- package/dist/core/spec/migrate.d.ts +54 -0
- package/dist/core/spec/migrate.d.ts.map +1 -0
- package/dist/core/spec/migrate.js +297 -0
- package/dist/core/spec/migrate.js.map +1 -0
- package/dist/core/spec/openspec-version.d.ts +30 -0
- package/dist/core/spec/openspec-version.d.ts.map +1 -0
- package/dist/core/spec/openspec-version.js +118 -0
- package/dist/core/spec/openspec-version.js.map +1 -0
- package/dist/core/spec/parser.d.ts +82 -0
- package/dist/core/spec/parser.d.ts.map +1 -0
- package/dist/core/spec/parser.js +221 -0
- package/dist/core/spec/parser.js.map +1 -0
- package/dist/core/spec/verify-paths.d.ts +18 -0
- package/dist/core/spec/verify-paths.d.ts.map +1 -0
- package/dist/core/spec/verify-paths.js +139 -0
- package/dist/core/spec/verify-paths.js.map +1 -0
- package/dist/core/spec/verify-starts.d.ts +45 -0
- package/dist/core/spec/verify-starts.d.ts.map +1 -0
- package/dist/core/spec/verify-starts.js +61 -0
- package/dist/core/spec/verify-starts.js.map +1 -0
- package/dist/core/status/inbox-cursor.d.ts +10 -0
- package/dist/core/status/inbox-cursor.d.ts.map +1 -0
- package/dist/core/status/inbox-cursor.js +33 -0
- package/dist/core/status/inbox-cursor.js.map +1 -0
- package/dist/core/status/inbox-projection.d.ts +15 -0
- package/dist/core/status/inbox-projection.d.ts.map +1 -0
- package/dist/core/status/inbox-projection.js +20 -0
- package/dist/core/status/inbox-projection.js.map +1 -0
- package/dist/core/status/inbox-text.d.ts +4 -0
- package/dist/core/status/inbox-text.d.ts.map +1 -0
- package/dist/core/status/inbox-text.js +48 -0
- package/dist/core/status/inbox-text.js.map +1 -0
- package/dist/core/status/inbox.d.ts +53 -0
- package/dist/core/status/inbox.d.ts.map +1 -0
- package/dist/core/status/inbox.js +167 -0
- package/dist/core/status/inbox.js.map +1 -0
- package/dist/core/status/layout.d.ts +29 -0
- package/dist/core/status/layout.d.ts.map +1 -0
- package/dist/core/status/layout.js +77 -0
- package/dist/core/status/layout.js.map +1 -0
- package/dist/core/status/queue-parser.d.ts +13 -0
- package/dist/core/status/queue-parser.d.ts.map +1 -0
- package/dist/core/status/queue-parser.js +88 -0
- package/dist/core/status/queue-parser.js.map +1 -0
- package/dist/core/status/queue-planning.d.ts +62 -0
- package/dist/core/status/queue-planning.d.ts.map +1 -0
- package/dist/core/status/queue-planning.js +158 -0
- package/dist/core/status/queue-planning.js.map +1 -0
- package/dist/core/status/queue-report-detail.d.ts +50 -0
- package/dist/core/status/queue-report-detail.d.ts.map +1 -0
- package/dist/core/status/queue-report-detail.js +140 -0
- package/dist/core/status/queue-report-detail.js.map +1 -0
- package/dist/core/status/queue-report.d.ts +14 -0
- package/dist/core/status/queue-report.d.ts.map +1 -0
- package/dist/core/status/queue-report.js +41 -0
- package/dist/core/status/queue-report.js.map +1 -0
- package/dist/core/status/queue-state.d.ts +53 -0
- package/dist/core/status/queue-state.d.ts.map +1 -0
- package/dist/core/status/queue-state.js +167 -0
- package/dist/core/status/queue-state.js.map +1 -0
- package/dist/core/status/queue.d.ts +7 -0
- package/dist/core/status/queue.d.ts.map +1 -0
- package/dist/core/status/queue.js +4 -0
- package/dist/core/status/queue.js.map +1 -0
- package/dist/core/status/show.d.ts +102 -0
- package/dist/core/status/show.d.ts.map +1 -0
- package/dist/core/status/show.js +704 -0
- package/dist/core/status/show.js.map +1 -0
- package/dist/core/status/state.d.ts +56 -0
- package/dist/core/status/state.d.ts.map +1 -0
- package/dist/core/status/state.js +187 -0
- package/dist/core/status/state.js.map +1 -0
- package/dist/core/status/status.d.ts +23 -0
- package/dist/core/status/status.d.ts.map +1 -0
- package/dist/core/status/status.js +173 -0
- package/dist/core/status/status.js.map +1 -0
- package/dist/core/web/web-data-change.d.ts +10 -0
- package/dist/core/web/web-data-change.d.ts.map +1 -0
- package/dist/core/web/web-data-change.js +106 -0
- package/dist/core/web/web-data-change.js.map +1 -0
- package/dist/core/web/web-data-folders.d.ts +39 -0
- package/dist/core/web/web-data-folders.d.ts.map +1 -0
- package/dist/core/web/web-data-folders.js +125 -0
- package/dist/core/web/web-data-folders.js.map +1 -0
- package/dist/core/web/web-data-graph.d.ts +8 -0
- package/dist/core/web/web-data-graph.d.ts.map +1 -0
- package/dist/core/web/web-data-graph.js +113 -0
- package/dist/core/web/web-data-graph.js.map +1 -0
- package/dist/core/web/web-data-lifecycle.d.ts +43 -0
- package/dist/core/web/web-data-lifecycle.d.ts.map +1 -0
- package/dist/core/web/web-data-lifecycle.js +141 -0
- package/dist/core/web/web-data-lifecycle.js.map +1 -0
- package/dist/core/web/web-data-observations.d.ts +30 -0
- package/dist/core/web/web-data-observations.d.ts.map +1 -0
- package/dist/core/web/web-data-observations.js +181 -0
- package/dist/core/web/web-data-observations.js.map +1 -0
- package/dist/core/web/web-data-tokens.d.ts +29 -0
- package/dist/core/web/web-data-tokens.d.ts.map +1 -0
- package/dist/core/web/web-data-tokens.js +62 -0
- package/dist/core/web/web-data-tokens.js.map +1 -0
- package/dist/core/web/web-data-types.d.ts +156 -0
- package/dist/core/web/web-data-types.d.ts.map +1 -0
- package/dist/core/web/web-data-types.js +15 -0
- package/dist/core/web/web-data-types.js.map +1 -0
- package/dist/core/web/web-data.d.ts +10 -0
- package/dist/core/web/web-data.d.ts.map +1 -0
- package/dist/core/web/web-data.js +8 -0
- package/dist/core/web/web-data.js.map +1 -0
- package/dist/core/web/web-events.d.ts +54 -0
- package/dist/core/web/web-events.d.ts.map +1 -0
- package/dist/core/web/web-events.js +162 -0
- package/dist/core/web/web-events.js.map +1 -0
- package/dist/core/web/web-export.d.ts +18 -0
- package/dist/core/web/web-export.d.ts.map +1 -0
- package/dist/core/web/web-export.js +112 -0
- package/dist/core/web/web-export.js.map +1 -0
- package/dist/core/web/web-server.d.ts +34 -0
- package/dist/core/web/web-server.d.ts.map +1 -0
- package/dist/core/web/web-server.js +182 -0
- package/dist/core/web/web-server.js.map +1 -0
- package/dist/core/web/web-static.d.ts +20 -0
- package/dist/core/web/web-static.d.ts.map +1 -0
- package/dist/core/web/web-static.js +104 -0
- package/dist/core/web/web-static.js.map +1 -0
- package/dist/harness/{agy.d.ts → agy/agy.d.ts} +8 -6
- package/dist/harness/agy/agy.d.ts.map +1 -0
- package/dist/harness/{agy.js → agy/agy.js} +49 -34
- package/dist/harness/agy/agy.js.map +1 -0
- package/dist/harness/claude/claude-turns.d.ts +29 -0
- package/dist/harness/claude/claude-turns.d.ts.map +1 -0
- package/dist/harness/claude/claude-turns.js +162 -0
- package/dist/harness/claude/claude-turns.js.map +1 -0
- package/dist/harness/claude/claude-usage.d.ts +12 -0
- package/dist/harness/claude/claude-usage.d.ts.map +1 -0
- package/dist/harness/claude/claude-usage.js +144 -0
- package/dist/harness/claude/claude-usage.js.map +1 -0
- package/dist/harness/codex/codex-observe-usage.d.ts +6 -0
- package/dist/harness/codex/codex-observe-usage.d.ts.map +1 -0
- package/dist/harness/codex/codex-observe-usage.js +215 -0
- package/dist/harness/codex/codex-observe-usage.js.map +1 -0
- package/dist/harness/codex/codex-prompt.d.ts +17 -0
- package/dist/harness/codex/codex-prompt.d.ts.map +1 -0
- package/dist/harness/codex/codex-prompt.js +43 -0
- package/dist/harness/codex/codex-prompt.js.map +1 -0
- package/dist/harness/codex/codex-stream.d.ts +23 -0
- package/dist/harness/codex/codex-stream.d.ts.map +1 -0
- package/dist/harness/codex/codex-stream.js +182 -0
- package/dist/harness/codex/codex-stream.js.map +1 -0
- package/dist/harness/codex/codex-usage.d.ts +26 -0
- package/dist/harness/codex/codex-usage.d.ts.map +1 -0
- package/dist/harness/codex/codex-usage.js +122 -0
- package/dist/harness/codex/codex-usage.js.map +1 -0
- package/dist/harness/codex/codex.d.ts +16 -0
- package/dist/harness/codex/codex.d.ts.map +1 -0
- package/dist/harness/codex/codex.js +92 -0
- package/dist/harness/codex/codex.js.map +1 -0
- package/dist/harness/index.d.ts +11 -2
- package/dist/harness/index.d.ts.map +1 -1
- package/dist/harness/index.js +24 -9
- package/dist/harness/index.js.map +1 -1
- package/dist/harness/mock.d.ts +5 -2
- package/dist/harness/mock.d.ts.map +1 -1
- package/dist/harness/mock.js +10 -11
- package/dist/harness/mock.js.map +1 -1
- package/dist/harness/opencode/opencode-observe-usage.d.ts +4 -0
- package/dist/harness/opencode/opencode-observe-usage.d.ts.map +1 -0
- package/dist/harness/opencode/opencode-observe-usage.js +100 -0
- package/dist/harness/opencode/opencode-observe-usage.js.map +1 -0
- package/dist/harness/opencode/opencode-usage.d.ts +24 -0
- package/dist/harness/opencode/opencode-usage.d.ts.map +1 -0
- package/dist/harness/opencode/opencode-usage.js +181 -0
- package/dist/harness/opencode/opencode-usage.js.map +1 -0
- package/dist/harness/{opencode.d.ts → opencode/opencode.d.ts} +10 -7
- package/dist/harness/opencode/opencode.d.ts.map +1 -0
- package/dist/harness/{opencode.js → opencode/opencode.js} +159 -70
- package/dist/harness/opencode/opencode.js.map +1 -0
- package/dist/harness/pi/pi-args.d.ts +9 -0
- package/dist/harness/pi/pi-args.d.ts.map +1 -0
- package/dist/harness/pi/pi-args.js +33 -0
- package/dist/harness/pi/pi-args.js.map +1 -0
- package/dist/harness/pi/pi-stream.d.ts +27 -0
- package/dist/harness/pi/pi-stream.d.ts.map +1 -0
- package/dist/harness/pi/pi-stream.js +176 -0
- package/dist/harness/pi/pi-stream.js.map +1 -0
- package/dist/harness/pi/pi-tools.d.ts +5 -0
- package/dist/harness/pi/pi-tools.d.ts.map +1 -0
- package/dist/harness/pi/pi-tools.js +31 -0
- package/dist/harness/pi/pi-tools.js.map +1 -0
- package/dist/harness/pi/pi.d.ts +11 -0
- package/dist/harness/pi/pi.d.ts.map +1 -0
- package/dist/harness/pi/pi.js +109 -0
- package/dist/harness/pi/pi.js.map +1 -0
- package/dist/harness/prompt.d.ts +11 -0
- package/dist/harness/prompt.d.ts.map +1 -0
- package/dist/harness/prompt.js +105 -0
- package/dist/harness/prompt.js.map +1 -0
- package/dist/harness/types.d.ts +287 -8
- package/dist/harness/types.d.ts.map +1 -1
- package/dist/harness/types.js +125 -0
- package/dist/harness/types.js.map +1 -1
- package/dist/index.d.ts +13 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -1
- package/dist/index.js.map +1 -1
- package/dist/watcher/archive-verify.d.ts +9 -0
- package/dist/watcher/archive-verify.d.ts.map +1 -0
- package/dist/watcher/archive-verify.js +80 -0
- package/dist/watcher/archive-verify.js.map +1 -0
- package/dist/watcher/archiver.d.ts +14 -2
- package/dist/watcher/archiver.d.ts.map +1 -1
- package/dist/watcher/archiver.js +112 -33
- package/dist/watcher/archiver.js.map +1 -1
- package/dist/watcher/attempt.d.ts +19 -0
- package/dist/watcher/attempt.d.ts.map +1 -0
- package/dist/watcher/attempt.js +94 -0
- package/dist/watcher/attempt.js.map +1 -0
- package/dist/watcher/auto-retry.d.ts +11 -0
- package/dist/watcher/auto-retry.d.ts.map +1 -0
- package/dist/watcher/auto-retry.js +180 -0
- package/dist/watcher/auto-retry.js.map +1 -0
- package/dist/watcher/build.d.ts +24 -0
- package/dist/watcher/build.d.ts.map +1 -0
- package/dist/watcher/build.js +169 -0
- package/dist/watcher/build.js.map +1 -0
- package/dist/watcher/change-verify.d.ts +25 -0
- package/dist/watcher/change-verify.d.ts.map +1 -0
- package/dist/watcher/change-verify.js +57 -0
- package/dist/watcher/change-verify.js.map +1 -0
- package/dist/watcher/dev.d.ts +51 -0
- package/dist/watcher/dev.d.ts.map +1 -0
- package/dist/watcher/dev.js +124 -0
- package/dist/watcher/dev.js.map +1 -0
- package/dist/watcher/failure-reason.d.ts +7 -0
- package/dist/watcher/failure-reason.d.ts.map +1 -0
- package/dist/watcher/failure-reason.js +2 -0
- package/dist/watcher/failure-reason.js.map +1 -0
- package/dist/watcher/fingerprint.d.ts +19 -0
- package/dist/watcher/fingerprint.d.ts.map +1 -0
- package/dist/watcher/fingerprint.js +53 -0
- package/dist/watcher/fingerprint.js.map +1 -0
- package/dist/watcher/heartbeat.d.ts +33 -0
- package/dist/watcher/heartbeat.d.ts.map +1 -0
- package/dist/watcher/heartbeat.js +135 -0
- package/dist/watcher/heartbeat.js.map +1 -0
- package/dist/watcher/lock.d.ts +10 -0
- package/dist/watcher/lock.d.ts.map +1 -0
- package/dist/watcher/lock.js +14 -0
- package/dist/watcher/lock.js.map +1 -0
- package/dist/watcher/loop.d.ts +26 -6
- package/dist/watcher/loop.d.ts.map +1 -1
- package/dist/watcher/loop.js +154 -37
- package/dist/watcher/loop.js.map +1 -1
- package/dist/watcher/measures.d.ts +46 -0
- package/dist/watcher/measures.d.ts.map +1 -0
- package/dist/watcher/measures.js +203 -0
- package/dist/watcher/measures.js.map +1 -0
- package/dist/watcher/outcome.d.ts +32 -0
- package/dist/watcher/outcome.d.ts.map +1 -0
- package/dist/watcher/outcome.js +127 -0
- package/dist/watcher/outcome.js.map +1 -0
- package/dist/watcher/regression.d.ts +43 -0
- package/dist/watcher/regression.d.ts.map +1 -0
- package/dist/watcher/regression.js +175 -0
- package/dist/watcher/regression.js.map +1 -0
- package/dist/watcher/runner.d.ts +6 -68
- package/dist/watcher/runner.d.ts.map +1 -1
- package/dist/watcher/runner.js +74 -523
- package/dist/watcher/runner.js.map +1 -1
- package/dist/watcher/spawn.d.ts +48 -0
- package/dist/watcher/spawn.d.ts.map +1 -0
- package/dist/watcher/spawn.js +130 -0
- package/dist/watcher/spawn.js.map +1 -0
- package/dist/watcher/task-verify.d.ts +59 -0
- package/dist/watcher/task-verify.d.ts.map +1 -0
- package/dist/watcher/task-verify.js +108 -0
- package/dist/watcher/task-verify.js.map +1 -0
- package/dist/watcher/verify.d.ts +44 -0
- package/dist/watcher/verify.d.ts.map +1 -0
- package/dist/watcher/verify.js +156 -0
- package/dist/watcher/verify.js.map +1 -0
- package/package.json +21 -9
- package/templates/PLANNER.md +77 -0
- package/templates/openspec/config.yaml +24 -0
- package/templates/openspec/schemas/osq/README.md +30 -0
- package/templates/openspec/schemas/osq/schema.yaml +133 -0
- package/templates/openspec/schemas/osq/templates/proposal.md +66 -0
- package/templates/openspec/schemas/osq/templates/spec.md +13 -0
- package/templates/openspec/schemas/osq/templates/tasks.md +11 -0
- package/templates/proposal.md +66 -0
- package/templates/tasks.md +5 -0
- package/ui/dist/assets/index-CZYeQ8la.js +9 -0
- package/ui/dist/assets/index-D6zVSjO7.css +1 -0
- package/ui/dist/index.html +14 -0
- package/dist/core/approve.d.ts +0 -11
- package/dist/core/approve.d.ts.map +0 -1
- package/dist/core/approve.js +0 -52
- package/dist/core/approve.js.map +0 -1
- package/dist/core/config.d.ts.map +0 -1
- package/dist/core/config.js.map +0 -1
- package/dist/core/hasher.d.ts +0 -4
- package/dist/core/hasher.d.ts.map +0 -1
- package/dist/core/hasher.js.map +0 -1
- package/dist/core/init.d.ts +0 -12
- package/dist/core/init.d.ts.map +0 -1
- package/dist/core/init.js +0 -151
- package/dist/core/init.js.map +0 -1
- package/dist/core/linter.d.ts +0 -8
- package/dist/core/linter.d.ts.map +0 -1
- package/dist/core/linter.js +0 -100
- package/dist/core/linter.js.map +0 -1
- package/dist/core/lock.d.ts.map +0 -1
- package/dist/core/lock.js.map +0 -1
- package/dist/core/logger.d.ts.map +0 -1
- package/dist/core/logger.js.map +0 -1
- package/dist/core/new.d.ts.map +0 -1
- package/dist/core/new.js +0 -79
- package/dist/core/new.js.map +0 -1
- package/dist/core/parser.d.ts +0 -32
- package/dist/core/parser.d.ts.map +0 -1
- package/dist/core/parser.js +0 -87
- package/dist/core/parser.js.map +0 -1
- package/dist/core/report.d.ts +0 -54
- package/dist/core/report.d.ts.map +0 -1
- package/dist/core/report.js +0 -475
- package/dist/core/report.js.map +0 -1
- package/dist/core/show.d.ts +0 -50
- package/dist/core/show.d.ts.map +0 -1
- package/dist/core/show.js +0 -374
- package/dist/core/show.js.map +0 -1
- package/dist/core/state.d.ts +0 -25
- package/dist/core/state.d.ts.map +0 -1
- package/dist/core/state.js +0 -180
- package/dist/core/state.js.map +0 -1
- package/dist/core/status.d.ts +0 -10
- package/dist/core/status.d.ts.map +0 -1
- package/dist/core/status.js +0 -106
- package/dist/core/status.js.map +0 -1
- package/dist/harness/agy.d.ts.map +0 -1
- package/dist/harness/agy.js.map +0 -1
- package/dist/harness/opencode.d.ts.map +0 -1
- package/dist/harness/opencode.js.map +0 -1
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/** Pre-spawn verify counts beyond runs and mismatches, derived from task events. */
|
|
2
|
+
import { asData } from './report-events.js';
|
|
3
|
+
function isStartState(value) {
|
|
4
|
+
return value === 'red' || value === 'green' || value === 'any';
|
|
5
|
+
}
|
|
6
|
+
function emptyCounts() {
|
|
7
|
+
return {
|
|
8
|
+
red: { runs: 0, passed: 0 },
|
|
9
|
+
green: { runs: 0, passed: 0 },
|
|
10
|
+
any: { runs: 0, passed: 0 },
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Counts one numbered task stream's pre-spawn verify runs: how many recorded a
|
|
15
|
+
* non-empty `missingPaths`, and, per declared `expected` start, how many ran and
|
|
16
|
+
* how many exited zero. Post-spawn runs, absent or unknown expected values, and
|
|
17
|
+
* empty missing-path lists are left out.
|
|
18
|
+
*/
|
|
19
|
+
export function observePreSpawnEvents(events) {
|
|
20
|
+
let missingPathRuns = 0;
|
|
21
|
+
const byStart = emptyCounts();
|
|
22
|
+
for (const event of events) {
|
|
23
|
+
if (event.type !== 'verify_ran')
|
|
24
|
+
continue;
|
|
25
|
+
const data = asData(event);
|
|
26
|
+
if (data?.phase !== 'pre_spawn')
|
|
27
|
+
continue;
|
|
28
|
+
if (Array.isArray(data.missingPaths) && data.missingPaths.length > 0)
|
|
29
|
+
missingPathRuns++;
|
|
30
|
+
const expected = data.expected;
|
|
31
|
+
if (!isStartState(expected))
|
|
32
|
+
continue;
|
|
33
|
+
const bucket = byStart[expected];
|
|
34
|
+
bucket.runs++;
|
|
35
|
+
if (data.exitCode === 0)
|
|
36
|
+
bucket.passed++;
|
|
37
|
+
}
|
|
38
|
+
return { missingPathRuns, byStart };
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=report-pre-spawn.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"report-pre-spawn.js","sourceRoot":"","sources":["../../../src/core/report/report-pre-spawn.ts"],"names":[],"mappings":"AAAA,oFAAoF;AAEpF,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAqB5C,SAAS,YAAY,CAAC,KAAc;IAClC,OAAO,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,KAAK,CAAC;AACjE,CAAC;AAED,SAAS,WAAW;IAClB,OAAO;QACL,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;QAC3B,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;QAC7B,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;KAC5B,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CACnC,MAA0C;IAE1C,IAAI,eAAe,GAAG,CAAC,CAAC;IACxB,MAAM,OAAO,GAAG,WAAW,EAAE,CAAC;IAE9B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY;YAAE,SAAS;QAC1C,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAI,IAAI,EAAE,KAAK,KAAK,WAAW;YAAE,SAAS;QAE1C,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC;YAAE,eAAe,EAAE,CAAC;QAExF,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC;YAAE,SAAS;QACtC,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;QACjC,MAAM,CAAC,IAAI,EAAE,CAAC;QACd,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC;YAAE,MAAM,CAAC,MAAM,EAAE,CAAC;IAC3C,CAAC;IAED,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC;AACtC,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/** Pure retry-history observation shared by the terminal report and web documents. */
|
|
2
|
+
/** One side of the retry split: automatic or manual. */
|
|
3
|
+
export interface RetryGroupHistory {
|
|
4
|
+
readonly count: number;
|
|
5
|
+
readonly reachedDone: number;
|
|
6
|
+
readonly cost: number;
|
|
7
|
+
readonly costReportedAttempts: number;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Retry outcomes split by who requested them, plus the number of `stuck`
|
|
11
|
+
* events. Costs never mix attempts: a pre-retry cost is not part of any
|
|
12
|
+
* retry-opened attempt.
|
|
13
|
+
*/
|
|
14
|
+
export interface RetryHistory {
|
|
15
|
+
readonly automatic: RetryGroupHistory;
|
|
16
|
+
readonly manual: RetryGroupHistory;
|
|
17
|
+
readonly stuck: number;
|
|
18
|
+
}
|
|
19
|
+
/** An all-zero retry history, used as the accumulation seed. */
|
|
20
|
+
export declare function emptyRetryHistory(): RetryHistory;
|
|
21
|
+
/**
|
|
22
|
+
* Projects one numbered task stream. Each `retry` event opens an attempt that
|
|
23
|
+
* runs to the next `retry` or the end of the stream; a `done` inside it counts
|
|
24
|
+
* as reached, and finite cost values inside it sum into the group. A cost
|
|
25
|
+
* before the first retry belongs to no retry-opened attempt and is ignored.
|
|
26
|
+
*/
|
|
27
|
+
export declare function observeRetries(events: readonly Record<string, unknown>[]): RetryHistory;
|
|
28
|
+
/** Sums two retry histories field by field. */
|
|
29
|
+
export declare function addRetryHistory(left: RetryHistory, right: RetryHistory): RetryHistory;
|
|
30
|
+
//# sourceMappingURL=report-retries.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"report-retries.d.ts","sourceRoot":"","sources":["../../../src/core/report/report-retries.ts"],"names":[],"mappings":"AAAA,sFAAsF;AAItF,wDAAwD;AACxD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;CACvC;AAED;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IACnC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAgCD,gEAAgE;AAChE,wBAAgB,iBAAiB,IAAI,YAAY,CAgBhD;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,YAAY,CA4CvF;AAWD,+CAA+C;AAC/C,wBAAgB,eAAe,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,GAAG,YAAY,CAMrF"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/** Pure retry-history observation shared by the terminal report and web documents. */
|
|
2
|
+
import { asData } from './report-events.js';
|
|
3
|
+
function emptyMutableGroup() {
|
|
4
|
+
return {
|
|
5
|
+
count: 0,
|
|
6
|
+
reachedDone: 0,
|
|
7
|
+
cost: 0,
|
|
8
|
+
costReportedAttempts: 0,
|
|
9
|
+
doneThisAttempt: false,
|
|
10
|
+
reportedThisAttempt: false,
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
function freezeGroup(group) {
|
|
14
|
+
return {
|
|
15
|
+
count: group.count,
|
|
16
|
+
reachedDone: group.reachedDone,
|
|
17
|
+
cost: group.cost,
|
|
18
|
+
costReportedAttempts: group.costReportedAttempts,
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
/** An all-zero retry history, used as the accumulation seed. */
|
|
22
|
+
export function emptyRetryHistory() {
|
|
23
|
+
return {
|
|
24
|
+
automatic: {
|
|
25
|
+
count: 0,
|
|
26
|
+
reachedDone: 0,
|
|
27
|
+
cost: 0,
|
|
28
|
+
costReportedAttempts: 0,
|
|
29
|
+
},
|
|
30
|
+
manual: {
|
|
31
|
+
count: 0,
|
|
32
|
+
reachedDone: 0,
|
|
33
|
+
cost: 0,
|
|
34
|
+
costReportedAttempts: 0,
|
|
35
|
+
},
|
|
36
|
+
stuck: 0,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Projects one numbered task stream. Each `retry` event opens an attempt that
|
|
41
|
+
* runs to the next `retry` or the end of the stream; a `done` inside it counts
|
|
42
|
+
* as reached, and finite cost values inside it sum into the group. A cost
|
|
43
|
+
* before the first retry belongs to no retry-opened attempt and is ignored.
|
|
44
|
+
*/
|
|
45
|
+
export function observeRetries(events) {
|
|
46
|
+
const automatic = emptyMutableGroup();
|
|
47
|
+
const manual = emptyMutableGroup();
|
|
48
|
+
let stuck = 0;
|
|
49
|
+
let active = null;
|
|
50
|
+
for (const event of events) {
|
|
51
|
+
const type = event.type;
|
|
52
|
+
const data = asData(event);
|
|
53
|
+
if (type === 'retry') {
|
|
54
|
+
active = data?.automatic === true ? automatic : manual;
|
|
55
|
+
active.count++;
|
|
56
|
+
active.doneThisAttempt = false;
|
|
57
|
+
active.reportedThisAttempt = false;
|
|
58
|
+
continue;
|
|
59
|
+
}
|
|
60
|
+
if (type === 'stuck') {
|
|
61
|
+
stuck++;
|
|
62
|
+
continue;
|
|
63
|
+
}
|
|
64
|
+
if (active === null)
|
|
65
|
+
continue;
|
|
66
|
+
if (type === 'done') {
|
|
67
|
+
if (!active.doneThisAttempt) {
|
|
68
|
+
active.doneThisAttempt = true;
|
|
69
|
+
active.reachedDone++;
|
|
70
|
+
}
|
|
71
|
+
continue;
|
|
72
|
+
}
|
|
73
|
+
const rawCost = data?.cost;
|
|
74
|
+
if (typeof rawCost === 'number' && Number.isFinite(rawCost)) {
|
|
75
|
+
active.cost += rawCost;
|
|
76
|
+
if (!active.reportedThisAttempt) {
|
|
77
|
+
active.reportedThisAttempt = true;
|
|
78
|
+
active.costReportedAttempts++;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
return { automatic: freezeGroup(automatic), manual: freezeGroup(manual), stuck };
|
|
83
|
+
}
|
|
84
|
+
function addGroup(left, right) {
|
|
85
|
+
return {
|
|
86
|
+
count: left.count + right.count,
|
|
87
|
+
reachedDone: left.reachedDone + right.reachedDone,
|
|
88
|
+
cost: left.cost + right.cost,
|
|
89
|
+
costReportedAttempts: left.costReportedAttempts + right.costReportedAttempts,
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
/** Sums two retry histories field by field. */
|
|
93
|
+
export function addRetryHistory(left, right) {
|
|
94
|
+
return {
|
|
95
|
+
automatic: addGroup(left.automatic, right.automatic),
|
|
96
|
+
manual: addGroup(left.manual, right.manual),
|
|
97
|
+
stuck: left.stuck + right.stuck,
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=report-retries.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"report-retries.js","sourceRoot":"","sources":["../../../src/core/report/report-retries.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,276 @@
|
|
|
1
|
+
import { type OsqConfig } from '../foundation/config.js';
|
|
2
|
+
import { type QueueReport } from '../status/queue-report.js';
|
|
3
|
+
import { type ApprovalFlagOutcomes } from './approval-flags.js';
|
|
4
|
+
import { type PlanningChangeEconomics, type PlanningComparison } from './planning-economics.js';
|
|
5
|
+
import { type PreSpawnStartCounts } from './report-pre-spawn.js';
|
|
6
|
+
import { type RetryHistory } from './report-retries.js';
|
|
7
|
+
export interface SpecMetrics {
|
|
8
|
+
readonly total: number;
|
|
9
|
+
readonly active: number;
|
|
10
|
+
readonly archived: number;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Current task state derived exclusively from marker files. Verified and
|
|
14
|
+
* manual are always present, including when zero, so consumers never have to
|
|
15
|
+
* infer their absence.
|
|
16
|
+
*/
|
|
17
|
+
export interface NowMetrics {
|
|
18
|
+
readonly total: number;
|
|
19
|
+
readonly done: number;
|
|
20
|
+
readonly verified: number;
|
|
21
|
+
readonly manual: number;
|
|
22
|
+
readonly dead: number;
|
|
23
|
+
readonly regressed: number;
|
|
24
|
+
readonly running: number;
|
|
25
|
+
readonly pending: number;
|
|
26
|
+
readonly unmarked: number;
|
|
27
|
+
}
|
|
28
|
+
export interface DurationMetrics {
|
|
29
|
+
readonly totalMs: number;
|
|
30
|
+
readonly totalSeconds: number;
|
|
31
|
+
readonly avgMs: number;
|
|
32
|
+
readonly avgSeconds: number;
|
|
33
|
+
readonly formattedTotal: string;
|
|
34
|
+
readonly formattedAvg: string;
|
|
35
|
+
}
|
|
36
|
+
export interface TokenMetrics {
|
|
37
|
+
readonly input: number;
|
|
38
|
+
readonly cached_input: number;
|
|
39
|
+
readonly output: number;
|
|
40
|
+
readonly reasoning: number;
|
|
41
|
+
readonly total: number;
|
|
42
|
+
readonly cacheSharePercent: number;
|
|
43
|
+
}
|
|
44
|
+
export interface FileChangeMetrics {
|
|
45
|
+
readonly totalChanges: number;
|
|
46
|
+
readonly uniqueCount: number;
|
|
47
|
+
readonly uniqueFiles: readonly string[];
|
|
48
|
+
}
|
|
49
|
+
export interface AttemptMetrics {
|
|
50
|
+
readonly total: number;
|
|
51
|
+
readonly byTask: Record<string, number>;
|
|
52
|
+
readonly multipleAttempts: readonly string[];
|
|
53
|
+
}
|
|
54
|
+
export interface UnexplainedReruns {
|
|
55
|
+
readonly total: number;
|
|
56
|
+
readonly byTask: Record<string, number>;
|
|
57
|
+
}
|
|
58
|
+
export interface VerifyRunMetrics {
|
|
59
|
+
readonly total: number;
|
|
60
|
+
readonly missingExitCode: number;
|
|
61
|
+
readonly byTask: Record<string, readonly (number | null)[]>;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Historical cost derived only from finite cost values on task events. The
|
|
65
|
+
* total is never estimated; coverage states how many attempts reported cost
|
|
66
|
+
* out of every recorded attempt.
|
|
67
|
+
*/
|
|
68
|
+
export interface CostHistory {
|
|
69
|
+
readonly total: number;
|
|
70
|
+
readonly perSpec: Record<string, number>;
|
|
71
|
+
readonly formattedTotal: string;
|
|
72
|
+
readonly provenance: 'harness-reported';
|
|
73
|
+
readonly coverage: {
|
|
74
|
+
readonly reportedAttempts: number;
|
|
75
|
+
readonly totalAttempts: number;
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
/** One ordered size bucket with first-attempt outcome aggregates. */
|
|
79
|
+
export interface SizeBucketRow {
|
|
80
|
+
readonly bucket: string;
|
|
81
|
+
readonly tasks: number;
|
|
82
|
+
readonly firstAttemptPassRate: number;
|
|
83
|
+
readonly meanAttempts: number;
|
|
84
|
+
readonly medianDurationSeconds: number | null;
|
|
85
|
+
}
|
|
86
|
+
/** The first-attempt pass with the greatest observed scope size. */
|
|
87
|
+
export interface LargestFirstAttemptPass {
|
|
88
|
+
readonly change: string;
|
|
89
|
+
readonly task: string;
|
|
90
|
+
readonly title: string;
|
|
91
|
+
readonly scopeFiles: number;
|
|
92
|
+
readonly acceptanceLines: number;
|
|
93
|
+
}
|
|
94
|
+
/** Size-against-outcome buckets for one scope-file resolver generation. */
|
|
95
|
+
export interface ScopeFileSeries {
|
|
96
|
+
readonly resolver: 'legacy' | 'resolver-2';
|
|
97
|
+
readonly startsAtChange: string | null;
|
|
98
|
+
readonly byScopeFiles: readonly SizeBucketRow[];
|
|
99
|
+
readonly largestFirstAttemptPass: LargestFirstAttemptPass | null;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Acceptance-line buckets plus the ordered legacy and resolver-2 scope-file
|
|
103
|
+
* series. Scope-file counts never compare across resolver generations; the
|
|
104
|
+
* acceptance-line unit did not change, so it stays one combined series.
|
|
105
|
+
*/
|
|
106
|
+
export interface SizeMetrics {
|
|
107
|
+
readonly scopeFileSeries: readonly ScopeFileSeries[];
|
|
108
|
+
readonly byAcceptanceLines: readonly SizeBucketRow[];
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Scope-regression detection and recertification counters derived only from
|
|
112
|
+
* typed events in numbered task streams. Legacy scope detections without a
|
|
113
|
+
* finite exit code remain visible in `detected` without guessed pass/fail.
|
|
114
|
+
*/
|
|
115
|
+
export interface ScopeRegressionHistory {
|
|
116
|
+
readonly detected: number;
|
|
117
|
+
readonly verificationPassedAtDetection: number;
|
|
118
|
+
readonly verificationFailedAtDetection: number;
|
|
119
|
+
readonly recertifiedByHuman: number;
|
|
120
|
+
readonly requeuedForAgent: number;
|
|
121
|
+
}
|
|
122
|
+
/** Execution history derived exclusively from append-only task event files. */
|
|
123
|
+
export interface HistoryMetrics {
|
|
124
|
+
readonly attempts: AttemptMetrics;
|
|
125
|
+
readonly deadByReason: Record<string, number>;
|
|
126
|
+
readonly unexplainedReruns: UnexplainedReruns;
|
|
127
|
+
readonly verifyRuns: VerifyRunMetrics;
|
|
128
|
+
readonly preSpawnVerify: PreSpawnVerifyHistory;
|
|
129
|
+
readonly cost: CostHistory;
|
|
130
|
+
readonly retries: RetryHistory;
|
|
131
|
+
readonly rejections: RejectionHistory;
|
|
132
|
+
readonly sizes: SizeMetrics;
|
|
133
|
+
readonly scopeRegressions: ScopeRegressionHistory;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Pre-spawn verify runs and mismatches, counted apart from verification gates.
|
|
137
|
+
* `mismatchedTasks` lists the change-and-task references of tasks with at least
|
|
138
|
+
* one mismatch, in the same form as `verifyRuns.byTask` keys.
|
|
139
|
+
*/
|
|
140
|
+
export interface PreSpawnVerifyHistory {
|
|
141
|
+
readonly runs: number;
|
|
142
|
+
readonly mismatches: number;
|
|
143
|
+
readonly mismatchedTasks: readonly string[];
|
|
144
|
+
/** Runs whose pre-spawn event recorded a non-empty `missingPaths`. */
|
|
145
|
+
readonly missingPathRuns: number;
|
|
146
|
+
/** Runs and zero-exit passes for each declared `expected` start state. */
|
|
147
|
+
readonly byStart: PreSpawnStartCounts;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Rejected-change history. A folder contributes at most once, and only when its
|
|
151
|
+
* change-level event stream contains a valid `rejected` event; planner grouping
|
|
152
|
+
* comes solely from `brief.md` frontmatter.
|
|
153
|
+
*/
|
|
154
|
+
export interface RejectionHistory {
|
|
155
|
+
readonly total: number;
|
|
156
|
+
readonly byPlannerModel: Record<string, number>;
|
|
157
|
+
}
|
|
158
|
+
export interface CoverageByChange {
|
|
159
|
+
readonly withEvents: readonly string[];
|
|
160
|
+
readonly withoutEvents: readonly string[];
|
|
161
|
+
}
|
|
162
|
+
/** Event-file coverage for every discovered task. */
|
|
163
|
+
export interface CoverageMetrics {
|
|
164
|
+
readonly withEvents: number;
|
|
165
|
+
readonly withoutEvents: number;
|
|
166
|
+
readonly byChange: Record<string, CoverageByChange>;
|
|
167
|
+
}
|
|
168
|
+
export interface MetricsReport {
|
|
169
|
+
readonly approvalFlags: ApprovalFlagOutcomes;
|
|
170
|
+
readonly completionRate: number;
|
|
171
|
+
readonly coverage: CoverageMetrics;
|
|
172
|
+
readonly cycle: CycleMetrics;
|
|
173
|
+
readonly durations: DurationMetrics;
|
|
174
|
+
readonly fileChanges: FileChangeMetrics;
|
|
175
|
+
readonly history: HistoryMetrics;
|
|
176
|
+
readonly now: NowMetrics;
|
|
177
|
+
readonly planning: PlanningMetrics;
|
|
178
|
+
readonly queue: QueueReport;
|
|
179
|
+
readonly specs: SpecMetrics;
|
|
180
|
+
readonly tokens: TokenMetrics;
|
|
181
|
+
}
|
|
182
|
+
/** Aggregate planning usage derived only from `.run/plan.jsonl` lifecycle pairs. */
|
|
183
|
+
export interface PlanningMetrics {
|
|
184
|
+
readonly sessions: number;
|
|
185
|
+
/**
|
|
186
|
+
* Distinct active and archived changes carrying at least one valid
|
|
187
|
+
* `plan_started` record of either source. Exit-only and malformed lines do
|
|
188
|
+
* not cover a change, and repeated sessions for one change count once.
|
|
189
|
+
*/
|
|
190
|
+
readonly changesWithPlanningRecords: number;
|
|
191
|
+
readonly wallSeconds: number;
|
|
192
|
+
readonly wallSecondsByChange: Record<string, number>;
|
|
193
|
+
readonly tokens: {
|
|
194
|
+
readonly input: number;
|
|
195
|
+
readonly output: number;
|
|
196
|
+
readonly cached: number;
|
|
197
|
+
readonly reasoning: number;
|
|
198
|
+
};
|
|
199
|
+
readonly cost: {
|
|
200
|
+
readonly total: number;
|
|
201
|
+
readonly formattedTotal: string;
|
|
202
|
+
readonly provenance: 'harness-reported';
|
|
203
|
+
};
|
|
204
|
+
readonly coverage: {
|
|
205
|
+
readonly reportedSessions: number;
|
|
206
|
+
readonly totalSessions: number;
|
|
207
|
+
};
|
|
208
|
+
/** Per change planning economics for every change with a valid start. */
|
|
209
|
+
readonly byChange: Record<string, PlanningChangeEconomics>;
|
|
210
|
+
/** Planning against executor tokens and cost, in totals. */
|
|
211
|
+
readonly comparison: PlanningComparison;
|
|
212
|
+
}
|
|
213
|
+
/** One aggregate over archived changes for a single lifecycle phase. */
|
|
214
|
+
export interface CyclePhaseMetrics {
|
|
215
|
+
readonly totalSeconds: number;
|
|
216
|
+
readonly averageSeconds: number;
|
|
217
|
+
readonly coveredChanges: number;
|
|
218
|
+
readonly totalChanges: number;
|
|
219
|
+
}
|
|
220
|
+
/** Nullable lifecycle durations for one archived change. */
|
|
221
|
+
export interface CycleChangeMetrics {
|
|
222
|
+
readonly change: string;
|
|
223
|
+
readonly briefToApprovalSeconds: number | null;
|
|
224
|
+
readonly approvalToFirstTaskSeconds: number | null;
|
|
225
|
+
readonly firstTaskToArchiveSeconds: number | null;
|
|
226
|
+
readonly totalSeconds: number | null;
|
|
227
|
+
}
|
|
228
|
+
/** Archived change cycle time, with aggregate phase lines and per-change rows. */
|
|
229
|
+
export interface CycleMetrics {
|
|
230
|
+
readonly phases: {
|
|
231
|
+
readonly briefToApproval: CyclePhaseMetrics;
|
|
232
|
+
readonly approvalToFirstTask: CyclePhaseMetrics;
|
|
233
|
+
readonly firstTaskToArchive: CyclePhaseMetrics;
|
|
234
|
+
readonly total: CyclePhaseMetrics;
|
|
235
|
+
};
|
|
236
|
+
readonly byChange: readonly CycleChangeMetrics[];
|
|
237
|
+
}
|
|
238
|
+
export declare function formatDuration(ms: number): string;
|
|
239
|
+
export declare function formatCost(total: number): string;
|
|
240
|
+
export declare function getMetricsReport(projectRoot: string, config?: OsqConfig): Promise<MetricsReport>;
|
|
241
|
+
/**
|
|
242
|
+
* Alias for {@link getMetricsReport} matching the report-generation name used
|
|
243
|
+
* by the metrics-and-reporting spec.
|
|
244
|
+
*/
|
|
245
|
+
export declare const generateReport: typeof getMetricsReport;
|
|
246
|
+
/** One historical dead outcome rendered in the repository record. */
|
|
247
|
+
export interface RepositoryDeadOutcome {
|
|
248
|
+
readonly change: string;
|
|
249
|
+
readonly title: string;
|
|
250
|
+
readonly reason: string;
|
|
251
|
+
}
|
|
252
|
+
/** Bounded repository record derived only from recent archived changes. */
|
|
253
|
+
export interface RepositoryRecord {
|
|
254
|
+
readonly measuredTasks: number;
|
|
255
|
+
readonly firstAttemptPassRate: number;
|
|
256
|
+
readonly medianDurationSeconds: number | null;
|
|
257
|
+
readonly largestFirstAttemptPass: LargestFirstAttemptPass | null;
|
|
258
|
+
/** Resolver generation behind the largest scope pass, or null when none. */
|
|
259
|
+
readonly scopeFileResolver: 'legacy' | 'resolver-2' | null;
|
|
260
|
+
readonly deadOutcomes: readonly RepositoryDeadOutcome[];
|
|
261
|
+
}
|
|
262
|
+
export declare const REPOSITORY_RECORD_MIN_MEASURED_TASKS = 5;
|
|
263
|
+
export declare const REPOSITORY_RECORD_MAX_ARCHIVED_CHANGES = 20;
|
|
264
|
+
export declare const REPOSITORY_RECORD_MAX_DEAD_OUTCOMES = 10;
|
|
265
|
+
/**
|
|
266
|
+
* Shared bounded repository record: at most the 20 newest canonical archived
|
|
267
|
+
* changes by numeric id, with measured outcomes and up to ten dead rows.
|
|
268
|
+
*/
|
|
269
|
+
export declare function getRepositoryRecord(projectRoot: string, config?: OsqConfig): Promise<RepositoryRecord>;
|
|
270
|
+
/**
|
|
271
|
+
* Body of the planning prompt's repository-record section. The caller owns the
|
|
272
|
+
* heading. Fewer than five measured tasks print only the too-small sentence.
|
|
273
|
+
*/
|
|
274
|
+
export declare function formatRepositoryRecordBody(record: RepositoryRecord): string;
|
|
275
|
+
export declare function formatMetricsReport(report: MetricsReport, config?: OsqConfig): string;
|
|
276
|
+
//# sourceMappingURL=report.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../../src/core/report/report.ts"],"names":[],"mappings":"AAEA,OAAO,EAAkB,KAAK,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAGzE,OAAO,EAAE,KAAK,WAAW,EAAmB,MAAM,2BAA2B,CAAC;AAE9E,OAAO,EACL,KAAK,oBAAoB,EAG1B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,KAAK,uBAAuB,EAC5B,KAAK,kBAAkB,EAGxB,MAAM,yBAAyB,CAAC;AAUjC,OAAO,EAAE,KAAK,mBAAmB,EAAyB,MAAM,uBAAuB,CAAC;AACxF,OAAO,EAEL,KAAK,YAAY,EAIlB,MAAM,qBAAqB,CAAC;AAE7B,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;CACpC;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;CACzC;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,QAAQ,CAAC,gBAAgB,EAAE,SAAS,MAAM,EAAE,CAAC;CAC9C;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACzC;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;CAC7D;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,kBAAkB,CAAC;IACxC,QAAQ,CAAC,QAAQ,EAAE;QACjB,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;QAClC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;KAChC,CAAC;CACH;AAED,qEAAqE;AACrE,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/C;AAED,oEAAoE;AACpE,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CAClC;AAED,2EAA2E;AAC3E,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,GAAG,YAAY,CAAC;IAC3C,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,QAAQ,CAAC,YAAY,EAAE,SAAS,aAAa,EAAE,CAAC;IAChD,QAAQ,CAAC,uBAAuB,EAAE,uBAAuB,GAAG,IAAI,CAAC;CAClE;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,eAAe,EAAE,SAAS,eAAe,EAAE,CAAC;IACrD,QAAQ,CAAC,iBAAiB,EAAE,SAAS,aAAa,EAAE,CAAC;CACtD;AAED;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,6BAA6B,EAAE,MAAM,CAAC;IAC/C,QAAQ,CAAC,6BAA6B,EAAE,MAAM,CAAC;IAC/C,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;CACnC;AAED,+EAA+E;AAC/E,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9C,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAC9C,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC;IACtC,QAAQ,CAAC,cAAc,EAAE,qBAAqB,CAAC;IAC/C,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAC/B,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,gBAAgB,EAAE,sBAAsB,CAAC;CACnD;AAED;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C,sEAAsE;IACtE,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,0EAA0E;IAC1E,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC;CACvC;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjD;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;CAC3C;AAED,qDAAqD;AACrD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;CACrD;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,aAAa,EAAE,oBAAoB,CAAC;IAC7C,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;IACnC,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;IACpC,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAC;IACxC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;IACnC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;CAC/B;AAED,oFAAoF;AACpF,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B;;;;OAIG;IACH,QAAQ,CAAC,0BAA0B,EAAE,MAAM,CAAC;IAC5C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrD,QAAQ,CAAC,MAAM,EAAE;QACf,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;KAC5B,CAAC;IACF,QAAQ,CAAC,IAAI,EAAE;QACb,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;QAChC,QAAQ,CAAC,UAAU,EAAE,kBAAkB,CAAC;KACzC,CAAC;IACF,QAAQ,CAAC,QAAQ,EAAE;QACjB,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;QAClC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;KAChC,CAAC;IACF,yEAAyE;IACzE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;IAC3D,4DAA4D;IAC5D,QAAQ,CAAC,UAAU,EAAE,kBAAkB,CAAC;CACzC;AAED,wEAAwE;AACxE,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED,4DAA4D;AAC5D,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/C,QAAQ,CAAC,0BAA0B,EAAE,MAAM,GAAG,IAAI,CAAC;IACnD,QAAQ,CAAC,yBAAyB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClD,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CACtC;AAED,kFAAkF;AAClF,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,MAAM,EAAE;QACf,QAAQ,CAAC,eAAe,EAAE,iBAAiB,CAAC;QAC5C,QAAQ,CAAC,mBAAmB,EAAE,iBAAiB,CAAC;QAChD,QAAQ,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;QAC/C,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAC;KACnC,CAAC;IACF,QAAQ,CAAC,QAAQ,EAAE,SAAS,kBAAkB,EAAE,CAAC;CAClD;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAOjD;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAGhD;AA0eD,wBAAsB,gBAAgB,CACpC,WAAW,EAAE,MAAM,EACnB,MAAM,GAAE,SAA0B,GACjC,OAAO,CAAC,aAAa,CAAC,CA0nBxB;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,yBAAmB,CAAC;AAE/C,qEAAqE;AACrE,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,2EAA2E;AAC3E,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9C,QAAQ,CAAC,uBAAuB,EAAE,uBAAuB,GAAG,IAAI,CAAC;IACjE,4EAA4E;IAC5E,QAAQ,CAAC,iBAAiB,EAAE,QAAQ,GAAG,YAAY,GAAG,IAAI,CAAC;IAC3D,QAAQ,CAAC,YAAY,EAAE,SAAS,qBAAqB,EAAE,CAAC;CACzD;AAED,eAAO,MAAM,oCAAoC,IAAI,CAAC;AACtD,eAAO,MAAM,sCAAsC,KAAK,CAAC;AACzD,eAAO,MAAM,mCAAmC,KAAK,CAAC;AAwEtD;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,WAAW,EAAE,MAAM,EACnB,MAAM,GAAE,SAA0B,GACjC,OAAO,CAAC,gBAAgB,CAAC,CA+B3B;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAyC3E;AA+BD,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,aAAa,EACrB,MAAM,GAAE,SAA0B,GACjC,MAAM,CAsQR"}
|