@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,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Domain Run status enum. See session-hierarchy.md §4.6 + §5.2 state machine.
|
|
3
|
+
*
|
|
4
|
+
* Distinct from the wire-side {@link WireRunStatus} in `contracts/api.ts`,
|
|
5
|
+
* which maps these states onto HTTP payload shapes (`completed` /
|
|
6
|
+
* `cancelling` / `expired`). Keep this enum purely the domain surface; any
|
|
7
|
+
* consumer that needs the HTTP representation should translate at the bridge
|
|
8
|
+
* boundary.
|
|
9
|
+
*
|
|
10
|
+
* Variants:
|
|
11
|
+
* - `queued` — run created, not yet started.
|
|
12
|
+
* - `running` — iteration loop in flight.
|
|
13
|
+
* - `awaiting_hitl` — synchronous-wait on a HITL gate (user present).
|
|
14
|
+
* - `awaiting_hitl_resolution` — persisted-wait after a HITL timeout under
|
|
15
|
+
* `HITLConfig.onTimeout = 'pause_run_until_resolved'`. User absent; Run
|
|
16
|
+
* persists until resolved or cancelled (permission-policies.md §13.3).
|
|
17
|
+
* - `awaiting_subsession` — parent Run has delegated to a child SubSession
|
|
18
|
+
* and is suspended until the Materializer seals the child's summary.
|
|
19
|
+
* Session-level fan-in treats this as `active` (delegation in flight
|
|
20
|
+
* means the parent IS active). See session-hierarchy.md §5.1.
|
|
21
|
+
* - `succeeded` — terminal, run completed without error.
|
|
22
|
+
* - `failed` — terminal, run errored out.
|
|
23
|
+
* - `cancelled` — terminal, explicitly cancelled.
|
|
24
|
+
*/
|
|
25
|
+
export type RunStatus = 'queued' | 'running' | 'awaiting_hitl' | 'awaiting_hitl_resolution' | 'awaiting_subsession' | 'succeeded' | 'failed' | 'cancelled';
|
|
26
|
+
//# sourceMappingURL=status.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../src/types/run/status.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,MAAM,SAAS,GAClB,QAAQ,GACR,SAAS,GACT,eAAe,GACf,0BAA0B,GAC1B,qBAAqB,GACrB,WAAW,GACX,QAAQ,GACR,WAAW,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/types/run/status.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session hierarchy branded ID re-export barrel.
|
|
3
|
+
*
|
|
4
|
+
* Canonical definitions live in `../ids/index.ts`. This barrel exists solely
|
|
5
|
+
* for ergonomic co-location with session-scoped callers (they already import
|
|
6
|
+
* from `types/session/`).
|
|
7
|
+
*/
|
|
8
|
+
export type { ProjectId, ThreadId, SubSessionId, HandoffId, WorkspaceId, SummaryId, DeliverableId, SessionId, TenantId, RunId, AgentId, UserId, TaskId, } from '../ids/index.js';
|
|
9
|
+
//# sourceMappingURL=ids.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ids.d.ts","sourceRoot":"","sources":["../../../src/types/session/ids.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,YAAY,EACX,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,SAAS,EACT,WAAW,EACX,SAAS,EACT,aAAa,EACb,SAAS,EACT,QAAQ,EACR,KAAK,EACL,OAAO,EACP,MAAM,EACN,MAAM,GACN,MAAM,iBAAiB,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session hierarchy branded ID re-export barrel.
|
|
3
|
+
*
|
|
4
|
+
* Canonical definitions live in `../ids/index.ts`. This barrel exists solely
|
|
5
|
+
* for ergonomic co-location with session-scoped callers (they already import
|
|
6
|
+
* from `types/session/`).
|
|
7
|
+
*/
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=ids.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ids.js","sourceRoot":"","sources":["../../../src/types/session/ids.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export type { ProjectId, ThreadId, SubSessionId, HandoffId, WorkspaceId, SummaryId, DeliverableId, SessionId, TenantId, RunId, AgentId, UserId, TaskId, } from './ids.js';
|
|
2
|
+
export type { SessionStore, SessionView, CreateProjectParams, CreateSessionParams, CreateSubSessionParams, } from './store.js';
|
|
3
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/session/index.ts"],"names":[],"mappings":"AAIA,YAAY,EACX,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,SAAS,EACT,WAAW,EACX,SAAS,EACT,aAAa,EACb,SAAS,EACT,QAAQ,EACR,KAAK,EACL,OAAO,EACP,MAAM,EACN,MAAM,GACN,MAAM,UAAU,CAAA;AAEjB,YAAY,EACX,YAAY,EACZ,WAAW,EACX,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,GACtB,MAAM,YAAY,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/session/index.ts"],"names":[],"mappings":"AAAA,iDAAiD;AACjD,2EAA2E;AAC3E,kDAAkD"}
|
|
@@ -0,0 +1,210 @@
|
|
|
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
|
+
import type { ActorRef } from '../../session/hierarchy/actor.js';
|
|
9
|
+
import type { Project } from '../../session/hierarchy/project.js';
|
|
10
|
+
import type { Session } from '../../session/hierarchy/session.js';
|
|
11
|
+
import type { CompletionMode, FailureMode, SubSession, SubSessionKind } from '../../session/hierarchy/sub-session.js';
|
|
12
|
+
import type { SessionSummaryRef } from '../../session/summary/ref.js';
|
|
13
|
+
import type { SessionMessage } from '../../store/session/messages.js';
|
|
14
|
+
import type { MessageId, SessionId, TenantId } from '../ids/index.js';
|
|
15
|
+
import type { Message } from '../message/index.js';
|
|
16
|
+
import type { ProjectId, SubSessionId, SummaryId, ThreadId } from '../session/ids.js';
|
|
17
|
+
/**
|
|
18
|
+
* Params for {@link SessionStore.createSession}. The store owns id generation,
|
|
19
|
+
* `ownerVersion` initialization, and timestamps.
|
|
20
|
+
*
|
|
21
|
+
* Both `threadId` and `projectId` are required. `projectId` must equal the
|
|
22
|
+
* `projectId` of the thread identified by `threadId`; the store does NOT
|
|
23
|
+
* perform that cross-store consistency check (it has no ThreadStore handle
|
|
24
|
+
* by design — see the store-boundary rationale in {@link ThreadStore}). The
|
|
25
|
+
* caller is the authority; typically spawn and handoff paths copy both from
|
|
26
|
+
* a freshly-loaded `Thread` record or from their own context which already
|
|
27
|
+
* tracks both.
|
|
28
|
+
*/
|
|
29
|
+
export interface CreateSessionParams {
|
|
30
|
+
threadId: ThreadId;
|
|
31
|
+
projectId: ProjectId;
|
|
32
|
+
/**
|
|
33
|
+
* Initial owner of the session. May be `null` for bootstrap scenarios where
|
|
34
|
+
* the first Run attaches an actor; the store rejects mutations against
|
|
35
|
+
* actor-less sessions from downstream consumers.
|
|
36
|
+
*/
|
|
37
|
+
currentActor: ActorRef | null;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Params for {@link SessionStore.createSubSession}. `workspaceId` is optional
|
|
41
|
+
* because Phase 3 does not yet wire workspace creation into spawn — Phase 6
|
|
42
|
+
* makes the two atomic. `summaryRef` is populated by the materializer in
|
|
43
|
+
* Phase 5, never by callers of this API.
|
|
44
|
+
*/
|
|
45
|
+
export interface CreateSubSessionParams {
|
|
46
|
+
parentSessionId: SessionId;
|
|
47
|
+
childSessionId: SessionId;
|
|
48
|
+
kind: SubSessionKind;
|
|
49
|
+
spawnedBy: ActorRef;
|
|
50
|
+
failureMode?: FailureMode;
|
|
51
|
+
completionMode?: CompletionMode;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Minimal Project surface needed by the store in Phase 3. The full Project
|
|
55
|
+
* entity lives in `session/hierarchy/project.ts`; a dedicated `ProjectStore`
|
|
56
|
+
* is out of scope for this phase (session-hierarchy.md §11 defers the project
|
|
57
|
+
* store to a later phase).
|
|
58
|
+
*/
|
|
59
|
+
export interface CreateProjectParams {
|
|
60
|
+
tenantId: TenantId;
|
|
61
|
+
name: string;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Return shape for {@link SessionStore.drill}. See session-hierarchy.md §14.3.
|
|
65
|
+
* The fields are final — consumers may rely on exhaustiveness (Convention #6).
|
|
66
|
+
*
|
|
67
|
+
* `ancestry` is root-to-self. `children` lists direct sub-sessions only
|
|
68
|
+
* (recursive drill-down is the consumer's responsibility).
|
|
69
|
+
*/
|
|
70
|
+
export interface SessionView {
|
|
71
|
+
session: Session;
|
|
72
|
+
children: readonly SubSession[];
|
|
73
|
+
ancestry: readonly SessionId[];
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Canonical persistence contract. Every accessor takes explicit `tenantId`.
|
|
77
|
+
* Cross-tenant reads/writes must reject with `TenantIsolationError`
|
|
78
|
+
* (see `session/errors.ts`).
|
|
79
|
+
*
|
|
80
|
+
* Read accessors return `null` when the resource does not exist for the
|
|
81
|
+
* supplied tenant — this is the deny-by-default surface (Convention #5):
|
|
82
|
+
* callers never get a fallback and must branch on missing explicitly.
|
|
83
|
+
*/
|
|
84
|
+
export interface SessionStore {
|
|
85
|
+
createProject(params: CreateProjectParams, tenantId: TenantId): Promise<Project>;
|
|
86
|
+
getProject(projectId: ProjectId, tenantId: TenantId): Promise<Project | null>;
|
|
87
|
+
createSession(params: CreateSessionParams, tenantId: TenantId): Promise<Session>;
|
|
88
|
+
getSession(sessionId: SessionId, tenantId: TenantId): Promise<Session | null>;
|
|
89
|
+
updateSession(session: Session, tenantId: TenantId): Promise<void>;
|
|
90
|
+
/**
|
|
91
|
+
* List every Session that belongs to the given Thread for the caller's
|
|
92
|
+
* tenant, ordered by `createdAt` ascending. Returns an empty array when
|
|
93
|
+
* none exist.
|
|
94
|
+
*
|
|
95
|
+
* Thread-scoped queries rely on `session.threadId` (set at creation, never
|
|
96
|
+
* rewritten). Cross-tenant sessions that happen to share the supplied
|
|
97
|
+
* `threadId` are silently skipped — the listing is tenant-scoped, not an
|
|
98
|
+
* isolation violation (the caller did not request a specific record).
|
|
99
|
+
*
|
|
100
|
+
* Exists to back ThreadManager's archival + delete preconditions
|
|
101
|
+
* ({@link import('../../manager/thread/lifecycle.js').ThreadManager.archive}
|
|
102
|
+
* rejects when any session is in a non-terminal state; `delete` rejects
|
|
103
|
+
* while any session still references the thread). Keeping this primitive
|
|
104
|
+
* on {@link SessionStore} preserves the store-ownership boundary —
|
|
105
|
+
* ThreadStore stays unaware of session layout (Convention #0).
|
|
106
|
+
*/
|
|
107
|
+
listSessions(threadId: ThreadId, tenantId: TenantId): Promise<readonly Session[]>;
|
|
108
|
+
/**
|
|
109
|
+
* Hard-delete a session. Idempotent — absent sessions succeed as a no-op.
|
|
110
|
+
* Rejects with `TenantIsolationError` on cross-tenant access.
|
|
111
|
+
*
|
|
112
|
+
* Closes the Phase 4 Known Delta (broadcast rollback previously had to
|
|
113
|
+
* flip status to `'archived'` as a stopgap). Used by:
|
|
114
|
+
* - Broadcast rollback (compensating cleanup — pattern doc §6.2)
|
|
115
|
+
* - Archival tombstone consolidation when a caller prefers deletion
|
|
116
|
+
* over the in-slot tombstone (uncommon — default is in-slot).
|
|
117
|
+
*
|
|
118
|
+
* Policy: rejects when the session still has sub-sessions attached —
|
|
119
|
+
* callers must delete children first. This keeps the operation a single,
|
|
120
|
+
* locally-reasoning write rather than an implicit recursive cascade
|
|
121
|
+
* (Convention #5 deny-by-default).
|
|
122
|
+
*/
|
|
123
|
+
deleteSession(sessionId: SessionId, tenantId: TenantId): Promise<void>;
|
|
124
|
+
createSubSession(params: CreateSubSessionParams, tenantId: TenantId): Promise<SubSession>;
|
|
125
|
+
getSubSession(subSessionId: SubSessionId, tenantId: TenantId): Promise<SubSession | null>;
|
|
126
|
+
updateSubSession(subSession: SubSession, tenantId: TenantId): Promise<void>;
|
|
127
|
+
/**
|
|
128
|
+
* Hard-delete a sub-session record. Idempotent — absent sub-sessions
|
|
129
|
+
* succeed as a no-op. Rejects with `TenantIsolationError` on cross-tenant
|
|
130
|
+
* access. Does not cascade to the owned child session; the caller owns
|
|
131
|
+
* that (typical broadcast-rollback flow deletes the sub-session first,
|
|
132
|
+
* then the child session).
|
|
133
|
+
*/
|
|
134
|
+
deleteSubSession(subSessionId: SubSessionId, tenantId: TenantId): Promise<void>;
|
|
135
|
+
/**
|
|
136
|
+
* Append a single message to the session's message log. Returns the
|
|
137
|
+
* assigned {@link MessageId}. Write is append-only; the store never
|
|
138
|
+
* rewrites or reorders previously persisted messages.
|
|
139
|
+
*/
|
|
140
|
+
appendMessage(sessionId: SessionId, message: Message, tenantId: TenantId): Promise<MessageId>;
|
|
141
|
+
/**
|
|
142
|
+
* Load the full message history for a session in insertion order.
|
|
143
|
+
* Returns an empty array when the session has no messages.
|
|
144
|
+
*
|
|
145
|
+
* Returns payload-only {@link Message} records. Callers that need the
|
|
146
|
+
* full persistence envelope (including {@link MessageId} and timestamp)
|
|
147
|
+
* should use {@link SessionStore.loadSessionMessages} instead.
|
|
148
|
+
*/
|
|
149
|
+
loadMessages(sessionId: SessionId, tenantId: TenantId): Promise<readonly Message[]>;
|
|
150
|
+
/**
|
|
151
|
+
* Load the full {@link SessionMessage} envelope for every persisted
|
|
152
|
+
* message in insertion order (Phase 9 Known Delta #7). Unlike
|
|
153
|
+
* {@link SessionStore.loadMessages} this preserves the original
|
|
154
|
+
* {@link MessageId} and timestamp — required for full-fidelity archival
|
|
155
|
+
* round-trips via {@link ArchivalManager.archive}.
|
|
156
|
+
*
|
|
157
|
+
* Returns an empty array when the session has no messages; cross-tenant
|
|
158
|
+
* reads reject with `TenantIsolationError` (Convention #17).
|
|
159
|
+
*/
|
|
160
|
+
loadSessionMessages(sessionId: SessionId, tenantId: TenantId): Promise<readonly SessionMessage[]>;
|
|
161
|
+
/**
|
|
162
|
+
* Direct children of the session (one level). Returns an empty array when
|
|
163
|
+
* the session has no delegations.
|
|
164
|
+
*/
|
|
165
|
+
getChildren(sessionId: SessionId, tenantId: TenantId): Promise<readonly SubSession[]>;
|
|
166
|
+
/**
|
|
167
|
+
* Session id chain from root to self, inclusive. Walks parent sub-session
|
|
168
|
+
* links. Rejects on cycle via `session/errors.ts#AncestryCycleError` —
|
|
169
|
+
* the write path enforces acyclicity, so a cycle here indicates store
|
|
170
|
+
* corruption.
|
|
171
|
+
*/
|
|
172
|
+
getAncestry(sessionId: SessionId, tenantId: TenantId): Promise<readonly SessionId[]>;
|
|
173
|
+
/**
|
|
174
|
+
* Single-round navigation primitive. Returns `null` when the session does
|
|
175
|
+
* not exist for the tenant. See session-hierarchy.md §14.3.
|
|
176
|
+
*/
|
|
177
|
+
drill(sessionId: SessionId, tenantId: TenantId): Promise<SessionView | null>;
|
|
178
|
+
/**
|
|
179
|
+
* @internal Kernel-internal. Call through
|
|
180
|
+
* `SessionSummaryMaterializer.materialize`, never directly. The
|
|
181
|
+
* `materializedBy: 'kernel'` constraint on the argument type ensures
|
|
182
|
+
* external callers cannot construct a valid input — the only mint site for
|
|
183
|
+
* `SummaryId` is `generateSummaryId` inside the Materializer.
|
|
184
|
+
*
|
|
185
|
+
* Atomic write-then-status-flip (Convention #8): persists the summary and
|
|
186
|
+
* transitions the owning Session's status to `'idle'` if it was in a
|
|
187
|
+
* non-terminal state (`'active' | 'locked' | 'awaiting_merge'`). The two
|
|
188
|
+
* writes commit as one logical unit; mid-crash recovery is replay via
|
|
189
|
+
* `SessionSummaryMaterializer.recover()`.
|
|
190
|
+
*
|
|
191
|
+
* Rejects with {@link SessionAlreadySummarizedError} if a summary already
|
|
192
|
+
* exists for the session (re-materialization forbidden; see
|
|
193
|
+
* session-hierarchy.md §4.7 immutability invariant).
|
|
194
|
+
*/
|
|
195
|
+
recordSummary(summary: SessionSummaryRef & {
|
|
196
|
+
materializedBy: 'kernel';
|
|
197
|
+
}, tenantId: TenantId): Promise<void>;
|
|
198
|
+
/**
|
|
199
|
+
* Loads the persisted summary for a session. Returns `null` when none has
|
|
200
|
+
* been materialized. Cross-tenant reads reject with `TenantIsolationError`
|
|
201
|
+
* (Convention #17).
|
|
202
|
+
*/
|
|
203
|
+
getSummary(sessionId: SessionId, tenantId: TenantId): Promise<SessionSummaryRef | null>;
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Re-export of {@link SummaryId} so downstream consumers importing from
|
|
207
|
+
* `types/session/store.js` pick up the brand alongside the store contract.
|
|
208
|
+
*/
|
|
209
|
+
export type { SummaryId };
|
|
210
|
+
//# sourceMappingURL=store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/types/session/store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
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
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/types/session/store.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/thread/index.ts"],"names":[],"mappings":"AAIA,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/thread/index.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,yEAAyE;AACzE,yCAAyC"}
|
|
@@ -0,0 +1,86 @@
|
|
|
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
|
+
import type { Thread } from '../../session/hierarchy/thread.js';
|
|
22
|
+
import type { TenantId } from '../ids/index.js';
|
|
23
|
+
import type { ProjectId, ThreadId } from '../session/ids.js';
|
|
24
|
+
/**
|
|
25
|
+
* Params for {@link ThreadStore.createThread}. The store owns id generation,
|
|
26
|
+
* `ownerVersion` initialization (0 at create), and timestamps.
|
|
27
|
+
*/
|
|
28
|
+
export interface CreateThreadParams {
|
|
29
|
+
projectId: ProjectId;
|
|
30
|
+
/**
|
|
31
|
+
* User-facing display label. Not unique within the project — see
|
|
32
|
+
* {@link Thread} JSDoc. Empty strings are permitted; callers that require
|
|
33
|
+
* a label should validate at the API layer.
|
|
34
|
+
*/
|
|
35
|
+
title: string;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Canonical persistence contract for the Thread layer. Every accessor takes
|
|
39
|
+
* explicit `tenantId`; cross-tenant reads/writes reject with
|
|
40
|
+
* `TenantIsolationError` (`session/errors.ts`, Convention #17).
|
|
41
|
+
*/
|
|
42
|
+
export interface ThreadStore {
|
|
43
|
+
/**
|
|
44
|
+
* Persist a new Thread under the given project. Returns the minted
|
|
45
|
+
* {@link Thread} with `ownerVersion: 0` and freshly-generated
|
|
46
|
+
* {@link ThreadId}. Callers must ensure the parent project exists and
|
|
47
|
+
* belongs to the same tenant — the store does not validate project
|
|
48
|
+
* ownership (that is a cross-store precondition owned by the manager).
|
|
49
|
+
*/
|
|
50
|
+
createThread(params: CreateThreadParams, tenantId: TenantId): Promise<Thread>;
|
|
51
|
+
/**
|
|
52
|
+
* Read a Thread by id. Returns `null` when absent. Cross-tenant reads
|
|
53
|
+
* reject with `TenantIsolationError`.
|
|
54
|
+
*/
|
|
55
|
+
getThread(threadId: ThreadId, tenantId: TenantId): Promise<Thread | null>;
|
|
56
|
+
/**
|
|
57
|
+
* Persist a mutation to a Thread record. CAS on `ownerVersion`: if the
|
|
58
|
+
* supplied `thread.ownerVersion` does not match the persisted version,
|
|
59
|
+
* rejects with `StaleThreadError`. On success the write commits with
|
|
60
|
+
* `ownerVersion + 1` and a refreshed `updatedAt`.
|
|
61
|
+
*
|
|
62
|
+
* Archival transition (`status: 'open' → 'archived'`) shares this path;
|
|
63
|
+
* the caller is responsible for verifying that no non-terminal Sessions
|
|
64
|
+
* are attached before flipping (see ThreadManager.archiveThread).
|
|
65
|
+
*/
|
|
66
|
+
updateThread(thread: Thread, tenantId: TenantId): Promise<void>;
|
|
67
|
+
/**
|
|
68
|
+
* Hard-delete a Thread record. Idempotent — absent threads succeed as a
|
|
69
|
+
* no-op. Rejects with `TenantIsolationError` on cross-tenant access.
|
|
70
|
+
*
|
|
71
|
+
* **Does NOT cascade to child Sessions** — the caller (typically
|
|
72
|
+
* ThreadManager) enforces the precondition that no Sessions reference
|
|
73
|
+
* this thread. Convention #5: deny-by-default, no implicit cascade.
|
|
74
|
+
*/
|
|
75
|
+
deleteThread(threadId: ThreadId, tenantId: TenantId): Promise<void>;
|
|
76
|
+
/**
|
|
77
|
+
* List all Threads under a project for the given tenant, ordered by
|
|
78
|
+
* `createdAt` ascending. Returns an empty array when none exist.
|
|
79
|
+
* Cross-tenant reads reject with `TenantIsolationError`.
|
|
80
|
+
*
|
|
81
|
+
* The return shape is a concrete snapshot — callers that mutate the
|
|
82
|
+
* result array do not affect store state.
|
|
83
|
+
*/
|
|
84
|
+
listThreads(projectId: ProjectId, tenantId: TenantId): Promise<readonly Thread[]>;
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/types/thread/store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAA;AAC/D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAE5D;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IAClC,SAAS,EAAE,SAAS,CAAA;IACpB;;;;OAIG;IACH,KAAK,EAAE,MAAM,CAAA;CACb;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC3B;;;;;;OAMG;IACH,YAAY,CAAC,MAAM,EAAE,kBAAkB,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAE7E;;;OAGG;IACH,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IAEzE;;;;;;;;;OASG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAE/D;;;;;;;OAOG;IACH,YAAY,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAEnE;;;;;;;OAOG;IACH,WAAW,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAAA;CACjF"}
|
|
@@ -0,0 +1,22 @@
|
|
|
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
|
+
export {};
|
|
22
|
+
//# sourceMappingURL=store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/types/thread/store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG"}
|
package/dist/utils/id.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type { ActivityId, AdvisoryCallId, AdvisoryId, CheckpointId, ChunkId, ConnectorId, ConnectorInstanceId, CredentialId, DocumentId, EmergencySaveId, EnvironmentId, ExecutionContextId, KnowledgeBaseId, MCPClientId, MCPServerId, MCPSessionId, MemoryId, MessageId, PlanId, PluginId, RunId, SandboxId, SessionId, TaskId, TenantId, ThreadId, ToolCallId } from '../types/ids/index.js';
|
|
1
|
+
import type { ActivityId, AdvisoryCallId, AdvisoryId, CheckpointId, ChunkId, ConnectorId, ConnectorInstanceId, CredentialId, DeliverableId, DocumentId, EmergencySaveId, EnvironmentId, ExecutionContextId, HandoffId, KnowledgeBaseId, MCPClientId, MCPServerId, MCPSessionId, MemoryId, MessageId, PlanId, PluginId, ProjectId, RunId, SandboxId, SessionId, SubSessionId, SummaryId, TaskId, TenantId, ThreadId, ToolCallId, WorkspaceId } from '../types/ids/index.js';
|
|
2
|
+
export declare function generateProjectId(): ProjectId;
|
|
2
3
|
export declare function generateThreadId(): ThreadId;
|
|
3
4
|
export declare function generateRunId(): RunId;
|
|
4
5
|
export declare function generateMessageId(): MessageId;
|
|
@@ -26,7 +27,12 @@ export declare function generateEmergencySaveId(): EmergencySaveId;
|
|
|
26
27
|
export declare function generateMemoryId(): MemoryId;
|
|
27
28
|
export declare function generatePluginId(): PluginId;
|
|
28
29
|
export declare function generateSandboxId(): SandboxId;
|
|
29
|
-
export declare function
|
|
30
|
+
export declare function generateWorkspaceId(): WorkspaceId;
|
|
31
|
+
export declare function generateSubSessionId(): SubSessionId;
|
|
32
|
+
export declare function generateSummaryId(): SummaryId;
|
|
33
|
+
export declare function generateHandoffId(): HandoffId;
|
|
34
|
+
export declare function generateDeliverableId(): DeliverableId;
|
|
35
|
+
export declare function parseProjectId(raw: string): ProjectId;
|
|
30
36
|
export declare function parseRunId(raw: string): RunId;
|
|
31
37
|
export declare function parseConnectorInstanceId(raw: string): ConnectorInstanceId;
|
|
32
38
|
export declare function parsePluginId(raw: string): PluginId;
|
package/dist/utils/id.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"id.d.ts","sourceRoot":"","sources":["../../src/utils/id.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACX,UAAU,EACV,cAAc,EACd,UAAU,EACV,YAAY,EACZ,OAAO,EACP,WAAW,EACX,mBAAmB,EACnB,YAAY,EACZ,UAAU,EACV,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,eAAe,EACf,WAAW,EACX,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,MAAM,EACN,QAAQ,EACR,KAAK,EACL,SAAS,EACT,SAAS,EACT,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,MAAM,uBAAuB,CAAA;AAsB9B,wBAAgB,gBAAgB,IAAI,QAAQ,CAE3C;AAED,wBAAgB,aAAa,IAAI,KAAK,CAErC;AAED,wBAAgB,iBAAiB,IAAI,SAAS,CAE7C;AAED,wBAAgB,iBAAiB,IAAI,SAAS,CAE7C;AAED,wBAAgB,kBAAkB,IAAI,UAAU,CAE/C;AAED,wBAAgB,kBAAkB,IAAI,UAAU,CAE/C;AAED,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,wBAAgB,uBAAuB,IAAI,eAAe,CAEzD;AAED,wBAAgB,kBAAkB,IAAI,UAAU,CAE/C;AAED,wBAAgB,eAAe,IAAI,OAAO,CAEzC;AAED,wBAAgB,mBAAmB,IAAI,WAAW,CAEjD;AAED,wBAAgB,2BAA2B,IAAI,mBAAmB,CAEjE;AAED,wBAAgB,gBAAgB,IAAI,QAAQ,CAE3C;AAED,wBAAgB,oBAAoB,IAAI,YAAY,CAEnD;AAED,wBAAgB,0BAA0B,IAAI,kBAAkB,CAE/D;AAED,wBAAgB,mBAAmB,IAAI,WAAW,CAEjD;AAED,wBAAgB,mBAAmB,IAAI,WAAW,CAEjD;AAED,wBAAgB,oBAAoB,IAAI,YAAY,CAEnD;AAED,wBAAgB,qBAAqB,IAAI,aAAa,CAErD;AAED,wBAAgB,oBAAoB,IAAI,YAAY,CAEnD;AAED,wBAAgB,kBAAkB,IAAI,UAAU,CAE/C;AAED,wBAAgB,sBAAsB,IAAI,cAAc,CAEvD;AAED,wBAAgB,uBAAuB,IAAI,eAAe,CAEzD;AAED,wBAAgB,gBAAgB,IAAI,QAAQ,CAE3C;AAED,wBAAgB,gBAAgB,IAAI,QAAQ,CAE3C;AAED,wBAAgB,iBAAiB,IAAI,SAAS,CAE7C;
|
|
1
|
+
{"version":3,"file":"id.d.ts","sourceRoot":"","sources":["../../src/utils/id.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACX,UAAU,EACV,cAAc,EACd,UAAU,EACV,YAAY,EACZ,OAAO,EACP,WAAW,EACX,mBAAmB,EACnB,YAAY,EACZ,aAAa,EACb,UAAU,EACV,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,SAAS,EACT,eAAe,EACf,WAAW,EACX,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,MAAM,EACN,QAAQ,EACR,SAAS,EACT,KAAK,EACL,SAAS,EACT,SAAS,EACT,YAAY,EACZ,SAAS,EACT,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,WAAW,EACX,MAAM,uBAAuB,CAAA;AAsB9B,wBAAgB,iBAAiB,IAAI,SAAS,CAE7C;AAED,wBAAgB,gBAAgB,IAAI,QAAQ,CAE3C;AAED,wBAAgB,aAAa,IAAI,KAAK,CAErC;AAED,wBAAgB,iBAAiB,IAAI,SAAS,CAE7C;AAED,wBAAgB,iBAAiB,IAAI,SAAS,CAE7C;AAED,wBAAgB,kBAAkB,IAAI,UAAU,CAE/C;AAED,wBAAgB,kBAAkB,IAAI,UAAU,CAE/C;AAED,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,wBAAgB,uBAAuB,IAAI,eAAe,CAEzD;AAED,wBAAgB,kBAAkB,IAAI,UAAU,CAE/C;AAED,wBAAgB,eAAe,IAAI,OAAO,CAEzC;AAED,wBAAgB,mBAAmB,IAAI,WAAW,CAEjD;AAED,wBAAgB,2BAA2B,IAAI,mBAAmB,CAEjE;AAED,wBAAgB,gBAAgB,IAAI,QAAQ,CAE3C;AAED,wBAAgB,oBAAoB,IAAI,YAAY,CAEnD;AAED,wBAAgB,0BAA0B,IAAI,kBAAkB,CAE/D;AAED,wBAAgB,mBAAmB,IAAI,WAAW,CAEjD;AAED,wBAAgB,mBAAmB,IAAI,WAAW,CAEjD;AAED,wBAAgB,oBAAoB,IAAI,YAAY,CAEnD;AAED,wBAAgB,qBAAqB,IAAI,aAAa,CAErD;AAED,wBAAgB,oBAAoB,IAAI,YAAY,CAEnD;AAED,wBAAgB,kBAAkB,IAAI,UAAU,CAE/C;AAED,wBAAgB,sBAAsB,IAAI,cAAc,CAEvD;AAED,wBAAgB,uBAAuB,IAAI,eAAe,CAEzD;AAED,wBAAgB,gBAAgB,IAAI,QAAQ,CAE3C;AAED,wBAAgB,gBAAgB,IAAI,QAAQ,CAE3C;AAED,wBAAgB,iBAAiB,IAAI,SAAS,CAE7C;AAED,wBAAgB,mBAAmB,IAAI,WAAW,CAEjD;AAED,wBAAgB,oBAAoB,IAAI,YAAY,CAEnD;AAED,wBAAgB,iBAAiB,IAAI,SAAS,CAE7C;AAED,wBAAgB,iBAAiB,IAAI,SAAS,CAE7C;AAED,wBAAgB,qBAAqB,IAAI,aAAa,CAErD;AASD,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAErD;AACD,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,CAE7C;AACD,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,GAAG,mBAAmB,CAEzE;AACD,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAEnD;AACD,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAErD"}
|
package/dist/utils/id.js
CHANGED
|
@@ -18,6 +18,9 @@ function generateId(prefix, length = 12) {
|
|
|
18
18
|
}
|
|
19
19
|
return `${prefix}${suffix}`;
|
|
20
20
|
}
|
|
21
|
+
export function generateProjectId() {
|
|
22
|
+
return generateId('prj_');
|
|
23
|
+
}
|
|
21
24
|
export function generateThreadId() {
|
|
22
25
|
return generateId('thd_');
|
|
23
26
|
}
|
|
@@ -28,7 +31,7 @@ export function generateMessageId() {
|
|
|
28
31
|
return generateId('msg_');
|
|
29
32
|
}
|
|
30
33
|
export function generateSessionId() {
|
|
31
|
-
return generateId('
|
|
34
|
+
return generateId('ses_');
|
|
32
35
|
}
|
|
33
36
|
export function generateToolCallId() {
|
|
34
37
|
return generateId('call_', 8);
|
|
@@ -58,7 +61,7 @@ export function generateConnectorInstanceId() {
|
|
|
58
61
|
return generateId('ci_');
|
|
59
62
|
}
|
|
60
63
|
export function generateTenantId() {
|
|
61
|
-
return generateId('
|
|
64
|
+
return generateId('tnt_');
|
|
62
65
|
}
|
|
63
66
|
export function generateCredentialId() {
|
|
64
67
|
return generateId('cred_');
|
|
@@ -99,14 +102,29 @@ export function generatePluginId() {
|
|
|
99
102
|
export function generateSandboxId() {
|
|
100
103
|
return generateId('sbx_');
|
|
101
104
|
}
|
|
105
|
+
export function generateWorkspaceId() {
|
|
106
|
+
return generateId('wsp_');
|
|
107
|
+
}
|
|
108
|
+
export function generateSubSessionId() {
|
|
109
|
+
return generateId('sub_');
|
|
110
|
+
}
|
|
111
|
+
export function generateSummaryId() {
|
|
112
|
+
return generateId('sum_');
|
|
113
|
+
}
|
|
114
|
+
export function generateHandoffId() {
|
|
115
|
+
return generateId('hof_');
|
|
116
|
+
}
|
|
117
|
+
export function generateDeliverableId() {
|
|
118
|
+
return generateId('del_');
|
|
119
|
+
}
|
|
102
120
|
function parseId(raw, prefix, typeName) {
|
|
103
121
|
if (!raw.startsWith(prefix)) {
|
|
104
122
|
throw new Error(`Invalid ${typeName}: expected "${prefix}" prefix, got "${raw}"`);
|
|
105
123
|
}
|
|
106
124
|
return raw;
|
|
107
125
|
}
|
|
108
|
-
export function
|
|
109
|
-
return parseId(raw, '
|
|
126
|
+
export function parseProjectId(raw) {
|
|
127
|
+
return parseId(raw, 'prj_', 'ProjectId');
|
|
110
128
|
}
|
|
111
129
|
export function parseRunId(raw) {
|
|
112
130
|
return parseId(raw, 'run_', 'RunId');
|
package/dist/utils/id.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"id.js","sourceRoot":"","sources":["../../src/utils/id.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"id.js","sourceRoot":"","sources":["../../src/utils/id.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@namzu/sdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "Open-source AI agent SDK with a built-in runtime. Nothing between you and your agents.",
|
|
5
5
|
"license": "FSL-1.1-MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -16,8 +16,8 @@
|
|
|
16
16
|
"types": "./dist/index.d.ts",
|
|
17
17
|
"exports": {
|
|
18
18
|
".": {
|
|
19
|
-
"
|
|
20
|
-
"
|
|
19
|
+
"types": "./dist/index.d.ts",
|
|
20
|
+
"import": "./dist/index.js"
|
|
21
21
|
}
|
|
22
22
|
},
|
|
23
23
|
"files": [
|
|
@@ -49,6 +49,7 @@
|
|
|
49
49
|
"devDependencies": {
|
|
50
50
|
"@biomejs/biome": "^1.9.4",
|
|
51
51
|
"@types/node": "^22.19.17",
|
|
52
|
+
"knip": "^6.4.1",
|
|
52
53
|
"typescript": "^5.5.0",
|
|
53
54
|
"vitest": "^2.0.0"
|
|
54
55
|
},
|
|
@@ -60,13 +61,7 @@
|
|
|
60
61
|
"format": "biome format --write src/",
|
|
61
62
|
"test": "vitest run --passWithNoTests",
|
|
62
63
|
"typecheck": "tsc --noEmit",
|
|
63
|
-
"
|
|
64
|
-
"
|
|
65
|
-
"release:minor": "bash scripts/release.sh minor",
|
|
66
|
-
"release:major": "bash scripts/release.sh major",
|
|
67
|
-
"release:rc": "bash scripts/release.sh rc",
|
|
68
|
-
"release:beta": "bash scripts/release.sh beta",
|
|
69
|
-
"release:stable": "bash scripts/release.sh stable",
|
|
70
|
-
"release:dry": "bash scripts/release.sh patch --dry-run"
|
|
64
|
+
"knip": "knip",
|
|
65
|
+
"knip:production": "knip --production"
|
|
71
66
|
}
|
|
72
67
|
}
|
|
@@ -32,8 +32,10 @@ export class ReactiveAgent extends AbstractAgent<ReactiveAgentConfig, ReactiveAg
|
|
|
32
32
|
): Promise<ReactiveAgentResult> {
|
|
33
33
|
const startTime = Date.now()
|
|
34
34
|
|
|
35
|
-
if (!config.threadId) {
|
|
36
|
-
throw new Error(
|
|
35
|
+
if (!config.sessionId || !config.threadId || !config.projectId || !config.tenantId) {
|
|
36
|
+
throw new Error(
|
|
37
|
+
'ReactiveAgent requires sessionId, threadId, projectId, and tenantId in config (session-hierarchy.md §12.1).',
|
|
38
|
+
)
|
|
37
39
|
}
|
|
38
40
|
|
|
39
41
|
const run = await drainQuery(
|
|
@@ -58,7 +60,10 @@ export class ReactiveAgent extends AbstractAgent<ReactiveAgentConfig, ReactiveAg
|
|
|
58
60
|
agentId: this.metadata.id,
|
|
59
61
|
agentName: this.metadata.name,
|
|
60
62
|
workingDirectory: input.workingDirectory,
|
|
63
|
+
sessionId: config.sessionId,
|
|
61
64
|
threadId: config.threadId,
|
|
65
|
+
projectId: config.projectId,
|
|
66
|
+
tenantId: config.tenantId,
|
|
62
67
|
parentRunId: config.parentRunId,
|
|
63
68
|
depth: config.depth,
|
|
64
69
|
contextLevel: config.contextLevel,
|