diff --git a/Makefile b/Makefile index 6e8b6070..44b3a8c9 100644 --- a/Makefile +++ b/Makefile @@ -19,18 +19,18 @@ DETERMINISTIC_PKGS := \ ./cmd/agency \ ./cmd/memory \ ./internal/agency \ - ./internal/agencyclient \ - ./internal/attach \ - ./internal/authority \ - ./internal/artifact \ - ./internal/embed \ - ./internal/graph \ - ./internal/importdraft \ - ./internal/model \ - ./internal/search \ - ./internal/setup \ - ./internal/setup/assets \ - ./internal/store \ + ./internal/agency/client \ + ./internal/agency/attach \ + ./internal/agency/authority \ + ./internal/agency/artifact \ + ./internal/memory/embed \ + ./internal/memory/graph \ + ./internal/memory/importdraft \ + ./internal/memory/model \ + ./internal/memory/search \ + ./internal/memory/setup \ + ./internal/memory/setup/assets \ + ./internal/memory/store \ ./test/mnemond/architecture \ ./test/mnemond/observer \ ./test/mnemond/domainops/trace diff --git a/cmd/agency/command.go b/cmd/agency/command.go index 248a1506..4ed0675f 100644 --- a/cmd/agency/command.go +++ b/cmd/agency/command.go @@ -7,7 +7,7 @@ package agency import ( "errors" - "github.com/mnemon-dev/mnemon/internal/agencyclient" + "github.com/mnemon-dev/mnemon/internal/agency/client" "github.com/mnemon-dev/mnemon/internal/daemon" "github.com/spf13/cobra" ) diff --git a/cmd/agency/setup.go b/cmd/agency/setup.go index 757f24cc..bad0ade6 100644 --- a/cmd/agency/setup.go +++ b/cmd/agency/setup.go @@ -8,7 +8,7 @@ import ( "os" "strings" - "github.com/mnemon-dev/mnemon/internal/attach" + "github.com/mnemon-dev/mnemon/internal/agency/attach" "github.com/mnemon-dev/mnemon/internal/daemon" "github.com/spf13/cobra" ) diff --git a/cmd/memory/embed.go b/cmd/memory/embed.go index 93ad6ab1..0ac9be70 100644 --- a/cmd/memory/embed.go +++ b/cmd/memory/embed.go @@ -5,7 +5,7 @@ import ( "fmt" "os" - "github.com/mnemon-dev/mnemon/internal/embed" + "github.com/mnemon-dev/mnemon/internal/memory/embed" "github.com/spf13/cobra" ) diff --git a/cmd/memory/gc.go b/cmd/memory/gc.go index a223a07b..c828afd8 100644 --- a/cmd/memory/gc.go +++ b/cmd/memory/gc.go @@ -5,7 +5,7 @@ import ( "fmt" "os" - "github.com/mnemon-dev/mnemon/internal/store" + "github.com/mnemon-dev/mnemon/internal/memory/store" "github.com/spf13/cobra" ) diff --git a/cmd/memory/import.go b/cmd/memory/import.go index 40a3503e..0100634b 100644 --- a/cmd/memory/import.go +++ b/cmd/memory/import.go @@ -7,12 +7,12 @@ import ( "time" "github.com/google/uuid" - "github.com/mnemon-dev/mnemon/internal/embed" - "github.com/mnemon-dev/mnemon/internal/graph" - "github.com/mnemon-dev/mnemon/internal/importdraft" - "github.com/mnemon-dev/mnemon/internal/model" - "github.com/mnemon-dev/mnemon/internal/search" - "github.com/mnemon-dev/mnemon/internal/store" + "github.com/mnemon-dev/mnemon/internal/memory/embed" + "github.com/mnemon-dev/mnemon/internal/memory/graph" + "github.com/mnemon-dev/mnemon/internal/memory/importdraft" + "github.com/mnemon-dev/mnemon/internal/memory/model" + "github.com/mnemon-dev/mnemon/internal/memory/search" + "github.com/mnemon-dev/mnemon/internal/memory/store" "github.com/spf13/cobra" ) diff --git a/cmd/memory/import_test.go b/cmd/memory/import_test.go index 5ab480fd..5431b81c 100644 --- a/cmd/memory/import_test.go +++ b/cmd/memory/import_test.go @@ -7,8 +7,8 @@ import ( "testing" "time" - "github.com/mnemon-dev/mnemon/internal/model" - "github.com/mnemon-dev/mnemon/internal/store" + "github.com/mnemon-dev/mnemon/internal/memory/model" + "github.com/mnemon-dev/mnemon/internal/memory/store" ) func TestImportRepairsBackdatedTemporalBackbone(t *testing.T) { diff --git a/cmd/memory/link.go b/cmd/memory/link.go index 0bc2d013..71c58e4e 100644 --- a/cmd/memory/link.go +++ b/cmd/memory/link.go @@ -6,7 +6,7 @@ import ( "os" "time" - "github.com/mnemon-dev/mnemon/internal/model" + "github.com/mnemon-dev/mnemon/internal/memory/model" "github.com/spf13/cobra" ) diff --git a/cmd/memory/recall.go b/cmd/memory/recall.go index 6deb8ad3..4d1c2bef 100644 --- a/cmd/memory/recall.go +++ b/cmd/memory/recall.go @@ -7,10 +7,10 @@ import ( "os" "strings" - "github.com/mnemon-dev/mnemon/internal/embed" - "github.com/mnemon-dev/mnemon/internal/graph" - "github.com/mnemon-dev/mnemon/internal/search" - "github.com/mnemon-dev/mnemon/internal/store" + "github.com/mnemon-dev/mnemon/internal/memory/embed" + "github.com/mnemon-dev/mnemon/internal/memory/graph" + "github.com/mnemon-dev/mnemon/internal/memory/search" + "github.com/mnemon-dev/mnemon/internal/memory/store" "github.com/spf13/cobra" ) diff --git a/cmd/memory/recall_test.go b/cmd/memory/recall_test.go index f38298b0..6f055019 100644 --- a/cmd/memory/recall_test.go +++ b/cmd/memory/recall_test.go @@ -6,8 +6,8 @@ import ( "testing" "time" - "github.com/mnemon-dev/mnemon/internal/model" - "github.com/mnemon-dev/mnemon/internal/search" + "github.com/mnemon-dev/mnemon/internal/memory/model" + "github.com/mnemon-dev/mnemon/internal/memory/search" ) func makeTestRecallResponse() search.RecallResponse { diff --git a/cmd/memory/receipt.go b/cmd/memory/receipt.go index 1c39d8f0..ca26e029 100644 --- a/cmd/memory/receipt.go +++ b/cmd/memory/receipt.go @@ -8,7 +8,7 @@ import ( "os" "time" - "github.com/mnemon-dev/mnemon/internal/store" + "github.com/mnemon-dev/mnemon/internal/memory/store" "github.com/spf13/cobra" ) diff --git a/cmd/memory/receipt_test.go b/cmd/memory/receipt_test.go index 776d8a37..a48c7ff0 100644 --- a/cmd/memory/receipt_test.go +++ b/cmd/memory/receipt_test.go @@ -5,7 +5,7 @@ import ( "testing" "time" - "github.com/mnemon-dev/mnemon/internal/store" + "github.com/mnemon-dev/mnemon/internal/memory/store" ) func TestBuildReceiptOmitsRawDetails(t *testing.T) { diff --git a/cmd/memory/related.go b/cmd/memory/related.go index 2abd308a..44152e06 100644 --- a/cmd/memory/related.go +++ b/cmd/memory/related.go @@ -5,9 +5,9 @@ import ( "fmt" "os" - "github.com/mnemon-dev/mnemon/internal/graph" - "github.com/mnemon-dev/mnemon/internal/model" - "github.com/mnemon-dev/mnemon/internal/store" + "github.com/mnemon-dev/mnemon/internal/memory/graph" + "github.com/mnemon-dev/mnemon/internal/memory/model" + "github.com/mnemon-dev/mnemon/internal/memory/store" "github.com/spf13/cobra" ) diff --git a/cmd/memory/remember.go b/cmd/memory/remember.go index d5525c44..c37497a2 100644 --- a/cmd/memory/remember.go +++ b/cmd/memory/remember.go @@ -8,11 +8,11 @@ import ( "time" "github.com/google/uuid" - "github.com/mnemon-dev/mnemon/internal/embed" - "github.com/mnemon-dev/mnemon/internal/graph" - "github.com/mnemon-dev/mnemon/internal/model" - "github.com/mnemon-dev/mnemon/internal/search" - "github.com/mnemon-dev/mnemon/internal/store" + "github.com/mnemon-dev/mnemon/internal/memory/embed" + "github.com/mnemon-dev/mnemon/internal/memory/graph" + "github.com/mnemon-dev/mnemon/internal/memory/model" + "github.com/mnemon-dev/mnemon/internal/memory/search" + "github.com/mnemon-dev/mnemon/internal/memory/store" "github.com/spf13/cobra" ) diff --git a/cmd/memory/root.go b/cmd/memory/root.go index 1827141c..08ffc6fa 100644 --- a/cmd/memory/root.go +++ b/cmd/memory/root.go @@ -4,8 +4,8 @@ import ( "fmt" "os" - "github.com/mnemon-dev/mnemon/internal/embed" - "github.com/mnemon-dev/mnemon/internal/store" + "github.com/mnemon-dev/mnemon/internal/memory/embed" + "github.com/mnemon-dev/mnemon/internal/memory/store" "github.com/spf13/cobra" ) diff --git a/cmd/memory/root_test.go b/cmd/memory/root_test.go index 4922605d..eb2a79ac 100644 --- a/cmd/memory/root_test.go +++ b/cmd/memory/root_test.go @@ -4,7 +4,7 @@ import ( "strings" "testing" - "github.com/mnemon-dev/mnemon/internal/embed" + "github.com/mnemon-dev/mnemon/internal/memory/embed" ) func TestNewReturnsComposableMemoryRoot(t *testing.T) { diff --git a/cmd/memory/search.go b/cmd/memory/search.go index 2339ac63..332c9f4a 100644 --- a/cmd/memory/search.go +++ b/cmd/memory/search.go @@ -6,7 +6,7 @@ import ( "os" "strings" - "github.com/mnemon-dev/mnemon/internal/search" + "github.com/mnemon-dev/mnemon/internal/memory/search" "github.com/spf13/cobra" ) diff --git a/cmd/memory/setup.go b/cmd/memory/setup.go index f592021b..4a6a8f4e 100644 --- a/cmd/memory/setup.go +++ b/cmd/memory/setup.go @@ -4,9 +4,9 @@ import ( "fmt" "strings" - "github.com/mnemon-dev/mnemon/internal/setup" - "github.com/mnemon-dev/mnemon/internal/setup/assets" - "github.com/mnemon-dev/mnemon/internal/store" + "github.com/mnemon-dev/mnemon/internal/memory/setup" + "github.com/mnemon-dev/mnemon/internal/memory/setup/assets" + "github.com/mnemon-dev/mnemon/internal/memory/store" "github.com/spf13/cobra" ) diff --git a/cmd/memory/store.go b/cmd/memory/store.go index cda165c0..b155ad1b 100644 --- a/cmd/memory/store.go +++ b/cmd/memory/store.go @@ -4,7 +4,7 @@ import ( "fmt" "os" - "github.com/mnemon-dev/mnemon/internal/store" + "github.com/mnemon-dev/mnemon/internal/memory/store" "github.com/spf13/cobra" ) diff --git a/cmd/memory/viz.go b/cmd/memory/viz.go index 5c0f834f..818dc9f3 100644 --- a/cmd/memory/viz.go +++ b/cmd/memory/viz.go @@ -6,7 +6,7 @@ import ( "os" "strings" - "github.com/mnemon-dev/mnemon/internal/model" + "github.com/mnemon-dev/mnemon/internal/memory/model" "github.com/spf13/cobra" ) diff --git a/docs/mnemond/protocol.md b/docs/mnemond/protocol.md index ef0577c1..e3c00227 100644 --- a/docs/mnemond/protocol.md +++ b/docs/mnemond/protocol.md @@ -123,19 +123,19 @@ The two nodes never share a canonical Task or Handling. Consequently: ## Package ownership ```text -internal/agency immutable protocol values and canonical projections -internal/authority sealed View, Intent binding, admission, Handling and Reference state -internal/artifact immutable content bytes and digest verification -internal/peerlink replaceable authenticated transport only -internal/daemon process composition and lifecycle -internal/agencyclient Runtime-facing local terminal and replay journal -internal/attach host Hook, guide, and tool projection +internal/agency immutable protocol values and canonical projections +internal/agency/authority sealed View, Intent binding, admission, Handling and Reference state +internal/agency/artifact immutable content bytes and digest verification +internal/agency/peerlink replaceable authenticated transport only +internal/agency/client Runtime-facing local terminal and replay journal +internal/agency/attach host Hook, guide, and tool projection +internal/daemon process composition and lifecycle ``` -`internal/authority` is the only durable fact writer. Runtime adapters and +`internal/agency/authority` is the only durable fact writer. Runtime adapters and transport may present candidates or observations but do not own protocol state. `internal/agency` validates immutable values; policy that resolves View -handles or decides durable consequences belongs to `internal/authority`. +handles or decides durable consequences belongs to `internal/agency/authority`. ## Capability boundary diff --git a/docs/zh/mnemond/protocol.md b/docs/zh/mnemond/protocol.md index 5ed08990..ce854d61 100644 --- a/docs/zh/mnemond/protocol.md +++ b/docs/zh/mnemond/protocol.md @@ -114,18 +114,18 @@ Node A 收到 candidate ## Package 权责 ```text -internal/agency 不可变协议值与 canonical projection -internal/authority sealed View、Intent binding、admission、Handling/Reference state -internal/artifact 不可变内容字节与 digest 验证 -internal/peerlink 可替换的认证传输 -internal/daemon 进程组合与生命周期 -internal/agencyclient Runtime 面向的本地 terminal 与 replay journal -internal/attach Host Hook、guide 和工具投影 +internal/agency 不可变协议值与 canonical projection +internal/agency/authority sealed View、Intent binding、admission、Handling/Reference state +internal/agency/artifact 不可变内容字节与 digest 验证 +internal/agency/peerlink 可替换的认证传输 +internal/agency/client Runtime 面向的本地 terminal 与 replay journal +internal/agency/attach Host Hook、guide 和工具投影 +internal/daemon 进程组合与生命周期 ``` -`internal/authority` 是唯一持久事实 writer。Runtime adapter 和 transport +`internal/agency/authority` 是唯一持久事实 writer。Runtime adapter 和 transport 只能提供 candidate 或 observation。`internal/agency` 校验不可变值;解析 -View handle、选择持久 consequence 等 policy 必须属于 `internal/authority`。 +View handle、选择持久 consequence 等 policy 必须属于 `internal/agency/authority`。 ## 能力边界 diff --git a/internal/artifact/doc.go b/internal/agency/artifact/doc.go similarity index 100% rename from internal/artifact/doc.go rename to internal/agency/artifact/doc.go diff --git a/internal/artifact/filesystem.go b/internal/agency/artifact/filesystem.go similarity index 100% rename from internal/artifact/filesystem.go rename to internal/agency/artifact/filesystem.go diff --git a/internal/artifact/store.go b/internal/agency/artifact/store.go similarity index 100% rename from internal/artifact/store.go rename to internal/agency/artifact/store.go diff --git a/internal/artifact/store_test.go b/internal/agency/artifact/store_test.go similarity index 100% rename from internal/artifact/store_test.go rename to internal/agency/artifact/store_test.go diff --git a/internal/attach/assets.go b/internal/agency/attach/assets.go similarity index 100% rename from internal/attach/assets.go rename to internal/agency/attach/assets.go diff --git a/internal/attach/assets/hook-cue.txt b/internal/agency/attach/assets/hook-cue.txt similarity index 100% rename from internal/attach/assets/hook-cue.txt rename to internal/agency/attach/assets/hook-cue.txt diff --git a/internal/attach/assets/mnemond.md b/internal/agency/attach/assets/mnemond.md similarity index 100% rename from internal/attach/assets/mnemond.md rename to internal/agency/attach/assets/mnemond.md diff --git a/internal/attach/assets/pi/mnemond-current.ts b/internal/agency/attach/assets/pi/mnemond-current.ts similarity index 100% rename from internal/attach/assets/pi/mnemond-current.ts rename to internal/agency/attach/assets/pi/mnemond-current.ts diff --git a/internal/attach/assets/pi/mnemond.ts b/internal/agency/attach/assets/pi/mnemond.ts similarity index 100% rename from internal/attach/assets/pi/mnemond.ts rename to internal/agency/attach/assets/pi/mnemond.ts diff --git a/internal/attach/attach_test.go b/internal/agency/attach/attach_test.go similarity index 100% rename from internal/attach/attach_test.go rename to internal/agency/attach/attach_test.go diff --git a/internal/attach/doc.go b/internal/agency/attach/doc.go similarity index 100% rename from internal/attach/doc.go rename to internal/agency/attach/doc.go diff --git a/internal/attach/filesystem.go b/internal/agency/attach/filesystem.go similarity index 100% rename from internal/attach/filesystem.go rename to internal/agency/attach/filesystem.go diff --git a/internal/attach/install.go b/internal/agency/attach/install.go similarity index 100% rename from internal/attach/install.go rename to internal/agency/attach/install.go diff --git a/internal/attach/pi_current_test.go b/internal/agency/attach/pi_current_test.go similarity index 100% rename from internal/attach/pi_current_test.go rename to internal/agency/attach/pi_current_test.go diff --git a/internal/attach/pi_effect_settlement_test.go b/internal/agency/attach/pi_effect_settlement_test.go similarity index 100% rename from internal/attach/pi_effect_settlement_test.go rename to internal/agency/attach/pi_effect_settlement_test.go diff --git a/internal/authority/admission.go b/internal/agency/authority/admission.go similarity index 100% rename from internal/authority/admission.go rename to internal/agency/authority/admission.go diff --git a/internal/authority/admission_apply.go b/internal/agency/authority/admission_apply.go similarity index 100% rename from internal/authority/admission_apply.go rename to internal/agency/authority/admission_apply.go diff --git a/internal/authority/admission_atomicity_test.go b/internal/agency/authority/admission_atomicity_test.go similarity index 100% rename from internal/authority/admission_atomicity_test.go rename to internal/agency/authority/admission_atomicity_test.go diff --git a/internal/authority/admission_lifecycle_test.go b/internal/agency/authority/admission_lifecycle_test.go similarity index 100% rename from internal/authority/admission_lifecycle_test.go rename to internal/agency/authority/admission_lifecycle_test.go diff --git a/internal/authority/admission_record.go b/internal/agency/authority/admission_record.go similarity index 100% rename from internal/authority/admission_record.go rename to internal/agency/authority/admission_record.go diff --git a/internal/authority/admission_reference_test.go b/internal/agency/authority/admission_reference_test.go similarity index 100% rename from internal/authority/admission_reference_test.go rename to internal/agency/authority/admission_reference_test.go diff --git a/internal/authority/admission_replay_test.go b/internal/agency/authority/admission_replay_test.go similarity index 100% rename from internal/authority/admission_replay_test.go rename to internal/agency/authority/admission_replay_test.go diff --git a/internal/authority/admission_test_helpers_test.go b/internal/agency/authority/admission_test_helpers_test.go similarity index 100% rename from internal/authority/admission_test_helpers_test.go rename to internal/agency/authority/admission_test_helpers_test.go diff --git a/internal/authority/admission_validate.go b/internal/agency/authority/admission_validate.go similarity index 100% rename from internal/authority/admission_validate.go rename to internal/agency/authority/admission_validate.go diff --git a/internal/authority/artifact.go b/internal/agency/authority/artifact.go similarity index 100% rename from internal/authority/artifact.go rename to internal/agency/authority/artifact.go diff --git a/internal/authority/artifact_test.go b/internal/agency/authority/artifact_test.go similarity index 100% rename from internal/authority/artifact_test.go rename to internal/agency/authority/artifact_test.go diff --git a/internal/authority/attachment.go b/internal/agency/authority/attachment.go similarity index 100% rename from internal/authority/attachment.go rename to internal/agency/authority/attachment.go diff --git a/internal/authority/attachment_begin.go b/internal/agency/authority/attachment_begin.go similarity index 100% rename from internal/authority/attachment_begin.go rename to internal/agency/authority/attachment_begin.go diff --git a/internal/authority/attachment_end.go b/internal/agency/authority/attachment_end.go similarity index 100% rename from internal/authority/attachment_end.go rename to internal/agency/authority/attachment_end.go diff --git a/internal/authority/attachment_end_test.go b/internal/agency/authority/attachment_end_test.go similarity index 100% rename from internal/authority/attachment_end_test.go rename to internal/agency/authority/attachment_end_test.go diff --git a/internal/authority/attachment_test.go b/internal/agency/authority/attachment_test.go similarity index 100% rename from internal/authority/attachment_test.go rename to internal/agency/authority/attachment_test.go diff --git a/internal/authority/bind.go b/internal/agency/authority/bind.go similarity index 100% rename from internal/authority/bind.go rename to internal/agency/authority/bind.go diff --git a/internal/authority/bind_test.go b/internal/agency/authority/bind_test.go similarity index 100% rename from internal/authority/bind_test.go rename to internal/agency/authority/bind_test.go diff --git a/internal/authority/claim_disposition.go b/internal/agency/authority/claim_disposition.go similarity index 100% rename from internal/authority/claim_disposition.go rename to internal/agency/authority/claim_disposition.go diff --git a/internal/authority/claim_disposition_replay_test.go b/internal/agency/authority/claim_disposition_replay_test.go similarity index 100% rename from internal/authority/claim_disposition_replay_test.go rename to internal/agency/authority/claim_disposition_replay_test.go diff --git a/internal/authority/claim_disposition_test.go b/internal/agency/authority/claim_disposition_test.go similarity index 100% rename from internal/authority/claim_disposition_test.go rename to internal/agency/authority/claim_disposition_test.go diff --git a/internal/authority/current.go b/internal/agency/authority/current.go similarity index 100% rename from internal/authority/current.go rename to internal/agency/authority/current.go diff --git a/internal/authority/current_combined_bound_test.go b/internal/agency/authority/current_combined_bound_test.go similarity index 100% rename from internal/authority/current_combined_bound_test.go rename to internal/agency/authority/current_combined_bound_test.go diff --git a/internal/authority/current_focus.go b/internal/agency/authority/current_focus.go similarity index 100% rename from internal/authority/current_focus.go rename to internal/agency/authority/current_focus.go diff --git a/internal/authority/current_focus_federation_test.go b/internal/agency/authority/current_focus_federation_test.go similarity index 100% rename from internal/authority/current_focus_federation_test.go rename to internal/agency/authority/current_focus_federation_test.go diff --git a/internal/authority/current_focus_test.go b/internal/agency/authority/current_focus_test.go similarity index 100% rename from internal/authority/current_focus_test.go rename to internal/agency/authority/current_focus_test.go diff --git a/internal/authority/current_projection.go b/internal/agency/authority/current_projection.go similarity index 100% rename from internal/authority/current_projection.go rename to internal/agency/authority/current_projection.go diff --git a/internal/authority/current_replay_only_test.go b/internal/agency/authority/current_replay_only_test.go similarity index 100% rename from internal/authority/current_replay_only_test.go rename to internal/agency/authority/current_replay_only_test.go diff --git a/internal/authority/current_replay_test.go b/internal/agency/authority/current_replay_test.go similarity index 100% rename from internal/authority/current_replay_test.go rename to internal/agency/authority/current_replay_test.go diff --git a/internal/authority/doc.go b/internal/agency/authority/doc.go similarity index 100% rename from internal/authority/doc.go rename to internal/agency/authority/doc.go diff --git a/internal/authority/domain_admission.go b/internal/agency/authority/domain_admission.go similarity index 100% rename from internal/authority/domain_admission.go rename to internal/agency/authority/domain_admission.go diff --git a/internal/authority/errors.go b/internal/agency/authority/errors.go similarity index 100% rename from internal/authority/errors.go rename to internal/agency/authority/errors.go diff --git a/internal/authority/event_depth.go b/internal/agency/authority/event_depth.go similarity index 100% rename from internal/authority/event_depth.go rename to internal/agency/authority/event_depth.go diff --git a/internal/authority/event_depth_test.go b/internal/agency/authority/event_depth_test.go similarity index 100% rename from internal/authority/event_depth_test.go rename to internal/agency/authority/event_depth_test.go diff --git a/internal/authority/event_projection.go b/internal/agency/authority/event_projection.go similarity index 100% rename from internal/authority/event_projection.go rename to internal/agency/authority/event_projection.go diff --git a/internal/authority/filesystem.go b/internal/agency/authority/filesystem.go similarity index 100% rename from internal/authority/filesystem.go rename to internal/agency/authority/filesystem.go diff --git a/internal/authority/peer_delivery_admission.go b/internal/agency/authority/peer_delivery_admission.go similarity index 100% rename from internal/authority/peer_delivery_admission.go rename to internal/agency/authority/peer_delivery_admission.go diff --git a/internal/authority/peer_delivery_authority_test.go b/internal/agency/authority/peer_delivery_authority_test.go similarity index 100% rename from internal/authority/peer_delivery_authority_test.go rename to internal/agency/authority/peer_delivery_authority_test.go diff --git a/internal/authority/peer_delivery_inbox.go b/internal/agency/authority/peer_delivery_inbox.go similarity index 100% rename from internal/authority/peer_delivery_inbox.go rename to internal/agency/authority/peer_delivery_inbox.go diff --git a/internal/authority/peer_delivery_outbox.go b/internal/agency/authority/peer_delivery_outbox.go similarity index 100% rename from internal/authority/peer_delivery_outbox.go rename to internal/agency/authority/peer_delivery_outbox.go diff --git a/internal/authority/peer_delivery_projection.go b/internal/agency/authority/peer_delivery_projection.go similarity index 100% rename from internal/authority/peer_delivery_projection.go rename to internal/agency/authority/peer_delivery_projection.go diff --git a/internal/authority/peer_delivery_settlement.go b/internal/agency/authority/peer_delivery_settlement.go similarity index 100% rename from internal/authority/peer_delivery_settlement.go rename to internal/agency/authority/peer_delivery_settlement.go diff --git a/internal/authority/peer_reply_binding_test.go b/internal/agency/authority/peer_reply_binding_test.go similarity index 100% rename from internal/authority/peer_reply_binding_test.go rename to internal/agency/authority/peer_reply_binding_test.go diff --git a/internal/authority/peer_route.go b/internal/agency/authority/peer_route.go similarity index 100% rename from internal/authority/peer_route.go rename to internal/agency/authority/peer_route.go diff --git a/internal/authority/peer_route_test.go b/internal/agency/authority/peer_route_test.go similarity index 100% rename from internal/authority/peer_route_test.go rename to internal/agency/authority/peer_route_test.go diff --git a/internal/authority/peer_terminal_reply_admission.go b/internal/agency/authority/peer_terminal_reply_admission.go similarity index 100% rename from internal/authority/peer_terminal_reply_admission.go rename to internal/agency/authority/peer_terminal_reply_admission.go diff --git a/internal/authority/reply_observation_projection_test.go b/internal/agency/authority/reply_observation_projection_test.go similarity index 100% rename from internal/authority/reply_observation_projection_test.go rename to internal/agency/authority/reply_observation_projection_test.go diff --git a/internal/authority/schema.go b/internal/agency/authority/schema.go similarity index 100% rename from internal/authority/schema.go rename to internal/agency/authority/schema.go diff --git a/internal/authority/schema.sql b/internal/agency/authority/schema.sql similarity index 100% rename from internal/authority/schema.sql rename to internal/agency/authority/schema.sql diff --git a/internal/authority/schema_v5_test.go b/internal/agency/authority/schema_v5_test.go similarity index 100% rename from internal/authority/schema_v5_test.go rename to internal/agency/authority/schema_v5_test.go diff --git a/internal/authority/store.go b/internal/agency/authority/store.go similarity index 100% rename from internal/authority/store.go rename to internal/agency/authority/store.go diff --git a/internal/authority/store_existing_test.go b/internal/agency/authority/store_existing_test.go similarity index 100% rename from internal/authority/store_existing_test.go rename to internal/agency/authority/store_existing_test.go diff --git a/internal/authority/store_test.go b/internal/agency/authority/store_test.go similarity index 100% rename from internal/authority/store_test.go rename to internal/agency/authority/store_test.go diff --git a/internal/authority/terminal_reply_test.go b/internal/agency/authority/terminal_reply_test.go similarity index 100% rename from internal/authority/terminal_reply_test.go rename to internal/agency/authority/terminal_reply_test.go diff --git a/internal/agencyclient/agent_commands.go b/internal/agency/client/agent_commands.go similarity index 100% rename from internal/agencyclient/agent_commands.go rename to internal/agency/client/agent_commands.go diff --git a/internal/agencyclient/agent_commands_test.go b/internal/agency/client/agent_commands_test.go similarity index 100% rename from internal/agencyclient/agent_commands_test.go rename to internal/agency/client/agent_commands_test.go diff --git a/internal/agencyclient/control_client.go b/internal/agency/client/control_client.go similarity index 100% rename from internal/agencyclient/control_client.go rename to internal/agency/client/control_client.go diff --git a/internal/agencyclient/control_client_test.go b/internal/agency/client/control_client_test.go similarity index 100% rename from internal/agencyclient/control_client_test.go rename to internal/agency/client/control_client_test.go diff --git a/internal/agencyclient/control_json.go b/internal/agency/client/control_json.go similarity index 100% rename from internal/agencyclient/control_json.go rename to internal/agency/client/control_json.go diff --git a/internal/agencyclient/control_peercred_darwin.go b/internal/agency/client/control_peercred_darwin.go similarity index 100% rename from internal/agencyclient/control_peercred_darwin.go rename to internal/agency/client/control_peercred_darwin.go diff --git a/internal/agencyclient/control_peercred_linux.go b/internal/agency/client/control_peercred_linux.go similarity index 100% rename from internal/agencyclient/control_peercred_linux.go rename to internal/agency/client/control_peercred_linux.go diff --git a/internal/agencyclient/control_transport.go b/internal/agency/client/control_transport.go similarity index 100% rename from internal/agencyclient/control_transport.go rename to internal/agency/client/control_transport.go diff --git a/internal/agencyclient/control_types.go b/internal/agency/client/control_types.go similarity index 100% rename from internal/agencyclient/control_types.go rename to internal/agency/client/control_types.go diff --git a/internal/agencyclient/hook_boundary.go b/internal/agency/client/hook_boundary.go similarity index 100% rename from internal/agencyclient/hook_boundary.go rename to internal/agency/client/hook_boundary.go diff --git a/internal/agencyclient/hook_commands.go b/internal/agency/client/hook_commands.go similarity index 100% rename from internal/agencyclient/hook_commands.go rename to internal/agency/client/hook_commands.go diff --git a/internal/agencyclient/intent_diagnostic.go b/internal/agency/client/intent_diagnostic.go similarity index 100% rename from internal/agencyclient/intent_diagnostic.go rename to internal/agency/client/intent_diagnostic.go diff --git a/internal/agencyclient/journal.go b/internal/agency/client/journal.go similarity index 100% rename from internal/agencyclient/journal.go rename to internal/agency/client/journal.go diff --git a/internal/agencyclient/journal_files.go b/internal/agency/client/journal_files.go similarity index 100% rename from internal/agencyclient/journal_files.go rename to internal/agency/client/journal_files.go diff --git a/internal/agencyclient/journal_fs.go b/internal/agency/client/journal_fs.go similarity index 100% rename from internal/agencyclient/journal_fs.go rename to internal/agency/client/journal_fs.go diff --git a/internal/agencyclient/journal_test.go b/internal/agency/client/journal_test.go similarity index 100% rename from internal/agencyclient/journal_test.go rename to internal/agency/client/journal_test.go diff --git a/internal/agencyclient/process_lock.go b/internal/agency/client/process_lock.go similarity index 100% rename from internal/agencyclient/process_lock.go rename to internal/agency/client/process_lock.go diff --git a/internal/agencyclient/terminal.go b/internal/agency/client/terminal.go similarity index 100% rename from internal/agencyclient/terminal.go rename to internal/agency/client/terminal.go diff --git a/internal/agencyclient/terminal_test.go b/internal/agency/client/terminal_test.go similarity index 100% rename from internal/agencyclient/terminal_test.go rename to internal/agency/client/terminal_test.go diff --git a/internal/peerlink/client.go b/internal/agency/peerlink/client.go similarity index 99% rename from internal/peerlink/client.go rename to internal/agency/peerlink/client.go index 56d5c29e..9c4ba044 100644 --- a/internal/peerlink/client.go +++ b/internal/agency/peerlink/client.go @@ -10,7 +10,7 @@ import ( "time" "github.com/mnemon-dev/mnemon/internal/agency" - "github.com/mnemon-dev/mnemon/internal/artifact" + "github.com/mnemon-dev/mnemon/internal/agency/artifact" ) const ( diff --git a/internal/peerlink/doc.go b/internal/agency/peerlink/doc.go similarity index 100% rename from internal/peerlink/doc.go rename to internal/agency/peerlink/doc.go diff --git a/internal/peerlink/errors.go b/internal/agency/peerlink/errors.go similarity index 100% rename from internal/peerlink/errors.go rename to internal/agency/peerlink/errors.go diff --git a/internal/peerlink/frame.go b/internal/agency/peerlink/frame.go similarity index 99% rename from internal/peerlink/frame.go rename to internal/agency/peerlink/frame.go index 5dbbe253..8e466477 100644 --- a/internal/peerlink/frame.go +++ b/internal/agency/peerlink/frame.go @@ -10,7 +10,7 @@ import ( "unicode/utf8" "github.com/mnemon-dev/mnemon/internal/agency" - "github.com/mnemon-dev/mnemon/internal/artifact" + "github.com/mnemon-dev/mnemon/internal/agency/artifact" ) const ( diff --git a/internal/peerlink/frame_test.go b/internal/agency/peerlink/frame_test.go similarity index 100% rename from internal/peerlink/frame_test.go rename to internal/agency/peerlink/frame_test.go diff --git a/internal/peerlink/identity.go b/internal/agency/peerlink/identity.go similarity index 100% rename from internal/peerlink/identity.go rename to internal/agency/peerlink/identity.go diff --git a/internal/peerlink/server.go b/internal/agency/peerlink/server.go similarity index 99% rename from internal/peerlink/server.go rename to internal/agency/peerlink/server.go index 6658be00..6f05d6d9 100644 --- a/internal/peerlink/server.go +++ b/internal/agency/peerlink/server.go @@ -8,7 +8,7 @@ import ( "sync" "time" - "github.com/mnemon-dev/mnemon/internal/artifact" + "github.com/mnemon-dev/mnemon/internal/agency/artifact" ) // DeliveryHandler receives opaque candidate bytes only after the TLS key has diff --git a/internal/peerlink/transport_test.go b/internal/agency/peerlink/transport_test.go similarity index 99% rename from internal/peerlink/transport_test.go rename to internal/agency/peerlink/transport_test.go index 16c81c6b..9df04dbf 100644 --- a/internal/peerlink/transport_test.go +++ b/internal/agency/peerlink/transport_test.go @@ -11,7 +11,7 @@ import ( "time" "github.com/mnemon-dev/mnemon/internal/agency" - artifactstore "github.com/mnemon-dev/mnemon/internal/artifact" + artifactstore "github.com/mnemon-dev/mnemon/internal/agency/artifact" ) func TestTCPRoundTripAuthenticatesDeliveryAndSeparatesACKReceiptAndArtifact(t *testing.T) { diff --git a/internal/daemon/control.go b/internal/daemon/control.go index b8bb268f..18020196 100644 --- a/internal/daemon/control.go +++ b/internal/daemon/control.go @@ -8,7 +8,7 @@ import ( "net/http" "github.com/mnemon-dev/mnemon/internal/agency" - "github.com/mnemon-dev/mnemon/internal/artifact" + "github.com/mnemon-dev/mnemon/internal/agency/artifact" ) const ( diff --git a/internal/daemon/control_error.go b/internal/daemon/control_error.go index ebe01485..f869f1ee 100644 --- a/internal/daemon/control_error.go +++ b/internal/daemon/control_error.go @@ -9,8 +9,8 @@ import ( "strings" "github.com/mnemon-dev/mnemon/internal/agency" - "github.com/mnemon-dev/mnemon/internal/artifact" - "github.com/mnemon-dev/mnemon/internal/authority" + "github.com/mnemon-dev/mnemon/internal/agency/artifact" + "github.com/mnemon-dev/mnemon/internal/agency/authority" ) type controlErrorCode string diff --git a/internal/daemon/control_parse.go b/internal/daemon/control_parse.go index b65ac177..b05a0951 100644 --- a/internal/daemon/control_parse.go +++ b/internal/daemon/control_parse.go @@ -10,8 +10,8 @@ import ( "strings" "github.com/mnemon-dev/mnemon/internal/agency" - "github.com/mnemon-dev/mnemon/internal/artifact" - "github.com/mnemon-dev/mnemon/internal/authority" + "github.com/mnemon-dev/mnemon/internal/agency/artifact" + "github.com/mnemon-dev/mnemon/internal/agency/authority" ) func prepareControlRequest(request *http.Request, readOnly, requireAttachment, diff --git a/internal/daemon/daemon.go b/internal/daemon/daemon.go index ef781eb0..b1e27874 100644 --- a/internal/daemon/daemon.go +++ b/internal/daemon/daemon.go @@ -11,8 +11,8 @@ import ( "time" "github.com/mnemon-dev/mnemon/internal/agency" - "github.com/mnemon-dev/mnemon/internal/artifact" - "github.com/mnemon-dev/mnemon/internal/authority" + "github.com/mnemon-dev/mnemon/internal/agency/artifact" + "github.com/mnemon-dev/mnemon/internal/agency/authority" ) const ( diff --git a/internal/daemon/daemon_test.go b/internal/daemon/daemon_test.go index e2243c9c..051704ae 100644 --- a/internal/daemon/daemon_test.go +++ b/internal/daemon/daemon_test.go @@ -16,8 +16,8 @@ import ( "time" "github.com/mnemon-dev/mnemon/internal/agency" - "github.com/mnemon-dev/mnemon/internal/artifact" - "github.com/mnemon-dev/mnemon/internal/authority" + "github.com/mnemon-dev/mnemon/internal/agency/artifact" + "github.com/mnemon-dev/mnemon/internal/agency/authority" ) func TestDaemonServesCompleteLocalLoopOverOwnerUnix(t *testing.T) { diff --git a/internal/daemon/ensure.go b/internal/daemon/ensure.go index 66282620..1e7d2089 100644 --- a/internal/daemon/ensure.go +++ b/internal/daemon/ensure.go @@ -13,7 +13,7 @@ import ( "syscall" "time" - "github.com/mnemon-dev/mnemon/internal/authority" + "github.com/mnemon-dev/mnemon/internal/agency/authority" "golang.org/x/sys/unix" ) diff --git a/internal/daemon/exchange.go b/internal/daemon/exchange.go index b386cda8..90985049 100644 --- a/internal/daemon/exchange.go +++ b/internal/daemon/exchange.go @@ -10,9 +10,9 @@ import ( "time" "github.com/mnemon-dev/mnemon/internal/agency" - "github.com/mnemon-dev/mnemon/internal/artifact" - "github.com/mnemon-dev/mnemon/internal/authority" - "github.com/mnemon-dev/mnemon/internal/peerlink" + "github.com/mnemon-dev/mnemon/internal/agency/artifact" + "github.com/mnemon-dev/mnemon/internal/agency/authority" + "github.com/mnemon-dev/mnemon/internal/agency/peerlink" ) const ( diff --git a/internal/daemon/exchange_fault_test.go b/internal/daemon/exchange_fault_test.go index cd4ec350..ad98686b 100644 --- a/internal/daemon/exchange_fault_test.go +++ b/internal/daemon/exchange_fault_test.go @@ -11,8 +11,8 @@ import ( "time" "github.com/mnemon-dev/mnemon/internal/agency" - "github.com/mnemon-dev/mnemon/internal/authority" - "github.com/mnemon-dev/mnemon/internal/peerlink" + "github.com/mnemon-dev/mnemon/internal/agency/authority" + "github.com/mnemon-dev/mnemon/internal/agency/peerlink" ) var ( diff --git a/internal/daemon/exchange_session.go b/internal/daemon/exchange_session.go index 84fddd75..1b3d20e8 100644 --- a/internal/daemon/exchange_session.go +++ b/internal/daemon/exchange_session.go @@ -5,7 +5,7 @@ import ( "errors" "sync" - "github.com/mnemon-dev/mnemon/internal/peerlink" + "github.com/mnemon-dev/mnemon/internal/agency/peerlink" ) type exchangeSession struct { diff --git a/internal/daemon/exchange_test.go b/internal/daemon/exchange_test.go index eb07b5fc..a2205a5c 100644 --- a/internal/daemon/exchange_test.go +++ b/internal/daemon/exchange_test.go @@ -11,7 +11,7 @@ import ( "time" "github.com/mnemon-dev/mnemon/internal/agency" - "github.com/mnemon-dev/mnemon/internal/authority" + "github.com/mnemon-dev/mnemon/internal/agency/authority" ) type exchangeTestNode struct { diff --git a/internal/daemon/peer_enrollment.go b/internal/daemon/peer_enrollment.go index 35ed7e1e..d95d40c9 100644 --- a/internal/daemon/peer_enrollment.go +++ b/internal/daemon/peer_enrollment.go @@ -11,8 +11,8 @@ import ( "strings" "github.com/mnemon-dev/mnemon/internal/agency" - "github.com/mnemon-dev/mnemon/internal/artifact" - "github.com/mnemon-dev/mnemon/internal/authority" + "github.com/mnemon-dev/mnemon/internal/agency/artifact" + "github.com/mnemon-dev/mnemon/internal/agency/authority" ) const ( diff --git a/internal/daemon/peer_setup.go b/internal/daemon/peer_setup.go index 04e8c473..27ea46f8 100644 --- a/internal/daemon/peer_setup.go +++ b/internal/daemon/peer_setup.go @@ -10,7 +10,7 @@ import ( "strings" "unicode" - "github.com/mnemon-dev/mnemon/internal/authority" + "github.com/mnemon-dev/mnemon/internal/agency/authority" ) const ( diff --git a/internal/daemon/peer_setup_test.go b/internal/daemon/peer_setup_test.go index ca04ad23..dce17ef4 100644 --- a/internal/daemon/peer_setup_test.go +++ b/internal/daemon/peer_setup_test.go @@ -11,8 +11,8 @@ import ( "testing" "time" - "github.com/mnemon-dev/mnemon/internal/artifact" - "github.com/mnemon-dev/mnemon/internal/authority" + "github.com/mnemon-dev/mnemon/internal/agency/artifact" + "github.com/mnemon-dev/mnemon/internal/agency/authority" ) func TestConfigureExchangePublishesCanonicalPrivateCardAndReplays(t *testing.T) { diff --git a/internal/daemon/provision.go b/internal/daemon/provision.go index 94e35ec5..85f287bc 100644 --- a/internal/daemon/provision.go +++ b/internal/daemon/provision.go @@ -9,8 +9,8 @@ import ( "strings" "github.com/mnemon-dev/mnemon/internal/agency" - "github.com/mnemon-dev/mnemon/internal/artifact" - "github.com/mnemon-dev/mnemon/internal/authority" + "github.com/mnemon-dev/mnemon/internal/agency/artifact" + "github.com/mnemon-dev/mnemon/internal/agency/authority" ) var ErrProvision = errors.New("daemon: provision R7 node") diff --git a/internal/daemon/provision_test.go b/internal/daemon/provision_test.go index de2c47ec..1cac823d 100644 --- a/internal/daemon/provision_test.go +++ b/internal/daemon/provision_test.go @@ -10,8 +10,8 @@ import ( "testing" "github.com/mnemon-dev/mnemon/internal/agency" - "github.com/mnemon-dev/mnemon/internal/artifact" - "github.com/mnemon-dev/mnemon/internal/authority" + "github.com/mnemon-dev/mnemon/internal/agency/artifact" + "github.com/mnemon-dev/mnemon/internal/agency/authority" ) func TestResolveProjectStateIsPureAndPhysical(t *testing.T) { diff --git a/internal/daemon/service.go b/internal/daemon/service.go index 0878fe15..65071870 100644 --- a/internal/daemon/service.go +++ b/internal/daemon/service.go @@ -10,8 +10,8 @@ import ( "time" "github.com/mnemon-dev/mnemon/internal/agency" - "github.com/mnemon-dev/mnemon/internal/artifact" - "github.com/mnemon-dev/mnemon/internal/authority" + "github.com/mnemon-dev/mnemon/internal/agency/artifact" + "github.com/mnemon-dev/mnemon/internal/agency/authority" ) const candidateEntropyBytes = 16 diff --git a/internal/embed/ollama.go b/internal/memory/embed/ollama.go similarity index 100% rename from internal/embed/ollama.go rename to internal/memory/embed/ollama.go diff --git a/internal/embed/ollama_test.go b/internal/memory/embed/ollama_test.go similarity index 100% rename from internal/embed/ollama_test.go rename to internal/memory/embed/ollama_test.go diff --git a/internal/embed/vector.go b/internal/memory/embed/vector.go similarity index 100% rename from internal/embed/vector.go rename to internal/memory/embed/vector.go diff --git a/internal/embed/vector_test.go b/internal/memory/embed/vector_test.go similarity index 100% rename from internal/embed/vector_test.go rename to internal/memory/embed/vector_test.go diff --git a/internal/graph/bfs.go b/internal/memory/graph/bfs.go similarity index 95% rename from internal/graph/bfs.go rename to internal/memory/graph/bfs.go index 1740d22f..28715d44 100644 --- a/internal/graph/bfs.go +++ b/internal/memory/graph/bfs.go @@ -1,8 +1,8 @@ package graph import ( - "github.com/mnemon-dev/mnemon/internal/model" - "github.com/mnemon-dev/mnemon/internal/store" + "github.com/mnemon-dev/mnemon/internal/memory/model" + "github.com/mnemon-dev/mnemon/internal/memory/store" ) // BFSNode represents a node discovered during BFS traversal. diff --git a/internal/graph/causal.go b/internal/memory/graph/causal.go similarity index 97% rename from internal/graph/causal.go rename to internal/memory/graph/causal.go index 700f8748..4ba6fbe7 100644 --- a/internal/graph/causal.go +++ b/internal/memory/graph/causal.go @@ -5,9 +5,9 @@ import ( "regexp" "time" - "github.com/mnemon-dev/mnemon/internal/model" - "github.com/mnemon-dev/mnemon/internal/search" - "github.com/mnemon-dev/mnemon/internal/store" + "github.com/mnemon-dev/mnemon/internal/memory/model" + "github.com/mnemon-dev/mnemon/internal/memory/search" + "github.com/mnemon-dev/mnemon/internal/memory/store" ) // Minimum token overlap ratio to create a causal edge. diff --git a/internal/graph/causal_test.go b/internal/memory/graph/causal_test.go similarity index 100% rename from internal/graph/causal_test.go rename to internal/memory/graph/causal_test.go diff --git a/internal/graph/engine.go b/internal/memory/graph/engine.go similarity index 96% rename from internal/graph/engine.go rename to internal/memory/graph/engine.go index 474b3b31..8080ce2f 100644 --- a/internal/graph/engine.go +++ b/internal/memory/graph/engine.go @@ -1,8 +1,8 @@ package graph import ( - "github.com/mnemon-dev/mnemon/internal/model" - "github.com/mnemon-dev/mnemon/internal/store" + "github.com/mnemon-dev/mnemon/internal/memory/model" + "github.com/mnemon-dev/mnemon/internal/memory/store" ) // EdgeStats tracks how many edges of each type were created. diff --git a/internal/graph/entity.go b/internal/memory/graph/entity.go similarity index 99% rename from internal/graph/entity.go rename to internal/memory/graph/entity.go index 985a32e9..b26d10a5 100644 --- a/internal/graph/entity.go +++ b/internal/memory/graph/entity.go @@ -5,8 +5,8 @@ import ( "strings" "time" - "github.com/mnemon-dev/mnemon/internal/model" - "github.com/mnemon-dev/mnemon/internal/store" + "github.com/mnemon-dev/mnemon/internal/memory/model" + "github.com/mnemon-dev/mnemon/internal/memory/store" ) // Maximum number of existing nodes to link per entity (avoid hot-entity explosion). diff --git a/internal/graph/entity_test.go b/internal/memory/graph/entity_test.go similarity index 100% rename from internal/graph/entity_test.go rename to internal/memory/graph/entity_test.go diff --git a/internal/graph/integration_test.go b/internal/memory/graph/integration_test.go similarity index 99% rename from internal/graph/integration_test.go rename to internal/memory/graph/integration_test.go index aa35d996..8099e494 100644 --- a/internal/graph/integration_test.go +++ b/internal/memory/graph/integration_test.go @@ -5,9 +5,9 @@ import ( "testing" "time" - "github.com/mnemon-dev/mnemon/internal/embed" - "github.com/mnemon-dev/mnemon/internal/model" - "github.com/mnemon-dev/mnemon/internal/store" + "github.com/mnemon-dev/mnemon/internal/memory/embed" + "github.com/mnemon-dev/mnemon/internal/memory/model" + "github.com/mnemon-dev/mnemon/internal/memory/store" ) func testDB(t *testing.T) *store.DB { diff --git a/internal/graph/semantic.go b/internal/memory/graph/semantic.go similarity index 96% rename from internal/graph/semantic.go rename to internal/memory/graph/semantic.go index d5420fe6..0f70bdea 100644 --- a/internal/graph/semantic.go +++ b/internal/memory/graph/semantic.go @@ -5,10 +5,10 @@ import ( "sort" "time" - "github.com/mnemon-dev/mnemon/internal/embed" - "github.com/mnemon-dev/mnemon/internal/model" - "github.com/mnemon-dev/mnemon/internal/search" - "github.com/mnemon-dev/mnemon/internal/store" + "github.com/mnemon-dev/mnemon/internal/memory/embed" + "github.com/mnemon-dev/mnemon/internal/memory/model" + "github.com/mnemon-dev/mnemon/internal/memory/search" + "github.com/mnemon-dev/mnemon/internal/memory/store" ) // Minimum similarity to be considered a semantic candidate (token overlap fallback). diff --git a/internal/graph/temporal.go b/internal/memory/graph/temporal.go similarity index 96% rename from internal/graph/temporal.go rename to internal/memory/graph/temporal.go index 3946ee18..0ca0ddbc 100644 --- a/internal/graph/temporal.go +++ b/internal/memory/graph/temporal.go @@ -4,8 +4,8 @@ import ( "fmt" "time" - "github.com/mnemon-dev/mnemon/internal/model" - "github.com/mnemon-dev/mnemon/internal/store" + "github.com/mnemon-dev/mnemon/internal/memory/model" + "github.com/mnemon-dev/mnemon/internal/memory/store" ) // Temporal proximity window in hours (MAGMA: 24h). diff --git a/internal/importdraft/draft.go b/internal/memory/importdraft/draft.go similarity index 99% rename from internal/importdraft/draft.go rename to internal/memory/importdraft/draft.go index 849defb6..de621c2c 100644 --- a/internal/importdraft/draft.go +++ b/internal/memory/importdraft/draft.go @@ -9,7 +9,7 @@ import ( "os" "time" - "github.com/mnemon-dev/mnemon/internal/model" + "github.com/mnemon-dev/mnemon/internal/memory/model" ) // CurrentSchemaVersion is the only schema version this build can import. diff --git a/internal/importdraft/draft_test.go b/internal/memory/importdraft/draft_test.go similarity index 100% rename from internal/importdraft/draft_test.go rename to internal/memory/importdraft/draft_test.go diff --git a/internal/model/edge.go b/internal/memory/model/edge.go similarity index 100% rename from internal/model/edge.go rename to internal/memory/model/edge.go diff --git a/internal/model/edge_test.go b/internal/memory/model/edge_test.go similarity index 100% rename from internal/model/edge_test.go rename to internal/memory/model/edge_test.go diff --git a/internal/model/node.go b/internal/memory/model/node.go similarity index 100% rename from internal/model/node.go rename to internal/memory/model/node.go diff --git a/internal/model/node_test.go b/internal/memory/model/node_test.go similarity index 100% rename from internal/model/node_test.go rename to internal/memory/model/node_test.go diff --git a/internal/search/diff.go b/internal/memory/search/diff.go similarity index 98% rename from internal/search/diff.go rename to internal/memory/search/diff.go index 48775933..32d8c7a1 100644 --- a/internal/search/diff.go +++ b/internal/memory/search/diff.go @@ -4,8 +4,8 @@ import ( "sort" "strings" - "github.com/mnemon-dev/mnemon/internal/embed" - "github.com/mnemon-dev/mnemon/internal/model" + "github.com/mnemon-dev/mnemon/internal/memory/embed" + "github.com/mnemon-dev/mnemon/internal/memory/model" ) // DiffSuggestion classifies how a new fact relates to existing content. diff --git a/internal/search/diff_test.go b/internal/memory/search/diff_test.go similarity index 99% rename from internal/search/diff_test.go rename to internal/memory/search/diff_test.go index c7bddf23..037964a2 100644 --- a/internal/search/diff_test.go +++ b/internal/memory/search/diff_test.go @@ -3,7 +3,7 @@ package search import ( "testing" - "github.com/mnemon-dev/mnemon/internal/model" + "github.com/mnemon-dev/mnemon/internal/memory/model" ) func TestClassifySuggestion_Add(t *testing.T) { diff --git a/internal/search/integration_test.go b/internal/memory/search/integration_test.go similarity index 99% rename from internal/search/integration_test.go rename to internal/memory/search/integration_test.go index b0817f48..51204aa3 100644 --- a/internal/search/integration_test.go +++ b/internal/memory/search/integration_test.go @@ -5,9 +5,9 @@ import ( "testing" "time" - "github.com/mnemon-dev/mnemon/internal/embed" - "github.com/mnemon-dev/mnemon/internal/model" - "github.com/mnemon-dev/mnemon/internal/store" + "github.com/mnemon-dev/mnemon/internal/memory/embed" + "github.com/mnemon-dev/mnemon/internal/memory/model" + "github.com/mnemon-dev/mnemon/internal/memory/store" ) func testDB(t *testing.T) *store.DB { diff --git a/internal/search/intent.go b/internal/memory/search/intent.go similarity index 97% rename from internal/search/intent.go rename to internal/memory/search/intent.go index 3a969950..2ba56e21 100644 --- a/internal/search/intent.go +++ b/internal/memory/search/intent.go @@ -5,7 +5,7 @@ import ( "regexp" "strings" - "github.com/mnemon-dev/mnemon/internal/model" + "github.com/mnemon-dev/mnemon/internal/memory/model" ) // Intent represents the detected query intent. diff --git a/internal/search/intent_test.go b/internal/memory/search/intent_test.go similarity index 100% rename from internal/search/intent_test.go rename to internal/memory/search/intent_test.go diff --git a/internal/search/keyword.go b/internal/memory/search/keyword.go similarity index 99% rename from internal/search/keyword.go rename to internal/memory/search/keyword.go index 26020b54..c9348976 100644 --- a/internal/search/keyword.go +++ b/internal/memory/search/keyword.go @@ -5,7 +5,7 @@ import ( "strings" "unicode" - "github.com/mnemon-dev/mnemon/internal/model" + "github.com/mnemon-dev/mnemon/internal/memory/model" ) // ScoredInsight pairs an insight with a relevance score. diff --git a/internal/search/keyword_test.go b/internal/memory/search/keyword_test.go similarity index 99% rename from internal/search/keyword_test.go rename to internal/memory/search/keyword_test.go index 73d644f8..d68b90e2 100644 --- a/internal/search/keyword_test.go +++ b/internal/memory/search/keyword_test.go @@ -3,7 +3,7 @@ package search import ( "testing" - "github.com/mnemon-dev/mnemon/internal/model" + "github.com/mnemon-dev/mnemon/internal/memory/model" ) func TestTokenize_English(t *testing.T) { diff --git a/internal/search/recall.go b/internal/memory/search/recall.go similarity index 99% rename from internal/search/recall.go rename to internal/memory/search/recall.go index e1f8acf2..c99f9906 100644 --- a/internal/search/recall.go +++ b/internal/memory/search/recall.go @@ -6,9 +6,9 @@ import ( "sort" "strings" - "github.com/mnemon-dev/mnemon/internal/embed" - "github.com/mnemon-dev/mnemon/internal/model" - "github.com/mnemon-dev/mnemon/internal/store" + "github.com/mnemon-dev/mnemon/internal/memory/embed" + "github.com/mnemon-dev/mnemon/internal/memory/model" + "github.com/mnemon-dev/mnemon/internal/memory/store" ) // Beam search parameters (MAGMA-aligned). diff --git a/internal/search/recall_test.go b/internal/memory/search/recall_test.go similarity index 100% rename from internal/search/recall_test.go rename to internal/memory/search/recall_test.go diff --git a/internal/setup/assets/assets.go b/internal/memory/setup/assets/assets.go similarity index 100% rename from internal/setup/assets/assets.go rename to internal/memory/setup/assets/assets.go diff --git a/internal/setup/assets/claude/SKILL.md b/internal/memory/setup/assets/claude/SKILL.md similarity index 100% rename from internal/setup/assets/claude/SKILL.md rename to internal/memory/setup/assets/claude/SKILL.md diff --git a/internal/setup/assets/claude/compact.sh b/internal/memory/setup/assets/claude/compact.sh similarity index 100% rename from internal/setup/assets/claude/compact.sh rename to internal/memory/setup/assets/claude/compact.sh diff --git a/internal/setup/assets/claude/guide.md b/internal/memory/setup/assets/claude/guide.md similarity index 100% rename from internal/setup/assets/claude/guide.md rename to internal/memory/setup/assets/claude/guide.md diff --git a/internal/setup/assets/claude/prime.sh b/internal/memory/setup/assets/claude/prime.sh similarity index 100% rename from internal/setup/assets/claude/prime.sh rename to internal/memory/setup/assets/claude/prime.sh diff --git a/internal/setup/assets/claude/stop.sh b/internal/memory/setup/assets/claude/stop.sh similarity index 100% rename from internal/setup/assets/claude/stop.sh rename to internal/memory/setup/assets/claude/stop.sh diff --git a/internal/setup/assets/claude/user_prompt.sh b/internal/memory/setup/assets/claude/user_prompt.sh similarity index 100% rename from internal/setup/assets/claude/user_prompt.sh rename to internal/memory/setup/assets/claude/user_prompt.sh diff --git a/internal/setup/assets/codebuddy/SKILL.md b/internal/memory/setup/assets/codebuddy/SKILL.md similarity index 100% rename from internal/setup/assets/codebuddy/SKILL.md rename to internal/memory/setup/assets/codebuddy/SKILL.md diff --git a/internal/setup/assets/codebuddy/prime.sh b/internal/memory/setup/assets/codebuddy/prime.sh similarity index 100% rename from internal/setup/assets/codebuddy/prime.sh rename to internal/memory/setup/assets/codebuddy/prime.sh diff --git a/internal/setup/assets/codebuddy/stop.sh b/internal/memory/setup/assets/codebuddy/stop.sh similarity index 100% rename from internal/setup/assets/codebuddy/stop.sh rename to internal/memory/setup/assets/codebuddy/stop.sh diff --git a/internal/setup/assets/codebuddy/user_prompt.sh b/internal/memory/setup/assets/codebuddy/user_prompt.sh similarity index 100% rename from internal/setup/assets/codebuddy/user_prompt.sh rename to internal/memory/setup/assets/codebuddy/user_prompt.sh diff --git a/internal/setup/assets/codex/SKILL.md b/internal/memory/setup/assets/codex/SKILL.md similarity index 100% rename from internal/setup/assets/codex/SKILL.md rename to internal/memory/setup/assets/codex/SKILL.md diff --git a/internal/setup/assets/codex/prime.sh b/internal/memory/setup/assets/codex/prime.sh similarity index 100% rename from internal/setup/assets/codex/prime.sh rename to internal/memory/setup/assets/codex/prime.sh diff --git a/internal/setup/assets/codex/stop.sh b/internal/memory/setup/assets/codex/stop.sh similarity index 100% rename from internal/setup/assets/codex/stop.sh rename to internal/memory/setup/assets/codex/stop.sh diff --git a/internal/setup/assets/codex/user_prompt.sh b/internal/memory/setup/assets/codex/user_prompt.sh similarity index 100% rename from internal/setup/assets/codex/user_prompt.sh rename to internal/memory/setup/assets/codex/user_prompt.sh diff --git a/internal/setup/assets/cursor/SKILL.md b/internal/memory/setup/assets/cursor/SKILL.md similarity index 100% rename from internal/setup/assets/cursor/SKILL.md rename to internal/memory/setup/assets/cursor/SKILL.md diff --git a/internal/setup/assets/cursor/compact.sh b/internal/memory/setup/assets/cursor/compact.sh similarity index 100% rename from internal/setup/assets/cursor/compact.sh rename to internal/memory/setup/assets/cursor/compact.sh diff --git a/internal/setup/assets/cursor/prime.sh b/internal/memory/setup/assets/cursor/prime.sh similarity index 100% rename from internal/setup/assets/cursor/prime.sh rename to internal/memory/setup/assets/cursor/prime.sh diff --git a/internal/setup/assets/cursor/stop.sh b/internal/memory/setup/assets/cursor/stop.sh similarity index 100% rename from internal/setup/assets/cursor/stop.sh rename to internal/memory/setup/assets/cursor/stop.sh diff --git a/internal/setup/assets/hermes/SKILL.md b/internal/memory/setup/assets/hermes/SKILL.md similarity index 100% rename from internal/setup/assets/hermes/SKILL.md rename to internal/memory/setup/assets/hermes/SKILL.md diff --git a/internal/setup/assets/hermes/compact.sh b/internal/memory/setup/assets/hermes/compact.sh similarity index 100% rename from internal/setup/assets/hermes/compact.sh rename to internal/memory/setup/assets/hermes/compact.sh diff --git a/internal/setup/assets/hermes/nudge.sh b/internal/memory/setup/assets/hermes/nudge.sh similarity index 100% rename from internal/setup/assets/hermes/nudge.sh rename to internal/memory/setup/assets/hermes/nudge.sh diff --git a/internal/setup/assets/hermes/prime.sh b/internal/memory/setup/assets/hermes/prime.sh similarity index 100% rename from internal/setup/assets/hermes/prime.sh rename to internal/memory/setup/assets/hermes/prime.sh diff --git a/internal/setup/assets/hermes/remind.sh b/internal/memory/setup/assets/hermes/remind.sh similarity index 100% rename from internal/setup/assets/hermes/remind.sh rename to internal/memory/setup/assets/hermes/remind.sh diff --git a/internal/setup/assets/kimi/SKILL.md b/internal/memory/setup/assets/kimi/SKILL.md similarity index 100% rename from internal/setup/assets/kimi/SKILL.md rename to internal/memory/setup/assets/kimi/SKILL.md diff --git a/internal/setup/assets/kimi/prime.sh b/internal/memory/setup/assets/kimi/prime.sh similarity index 100% rename from internal/setup/assets/kimi/prime.sh rename to internal/memory/setup/assets/kimi/prime.sh diff --git a/internal/setup/assets/kimi/stop.sh b/internal/memory/setup/assets/kimi/stop.sh similarity index 100% rename from internal/setup/assets/kimi/stop.sh rename to internal/memory/setup/assets/kimi/stop.sh diff --git a/internal/setup/assets/kimi/user_prompt.sh b/internal/memory/setup/assets/kimi/user_prompt.sh similarity index 100% rename from internal/setup/assets/kimi/user_prompt.sh rename to internal/memory/setup/assets/kimi/user_prompt.sh diff --git a/internal/setup/assets/nanobot/SKILL.md b/internal/memory/setup/assets/nanobot/SKILL.md similarity index 100% rename from internal/setup/assets/nanobot/SKILL.md rename to internal/memory/setup/assets/nanobot/SKILL.md diff --git a/internal/setup/assets/nanoclaw/SKILL.md b/internal/memory/setup/assets/nanoclaw/SKILL.md similarity index 100% rename from internal/setup/assets/nanoclaw/SKILL.md rename to internal/memory/setup/assets/nanoclaw/SKILL.md diff --git a/internal/setup/assets/nanoclaw/container-skill.md b/internal/memory/setup/assets/nanoclaw/container-skill.md similarity index 100% rename from internal/setup/assets/nanoclaw/container-skill.md rename to internal/memory/setup/assets/nanoclaw/container-skill.md diff --git a/internal/setup/assets/openclaw/SKILL.md b/internal/memory/setup/assets/openclaw/SKILL.md similarity index 100% rename from internal/setup/assets/openclaw/SKILL.md rename to internal/memory/setup/assets/openclaw/SKILL.md diff --git a/internal/setup/assets/openclaw/hooks/mnemon-prime/HOOK.md b/internal/memory/setup/assets/openclaw/hooks/mnemon-prime/HOOK.md similarity index 100% rename from internal/setup/assets/openclaw/hooks/mnemon-prime/HOOK.md rename to internal/memory/setup/assets/openclaw/hooks/mnemon-prime/HOOK.md diff --git a/internal/setup/assets/openclaw/hooks/mnemon-prime/handler.js b/internal/memory/setup/assets/openclaw/hooks/mnemon-prime/handler.js similarity index 100% rename from internal/setup/assets/openclaw/hooks/mnemon-prime/handler.js rename to internal/memory/setup/assets/openclaw/hooks/mnemon-prime/handler.js diff --git a/internal/setup/assets/openclaw/plugin/index.js b/internal/memory/setup/assets/openclaw/plugin/index.js similarity index 100% rename from internal/setup/assets/openclaw/plugin/index.js rename to internal/memory/setup/assets/openclaw/plugin/index.js diff --git a/internal/setup/assets/openclaw/plugin/openclaw.plugin.json b/internal/memory/setup/assets/openclaw/plugin/openclaw.plugin.json similarity index 100% rename from internal/setup/assets/openclaw/plugin/openclaw.plugin.json rename to internal/memory/setup/assets/openclaw/plugin/openclaw.plugin.json diff --git a/internal/setup/assets/openclaw/plugin/package.json b/internal/memory/setup/assets/openclaw/plugin/package.json similarity index 100% rename from internal/setup/assets/openclaw/plugin/package.json rename to internal/memory/setup/assets/openclaw/plugin/package.json diff --git a/internal/setup/assets/opencode/SKILL.md b/internal/memory/setup/assets/opencode/SKILL.md similarity index 100% rename from internal/setup/assets/opencode/SKILL.md rename to internal/memory/setup/assets/opencode/SKILL.md diff --git a/internal/setup/assets/opencode/mnemon.js b/internal/memory/setup/assets/opencode/mnemon.js similarity index 100% rename from internal/setup/assets/opencode/mnemon.js rename to internal/memory/setup/assets/opencode/mnemon.js diff --git a/internal/setup/assets/pi/SKILL.md b/internal/memory/setup/assets/pi/SKILL.md similarity index 100% rename from internal/setup/assets/pi/SKILL.md rename to internal/memory/setup/assets/pi/SKILL.md diff --git a/internal/setup/assets/pi/mnemon.ts b/internal/memory/setup/assets/pi/mnemon.ts similarity index 100% rename from internal/setup/assets/pi/mnemon.ts rename to internal/memory/setup/assets/pi/mnemon.ts diff --git a/internal/setup/assets/qoder/SKILL.md b/internal/memory/setup/assets/qoder/SKILL.md similarity index 100% rename from internal/setup/assets/qoder/SKILL.md rename to internal/memory/setup/assets/qoder/SKILL.md diff --git a/internal/setup/assets/qoder/prime.sh b/internal/memory/setup/assets/qoder/prime.sh similarity index 100% rename from internal/setup/assets/qoder/prime.sh rename to internal/memory/setup/assets/qoder/prime.sh diff --git a/internal/setup/assets/qoder/stop.sh b/internal/memory/setup/assets/qoder/stop.sh similarity index 100% rename from internal/setup/assets/qoder/stop.sh rename to internal/memory/setup/assets/qoder/stop.sh diff --git a/internal/setup/assets/qoder/user_prompt.sh b/internal/memory/setup/assets/qoder/user_prompt.sh similarity index 100% rename from internal/setup/assets/qoder/user_prompt.sh rename to internal/memory/setup/assets/qoder/user_prompt.sh diff --git a/internal/setup/assets/qoderwork/SKILL.md b/internal/memory/setup/assets/qoderwork/SKILL.md similarity index 100% rename from internal/setup/assets/qoderwork/SKILL.md rename to internal/memory/setup/assets/qoderwork/SKILL.md diff --git a/internal/setup/assets/trae/SKILL.md b/internal/memory/setup/assets/trae/SKILL.md similarity index 100% rename from internal/setup/assets/trae/SKILL.md rename to internal/memory/setup/assets/trae/SKILL.md diff --git a/internal/setup/assets/trae/prime.sh b/internal/memory/setup/assets/trae/prime.sh similarity index 100% rename from internal/setup/assets/trae/prime.sh rename to internal/memory/setup/assets/trae/prime.sh diff --git a/internal/setup/assets/trae/stop.sh b/internal/memory/setup/assets/trae/stop.sh similarity index 100% rename from internal/setup/assets/trae/stop.sh rename to internal/memory/setup/assets/trae/stop.sh diff --git a/internal/setup/assets/trae/user_prompt.sh b/internal/memory/setup/assets/trae/user_prompt.sh similarity index 100% rename from internal/setup/assets/trae/user_prompt.sh rename to internal/memory/setup/assets/trae/user_prompt.sh diff --git a/internal/setup/assets/workbuddy/SKILL.md b/internal/memory/setup/assets/workbuddy/SKILL.md similarity index 100% rename from internal/setup/assets/workbuddy/SKILL.md rename to internal/memory/setup/assets/workbuddy/SKILL.md diff --git a/internal/setup/assets/workbuddy/prime.sh b/internal/memory/setup/assets/workbuddy/prime.sh similarity index 100% rename from internal/setup/assets/workbuddy/prime.sh rename to internal/memory/setup/assets/workbuddy/prime.sh diff --git a/internal/setup/assets/workbuddy/stop.sh b/internal/memory/setup/assets/workbuddy/stop.sh similarity index 100% rename from internal/setup/assets/workbuddy/stop.sh rename to internal/memory/setup/assets/workbuddy/stop.sh diff --git a/internal/setup/assets/workbuddy/user_prompt.sh b/internal/memory/setup/assets/workbuddy/user_prompt.sh similarity index 100% rename from internal/setup/assets/workbuddy/user_prompt.sh rename to internal/memory/setup/assets/workbuddy/user_prompt.sh diff --git a/internal/setup/claude.go b/internal/memory/setup/claude.go similarity index 99% rename from internal/setup/claude.go rename to internal/memory/setup/claude.go index fa7e1c39..652d5876 100644 --- a/internal/setup/claude.go +++ b/internal/memory/setup/claude.go @@ -5,7 +5,7 @@ import ( "os" "path/filepath" - "github.com/mnemon-dev/mnemon/internal/setup/assets" + "github.com/mnemon-dev/mnemon/internal/memory/setup/assets" ) // HookSelection describes which optional hooks to install. diff --git a/internal/setup/claude_test.go b/internal/memory/setup/claude_test.go similarity index 98% rename from internal/setup/claude_test.go rename to internal/memory/setup/claude_test.go index d5037aa7..11871b36 100644 --- a/internal/setup/claude_test.go +++ b/internal/memory/setup/claude_test.go @@ -6,7 +6,7 @@ import ( "strings" "testing" - "github.com/mnemon-dev/mnemon/internal/setup/assets" + "github.com/mnemon-dev/mnemon/internal/memory/setup/assets" ) func TestPromptDirHonorsMnemonDataDir(t *testing.T) { diff --git a/internal/setup/codebuddy.go b/internal/memory/setup/codebuddy.go similarity index 98% rename from internal/setup/codebuddy.go rename to internal/memory/setup/codebuddy.go index e29f33ab..329ba805 100644 --- a/internal/setup/codebuddy.go +++ b/internal/memory/setup/codebuddy.go @@ -5,7 +5,7 @@ import ( "os" "path/filepath" - "github.com/mnemon-dev/mnemon/internal/setup/assets" + "github.com/mnemon-dev/mnemon/internal/memory/setup/assets" ) // CodeBuddyWriteSkill writes the mnemon skill to the CodeBuddy skills directory. diff --git a/internal/setup/codex.go b/internal/memory/setup/codex.go similarity index 98% rename from internal/setup/codex.go rename to internal/memory/setup/codex.go index 01357e64..1dc9183c 100644 --- a/internal/setup/codex.go +++ b/internal/memory/setup/codex.go @@ -5,7 +5,7 @@ import ( "os" "path/filepath" - "github.com/mnemon-dev/mnemon/internal/setup/assets" + "github.com/mnemon-dev/mnemon/internal/memory/setup/assets" ) // CodexWriteSkill writes the mnemon skill to the Codex skills directory. diff --git a/internal/setup/cursor.go b/internal/memory/setup/cursor.go similarity index 98% rename from internal/setup/cursor.go rename to internal/memory/setup/cursor.go index 9355b9a5..c34f7b55 100644 --- a/internal/setup/cursor.go +++ b/internal/memory/setup/cursor.go @@ -5,7 +5,7 @@ import ( "os" "path/filepath" - "github.com/mnemon-dev/mnemon/internal/setup/assets" + "github.com/mnemon-dev/mnemon/internal/memory/setup/assets" ) // CursorWriteSkill writes the mnemon skill to the Cursor skills directory. diff --git a/internal/setup/cursor_test.go b/internal/memory/setup/cursor_test.go similarity index 100% rename from internal/setup/cursor_test.go rename to internal/memory/setup/cursor_test.go diff --git a/internal/setup/detect.go b/internal/memory/setup/detect.go similarity index 100% rename from internal/setup/detect.go rename to internal/memory/setup/detect.go diff --git a/internal/setup/files.go b/internal/memory/setup/files.go similarity index 100% rename from internal/setup/files.go rename to internal/memory/setup/files.go diff --git a/internal/setup/hermes.go b/internal/memory/setup/hermes.go similarity index 98% rename from internal/setup/hermes.go rename to internal/memory/setup/hermes.go index 121896e3..fa9a6c5f 100644 --- a/internal/setup/hermes.go +++ b/internal/memory/setup/hermes.go @@ -6,7 +6,7 @@ import ( "os" "path/filepath" - "github.com/mnemon-dev/mnemon/internal/setup/assets" + "github.com/mnemon-dev/mnemon/internal/memory/setup/assets" "go.yaml.in/yaml/v3" ) diff --git a/internal/setup/hermes_test.go b/internal/memory/setup/hermes_test.go similarity index 98% rename from internal/setup/hermes_test.go rename to internal/memory/setup/hermes_test.go index 852b364a..77190de4 100644 --- a/internal/setup/hermes_test.go +++ b/internal/memory/setup/hermes_test.go @@ -6,7 +6,7 @@ import ( "strings" "testing" - "github.com/mnemon-dev/mnemon/internal/setup/assets" + "github.com/mnemon-dev/mnemon/internal/memory/setup/assets" ) func TestHermesWriteSkillAndHooks(t *testing.T) { diff --git a/internal/setup/host_artifacts_test.go b/internal/memory/setup/host_artifacts_test.go similarity index 97% rename from internal/setup/host_artifacts_test.go rename to internal/memory/setup/host_artifacts_test.go index 69579ea1..260d7374 100644 --- a/internal/setup/host_artifacts_test.go +++ b/internal/memory/setup/host_artifacts_test.go @@ -6,7 +6,7 @@ import ( "path/filepath" "testing" - "github.com/mnemon-dev/mnemon/internal/setup/assets" + "github.com/mnemon-dev/mnemon/internal/memory/setup/assets" ) func TestHostSkillAndHookArtifacts(t *testing.T) { diff --git a/internal/setup/kimi.go b/internal/memory/setup/kimi.go similarity index 98% rename from internal/setup/kimi.go rename to internal/memory/setup/kimi.go index 7b44f252..1559dd1e 100644 --- a/internal/setup/kimi.go +++ b/internal/memory/setup/kimi.go @@ -6,7 +6,7 @@ import ( "path/filepath" "strings" - "github.com/mnemon-dev/mnemon/internal/setup/assets" + "github.com/mnemon-dev/mnemon/internal/memory/setup/assets" ) // KimiWriteSkill writes the mnemon skill to the Kimi Code skills directory. diff --git a/internal/setup/kimi_test.go b/internal/memory/setup/kimi_test.go similarity index 100% rename from internal/setup/kimi_test.go rename to internal/memory/setup/kimi_test.go diff --git a/internal/setup/markdown.go b/internal/memory/setup/markdown.go similarity index 100% rename from internal/setup/markdown.go rename to internal/memory/setup/markdown.go diff --git a/internal/setup/markdown_test.go b/internal/memory/setup/markdown_test.go similarity index 100% rename from internal/setup/markdown_test.go rename to internal/memory/setup/markdown_test.go diff --git a/internal/setup/nanobot.go b/internal/memory/setup/nanobot.go similarity index 94% rename from internal/setup/nanobot.go rename to internal/memory/setup/nanobot.go index 727f66ae..056b24eb 100644 --- a/internal/setup/nanobot.go +++ b/internal/memory/setup/nanobot.go @@ -5,7 +5,7 @@ import ( "os" "path/filepath" - "github.com/mnemon-dev/mnemon/internal/setup/assets" + "github.com/mnemon-dev/mnemon/internal/memory/setup/assets" ) // NanobotWriteSkill writes the SKILL.md to the nanobot skills directory. diff --git a/internal/setup/nested_settings_hosts_test.go b/internal/memory/setup/nested_settings_hosts_test.go similarity index 100% rename from internal/setup/nested_settings_hosts_test.go rename to internal/memory/setup/nested_settings_hosts_test.go diff --git a/internal/setup/openclaw.go b/internal/memory/setup/openclaw.go similarity index 98% rename from internal/setup/openclaw.go rename to internal/memory/setup/openclaw.go index de65861c..f1df185b 100644 --- a/internal/setup/openclaw.go +++ b/internal/memory/setup/openclaw.go @@ -6,7 +6,7 @@ import ( "os" "path/filepath" - "github.com/mnemon-dev/mnemon/internal/setup/assets" + "github.com/mnemon-dev/mnemon/internal/memory/setup/assets" ) // OpenClawWriteSkill writes the SKILL.md to the OpenClaw skills directory. diff --git a/internal/setup/openclaw_test.go b/internal/memory/setup/openclaw_test.go similarity index 97% rename from internal/setup/openclaw_test.go rename to internal/memory/setup/openclaw_test.go index 3ac94299..4097b576 100644 --- a/internal/setup/openclaw_test.go +++ b/internal/memory/setup/openclaw_test.go @@ -7,7 +7,7 @@ import ( "strings" "testing" - "github.com/mnemon-dev/mnemon/internal/setup/assets" + "github.com/mnemon-dev/mnemon/internal/memory/setup/assets" ) func TestOpenClawRegisterPluginWritesSelection(t *testing.T) { diff --git a/internal/setup/opencode.go b/internal/memory/setup/opencode.go similarity index 98% rename from internal/setup/opencode.go rename to internal/memory/setup/opencode.go index 2518f88e..3d533f94 100644 --- a/internal/setup/opencode.go +++ b/internal/memory/setup/opencode.go @@ -6,7 +6,7 @@ import ( "path/filepath" "strings" - "github.com/mnemon-dev/mnemon/internal/setup/assets" + "github.com/mnemon-dev/mnemon/internal/memory/setup/assets" ) // OpenCodeWriteSkill writes the mnemon skill to the OpenCode skills directory. diff --git a/internal/setup/opencode_test.go b/internal/memory/setup/opencode_test.go similarity index 100% rename from internal/setup/opencode_test.go rename to internal/memory/setup/opencode_test.go diff --git a/internal/setup/pi.go b/internal/memory/setup/pi.go similarity index 96% rename from internal/setup/pi.go rename to internal/memory/setup/pi.go index 6ec291e0..a0f01f12 100644 --- a/internal/setup/pi.go +++ b/internal/memory/setup/pi.go @@ -5,7 +5,7 @@ import ( "os" "path/filepath" - "github.com/mnemon-dev/mnemon/internal/setup/assets" + "github.com/mnemon-dev/mnemon/internal/memory/setup/assets" ) // PiWriteSkill writes the mnemon skill to the Pi skills directory. diff --git a/internal/setup/pi_test.go b/internal/memory/setup/pi_test.go similarity index 97% rename from internal/setup/pi_test.go rename to internal/memory/setup/pi_test.go index f7445fff..ce799524 100644 --- a/internal/setup/pi_test.go +++ b/internal/memory/setup/pi_test.go @@ -6,7 +6,7 @@ import ( "strings" "testing" - "github.com/mnemon-dev/mnemon/internal/setup/assets" + "github.com/mnemon-dev/mnemon/internal/memory/setup/assets" ) func TestPiWriteSkillAndExtension(t *testing.T) { diff --git a/internal/setup/prompt.go b/internal/memory/setup/prompt.go similarity index 100% rename from internal/setup/prompt.go rename to internal/memory/setup/prompt.go diff --git a/internal/setup/qoder.go b/internal/memory/setup/qoder.go similarity index 98% rename from internal/setup/qoder.go rename to internal/memory/setup/qoder.go index 75164392..4f597107 100644 --- a/internal/setup/qoder.go +++ b/internal/memory/setup/qoder.go @@ -5,7 +5,7 @@ import ( "os" "path/filepath" - "github.com/mnemon-dev/mnemon/internal/setup/assets" + "github.com/mnemon-dev/mnemon/internal/memory/setup/assets" ) // QoderWriteSkill writes the mnemon skill to the Qoder skills directory. diff --git a/internal/setup/qoder_test.go b/internal/memory/setup/qoder_test.go similarity index 100% rename from internal/setup/qoder_test.go rename to internal/memory/setup/qoder_test.go diff --git a/internal/setup/settings.go b/internal/memory/setup/settings.go similarity index 100% rename from internal/setup/settings.go rename to internal/memory/setup/settings.go diff --git a/internal/setup/settings_test.go b/internal/memory/setup/settings_test.go similarity index 100% rename from internal/setup/settings_test.go rename to internal/memory/setup/settings_test.go diff --git a/internal/setup/trae.go b/internal/memory/setup/trae.go similarity index 98% rename from internal/setup/trae.go rename to internal/memory/setup/trae.go index 95ad535d..97561120 100644 --- a/internal/setup/trae.go +++ b/internal/memory/setup/trae.go @@ -5,7 +5,7 @@ import ( "os" "path/filepath" - "github.com/mnemon-dev/mnemon/internal/setup/assets" + "github.com/mnemon-dev/mnemon/internal/memory/setup/assets" ) // TraeWriteSkill writes the mnemon skill to the Trae skills directory. diff --git a/internal/setup/trae_test.go b/internal/memory/setup/trae_test.go similarity index 100% rename from internal/setup/trae_test.go rename to internal/memory/setup/trae_test.go diff --git a/internal/setup/workbuddy.go b/internal/memory/setup/workbuddy.go similarity index 98% rename from internal/setup/workbuddy.go rename to internal/memory/setup/workbuddy.go index 088baa7a..16bce42e 100644 --- a/internal/setup/workbuddy.go +++ b/internal/memory/setup/workbuddy.go @@ -5,7 +5,7 @@ import ( "os" "path/filepath" - "github.com/mnemon-dev/mnemon/internal/setup/assets" + "github.com/mnemon-dev/mnemon/internal/memory/setup/assets" ) // WorkBuddyWriteSkill writes the mnemon skill to the WorkBuddy skills directory. diff --git a/internal/store/db.go b/internal/memory/store/db.go similarity index 99% rename from internal/store/db.go rename to internal/memory/store/db.go index 13474931..3880a076 100644 --- a/internal/store/db.go +++ b/internal/memory/store/db.go @@ -10,7 +10,7 @@ import ( "sort" "strings" - "github.com/mnemon-dev/mnemon/internal/embed" + "github.com/mnemon-dev/mnemon/internal/memory/embed" _ "modernc.org/sqlite" ) diff --git a/internal/store/edge.go b/internal/memory/store/edge.go similarity index 98% rename from internal/store/edge.go rename to internal/memory/store/edge.go index b1627e47..78c03793 100644 --- a/internal/store/edge.go +++ b/internal/memory/store/edge.go @@ -4,7 +4,7 @@ import ( "fmt" "time" - "github.com/mnemon-dev/mnemon/internal/model" + "github.com/mnemon-dev/mnemon/internal/memory/model" ) // InsertEdge inserts or replaces an edge. diff --git a/internal/store/node.go b/internal/memory/store/node.go similarity index 99% rename from internal/store/node.go rename to internal/memory/store/node.go index e86c3321..69e67539 100644 --- a/internal/store/node.go +++ b/internal/memory/store/node.go @@ -9,7 +9,7 @@ import ( "strings" "time" - "github.com/mnemon-dev/mnemon/internal/model" + "github.com/mnemon-dev/mnemon/internal/memory/model" ) // Lifecycle constants diff --git a/internal/store/oplog.go b/internal/memory/store/oplog.go similarity index 100% rename from internal/store/oplog.go rename to internal/memory/store/oplog.go diff --git a/internal/store/store_test.go b/internal/memory/store/store_test.go similarity index 99% rename from internal/store/store_test.go rename to internal/memory/store/store_test.go index 869870ba..21067abf 100644 --- a/internal/store/store_test.go +++ b/internal/memory/store/store_test.go @@ -9,8 +9,8 @@ import ( "testing" "time" - "github.com/mnemon-dev/mnemon/internal/embed" - "github.com/mnemon-dev/mnemon/internal/model" + "github.com/mnemon-dev/mnemon/internal/memory/embed" + "github.com/mnemon-dev/mnemon/internal/memory/model" ) // testDB creates a fresh SQLite database in a temp directory, auto-closed on test cleanup. diff --git a/scripts/e2e_test.sh b/scripts/e2e_test.sh index 3206ad4d..8854ba1c 100755 --- a/scripts/e2e_test.sh +++ b/scripts/e2e_test.sh @@ -325,7 +325,7 @@ OUT=$($M --data-dir "$TESTDIR2" related "$ID_D" --edge entity) assert_contains "D → E via entity (reverse)" "$OUT" "$ID_E" step "Entity extraction — file paths" -OUT=$($M --data-dir "$TESTDIR2" remember --no-diff "Config lives at ./cmd/root.go and internal/store/db.go" --cat fact) +OUT=$($M --data-dir "$TESTDIR2" remember --no-diff "Config lives at ./cmd/root.go and internal/memory/store/db.go" --cat fact) echo -e " ${DIM}entities: $(echo "$OUT" | jq -c '.entities')${RESET}" assert_contains "file path extracted" "$OUT" './cmd/root.go' diff --git a/test/mnemond/architecture/mnemond_structure_test.go b/test/mnemond/architecture/mnemond_structure_test.go index 8da80b5d..466f648c 100644 --- a/test/mnemond/architecture/mnemond_structure_test.go +++ b/test/mnemond/architecture/mnemond_structure_test.go @@ -38,15 +38,10 @@ func assertNativeMemoryDoesNotImportAgency(t *testing.T, root string) { t.Helper() agency := map[string]struct{}{ "cmd/agency": {}, - "internal/agency": {}, "internal/agencyclient": {}, "internal/attach": {}, "internal/authority": {}, - "internal/artifact": {}, "internal/daemon": {}, - "internal/peerlink": {}, + "internal/agency": {}, + "internal/daemon": {}, } - for _, component := range []string{ - "cmd/memory", "internal/embed", "internal/graph", - "internal/importdraft", "internal/model", "internal/search", "internal/setup", - "internal/store", - } { + for _, component := range []string{"cmd/memory", "internal/memory"} { forEachComponentGoFile(t, root, component, func(path string, file *ast.File) { for _, spec := range file.Imports { importPath, err := strconv.Unquote(spec.Path.Value) @@ -58,9 +53,12 @@ func assertNativeMemoryDoesNotImportAgency(t *testing.T, root string) { if !strings.HasPrefix(importPath, prefix) { continue } - dependency := importComponent(strings.TrimPrefix(importPath, prefix)) - if _, forbidden := agency[dependency]; forbidden { - t.Errorf("%s imports Agency component %q", path, dependency) + dependency := strings.TrimPrefix(importPath, prefix) + for component := range agency { + if dependency == component || strings.HasPrefix(dependency, component+"/") { + t.Errorf("%s imports Agency component %q", path, dependency) + break + } } } }) @@ -70,23 +68,40 @@ func assertNativeMemoryDoesNotImportAgency(t *testing.T, root string) { func assertMnemondPackageGraph(t *testing.T, root string) { t.Helper() want := map[string][]string{ - "internal/agency": {}, - "internal/agencyclient": {"internal/agency"}, - "internal/attach": {}, - "internal/authority": {"internal/agency"}, - "internal/artifact": {"internal/agency"}, - "internal/daemon": {"internal/agency", "internal/authority", "internal/artifact", "internal/peerlink"}, - "internal/peerlink": {"internal/agency", "internal/artifact"}, - "cmd/agency": {"internal/agencyclient", "internal/attach", "internal/daemon"}, + "internal/memory/embed": {}, + "internal/memory/model": {}, + "internal/memory/importdraft": {"internal/memory/model"}, + "internal/memory/store": {"internal/memory/embed", "internal/memory/model"}, + "internal/memory/search": { + "internal/memory/embed", "internal/memory/model", "internal/memory/store", + }, + "internal/memory/graph": { + "internal/memory/embed", "internal/memory/model", "internal/memory/search", + "internal/memory/store", + }, + "internal/memory/setup/assets": {}, + "internal/memory/setup": {"internal/memory/setup/assets"}, + "internal/agency": {}, + "internal/agency/client": {"internal/agency"}, + "internal/agency/attach": {}, + "internal/agency/authority": {"internal/agency"}, + "internal/agency/artifact": {"internal/agency"}, + "internal/agency/peerlink": {"internal/agency", "internal/agency/artifact"}, + "internal/daemon": { + "internal/agency", "internal/agency/artifact", "internal/agency/authority", + "internal/agency/peerlink", + }, + "cmd/agency": {"internal/agency/attach", "internal/agency/client", "internal/daemon"}, "cmd/memory": { - "internal/embed", "internal/graph", "internal/importdraft", "internal/model", - "internal/search", "internal/setup", "internal/store", + "internal/memory/embed", "internal/memory/graph", "internal/memory/importdraft", + "internal/memory/model", "internal/memory/search", "internal/memory/setup", + "internal/memory/setup/assets", "internal/memory/store", }, } got := make(map[string]map[string]struct{}, len(want)) for component := range want { got[component] = map[string]struct{}{} - forEachComponentGoFile(t, root, component, func(path string, file *ast.File) { + forEachPackageGoFile(t, root, component, func(path string, file *ast.File) { for _, spec := range file.Imports { importPath, err := strconv.Unquote(spec.Path.Value) if err != nil { @@ -101,7 +116,7 @@ func assertMnemondPackageGraph(t *testing.T, root string) { if !strings.HasPrefix(importPath, prefix) { continue } - dependency := importComponent(strings.TrimPrefix(importPath, prefix)) + dependency := strings.TrimPrefix(importPath, prefix) if dependency != component { got[component][dependency] = struct{}{} } @@ -167,7 +182,7 @@ func assertInteractiveAttachmentOnly(t *testing.T, root string) { return true }) }) - assertSingleArchitectureMatch(t, declarations, "/internal/authority/", + assertSingleArchitectureMatch(t, declarations, "/internal/agency/authority/", "IssueInteractiveAttachment", "attachment issuer declaration") assertSingleArchitectureMatch(t, calls, "/internal/daemon/", "IssueInteractiveAttachment", "attachment issuer call") @@ -264,6 +279,30 @@ func forEachComponentGoFile(t *testing.T, root, component string, visit func(str walkGoFiles(t, filepath.Join(root, filepath.FromSlash(component)), visit) } +// forEachPackageGoFile visits one exact Go package directory. Unlike a product +// component scan, it must not merge child packages into their parent when +// enforcing the promoted import graph. +func forEachPackageGoFile(t *testing.T, root, packagePath string, visit func(string, *ast.File)) { + t.Helper() + base := filepath.Join(root, filepath.FromSlash(packagePath)) + entries, err := os.ReadDir(base) + if err != nil { + t.Fatalf("scan package %s: %v", base, err) + } + for _, entry := range entries { + if entry.IsDir() || !strings.HasSuffix(entry.Name(), ".go") || + strings.HasSuffix(entry.Name(), "_test.go") { + continue + } + path := filepath.Join(base, entry.Name()) + file, err := parser.ParseFile(token.NewFileSet(), path, nil, parser.SkipObjectResolution) + if err != nil { + t.Fatalf("parse %s: %v", path, err) + } + visit(path, file) + } +} + func forEachProductionGoFile(t *testing.T, root string, visit func(string, *ast.File)) { t.Helper() for _, base := range []string{filepath.Join(root, "internal"), filepath.Join(root, "cmd")} { @@ -298,14 +337,6 @@ func walkGoFiles(t *testing.T, base string, visit func(string, *ast.File)) { } } -func importComponent(importPath string) string { - parts := strings.Split(importPath, "/") - if len(parts) < 2 { - return importPath - } - return parts[0] + "/" + parts[1] -} - func assertSingleArchitectureMatch(t *testing.T, matches []string, directory, want, label string) { t.Helper() if len(matches) != 1 || !strings.Contains(matches[0], directory) || diff --git a/test/mnemond/architecture/repository_hygiene_test.go b/test/mnemond/architecture/repository_hygiene_test.go index 740bf102..f656c555 100644 --- a/test/mnemond/architecture/repository_hygiene_test.go +++ b/test/mnemond/architecture/repository_hygiene_test.go @@ -70,14 +70,14 @@ func TestRepositoryHygieneRulesRejectGeneratedFiles(t *testing.T) { }{ {"scratch/result.json", `{}`, "durable JSON category"}, {"testdata/mnemond/cases/example/tmp.json", `{}`, "temporary JSON name"}, - {"internal/setup/assets/fixtures/report-copy.json", + {"internal/memory/setup/assets/fixtures/report-copy.json", `{"schema_version":1,"run_id":"run","status":"passed","git_sha":"abc",` + `"scenario":"example","commands":[],"assertions":[]}`, "run report"}, - {"internal/setup/assets/fixtures/manifest-copy.json", + {"internal/memory/setup/assets/fixtures/manifest-copy.json", `{"schema_version":1,"run_id":"run","files":[]}`, "run evidence manifest"}, - {"internal/setup/assets/fixtures/command.json", + {"internal/memory/setup/assets/fixtures/command.json", `{"sequence":1,"node":"A","kind":"setup","started_unix_ms":1,` + `"finished_unix_ms":2,"exit_code":0,"evidence":[]}`, "run transcript"}, @@ -92,8 +92,8 @@ func TestRepositoryHygieneRulesRejectGeneratedFiles(t *testing.T) { func TestRepositoryHygieneRulesAcceptDurableJSONCategories(t *testing.T) { for _, trackedPath := range []string{ - "internal/setup/assets/openclaw/plugin/openclaw.plugin.json", - "internal/setup/assets/openclaw/plugin/package.json", + "internal/memory/setup/assets/openclaw/plugin/openclaw.plugin.json", + "internal/memory/setup/assets/openclaw/plugin/package.json", } { if reason := forbiddenTrackedPathReason(trackedPath); reason != "" { t.Errorf("%s: %s", trackedPath, reason) @@ -235,7 +235,7 @@ func temporaryJSONNameReason(trackedPath string) string { func durableJSONCategory(trackedPath string) string { switch { - case strings.HasPrefix(trackedPath, "internal/setup/assets/"): + case strings.HasPrefix(trackedPath, "internal/memory/setup/assets/"): return "managed asset" default: return "" diff --git a/test/mnemond/domainops/trace/report_control_diagnostic.go b/test/mnemond/domainops/trace/report_control_diagnostic.go index 6546a27f..59c642dd 100644 --- a/test/mnemond/domainops/trace/report_control_diagnostic.go +++ b/test/mnemond/domainops/trace/report_control_diagnostic.go @@ -5,7 +5,7 @@ import ( "slices" "github.com/mnemon-dev/mnemon/internal/agency" - "github.com/mnemon-dev/mnemon/internal/authority" + "github.com/mnemon-dev/mnemon/internal/agency/authority" ) type controlDenial struct { diff --git a/test/mnemond/domainops/trace/trace_test.go b/test/mnemond/domainops/trace/trace_test.go index 871fe7ce..8dd61979 100644 --- a/test/mnemond/domainops/trace/trace_test.go +++ b/test/mnemond/domainops/trace/trace_test.go @@ -14,7 +14,7 @@ import ( "time" "github.com/mnemon-dev/mnemon/internal/agency" - "github.com/mnemon-dev/mnemon/internal/authority" + "github.com/mnemon-dev/mnemon/internal/agency/authority" ) func TestParseStoredEventRequiresExactCanonicalDigestAndColumns(t *testing.T) { diff --git a/test/mnemond/runtime/pi/run_delegate_oracle.sh b/test/mnemond/runtime/pi/run_delegate_oracle.sh index 0e59f852..16e5a7a0 100755 --- a/test/mnemond/runtime/pi/run_delegate_oracle.sh +++ b/test/mnemond/runtime/pi/run_delegate_oracle.sh @@ -5,8 +5,8 @@ set -euo pipefail runtime_dir=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd -P) runner_dir=$(cd "$runtime_dir/../../domainops" && pwd -P) repository_root=$(cd "$runtime_dir/../../../.." && pwd -P) -lifecycle_extension="$repository_root/internal/attach/assets/pi/mnemond.ts" -current_extension="$repository_root/internal/attach/assets/pi/mnemond-current.ts" +lifecycle_extension="$repository_root/internal/agency/attach/assets/pi/mnemond.ts" +current_extension="$repository_root/internal/agency/attach/assets/pi/mnemond-current.ts" current_provider="$runtime_dir/current-rpc-provider.ts" image="mnemon-pi-delegate-oracle:$$" scratch=$(mktemp -d /tmp/mnemon-pi-runtime-oracle.XXXXXX)