@namzu/sdk 0.1.8 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +69 -2
- package/dist/agents/ReactiveAgent.d.ts.map +1 -1
- package/dist/agents/ReactiveAgent.js +5 -2
- package/dist/agents/ReactiveAgent.js.map +1 -1
- package/dist/agents/RouterAgent.d.ts.map +1 -1
- package/dist/agents/RouterAgent.js +3 -0
- package/dist/agents/RouterAgent.js.map +1 -1
- package/dist/agents/SupervisorAgent.d.ts.map +1 -1
- package/dist/agents/SupervisorAgent.js +21 -5
- package/dist/agents/SupervisorAgent.js.map +1 -1
- package/dist/bridge/a2a/index.d.ts +1 -1
- package/dist/bridge/a2a/index.d.ts.map +1 -1
- package/dist/bridge/a2a/index.js +1 -1
- package/dist/bridge/a2a/index.js.map +1 -1
- package/dist/bridge/a2a/mapper.d.ts.map +1 -1
- package/dist/bridge/a2a/mapper.js +6 -0
- package/dist/bridge/a2a/mapper.js.map +1 -1
- package/dist/bridge/a2a/message.d.ts +0 -2
- package/dist/bridge/a2a/message.d.ts.map +1 -1
- package/dist/bridge/a2a/message.js +0 -26
- package/dist/bridge/a2a/message.js.map +1 -1
- package/dist/bridge/a2a/task.d.ts +5 -4
- package/dist/bridge/a2a/task.d.ts.map +1 -1
- package/dist/bridge/a2a/task.js +4 -4
- package/dist/bridge/a2a/task.js.map +1 -1
- package/dist/bridge/sse/mapper.d.ts.map +1 -1
- package/dist/bridge/sse/mapper.js +6 -0
- package/dist/bridge/sse/mapper.js.map +1 -1
- package/dist/constants/a2a/index.d.ts +2 -2
- package/dist/constants/a2a/index.d.ts.map +1 -1
- package/dist/constants/a2a/index.js.map +1 -1
- package/dist/contracts/api.d.ts +14 -27
- package/dist/contracts/api.d.ts.map +1 -1
- package/dist/contracts/ids.d.ts +1 -1
- package/dist/contracts/ids.d.ts.map +1 -1
- package/dist/contracts/index.d.ts +3 -3
- package/dist/contracts/index.d.ts.map +1 -1
- package/dist/contracts/index.js +1 -1
- package/dist/contracts/index.js.map +1 -1
- package/dist/contracts/schemas.d.ts +1 -31
- package/dist/contracts/schemas.d.ts.map +1 -1
- package/dist/contracts/schemas.js +1 -7
- package/dist/contracts/schemas.js.map +1 -1
- package/dist/gateway/local.d.ts.map +1 -1
- package/dist/gateway/local.js +6 -0
- package/dist/gateway/local.js.map +1 -1
- package/dist/index.d.ts +6 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -3
- package/dist/index.js.map +1 -1
- package/dist/manager/agent/__tests__/lifecycle.test.d.ts +2 -0
- package/dist/manager/agent/__tests__/lifecycle.test.d.ts.map +1 -0
- package/dist/manager/agent/__tests__/lifecycle.test.js +316 -0
- package/dist/manager/agent/__tests__/lifecycle.test.js.map +1 -0
- package/dist/manager/agent/lifecycle.d.ts +67 -3
- package/dist/manager/agent/lifecycle.d.ts.map +1 -1
- package/dist/manager/agent/lifecycle.js +375 -14
- package/dist/manager/agent/lifecycle.js.map +1 -1
- package/dist/manager/index.d.ts +2 -0
- package/dist/manager/index.d.ts.map +1 -1
- package/dist/manager/index.js +1 -0
- package/dist/manager/index.js.map +1 -1
- package/dist/manager/run/persistence.d.ts +10 -1
- package/dist/manager/run/persistence.d.ts.map +1 -1
- package/dist/manager/run/persistence.js +20 -0
- package/dist/manager/run/persistence.js.map +1 -1
- package/dist/manager/thread/__tests__/lifecycle.test.d.ts +2 -0
- package/dist/manager/thread/__tests__/lifecycle.test.d.ts.map +1 -0
- package/dist/manager/thread/__tests__/lifecycle.test.js +216 -0
- package/dist/manager/thread/__tests__/lifecycle.test.js.map +1 -0
- package/dist/manager/thread/lifecycle.d.ts +105 -0
- package/dist/manager/thread/lifecycle.d.ts.map +1 -0
- package/dist/manager/thread/lifecycle.js +186 -0
- package/dist/manager/thread/lifecycle.js.map +1 -0
- package/dist/rag/retriever.js +2 -2
- package/dist/run/reporter.d.ts.map +1 -1
- package/dist/run/reporter.js +25 -0
- package/dist/run/reporter.js.map +1 -1
- package/dist/runtime/query/__tests__/context.test.d.ts +2 -0
- package/dist/runtime/query/__tests__/context.test.d.ts.map +1 -0
- package/dist/runtime/query/__tests__/context.test.js +85 -0
- package/dist/runtime/query/__tests__/context.test.js.map +1 -0
- package/dist/runtime/query/context-cache.d.ts +3 -3
- package/dist/runtime/query/context-cache.d.ts.map +1 -1
- package/dist/runtime/query/context-cache.js +2 -2
- package/dist/runtime/query/context-cache.js.map +1 -1
- package/dist/runtime/query/context.d.ts +45 -1
- package/dist/runtime/query/context.d.ts.map +1 -1
- package/dist/runtime/query/context.js +50 -8
- package/dist/runtime/query/context.js.map +1 -1
- package/dist/runtime/query/events.d.ts.map +1 -1
- package/dist/runtime/query/events.js +8 -0
- package/dist/runtime/query/events.js.map +1 -1
- package/dist/runtime/query/index.d.ts +22 -1
- package/dist/runtime/query/index.d.ts.map +1 -1
- package/dist/runtime/query/index.js +11 -0
- package/dist/runtime/query/index.js.map +1 -1
- package/dist/session/__tests__/integration/_fixtures.d.ts +122 -0
- package/dist/session/__tests__/integration/_fixtures.d.ts.map +1 -0
- package/dist/session/__tests__/integration/_fixtures.js +215 -0
- package/dist/session/__tests__/integration/_fixtures.js.map +1 -0
- package/dist/session/__tests__/integration/archive-gate.test.d.ts +15 -0
- package/dist/session/__tests__/integration/archive-gate.test.d.ts.map +1 -0
- package/dist/session/__tests__/integration/archive-gate.test.js +214 -0
- package/dist/session/__tests__/integration/archive-gate.test.js.map +1 -0
- package/dist/session/__tests__/integration/capacity-caps.test.d.ts +13 -0
- package/dist/session/__tests__/integration/capacity-caps.test.d.ts.map +1 -0
- package/dist/session/__tests__/integration/capacity-caps.test.js +123 -0
- package/dist/session/__tests__/integration/capacity-caps.test.js.map +1 -0
- package/dist/session/__tests__/integration/e2e-spawn.test.d.ts +18 -0
- package/dist/session/__tests__/integration/e2e-spawn.test.d.ts.map +1 -0
- package/dist/session/__tests__/integration/e2e-spawn.test.js +238 -0
- package/dist/session/__tests__/integration/e2e-spawn.test.js.map +1 -0
- package/dist/session/__tests__/integration/event-stream-ordering.test.d.ts +15 -0
- package/dist/session/__tests__/integration/event-stream-ordering.test.d.ts.map +1 -0
- package/dist/session/__tests__/integration/event-stream-ordering.test.js +330 -0
- package/dist/session/__tests__/integration/event-stream-ordering.test.js.map +1 -0
- package/dist/session/__tests__/integration/handoff-broadcast-e2e.test.d.ts +12 -0
- package/dist/session/__tests__/integration/handoff-broadcast-e2e.test.d.ts.map +1 -0
- package/dist/session/__tests__/integration/handoff-broadcast-e2e.test.js +182 -0
- package/dist/session/__tests__/integration/handoff-broadcast-e2e.test.js.map +1 -0
- package/dist/session/__tests__/integration/handoff-illegal-transition.test.d.ts +18 -0
- package/dist/session/__tests__/integration/handoff-illegal-transition.test.d.ts.map +1 -0
- package/dist/session/__tests__/integration/handoff-illegal-transition.test.js +156 -0
- package/dist/session/__tests__/integration/handoff-illegal-transition.test.js.map +1 -0
- package/dist/session/__tests__/integration/handoff-single-e2e.test.d.ts +15 -0
- package/dist/session/__tests__/integration/handoff-single-e2e.test.d.ts.map +1 -0
- package/dist/session/__tests__/integration/handoff-single-e2e.test.js +179 -0
- package/dist/session/__tests__/integration/handoff-single-e2e.test.js.map +1 -0
- package/dist/session/__tests__/integration/hierarchy-lifecycle.test.d.ts +12 -0
- package/dist/session/__tests__/integration/hierarchy-lifecycle.test.d.ts.map +1 -0
- package/dist/session/__tests__/integration/hierarchy-lifecycle.test.js +158 -0
- package/dist/session/__tests__/integration/hierarchy-lifecycle.test.js.map +1 -0
- package/dist/session/__tests__/integration/migration-filesystem.test.d.ts +11 -0
- package/dist/session/__tests__/integration/migration-filesystem.test.d.ts.map +1 -0
- package/dist/session/__tests__/integration/migration-filesystem.test.js +140 -0
- package/dist/session/__tests__/integration/migration-filesystem.test.js.map +1 -0
- package/dist/session/__tests__/integration/migration-id-prefix.test.d.ts +13 -0
- package/dist/session/__tests__/integration/migration-id-prefix.test.d.ts.map +1 -0
- package/dist/session/__tests__/integration/migration-id-prefix.test.js +84 -0
- package/dist/session/__tests__/integration/migration-id-prefix.test.js.map +1 -0
- package/dist/session/__tests__/integration/prev-artifact-dag.test.d.ts +14 -0
- package/dist/session/__tests__/integration/prev-artifact-dag.test.d.ts.map +1 -0
- package/dist/session/__tests__/integration/prev-artifact-dag.test.js +242 -0
- package/dist/session/__tests__/integration/prev-artifact-dag.test.js.map +1 -0
- package/dist/session/__tests__/integration/retention-archive.test.d.ts +12 -0
- package/dist/session/__tests__/integration/retention-archive.test.d.ts.map +1 -0
- package/dist/session/__tests__/integration/retention-archive.test.js +187 -0
- package/dist/session/__tests__/integration/retention-archive.test.js.map +1 -0
- package/dist/session/__tests__/integration/spawn-rollback.test.d.ts +26 -0
- package/dist/session/__tests__/integration/spawn-rollback.test.d.ts.map +1 -0
- package/dist/session/__tests__/integration/spawn-rollback.test.js +236 -0
- package/dist/session/__tests__/integration/spawn-rollback.test.js.map +1 -0
- package/dist/session/__tests__/integration/summary-materialization-e2e.test.d.ts +18 -0
- package/dist/session/__tests__/integration/summary-materialization-e2e.test.d.ts.map +1 -0
- package/dist/session/__tests__/integration/summary-materialization-e2e.test.js +201 -0
- package/dist/session/__tests__/integration/summary-materialization-e2e.test.js.map +1 -0
- package/dist/session/__tests__/integration/tenant-isolation.test.d.ts +14 -0
- package/dist/session/__tests__/integration/tenant-isolation.test.d.ts.map +1 -0
- package/dist/session/__tests__/integration/tenant-isolation.test.js +189 -0
- package/dist/session/__tests__/integration/tenant-isolation.test.js.map +1 -0
- package/dist/session/errors.d.ts +139 -0
- package/dist/session/errors.d.ts.map +1 -0
- package/dist/session/errors.js +107 -0
- package/dist/session/errors.js.map +1 -0
- package/dist/session/events/index.d.ts +4 -0
- package/dist/session/events/index.d.ts.map +1 -0
- package/dist/session/events/index.js +8 -0
- package/dist/session/events/index.js.map +1 -0
- package/dist/session/events/schema-version.d.ts +13 -0
- package/dist/session/events/schema-version.d.ts.map +1 -0
- package/dist/session/events/schema-version.js +12 -0
- package/dist/session/events/schema-version.js.map +1 -0
- package/dist/session/events/types.d.ts +64 -0
- package/dist/session/events/types.d.ts.map +1 -0
- package/dist/session/events/types.js +2 -0
- package/dist/session/events/types.js.map +1 -0
- package/dist/session/handoff/__tests__/broadcast.test.d.ts +2 -0
- package/dist/session/handoff/__tests__/broadcast.test.d.ts.map +1 -0
- package/dist/session/handoff/__tests__/broadcast.test.js +261 -0
- package/dist/session/handoff/__tests__/broadcast.test.js.map +1 -0
- package/dist/session/handoff/__tests__/capacity.test.d.ts +2 -0
- package/dist/session/handoff/__tests__/capacity.test.d.ts.map +1 -0
- package/dist/session/handoff/__tests__/capacity.test.js +103 -0
- package/dist/session/handoff/__tests__/capacity.test.js.map +1 -0
- package/dist/session/handoff/__tests__/single.test.d.ts +2 -0
- package/dist/session/handoff/__tests__/single.test.d.ts.map +1 -0
- package/dist/session/handoff/__tests__/single.test.js +239 -0
- package/dist/session/handoff/__tests__/single.test.js.map +1 -0
- package/dist/session/handoff/assignment.d.ts +71 -0
- package/dist/session/handoff/assignment.d.ts.map +1 -0
- package/dist/session/handoff/assignment.js +11 -0
- package/dist/session/handoff/assignment.js.map +1 -0
- package/dist/session/handoff/broadcast.d.ts +54 -0
- package/dist/session/handoff/broadcast.d.ts.map +1 -0
- package/dist/session/handoff/broadcast.js +311 -0
- package/dist/session/handoff/broadcast.js.map +1 -0
- package/dist/session/handoff/capacity.d.ts +66 -0
- package/dist/session/handoff/capacity.d.ts.map +1 -0
- package/dist/session/handoff/capacity.js +60 -0
- package/dist/session/handoff/capacity.js.map +1 -0
- package/dist/session/handoff/events.d.ts +66 -0
- package/dist/session/handoff/events.d.ts.map +1 -0
- package/dist/session/handoff/events.js +13 -0
- package/dist/session/handoff/events.js.map +1 -0
- package/dist/session/handoff/index.d.ts +12 -0
- package/dist/session/handoff/index.d.ts.map +1 -0
- package/dist/session/handoff/index.js +9 -0
- package/dist/session/handoff/index.js.map +1 -0
- package/dist/session/handoff/single.d.ts +69 -0
- package/dist/session/handoff/single.d.ts.map +1 -0
- package/dist/session/handoff/single.js +229 -0
- package/dist/session/handoff/single.js.map +1 -0
- package/dist/session/handoff/version.d.ts +52 -0
- package/dist/session/handoff/version.d.ts.map +1 -0
- package/dist/session/handoff/version.js +36 -0
- package/dist/session/handoff/version.js.map +1 -0
- package/dist/session/hierarchy/__tests__/session.test.d.ts +2 -0
- package/dist/session/hierarchy/__tests__/session.test.d.ts.map +1 -0
- package/dist/session/hierarchy/__tests__/session.test.js +69 -0
- package/dist/session/hierarchy/__tests__/session.test.js.map +1 -0
- package/dist/session/hierarchy/actor.d.ts +26 -0
- package/dist/session/hierarchy/actor.d.ts.map +1 -0
- package/dist/session/hierarchy/actor.js +2 -0
- package/dist/session/hierarchy/actor.js.map +1 -0
- package/dist/session/hierarchy/index.d.ts +9 -0
- package/dist/session/hierarchy/index.d.ts.map +1 -0
- package/dist/session/hierarchy/index.js +4 -0
- package/dist/session/hierarchy/index.js.map +1 -0
- package/dist/session/hierarchy/lineage.d.ts +15 -0
- package/dist/session/hierarchy/lineage.d.ts.map +1 -0
- package/dist/session/hierarchy/lineage.js +2 -0
- package/dist/session/hierarchy/lineage.js.map +1 -0
- package/dist/session/hierarchy/project.d.ts +40 -0
- package/dist/session/hierarchy/project.d.ts.map +1 -0
- package/dist/session/hierarchy/project.js +2 -0
- package/dist/session/hierarchy/project.js.map +1 -0
- package/dist/session/hierarchy/session.d.ts +71 -0
- package/dist/session/hierarchy/session.d.ts.map +1 -0
- package/dist/session/hierarchy/session.js +51 -0
- package/dist/session/hierarchy/session.js.map +1 -0
- package/dist/session/hierarchy/sub-session.d.ts +76 -0
- package/dist/session/hierarchy/sub-session.d.ts.map +1 -0
- package/dist/session/hierarchy/sub-session.js +2 -0
- package/dist/session/hierarchy/sub-session.js.map +1 -0
- package/dist/session/hierarchy/tenant.d.ts +13 -0
- package/dist/session/hierarchy/tenant.d.ts.map +1 -0
- package/dist/session/hierarchy/tenant.js +2 -0
- package/dist/session/hierarchy/tenant.js.map +1 -0
- package/dist/session/hierarchy/thread.d.ts +54 -0
- package/dist/session/hierarchy/thread.d.ts.map +1 -0
- package/dist/session/hierarchy/thread.js +2 -0
- package/dist/session/hierarchy/thread.js.map +1 -0
- package/dist/session/index.d.ts +10 -0
- package/dist/session/index.d.ts.map +1 -0
- package/dist/session/index.js +15 -0
- package/dist/session/index.js.map +1 -0
- package/dist/session/intervention/__tests__/prev-artifact.test.d.ts +2 -0
- package/dist/session/intervention/__tests__/prev-artifact.test.d.ts.map +1 -0
- package/dist/session/intervention/__tests__/prev-artifact.test.js +179 -0
- package/dist/session/intervention/__tests__/prev-artifact.test.js.map +1 -0
- package/dist/session/intervention/index.d.ts +3 -0
- package/dist/session/intervention/index.d.ts.map +1 -0
- package/dist/session/intervention/index.js +8 -0
- package/dist/session/intervention/index.js.map +1 -0
- package/dist/session/intervention/prev-artifact.d.ts +103 -0
- package/dist/session/intervention/prev-artifact.d.ts.map +1 -0
- package/dist/session/intervention/prev-artifact.js +112 -0
- package/dist/session/intervention/prev-artifact.js.map +1 -0
- package/dist/session/migration/__tests__/filesystem.test.d.ts +2 -0
- package/dist/session/migration/__tests__/filesystem.test.d.ts.map +1 -0
- package/dist/session/migration/__tests__/filesystem.test.js +188 -0
- package/dist/session/migration/__tests__/filesystem.test.js.map +1 -0
- package/dist/session/migration/__tests__/id-prefix.test.d.ts +2 -0
- package/dist/session/migration/__tests__/id-prefix.test.d.ts.map +1 -0
- package/dist/session/migration/__tests__/id-prefix.test.js +83 -0
- package/dist/session/migration/__tests__/id-prefix.test.js.map +1 -0
- package/dist/session/migration/__tests__/marker.test.d.ts +2 -0
- package/dist/session/migration/__tests__/marker.test.d.ts.map +1 -0
- package/dist/session/migration/__tests__/marker.test.js +75 -0
- package/dist/session/migration/__tests__/marker.test.js.map +1 -0
- package/dist/session/migration/errors.d.ts +26 -0
- package/dist/session/migration/errors.d.ts.map +1 -0
- package/dist/session/migration/errors.js +22 -0
- package/dist/session/migration/errors.js.map +1 -0
- package/dist/session/migration/filesystem.d.ts +94 -0
- package/dist/session/migration/filesystem.d.ts.map +1 -0
- package/dist/session/migration/filesystem.js +319 -0
- package/dist/session/migration/filesystem.js.map +1 -0
- package/dist/session/migration/id-prefix.d.ts +93 -0
- package/dist/session/migration/id-prefix.d.ts.map +1 -0
- package/dist/session/migration/id-prefix.js +111 -0
- package/dist/session/migration/id-prefix.js.map +1 -0
- package/dist/session/migration/index.d.ts +8 -0
- package/dist/session/migration/index.d.ts.map +1 -0
- package/dist/session/migration/index.js +8 -0
- package/dist/session/migration/index.js.map +1 -0
- package/dist/session/migration/marker.d.ts +57 -0
- package/dist/session/migration/marker.d.ts.map +1 -0
- package/dist/session/migration/marker.js +111 -0
- package/dist/session/migration/marker.js.map +1 -0
- package/dist/session/retention/__tests__/archive.test.d.ts +2 -0
- package/dist/session/retention/__tests__/archive.test.d.ts.map +1 -0
- package/dist/session/retention/__tests__/archive.test.js +253 -0
- package/dist/session/retention/__tests__/archive.test.js.map +1 -0
- package/dist/session/retention/__tests__/disk-backend.test.d.ts +2 -0
- package/dist/session/retention/__tests__/disk-backend.test.d.ts.map +1 -0
- package/dist/session/retention/__tests__/disk-backend.test.js +154 -0
- package/dist/session/retention/__tests__/disk-backend.test.js.map +1 -0
- package/dist/session/retention/archive-backend-ref.d.ts +18 -0
- package/dist/session/retention/archive-backend-ref.d.ts.map +1 -0
- package/dist/session/retention/archive-backend-ref.js +2 -0
- package/dist/session/retention/archive-backend-ref.js.map +1 -0
- package/dist/session/retention/archive.d.ts +130 -0
- package/dist/session/retention/archive.d.ts.map +1 -0
- package/dist/session/retention/archive.js +203 -0
- package/dist/session/retention/archive.js.map +1 -0
- package/dist/session/retention/backend.d.ts +101 -0
- package/dist/session/retention/backend.d.ts.map +1 -0
- package/dist/session/retention/backend.js +15 -0
- package/dist/session/retention/backend.js.map +1 -0
- package/dist/session/retention/disk-backend.d.ts +59 -0
- package/dist/session/retention/disk-backend.d.ts.map +1 -0
- package/dist/session/retention/disk-backend.js +236 -0
- package/dist/session/retention/disk-backend.js.map +1 -0
- package/dist/session/retention/index.d.ts +9 -0
- package/dist/session/retention/index.d.ts.map +1 -0
- package/dist/session/retention/index.js +6 -0
- package/dist/session/retention/index.js.map +1 -0
- package/dist/session/retention/policy.d.ts +49 -0
- package/dist/session/retention/policy.d.ts.map +1 -0
- package/dist/session/retention/policy.js +21 -0
- package/dist/session/retention/policy.js.map +1 -0
- package/dist/session/summary/__tests__/materialize.test.d.ts +2 -0
- package/dist/session/summary/__tests__/materialize.test.d.ts.map +1 -0
- package/dist/session/summary/__tests__/materialize.test.js +270 -0
- package/dist/session/summary/__tests__/materialize.test.js.map +1 -0
- package/dist/session/summary/deliverable.d.ts +74 -0
- package/dist/session/summary/deliverable.d.ts.map +1 -0
- package/dist/session/summary/deliverable.js +20 -0
- package/dist/session/summary/deliverable.js.map +1 -0
- package/dist/session/summary/index.d.ts +6 -0
- package/dist/session/summary/index.d.ts.map +1 -0
- package/dist/session/summary/index.js +9 -0
- package/dist/session/summary/index.js.map +1 -0
- package/dist/session/summary/materialize.d.ts +82 -0
- package/dist/session/summary/materialize.d.ts.map +1 -0
- package/dist/session/summary/materialize.js +117 -0
- package/dist/session/summary/materialize.js.map +1 -0
- package/dist/session/summary/ref.d.ts +91 -0
- package/dist/session/summary/ref.d.ts.map +1 -0
- package/dist/session/summary/ref.js +51 -0
- package/dist/session/summary/ref.js.map +1 -0
- package/dist/session/workspace/__tests__/git-worktree.test.d.ts +2 -0
- package/dist/session/workspace/__tests__/git-worktree.test.d.ts.map +1 -0
- package/dist/session/workspace/__tests__/git-worktree.test.js +244 -0
- package/dist/session/workspace/__tests__/git-worktree.test.js.map +1 -0
- package/dist/session/workspace/__tests__/path-builder.test.d.ts +2 -0
- package/dist/session/workspace/__tests__/path-builder.test.d.ts.map +1 -0
- package/dist/session/workspace/__tests__/path-builder.test.js +37 -0
- package/dist/session/workspace/__tests__/path-builder.test.js.map +1 -0
- package/dist/session/workspace/driver.d.ts +55 -0
- package/dist/session/workspace/driver.d.ts.map +1 -0
- package/dist/session/workspace/driver.js +12 -0
- package/dist/session/workspace/driver.js.map +1 -0
- package/dist/session/workspace/git-worktree.d.ts +65 -0
- package/dist/session/workspace/git-worktree.d.ts.map +1 -0
- package/dist/session/workspace/git-worktree.js +156 -0
- package/dist/session/workspace/git-worktree.js.map +1 -0
- package/dist/session/workspace/index.d.ts +8 -0
- package/dist/session/workspace/index.d.ts.map +1 -0
- package/dist/session/workspace/index.js +7 -0
- package/dist/session/workspace/index.js.map +1 -0
- package/dist/session/workspace/path-builder.d.ts +50 -0
- package/dist/session/workspace/path-builder.d.ts.map +1 -0
- package/dist/session/workspace/path-builder.js +50 -0
- package/dist/session/workspace/path-builder.js.map +1 -0
- package/dist/session/workspace/ref.d.ts +46 -0
- package/dist/session/workspace/ref.d.ts.map +1 -0
- package/dist/session/workspace/ref.js +11 -0
- package/dist/session/workspace/ref.js.map +1 -0
- package/dist/session/workspace/registry.d.ts +26 -0
- package/dist/session/workspace/registry.d.ts.map +1 -0
- package/dist/session/workspace/registry.js +35 -0
- package/dist/session/workspace/registry.js.map +1 -0
- package/dist/store/index.d.ts +0 -2
- package/dist/store/index.d.ts.map +1 -1
- package/dist/store/index.js +0 -1
- package/dist/store/index.js.map +1 -1
- package/dist/store/session/__tests__/disk.test.d.ts +2 -0
- package/dist/store/session/__tests__/disk.test.d.ts.map +1 -0
- package/dist/store/session/__tests__/disk.test.js +267 -0
- package/dist/store/session/__tests__/disk.test.js.map +1 -0
- package/dist/store/session/__tests__/memory.test.d.ts +2 -0
- package/dist/store/session/__tests__/memory.test.d.ts.map +1 -0
- package/dist/store/session/__tests__/memory.test.js +258 -0
- package/dist/store/session/__tests__/memory.test.js.map +1 -0
- package/dist/store/session/disk.d.ts +86 -0
- package/dist/store/session/disk.d.ts.map +1 -0
- package/dist/store/session/disk.js +818 -0
- package/dist/store/session/disk.js.map +1 -0
- package/dist/store/session/index.d.ts +7 -0
- package/dist/store/session/index.d.ts.map +1 -0
- package/dist/store/session/index.js +10 -0
- package/dist/store/session/index.js.map +1 -0
- package/dist/store/session/linkage.d.ts +38 -0
- package/dist/store/session/linkage.d.ts.map +1 -0
- package/dist/store/session/linkage.js +64 -0
- package/dist/store/session/linkage.js.map +1 -0
- package/dist/store/session/memory.d.ts +49 -0
- package/dist/store/session/memory.d.ts.map +1 -0
- package/dist/store/session/memory.js +335 -0
- package/dist/store/session/memory.js.map +1 -0
- package/dist/store/session/messages.d.ts +20 -0
- package/dist/store/session/messages.d.ts.map +1 -0
- package/dist/store/session/messages.js +12 -0
- package/dist/store/session/messages.js.map +1 -0
- package/dist/store/thread/disk.d.ts +41 -0
- package/dist/store/thread/disk.d.ts.map +1 -0
- package/dist/store/thread/disk.js +229 -0
- package/dist/store/thread/disk.js.map +1 -0
- package/dist/store/thread/index.d.ts +4 -0
- package/dist/store/thread/index.d.ts.map +1 -0
- package/dist/store/thread/index.js +6 -0
- package/dist/store/thread/index.js.map +1 -0
- package/dist/store/thread/memory.d.ts +23 -0
- package/dist/store/thread/memory.d.ts.map +1 -0
- package/dist/store/thread/memory.js +90 -0
- package/dist/store/thread/memory.js.map +1 -0
- package/dist/tools/builtins/__tests__/structuredOutput.example.d.ts +1 -1
- package/dist/types/agent/base.d.ts +24 -1
- package/dist/types/agent/base.d.ts.map +1 -1
- package/dist/types/agent/factory.d.ts +8 -2
- package/dist/types/agent/factory.d.ts.map +1 -1
- package/dist/types/agent/task.d.ts +57 -2
- package/dist/types/agent/task.d.ts.map +1 -1
- package/dist/types/agent/task.js.map +1 -1
- package/dist/types/ids/index.d.ts +22 -3
- package/dist/types/ids/index.d.ts.map +1 -1
- package/dist/types/ids/index.js +8 -1
- package/dist/types/ids/index.js.map +1 -1
- package/dist/types/invocation/__tests__/state.test.js +36 -29
- package/dist/types/invocation/__tests__/state.test.js.map +1 -1
- package/dist/types/invocation/index.d.ts +20 -4
- package/dist/types/invocation/index.d.ts.map +1 -1
- package/dist/types/invocation/index.js +10 -7
- package/dist/types/invocation/index.js.map +1 -1
- package/dist/types/rag/retrieval.d.ts +4 -3
- package/dist/types/rag/retrieval.d.ts.map +1 -1
- package/dist/types/run/config.d.ts +12 -1
- package/dist/types/run/config.d.ts.map +1 -1
- package/dist/types/run/events.d.ts +26 -1
- package/dist/types/run/events.d.ts.map +1 -1
- package/dist/types/run/index.d.ts.map +1 -1
- package/dist/types/run/index.js +8 -0
- package/dist/types/run/index.js.map +1 -1
- package/dist/types/run/metadata.d.ts +12 -2
- package/dist/types/run/metadata.d.ts.map +1 -1
- package/dist/types/run/status.d.ts +26 -0
- package/dist/types/run/status.d.ts.map +1 -0
- package/dist/types/run/status.js +2 -0
- package/dist/types/run/status.js.map +1 -0
- package/dist/types/session/ids.d.ts +9 -0
- package/dist/types/session/ids.d.ts.map +1 -0
- package/dist/types/session/ids.js +9 -0
- package/dist/types/session/ids.js.map +1 -0
- package/dist/types/session/index.d.ts +3 -0
- package/dist/types/session/index.d.ts.map +1 -0
- package/dist/types/session/index.js +5 -0
- package/dist/types/session/index.js.map +1 -0
- package/dist/types/session/store.d.ts +210 -0
- package/dist/types/session/store.d.ts.map +1 -0
- package/dist/types/session/store.js +9 -0
- package/dist/types/session/store.js.map +1 -0
- package/dist/types/thread/index.d.ts +2 -0
- package/dist/types/thread/index.d.ts.map +1 -0
- package/dist/types/thread/index.js +5 -0
- package/dist/types/thread/index.js.map +1 -0
- package/dist/types/thread/store.d.ts +86 -0
- package/dist/types/thread/store.d.ts.map +1 -0
- package/dist/types/thread/store.js +22 -0
- package/dist/types/thread/store.js.map +1 -0
- package/dist/utils/id.d.ts +8 -2
- package/dist/utils/id.d.ts.map +1 -1
- package/dist/utils/id.js +22 -4
- package/dist/utils/id.js.map +1 -1
- package/package.json +6 -11
- package/src/agents/ReactiveAgent.ts +7 -2
- package/src/agents/RouterAgent.ts +5 -0
- package/src/agents/SupervisorAgent.ts +29 -6
- package/src/bridge/a2a/index.ts +0 -1
- package/src/bridge/a2a/mapper.ts +7 -0
- package/src/bridge/a2a/message.ts +0 -32
- package/src/bridge/a2a/task.ts +9 -8
- package/src/bridge/sse/mapper.ts +8 -1
- package/src/constants/a2a/index.ts +2 -2
- package/src/contracts/api.ts +14 -30
- package/src/contracts/ids.ts +1 -1
- package/src/contracts/index.ts +3 -7
- package/src/contracts/schemas.ts +1 -8
- package/src/gateway/local.ts +6 -0
- package/src/index.ts +14 -4
- package/src/manager/agent/__tests__/lifecycle.test.ts +473 -0
- package/src/manager/agent/lifecycle.ts +515 -21
- package/src/manager/index.ts +3 -0
- package/src/manager/run/persistence.ts +26 -1
- package/src/manager/thread/__tests__/lifecycle.test.ts +286 -0
- package/src/manager/thread/lifecycle.ts +217 -0
- package/src/rag/retriever.ts +2 -2
- package/src/run/reporter.ts +28 -0
- package/src/runtime/query/__tests__/context.test.ts +102 -0
- package/src/runtime/query/context-cache.ts +4 -4
- package/src/runtime/query/context.ts +98 -9
- package/src/runtime/query/events.ts +8 -0
- package/src/runtime/query/index.ts +38 -1
- package/src/session/__tests__/integration/_fixtures.ts +310 -0
- package/src/session/__tests__/integration/archive-gate.test.ts +288 -0
- package/src/session/__tests__/integration/capacity-caps.test.ts +171 -0
- package/src/session/__tests__/integration/e2e-spawn.test.ts +296 -0
- package/src/session/__tests__/integration/event-stream-ordering.test.ts +410 -0
- package/src/session/__tests__/integration/handoff-broadcast-e2e.test.ts +271 -0
- package/src/session/__tests__/integration/handoff-illegal-transition.test.ts +214 -0
- package/src/session/__tests__/integration/handoff-single-e2e.test.ts +251 -0
- package/src/session/__tests__/integration/hierarchy-lifecycle.test.ts +240 -0
- package/src/session/__tests__/integration/migration-filesystem.test.ts +209 -0
- package/src/session/__tests__/integration/migration-id-prefix.test.ts +101 -0
- package/src/session/__tests__/integration/prev-artifact-dag.test.ts +325 -0
- package/src/session/__tests__/integration/retention-archive.test.ts +233 -0
- package/src/session/__tests__/integration/spawn-rollback.test.ts +313 -0
- package/src/session/__tests__/integration/summary-materialization-e2e.test.ts +239 -0
- package/src/session/__tests__/integration/tenant-isolation.test.ts +292 -0
- package/src/session/errors.ts +159 -0
- package/src/session/events/index.ts +16 -0
- package/src/session/events/schema-version.ts +13 -0
- package/src/session/events/types.ts +71 -0
- package/src/session/handoff/__tests__/broadcast.test.ts +378 -0
- package/src/session/handoff/__tests__/capacity.test.ts +129 -0
- package/src/session/handoff/__tests__/single.test.ts +333 -0
- package/src/session/handoff/assignment.ts +74 -0
- package/src/session/handoff/broadcast.ts +406 -0
- package/src/session/handoff/capacity.ts +121 -0
- package/src/session/handoff/events.ts +72 -0
- package/src/session/handoff/index.ts +29 -0
- package/src/session/handoff/single.ts +310 -0
- package/src/session/handoff/version.ts +59 -0
- package/src/session/hierarchy/__tests__/session.test.ts +100 -0
- package/src/session/hierarchy/actor.ts +17 -0
- package/src/session/hierarchy/index.ts +18 -0
- package/src/session/hierarchy/lineage.ts +15 -0
- package/src/session/hierarchy/project.ts +41 -0
- package/src/session/hierarchy/session.ts +109 -0
- package/src/session/hierarchy/sub-session.ts +92 -0
- package/src/session/hierarchy/tenant.ts +13 -0
- package/src/session/hierarchy/thread.ts +55 -0
- package/src/session/index.ts +15 -0
- package/src/session/intervention/__tests__/prev-artifact.test.ts +234 -0
- package/src/session/intervention/index.ts +16 -0
- package/src/session/intervention/prev-artifact.ts +180 -0
- package/src/session/migration/__tests__/filesystem.test.ts +263 -0
- package/src/session/migration/__tests__/id-prefix.test.ts +101 -0
- package/src/session/migration/__tests__/marker.test.ts +84 -0
- package/src/session/migration/errors.ts +23 -0
- package/src/session/migration/filesystem.ts +401 -0
- package/src/session/migration/id-prefix.ts +141 -0
- package/src/session/migration/index.ts +38 -0
- package/src/session/migration/marker.ts +131 -0
- package/src/session/retention/__tests__/archive.test.ts +318 -0
- package/src/session/retention/__tests__/disk-backend.test.ts +180 -0
- package/src/session/retention/archive-backend-ref.ts +17 -0
- package/src/session/retention/archive.ts +281 -0
- package/src/session/retention/backend.ts +107 -0
- package/src/session/retention/disk-backend.ts +304 -0
- package/src/session/retention/index.ts +16 -0
- package/src/session/retention/policy.ts +53 -0
- package/src/session/summary/__tests__/materialize.test.ts +343 -0
- package/src/session/summary/deliverable.ts +84 -0
- package/src/session/summary/index.ts +31 -0
- package/src/session/summary/materialize.ts +169 -0
- package/src/session/summary/ref.ts +104 -0
- package/src/session/workspace/__tests__/git-worktree.test.ts +258 -0
- package/src/session/workspace/__tests__/path-builder.test.ts +51 -0
- package/src/session/workspace/driver.ts +60 -0
- package/src/session/workspace/git-worktree.ts +209 -0
- package/src/session/workspace/index.ts +25 -0
- package/src/session/workspace/path-builder.ts +71 -0
- package/src/session/workspace/ref.ts +50 -0
- package/src/session/workspace/registry.ts +42 -0
- package/src/store/index.ts +0 -3
- package/src/store/session/__tests__/disk.test.ts +397 -0
- package/src/store/session/__tests__/memory.test.ts +402 -0
- package/src/store/session/disk.ts +976 -0
- package/src/store/session/index.ts +13 -0
- package/src/store/session/linkage.ts +80 -0
- package/src/store/session/memory.ts +412 -0
- package/src/store/session/messages.ts +21 -0
- package/src/store/thread/disk.ts +261 -0
- package/src/store/thread/index.ts +7 -0
- package/src/store/thread/memory.ts +104 -0
- package/src/types/agent/base.ts +27 -1
- package/src/types/agent/factory.ts +8 -3
- package/src/types/agent/task.ts +66 -2
- package/src/types/ids/index.ts +34 -3
- package/src/types/invocation/__tests__/state.test.ts +37 -29
- package/src/types/invocation/index.ts +26 -10
- package/src/types/rag/retrieval.ts +4 -3
- package/src/types/run/config.ts +13 -1
- package/src/types/run/events.ts +36 -1
- package/src/types/run/index.ts +8 -0
- package/src/types/run/metadata.ts +12 -2
- package/src/types/run/status.ts +33 -0
- package/src/types/session/ids.ts +23 -0
- package/src/types/session/index.ts +27 -0
- package/src/types/session/store.ts +252 -0
- package/src/types/thread/index.ts +5 -0
- package/src/types/thread/store.ts +92 -0
- package/src/utils/id.ts +34 -4
- package/dist/store/conversation/memory.d.ts +0 -21
- package/dist/store/conversation/memory.d.ts.map +0 -1
- package/dist/store/conversation/memory.js +0 -86
- package/dist/store/conversation/memory.js.map +0 -1
- package/dist/types/conversation/index.d.ts +0 -7
- package/dist/types/conversation/index.d.ts.map +0 -1
- package/dist/types/conversation/index.js +0 -2
- package/dist/types/conversation/index.js.map +0 -1
- package/src/store/conversation/memory.ts +0 -121
- package/src/types/conversation/index.ts +0 -8
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SessionStore — canonical persistence contract for the session hierarchy.
|
|
3
|
+
*
|
|
4
|
+
* Every accessor takes explicit {@link TenantId} (Convention #17). Cross-tenant
|
|
5
|
+
* access rejects with `TenantIsolationError`. Convention #0: no speculative
|
|
6
|
+
* API — extensions land alongside their consumers.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
import type { ActorRef } from '../../session/hierarchy/actor.js'
|
|
10
|
+
import type { Project } from '../../session/hierarchy/project.js'
|
|
11
|
+
import type { Session } from '../../session/hierarchy/session.js'
|
|
12
|
+
import type {
|
|
13
|
+
CompletionMode,
|
|
14
|
+
FailureMode,
|
|
15
|
+
SubSession,
|
|
16
|
+
SubSessionKind,
|
|
17
|
+
} from '../../session/hierarchy/sub-session.js'
|
|
18
|
+
import type { SessionSummaryRef } from '../../session/summary/ref.js'
|
|
19
|
+
import type { SessionMessage } from '../../store/session/messages.js'
|
|
20
|
+
import type { MessageId, SessionId, TenantId } from '../ids/index.js'
|
|
21
|
+
import type { Message } from '../message/index.js'
|
|
22
|
+
import type { ProjectId, SubSessionId, SummaryId, ThreadId } from '../session/ids.js'
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Params for {@link SessionStore.createSession}. The store owns id generation,
|
|
26
|
+
* `ownerVersion` initialization, and timestamps.
|
|
27
|
+
*
|
|
28
|
+
* Both `threadId` and `projectId` are required. `projectId` must equal the
|
|
29
|
+
* `projectId` of the thread identified by `threadId`; the store does NOT
|
|
30
|
+
* perform that cross-store consistency check (it has no ThreadStore handle
|
|
31
|
+
* by design — see the store-boundary rationale in {@link ThreadStore}). The
|
|
32
|
+
* caller is the authority; typically spawn and handoff paths copy both from
|
|
33
|
+
* a freshly-loaded `Thread` record or from their own context which already
|
|
34
|
+
* tracks both.
|
|
35
|
+
*/
|
|
36
|
+
export interface CreateSessionParams {
|
|
37
|
+
threadId: ThreadId
|
|
38
|
+
projectId: ProjectId
|
|
39
|
+
/**
|
|
40
|
+
* Initial owner of the session. May be `null` for bootstrap scenarios where
|
|
41
|
+
* the first Run attaches an actor; the store rejects mutations against
|
|
42
|
+
* actor-less sessions from downstream consumers.
|
|
43
|
+
*/
|
|
44
|
+
currentActor: ActorRef | null
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Params for {@link SessionStore.createSubSession}. `workspaceId` is optional
|
|
49
|
+
* because Phase 3 does not yet wire workspace creation into spawn — Phase 6
|
|
50
|
+
* makes the two atomic. `summaryRef` is populated by the materializer in
|
|
51
|
+
* Phase 5, never by callers of this API.
|
|
52
|
+
*/
|
|
53
|
+
export interface CreateSubSessionParams {
|
|
54
|
+
parentSessionId: SessionId
|
|
55
|
+
childSessionId: SessionId
|
|
56
|
+
kind: SubSessionKind
|
|
57
|
+
spawnedBy: ActorRef
|
|
58
|
+
failureMode?: FailureMode
|
|
59
|
+
completionMode?: CompletionMode
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Minimal Project surface needed by the store in Phase 3. The full Project
|
|
64
|
+
* entity lives in `session/hierarchy/project.ts`; a dedicated `ProjectStore`
|
|
65
|
+
* is out of scope for this phase (session-hierarchy.md §11 defers the project
|
|
66
|
+
* store to a later phase).
|
|
67
|
+
*/
|
|
68
|
+
export interface CreateProjectParams {
|
|
69
|
+
tenantId: TenantId
|
|
70
|
+
name: string
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* Return shape for {@link SessionStore.drill}. See session-hierarchy.md §14.3.
|
|
75
|
+
* The fields are final — consumers may rely on exhaustiveness (Convention #6).
|
|
76
|
+
*
|
|
77
|
+
* `ancestry` is root-to-self. `children` lists direct sub-sessions only
|
|
78
|
+
* (recursive drill-down is the consumer's responsibility).
|
|
79
|
+
*/
|
|
80
|
+
export interface SessionView {
|
|
81
|
+
session: Session
|
|
82
|
+
children: readonly SubSession[]
|
|
83
|
+
ancestry: readonly SessionId[]
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* Canonical persistence contract. Every accessor takes explicit `tenantId`.
|
|
88
|
+
* Cross-tenant reads/writes must reject with `TenantIsolationError`
|
|
89
|
+
* (see `session/errors.ts`).
|
|
90
|
+
*
|
|
91
|
+
* Read accessors return `null` when the resource does not exist for the
|
|
92
|
+
* supplied tenant — this is the deny-by-default surface (Convention #5):
|
|
93
|
+
* callers never get a fallback and must branch on missing explicitly.
|
|
94
|
+
*/
|
|
95
|
+
export interface SessionStore {
|
|
96
|
+
// Project CRUD ------------------------------------------------------------
|
|
97
|
+
|
|
98
|
+
createProject(params: CreateProjectParams, tenantId: TenantId): Promise<Project>
|
|
99
|
+
|
|
100
|
+
getProject(projectId: ProjectId, tenantId: TenantId): Promise<Project | null>
|
|
101
|
+
|
|
102
|
+
// Session CRUD ------------------------------------------------------------
|
|
103
|
+
|
|
104
|
+
createSession(params: CreateSessionParams, tenantId: TenantId): Promise<Session>
|
|
105
|
+
|
|
106
|
+
getSession(sessionId: SessionId, tenantId: TenantId): Promise<Session | null>
|
|
107
|
+
|
|
108
|
+
updateSession(session: Session, tenantId: TenantId): Promise<void>
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* List every Session that belongs to the given Thread for the caller's
|
|
112
|
+
* tenant, ordered by `createdAt` ascending. Returns an empty array when
|
|
113
|
+
* none exist.
|
|
114
|
+
*
|
|
115
|
+
* Thread-scoped queries rely on `session.threadId` (set at creation, never
|
|
116
|
+
* rewritten). Cross-tenant sessions that happen to share the supplied
|
|
117
|
+
* `threadId` are silently skipped — the listing is tenant-scoped, not an
|
|
118
|
+
* isolation violation (the caller did not request a specific record).
|
|
119
|
+
*
|
|
120
|
+
* Exists to back ThreadManager's archival + delete preconditions
|
|
121
|
+
* ({@link import('../../manager/thread/lifecycle.js').ThreadManager.archive}
|
|
122
|
+
* rejects when any session is in a non-terminal state; `delete` rejects
|
|
123
|
+
* while any session still references the thread). Keeping this primitive
|
|
124
|
+
* on {@link SessionStore} preserves the store-ownership boundary —
|
|
125
|
+
* ThreadStore stays unaware of session layout (Convention #0).
|
|
126
|
+
*/
|
|
127
|
+
listSessions(threadId: ThreadId, tenantId: TenantId): Promise<readonly Session[]>
|
|
128
|
+
|
|
129
|
+
/**
|
|
130
|
+
* Hard-delete a session. Idempotent — absent sessions succeed as a no-op.
|
|
131
|
+
* Rejects with `TenantIsolationError` on cross-tenant access.
|
|
132
|
+
*
|
|
133
|
+
* Closes the Phase 4 Known Delta (broadcast rollback previously had to
|
|
134
|
+
* flip status to `'archived'` as a stopgap). Used by:
|
|
135
|
+
* - Broadcast rollback (compensating cleanup — pattern doc §6.2)
|
|
136
|
+
* - Archival tombstone consolidation when a caller prefers deletion
|
|
137
|
+
* over the in-slot tombstone (uncommon — default is in-slot).
|
|
138
|
+
*
|
|
139
|
+
* Policy: rejects when the session still has sub-sessions attached —
|
|
140
|
+
* callers must delete children first. This keeps the operation a single,
|
|
141
|
+
* locally-reasoning write rather than an implicit recursive cascade
|
|
142
|
+
* (Convention #5 deny-by-default).
|
|
143
|
+
*/
|
|
144
|
+
deleteSession(sessionId: SessionId, tenantId: TenantId): Promise<void>
|
|
145
|
+
|
|
146
|
+
// SubSession CRUD ---------------------------------------------------------
|
|
147
|
+
|
|
148
|
+
createSubSession(params: CreateSubSessionParams, tenantId: TenantId): Promise<SubSession>
|
|
149
|
+
|
|
150
|
+
getSubSession(subSessionId: SubSessionId, tenantId: TenantId): Promise<SubSession | null>
|
|
151
|
+
|
|
152
|
+
updateSubSession(subSession: SubSession, tenantId: TenantId): Promise<void>
|
|
153
|
+
|
|
154
|
+
/**
|
|
155
|
+
* Hard-delete a sub-session record. Idempotent — absent sub-sessions
|
|
156
|
+
* succeed as a no-op. Rejects with `TenantIsolationError` on cross-tenant
|
|
157
|
+
* access. Does not cascade to the owned child session; the caller owns
|
|
158
|
+
* that (typical broadcast-rollback flow deletes the sub-session first,
|
|
159
|
+
* then the child session).
|
|
160
|
+
*/
|
|
161
|
+
deleteSubSession(subSessionId: SubSessionId, tenantId: TenantId): Promise<void>
|
|
162
|
+
|
|
163
|
+
// Messages -----------------------------------------------------------------
|
|
164
|
+
|
|
165
|
+
/**
|
|
166
|
+
* Append a single message to the session's message log. Returns the
|
|
167
|
+
* assigned {@link MessageId}. Write is append-only; the store never
|
|
168
|
+
* rewrites or reorders previously persisted messages.
|
|
169
|
+
*/
|
|
170
|
+
appendMessage(sessionId: SessionId, message: Message, tenantId: TenantId): Promise<MessageId>
|
|
171
|
+
|
|
172
|
+
/**
|
|
173
|
+
* Load the full message history for a session in insertion order.
|
|
174
|
+
* Returns an empty array when the session has no messages.
|
|
175
|
+
*
|
|
176
|
+
* Returns payload-only {@link Message} records. Callers that need the
|
|
177
|
+
* full persistence envelope (including {@link MessageId} and timestamp)
|
|
178
|
+
* should use {@link SessionStore.loadSessionMessages} instead.
|
|
179
|
+
*/
|
|
180
|
+
loadMessages(sessionId: SessionId, tenantId: TenantId): Promise<readonly Message[]>
|
|
181
|
+
|
|
182
|
+
/**
|
|
183
|
+
* Load the full {@link SessionMessage} envelope for every persisted
|
|
184
|
+
* message in insertion order (Phase 9 Known Delta #7). Unlike
|
|
185
|
+
* {@link SessionStore.loadMessages} this preserves the original
|
|
186
|
+
* {@link MessageId} and timestamp — required for full-fidelity archival
|
|
187
|
+
* round-trips via {@link ArchivalManager.archive}.
|
|
188
|
+
*
|
|
189
|
+
* Returns an empty array when the session has no messages; cross-tenant
|
|
190
|
+
* reads reject with `TenantIsolationError` (Convention #17).
|
|
191
|
+
*/
|
|
192
|
+
loadSessionMessages(sessionId: SessionId, tenantId: TenantId): Promise<readonly SessionMessage[]>
|
|
193
|
+
|
|
194
|
+
// Linkage (pattern doc §10.4 / §14.3) ------------------------------------
|
|
195
|
+
|
|
196
|
+
/**
|
|
197
|
+
* Direct children of the session (one level). Returns an empty array when
|
|
198
|
+
* the session has no delegations.
|
|
199
|
+
*/
|
|
200
|
+
getChildren(sessionId: SessionId, tenantId: TenantId): Promise<readonly SubSession[]>
|
|
201
|
+
|
|
202
|
+
/**
|
|
203
|
+
* Session id chain from root to self, inclusive. Walks parent sub-session
|
|
204
|
+
* links. Rejects on cycle via `session/errors.ts#AncestryCycleError` —
|
|
205
|
+
* the write path enforces acyclicity, so a cycle here indicates store
|
|
206
|
+
* corruption.
|
|
207
|
+
*/
|
|
208
|
+
getAncestry(sessionId: SessionId, tenantId: TenantId): Promise<readonly SessionId[]>
|
|
209
|
+
|
|
210
|
+
/**
|
|
211
|
+
* Single-round navigation primitive. Returns `null` when the session does
|
|
212
|
+
* not exist for the tenant. See session-hierarchy.md §14.3.
|
|
213
|
+
*/
|
|
214
|
+
drill(sessionId: SessionId, tenantId: TenantId): Promise<SessionView | null>
|
|
215
|
+
|
|
216
|
+
// Summary (pattern doc §4.7 / §8.1) --------------------------------------
|
|
217
|
+
|
|
218
|
+
/**
|
|
219
|
+
* @internal Kernel-internal. Call through
|
|
220
|
+
* `SessionSummaryMaterializer.materialize`, never directly. The
|
|
221
|
+
* `materializedBy: 'kernel'` constraint on the argument type ensures
|
|
222
|
+
* external callers cannot construct a valid input — the only mint site for
|
|
223
|
+
* `SummaryId` is `generateSummaryId` inside the Materializer.
|
|
224
|
+
*
|
|
225
|
+
* Atomic write-then-status-flip (Convention #8): persists the summary and
|
|
226
|
+
* transitions the owning Session's status to `'idle'` if it was in a
|
|
227
|
+
* non-terminal state (`'active' | 'locked' | 'awaiting_merge'`). The two
|
|
228
|
+
* writes commit as one logical unit; mid-crash recovery is replay via
|
|
229
|
+
* `SessionSummaryMaterializer.recover()`.
|
|
230
|
+
*
|
|
231
|
+
* Rejects with {@link SessionAlreadySummarizedError} if a summary already
|
|
232
|
+
* exists for the session (re-materialization forbidden; see
|
|
233
|
+
* session-hierarchy.md §4.7 immutability invariant).
|
|
234
|
+
*/
|
|
235
|
+
recordSummary(
|
|
236
|
+
summary: SessionSummaryRef & { materializedBy: 'kernel' },
|
|
237
|
+
tenantId: TenantId,
|
|
238
|
+
): Promise<void>
|
|
239
|
+
|
|
240
|
+
/**
|
|
241
|
+
* Loads the persisted summary for a session. Returns `null` when none has
|
|
242
|
+
* been materialized. Cross-tenant reads reject with `TenantIsolationError`
|
|
243
|
+
* (Convention #17).
|
|
244
|
+
*/
|
|
245
|
+
getSummary(sessionId: SessionId, tenantId: TenantId): Promise<SessionSummaryRef | null>
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
/**
|
|
249
|
+
* Re-export of {@link SummaryId} so downstream consumers importing from
|
|
250
|
+
* `types/session/store.js` pick up the brand alongside the store contract.
|
|
251
|
+
*/
|
|
252
|
+
export type { SummaryId }
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ThreadStore — canonical persistence contract for the Thread topic layer
|
|
3
|
+
* (Project → **Thread** → Session → SubSession → Run).
|
|
4
|
+
*
|
|
5
|
+
* Threads are pure containers (Phase 0 decision B.1). They have no own
|
|
6
|
+
* message stream and no fan-in `deriveStatus()` — status is owner-managed
|
|
7
|
+
* (`'open' | 'archived'`). Every accessor takes explicit {@link TenantId};
|
|
8
|
+
* cross-tenant access rejects with `TenantIsolationError` (Convention #17).
|
|
9
|
+
*
|
|
10
|
+
* Read accessors return `null` when the resource does not exist for the
|
|
11
|
+
* supplied tenant (deny-by-default surface). Callers branch on missing
|
|
12
|
+
* explicitly — no fallback substitution.
|
|
13
|
+
*
|
|
14
|
+
* `deleteThread` is intentionally a dumb record-delete at this layer:
|
|
15
|
+
* it does NOT walk session ownership. The "reject when sessions attached"
|
|
16
|
+
* precondition lives in {@link import('../../manager/thread/lifecycle.js').ThreadManager}
|
|
17
|
+
* where both stores are in scope. Keeping ThreadStore free of cross-store
|
|
18
|
+
* awareness preserves the single-boundary ownership boundary that Phase 2
|
|
19
|
+
* has just introduced for this layer (Convention #0).
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
import type { Thread } from '../../session/hierarchy/thread.js'
|
|
23
|
+
import type { TenantId } from '../ids/index.js'
|
|
24
|
+
import type { ProjectId, ThreadId } from '../session/ids.js'
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Params for {@link ThreadStore.createThread}. The store owns id generation,
|
|
28
|
+
* `ownerVersion` initialization (0 at create), and timestamps.
|
|
29
|
+
*/
|
|
30
|
+
export interface CreateThreadParams {
|
|
31
|
+
projectId: ProjectId
|
|
32
|
+
/**
|
|
33
|
+
* User-facing display label. Not unique within the project — see
|
|
34
|
+
* {@link Thread} JSDoc. Empty strings are permitted; callers that require
|
|
35
|
+
* a label should validate at the API layer.
|
|
36
|
+
*/
|
|
37
|
+
title: string
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Canonical persistence contract for the Thread layer. Every accessor takes
|
|
42
|
+
* explicit `tenantId`; cross-tenant reads/writes reject with
|
|
43
|
+
* `TenantIsolationError` (`session/errors.ts`, Convention #17).
|
|
44
|
+
*/
|
|
45
|
+
export interface ThreadStore {
|
|
46
|
+
/**
|
|
47
|
+
* Persist a new Thread under the given project. Returns the minted
|
|
48
|
+
* {@link Thread} with `ownerVersion: 0` and freshly-generated
|
|
49
|
+
* {@link ThreadId}. Callers must ensure the parent project exists and
|
|
50
|
+
* belongs to the same tenant — the store does not validate project
|
|
51
|
+
* ownership (that is a cross-store precondition owned by the manager).
|
|
52
|
+
*/
|
|
53
|
+
createThread(params: CreateThreadParams, tenantId: TenantId): Promise<Thread>
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Read a Thread by id. Returns `null` when absent. Cross-tenant reads
|
|
57
|
+
* reject with `TenantIsolationError`.
|
|
58
|
+
*/
|
|
59
|
+
getThread(threadId: ThreadId, tenantId: TenantId): Promise<Thread | null>
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Persist a mutation to a Thread record. CAS on `ownerVersion`: if the
|
|
63
|
+
* supplied `thread.ownerVersion` does not match the persisted version,
|
|
64
|
+
* rejects with `StaleThreadError`. On success the write commits with
|
|
65
|
+
* `ownerVersion + 1` and a refreshed `updatedAt`.
|
|
66
|
+
*
|
|
67
|
+
* Archival transition (`status: 'open' → 'archived'`) shares this path;
|
|
68
|
+
* the caller is responsible for verifying that no non-terminal Sessions
|
|
69
|
+
* are attached before flipping (see ThreadManager.archiveThread).
|
|
70
|
+
*/
|
|
71
|
+
updateThread(thread: Thread, tenantId: TenantId): Promise<void>
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* Hard-delete a Thread record. Idempotent — absent threads succeed as a
|
|
75
|
+
* no-op. Rejects with `TenantIsolationError` on cross-tenant access.
|
|
76
|
+
*
|
|
77
|
+
* **Does NOT cascade to child Sessions** — the caller (typically
|
|
78
|
+
* ThreadManager) enforces the precondition that no Sessions reference
|
|
79
|
+
* this thread. Convention #5: deny-by-default, no implicit cascade.
|
|
80
|
+
*/
|
|
81
|
+
deleteThread(threadId: ThreadId, tenantId: TenantId): Promise<void>
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* List all Threads under a project for the given tenant, ordered by
|
|
85
|
+
* `createdAt` ascending. Returns an empty array when none exist.
|
|
86
|
+
* Cross-tenant reads reject with `TenantIsolationError`.
|
|
87
|
+
*
|
|
88
|
+
* The return shape is a concrete snapshot — callers that mutate the
|
|
89
|
+
* result array do not affect store state.
|
|
90
|
+
*/
|
|
91
|
+
listThreads(projectId: ProjectId, tenantId: TenantId): Promise<readonly Thread[]>
|
|
92
|
+
}
|
package/src/utils/id.ts
CHANGED
|
@@ -8,10 +8,12 @@ import type {
|
|
|
8
8
|
ConnectorId,
|
|
9
9
|
ConnectorInstanceId,
|
|
10
10
|
CredentialId,
|
|
11
|
+
DeliverableId,
|
|
11
12
|
DocumentId,
|
|
12
13
|
EmergencySaveId,
|
|
13
14
|
EnvironmentId,
|
|
14
15
|
ExecutionContextId,
|
|
16
|
+
HandoffId,
|
|
15
17
|
KnowledgeBaseId,
|
|
16
18
|
MCPClientId,
|
|
17
19
|
MCPServerId,
|
|
@@ -20,13 +22,17 @@ import type {
|
|
|
20
22
|
MessageId,
|
|
21
23
|
PlanId,
|
|
22
24
|
PluginId,
|
|
25
|
+
ProjectId,
|
|
23
26
|
RunId,
|
|
24
27
|
SandboxId,
|
|
25
28
|
SessionId,
|
|
29
|
+
SubSessionId,
|
|
30
|
+
SummaryId,
|
|
26
31
|
TaskId,
|
|
27
32
|
TenantId,
|
|
28
33
|
ThreadId,
|
|
29
34
|
ToolCallId,
|
|
35
|
+
WorkspaceId,
|
|
30
36
|
} from '../types/ids/index.js'
|
|
31
37
|
|
|
32
38
|
const ALPHABET = '0123456789abcdefghijklmnopqrstuvwxyz'
|
|
@@ -49,6 +55,10 @@ function generateId<T extends string>(prefix: T, length = 12): `${T}${string}` {
|
|
|
49
55
|
return `${prefix}${suffix}` as `${T}${string}`
|
|
50
56
|
}
|
|
51
57
|
|
|
58
|
+
export function generateProjectId(): ProjectId {
|
|
59
|
+
return generateId('prj_')
|
|
60
|
+
}
|
|
61
|
+
|
|
52
62
|
export function generateThreadId(): ThreadId {
|
|
53
63
|
return generateId('thd_')
|
|
54
64
|
}
|
|
@@ -62,7 +72,7 @@ export function generateMessageId(): MessageId {
|
|
|
62
72
|
}
|
|
63
73
|
|
|
64
74
|
export function generateSessionId(): SessionId {
|
|
65
|
-
return generateId('
|
|
75
|
+
return generateId('ses_')
|
|
66
76
|
}
|
|
67
77
|
|
|
68
78
|
export function generateToolCallId(): ToolCallId {
|
|
@@ -102,7 +112,7 @@ export function generateConnectorInstanceId(): ConnectorInstanceId {
|
|
|
102
112
|
}
|
|
103
113
|
|
|
104
114
|
export function generateTenantId(): TenantId {
|
|
105
|
-
return generateId('
|
|
115
|
+
return generateId('tnt_')
|
|
106
116
|
}
|
|
107
117
|
|
|
108
118
|
export function generateCredentialId(): CredentialId {
|
|
@@ -157,6 +167,26 @@ export function generateSandboxId(): SandboxId {
|
|
|
157
167
|
return generateId('sbx_')
|
|
158
168
|
}
|
|
159
169
|
|
|
170
|
+
export function generateWorkspaceId(): WorkspaceId {
|
|
171
|
+
return generateId('wsp_')
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
export function generateSubSessionId(): SubSessionId {
|
|
175
|
+
return generateId('sub_')
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
export function generateSummaryId(): SummaryId {
|
|
179
|
+
return generateId('sum_')
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
export function generateHandoffId(): HandoffId {
|
|
183
|
+
return generateId('hof_')
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
export function generateDeliverableId(): DeliverableId {
|
|
187
|
+
return generateId('del_')
|
|
188
|
+
}
|
|
189
|
+
|
|
160
190
|
function parseId<T extends string>(raw: string, prefix: string, typeName: string): T {
|
|
161
191
|
if (!raw.startsWith(prefix)) {
|
|
162
192
|
throw new Error(`Invalid ${typeName}: expected "${prefix}" prefix, got "${raw}"`)
|
|
@@ -164,8 +194,8 @@ function parseId<T extends string>(raw: string, prefix: string, typeName: string
|
|
|
164
194
|
return raw as T
|
|
165
195
|
}
|
|
166
196
|
|
|
167
|
-
export function
|
|
168
|
-
return parseId<
|
|
197
|
+
export function parseProjectId(raw: string): ProjectId {
|
|
198
|
+
return parseId<ProjectId>(raw, 'prj_', 'ProjectId')
|
|
169
199
|
}
|
|
170
200
|
export function parseRunId(raw: string): RunId {
|
|
171
201
|
return parseId<RunId>(raw, 'run_', 'RunId')
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import type { ConversationStore } from '../../types/conversation/index.js';
|
|
2
|
-
import type { MessageId, RunId, ThreadId } from '../../types/ids/index.js';
|
|
3
|
-
import { type Message } from '../../types/message/index.js';
|
|
4
|
-
export interface InMemoryConversationStoreConfig {
|
|
5
|
-
readonly maxMessages?: number;
|
|
6
|
-
}
|
|
7
|
-
export declare class InMemoryConversationStore implements ConversationStore {
|
|
8
|
-
private readonly threads;
|
|
9
|
-
private readonly maxMessages;
|
|
10
|
-
constructor(config?: InMemoryConversationStoreConfig);
|
|
11
|
-
loadMessages(threadId: ThreadId): Message[];
|
|
12
|
-
persistRunResult(threadId: ThreadId, runId: RunId, messages: Message[]): void;
|
|
13
|
-
addUserMessage(threadId: ThreadId, content: string): MessageId;
|
|
14
|
-
hasThread(threadId: ThreadId): boolean;
|
|
15
|
-
createThread(threadId: ThreadId): boolean;
|
|
16
|
-
deleteThread(threadId: ThreadId): boolean;
|
|
17
|
-
messageCount(threadId: ThreadId): number;
|
|
18
|
-
clear(): void;
|
|
19
|
-
private ensureThread;
|
|
20
|
-
}
|
|
21
|
-
//# sourceMappingURL=memory.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../../src/store/conversation/memory.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAA;AAC1E,OAAO,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AAC1E,OAAO,EACN,KAAK,OAAO,EAGZ,MAAM,8BAA8B,CAAA;AAkBrC,MAAM,WAAW,+BAA+B;IAC/C,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAC7B;AAED,qBAAa,yBAA0B,YAAW,iBAAiB;IAClE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6C;IACrE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAQ;gBAExB,MAAM,GAAE,+BAAoC;IAIxD,YAAY,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,EAAE;IA4B3C,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI;IAe7E,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS;IAa9D,SAAS,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO;IAItC,YAAY,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO;IAMzC,YAAY,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO;IAIzC,YAAY,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM;IAIxC,KAAK,IAAI,IAAI;IAIb,OAAO,CAAC,YAAY;CAKpB"}
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
import { findSafeTrimIndex } from '../../compaction/dangling.js';
|
|
2
|
-
import { createAssistantMessage, createUserMessage, } from '../../types/message/index.js';
|
|
3
|
-
import { extractFinalResponse } from '../../utils/conversation.js';
|
|
4
|
-
import { generateMessageId } from '../../utils/id.js';
|
|
5
|
-
export class InMemoryConversationStore {
|
|
6
|
-
threads = new Map();
|
|
7
|
-
maxMessages;
|
|
8
|
-
constructor(config = {}) {
|
|
9
|
-
this.maxMessages = config.maxMessages ?? 100;
|
|
10
|
-
}
|
|
11
|
-
loadMessages(threadId) {
|
|
12
|
-
const messages = this.threads.get(threadId);
|
|
13
|
-
if (!messages)
|
|
14
|
-
return [];
|
|
15
|
-
// Convert to Message type for trim safety check
|
|
16
|
-
const convertedMessages = messages.map((m) => {
|
|
17
|
-
switch (m.role) {
|
|
18
|
-
case 'user':
|
|
19
|
-
return createUserMessage(m.content);
|
|
20
|
-
case 'assistant':
|
|
21
|
-
return createAssistantMessage(m.content);
|
|
22
|
-
default: {
|
|
23
|
-
const _exhaustive = m.role;
|
|
24
|
-
throw new Error(`Unhandled message role: ${_exhaustive}`);
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
});
|
|
28
|
-
// Apply safe trimming to preserve tool call/result atomicity
|
|
29
|
-
let trimStartIdx = 0;
|
|
30
|
-
if (convertedMessages.length > this.maxMessages) {
|
|
31
|
-
const desiredTrimPoint = convertedMessages.length - this.maxMessages;
|
|
32
|
-
trimStartIdx = findSafeTrimIndex(convertedMessages, desiredTrimPoint);
|
|
33
|
-
}
|
|
34
|
-
return convertedMessages.slice(trimStartIdx);
|
|
35
|
-
}
|
|
36
|
-
persistRunResult(threadId, runId, messages) {
|
|
37
|
-
const finalAssistant = extractFinalResponse(messages);
|
|
38
|
-
if (!finalAssistant || !finalAssistant.content)
|
|
39
|
-
return;
|
|
40
|
-
this.ensureThread(threadId);
|
|
41
|
-
this.threads.get(threadId)?.push({
|
|
42
|
-
id: generateMessageId(),
|
|
43
|
-
threadId,
|
|
44
|
-
role: 'assistant',
|
|
45
|
-
content: finalAssistant.content,
|
|
46
|
-
runId,
|
|
47
|
-
createdAt: new Date().toISOString(),
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
addUserMessage(threadId, content) {
|
|
51
|
-
this.ensureThread(threadId);
|
|
52
|
-
const id = generateMessageId();
|
|
53
|
-
this.threads.get(threadId)?.push({
|
|
54
|
-
id,
|
|
55
|
-
threadId,
|
|
56
|
-
role: 'user',
|
|
57
|
-
content,
|
|
58
|
-
createdAt: new Date().toISOString(),
|
|
59
|
-
});
|
|
60
|
-
return id;
|
|
61
|
-
}
|
|
62
|
-
hasThread(threadId) {
|
|
63
|
-
return this.threads.has(threadId);
|
|
64
|
-
}
|
|
65
|
-
createThread(threadId) {
|
|
66
|
-
if (this.threads.has(threadId))
|
|
67
|
-
return false;
|
|
68
|
-
this.threads.set(threadId, []);
|
|
69
|
-
return true;
|
|
70
|
-
}
|
|
71
|
-
deleteThread(threadId) {
|
|
72
|
-
return this.threads.delete(threadId);
|
|
73
|
-
}
|
|
74
|
-
messageCount(threadId) {
|
|
75
|
-
return this.threads.get(threadId)?.length ?? 0;
|
|
76
|
-
}
|
|
77
|
-
clear() {
|
|
78
|
-
this.threads.clear();
|
|
79
|
-
}
|
|
80
|
-
ensureThread(threadId) {
|
|
81
|
-
if (!this.threads.has(threadId)) {
|
|
82
|
-
this.threads.set(threadId, []);
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
//# sourceMappingURL=memory.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"memory.js","sourceRoot":"","sources":["../../../src/store/conversation/memory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAGhE,OAAO,EAEN,sBAAsB,EACtB,iBAAiB,GACjB,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAoBrD,MAAM,OAAO,yBAAyB;IACpB,OAAO,GAAG,IAAI,GAAG,EAAmC,CAAA;IACpD,WAAW,CAAQ;IAEpC,YAAY,SAA0C,EAAE;QACvD,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,GAAG,CAAA;IAC7C,CAAC;IAED,YAAY,CAAC,QAAkB;QAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QAC3C,IAAI,CAAC,QAAQ;YAAE,OAAO,EAAE,CAAA;QAExB,gDAAgD;QAChD,MAAM,iBAAiB,GAAc,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACvD,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;gBAChB,KAAK,MAAM;oBACV,OAAO,iBAAiB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;gBACpC,KAAK,WAAW;oBACf,OAAO,sBAAsB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;gBACzC,OAAO,CAAC,CAAC,CAAC;oBACT,MAAM,WAAW,GAAU,CAAC,CAAC,IAAI,CAAA;oBACjC,MAAM,IAAI,KAAK,CAAC,2BAA2B,WAAW,EAAE,CAAC,CAAA;gBAC1D,CAAC;YACF,CAAC;QACF,CAAC,CAAC,CAAA;QAEF,6DAA6D;QAC7D,IAAI,YAAY,GAAG,CAAC,CAAA;QACpB,IAAI,iBAAiB,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YACjD,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAA;YACpE,YAAY,GAAG,iBAAiB,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,CAAA;QACtE,CAAC;QAED,OAAO,iBAAiB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;IAC7C,CAAC;IAED,gBAAgB,CAAC,QAAkB,EAAE,KAAY,EAAE,QAAmB;QACrE,MAAM,cAAc,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAA;QACrD,IAAI,CAAC,cAAc,IAAI,CAAC,cAAc,CAAC,OAAO;YAAE,OAAM;QAEtD,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAA;QAC3B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC;YAChC,EAAE,EAAE,iBAAiB,EAAE;YACvB,QAAQ;YACR,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,cAAc,CAAC,OAAO;YAC/B,KAAK;YACL,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACnC,CAAC,CAAA;IACH,CAAC;IAED,cAAc,CAAC,QAAkB,EAAE,OAAe;QACjD,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAA;QAC3B,MAAM,EAAE,GAAG,iBAAiB,EAAE,CAAA;QAC9B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC;YAChC,EAAE;YACF,QAAQ;YACR,IAAI,EAAE,MAAM;YACZ,OAAO;YACP,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACnC,CAAC,CAAA;QACF,OAAO,EAAE,CAAA;IACV,CAAC;IAED,SAAS,CAAC,QAAkB;QAC3B,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IAClC,CAAC;IAED,YAAY,CAAC,QAAkB;QAC9B,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAA;QAC5C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;QAC9B,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,YAAY,CAAC,QAAkB;QAC9B,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;IACrC,CAAC;IAED,YAAY,CAAC,QAAkB;QAC9B,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC,CAAA;IAC/C,CAAC;IAED,KAAK;QACJ,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAA;IACrB,CAAC;IAEO,YAAY,CAAC,QAAkB;QACtC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;QAC/B,CAAC;IACF,CAAC;CACD"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import type { RunId, ThreadId } from '../ids/index.js';
|
|
2
|
-
import type { Message } from '../message/index.js';
|
|
3
|
-
export interface ConversationStore {
|
|
4
|
-
loadMessages(threadId: ThreadId): Message[];
|
|
5
|
-
persistRunResult(threadId: ThreadId, runId: RunId, messages: Message[]): void;
|
|
6
|
-
}
|
|
7
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/conversation/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAElD,MAAM,WAAW,iBAAiB;IACjC,YAAY,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,EAAE,CAAA;IAE3C,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI,CAAA;CAC7E"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/conversation/index.ts"],"names":[],"mappings":""}
|