refactor(monorepo): remove root cmd entrypoints
This commit is contained in:
@@ -1,11 +0,0 @@
|
|||||||
package main
|
|
||||||
|
|
||||||
import (
|
|
||||||
"os"
|
|
||||||
|
|
||||||
inboxcli "ai-workflow-skill/packages/inbox-runtime/cli/inbox"
|
|
||||||
)
|
|
||||||
|
|
||||||
func main() {
|
|
||||||
os.Exit(inboxcli.Execute(os.Args[1:], os.Stdout, os.Stderr))
|
|
||||||
}
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
package main
|
|
||||||
|
|
||||||
import (
|
|
||||||
"os"
|
|
||||||
|
|
||||||
orchcli "ai-workflow-skill/packages/orch-runtime/cli/orch"
|
|
||||||
)
|
|
||||||
|
|
||||||
func main() {
|
|
||||||
os.Exit(orchcli.Execute(os.Args[1:], os.Stdout, os.Stderr))
|
|
||||||
}
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
package main
|
|
||||||
|
|
||||||
import (
|
|
||||||
"os"
|
|
||||||
|
|
||||||
"ai-workflow-skill/packages/orchd-runtime/server"
|
|
||||||
)
|
|
||||||
|
|
||||||
func main() {
|
|
||||||
os.Exit(server.Execute(os.Args[1:], os.Stderr))
|
|
||||||
}
|
|
||||||
@@ -30,8 +30,8 @@ As of now:
|
|||||||
- the original five `docs/tests/orch-skill/` cases also include recorded real subagent-forward runs captured on `2026-03-19`, with spawned leader and worker agents using the packaged `skills/orch/` and `skills/inbox/` bundles
|
- the original five `docs/tests/orch-skill/` cases also include recorded real subagent-forward runs captured on `2026-03-19`, with spawned leader and worker agents using the packaged `skills/orch/` and `skills/inbox/` bundles
|
||||||
- a council-review skill forward-test plan directory now exists under `docs/tests/council-review-skill/`, with a shared execution contract and nine council workflow scenarios covering end-to-end flow, unanimous-only defaults, timeout/before-tally errors, explicit minority reporting, invalid report filters, strict tally semantics, malformed reviewer JSON, and target-file inputs
|
- a council-review skill forward-test plan directory now exists under `docs/tests/council-review-skill/`, with a shared execution contract and nine council workflow scenarios covering end-to-end flow, unanimous-only defaults, timeout/before-tally errors, explicit minority reporting, invalid report filters, strict tally semantics, malformed reviewer JSON, and target-file inputs
|
||||||
- an execution-roadmap workflow now exists under `docs/roadmaps/active/` and `docs/roadmaps/archive/` for agent-level work traces and completion archives
|
- an execution-roadmap workflow now exists under `docs/roadmaps/active/` and `docs/roadmaps/archive/` for agent-level work traces and completion archives
|
||||||
- a forward-looking web product monorepo plan now exists under `docs/web-product-monorepo.md`, defining the recommended React frontend, `chi` HTTP service, `cmd/orchd` entrypoint, and shared application/query layering for future web work
|
- a forward-looking web product monorepo plan now exists under `docs/web-product-monorepo.md`, defining the recommended React frontend, `chi` HTTP service, and the package-owned `orchd` runtime path for future web work
|
||||||
- the Phase 1 web-product skeleton is now in place, including root `pnpm` workspace files, a standalone React app under `apps/web`, an initial OpenAPI/events contract under `api/`, and a new `cmd/orchd` HTTP service backed by `internal/app`, `internal/query`, and `internal/httpapi`
|
- the Phase 1 web-product skeleton is now in place, including root `pnpm` workspace files, a standalone React app under `apps/web`, an initial OpenAPI/events contract under `api/`, and the package-owned `orchd` backend runtime
|
||||||
- `orchd` now serves a minimal read-only web API with `chi`, including `/health`, runs list/detail, run task list, blocked-task list, and thread detail endpoints backed by the existing SQLite state
|
- `orchd` now serves a minimal read-only web API with `chi`, including `/health`, runs list/detail, run task list, blocked-task list, and thread detail endpoints backed by the existing SQLite state
|
||||||
- HTTP tests now cover the initial read-only `orchd` slice, and the new frontend workspace builds successfully with `pnpm run web:build`
|
- HTTP tests now cover the initial read-only `orchd` slice, and the new frontend workspace builds successfully with `pnpm run web:build`
|
||||||
- Phase 2 frontend work has now started by bootstrapping `apps/web` with copied-in `cadence-ui` tokens and foundational components for button, input, textarea, dialog, form, tabs, card, badge, and alert, with the shared token stylesheet loaded from the frontend entrypoint
|
- Phase 2 frontend work has now started by bootstrapping `apps/web` with copied-in `cadence-ui` tokens and foundational components for button, input, textarea, dialog, form, tabs, card, badge, and alert, with the shared token stylesheet loaded from the frontend entrypoint
|
||||||
@@ -116,12 +116,10 @@ Goal:
|
|||||||
|
|
||||||
Recommended shape:
|
Recommended shape:
|
||||||
|
|
||||||
- `cmd/inbox`
|
- `packages/coord-core`
|
||||||
- `cmd/orch`
|
- `packages/inbox-runtime`
|
||||||
- `internal/db`
|
- `packages/orch-runtime`
|
||||||
- `internal/store`
|
- compatibility shims only at the root if still needed temporarily
|
||||||
- `internal/protocol`
|
|
||||||
- `internal/cli`
|
|
||||||
|
|
||||||
Definition of done:
|
Definition of done:
|
||||||
|
|
||||||
@@ -393,10 +391,7 @@ Add:
|
|||||||
- `apps/web`
|
- `apps/web`
|
||||||
- `api/openapi.yaml`
|
- `api/openapi.yaml`
|
||||||
- `api/events.md`
|
- `api/events.md`
|
||||||
- `cmd/orchd`
|
- `packages/orchd-runtime`
|
||||||
- `internal/app`
|
|
||||||
- `internal/query`
|
|
||||||
- `internal/httpapi`
|
|
||||||
|
|
||||||
Definition of done:
|
Definition of done:
|
||||||
|
|
||||||
@@ -412,10 +407,10 @@ Completed so far:
|
|||||||
|
|
||||||
- root `package.json`, `pnpm-workspace.yaml`, and `pnpm-lock.yaml` now define the monorepo JS workspace
|
- root `package.json`, `pnpm-workspace.yaml`, and `pnpm-lock.yaml` now define the monorepo JS workspace
|
||||||
- `apps/web` now contains a Vite + React + TypeScript + TanStack Router + TanStack Query frontend shell
|
- `apps/web` now contains a Vite + React + TypeScript + TanStack Router + TanStack Query frontend shell
|
||||||
- `cmd/orchd` now opens the shared SQLite database, applies migrations, and serves a `chi` router with graceful shutdown handling
|
- `packages/orchd-runtime/cmd/orchd` now opens the shared SQLite database, applies migrations, and serves a `chi` router with graceful shutdown handling
|
||||||
- `internal/query` now exposes run list/detail, run tasks, blocked-task, and thread-detail read models for the web surface
|
- `packages/orchd-runtime/internal/query` now exposes run list/detail, run tasks, blocked-task, and thread-detail read models for the web surface
|
||||||
- `internal/app` now provides a thin web-service boundary over the new read service
|
- `packages/orchd-runtime/internal/app` now provides a thin web-service boundary over the new read service
|
||||||
- `internal/httpapi` now owns HTTP routing, JSON/error helpers, and the initial read-only endpoints
|
- `packages/orchd-runtime/internal/httpapi` now owns HTTP routing, JSON/error helpers, and the initial read-only endpoints
|
||||||
- `api/openapi.yaml` now documents the implemented read-only endpoints and response shapes
|
- `api/openapi.yaml` now documents the implemented read-only endpoints and response shapes
|
||||||
- `api/events.md` now captures the planned SSE contract for the next realtime slice
|
- `api/events.md` now captures the planned SSE contract for the next realtime slice
|
||||||
- `go test ./...` covers the new HTTP slice, and `pnpm run web:build` succeeds for the frontend workspace
|
- `go test ./...` covers the new HTTP slice, and `pnpm run web:build` succeeds for the frontend workspace
|
||||||
@@ -494,16 +489,16 @@ Completed so far:
|
|||||||
- the repository-level migration design is captured in `docs/skill-workspace-monorepo.md`
|
- the repository-level migration design is captured in `docs/skill-workspace-monorepo.md`
|
||||||
- the target package split now distinguishes `coord-core`, runtime packages, skill bundles, and support apps
|
- the target package split now distinguishes `coord-core`, runtime packages, skill bundles, and support apps
|
||||||
- the migration plan now defines phased extraction for `coord-core`, `inbox-runtime`, `orch-runtime`, `orchd-runtime`, and `repo-memory-runtime`
|
- the migration plan now defines phased extraction for `coord-core`, `inbox-runtime`, `orch-runtime`, `orchd-runtime`, and `repo-memory-runtime`
|
||||||
- root `go.work` now includes the current root module plus the initial runtime package module roots under `packages/`
|
- root `go.work` now includes the package-owned runtime module roots under `packages/`
|
||||||
- `pnpm-workspace.yaml` now includes `packages/*`, and root `package.json` now exposes monorepo bundle planning and validation scripts
|
- `pnpm-workspace.yaml` now includes `packages/*`, and root `package.json` now exposes monorepo bundle planning, validation, and Go package test scripts
|
||||||
- initial module roots now exist for `packages/coord-core`, `packages/inbox-runtime`, `packages/orch-runtime`, `packages/orchd-runtime`, and `packages/repo-memory-runtime`
|
- initial module roots now exist for `packages/coord-core`, `packages/inbox-runtime`, `packages/orch-runtime`, `packages/orchd-runtime`, and `packages/repo-memory-runtime`
|
||||||
- `scripts/skill-bundles.json` now records the first package-oriented skill bundle metadata, including the future `repo-memory` runtime mapping
|
- `scripts/skill-bundles.json` now records the first package-oriented skill bundle metadata, including the future `repo-memory` runtime mapping
|
||||||
- `scripts/package_skill_runtimes.sh` now provides a declarative bundle plan/validate scaffold that targets package paths rather than hardcoded root runtime paths
|
- `scripts/package_skill_runtimes.sh` now provides a declarative bundle plan/validate scaffold that targets package paths rather than hardcoded root runtime paths
|
||||||
- `packages/coord-core/db` now owns the shared SQLite open, pragmas, migrations, and coordination schema files
|
- `packages/coord-core/db` now owns the shared SQLite open, pragmas, migrations, and coordination schema files
|
||||||
- `packages/coord-core/protocol` now owns the shared JSON and CLI error helpers used across the coordination stack
|
- `packages/coord-core/protocol` now owns the shared JSON and CLI error helpers used across the coordination stack
|
||||||
- `packages/coord-core/store` now owns the shared inbox, orch, and council store logic plus its coordination-domain tests
|
- `packages/coord-core/store` now owns the shared inbox, orch, and council store logic plus its coordination-domain tests
|
||||||
- root coordination runtimes under `cmd/`, `internal/cli/`, `internal/app/`, `internal/httpapi/`, and `internal/query/` now import `coord-core` instead of depending on root `internal/db`, `internal/store`, or root `internal/protocol`
|
- package-owned coordination runtimes now depend on `packages/coord-core` instead of root `internal/db`, `internal/store`, or root `internal/protocol`
|
||||||
- `go test ./...` still passes for the root module, and `go test ./...` passes inside `packages/coord-core`
|
- package-oriented Go validation now runs through the workspace runtime packages, and `packages/coord-core` passes `go test ./...`
|
||||||
- `packages/inbox-runtime/cmd/inbox` plus `packages/inbox-runtime/internal/cli/inbox` now provide a package-owned inbox runtime and pass `go test ./...`
|
- `packages/inbox-runtime/cmd/inbox` plus `packages/inbox-runtime/internal/cli/inbox` now provide a package-owned inbox runtime and pass `go test ./...`
|
||||||
- `packages/orch-runtime/cmd/orch` plus `packages/orch-runtime/internal/cli/orch` now provide a package-owned orch runtime and pass `go test ./...`
|
- `packages/orch-runtime/cmd/orch` plus `packages/orch-runtime/internal/cli/orch` now provide a package-owned orch runtime and pass `go test ./...`
|
||||||
- `scripts/skill-bundles.json` now marks `inbox`, `orch`, and `council-review` as ready package-backed bundles
|
- `scripts/skill-bundles.json` now marks `inbox`, `orch`, and `council-review` as ready package-backed bundles
|
||||||
@@ -513,8 +508,8 @@ Completed so far:
|
|||||||
- `packages/repo-memory-runtime/cmd/briefdb` plus its package-local `internal/brief` and `internal/store` now provide a package-owned repo-memory runtime and pass `go test ./...`
|
- `packages/repo-memory-runtime/cmd/briefdb` plus its package-local `internal/brief` and `internal/store` now provide a package-owned repo-memory runtime and pass `go test ./...`
|
||||||
- `skills/repo-memory/` now exists with `SKILL.md`, `agents/openai.yaml`, and a bundled `assets/briefdb` binary produced by the declarative packaging flow
|
- `skills/repo-memory/` now exists with `SKILL.md`, `agents/openai.yaml`, and a bundled `assets/briefdb` binary produced by the declarative packaging flow
|
||||||
- `docs/tests/repo-memory-skill/` now exists with a README plus an initial forward-test case covering search-before-add and durable entry retrieval through the bundled skill
|
- `docs/tests/repo-memory-skill/` now exists with a README plus an initial forward-test case covering search-before-add and durable entry retrieval through the bundled skill
|
||||||
- root `cmd/inbox`, `cmd/orch`, and `cmd/orchd` now act as compatibility shims that invoke package-owned runtimes instead of root-owned runtime implementations
|
|
||||||
- legacy root runtime implementation directories under `internal/` have been removed now that package-owned runtimes and package-backed skill bundles are in place
|
- legacy root runtime implementation directories under `internal/` have been removed now that package-owned runtimes and package-backed skill bundles are in place
|
||||||
|
- legacy root `cmd/` compatibility shims have also been removed, so package-owned runtimes under `packages/*/cmd/*` are now the only maintained Go entrypoints
|
||||||
|
|
||||||
Remaining:
|
Remaining:
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,60 @@
|
|||||||
|
# Remove Root Cmd Compatibility Shims
|
||||||
|
|
||||||
|
## Status
|
||||||
|
|
||||||
|
- `completed`
|
||||||
|
|
||||||
|
## Owner
|
||||||
|
|
||||||
|
- Codex
|
||||||
|
|
||||||
|
## Started At
|
||||||
|
|
||||||
|
- `2026-03-20`
|
||||||
|
|
||||||
|
## Goal
|
||||||
|
|
||||||
|
- Remove the legacy root `cmd/` compatibility shims now that package-owned runtimes are the source of truth, and clean up the remaining current docs and test indexes that still point at deleted root runtime paths.
|
||||||
|
|
||||||
|
## Scope
|
||||||
|
|
||||||
|
- remove root `cmd/inbox`, `cmd/orch`, and `cmd/orchd`
|
||||||
|
- update current docs and test-plan indexes that still reference removed root runtime paths
|
||||||
|
- keep package-owned runtime workflows and skill packaging validated after the cleanup
|
||||||
|
|
||||||
|
## Checklist
|
||||||
|
|
||||||
|
- [x] inspect remaining references to root `cmd/` and deleted root `internal/` runtime paths
|
||||||
|
- [x] update current docs and test indexes to point at package-owned runtime paths
|
||||||
|
- [x] remove the root `cmd/` files and any now-unneeded root shim wiring
|
||||||
|
- [x] validate package-owned runtime and skill packaging workflows after the cleanup
|
||||||
|
- [x] update roadmap state and archive this workstream if complete
|
||||||
|
|
||||||
|
## Files
|
||||||
|
|
||||||
|
- `docs/roadmaps/archive/remove-root-cmd-compat-shims.md`
|
||||||
|
- `cmd/`
|
||||||
|
- `docs/implementation-roadmap.md`
|
||||||
|
- `docs/tests/`
|
||||||
|
- `docs/skill-workspace-monorepo.md`
|
||||||
|
- `docs/web-product-monorepo.md`
|
||||||
|
- `go.mod`
|
||||||
|
|
||||||
|
## Decisions
|
||||||
|
|
||||||
|
- treat archived roadmaps as historical records; fix only current source-of-truth docs and current test indexes unless a broken archived reference blocks real workflows
|
||||||
|
|
||||||
|
## Blockers
|
||||||
|
|
||||||
|
- none
|
||||||
|
|
||||||
|
## Next Step
|
||||||
|
|
||||||
|
- continue routine feature work on top of the package-owned runtime workspace without recreating root-owned Go entrypoints
|
||||||
|
|
||||||
|
## Completion Summary
|
||||||
|
|
||||||
|
- updated the current inbox and orch test-plan indexes so they now point at package-owned runtime test files instead of deleted root `internal/cli/*` paths
|
||||||
|
- removed the root `cmd/` compatibility shims and the now-unneeded root Go module files so package-owned runtimes under `packages/*/cmd/*` are the only maintained Go entrypoints
|
||||||
|
- added a root `pnpm run go:test` script that validates package-owned Go runtimes directly, replacing reliance on a root Go module
|
||||||
|
- synchronized the current implementation and web monorepo docs with the package-owned runtime layout after the cleanup
|
||||||
@@ -143,7 +143,7 @@ This package owns the inbox worker-facing runtime.
|
|||||||
It should contain:
|
It should contain:
|
||||||
|
|
||||||
- `cmd/inbox/main.go`
|
- `cmd/inbox/main.go`
|
||||||
- CLI command wiring currently under `internal/cli/inbox`
|
- package-local CLI command wiring under `internal/cli/inbox`
|
||||||
- inbox-specific packaging tests
|
- inbox-specific packaging tests
|
||||||
|
|
||||||
It depends on `coord-core`.
|
It depends on `coord-core`.
|
||||||
@@ -155,7 +155,7 @@ This package owns the orch leader-facing runtime.
|
|||||||
It should contain:
|
It should contain:
|
||||||
|
|
||||||
- `cmd/orch/main.go`
|
- `cmd/orch/main.go`
|
||||||
- CLI command wiring currently under `internal/cli/orch`
|
- package-local CLI command wiring under `internal/cli/orch`
|
||||||
- worktree-specific runtime helpers currently owned only by orch
|
- worktree-specific runtime helpers currently owned only by orch
|
||||||
|
|
||||||
It depends on `coord-core`.
|
It depends on `coord-core`.
|
||||||
@@ -170,9 +170,9 @@ This package owns the HTTP and read-model runtime for the operator web surface.
|
|||||||
It should contain:
|
It should contain:
|
||||||
|
|
||||||
- `cmd/orchd/main.go`
|
- `cmd/orchd/main.go`
|
||||||
- current `internal/httpapi`
|
- package-local `internal/httpapi`
|
||||||
- current `internal/query`
|
- package-local `internal/query`
|
||||||
- current `internal/app/web.go`
|
- package-local `internal/app/web.go`
|
||||||
|
|
||||||
It depends on `coord-core`.
|
It depends on `coord-core`.
|
||||||
|
|
||||||
@@ -446,6 +446,9 @@ This migration does not require:
|
|||||||
- moving every support app into `packages/`
|
- moving every support app into `packages/`
|
||||||
- forcing every skill to own its own runtime package when runtime reuse is intentional
|
- forcing every skill to own its own runtime package when runtime reuse is intentional
|
||||||
|
|
||||||
|
The migration does remove root runtime ownership once package-owned runtimes are in place.
|
||||||
|
Root `cmd/` and root `internal/` are not part of the long-term target shape.
|
||||||
|
|
||||||
## Success Criteria
|
## Success Criteria
|
||||||
|
|
||||||
The migration is complete when:
|
The migration is complete when:
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ Unless a case says otherwise:
|
|||||||
|
|
||||||
## Relationship To Automated Tests
|
## Relationship To Automated Tests
|
||||||
|
|
||||||
The current best executable reference is [internal/cli/inbox/integration_test.go](../../../internal/cli/inbox/integration_test.go).
|
The current best executable reference is [integration_test.go](../../../packages/inbox-runtime/internal/cli/inbox/integration_test.go).
|
||||||
|
|
||||||
When this Markdown plan is expanded:
|
When this Markdown plan is expanded:
|
||||||
|
|
||||||
|
|||||||
@@ -118,12 +118,12 @@ Allowed status values in this roadmap:
|
|||||||
|
|
||||||
The Markdown test-plan set starts at zero, but these automated tests already exist and should be used as source material when writing the docs:
|
The Markdown test-plan set starts at zero, but these automated tests already exist and should be used as source material when writing the docs:
|
||||||
|
|
||||||
- [integration_test.go](../../../internal/cli/inbox/integration_test.go#L12) `TestInboxLifecycle`
|
- [integration_test.go](../../../packages/inbox-runtime/internal/cli/inbox/integration_test.go#L12) `TestInboxLifecycle`
|
||||||
- [integration_test.go](../../../internal/cli/inbox/integration_test.go#L176) `TestInboxFailLifecycle`
|
- [integration_test.go](../../../packages/inbox-runtime/internal/cli/inbox/integration_test.go#L176) `TestInboxFailLifecycle`
|
||||||
- [integration_test.go](../../../internal/cli/inbox/integration_test.go#L243) `TestInboxRenewWaitReplyAndCancel`
|
- [integration_test.go](../../../packages/inbox-runtime/internal/cli/inbox/integration_test.go#L243) `TestInboxRenewWaitReplyAndCancel`
|
||||||
- [integration_test.go](../../../internal/cli/inbox/integration_test.go#L392) `TestInboxWatchListUnreadAndAppend`
|
- [integration_test.go](../../../packages/inbox-runtime/internal/cli/inbox/integration_test.go#L392) `TestInboxWatchListUnreadAndAppend`
|
||||||
- [integration_test.go](../../../internal/cli/inbox/integration_test.go#L549) `TestInboxUnreadReadCursor`
|
- [integration_test.go](../../../packages/inbox-runtime/internal/cli/inbox/integration_test.go#L549) `TestInboxUnreadReadCursor`
|
||||||
- [integration_test.go](../../../internal/cli/inbox/integration_test.go#L639) `TestInboxJSONErrorsAndExitCodes`
|
- [integration_test.go](../../../packages/inbox-runtime/internal/cli/inbox/integration_test.go#L639) `TestInboxJSONErrorsAndExitCodes`
|
||||||
|
|
||||||
These tests do not remove the need for the Markdown plan. They only reduce discovery work.
|
These tests do not remove the need for the Markdown plan. They only reduce discovery work.
|
||||||
|
|
||||||
|
|||||||
@@ -65,7 +65,7 @@ Unless a case says otherwise:
|
|||||||
|
|
||||||
## Relationship To Automated Tests
|
## Relationship To Automated Tests
|
||||||
|
|
||||||
The current best executable reference is [internal/cli/orch/integration_test.go](../../../internal/cli/orch/integration_test.go).
|
The current best executable reference is [integration_test.go](../../../packages/orch-runtime/internal/cli/orch/integration_test.go).
|
||||||
|
|
||||||
When this Markdown plan expands:
|
When this Markdown plan expands:
|
||||||
|
|
||||||
|
|||||||
+41
-41
@@ -123,47 +123,47 @@ Allowed status values in this roadmap:
|
|||||||
|
|
||||||
The Markdown test-plan set starts at zero, but these automated tests already exist and should be used as source material when writing the docs:
|
The Markdown test-plan set starts at zero, but these automated tests already exist and should be used as source material when writing the docs:
|
||||||
|
|
||||||
- [integration_test.go](../../../internal/cli/orch/integration_test.go#L12) `TestOrchRunDispatchReconcileLifecycle`
|
- [integration_test.go](../../../packages/orch-runtime/internal/cli/orch/integration_test.go#L12) `TestOrchRunDispatchReconcileLifecycle`
|
||||||
- [integration_test.go](../../../internal/cli/orch/integration_test.go#L184) `TestOrchDependencyBlockedAndAnswerFlow`
|
- [integration_test.go](../../../packages/orch-runtime/internal/cli/orch/integration_test.go#L184) `TestOrchDependencyBlockedAndAnswerFlow`
|
||||||
- [integration_test.go](../../../internal/cli/orch/integration_test.go#L458) `TestOrchDispatchRejectsNonReadyTask`
|
- [integration_test.go](../../../packages/orch-runtime/internal/cli/orch/integration_test.go#L458) `TestOrchDispatchRejectsNonReadyTask`
|
||||||
- [integration_test.go](../../../internal/cli/orch/integration_test.go#L512) `TestOrchDispatchCreatesStrictWorktree`
|
- [integration_test.go](../../../packages/orch-runtime/internal/cli/orch/integration_test.go#L512) `TestOrchDispatchCreatesStrictWorktree`
|
||||||
- [integration_test.go](../../../internal/cli/orch/integration_test.go#L631) `TestOrchStrictWorktreeRejectsDirtyRepoWithoutBaseRef`
|
- [integration_test.go](../../../packages/orch-runtime/internal/cli/orch/integration_test.go#L631) `TestOrchStrictWorktreeRejectsDirtyRepoWithoutBaseRef`
|
||||||
- [integration_test.go](../../../internal/cli/orch/integration_test.go#L680) `TestOrchStrictWorktreeAllowsExplicitBaseRefOnDirtyRepo`
|
- [integration_test.go](../../../packages/orch-runtime/internal/cli/orch/integration_test.go#L680) `TestOrchStrictWorktreeAllowsExplicitBaseRefOnDirtyRepo`
|
||||||
- [integration_test.go](../../../internal/cli/orch/integration_test.go#L733) `TestOrchDispatchAutoEnablesWorktreeForCodeLikeTask`
|
- [integration_test.go](../../../packages/orch-runtime/internal/cli/orch/integration_test.go#L733) `TestOrchDispatchAutoEnablesWorktreeForCodeLikeTask`
|
||||||
- [integration_test.go](../../../internal/cli/orch/integration_test.go#L782) `TestOrchDispatchDoesNotAutoEnableWorktreeForNonCodeTask`
|
- [integration_test.go](../../../packages/orch-runtime/internal/cli/orch/integration_test.go#L782) `TestOrchDispatchDoesNotAutoEnableWorktreeForNonCodeTask`
|
||||||
- [integration_test.go](../../../internal/cli/orch/integration_test.go#L829) `TestOrchWaitWakesOnBlockedEvent`
|
- [integration_test.go](../../../packages/orch-runtime/internal/cli/orch/integration_test.go#L829) `TestOrchWaitWakesOnBlockedEvent`
|
||||||
- [integration_test.go](../../../internal/cli/orch/integration_test.go#L944) `TestOrchWaitTimesOutWithoutMatchingEvent`
|
- [integration_test.go](../../../packages/orch-runtime/internal/cli/orch/integration_test.go#L944) `TestOrchWaitTimesOutWithoutMatchingEvent`
|
||||||
- [integration_test.go](../../../internal/cli/orch/integration_test.go#L981) `TestOrchRetryCreatesNewAttempt`
|
- [integration_test.go](../../../packages/orch-runtime/internal/cli/orch/integration_test.go#L981) `TestOrchRetryCreatesNewAttempt`
|
||||||
- [integration_test.go](../../../internal/cli/orch/integration_test.go#L1079) `TestOrchReassignCancelsOldThreadAndDispatchesNewAttempt`
|
- [integration_test.go](../../../packages/orch-runtime/internal/cli/orch/integration_test.go#L1079) `TestOrchReassignCancelsOldThreadAndDispatchesNewAttempt`
|
||||||
- [integration_test.go](../../../internal/cli/orch/integration_test.go#L1186) `TestOrchCancelTaskAndRun`
|
- [integration_test.go](../../../packages/orch-runtime/internal/cli/orch/integration_test.go#L1186) `TestOrchCancelTaskAndRun`
|
||||||
- [integration_test.go](../../../internal/cli/orch/integration_test.go#L1315) `TestOrchCleanupRemovesCompletedWorktree`
|
- [integration_test.go](../../../packages/orch-runtime/internal/cli/orch/integration_test.go#L1315) `TestOrchCleanupRemovesCompletedWorktree`
|
||||||
- [integration_test.go](../../../internal/cli/orch/integration_test.go#L1402) `TestOrchCouncilStartDispatchesThreeReviewers`
|
- [integration_test.go](../../../packages/orch-runtime/internal/cli/orch/integration_test.go#L1402) `TestOrchCouncilStartDispatchesThreeReviewers`
|
||||||
- [integration_test.go](../../../internal/cli/orch/integration_test.go#L1545) `TestOrchCouncilWaitWakesWhenAllReviewersComplete`
|
- [integration_test.go](../../../packages/orch-runtime/internal/cli/orch/integration_test.go#L1545) `TestOrchCouncilWaitWakesWhenAllReviewersComplete`
|
||||||
- [integration_test.go](../../../internal/cli/orch/integration_test.go#L1678) `TestOrchCouncilWaitTimesOutWhenReviewersIncomplete`
|
- [integration_test.go](../../../packages/orch-runtime/internal/cli/orch/integration_test.go#L1678) `TestOrchCouncilWaitTimesOutWhenReviewersIncomplete`
|
||||||
- [integration_test.go](../../../internal/cli/orch/integration_test.go#L1715) `TestOrchCouncilTallyGroupsReviewerFindingsNormal`
|
- [integration_test.go](../../../packages/orch-runtime/internal/cli/orch/integration_test.go#L1715) `TestOrchCouncilTallyGroupsReviewerFindingsNormal`
|
||||||
- [integration_test.go](../../../internal/cli/orch/integration_test.go#L1813) `TestOrchCouncilTallyStrictKeepsDistinctProposals`
|
- [integration_test.go](../../../packages/orch-runtime/internal/cli/orch/integration_test.go#L1813) `TestOrchCouncilTallyStrictKeepsDistinctProposals`
|
||||||
- [integration_test.go](../../../internal/cli/orch/integration_test.go#L1873) `TestOrchCouncilReportDefaultShowsConsensusAndMajority`
|
- [integration_test.go](../../../packages/orch-runtime/internal/cli/orch/integration_test.go#L1873) `TestOrchCouncilReportDefaultShowsConsensusAndMajority`
|
||||||
- [integration_test.go](../../../internal/cli/orch/integration_test.go#L1950) `TestOrchCouncilReportShowAllIncludesMinority`
|
- [integration_test.go](../../../packages/orch-runtime/internal/cli/orch/integration_test.go#L1950) `TestOrchCouncilReportShowAllIncludesMinority`
|
||||||
- [integration_test.go](../../../internal/cli/orch/integration_test.go#L1979) `TestOrchCouncilReportJSONShape`
|
- [integration_test.go](../../../packages/orch-runtime/internal/cli/orch/integration_test.go#L1979) `TestOrchCouncilReportJSONShape`
|
||||||
- [command_contracts_core_test.go](../../../internal/cli/orch/command_contracts_core_test.go) `TestOrchRunShowReturnsRunSummaryAndTaskCounts`
|
- [command_contracts_core_test.go](../../../packages/orch-runtime/internal/cli/orch/command_contracts_core_test.go) `TestOrchRunShowReturnsRunSummaryAndTaskCounts`
|
||||||
- [command_contracts_core_test.go](../../../internal/cli/orch/command_contracts_core_test.go) `TestOrchRunShowRejectsMissingRun`
|
- [command_contracts_core_test.go](../../../packages/orch-runtime/internal/cli/orch/command_contracts_core_test.go) `TestOrchRunShowRejectsMissingRun`
|
||||||
- [command_contracts_core_test.go](../../../internal/cli/orch/command_contracts_core_test.go) `TestOrchTaskAddRejectsInvalidAcceptanceJSON`
|
- [command_contracts_core_test.go](../../../packages/orch-runtime/internal/cli/orch/command_contracts_core_test.go) `TestOrchTaskAddRejectsInvalidAcceptanceJSON`
|
||||||
- [command_contracts_core_test.go](../../../internal/cli/orch/command_contracts_core_test.go) `TestOrchTaskAddRejectsInvalidPriority`
|
- [command_contracts_core_test.go](../../../packages/orch-runtime/internal/cli/orch/command_contracts_core_test.go) `TestOrchTaskAddRejectsInvalidPriority`
|
||||||
- [command_contracts_core_test.go](../../../internal/cli/orch/command_contracts_core_test.go) `TestOrchReadyOrdersByPriorityAndRespectsLimit`
|
- [command_contracts_core_test.go](../../../packages/orch-runtime/internal/cli/orch/command_contracts_core_test.go) `TestOrchReadyOrdersByPriorityAndRespectsLimit`
|
||||||
- [command_contracts_edges_test.go](../../../internal/cli/orch/command_contracts_edges_test.go) `TestOrchAnswerAcceptsPayloadJSONWithoutBody`
|
- [command_contracts_edges_test.go](../../../packages/orch-runtime/internal/cli/orch/command_contracts_edges_test.go) `TestOrchAnswerAcceptsPayloadJSONWithoutBody`
|
||||||
- [command_contracts_edges_test.go](../../../internal/cli/orch/command_contracts_edges_test.go) `TestOrchAnswerRejectsEmptyBodyAndPayload`
|
- [command_contracts_edges_test.go](../../../packages/orch-runtime/internal/cli/orch/command_contracts_edges_test.go) `TestOrchAnswerRejectsEmptyBodyAndPayload`
|
||||||
- [command_contracts_edges_test.go](../../../internal/cli/orch/command_contracts_edges_test.go) `TestOrchCleanupRejectsAttemptWithoutTask`
|
- [command_contracts_edges_test.go](../../../packages/orch-runtime/internal/cli/orch/command_contracts_edges_test.go) `TestOrchCleanupRejectsAttemptWithoutTask`
|
||||||
- [command_contracts_edges_test.go](../../../internal/cli/orch/command_contracts_edges_test.go) `TestOrchCleanupReturnsNoMatchingWorkWhenFiltersMiss`
|
- [command_contracts_edges_test.go](../../../packages/orch-runtime/internal/cli/orch/command_contracts_edges_test.go) `TestOrchCleanupReturnsNoMatchingWorkWhenFiltersMiss`
|
||||||
- [command_contracts_remaining_test.go](../../../internal/cli/orch/command_contracts_remaining_test.go) `TestOrchRunInitCreatesNewRun`
|
- [command_contracts_remaining_test.go](../../../packages/orch-runtime/internal/cli/orch/command_contracts_remaining_test.go) `TestOrchRunInitCreatesNewRun`
|
||||||
- [command_contracts_remaining_test.go](../../../internal/cli/orch/command_contracts_remaining_test.go) `TestOrchDispatchCreatesAttemptAndThreadForReadyTask`
|
- [command_contracts_remaining_test.go](../../../packages/orch-runtime/internal/cli/orch/command_contracts_remaining_test.go) `TestOrchDispatchCreatesAttemptAndThreadForReadyTask`
|
||||||
- [command_contracts_remaining_test.go](../../../internal/cli/orch/command_contracts_remaining_test.go) `TestOrchBlockedListsLatestQuestionForBlockedTask`
|
- [command_contracts_remaining_test.go](../../../packages/orch-runtime/internal/cli/orch/command_contracts_remaining_test.go) `TestOrchBlockedListsLatestQuestionForBlockedTask`
|
||||||
- [command_contracts_remaining_test.go](../../../internal/cli/orch/command_contracts_remaining_test.go) `TestOrchStatusReturnsRunSummaryAndTaskList`
|
- [command_contracts_remaining_test.go](../../../packages/orch-runtime/internal/cli/orch/command_contracts_remaining_test.go) `TestOrchStatusReturnsRunSummaryAndTaskList`
|
||||||
- [command_contracts_remaining_test.go](../../../internal/cli/orch/command_contracts_remaining_test.go) `TestOrchReconcileMapsFailedThreadToTerminalTaskState`
|
- [command_contracts_remaining_test.go](../../../packages/orch-runtime/internal/cli/orch/command_contracts_remaining_test.go) `TestOrchReconcileMapsFailedThreadToTerminalTaskState`
|
||||||
- [command_contracts_remaining_test.go](../../../internal/cli/orch/command_contracts_remaining_test.go) `TestOrchWorkflowStrictWorktreeDispatchToCleanup`
|
- [command_contracts_remaining_test.go](../../../packages/orch-runtime/internal/cli/orch/command_contracts_remaining_test.go) `TestOrchWorkflowStrictWorktreeDispatchToCleanup`
|
||||||
- [command_contracts_remaining_test.go](../../../internal/cli/orch/command_contracts_remaining_test.go) `TestOrchWorkflowCouncilReviewEndToEnd`
|
- [command_contracts_remaining_test.go](../../../packages/orch-runtime/internal/cli/orch/command_contracts_remaining_test.go) `TestOrchWorkflowCouncilReviewEndToEnd`
|
||||||
- [council_report_contracts_test.go](../../../internal/cli/orch/council_report_contracts_test.go) `TestOrchCouncilReportRejectsBeforeTally`
|
- [council_report_contracts_test.go](../../../packages/orch-runtime/internal/cli/orch/council_report_contracts_test.go) `TestOrchCouncilReportRejectsBeforeTally`
|
||||||
- [council_report_contracts_test.go](../../../internal/cli/orch/council_report_contracts_test.go) `TestOrchCouncilReportRejectsInvalidShow`
|
- [council_report_contracts_test.go](../../../packages/orch-runtime/internal/cli/orch/council_report_contracts_test.go) `TestOrchCouncilReportRejectsInvalidShow`
|
||||||
- [council_report_contracts_test.go](../../../internal/cli/orch/council_report_contracts_test.go) `TestOrchCouncilReportDefaultsToConsensusForOnlyUnanimousRun`
|
- [council_report_contracts_test.go](../../../packages/orch-runtime/internal/cli/orch/council_report_contracts_test.go) `TestOrchCouncilReportDefaultsToConsensusForOnlyUnanimousRun`
|
||||||
|
|
||||||
These tests do not remove the need for the Markdown plan. They only reduce discovery work.
|
These tests do not remove the need for the Markdown plan. They only reduce discovery work.
|
||||||
|
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ The recommended direction is:
|
|||||||
|
|
||||||
- keep a single monorepo
|
- keep a single monorepo
|
||||||
- add a standalone frontend app under `apps/web`
|
- add a standalone frontend app under `apps/web`
|
||||||
- add a standalone HTTP backend entrypoint under `cmd/orchd`
|
- add a standalone HTTP backend entrypoint, now owned under `packages/orchd-runtime/cmd/orchd`
|
||||||
- keep the current Go repository as the backend source of truth
|
- keep the current Go repository as the backend source of truth
|
||||||
- evolve the backend by introducing shared application services and UI-oriented query layers
|
- evolve the backend by introducing shared application services and UI-oriented query layers
|
||||||
- avoid building the web backend by shelling out to the existing CLIs
|
- avoid building the web backend by shelling out to the existing CLIs
|
||||||
@@ -113,9 +113,9 @@ Recommended stack:
|
|||||||
The frontend should consume only HTTP APIs and event streams from the backend.
|
The frontend should consume only HTTP APIs and event streams from the backend.
|
||||||
It should never read SQLite directly and should not depend on CLI output parsing.
|
It should never read SQLite directly and should not depend on CLI output parsing.
|
||||||
|
|
||||||
### `cmd/orchd`
|
### `packages/orchd-runtime`
|
||||||
|
|
||||||
The backend HTTP service should start as a new Go binary under `cmd/orchd`.
|
The backend HTTP service should live in a package-owned runtime with its Go binary under `packages/orchd-runtime/cmd/orchd`.
|
||||||
|
|
||||||
Responsibilities:
|
Responsibilities:
|
||||||
|
|
||||||
@@ -124,9 +124,9 @@ Responsibilities:
|
|||||||
- load the same database as the CLI tools
|
- load the same database as the CLI tools
|
||||||
- use shared application services rather than reimplementing logic
|
- use shared application services rather than reimplementing logic
|
||||||
|
|
||||||
The existing `cmd/orch` and `cmd/inbox` binaries should remain available as operator and debugging tools.
|
The existing orch and inbox runtimes should remain available as operator and debugging tools through their package-owned binaries under `packages/orch-runtime/cmd/orch` and `packages/inbox-runtime/cmd/inbox`.
|
||||||
|
|
||||||
### `internal/app`
|
### `packages/orchd-runtime/internal/app`
|
||||||
|
|
||||||
This package should become the shared application-service layer.
|
This package should become the shared application-service layer.
|
||||||
|
|
||||||
@@ -142,7 +142,7 @@ It should own business actions that currently sit mostly in CLI command handlers
|
|||||||
|
|
||||||
Both CLI commands and HTTP handlers should call into this layer.
|
Both CLI commands and HTTP handlers should call into this layer.
|
||||||
|
|
||||||
### `internal/query`
|
### `packages/orchd-runtime/internal/query`
|
||||||
|
|
||||||
This package should hold read models specifically shaped for the web UI.
|
This package should hold read models specifically shaped for the web UI.
|
||||||
|
|
||||||
@@ -156,7 +156,7 @@ Examples:
|
|||||||
|
|
||||||
These should be query-oriented models rather than raw database table mirrors.
|
These should be query-oriented models rather than raw database table mirrors.
|
||||||
|
|
||||||
### `internal/httpapi`
|
### `packages/orchd-runtime/internal/httpapi`
|
||||||
|
|
||||||
This package should hold the web transport layer.
|
This package should hold the web transport layer.
|
||||||
|
|
||||||
@@ -257,9 +257,9 @@ The current project already has strong backend assets:
|
|||||||
The backend should therefore evolve in-place:
|
The backend should therefore evolve in-place:
|
||||||
|
|
||||||
1. keep the current store and schema as the persistence foundation
|
1. keep the current store and schema as the persistence foundation
|
||||||
2. extract shared application actions into `internal/app`
|
2. extract shared application actions into the orchd runtime app layer
|
||||||
3. add UI-oriented read models in `internal/query`
|
3. add UI-oriented read models in the orchd runtime query layer
|
||||||
4. add `cmd/orchd` and `internal/httpapi`
|
4. add the orchd runtime package and its HTTP transport layer
|
||||||
5. attach the React frontend after the API contract stabilizes
|
5. attach the React frontend after the API contract stabilizes
|
||||||
|
|
||||||
This is safer than first attempting a large repo split or backend rewrite.
|
This is safer than first attempting a large repo split or backend rewrite.
|
||||||
@@ -325,10 +325,10 @@ The goal is to avoid rewriting product boundaries just because the storage engin
|
|||||||
Add:
|
Add:
|
||||||
|
|
||||||
- `apps/web`
|
- `apps/web`
|
||||||
- `cmd/orchd`
|
- `packages/orchd-runtime/cmd/orchd`
|
||||||
- `internal/httpapi`
|
- `packages/orchd-runtime/internal/httpapi`
|
||||||
- `internal/app`
|
- `packages/orchd-runtime/internal/app`
|
||||||
- `internal/query`
|
- `packages/orchd-runtime/internal/query`
|
||||||
- `api/openapi.yaml`
|
- `api/openapi.yaml`
|
||||||
- `api/events.md`
|
- `api/events.md`
|
||||||
- root JS workspace files such as `package.json` and `pnpm-workspace.yaml`
|
- root JS workspace files such as `package.json` and `pnpm-workspace.yaml`
|
||||||
@@ -409,10 +409,10 @@ The current codebase should be adapted incrementally.
|
|||||||
|
|
||||||
Recommended rules:
|
Recommended rules:
|
||||||
|
|
||||||
- keep `cmd/orch` and `cmd/inbox` working while the HTTP layer is introduced
|
- keep the package-owned `orch` and `inbox` binaries working while the HTTP layer is introduced
|
||||||
- move business logic out of command handlers only when the shared service abstraction is clear
|
- move business logic out of command handlers only when the shared service abstraction is clear
|
||||||
- do not rewrite `store` just to match HTTP names
|
- do not rewrite `store` just to match HTTP names
|
||||||
- let the frontend shape drive `internal/query`, not the table layout alone
|
- let the frontend shape drive the orchd runtime query layer, not the table layout alone
|
||||||
- avoid introducing duplicate orchestration logic between CLI and HTTP
|
- avoid introducing duplicate orchestration logic between CLI and HTTP
|
||||||
|
|
||||||
## Immediate Recommended Next Step
|
## Immediate Recommended Next Step
|
||||||
@@ -420,7 +420,7 @@ Recommended rules:
|
|||||||
If the project begins this web-product milestone, the first implementation slice should be:
|
If the project begins this web-product milestone, the first implementation slice should be:
|
||||||
|
|
||||||
1. scaffold the monorepo workspace files and `apps/web`
|
1. scaffold the monorepo workspace files and `apps/web`
|
||||||
2. add `cmd/orchd` with a `chi` router and a minimal health or runs endpoint
|
2. add the `orchd` runtime package with a `chi` router and a minimal health or runs endpoint
|
||||||
3. introduce the first shared application or query boundary rather than letting handlers call storage ad hoc
|
3. introduce the first shared application or query boundary rather than letting handlers call storage ad hoc
|
||||||
4. write the initial API contract in `api/openapi.yaml`
|
4. write the initial API contract in `api/openapi.yaml`
|
||||||
|
|
||||||
|
|||||||
@@ -1,33 +0,0 @@
|
|||||||
module ai-workflow-skill
|
|
||||||
|
|
||||||
go 1.26
|
|
||||||
|
|
||||||
require (
|
|
||||||
ai-workflow-skill/packages/inbox-runtime v0.0.0
|
|
||||||
ai-workflow-skill/packages/orch-runtime v0.0.0
|
|
||||||
ai-workflow-skill/packages/orchd-runtime v0.0.0
|
|
||||||
github.com/go-chi/chi/v5 v5.2.5
|
|
||||||
github.com/spf13/cobra v1.10.1
|
|
||||||
modernc.org/sqlite v1.40.1
|
|
||||||
)
|
|
||||||
|
|
||||||
require (
|
|
||||||
github.com/dustin/go-humanize v1.0.1 // indirect
|
|
||||||
github.com/google/uuid v1.6.0 // indirect
|
|
||||||
github.com/inconshreveable/mousetrap v1.1.0 // indirect
|
|
||||||
github.com/mattn/go-isatty v0.0.20 // indirect
|
|
||||||
github.com/ncruces/go-strftime v0.1.9 // indirect
|
|
||||||
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect
|
|
||||||
github.com/spf13/pflag v1.0.9 // indirect
|
|
||||||
golang.org/x/exp v0.0.0-20250620022241-b7579e27df2b // indirect
|
|
||||||
golang.org/x/sys v0.36.0 // indirect
|
|
||||||
modernc.org/libc v1.66.10 // indirect
|
|
||||||
modernc.org/mathutil v1.7.1 // indirect
|
|
||||||
modernc.org/memory v1.11.0 // indirect
|
|
||||||
)
|
|
||||||
|
|
||||||
replace ai-workflow-skill/packages/inbox-runtime => ./packages/inbox-runtime
|
|
||||||
|
|
||||||
replace ai-workflow-skill/packages/orch-runtime => ./packages/orch-runtime
|
|
||||||
|
|
||||||
replace ai-workflow-skill/packages/orchd-runtime => ./packages/orchd-runtime
|
|
||||||
@@ -1,7 +1,6 @@
|
|||||||
go 1.26
|
go 1.26
|
||||||
|
|
||||||
use (
|
use (
|
||||||
.
|
|
||||||
./packages/coord-core
|
./packages/coord-core
|
||||||
./packages/inbox-runtime
|
./packages/inbox-runtime
|
||||||
./packages/orch-runtime
|
./packages/orch-runtime
|
||||||
|
|||||||
@@ -1,2 +1,6 @@
|
|||||||
|
github.com/go-chi/chi/v5 v5.2.5/go.mod h1:X7Gx4mteadT3eDOMTsXzmI4/rwUpOwBHLpAfupzFJP0=
|
||||||
|
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||||
github.com/mattn/go-sqlite3 v1.14.37 h1:3DOZp4cXis1cUIpCfXLtmlGolNLp2VEqhiB/PARNBIg=
|
github.com/mattn/go-sqlite3 v1.14.37 h1:3DOZp4cXis1cUIpCfXLtmlGolNLp2VEqhiB/PARNBIg=
|
||||||
github.com/mattn/go-sqlite3 v1.14.37/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y=
|
github.com/mattn/go-sqlite3 v1.14.37/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y=
|
||||||
|
github.com/spf13/cobra v1.10.1/go.mod h1:7SmJGaTHFVBY0jW4NXGluQoLvhqFQM+6XSKD+P4XaB0=
|
||||||
|
modernc.org/sqlite v1.40.1/go.mod h1:9fjQZ0mB1LLP0GYrp39oOJXx/I2sxEnZtzCmEQIKvGE=
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
"private": true,
|
"private": true,
|
||||||
"packageManager": "pnpm@10.25.0",
|
"packageManager": "pnpm@10.25.0",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
"go:test": "bash ./scripts/test_go_packages.sh",
|
||||||
"skills:bundle": "bash ./scripts/package_skill_runtimes.sh package",
|
"skills:bundle": "bash ./scripts/package_skill_runtimes.sh package",
|
||||||
"skills:bundle:plan": "bash ./scripts/package_skill_runtimes.sh plan",
|
"skills:bundle:plan": "bash ./scripts/package_skill_runtimes.sh plan",
|
||||||
"skills:bundle:validate": "bash ./scripts/package_skill_runtimes.sh validate",
|
"skills:bundle:validate": "bash ./scripts/package_skill_runtimes.sh validate",
|
||||||
|
|||||||
@@ -6,3 +6,15 @@ require (
|
|||||||
github.com/google/uuid v1.6.0
|
github.com/google/uuid v1.6.0
|
||||||
modernc.org/sqlite v1.40.1
|
modernc.org/sqlite v1.40.1
|
||||||
)
|
)
|
||||||
|
|
||||||
|
require (
|
||||||
|
github.com/dustin/go-humanize v1.0.1 // indirect
|
||||||
|
github.com/mattn/go-isatty v0.0.20 // indirect
|
||||||
|
github.com/ncruces/go-strftime v0.1.9 // indirect
|
||||||
|
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect
|
||||||
|
golang.org/x/exp v0.0.0-20250620022241-b7579e27df2b // indirect
|
||||||
|
golang.org/x/sys v0.36.0 // indirect
|
||||||
|
modernc.org/libc v1.66.10 // indirect
|
||||||
|
modernc.org/mathutil v1.7.1 // indirect
|
||||||
|
modernc.org/memory v1.11.0 // indirect
|
||||||
|
)
|
||||||
|
|||||||
@@ -1,25 +1,15 @@
|
|||||||
github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g=
|
|
||||||
github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY=
|
github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY=
|
||||||
github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto=
|
github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto=
|
||||||
github.com/go-chi/chi/v5 v5.2.5 h1:Eg4myHZBjyvJmAFjFvWgrqDTXFyOzjj7YIm3L3mu6Ug=
|
|
||||||
github.com/go-chi/chi/v5 v5.2.5/go.mod h1:X7Gx4mteadT3eDOMTsXzmI4/rwUpOwBHLpAfupzFJP0=
|
|
||||||
github.com/google/pprof v0.0.0-20250317173921-a4b03ec1a45e h1:ijClszYn+mADRFY17kjQEVQ1XRhq2/JR1M3sGqeJoxs=
|
github.com/google/pprof v0.0.0-20250317173921-a4b03ec1a45e h1:ijClszYn+mADRFY17kjQEVQ1XRhq2/JR1M3sGqeJoxs=
|
||||||
github.com/google/pprof v0.0.0-20250317173921-a4b03ec1a45e/go.mod h1:boTsfXsheKC2y+lKOCMpSfarhxDeIzfZG1jqGcPl3cA=
|
github.com/google/pprof v0.0.0-20250317173921-a4b03ec1a45e/go.mod h1:boTsfXsheKC2y+lKOCMpSfarhxDeIzfZG1jqGcPl3cA=
|
||||||
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
|
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
|
||||||
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||||
github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
|
|
||||||
github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
|
|
||||||
github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
|
github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
|
||||||
github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
|
github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
|
||||||
github.com/ncruces/go-strftime v0.1.9 h1:bY0MQC28UADQmHmaF5dgpLmImcShSi2kHU9XLdhx/f4=
|
github.com/ncruces/go-strftime v0.1.9 h1:bY0MQC28UADQmHmaF5dgpLmImcShSi2kHU9XLdhx/f4=
|
||||||
github.com/ncruces/go-strftime v0.1.9/go.mod h1:Fwc5htZGVVkseilnfgOVb9mKy6w1naJmn9CehxcKcls=
|
github.com/ncruces/go-strftime v0.1.9/go.mod h1:Fwc5htZGVVkseilnfgOVb9mKy6w1naJmn9CehxcKcls=
|
||||||
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94icq4NjY3clb7Lk8O1qJ8BdBEF8z0ibU0rE=
|
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94icq4NjY3clb7Lk8O1qJ8BdBEF8z0ibU0rE=
|
||||||
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo=
|
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo=
|
||||||
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
|
|
||||||
github.com/spf13/cobra v1.10.1 h1:lJeBwCfmrnXthfAupyUTzJ/J4Nc1RsHC/mSRU2dll/s=
|
|
||||||
github.com/spf13/cobra v1.10.1/go.mod h1:7SmJGaTHFVBY0jW4NXGluQoLvhqFQM+6XSKD+P4XaB0=
|
|
||||||
github.com/spf13/pflag v1.0.9 h1:9exaQaMOCwffKiiiYk6/BndUBv+iRViNW+4lEMi0PvY=
|
|
||||||
github.com/spf13/pflag v1.0.9/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
|
|
||||||
golang.org/x/exp v0.0.0-20250620022241-b7579e27df2b h1:M2rDM6z3Fhozi9O7NWsxAkg/yqS/lQJ6PmkyIV3YP+o=
|
golang.org/x/exp v0.0.0-20250620022241-b7579e27df2b h1:M2rDM6z3Fhozi9O7NWsxAkg/yqS/lQJ6PmkyIV3YP+o=
|
||||||
golang.org/x/exp v0.0.0-20250620022241-b7579e27df2b/go.mod h1:3//PLf8L/X+8b4vuAfHzxeRUl04Adcb341+IGKfnqS8=
|
golang.org/x/exp v0.0.0-20250620022241-b7579e27df2b/go.mod h1:3//PLf8L/X+8b4vuAfHzxeRUl04Adcb341+IGKfnqS8=
|
||||||
golang.org/x/mod v0.27.0 h1:kb+q2PyFnEADO2IEF935ehFUXlWiNjJWtRNgBLSfbxQ=
|
golang.org/x/mod v0.27.0 h1:kb+q2PyFnEADO2IEF935ehFUXlWiNjJWtRNgBLSfbxQ=
|
||||||
@@ -31,8 +21,6 @@ golang.org/x/sys v0.36.0 h1:KVRy2GtZBrk1cBYA7MKu5bEZFxQk4NIDV6RLVcC8o0k=
|
|||||||
golang.org/x/sys v0.36.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
|
golang.org/x/sys v0.36.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
|
||||||
golang.org/x/tools v0.36.0 h1:kWS0uv/zsvHEle1LbV5LE8QujrxB3wfQyxHfhOk0Qkg=
|
golang.org/x/tools v0.36.0 h1:kWS0uv/zsvHEle1LbV5LE8QujrxB3wfQyxHfhOk0Qkg=
|
||||||
golang.org/x/tools v0.36.0/go.mod h1:WBDiHKJK8YgLHlcQPYQzNCkUxUypCaa5ZegCVutKm+s=
|
golang.org/x/tools v0.36.0/go.mod h1:WBDiHKJK8YgLHlcQPYQzNCkUxUypCaa5ZegCVutKm+s=
|
||||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
|
||||||
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
|
||||||
modernc.org/cc/v4 v4.26.5 h1:xM3bX7Mve6G8K8b+T11ReenJOT+BmVqQj0FY5T4+5Y4=
|
modernc.org/cc/v4 v4.26.5 h1:xM3bX7Mve6G8K8b+T11ReenJOT+BmVqQj0FY5T4+5Y4=
|
||||||
modernc.org/cc/v4 v4.26.5/go.mod h1:uVtb5OGqUKpoLWhqwNQo/8LwvoiEBLvZXIQ/SmO6mL0=
|
modernc.org/cc/v4 v4.26.5/go.mod h1:uVtb5OGqUKpoLWhqwNQo/8LwvoiEBLvZXIQ/SmO6mL0=
|
||||||
modernc.org/ccgo/v4 v4.28.1 h1:wPKYn5EC/mYTqBO373jKjvX2n+3+aK7+sICCv4Fjy1A=
|
modernc.org/ccgo/v4 v4.28.1 h1:wPKYn5EC/mYTqBO373jKjvX2n+3+aK7+sICCv4Fjy1A=
|
||||||
@@ -2,6 +2,9 @@ module ai-workflow-skill/packages/inbox-runtime
|
|||||||
|
|
||||||
go 1.26
|
go 1.26
|
||||||
|
|
||||||
|
require github.com/spf13/cobra v1.10.1
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/spf13/cobra v1.10.1
|
github.com/inconshreveable/mousetrap v1.1.0 // indirect
|
||||||
|
github.com/spf13/pflag v1.0.9 // indirect
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -0,0 +1,10 @@
|
|||||||
|
github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g=
|
||||||
|
github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
|
||||||
|
github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
|
||||||
|
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
|
||||||
|
github.com/spf13/cobra v1.10.1 h1:lJeBwCfmrnXthfAupyUTzJ/J4Nc1RsHC/mSRU2dll/s=
|
||||||
|
github.com/spf13/cobra v1.10.1/go.mod h1:7SmJGaTHFVBY0jW4NXGluQoLvhqFQM+6XSKD+P4XaB0=
|
||||||
|
github.com/spf13/pflag v1.0.9 h1:9exaQaMOCwffKiiiYk6/BndUBv+iRViNW+4lEMi0PvY=
|
||||||
|
github.com/spf13/pflag v1.0.9/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
|
||||||
|
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
|
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||||
@@ -2,6 +2,9 @@ module ai-workflow-skill/packages/orch-runtime
|
|||||||
|
|
||||||
go 1.26
|
go 1.26
|
||||||
|
|
||||||
|
require github.com/spf13/cobra v1.10.1
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/spf13/cobra v1.10.1
|
github.com/inconshreveable/mousetrap v1.1.0 // indirect
|
||||||
|
github.com/spf13/pflag v1.0.9 // indirect
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -0,0 +1,10 @@
|
|||||||
|
github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g=
|
||||||
|
github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
|
||||||
|
github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
|
||||||
|
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
|
||||||
|
github.com/spf13/cobra v1.10.1 h1:lJeBwCfmrnXthfAupyUTzJ/J4Nc1RsHC/mSRU2dll/s=
|
||||||
|
github.com/spf13/cobra v1.10.1/go.mod h1:7SmJGaTHFVBY0jW4NXGluQoLvhqFQM+6XSKD+P4XaB0=
|
||||||
|
github.com/spf13/pflag v1.0.9 h1:9exaQaMOCwffKiiiYk6/BndUBv+iRViNW+4lEMi0PvY=
|
||||||
|
github.com/spf13/pflag v1.0.9/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
|
||||||
|
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
|
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||||
@@ -63,7 +63,7 @@ func inboxCommandPath() string {
|
|||||||
panic("unable to determine orch test helper path")
|
panic("unable to determine orch test helper path")
|
||||||
}
|
}
|
||||||
|
|
||||||
return filepath.Join(filepath.Dir(file), "..", "..", "..", "..", "..", "cmd", "inbox")
|
return filepath.Join(filepath.Dir(file), "..", "..", "..", "..", "..", "packages", "inbox-runtime", "cmd", "inbox")
|
||||||
}
|
}
|
||||||
|
|
||||||
func mustDecodeJSON(t *testing.T, raw string, target any) {
|
func mustDecodeJSON(t *testing.T, raw string, target any) {
|
||||||
|
|||||||
@@ -0,0 +1,2 @@
|
|||||||
|
github.com/go-chi/chi/v5 v5.2.5 h1:Eg4myHZBjyvJmAFjFvWgrqDTXFyOzjj7YIm3L3mu6Ug=
|
||||||
|
github.com/go-chi/chi/v5 v5.2.5/go.mod h1:X7Gx4mteadT3eDOMTsXzmI4/rwUpOwBHLpAfupzFJP0=
|
||||||
@@ -3,5 +3,3 @@ module ai-workflow-skill/packages/repo-memory-runtime
|
|||||||
go 1.26
|
go 1.26
|
||||||
|
|
||||||
require github.com/mattn/go-sqlite3 v1.14.37
|
require github.com/mattn/go-sqlite3 v1.14.37
|
||||||
|
|
||||||
require github.com/mattn/go-sqlite3 v1.14.37
|
|
||||||
|
|||||||
@@ -0,0 +1,2 @@
|
|||||||
|
github.com/mattn/go-sqlite3 v1.14.37 h1:3DOZp4cXis1cUIpCfXLtmlGolNLp2VEqhiB/PARNBIg=
|
||||||
|
github.com/mattn/go-sqlite3 v1.14.37/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y=
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
readonly SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
|
readonly REPO_ROOT="$(cd "${SCRIPT_DIR}/.." && pwd)"
|
||||||
|
|
||||||
|
main() {
|
||||||
|
local tested=0
|
||||||
|
local package_dir
|
||||||
|
|
||||||
|
for package_dir in "${REPO_ROOT}"/packages/*; do
|
||||||
|
if [[ ! -d "${package_dir}" || ! -f "${package_dir}/go.mod" ]]; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
printf 'testing %s\n' "${package_dir#${REPO_ROOT}/}"
|
||||||
|
(
|
||||||
|
cd "${package_dir}"
|
||||||
|
go test ./...
|
||||||
|
)
|
||||||
|
tested=1
|
||||||
|
done
|
||||||
|
|
||||||
|
if [[ "${tested}" -eq 0 ]]; then
|
||||||
|
printf 'no Go runtime packages found under packages/\n' >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
main "$@"
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user