pi-roundtable 0.34.0 → 0.35.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (257) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/package.json +1 -2
  3. package/src/cli/checks/configuration.ts +2 -2
  4. package/src/cli/checks/database.ts +2 -2
  5. package/src/cli/checks/identity.ts +1 -1
  6. package/src/cli/checks/model.ts +1 -1
  7. package/src/cli/cli.ts +2 -2
  8. package/src/cli/principal.ts +1 -1
  9. package/src/cli/project.ts +2 -2
  10. package/src/cli/runtime.ts +3 -3
  11. package/src/cli/start.ts +1 -1
  12. package/src/core/agents/agent-claim.ts +4 -4
  13. package/src/core/agents/agent-dashboard.ts +3 -3
  14. package/src/core/agents/agent-messages.ts +2 -2
  15. package/src/core/agents/agent-outbox.ts +1 -1
  16. package/src/core/agents/agent-ports.ts +1 -1
  17. package/src/core/agents/agent-prompt.ts +4 -4
  18. package/src/core/agents/agent-rules.ts +1 -1
  19. package/src/core/agents/agent-schema.ts +4 -1
  20. package/src/core/agents/agent-settings.ts +2 -2
  21. package/src/core/agents/agent-store.ts +9 -9
  22. package/src/core/agents/agent-team-fixture.ts +4 -3
  23. package/src/core/agents/agent-team.ts +12 -16
  24. package/src/core/agents/agent-tools.ts +15 -15
  25. package/src/core/agents/avatar-refresh.ts +1 -1
  26. package/src/core/agents/avatar-studio.ts +2 -2
  27. package/src/core/agents/group-round.ts +2 -2
  28. package/src/core/agents/group-turns.ts +1 -1
  29. package/src/core/agents/helper-create.ts +24 -40
  30. package/src/core/agents/helper-modes.ts +2 -2
  31. package/src/core/agents/helper-preset-ops.ts +207 -0
  32. package/src/core/agents/helper-preset-tools.ts +109 -0
  33. package/src/core/agents/helper-presets.ts +128 -0
  34. package/src/core/agents/helper-test-kit.ts +1 -1
  35. package/src/core/agents/helper-tools.ts +42 -22
  36. package/src/core/agents/helper-work.ts +1 -1
  37. package/src/core/agents/message-target.ts +1 -1
  38. package/src/core/agents/routes.ts +1 -1
  39. package/src/core/agents/team-approval.ts +2 -2
  40. package/src/core/agents/team-editing.ts +2 -2
  41. package/src/core/agents/team-keys.ts +1 -1
  42. package/src/core/agents/team-layout.ts +1 -1
  43. package/src/core/agents/team-options.ts +4 -4
  44. package/src/core/agents/team-selection.ts +1 -1
  45. package/src/core/agents/team-status.ts +1 -1
  46. package/src/core/agents/team-text.ts +3 -3
  47. package/src/core/agents/team-turn-types.ts +7 -7
  48. package/src/core/agents/team-turns.ts +3 -3
  49. package/src/core/attachments/attachment-fetcher.ts +1 -1
  50. package/src/core/attachments/attachment-port.ts +2 -2
  51. package/src/core/attachments/attachment-retention.ts +3 -3
  52. package/src/core/attachments/attachment-store.ts +2 -2
  53. package/src/core/attachments/model-images.ts +1 -1
  54. package/src/core/attachments/turn-attachments.ts +1 -1
  55. package/src/core/builtin/agent-server.ts +17 -10
  56. package/src/core/builtin/channel-context.ts +2 -2
  57. package/src/core/builtin/discord-admin.ts +2 -2
  58. package/src/core/builtin/discord.ts +4 -3
  59. package/src/core/{identity/identity-plugin.ts → builtin/identity.ts} +15 -12
  60. package/src/core/builtin/modules.ts +12 -12
  61. package/src/core/builtin/prompts.ts +3 -3
  62. package/src/core/builtin/seeds.ts +1 -1
  63. package/src/core/builtin/session-tool.ts +1 -1
  64. package/src/core/builtin/skills.ts +3 -3
  65. package/src/core/builtin/stores.ts +10 -5
  66. package/src/core/builtin/threads.ts +2 -2
  67. package/src/core/builtin/worker-sessions.ts +3 -3
  68. package/src/core/config/access.ts +3 -3
  69. package/src/core/config/adapters.ts +1 -1
  70. package/src/core/config/config-schema.ts +9 -3
  71. package/src/core/config/config.ts +9 -10
  72. package/src/core/config/ops.ts +1 -1
  73. package/src/core/config/peer-bots.ts +74 -0
  74. package/src/core/config/routing.ts +1 -1
  75. package/src/core/contract/attachments.ts +1 -1
  76. package/src/core/contract/channels.ts +3 -5
  77. package/src/core/contract/runtime.ts +6 -6
  78. package/src/core/contract/surface.ts +3 -3
  79. package/src/core/conversations/conversation-registry.ts +1 -1
  80. package/src/core/conversations/conversation-retention.ts +2 -2
  81. package/src/core/conversations/conversation-store.ts +1 -1
  82. package/src/core/conversations/conversations-plugin.ts +2 -2
  83. package/src/core/db/migrations.ts +2 -2
  84. package/src/core/discord/agent-commands.ts +2 -2
  85. package/src/core/discord/agent-discord.ts +1 -1
  86. package/src/core/discord/agent-panel.ts +1 -1
  87. package/src/core/discord/card-audience.ts +1 -1
  88. package/src/core/discord/card-copies.ts +1 -1
  89. package/src/core/discord/channel-context.ts +1 -1
  90. package/src/core/discord/channel-executor.ts +1 -1
  91. package/src/core/discord/channel-operations.ts +1 -1
  92. package/src/core/discord/command-collection.ts +1 -1
  93. package/src/core/discord/compose-commands.ts +1 -1
  94. package/src/core/discord/context-images.ts +1 -1
  95. package/src/core/discord/discord-owners.ts +2 -2
  96. package/src/core/discord/discord-surface.ts +2 -2
  97. package/src/core/discord/member-events.ts +2 -2
  98. package/src/core/discord/message-changes.ts +1 -1
  99. package/src/core/discord/owner-cards.ts +1 -1
  100. package/src/core/discord/owner-command.ts +1 -1
  101. package/src/core/discord/schedule-commands.ts +1 -1
  102. package/src/core/domain/conversation.ts +5 -3
  103. package/src/core/{models.ts → domain/models.ts} +1 -1
  104. package/src/core/domain/ports.ts +2 -2
  105. package/src/core/{sessions.ts → domain/sessions.ts} +6 -6
  106. package/src/core/{define-roundtable.ts → host/define-roundtable.ts} +29 -29
  107. package/src/core/{drain.ts → host/drain.ts} +2 -7
  108. package/src/core/{events.ts → host/events.ts} +2 -2
  109. package/src/core/{host-background.ts → host/host-background.ts} +3 -3
  110. package/src/core/{host-registration.ts → host/host-registration.ts} +30 -30
  111. package/src/core/{host.ts → host/host.ts} +19 -15
  112. package/src/core/http/listeners.ts +2 -2
  113. package/src/core/http/websocket.ts +1 -1
  114. package/src/core/identity/access-policy.ts +8 -8
  115. package/src/core/identity/actor-facts.ts +1 -1
  116. package/src/core/identity/caching-principal-store.ts +1 -1
  117. package/src/core/identity/config-owner.ts +1 -1
  118. package/src/core/identity/contact.ts +2 -2
  119. package/src/core/identity/identity-links.ts +2 -2
  120. package/src/core/identity/identity-port.ts +2 -2
  121. package/src/core/identity/identity-schema.ts +1 -1
  122. package/src/core/identity/identity-service.ts +3 -3
  123. package/src/core/identity/identity-view.ts +1 -1
  124. package/src/core/{identity.ts → identity/owner-identity.ts} +1 -1
  125. package/src/core/identity/person-profiles.ts +1 -1
  126. package/src/core/identity/plugin-identities.ts +2 -2
  127. package/src/core/identity/principal-reads.ts +1 -1
  128. package/src/core/identity/principal-store.ts +1 -1
  129. package/src/core/identity/principal-types.ts +1 -1
  130. package/src/core/identity/seen-throttle.ts +1 -1
  131. package/src/core/{speakers.ts → identity/speakers.ts} +3 -6
  132. package/src/core/images/codex-images-plugin.ts +3 -3
  133. package/src/core/interactions/prompts.ts +1 -1
  134. package/src/core/judging/confirmation-judge.ts +1 -1
  135. package/src/core/judging/effort-judge.ts +2 -2
  136. package/src/core/judging/model-judge.ts +1 -1
  137. package/src/core/modes/conversation-modes.ts +4 -4
  138. package/src/core/modes/mode-inheritance.ts +1 -1
  139. package/src/core/modes/modes-plugin.ts +2 -2
  140. package/src/core/modules/background/background-turns.ts +4 -4
  141. package/src/core/modules/delegation/delegate.ts +3 -3
  142. package/src/core/modules/delegation/delegator.ts +4 -4
  143. package/src/core/modules/delegation/web-research-worker.ts +2 -2
  144. package/src/core/modules/delegation/worker-session.ts +5 -2
  145. package/src/core/modules/discord-admin/discord-admin.ts +1 -1
  146. package/src/core/modules/host-shell/shell-policy.ts +1 -1
  147. package/src/core/modules/memory/owner-memory-store.ts +1 -1
  148. package/src/core/modules/memory/owner-memory.ts +6 -3
  149. package/src/core/modules/notify/notify.ts +4 -1
  150. package/src/core/modules/notify/session-notify.ts +3 -3
  151. package/src/core/modules/prompts/prompt-documents.ts +1 -1
  152. package/src/core/modules/schedules/precheck-tools.ts +4 -4
  153. package/src/core/modules/schedules/prechecks.ts +2 -2
  154. package/src/core/modules/schedules/recurrence.ts +6 -1
  155. package/src/core/modules/schedules/schedule-prechecks.ts +4 -4
  156. package/src/core/modules/schedules/schedule-store.ts +2 -2
  157. package/src/core/modules/schedules/schedule-tools.ts +4 -4
  158. package/src/core/modules/schedules/scheduled-turn-text.ts +1 -1
  159. package/src/core/modules/schedules/scheduler.ts +3 -3
  160. package/src/core/modules/schedules/schedules.ts +5 -5
  161. package/src/core/modules/skills/missing-warning.ts +1 -1
  162. package/src/core/modules/skills/package-skills.ts +1 -1
  163. package/src/core/modules/skills/skill-registry.ts +2 -2
  164. package/src/core/modules/skills/skill-rules.ts +1 -1
  165. package/src/core/modules/skills/skill-tools.ts +1 -1
  166. package/src/core/ops/error-reporter.ts +2 -2
  167. package/src/core/ops/ops-alerts.ts +1 -1
  168. package/src/core/{define.ts → plugin-api/define.ts} +18 -20
  169. package/src/core/{event-types.ts → plugin-api/event-types.ts} +1 -1
  170. package/src/core/{holds.ts → plugin-api/holds.ts} +3 -3
  171. package/src/core/{plugin-removed.ts → plugin-api/plugin-removed.ts} +2 -2
  172. package/src/core/{plugin.ts → plugin-api/plugin.ts} +26 -26
  173. package/src/core/{services.ts → plugin-api/services.ts} +28 -28
  174. package/src/core/{tool-turn.ts → plugin-api/tool-turn.ts} +12 -5
  175. package/src/core/presence/delivery-router.ts +1 -1
  176. package/src/core/presence/direct-channels.ts +1 -1
  177. package/src/core/registry/chat-commands.ts +1 -1
  178. package/src/core/registry/contributions.ts +11 -11
  179. package/src/core/registry/providers.ts +2 -2
  180. package/src/core/registry/services.ts +2 -2
  181. package/src/core/registry/surface-service.ts +1 -1
  182. package/src/core/routing/actor-of.ts +1 -1
  183. package/src/core/routing/channel-queue.ts +2 -2
  184. package/src/core/routing/channel-router.ts +3 -3
  185. package/src/core/routing/claim-events.ts +2 -2
  186. package/src/core/routing/conversation-turns.ts +10 -6
  187. package/src/core/routing/forward-join.ts +1 -1
  188. package/src/core/routing/message-observers.ts +1 -1
  189. package/src/core/routing/message-text.ts +1 -1
  190. package/src/core/routing/peer-bots.ts +6 -74
  191. package/src/core/routing/queued-messages.ts +2 -2
  192. package/src/core/routing/settle-turn.ts +1 -1
  193. package/src/core/routing/surface-port.ts +3 -3
  194. package/src/core/runtime/ask-questions.ts +1 -1
  195. package/src/core/runtime/bridge-guard.ts +5 -5
  196. package/src/core/runtime/chat-only.ts +1 -1
  197. package/src/core/runtime/conversation-sessions.ts +2 -2
  198. package/src/core/runtime/extensions/agent-prompt.ts +1 -1
  199. package/src/core/runtime/extensions/ask-user-text.ts +5 -1
  200. package/src/core/runtime/extensions/ask-user.ts +4 -1
  201. package/src/core/runtime/extensions/card-ask.ts +1 -1
  202. package/src/core/runtime/extensions/confirmation-fixture.ts +1 -1
  203. package/src/core/runtime/extensions/confirmation-gate-extension.ts +1 -1
  204. package/src/core/runtime/extensions/confirmation-gate.ts +5 -5
  205. package/src/core/runtime/extensions/gate-refusals.ts +5 -2
  206. package/src/core/runtime/extensions/held-calls.ts +2 -2
  207. package/src/core/runtime/extensions/hold-describer.ts +3 -3
  208. package/src/core/runtime/extensions/hold-lookups.ts +4 -4
  209. package/src/core/runtime/extensions/persona-prompt.ts +1 -1
  210. package/src/core/runtime/extensions/prompt-read.ts +1 -1
  211. package/src/core/runtime/extensions/yolo.ts +1 -1
  212. package/src/core/runtime/interim-text.ts +1 -1
  213. package/src/core/runtime/pi-agent-runtime.ts +4 -4
  214. package/src/core/runtime/running-turn.ts +1 -1
  215. package/src/core/runtime/runtime-plugin.ts +13 -8
  216. package/src/core/runtime/runtime-types.ts +14 -10
  217. package/src/core/runtime/session-conversation.ts +3 -3
  218. package/src/core/runtime/session-factory.ts +5 -5
  219. package/src/core/runtime/thinking-level.ts +2 -2
  220. package/src/core/{tool-tiers.ts → runtime/tool-tiers.ts} +5 -5
  221. package/src/core/runtime/turn-answer.ts +1 -1
  222. package/src/core/runtime/turn-budget.ts +1 -1
  223. package/src/core/runtime/turn-limits.ts +1 -1
  224. package/src/core/runtime/turn-tools.ts +2 -2
  225. package/src/core/runtime/worker-task.ts +1 -1
  226. package/src/core/shared/attach-file-tool.ts +1 -1
  227. package/src/core/shared/delegate-tool.ts +1 -1
  228. package/src/core/shared/generate-image-tool.ts +1 -1
  229. package/src/core/{modules/background → shared}/personal-target.ts +2 -2
  230. package/src/core/{reply-files.ts → shared/reply-files.ts} +1 -1
  231. package/src/core/testing/eager-catalog.ts +1 -1
  232. package/src/core/testing/locale.ts +1 -1
  233. package/src/core/testing/map-identity.ts +5 -1
  234. package/src/core/testing/module-sessions.ts +3 -3
  235. package/src/core/testing/modules.ts +17 -13
  236. package/src/core/testing/owner.ts +2 -2
  237. package/src/core/testing/recording-logger.ts +1 -1
  238. package/src/core/testing/run-tool.ts +2 -2
  239. package/src/core/testing/surface-contract-support.ts +1 -1
  240. package/src/core/testing/surface-contract.ts +2 -2
  241. package/src/core/testing/test-host.ts +12 -12
  242. package/src/core/testing/thread-host.ts +1 -1
  243. package/src/core/testing/tool-set.ts +3 -3
  244. package/src/core/threads/dispatch-threads.ts +1 -1
  245. package/src/core/tool-set.snapshot.json +12 -0
  246. package/src/index.ts +76 -72
  247. package/src/kit/domain.ts +9 -9
  248. package/src/kit/holds.ts +4 -1
  249. package/src/kit/jev-judge.ts +1 -1
  250. package/src/kit/jev.ts +1 -1
  251. package/src/kit/presentation.ts +1 -1
  252. package/src/kit/support.ts +3 -3
  253. package/src/testing.ts +21 -20
  254. /package/src/core/{errors.ts → kernel/errors.ts} +0 -0
  255. /package/src/core/{freeze.ts → kernel/freeze.ts} +0 -0
  256. /package/src/core/{log.ts → kernel/log.ts} +0 -0
  257. /package/src/core/{time.ts → kernel/time.ts} +0 -0
@@ -9,22 +9,20 @@ import type { ConversationRegistry } from "../conversations/conversation-registr
9
9
  import type { ChannelKey } from "../domain/conversation.ts";
10
10
  import type { IdentityService } from "../identity/identity-service.ts";
11
11
  import type { Principal } from "../identity/principal-store.ts";
12
- import { silentLogger } from "../log.ts";
13
- import { PERSONAL_TARGET } from "../modules/background/personal-target.ts";
12
+ import type { Tier } from "../identity/speakers.ts";
13
+ import { silentLogger } from "../kernel/log.ts";
14
14
  import type { SkillStore } from "../modules/skills/skill-store.ts";
15
15
  import {
16
16
  type Contribution,
17
17
  type PluginContext,
18
18
  pluginContext,
19
19
  type RoundtablePlugin,
20
- } from "../plugin.ts";
21
- import {
22
- type DirectChannelProvider,
23
- directChannelsPort,
24
- } from "../presence/direct-channels.ts";
25
- import { ServiceRegistry } from "../registry/services.ts";
26
- import { surfacePort } from "../routing/surface-port.ts";
27
- import type { AgentServer, MemoryStore, ScheduleStore } from "../services.ts";
20
+ } from "../plugin-api/plugin.ts";
21
+ import type {
22
+ AgentServer,
23
+ MemoryStore,
24
+ ScheduleStore,
25
+ } from "../plugin-api/services.ts";
28
26
  import {
29
27
  AGENTS,
30
28
  CONVERSATIONS,
@@ -32,10 +30,16 @@ import {
32
30
  MEMORY,
33
31
  SCHEDULES,
34
32
  THREADS,
35
- } from "../services.ts";
36
- import type { Tier } from "../speakers.ts";
33
+ } from "../plugin-api/services.ts";
34
+ import {
35
+ type DirectChannelProvider,
36
+ directChannelsPort,
37
+ } from "../presence/direct-channels.ts";
38
+ import { ServiceRegistry } from "../registry/services.ts";
39
+ import { surfacePort } from "../routing/surface-port.ts";
40
+ import { toolTiers } from "../runtime/tool-tiers.ts";
41
+ import { PERSONAL_TARGET } from "../shared/personal-target.ts";
37
42
  import type { DispatchThreads } from "../threads/dispatch-threads.ts";
38
- import { toolTiers } from "../tool-tiers.ts";
39
43
 
40
44
  /** What the modules' tools did, for a test to read. */
41
45
  export interface ModuleRecord {
@@ -1,6 +1,6 @@
1
+ import type { OwnerIdentity } from "../identity/owner-identity.ts";
1
2
  import type { Principal } from "../identity/principal-store.ts";
2
- import type { OwnerIdentity } from "../identity.ts";
3
- import type { Speaker } from "../speakers.ts";
3
+ import type { Speaker } from "../identity/speakers.ts";
4
4
 
5
5
  /** The owner tests speak for; its words match the texts the tests expect. */
6
6
  export const TEST_OWNER: OwnerIdentity = {
@@ -1,4 +1,4 @@
1
- import type { Logger } from "../log.ts";
1
+ import type { Logger } from "../kernel/log.ts";
2
2
 
3
3
  /** One line a recording logger kept. */
4
4
  export interface RecordedLog {
@@ -4,12 +4,12 @@ import type {
4
4
  } from "@earendil-works/pi-coding-agent";
5
5
  import type { ClientPart } from "../domain/client.ts";
6
6
  import type { ReplyFile } from "../domain/conversation.ts";
7
- import { PluginError } from "../errors.ts";
7
+ import { PluginError } from "../kernel/errors.ts";
8
8
  import {
9
9
  attachReplyFile,
10
10
  hasReplyFileScope,
11
11
  withReplyFiles,
12
- } from "../reply-files.ts";
12
+ } from "../shared/reply-files.ts";
13
13
 
14
14
  /** What a session registers of a tool: the call the model's tool call reaches. */
15
15
  export interface RegisteredTool {
@@ -1,11 +1,11 @@
1
1
  import type { InboundMessage } from "../contract/channels.ts";
2
+ import type { Speaker } from "../identity/speakers.ts";
2
3
  import {
3
4
  type Approval,
4
5
  type ApprovedBy,
5
6
  type PromptScope,
6
7
  promptScope,
7
8
  } from "../interactions/prompts.ts";
8
- import type { Speaker } from "../speakers.ts";
9
9
  import type {
10
10
  SurfaceContractAnswerer,
11
11
  SurfaceContractSubject,
@@ -2,13 +2,13 @@ import { describe, test } from "bun:test";
2
2
  import type { ChatSurface } from "../contract/surface.ts";
3
3
  import { parseChannelKey } from "../contract/surface.ts";
4
4
  import type { TurnProgress } from "../domain/progress.ts";
5
+ import type { ChannelKey } from "../domain/sessions.ts";
6
+ import type { Speaker } from "../identity/speakers.ts";
5
7
  import type { Approval } from "../interactions/prompts.ts";
6
8
  import type {
7
9
  Questionnaire,
8
10
  QuestionnaireAnswer,
9
11
  } from "../interactions/questionnaire.ts";
10
- import type { ChannelKey } from "../sessions.ts";
11
- import type { Speaker } from "../speakers.ts";
12
12
  import { QUESTIONNAIRE_CHECKS } from "./surface-contract-questionnaire.ts";
13
13
  import {
14
14
  answeredOnlyByThem,
@@ -11,7 +11,6 @@ import { type RoundtableConfig, resolveConfig } from "../config/config.ts";
11
11
  import type { ConversationPort } from "../contract/channels.ts";
12
12
  import type { AgentRuntime } from "../contract/runtime.ts";
13
13
  import type { ChatSurface } from "../contract/surface.ts";
14
- import { defineRoundtable, discordOwnerOf } from "../define-roundtable.ts";
15
14
  import { CommandCollection } from "../discord/command-collection.ts";
16
15
  import type { ComposedCommands } from "../discord/compose-commands.ts";
17
16
  import type { DiscordConnection } from "../discord/connection.ts";
@@ -22,21 +21,22 @@ import type {
22
21
  } from "../discord/interaction-module.ts";
23
22
  import { commandGuard, ownerRootCommand } from "../discord/owner-command.ts";
24
23
  import type { DiscordPoster } from "../discord/poster/poster.ts";
25
- import type { HoldDescription } from "../holds.ts";
26
- import { Roundtable } from "../host.ts";
27
- import { silentLogger } from "../log.ts";
28
- import type { PluginContext, RoundtablePlugin } from "../plugin.ts";
29
- import { CompactionTiers } from "../runtime/compaction-tiers.ts";
30
- import { privateCompaction } from "../runtime/extensions/private-memory.ts";
31
- import { sessionExtensions } from "../runtime/runtime-types.ts";
32
- import { IDENTITY } from "../services.ts";
33
24
  import type {
34
25
  AgentTurnScope,
35
26
  ChannelKey,
36
27
  SessionContext,
37
- } from "../sessions.ts";
38
- import { type Speaker, THE_SPEAKER } from "../speakers.ts";
39
- import { toolTurn } from "../tool-turn.ts";
28
+ } from "../domain/sessions.ts";
29
+ import { defineRoundtable, discordOwnerOf } from "../host/define-roundtable.ts";
30
+ import { Roundtable } from "../host/host.ts";
31
+ import { type Speaker, THE_SPEAKER } from "../identity/speakers.ts";
32
+ import { silentLogger } from "../kernel/log.ts";
33
+ import type { HoldDescription } from "../plugin-api/holds.ts";
34
+ import type { PluginContext, RoundtablePlugin } from "../plugin-api/plugin.ts";
35
+ import { IDENTITY } from "../plugin-api/services.ts";
36
+ import { toolTurn } from "../plugin-api/tool-turn.ts";
37
+ import { CompactionTiers } from "../runtime/compaction-tiers.ts";
38
+ import { privateCompaction } from "../runtime/extensions/private-memory.ts";
39
+ import { sessionExtensions } from "../runtime/runtime-types.ts";
40
40
  import { testDatabaseUrl } from "./database.ts";
41
41
  import { fakeDiscordPoster } from "./fake-poster.ts";
42
42
  import { callRegisteredTool, registeredTools, toolNamed } from "./run-tool.ts";
@@ -3,7 +3,7 @@ import { tmpdir } from "node:os";
3
3
  import { join } from "node:path";
4
4
  import type { ChatSurface } from "../contract/surface.ts";
5
5
  import type { InterimMessage } from "../domain/interim.ts";
6
- import { silentLogger } from "../log.ts";
6
+ import { silentLogger } from "../kernel/log.ts";
7
7
  import { surfacePort } from "../routing/surface-port.ts";
8
8
  import {
9
9
  DispatchThreads,
@@ -1,9 +1,9 @@
1
1
  import type { ChannelKey } from "../domain/conversation.ts";
2
- import type { RoundtablePlugin } from "../plugin.ts";
2
+ import type { AgentTurnScope } from "../domain/sessions.ts";
3
+ import type { RoundtablePlugin } from "../plugin-api/plugin.ts";
4
+ import { AGENTS } from "../plugin-api/services.ts";
3
5
  import { ASK_USER_TOOL } from "../runtime/extensions/ask-user.ts";
4
6
  import { COMPACT_TOOL } from "../runtime/extensions/self-compact-guard.ts";
5
- import { AGENTS } from "../services.ts";
6
- import type { AgentTurnScope } from "../sessions.ts";
7
7
  import type { TestHost } from "./test-host.ts";
8
8
 
9
9
  export const scout: AgentTurnScope = {
@@ -15,7 +15,7 @@ import {
15
15
  import type { ChannelKey } from "../domain/conversation.ts";
16
16
  import type { InterimMessage, InterimPosts } from "../domain/interim.ts";
17
17
  import { messages } from "../i18n/index.ts";
18
- import type { Logger } from "../log.ts";
18
+ import type { Logger } from "../kernel/log.ts";
19
19
  import { threadsOfHost } from "./host-threads.ts";
20
20
 
21
21
  /** The only surface a `ThreadHost` serves. */
@@ -91,6 +91,9 @@
91
91
  "group_update",
92
92
  "helper_create",
93
93
  "helper_end",
94
+ "helper_preset_delete",
95
+ "helper_preset_list",
96
+ "helper_preset_set",
94
97
  "memory_add",
95
98
  "memory_remove",
96
99
  "memory_search",
@@ -125,6 +128,9 @@
125
128
  "group_update",
126
129
  "helper_create",
127
130
  "helper_end",
131
+ "helper_preset_delete",
132
+ "helper_preset_list",
133
+ "helper_preset_set",
128
134
  "message_agent",
129
135
  "read",
130
136
  "skill_create",
@@ -185,6 +191,9 @@
185
191
  "group_update",
186
192
  "helper_create",
187
193
  "helper_end",
194
+ "helper_preset_delete",
195
+ "helper_preset_list",
196
+ "helper_preset_set",
188
197
  "memory_add",
189
198
  "memory_remove",
190
199
  "memory_search",
@@ -281,6 +290,9 @@
281
290
  "group_update": "admin",
282
291
  "helper_create": "member",
283
292
  "helper_end": "member",
293
+ "helper_preset_delete": "member",
294
+ "helper_preset_list": "member",
295
+ "helper_preset_set": "member",
284
296
  "memory_add": "member",
285
297
  "memory_remove": "member",
286
298
  "memory_search": "member",
package/src/index.ts CHANGED
@@ -56,6 +56,10 @@ export type {
56
56
  export type { ConversationsConfig } from "./core/config/conversations.ts";
57
57
  export type { HelpersConfig } from "./core/config/helpers.ts";
58
58
  export type { LimitsConfig } from "./core/config/limits.ts";
59
+ export type {
60
+ PeerBotEntry,
61
+ PeerBotsConfig,
62
+ } from "./core/config/peer-bots.ts";
59
63
  export type { ProfilesConfig } from "./core/config/profiles.ts";
60
64
  export type {
61
65
  AgentRoutes,
@@ -134,18 +138,6 @@ export type {
134
138
  } from "./core/conversations/conversation-registry.ts";
135
139
  export type { Migration, MigrationReport } from "./core/db/migrations.ts";
136
140
  export { migrateDatabase } from "./core/db/migrations.ts";
137
- export type {
138
- ToolContribution,
139
- ToolOutput,
140
- ToolSpec,
141
- ToolTurn,
142
- } from "./core/define.ts";
143
- export { definePlugin, defineTool, ToolRefusal } from "./core/define.ts";
144
- export type {
145
- DefinedRoundtable,
146
- DefineOverrides,
147
- } from "./core/define-roundtable.ts";
148
- export { defineRoundtable } from "./core/define-roundtable.ts";
149
141
  export type {
150
142
  AttachmentFailure,
151
143
  ModelImage,
@@ -183,34 +175,37 @@ export type {
183
175
  InterimPosts,
184
176
  InterimTextMode,
185
177
  } from "./core/domain/interim.ts";
178
+ export type { ThinkingLevel, ThinkingSetting } from "./core/domain/models.ts";
186
179
  export type { TurnConversation, TurnRequest } from "./core/domain/ports.ts";
187
180
  export type { HoldRefusal, TurnProgress } from "./core/domain/progress.ts";
188
181
  export type { RoundEnd, RoundProgress } from "./core/domain/round.ts";
182
+ export type {
183
+ AgentTurnScope,
184
+ ChannelKey,
185
+ SessionContext,
186
+ SessionConversation,
187
+ SessionPlan,
188
+ SessionTool,
189
+ SessionToolSnapshot,
190
+ ToolSelection,
191
+ TransientTask,
192
+ TurnSelection,
193
+ } from "./core/domain/sessions.ts";
189
194
  export {
190
195
  type TurnLimit,
191
196
  type TurnTimeout,
192
197
  type TurnTimeoutEnd,
193
198
  TurnTimeoutError,
194
199
  } from "./core/domain/turn-timeout.ts";
195
- export type { DrainOptions } from "./core/drain.ts";
196
- export {
197
- HostStoppingError,
198
- JudgeError,
199
- MigrationError,
200
- NotLinkedError,
201
- PluginError,
202
- ProviderError,
203
- } from "./core/errors.ts";
204
200
  export type {
205
- ClassedHold,
206
- HoldCheck,
207
- HoldContext,
208
- HoldDescription,
209
- HoldRule,
210
- } from "./core/holds.ts";
211
- export type { HostEnvironment, RoundtableOptions } from "./core/host.ts";
212
- export { Roundtable } from "./core/host.ts";
213
- export type { RegistrationReport } from "./core/host-registration.ts";
201
+ DefinedRoundtable,
202
+ DefineOverrides,
203
+ } from "./core/host/define-roundtable.ts";
204
+ export { defineRoundtable } from "./core/host/define-roundtable.ts";
205
+ export type { DrainOptions } from "./core/host/drain.ts";
206
+ export type { HostEnvironment, RoundtableOptions } from "./core/host/host.ts";
207
+ export { Roundtable } from "./core/host/host.ts";
208
+ export type { RegistrationReport } from "./core/host/host-registration.ts";
214
209
  export type {
215
210
  HttpRoute,
216
211
  ListenerAddress,
@@ -250,6 +245,8 @@ export type {
250
245
  ProfileRules,
251
246
  ProfileSource,
252
247
  } from "./core/identity/profiles.ts";
248
+ export type { Speaker, Tier } from "./core/identity/speakers.ts";
249
+ export { THE_SPEAKER, TIERS } from "./core/identity/speakers.ts";
253
250
  export type {
254
251
  Approval,
255
252
  ApprovalDetails,
@@ -279,18 +276,21 @@ export {
279
276
  validateQuestionnaire,
280
277
  } from "./core/interactions/questionnaire.ts";
281
278
  export type { JudgeModel } from "./core/judging/model-judge.ts";
282
- export type { LogEntry, LogFn, Logger } from "./core/log.ts";
283
- export type { ThinkingLevel, ThinkingSetting } from "./core/models.ts";
279
+ export {
280
+ HostStoppingError,
281
+ JudgeError,
282
+ MigrationError,
283
+ NotLinkedError,
284
+ PluginError,
285
+ ProviderError,
286
+ } from "./core/kernel/errors.ts";
287
+ export type { LogEntry, LogFn, Logger } from "./core/kernel/log.ts";
284
288
  export type {
285
289
  AutoApproval,
286
290
  ConversationMode,
287
291
  ConversationModes,
288
292
  ModeChange,
289
293
  } from "./core/modes/conversation-modes.ts";
290
- export {
291
- PERSONAL_TARGET,
292
- type PerPrincipalLimits,
293
- } from "./core/modules/background/personal-target.ts";
294
294
  export type {
295
295
  DelegationJob,
296
296
  DelegationOutcome,
@@ -343,6 +343,24 @@ export type {
343
343
  } from "./core/modules/skills/skill-rules.ts";
344
344
  export { SkillConflictError } from "./core/modules/skills/skill-rules.ts";
345
345
  export type { SkillGroup } from "./core/modules/skills/skill-store.ts";
346
+ export type {
347
+ ToolContribution,
348
+ ToolOutput,
349
+ ToolSpec,
350
+ ToolTurn,
351
+ } from "./core/plugin-api/define.ts";
352
+ export {
353
+ definePlugin,
354
+ defineTool,
355
+ ToolRefusal,
356
+ } from "./core/plugin-api/define.ts";
357
+ export type {
358
+ ClassedHold,
359
+ HoldCheck,
360
+ HoldContext,
361
+ HoldDescription,
362
+ HoldRule,
363
+ } from "./core/plugin-api/holds.ts";
346
364
  export type {
347
365
  ActionEvent,
348
366
  AgentTools,
@@ -364,26 +382,7 @@ export type {
364
382
  TurnEndEvent,
365
383
  TurnEvent,
366
384
  TurnProgressEvent,
367
- } from "./core/plugin.ts";
368
- export type {
369
- DirectChannelProvider,
370
- DirectChannels,
371
- DirectReach,
372
- } from "./core/presence/direct-channels.ts";
373
- export {
374
- attachReplyFile,
375
- REPLY_FILE_LIMITS,
376
- ReplyFileError,
377
- withReplyFiles,
378
- } from "./core/reply-files.ts";
379
- export type {
380
- ConversationTurnInput,
381
- ConversationTurns,
382
- } from "./core/routing/conversation-turns.ts";
383
- export type {
384
- PeerBotEntry,
385
- PeerBotsConfig,
386
- } from "./core/routing/peer-bots.ts";
385
+ } from "./core/plugin-api/plugin.ts";
387
386
  export type {
388
387
  AgentChange,
389
388
  AgentDirectory,
@@ -401,7 +400,7 @@ export type {
401
400
  SpeakerMemory,
402
401
  WorkerSessionRequest,
403
402
  WorkerSessions,
404
- } from "./core/services.ts";
403
+ } from "./core/plugin-api/services.ts";
405
404
  export {
406
405
  AGENTS,
407
406
  BACKGROUND_TURNS,
@@ -420,20 +419,25 @@ export {
420
419
  SKILLS,
421
420
  THREADS,
422
421
  WORKER_SESSIONS,
423
- } from "./core/services.ts";
422
+ } from "./core/plugin-api/services.ts";
424
423
  export type {
425
- AgentTurnScope,
426
- ChannelKey,
427
- SessionContext,
428
- SessionConversation,
429
- SessionPlan,
430
- SessionTool,
431
- SessionToolSnapshot,
432
- ToolSelection,
433
- TransientTask,
434
- TurnSelection,
435
- } from "./core/sessions.ts";
424
+ DirectChannelProvider,
425
+ DirectChannels,
426
+ DirectReach,
427
+ } from "./core/presence/direct-channels.ts";
428
+ export type {
429
+ ConversationTurnInput,
430
+ ConversationTurns,
431
+ } from "./core/routing/conversation-turns.ts";
432
+ export type { ToolTiers, ToolTierTable } from "./core/runtime/tool-tiers.ts";
436
433
  export type { ShellEnv, ShellEnvConfig } from "./core/shared/child-env.ts";
437
- export type { Speaker, Tier } from "./core/speakers.ts";
438
- export { THE_SPEAKER, TIERS } from "./core/speakers.ts";
439
- export type { ToolTiers, ToolTierTable } from "./core/tool-tiers.ts";
434
+ export {
435
+ PERSONAL_TARGET,
436
+ type PerPrincipalLimits,
437
+ } from "./core/shared/personal-target.ts";
438
+ export {
439
+ attachReplyFile,
440
+ REPLY_FILE_LIMITS,
441
+ ReplyFileError,
442
+ withReplyFiles,
443
+ } from "./core/shared/reply-files.ts";
package/src/kit/domain.ts CHANGED
@@ -1,18 +1,18 @@
1
1
  // Plugin helpers, versioned like the main entry; see the plugin guide.
2
2
 
3
3
  export { AgentError } from "../core/domain/errors.ts";
4
- export type {
5
- ChoiceAnswer,
6
- ChoiceQuestion,
7
- ScoreQuestion,
8
- YesNoQuestion,
9
- } from "../core/domain/ports.ts";
10
- export type { OwnerIdentity } from "../core/identity.ts";
11
- export type { ModelRef } from "../core/models.ts";
4
+ export type { ModelRef } from "../core/domain/models.ts";
12
5
  export {
13
6
  AUTO_THINKING,
14
7
  formatModelRef,
15
8
  parseModelRef,
16
9
  THINKING_LEVELS,
17
10
  thinkingLabel,
18
- } from "../core/models.ts";
11
+ } from "../core/domain/models.ts";
12
+ export type {
13
+ ChoiceAnswer,
14
+ ChoiceQuestion,
15
+ ScoreQuestion,
16
+ YesNoQuestion,
17
+ } from "../core/domain/ports.ts";
18
+ export type { OwnerIdentity } from "../core/identity/owner-identity.ts";
package/src/kit/holds.ts CHANGED
@@ -2,4 +2,7 @@
2
2
  // The chain a host links from every plugin's hold rules, to test a rule set as the host runs it,
3
3
  // and how long a hold that looks things up may take.
4
4
 
5
- export { HOLD_DESCRIBE_TIMEOUT_MS, holdChain } from "../core/holds.ts";
5
+ export {
6
+ HOLD_DESCRIBE_TIMEOUT_MS,
7
+ holdChain,
8
+ } from "../core/plugin-api/holds.ts";
@@ -8,7 +8,7 @@ import type {
8
8
  ScoreQuestion,
9
9
  YesNoQuestion,
10
10
  } from "../core/contract/providers.ts";
11
- import { JudgeError } from "../core/errors.ts";
11
+ import { JudgeError } from "../core/kernel/errors.ts";
12
12
 
13
13
  /** The service's name for the yes-or-no question and for its answer's probability. */
14
14
  const WIRE_YES_NO = "noul";
package/src/kit/jev.ts CHANGED
@@ -26,7 +26,7 @@ import {
26
26
  toJevTranscript,
27
27
  } from "pi-jev-compaction";
28
28
  import type { ChannelKey } from "../core/domain/conversation.ts";
29
- import type { Logger } from "../core/log.ts";
29
+ import type { Logger } from "../core/kernel/log.ts";
30
30
 
31
31
  /** The engine Jev's compactions record in their details, as pi-jev-compaction's own extension does. */
32
32
  export const JEV_COMPACTION_ENGINE = PACKAGE_NAME;
@@ -1,7 +1,7 @@
1
1
  // Plugin helpers, versioned like the main entry; see the plugin guide.
2
2
 
3
+ export { zonedStampIn as zonedStamp } from "../core/kernel/time.ts";
3
4
  export { headline } from "../core/presentation/headline.ts";
4
5
  export { quietLinks } from "../core/presentation/quiet-links.ts";
5
6
  export { splitReply } from "../core/presentation/reply-splitter.ts";
6
7
  export { thinkingLine } from "../core/presentation/thinking-line.ts";
7
- export { zonedStampIn as zonedStamp } from "../core/time.ts";
@@ -12,15 +12,15 @@ export type {
12
12
  } from "../core/agents/agent-ports.ts";
13
13
  export type { Backlog, GroupMessage } from "../core/agents/agent-rules.ts";
14
14
  export type { AgentOps } from "../core/agents/agent-tools.ts";
15
- export type { Notifier, OwnerNotifier } from "../core/domain/ports.ts";
16
15
  export type {
17
16
  EffortPolicy,
18
17
  EffortRequest,
19
18
  EffortRule,
20
19
  ThinkingPicker,
21
- } from "../core/models.ts";
20
+ } from "../core/domain/models.ts";
21
+ export type { Notifier, OwnerNotifier } from "../core/domain/ports.ts";
22
+ export type { SpeakerFacts, SpeakerPolicy } from "../core/identity/speakers.ts";
22
23
  export type { DelegationWorker } from "../core/modules/delegation/delegator.ts";
23
24
  export type { AgentChannelLookup } from "../core/modules/schedules/schedules.ts";
24
25
  export type { AssistantLike } from "../core/shared/session-messages.ts";
25
- export type { SpeakerFacts, SpeakerPolicy } from "../core/speakers.ts";
26
26
  export type { ThreadHost } from "../core/threads/dispatch-threads.ts";
package/src/testing.ts CHANGED
@@ -7,6 +7,7 @@ import { agentClaim } from "./core/agents/agent-claim.ts";
7
7
  import { ownerAttachmentDir } from "./core/attachments/attachment-dir.ts";
8
8
  import { attachmentPort } from "./core/attachments/attachment-port.ts";
9
9
  import { DISCORD, type DiscordServices } from "./core/builtin/discord.ts";
10
+ import type { PeerBotsConfig } from "./core/config/peer-bots.ts";
10
11
  import type {
11
12
  ConversationPort,
12
13
  InboundMessage,
@@ -36,16 +37,17 @@ import type {
36
37
  PendingConfirmation,
37
38
  ReplyFile,
38
39
  } from "./core/domain/conversation.ts";
39
- import { NotLinkedError, PluginError } from "./core/errors.ts";
40
- import { EventBus } from "./core/events.ts";
41
- import type { HoldCheck } from "./core/holds.ts";
40
+ import type { ChannelKey, SessionContext } from "./core/domain/sessions.ts";
41
+ import { EventBus } from "./core/host/events.ts";
42
42
  import { type ListenerConfig, listenerAddress } from "./core/http/listeners.ts";
43
43
  import { contactsOf } from "./core/identity/identity-view.ts";
44
- import type { OwnerIdentity } from "./core/identity.ts";
44
+ import type { OwnerIdentity } from "./core/identity/owner-identity.ts";
45
+ import { type Speaker, THE_SPEAKER } from "./core/identity/speakers.ts";
45
46
  import { ConfirmationJudge } from "./core/judging/confirmation-judge.ts";
46
- import { silentLogger } from "./core/log.ts";
47
+ import { NotLinkedError, PluginError } from "./core/kernel/errors.ts";
48
+ import { silentLogger } from "./core/kernel/log.ts";
47
49
  import { ConversationBackgroundTurns } from "./core/modules/background/background-turns.ts";
48
- import { PERSONAL_TARGET } from "./core/modules/background/personal-target.ts";
50
+ import type { HoldCheck } from "./core/plugin-api/holds.ts";
49
51
  import type {
50
52
  Contribution,
51
53
  HostEnv,
@@ -55,7 +57,15 @@ import type {
55
57
  TurnEndEvent,
56
58
  TurnEvent,
57
59
  TurnProgressEvent,
58
- } from "./core/plugin.ts";
60
+ } from "./core/plugin-api/plugin.ts";
61
+ import {
62
+ AGENTS,
63
+ type AgentServer,
64
+ BACKGROUND_TURNS,
65
+ CONVERSATIONS,
66
+ IDENTITY,
67
+ RUNTIME,
68
+ } from "./core/plugin-api/services.ts";
59
69
  import {
60
70
  collectContributions,
61
71
  linkSessions,
@@ -69,29 +79,20 @@ import {
69
79
  conversationTurns,
70
80
  } from "./core/routing/conversation-turns.ts";
71
81
  import { MessageObservers } from "./core/routing/message-observers.ts";
72
- import { PeerBots, type PeerBotsConfig } from "./core/routing/peer-bots.ts";
82
+ import { PeerBots } from "./core/routing/peer-bots.ts";
73
83
  import { surfacePort } from "./core/routing/surface-port.ts";
74
- import {
75
- AGENTS,
76
- type AgentServer,
77
- BACKGROUND_TURNS,
78
- CONVERSATIONS,
79
- IDENTITY,
80
- RUNTIME,
81
- } from "./core/services.ts";
82
- import type { ChannelKey, SessionContext } from "./core/sessions.ts";
83
- import { type Speaker, THE_SPEAKER } from "./core/speakers.ts";
84
+ import { type ToolTierTable, toolTiers } from "./core/runtime/tool-tiers.ts";
85
+ import { PERSONAL_TARGET } from "./core/shared/personal-target.ts";
84
86
  import { fakeDiscordPoster } from "./core/testing/fake-poster.ts";
85
87
  import { mapIdentity } from "./core/testing/map-identity.ts";
86
88
  import {
87
89
  callRegisteredTool,
88
90
  registeredTools,
89
91
  } from "./core/testing/run-tool.ts";
90
- import { type ToolTierTable, toolTiers } from "./core/tool-tiers.ts";
91
92
 
92
93
  // Fixtures for plugin tests.
93
94
 
94
- export { silentLogger } from "./core/log.ts";
95
+ export { silentLogger } from "./core/kernel/log.ts";
95
96
  export type { TestStore } from "./core/testing/database.ts";
96
97
  export {
97
98
  describeDb,
File without changes
File without changes
File without changes
File without changes