@geminixiang/mikan 1.0.0-beta.76 → 1.0.0-beta.78
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 +39 -0
- package/dist/adapters/commands/login.d.ts.map +1 -1
- package/dist/adapters/commands/login.js +0 -9
- package/dist/adapters/commands/login.js.map +1 -1
- package/dist/adapters/commands/manifest.d.ts +0 -19
- package/dist/adapters/commands/manifest.d.ts.map +1 -1
- package/dist/adapters/commands/manifest.js +0 -34
- package/dist/adapters/commands/manifest.js.map +1 -1
- package/dist/adapters/commands/model.d.ts +0 -5
- package/dist/adapters/commands/model.d.ts.map +1 -1
- package/dist/adapters/commands/model.js +0 -5
- package/dist/adapters/commands/model.js.map +1 -1
- package/dist/adapters/commands/new.d.ts.map +1 -1
- package/dist/adapters/commands/new.js +0 -2
- package/dist/adapters/commands/new.js.map +1 -1
- package/dist/adapters/commands/registry.d.ts +0 -1
- package/dist/adapters/commands/registry.d.ts.map +1 -1
- package/dist/adapters/commands/registry.js +0 -8
- package/dist/adapters/commands/registry.js.map +1 -1
- package/dist/adapters/commands/session-view.d.ts.map +1 -1
- package/dist/adapters/commands/session-view.js +0 -2
- package/dist/adapters/commands/session-view.js.map +1 -1
- package/dist/adapters/commands/types.d.ts +0 -29
- package/dist/adapters/commands/types.d.ts.map +1 -1
- package/dist/adapters/commands/types.js.map +1 -1
- package/dist/adapters/commands/utils.d.ts +0 -3
- package/dist/adapters/commands/utils.d.ts.map +1 -1
- package/dist/adapters/commands/utils.js +0 -3
- package/dist/adapters/commands/utils.js.map +1 -1
- package/dist/adapters/discord/bot.d.ts +0 -4
- package/dist/adapters/discord/bot.d.ts.map +1 -1
- package/dist/adapters/discord/bot.js +5 -41
- package/dist/adapters/discord/bot.js.map +1 -1
- package/dist/adapters/discord/components.d.ts +0 -23
- package/dist/adapters/discord/components.d.ts.map +1 -1
- package/dist/adapters/discord/components.js +0 -23
- package/dist/adapters/discord/components.js.map +1 -1
- package/dist/adapters/discord/context.d.ts.map +1 -1
- package/dist/adapters/discord/context.js +1 -11
- package/dist/adapters/discord/context.js.map +1 -1
- package/dist/adapters/discord/format.d.ts +0 -1
- package/dist/adapters/discord/format.d.ts.map +1 -1
- package/dist/adapters/discord/format.js +0 -37
- package/dist/adapters/discord/format.js.map +1 -1
- package/dist/adapters/github/bot.d.ts +0 -44
- package/dist/adapters/github/bot.d.ts.map +1 -1
- package/dist/adapters/github/bot.js +1 -120
- package/dist/adapters/github/bot.js.map +1 -1
- package/dist/adapters/github/client.d.ts +0 -57
- package/dist/adapters/github/client.d.ts.map +1 -1
- package/dist/adapters/github/client.js +0 -59
- package/dist/adapters/github/client.js.map +1 -1
- package/dist/adapters/github/context.d.ts.map +1 -1
- package/dist/adapters/github/context.js +1 -8
- package/dist/adapters/github/context.js.map +1 -1
- package/dist/adapters/github/github-ops.d.ts +0 -55
- package/dist/adapters/github/github-ops.d.ts.map +1 -1
- package/dist/adapters/github/github-ops.js +0 -59
- package/dist/adapters/github/github-ops.js.map +1 -1
- package/dist/adapters/github/ids.d.ts +0 -27
- package/dist/adapters/github/ids.d.ts.map +1 -1
- package/dist/adapters/github/ids.js +0 -29
- package/dist/adapters/github/ids.js.map +1 -1
- package/dist/adapters/github/repo.d.ts +0 -25
- package/dist/adapters/github/repo.d.ts.map +1 -1
- package/dist/adapters/github/repo.js +0 -49
- package/dist/adapters/github/repo.js.map +1 -1
- package/dist/adapters/github/tool-pack.d.ts +0 -10
- package/dist/adapters/github/tool-pack.d.ts.map +1 -1
- package/dist/adapters/github/tool-pack.js +0 -10
- package/dist/adapters/github/tool-pack.js.map +1 -1
- package/dist/adapters/github/tools/checks.d.ts +0 -6
- package/dist/adapters/github/tools/checks.d.ts.map +1 -1
- package/dist/adapters/github/tools/checks.js +0 -7
- package/dist/adapters/github/tools/checks.js.map +1 -1
- package/dist/adapters/github/tools/issue.d.ts +0 -5
- package/dist/adapters/github/tools/issue.d.ts.map +1 -1
- package/dist/adapters/github/tools/issue.js +0 -5
- package/dist/adapters/github/tools/issue.js.map +1 -1
- package/dist/adapters/github/tools/pr.d.ts +0 -7
- package/dist/adapters/github/tools/pr.d.ts.map +1 -1
- package/dist/adapters/github/tools/pr.js +0 -7
- package/dist/adapters/github/tools/pr.js.map +1 -1
- package/dist/adapters/github/tools/read.d.ts +0 -6
- package/dist/adapters/github/tools/read.d.ts.map +1 -1
- package/dist/adapters/github/tools/read.js +0 -8
- package/dist/adapters/github/tools/read.js.map +1 -1
- package/dist/adapters/github/tools/review-reply.d.ts +0 -5
- package/dist/adapters/github/tools/review-reply.d.ts.map +1 -1
- package/dist/adapters/github/tools/review-reply.js +0 -5
- package/dist/adapters/github/tools/review-reply.js.map +1 -1
- package/dist/adapters/github/tools/sync.d.ts +0 -6
- package/dist/adapters/github/tools/sync.d.ts.map +1 -1
- package/dist/adapters/github/tools/sync.js +0 -6
- package/dist/adapters/github/tools/sync.js.map +1 -1
- package/dist/adapters/github/types.d.ts +0 -88
- package/dist/adapters/github/types.d.ts.map +1 -1
- package/dist/adapters/github/types.js.map +1 -1
- package/dist/adapters/github/webhook.d.ts +0 -13
- package/dist/adapters/github/webhook.d.ts.map +1 -1
- package/dist/adapters/github/webhook.js +0 -16
- package/dist/adapters/github/webhook.js.map +1 -1
- package/dist/adapters/index.d.ts +3 -4
- package/dist/adapters/index.d.ts.map +1 -1
- package/dist/adapters/index.js +4 -4
- package/dist/adapters/index.js.map +1 -1
- package/dist/adapters/intake.d.ts +0 -17
- package/dist/adapters/intake.d.ts.map +1 -1
- package/dist/adapters/intake.js +6 -32
- package/dist/adapters/intake.js.map +1 -1
- package/dist/adapters/markdown-tables.d.ts +0 -10
- package/dist/adapters/markdown-tables.d.ts.map +1 -1
- package/dist/adapters/markdown-tables.js +1 -42
- package/dist/adapters/markdown-tables.js.map +1 -1
- package/dist/adapters/progressive-renderer.d.ts.map +1 -1
- package/dist/adapters/progressive-renderer.js +3 -25
- package/dist/adapters/progressive-renderer.js.map +1 -1
- package/dist/adapters/shared.d.ts +0 -57
- package/dist/adapters/shared.d.ts.map +1 -1
- package/dist/adapters/shared.js +0 -71
- package/dist/adapters/shared.js.map +1 -1
- package/dist/adapters/slack/assistant.d.ts +0 -49
- package/dist/adapters/slack/assistant.d.ts.map +1 -1
- package/dist/adapters/slack/assistant.js +0 -97
- package/dist/adapters/slack/assistant.js.map +1 -1
- package/dist/adapters/slack/auto-reply-context.d.ts +0 -7
- package/dist/adapters/slack/auto-reply-context.d.ts.map +1 -1
- package/dist/adapters/slack/auto-reply-context.js +0 -7
- package/dist/adapters/slack/auto-reply-context.js.map +1 -1
- package/dist/adapters/slack/blocks.d.ts +0 -9
- package/dist/adapters/slack/blocks.d.ts.map +1 -1
- package/dist/adapters/slack/blocks.js +0 -20
- package/dist/adapters/slack/blocks.js.map +1 -1
- package/dist/adapters/slack/bot.d.ts +0 -116
- package/dist/adapters/slack/bot.d.ts.map +1 -1
- package/dist/adapters/slack/bot.js +7 -231
- package/dist/adapters/slack/bot.js.map +1 -1
- package/dist/adapters/slack/context.d.ts.map +1 -1
- package/dist/adapters/slack/context.js +1 -3
- package/dist/adapters/slack/context.js.map +1 -1
- package/dist/adapters/slack/jev-context.d.ts +0 -13
- package/dist/adapters/slack/jev-context.d.ts.map +1 -1
- package/dist/adapters/slack/jev-context.js +0 -12
- package/dist/adapters/slack/jev-context.js.map +1 -1
- package/dist/adapters/slack/markdown.d.ts +0 -1
- package/dist/adapters/slack/markdown.d.ts.map +1 -1
- package/dist/adapters/slack/markdown.js +0 -5
- package/dist/adapters/slack/markdown.js.map +1 -1
- package/dist/adapters/slack/persona.d.ts +0 -9
- package/dist/adapters/slack/persona.d.ts.map +1 -1
- package/dist/adapters/slack/persona.js +0 -9
- package/dist/adapters/slack/persona.js.map +1 -1
- package/dist/adapters/slack/response-lifecycle.d.ts.map +1 -1
- package/dist/adapters/slack/response-lifecycle.js +1 -45
- package/dist/adapters/slack/response-lifecycle.js.map +1 -1
- package/dist/adapters/slack/session.d.ts +2 -1
- package/dist/adapters/slack/session.d.ts.map +1 -1
- package/dist/adapters/slack/session.js +2 -2
- package/dist/adapters/slack/session.js.map +1 -1
- package/dist/adapters/slack/stream-limits.d.ts +0 -25
- package/dist/adapters/slack/stream-limits.d.ts.map +1 -1
- package/dist/adapters/slack/stream-limits.js +0 -34
- package/dist/adapters/slack/stream-limits.js.map +1 -1
- package/dist/adapters/slack/task-intent.d.ts +0 -13
- package/dist/adapters/slack/task-intent.d.ts.map +1 -1
- package/dist/adapters/slack/task-intent.js +0 -7
- package/dist/adapters/slack/task-intent.js.map +1 -1
- package/dist/adapters/slack/task-status.d.ts +0 -1
- package/dist/adapters/slack/task-status.d.ts.map +1 -1
- package/dist/adapters/slack/task-status.js +1 -9
- package/dist/adapters/slack/task-status.js.map +1 -1
- package/dist/adapters/slack/tool-pack.d.ts +0 -6
- package/dist/adapters/slack/tool-pack.d.ts.map +1 -1
- package/dist/adapters/slack/tool-pack.js +0 -6
- package/dist/adapters/slack/tool-pack.js.map +1 -1
- package/dist/adapters/slack/tools/blockkit.d.ts.map +1 -1
- package/dist/adapters/slack/tools/blockkit.js +0 -11
- package/dist/adapters/slack/tools/blockkit.js.map +1 -1
- package/dist/adapters/slack/types.d.ts +0 -19
- package/dist/adapters/slack/types.d.ts.map +1 -1
- package/dist/adapters/slack/types.js.map +1 -1
- package/dist/adapters/slack/update-diagnostics.d.ts +0 -1
- package/dist/adapters/slack/update-diagnostics.d.ts.map +1 -1
- package/dist/adapters/slack/update-diagnostics.js +1 -7
- package/dist/adapters/slack/update-diagnostics.js.map +1 -1
- package/dist/adapters/telegram/bot.d.ts +0 -6
- package/dist/adapters/telegram/bot.d.ts.map +1 -1
- package/dist/adapters/telegram/bot.js +1 -50
- package/dist/adapters/telegram/bot.js.map +1 -1
- package/dist/adapters/telegram/context.d.ts.map +1 -1
- package/dist/adapters/telegram/context.js +1 -8
- package/dist/adapters/telegram/context.js.map +1 -1
- package/dist/adapters/types.d.ts +0 -57
- package/dist/adapters/types.d.ts.map +1 -1
- package/dist/adapters/types.js.map +1 -1
- package/dist/adapters/web/admin/client-assets.d.ts +4 -0
- package/dist/adapters/web/admin/client-assets.d.ts.map +1 -0
- package/dist/adapters/web/admin/client-assets.js +1765 -0
- package/dist/adapters/web/admin/client-assets.js.map +1 -0
- package/dist/adapters/web/admin/portal.d.ts +0 -10
- package/dist/adapters/web/admin/portal.d.ts.map +1 -1
- package/dist/adapters/web/admin/portal.js +6 -1909
- package/dist/adapters/web/admin/portal.js.map +1 -1
- package/dist/adapters/web/admin/types.d.ts +0 -3
- package/dist/adapters/web/admin/types.d.ts.map +1 -1
- package/dist/adapters/web/admin/types.js.map +1 -1
- package/dist/adapters/web/login/oauth.d.ts.map +1 -1
- package/dist/adapters/web/login/oauth.js +3 -7
- package/dist/adapters/web/login/oauth.js.map +1 -1
- package/dist/adapters/web/login/portal.d.ts +0 -10
- package/dist/adapters/web/login/portal.d.ts.map +1 -1
- package/dist/adapters/web/login/portal.js +4 -37
- package/dist/adapters/web/login/portal.js.map +1 -1
- package/dist/adapters/web/login/types.d.ts +0 -5
- package/dist/adapters/web/login/types.d.ts.map +1 -1
- package/dist/adapters/web/login/types.js.map +1 -1
- package/dist/adapters/web/portal-shell.d.ts +0 -12
- package/dist/adapters/web/portal-shell.d.ts.map +1 -1
- package/dist/adapters/web/portal-shell.js +8 -25
- package/dist/adapters/web/portal-shell.js.map +1 -1
- package/dist/adapters/web/server.d.ts +0 -1
- package/dist/adapters/web/server.d.ts.map +1 -1
- package/dist/adapters/web/server.js +0 -2
- package/dist/adapters/web/server.js.map +1 -1
- package/dist/adapters/web/session-view/portal.d.ts.map +1 -1
- package/dist/adapters/web/session-view/portal.js +13 -24
- package/dist/adapters/web/session-view/portal.js.map +1 -1
- package/dist/adapters/web/session-view/types.d.ts.map +1 -1
- package/dist/adapters/web/session-view/types.js.map +1 -1
- package/dist/adapters/web/token-store.d.ts +0 -2
- package/dist/adapters/web/token-store.d.ts.map +1 -1
- package/dist/adapters/web/token-store.js +0 -2
- package/dist/adapters/web/token-store.js.map +1 -1
- package/dist/cli/arg-grammar.d.ts +0 -3
- package/dist/cli/arg-grammar.d.ts.map +1 -1
- package/dist/cli/arg-grammar.js +0 -3
- package/dist/cli/arg-grammar.js.map +1 -1
- package/dist/cli/boot.d.ts.map +1 -1
- package/dist/cli/boot.js +3 -12
- package/dist/cli/boot.js.map +1 -1
- package/dist/cli/download.d.ts.map +1 -1
- package/dist/cli/download.js +2 -6
- package/dist/cli/download.js.map +1 -1
- package/dist/cli/office.d.ts.map +1 -1
- package/dist/cli/office.js +0 -31
- package/dist/cli/office.js.map +1 -1
- package/dist/cli/onboard.d.ts +0 -2
- package/dist/cli/onboard.d.ts.map +1 -1
- package/dist/cli/onboard.js +0 -30
- package/dist/cli/onboard.js.map +1 -1
- package/dist/cli/process-lifecycle.d.ts +0 -5
- package/dist/cli/process-lifecycle.d.ts.map +1 -1
- package/dist/cli/process-lifecycle.js +0 -6
- package/dist/cli/process-lifecycle.js.map +1 -1
- package/dist/cli/sandbox.d.ts +3 -0
- package/dist/cli/sandbox.d.ts.map +1 -0
- package/dist/cli/sandbox.js +79 -0
- package/dist/cli/sandbox.js.map +1 -0
- package/dist/cli/sessions.d.ts.map +1 -1
- package/dist/cli/sessions.js +0 -11
- package/dist/cli/sessions.js.map +1 -1
- package/dist/cli/types.d.ts +2 -6
- package/dist/cli/types.d.ts.map +1 -1
- package/dist/cli/types.js.map +1 -1
- package/dist/env-manifest.d.ts +0 -21
- package/dist/env-manifest.d.ts.map +1 -1
- package/dist/env-manifest.js +0 -11
- package/dist/env-manifest.js.map +1 -1
- package/dist/events/index.d.ts +0 -51
- package/dist/events/index.d.ts.map +1 -1
- package/dist/events/index.js +0 -42
- package/dist/events/index.js.map +1 -1
- package/dist/events/scheduler.d.ts +0 -8
- package/dist/events/scheduler.d.ts.map +1 -1
- package/dist/events/scheduler.js +0 -8
- package/dist/events/scheduler.js.map +1 -1
- package/dist/file-guards.d.ts +0 -15
- package/dist/file-guards.d.ts.map +1 -1
- package/dist/file-guards.js +2 -26
- package/dist/file-guards.js.map +1 -1
- package/dist/harness/execution-env.d.ts +0 -15
- package/dist/harness/execution-env.d.ts.map +1 -1
- package/dist/harness/execution-env.js +4 -55
- package/dist/harness/execution-env.js.map +1 -1
- package/dist/harness/http.d.ts +0 -12
- package/dist/harness/http.d.ts.map +1 -1
- package/dist/harness/http.js +0 -34
- package/dist/harness/http.js.map +1 -1
- package/dist/harness/index.d.ts +4 -7
- package/dist/harness/index.d.ts.map +1 -1
- package/dist/harness/index.js +4 -7
- package/dist/harness/index.js.map +1 -1
- package/dist/harness/jev.d.ts +0 -28
- package/dist/harness/jev.d.ts.map +1 -1
- package/dist/harness/jev.js +0 -45
- package/dist/harness/jev.js.map +1 -1
- package/dist/harness/mcp-result.d.ts +20 -0
- package/dist/harness/mcp-result.d.ts.map +1 -0
- package/dist/harness/mcp-result.js +171 -0
- package/dist/harness/mcp-result.js.map +1 -0
- package/dist/harness/mcp.d.ts +0 -19
- package/dist/harness/mcp.d.ts.map +1 -1
- package/dist/harness/mcp.js +7 -66
- package/dist/harness/mcp.js.map +1 -1
- package/dist/harness/models.d.ts +0 -19
- package/dist/harness/models.d.ts.map +1 -1
- package/dist/harness/models.js +0 -52
- package/dist/harness/models.js.map +1 -1
- package/dist/harness/open-connector.d.ts +0 -12
- package/dist/harness/open-connector.d.ts.map +1 -1
- package/dist/harness/open-connector.js +0 -22
- package/dist/harness/open-connector.js.map +1 -1
- package/dist/harness/presenter.d.ts +1 -0
- package/dist/harness/presenter.d.ts.map +1 -1
- package/dist/harness/presenter.js +16 -66
- package/dist/harness/presenter.js.map +1 -1
- package/dist/harness/prompt.d.ts +0 -11
- package/dist/harness/prompt.d.ts.map +1 -1
- package/dist/harness/prompt.js +1 -18
- package/dist/harness/prompt.js.map +1 -1
- package/dist/harness/runner.d.ts.map +1 -1
- package/dist/harness/runner.js +8 -28
- package/dist/harness/runner.js.map +1 -1
- package/dist/harness/session.d.ts +11 -28
- package/dist/harness/session.d.ts.map +1 -1
- package/dist/harness/session.js +100 -38
- package/dist/harness/session.js.map +1 -1
- package/dist/harness/skills.d.ts +0 -22
- package/dist/harness/skills.d.ts.map +1 -1
- package/dist/harness/skills.js +0 -20
- package/dist/harness/skills.js.map +1 -1
- package/dist/harness/subagent-profiles.d.ts +0 -4
- package/dist/harness/subagent-profiles.d.ts.map +1 -1
- package/dist/harness/subagent-profiles.js +0 -29
- package/dist/harness/subagent-profiles.js.map +1 -1
- package/dist/harness/subagent.d.ts +0 -25
- package/dist/harness/subagent.d.ts.map +1 -1
- package/dist/harness/subagent.js +1 -70
- package/dist/harness/subagent.js.map +1 -1
- package/dist/harness/tools/event.d.ts.map +1 -1
- package/dist/harness/tools/event.js +0 -9
- package/dist/harness/tools/event.js.map +1 -1
- package/dist/harness/tools/generate-image.d.ts +0 -6
- package/dist/harness/tools/generate-image.d.ts.map +1 -1
- package/dist/harness/tools/generate-image.js.map +1 -1
- package/dist/harness/tools/host-fn-tool.d.ts +0 -17
- package/dist/harness/tools/host-fn-tool.d.ts.map +1 -1
- package/dist/harness/tools/host-fn-tool.js +0 -16
- package/dist/harness/tools/host-fn-tool.js.map +1 -1
- package/dist/harness/tools/index.d.ts +1 -7
- package/dist/harness/tools/index.d.ts.map +1 -1
- package/dist/harness/tools/index.js +3 -14
- package/dist/harness/tools/index.js.map +1 -1
- package/dist/harness/tools/jev-browser.d.ts +4 -94
- package/dist/harness/tools/jev-browser.d.ts.map +1 -1
- package/dist/harness/tools/jev-browser.js +203 -92
- package/dist/harness/tools/jev-browser.js.map +1 -1
- package/dist/harness/tools/jev.d.ts +0 -8
- package/dist/harness/tools/jev.d.ts.map +1 -1
- package/dist/harness/tools/jev.js +0 -11
- package/dist/harness/tools/jev.js.map +1 -1
- package/dist/harness/tools/pi-tools.d.ts +1 -11
- package/dist/harness/tools/pi-tools.d.ts.map +1 -1
- package/dist/harness/tools/pi-tools.js +1 -30
- package/dist/harness/tools/pi-tools.js.map +1 -1
- package/dist/harness/tools/react.d.ts +0 -5
- package/dist/harness/tools/react.d.ts.map +1 -1
- package/dist/harness/tools/react.js +0 -5
- package/dist/harness/tools/react.js.map +1 -1
- package/dist/harness/tools/secret-redaction.d.ts +0 -25
- package/dist/harness/tools/secret-redaction.d.ts.map +1 -1
- package/dist/harness/tools/secret-redaction.js +3 -36
- package/dist/harness/tools/secret-redaction.js.map +1 -1
- package/dist/harness/tools/subagent.d.ts +0 -34
- package/dist/harness/tools/subagent.d.ts.map +1 -1
- package/dist/harness/tools/subagent.js +0 -92
- package/dist/harness/tools/subagent.js.map +1 -1
- package/dist/harness/tools/task.d.ts +0 -1
- package/dist/harness/tools/task.d.ts.map +1 -1
- package/dist/harness/tools/task.js +0 -1
- package/dist/harness/tools/task.js.map +1 -1
- package/dist/harness/tools/types.d.ts +0 -16
- package/dist/harness/tools/types.d.ts.map +1 -1
- package/dist/harness/tools/types.js.map +1 -1
- package/dist/harness/types.d.ts +1 -77
- package/dist/harness/types.d.ts.map +1 -1
- package/dist/harness/types.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -2
- package/dist/index.js.map +1 -1
- package/dist/log.d.ts.map +1 -1
- package/dist/log.js +0 -13
- package/dist/log.js.map +1 -1
- package/dist/main.js +7 -52
- package/dist/main.js.map +1 -1
- package/dist/memory-capture/index.d.ts +16 -0
- package/dist/memory-capture/index.d.ts.map +1 -0
- package/dist/memory-capture/index.js +194 -0
- package/dist/memory-capture/index.js.map +1 -0
- package/dist/memory-capture/types.d.ts +27 -0
- package/dist/memory-capture/types.d.ts.map +1 -0
- package/dist/memory-capture/types.js.map +1 -0
- package/dist/observability/index.d.ts +0 -9
- package/dist/observability/index.d.ts.map +1 -1
- package/dist/observability/index.js +0 -9
- package/dist/observability/index.js.map +1 -1
- package/dist/observability/instrument.js +0 -5
- package/dist/observability/instrument.js.map +1 -1
- package/dist/observability/otel.js +0 -1
- package/dist/observability/otel.js.map +1 -1
- package/dist/observability/sentry.d.ts +0 -18
- package/dist/observability/sentry.d.ts.map +1 -1
- package/dist/observability/sentry.js +0 -36
- package/dist/observability/sentry.js.map +1 -1
- package/dist/observability/types.d.ts +1 -10
- package/dist/observability/types.d.ts.map +1 -1
- package/dist/observability/types.js.map +1 -1
- package/dist/office/index.d.ts +0 -76
- package/dist/office/index.d.ts.map +1 -1
- package/dist/office/index.js +4 -154
- package/dist/office/index.js.map +1 -1
- package/dist/office/projection.d.ts +0 -29
- package/dist/office/projection.d.ts.map +1 -1
- package/dist/office/projection.js +5 -41
- package/dist/office/projection.js.map +1 -1
- package/dist/office/types.d.ts +0 -66
- package/dist/office/types.d.ts.map +1 -1
- package/dist/office/types.js.map +1 -1
- package/dist/runtime/conversation-runtime.d.ts.map +1 -1
- package/dist/runtime/conversation-runtime.js +22 -83
- package/dist/runtime/conversation-runtime.js.map +1 -1
- package/dist/runtime/session-lifecycle.d.ts +0 -10
- package/dist/runtime/session-lifecycle.d.ts.map +1 -1
- package/dist/runtime/session-lifecycle.js +0 -12
- package/dist/runtime/session-lifecycle.js.map +1 -1
- package/dist/runtime/types.d.ts +2 -29
- package/dist/runtime/types.d.ts.map +1 -1
- package/dist/runtime/types.js.map +1 -1
- package/dist/sandbox/cloudflare.d.ts.map +1 -1
- package/dist/sandbox/cloudflare.js +2 -1
- package/dist/sandbox/cloudflare.js.map +1 -1
- package/dist/sandbox/container.d.ts.map +1 -1
- package/dist/sandbox/container.js +21 -15
- package/dist/sandbox/container.js.map +1 -1
- package/dist/sandbox/host.d.ts.map +1 -1
- package/dist/sandbox/host.js +0 -2
- package/dist/sandbox/host.js.map +1 -1
- package/dist/sandbox/identity.d.ts +0 -28
- package/dist/sandbox/identity.d.ts.map +1 -1
- package/dist/sandbox/identity.js +0 -28
- package/dist/sandbox/identity.js.map +1 -1
- package/dist/sandbox/index.d.ts +0 -18
- package/dist/sandbox/index.d.ts.map +1 -1
- package/dist/sandbox/index.js +2 -19
- package/dist/sandbox/index.js.map +1 -1
- package/dist/sandbox/layout.d.ts +7 -0
- package/dist/sandbox/layout.d.ts.map +1 -0
- package/dist/sandbox/layout.js +13 -0
- package/dist/sandbox/layout.js.map +1 -0
- package/dist/sandbox/provisioner.d.ts +24 -65
- package/dist/sandbox/provisioner.d.ts.map +1 -1
- package/dist/sandbox/provisioner.js +213 -125
- package/dist/sandbox/provisioner.js.map +1 -1
- package/dist/sandbox/types.d.ts +0 -39
- package/dist/sandbox/types.d.ts.map +1 -1
- package/dist/sandbox/types.js.map +1 -1
- package/dist/sandbox/utils.d.ts +2 -5
- package/dist/sandbox/utils.d.ts.map +1 -1
- package/dist/sandbox/utils.js +31 -31
- package/dist/sandbox/utils.js.map +1 -1
- package/dist/sessions/chat-history-sync.d.ts +0 -6
- package/dist/sessions/chat-history-sync.d.ts.map +1 -1
- package/dist/sessions/chat-history-sync.js +1 -33
- package/dist/sessions/chat-history-sync.js.map +1 -1
- package/dist/sessions/history-line.d.ts +0 -20
- package/dist/sessions/history-line.d.ts.map +1 -1
- package/dist/sessions/history-line.js +0 -20
- package/dist/sessions/history-line.js.map +1 -1
- package/dist/sessions/migrate-common.d.ts +0 -15
- package/dist/sessions/migrate-common.d.ts.map +1 -1
- package/dist/sessions/migrate-common.js +0 -19
- package/dist/sessions/migrate-common.js.map +1 -1
- package/dist/sessions/migrate-pi-084.d.ts.map +1 -1
- package/dist/sessions/migrate-pi-084.js +0 -7
- package/dist/sessions/migrate-pi-084.js.map +1 -1
- package/dist/sessions/migrate-v3.d.ts +0 -7
- package/dist/sessions/migrate-v3.d.ts.map +1 -1
- package/dist/sessions/migrate-v3.js +1 -67
- package/dist/sessions/migrate-v3.js.map +1 -1
- package/dist/sessions/session-key.d.ts +3 -17
- package/dist/sessions/session-key.d.ts.map +1 -1
- package/dist/sessions/session-key.js +8 -35
- package/dist/sessions/session-key.js.map +1 -1
- package/dist/sessions/session-store.d.ts +1 -7
- package/dist/sessions/session-store.d.ts.map +1 -1
- package/dist/sessions/session-store.js +8 -50
- package/dist/sessions/session-store.js.map +1 -1
- package/dist/sessions/store.d.ts +0 -60
- package/dist/sessions/store.d.ts.map +1 -1
- package/dist/sessions/store.js +0 -113
- package/dist/sessions/store.js.map +1 -1
- package/dist/sessions/types.d.ts +0 -17
- package/dist/sessions/types.d.ts.map +1 -1
- package/dist/sessions/types.js.map +1 -1
- package/dist/settings/apply.d.ts +0 -6
- package/dist/settings/apply.d.ts.map +1 -1
- package/dist/settings/apply.js +0 -29
- package/dist/settings/apply.js.map +1 -1
- package/dist/settings/index.d.ts +0 -53
- package/dist/settings/index.d.ts.map +1 -1
- package/dist/settings/index.js +0 -77
- package/dist/settings/index.js.map +1 -1
- package/dist/settings/migrate.d.ts +0 -5
- package/dist/settings/migrate.d.ts.map +1 -1
- package/dist/settings/migrate.js +0 -17
- package/dist/settings/migrate.js.map +1 -1
- package/dist/types.d.ts +9 -159
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/vault/index.d.ts +2 -36
- package/dist/vault/index.d.ts.map +1 -1
- package/dist/vault/index.js +135 -65
- package/dist/vault/index.js.map +1 -1
- package/dist/vault/types.d.ts +0 -15
- package/dist/vault/types.d.ts.map +1 -1
- package/dist/vault/types.js.map +1 -1
- package/package.json +1 -1
- package/dist/dream/index.d.ts +0 -20
- package/dist/dream/index.d.ts.map +0 -1
- package/dist/dream/index.js +0 -264
- package/dist/dream/index.js.map +0 -1
- package/dist/dream/types.d.ts +0 -30
- package/dist/dream/types.d.ts.map +0 -1
- package/dist/dream/types.js.map +0 -1
- /package/dist/{dream → memory-capture}/types.js +0 -0
|
@@ -1,32 +1,18 @@
|
|
|
1
|
-
import type { ConversationKind } from "../types.js";
|
|
1
|
+
import type { ConversationKind, OfficeAddress } from "../types.js";
|
|
2
2
|
export type { ResolveSessionKeyOptions } from "./types.js";
|
|
3
3
|
import type { ResolveSessionKeyOptions } from "./types.js";
|
|
4
|
-
export declare function
|
|
5
|
-
/** Validate the opaque scoped suffix without changing its platform value. */
|
|
4
|
+
export declare function assertSessionConversationId(conversationId: string): string;
|
|
6
5
|
export declare function assertSessionSuffix(suffix: string): string;
|
|
7
|
-
/** Build a scoped thread session key. */
|
|
8
6
|
export declare function makeThreadSessionKey(conversationId: string, suffix: string): string;
|
|
9
|
-
/**
|
|
10
|
-
* Validate that a platform-computed session key belongs to its conversation.
|
|
11
|
-
* The key may be the bare conversation id or one of that conversation's
|
|
12
|
-
* scoped keys; callers must not be able to select another conversation's
|
|
13
|
-
* runtime/cache entry.
|
|
14
|
-
*/
|
|
15
7
|
export declare function assertSessionKeyBelongsToConversation(sessionKey: string, conversationId: string): string;
|
|
16
|
-
/**
|
|
17
|
-
* The runtime fallback: honor a platform-computed session key, otherwise
|
|
18
|
-
* scope the event to its thread (or to itself for thread-starting messages).
|
|
19
|
-
*/
|
|
20
8
|
export declare function deriveSessionKey(event: {
|
|
9
|
+
address: OfficeAddress;
|
|
21
10
|
sessionKey?: string;
|
|
22
|
-
conversationId: string;
|
|
23
11
|
thread_ts?: string;
|
|
24
12
|
ts: string;
|
|
25
13
|
}): string;
|
|
26
14
|
export declare function isThreadSessionKey(sessionKey: string): boolean;
|
|
27
|
-
/** The conversation a session key belongs to (identity for bare keys). */
|
|
28
15
|
export declare function conversationIdOf(sessionKey: string): string;
|
|
29
|
-
/** The thread suffix of a scoped key, or null for a bare conversation key. */
|
|
30
16
|
export declare function threadSuffixOf(sessionKey: string): string | null;
|
|
31
17
|
export declare function resolveChatSessionKey(options: ResolveSessionKeyOptions): string;
|
|
32
18
|
export declare function inferConversationKind(platform: string, conversationId: string): ConversationKind;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-key.d.ts","sourceRoot":"","sources":["../../src/sessions/session-key.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"session-key.d.ts","sourceRoot":"","sources":["../../src/sessions/session-key.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACnE,YAAY,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAC3D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAyB3D,wBAAgB,2BAA2B,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAS1E;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED,wBAAgB,oBAAoB,CAAC,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAEnF;AAED,wBAAgB,qCAAqC,CACnD,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM,GACrB,MAAM,CAYR;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE;IACtC,OAAO,EAAE,aAAa,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,EAAE,EAAE,MAAM,CAAC;CACZ,GAAG,MAAM,CAMT;AAED,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAE9D;AAED,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAG3D;AAED,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGhE;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,wBAAwB,GAAG,MAAM,CAgB/E;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,gBAAgB,CAchG"}
|
|
@@ -1,16 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The session-key grammar. A session key is the conversation-scoped runtime
|
|
3
|
-
* identity used to serialize and resume work (see CONTEXT.md):
|
|
4
|
-
*
|
|
5
|
-
* `conversationId` — the persistent conversation session
|
|
6
|
-
* `conversationId:suffix` — a scoped thread session (suffix = thread
|
|
7
|
-
* ts / message id, opaque to this module)
|
|
8
|
-
*
|
|
9
|
-
* This module owns the convention; nothing else may split on ":". The grammar
|
|
10
|
-
* only works because conversation ids never contain ":" — that invariant is
|
|
11
|
-
* asserted here at every derivation instead of being assumed everywhere.
|
|
12
|
-
*/
|
|
13
|
-
/** Characters that can change host path structure or make identity logs ambiguous. */
|
|
14
1
|
const PATH_SEPARATOR_PATTERN = /[\\/]/;
|
|
15
2
|
function containsControlCharacter(value) {
|
|
16
3
|
for (const character of value) {
|
|
@@ -32,7 +19,7 @@ function assertSafeIdentityPart(value, label) {
|
|
|
32
19
|
}
|
|
33
20
|
return value;
|
|
34
21
|
}
|
|
35
|
-
export function
|
|
22
|
+
export function assertSessionConversationId(conversationId) {
|
|
36
23
|
assertSafeIdentityPart(conversationId, "Conversation id");
|
|
37
24
|
if (conversationId.includes(":")) {
|
|
38
25
|
throw new Error(`Conversation id must not contain ":" (got ${JSON.stringify(conversationId)}); ` +
|
|
@@ -40,22 +27,14 @@ export function assertConversationId(conversationId) {
|
|
|
40
27
|
}
|
|
41
28
|
return conversationId;
|
|
42
29
|
}
|
|
43
|
-
/** Validate the opaque scoped suffix without changing its platform value. */
|
|
44
30
|
export function assertSessionSuffix(suffix) {
|
|
45
31
|
return assertSafeIdentityPart(suffix, "Session suffix");
|
|
46
32
|
}
|
|
47
|
-
/** Build a scoped thread session key. */
|
|
48
33
|
export function makeThreadSessionKey(conversationId, suffix) {
|
|
49
|
-
return `${
|
|
34
|
+
return `${assertSessionConversationId(conversationId)}:${assertSessionSuffix(suffix)}`;
|
|
50
35
|
}
|
|
51
|
-
/**
|
|
52
|
-
* Validate that a platform-computed session key belongs to its conversation.
|
|
53
|
-
* The key may be the bare conversation id or one of that conversation's
|
|
54
|
-
* scoped keys; callers must not be able to select another conversation's
|
|
55
|
-
* runtime/cache entry.
|
|
56
|
-
*/
|
|
57
36
|
export function assertSessionKeyBelongsToConversation(sessionKey, conversationId) {
|
|
58
|
-
const expectedConversationId =
|
|
37
|
+
const expectedConversationId = assertSessionConversationId(conversationId);
|
|
59
38
|
const actualConversationId = conversationIdOf(sessionKey);
|
|
60
39
|
if (actualConversationId !== expectedConversationId) {
|
|
61
40
|
throw new Error(`Session key ${JSON.stringify(sessionKey)} does not belong to conversation ` +
|
|
@@ -66,25 +45,20 @@ export function assertSessionKeyBelongsToConversation(sessionKey, conversationId
|
|
|
66
45
|
assertSessionSuffix(suffix);
|
|
67
46
|
return sessionKey;
|
|
68
47
|
}
|
|
69
|
-
/**
|
|
70
|
-
* The runtime fallback: honor a platform-computed session key, otherwise
|
|
71
|
-
* scope the event to its thread (or to itself for thread-starting messages).
|
|
72
|
-
*/
|
|
73
48
|
export function deriveSessionKey(event) {
|
|
49
|
+
const conversationId = event.address.conversationId;
|
|
74
50
|
if (event.sessionKey !== undefined) {
|
|
75
|
-
return assertSessionKeyBelongsToConversation(event.sessionKey,
|
|
51
|
+
return assertSessionKeyBelongsToConversation(event.sessionKey, conversationId);
|
|
76
52
|
}
|
|
77
|
-
return makeThreadSessionKey(
|
|
53
|
+
return makeThreadSessionKey(conversationId, event.thread_ts ?? event.ts);
|
|
78
54
|
}
|
|
79
55
|
export function isThreadSessionKey(sessionKey) {
|
|
80
56
|
return sessionKey.includes(":");
|
|
81
57
|
}
|
|
82
|
-
/** The conversation a session key belongs to (identity for bare keys). */
|
|
83
58
|
export function conversationIdOf(sessionKey) {
|
|
84
59
|
const separator = sessionKey.indexOf(":");
|
|
85
60
|
return separator === -1 ? sessionKey : sessionKey.slice(0, separator);
|
|
86
61
|
}
|
|
87
|
-
/** The thread suffix of a scoped key, or null for a bare conversation key. */
|
|
88
62
|
export function threadSuffixOf(sessionKey) {
|
|
89
63
|
const separator = sessionKey.indexOf(":");
|
|
90
64
|
return separator === -1 ? null : sessionKey.slice(separator + 1);
|
|
@@ -92,10 +66,10 @@ export function threadSuffixOf(sessionKey) {
|
|
|
92
66
|
export function resolveChatSessionKey(options) {
|
|
93
67
|
const { conversationId, conversationKind, messageId, persistentTopLevel, scopeDirectThreads, threadTs, } = options;
|
|
94
68
|
if (conversationKind === "direct" && (!threadTs || !scopeDirectThreads)) {
|
|
95
|
-
return
|
|
69
|
+
return assertSessionConversationId(conversationId);
|
|
96
70
|
}
|
|
97
71
|
if (!threadTs && persistentTopLevel) {
|
|
98
|
-
return
|
|
72
|
+
return assertSessionConversationId(conversationId);
|
|
99
73
|
}
|
|
100
74
|
return makeThreadSessionKey(conversationId, threadTs || messageId);
|
|
101
75
|
}
|
|
@@ -109,7 +83,6 @@ export function inferConversationKind(platform, conversationId) {
|
|
|
109
83
|
if (platform === "discord") {
|
|
110
84
|
return conversationId.startsWith("DM") ? "direct" : "shared";
|
|
111
85
|
}
|
|
112
|
-
// github: issues/PRs are always shared within the repo; there are no DMs.
|
|
113
86
|
return "shared";
|
|
114
87
|
}
|
|
115
88
|
//# sourceMappingURL=session-key.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-key.js","sourceRoot":"","sources":["../../src/sessions/session-key.ts"],"names":[],"mappings":"AAIA
|
|
1
|
+
{"version":3,"file":"session-key.js","sourceRoot":"","sources":["../../src/sessions/session-key.ts"],"names":[],"mappings":"AAIA,MAAM,sBAAsB,GAAG,OAAO,CAAC;AAEvC,SAAS,wBAAwB,CAAC,KAAa;IAC7C,KAAK,MAAM,SAAS,IAAI,KAAK,EAAE,CAAC;QAC9B,MAAM,SAAS,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC,CAAE,CAAC;QAC5C,IAAI,SAAS,IAAI,IAAI,IAAI,SAAS,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;IAC3D,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAa,EAAE,KAAa;IAC1D,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAC9C,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,8CAA8C,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAClG,CAAC;IACD,IAAI,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,0CAA0C,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9F,CAAC;IACD,IAAI,wBAAwB,CAAC,KAAK,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,6CAA6C,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjG,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,cAAsB;IAChE,sBAAsB,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC;IAC1D,IAAI,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CACb,6CAA6C,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,KAAK;YAC9E,yDAAyD,CAC5D,CAAC;IACJ,CAAC;IACD,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,MAAc;IAChD,OAAO,sBAAsB,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,cAAsB,EAAE,MAAc;IACzE,OAAO,GAAG,2BAA2B,CAAC,cAAc,CAAC,IAAI,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC;AACzF,CAAC;AAED,MAAM,UAAU,qCAAqC,CACnD,UAAkB,EAClB,cAAsB;IAEtB,MAAM,sBAAsB,GAAG,2BAA2B,CAAC,cAAc,CAAC,CAAC;IAC3E,MAAM,oBAAoB,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAC1D,IAAI,oBAAoB,KAAK,sBAAsB,EAAE,CAAC;QACpD,MAAM,IAAI,KAAK,CACb,eAAe,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,mCAAmC;YAC1E,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CACjC,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;IAC1C,IAAI,MAAM,KAAK,IAAI;QAAE,mBAAmB,CAAC,MAAM,CAAC,CAAC;IACjD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAKhC;IACC,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC;IACpD,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACnC,OAAO,qCAAqC,CAAC,KAAK,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;IACjF,CAAC;IACD,OAAO,oBAAoB,CAAC,cAAc,EAAE,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC;AAC3E,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,UAAkB;IACnD,OAAO,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,UAAkB;IACjD,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1C,OAAO,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;AACxE,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,UAAkB;IAC/C,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1C,OAAO,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,OAAiC;IACrE,MAAM,EACJ,cAAc,EACd,gBAAgB,EAChB,SAAS,EACT,kBAAkB,EAClB,kBAAkB,EAClB,QAAQ,GACT,GAAG,OAAO,CAAC;IACZ,IAAI,gBAAgB,KAAK,QAAQ,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC;QACxE,OAAO,2BAA2B,CAAC,cAAc,CAAC,CAAC;IACrD,CAAC;IACD,IAAI,CAAC,QAAQ,IAAI,kBAAkB,EAAE,CAAC;QACpC,OAAO,2BAA2B,CAAC,cAAc,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,oBAAoB,CAAC,cAAc,EAAE,QAAQ,IAAI,SAAS,CAAC,CAAC;AACrE,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,QAAgB,EAAE,cAAsB;IAC5E,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QACzB,OAAO,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC9D,CAAC;IAED,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;QAC5B,OAAO,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC9D,CAAC;IAED,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC/D,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC","sourcesContent":["import type { ConversationKind, OfficeAddress } from \"../types.js\";\nexport type { ResolveSessionKeyOptions } from \"./types.js\";\nimport type { ResolveSessionKeyOptions } from \"./types.js\";\n\nconst PATH_SEPARATOR_PATTERN = /[\\\\/]/;\n\nfunction containsControlCharacter(value: string): boolean {\n for (const character of value) {\n const codePoint = character.codePointAt(0)!;\n if (codePoint <= 0x1f || codePoint === 0x7f) return true;\n }\n return false;\n}\n\nfunction assertSafeIdentityPart(value: string, label: string): string {\n if (!value || value === \".\" || value === \"..\") {\n throw new Error(`${label} must be a non-empty identity segment (got ${JSON.stringify(value)})`);\n }\n if (PATH_SEPARATOR_PATTERN.test(value)) {\n throw new Error(`${label} must not contain path separators (got ${JSON.stringify(value)})`);\n }\n if (containsControlCharacter(value)) {\n throw new Error(`${label} must not contain control characters (got ${JSON.stringify(value)})`);\n }\n return value;\n}\n\nexport function assertSessionConversationId(conversationId: string): string {\n assertSafeIdentityPart(conversationId, \"Conversation id\");\n if (conversationId.includes(\":\")) {\n throw new Error(\n `Conversation id must not contain \":\" (got ${JSON.stringify(conversationId)}); ` +\n \"the session-key grammar reserves it for thread suffixes\",\n );\n }\n return conversationId;\n}\n\nexport function assertSessionSuffix(suffix: string): string {\n return assertSafeIdentityPart(suffix, \"Session suffix\");\n}\n\nexport function makeThreadSessionKey(conversationId: string, suffix: string): string {\n return `${assertSessionConversationId(conversationId)}:${assertSessionSuffix(suffix)}`;\n}\n\nexport function assertSessionKeyBelongsToConversation(\n sessionKey: string,\n conversationId: string,\n): string {\n const expectedConversationId = assertSessionConversationId(conversationId);\n const actualConversationId = conversationIdOf(sessionKey);\n if (actualConversationId !== expectedConversationId) {\n throw new Error(\n `Session key ${JSON.stringify(sessionKey)} does not belong to conversation ` +\n JSON.stringify(conversationId),\n );\n }\n const suffix = threadSuffixOf(sessionKey);\n if (suffix !== null) assertSessionSuffix(suffix);\n return sessionKey;\n}\n\nexport function deriveSessionKey(event: {\n address: OfficeAddress;\n sessionKey?: string;\n thread_ts?: string;\n ts: string;\n}): string {\n const conversationId = event.address.conversationId;\n if (event.sessionKey !== undefined) {\n return assertSessionKeyBelongsToConversation(event.sessionKey, conversationId);\n }\n return makeThreadSessionKey(conversationId, event.thread_ts ?? event.ts);\n}\n\nexport function isThreadSessionKey(sessionKey: string): boolean {\n return sessionKey.includes(\":\");\n}\n\nexport function conversationIdOf(sessionKey: string): string {\n const separator = sessionKey.indexOf(\":\");\n return separator === -1 ? sessionKey : sessionKey.slice(0, separator);\n}\n\nexport function threadSuffixOf(sessionKey: string): string | null {\n const separator = sessionKey.indexOf(\":\");\n return separator === -1 ? null : sessionKey.slice(separator + 1);\n}\n\nexport function resolveChatSessionKey(options: ResolveSessionKeyOptions): string {\n const {\n conversationId,\n conversationKind,\n messageId,\n persistentTopLevel,\n scopeDirectThreads,\n threadTs,\n } = options;\n if (conversationKind === \"direct\" && (!threadTs || !scopeDirectThreads)) {\n return assertSessionConversationId(conversationId);\n }\n if (!threadTs && persistentTopLevel) {\n return assertSessionConversationId(conversationId);\n }\n return makeThreadSessionKey(conversationId, threadTs || messageId);\n}\n\nexport function inferConversationKind(platform: string, conversationId: string): ConversationKind {\n if (platform === \"slack\") {\n return conversationId.startsWith(\"D\") ? \"direct\" : \"shared\";\n }\n\n if (platform === \"telegram\") {\n return conversationId.startsWith(\"-\") ? \"shared\" : \"direct\";\n }\n\n if (platform === \"discord\") {\n return conversationId.startsWith(\"DM\") ? \"direct\" : \"shared\";\n }\n\n return \"shared\";\n}\n"]}
|
|
@@ -16,10 +16,8 @@ export declare class SessionStore implements SessionInspection {
|
|
|
16
16
|
private harnessLane;
|
|
17
17
|
private constructor();
|
|
18
18
|
static open(path: string, cwdOverride?: string): Promise<SessionStore>;
|
|
19
|
-
/** Read native execution state without claiming the live file's writer. */
|
|
20
19
|
static inspectExecution(path: string): Promise<{
|
|
21
20
|
open: boolean;
|
|
22
|
-
/** False until the first operation is recorded: admitted, never run. */
|
|
23
21
|
started: boolean;
|
|
24
22
|
result?: {
|
|
25
23
|
status: "completed" | "aborted" | "failed" | "declined";
|
|
@@ -42,17 +40,13 @@ export declare class SessionStore implements SessionInspection {
|
|
|
42
40
|
getSessionName(): Promise<string | undefined>;
|
|
43
41
|
getBranch(fromId?: string): Promise<Entry[]>;
|
|
44
42
|
buildSessionContext(): Promise<SessionContext>;
|
|
45
|
-
|
|
46
|
-
connectMcp(servers: Record<string, McpServerConfig>, signal?: AbortSignal): Promise<import("@earendil-works/pi-agent-core").AgentTool<import("@sinclair/typebox").TSchema, any>[]>;
|
|
47
|
-
/** MCP guidance remains attached when the caller refreshes its per-turn prompt. */
|
|
43
|
+
connectMcp(servers: Record<string, McpServerConfig>, signal?: AbortSignal): Promise<import("../harness/types.js").MikanHarnessTool[]>;
|
|
48
44
|
withMcpInstructions(prompt: string): string;
|
|
49
|
-
/** Attach Pi's runtime to this store's sole writable Session. */
|
|
50
45
|
createHarness(options: Omit<AgentHarnessOptions, "session">): Promise<AgentHarness>;
|
|
51
46
|
appendMessage(message: AgentMessage): Promise<string>;
|
|
52
47
|
appendCustomEntry(customType: string, data?: unknown): Promise<string>;
|
|
53
48
|
appendCustomMessageEntry(customType: string, content: string | Array<TextContent | ImageContent>, display: boolean, details?: unknown): Promise<string>;
|
|
54
49
|
setSessionName(name: string): Promise<void>;
|
|
55
|
-
appendCompaction(summary: string, retainedTail: AgentMessage[], tokensBefore: number, details?: unknown): Promise<string>;
|
|
56
50
|
close(): Promise<void>;
|
|
57
51
|
private assertOpen;
|
|
58
52
|
private mutate;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-store.d.ts","sourceRoot":"","sources":["../../src/sessions/session-store.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"session-store.d.ts","sourceRoot":"","sources":["../../src/sessions/session-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +1,7 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* mikan-owned facade over Pi's current JSONL v4 SessionRepo.
|
|
3
|
-
*
|
|
4
|
-
* Pi owns entry, branch, value, transaction, and storage validation. mikan
|
|
5
|
-
* owns exact file paths, single-writer leases, lazy materialization, lineage
|
|
6
|
-
* metadata, and the stable inspection API consumed by platform runtimes.
|
|
7
|
-
* Older session generations are rejected and converted only by the offline
|
|
8
|
-
* `mikan sessions migrate` command.
|
|
9
|
-
*/
|
|
10
1
|
import { closeSync, existsSync, fstatSync, ftruncateSync, mkdirSync, mkdtempSync, openSync, readFileSync, readSync, realpathSync, rmSync, statSync, writeFileSync, } from "node:fs";
|
|
11
2
|
import { tmpdir } from "node:os";
|
|
12
3
|
import { basename, dirname, join, resolve } from "node:path";
|
|
13
|
-
import { AgentHarness,
|
|
4
|
+
import { AgentHarness, laneState, operationResult, createBranchSummaryMessage, createCompactionSummaryMessage, createCustomMessage, JsonlSessionRepo, JSONL_STORAGE_VERSION, MemorySessionRepo, TODO_CONTEXT, uuidv7, value, } from "@earendil-works/pi-agent-core";
|
|
14
5
|
import { NodeExecutionEnv } from "@earendil-works/pi-agent-core/node";
|
|
15
6
|
import { atomicWritePrivateFile } from "../file-guards.js";
|
|
16
7
|
import { CURRENT_SESSION_VERSION } from "./types.js";
|
|
@@ -105,14 +96,17 @@ function parseCurrentHeader(filePath, firstLine) {
|
|
|
105
96
|
catch {
|
|
106
97
|
throw new SessionFormatError(`Session file header is not valid JSON: ${filePath}`);
|
|
107
98
|
}
|
|
99
|
+
if (!isMetadataRecord(parsed)) {
|
|
100
|
+
throw new SessionFormatError(`Session file has an unrecognized header: ${filePath}`);
|
|
101
|
+
}
|
|
108
102
|
const record = parsed;
|
|
109
103
|
if (record.type === "session" || (record.kind === "header" && record.version === 4)) {
|
|
110
104
|
const generation = record.type === "session" ? "legacy v3" : "Pi 0.84 v4";
|
|
111
105
|
throw new SessionFormatError(`Session file uses the ${generation} format: ${filePath}. Run \`mikan sessions migrate\` before starting this mikan version.`);
|
|
112
106
|
}
|
|
113
107
|
if (record.kind !== "header" ||
|
|
114
|
-
record.v !==
|
|
115
|
-
record.storageVersion !==
|
|
108
|
+
record.v !== CURRENT_SESSION_VERSION ||
|
|
109
|
+
record.storageVersion !== JSONL_STORAGE_VERSION ||
|
|
116
110
|
typeof record.id !== "string" ||
|
|
117
111
|
typeof record.createdAt !== "number" ||
|
|
118
112
|
typeof record.cwd !== "string") {
|
|
@@ -134,12 +128,6 @@ function metadataFromHeader(header, path) {
|
|
|
134
128
|
: {}),
|
|
135
129
|
};
|
|
136
130
|
}
|
|
137
|
-
/**
|
|
138
|
-
* Hand-rolled JSONL scan kept only for the synchronous `readHeader` path,
|
|
139
|
-
* which must read metadata without opening a Session. `open`/`inspect`
|
|
140
|
-
* instead read it via `session.getValue(MIKAN_METADATA, ...)` once a
|
|
141
|
-
* Session exists, so pi owns that decoding.
|
|
142
|
-
*/
|
|
143
131
|
function parseMikanMetadata(filePath) {
|
|
144
132
|
let current;
|
|
145
133
|
for (const line of readFileSync(filePath, "utf-8").split("\n").slice(1)) {
|
|
@@ -212,10 +200,10 @@ function buildHeader(cwd, options) {
|
|
|
212
200
|
: { parentSessionPath: options.parentSession };
|
|
213
201
|
return {
|
|
214
202
|
header: {
|
|
215
|
-
v:
|
|
203
|
+
v: CURRENT_SESSION_VERSION,
|
|
216
204
|
kind: "header",
|
|
217
205
|
id: options?.id ?? uuidv7(),
|
|
218
|
-
storageVersion:
|
|
206
|
+
storageVersion: JSONL_STORAGE_VERSION,
|
|
219
207
|
createdAt: Date.now(),
|
|
220
208
|
cwd,
|
|
221
209
|
...(options?.parentSessionId !== undefined
|
|
@@ -257,7 +245,6 @@ async function openFileSession(path, header) {
|
|
|
257
245
|
throw error;
|
|
258
246
|
}
|
|
259
247
|
}
|
|
260
|
-
/** Both inspection surfaces share one snapshot lifetime; neither claims the source writer. */
|
|
261
248
|
async function withSessionSnapshot(path, read) {
|
|
262
249
|
const resolvedPath = canonicalSessionPath(path);
|
|
263
250
|
const dir = mkdtempSync(join(tmpdir(), "mikan-session-inspect-"));
|
|
@@ -380,7 +367,6 @@ export class SessionStore {
|
|
|
380
367
|
throw error;
|
|
381
368
|
}
|
|
382
369
|
}
|
|
383
|
-
/** Read native execution state without claiming the live file's writer. */
|
|
384
370
|
static async inspectExecution(path) {
|
|
385
371
|
return withSessionSnapshot(path, async (session) => {
|
|
386
372
|
const state = (await session.getValue(laneState("main"), TODO_CONTEXT))?.value;
|
|
@@ -519,7 +505,6 @@ export class SessionStore {
|
|
|
519
505
|
async buildSessionContext() {
|
|
520
506
|
return buildContext(await this.getBranch());
|
|
521
507
|
}
|
|
522
|
-
/** Acquire host MCP capabilities under the same lifetime as the session writer. */
|
|
523
508
|
async connectMcp(servers, signal) {
|
|
524
509
|
return this.mutate(async () => {
|
|
525
510
|
if (this.mcp)
|
|
@@ -532,12 +517,10 @@ export class SessionStore {
|
|
|
532
517
|
return this.mcp.tools;
|
|
533
518
|
});
|
|
534
519
|
}
|
|
535
|
-
/** MCP guidance remains attached when the caller refreshes its per-turn prompt. */
|
|
536
520
|
withMcpInstructions(prompt) {
|
|
537
521
|
const instructions = formatMcpServerInstructions(this.mcp?.instructions ?? []);
|
|
538
522
|
return instructions ? `${prompt}\n\n${instructions}` : prompt;
|
|
539
523
|
}
|
|
540
|
-
/** Attach Pi's runtime to this store's sole writable Session. */
|
|
541
524
|
async createHarness(options) {
|
|
542
525
|
return this.mutate(async () => {
|
|
543
526
|
if (this.harness)
|
|
@@ -576,31 +559,6 @@ export class SessionStore {
|
|
|
576
559
|
async setSessionName(name) {
|
|
577
560
|
await this.mutate(async () => (await this.live()).session.setName(name.trim() || undefined, TODO_CONTEXT));
|
|
578
561
|
}
|
|
579
|
-
async appendCompaction(summary, retainedTail, tokensBefore, details) {
|
|
580
|
-
return this.mutate(async () => {
|
|
581
|
-
if (this.harness)
|
|
582
|
-
throw new Error("Compaction is owned by the attached Pi harness");
|
|
583
|
-
const { session } = await this.live();
|
|
584
|
-
const id = session.idGenerator.next();
|
|
585
|
-
await session.mutate(async (mutator, context) => {
|
|
586
|
-
const currentTip = await mutator.getValue(branchTip("main"), context);
|
|
587
|
-
await mutator.commit([
|
|
588
|
-
insertEntry({
|
|
589
|
-
type: "compaction",
|
|
590
|
-
id,
|
|
591
|
-
parentId: currentTip?.value ?? null,
|
|
592
|
-
summary,
|
|
593
|
-
retainedTail: toDurable(retainedTail),
|
|
594
|
-
tokensBefore,
|
|
595
|
-
fromHook: false,
|
|
596
|
-
...(details !== undefined ? { details: toDurable(details) } : {}),
|
|
597
|
-
}),
|
|
598
|
-
setValue(branchTip("main"), id),
|
|
599
|
-
], context);
|
|
600
|
-
}, TODO_CONTEXT);
|
|
601
|
-
return id;
|
|
602
|
-
});
|
|
603
|
-
}
|
|
604
562
|
async close() {
|
|
605
563
|
if (this.closePromise)
|
|
606
564
|
return this.closePromise;
|