@geminixiang/mikan 1.0.0-beta.9 → 1.0.0-beta.90
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 +337 -426
- package/README.md +102 -42
- package/dist/adapters/commands/admin.d.ts.map +1 -0
- package/dist/adapters/commands/admin.js +33 -0
- package/dist/adapters/commands/admin.js.map +1 -0
- package/dist/adapters/commands/auto-reply.d.ts +5 -0
- package/dist/adapters/commands/auto-reply.d.ts.map +1 -0
- package/dist/adapters/commands/auto-reply.js +47 -0
- package/dist/adapters/commands/auto-reply.js.map +1 -0
- package/dist/adapters/commands/login.d.ts +6 -0
- package/dist/adapters/commands/login.d.ts.map +1 -0
- package/dist/adapters/commands/login.js +158 -0
- package/dist/adapters/commands/login.js.map +1 -0
- package/dist/adapters/commands/manifest.d.ts +17 -0
- package/dist/adapters/commands/manifest.d.ts.map +1 -0
- package/dist/adapters/commands/manifest.js +121 -0
- package/dist/adapters/commands/manifest.js.map +1 -0
- package/dist/adapters/commands/model.d.ts +9 -0
- package/dist/adapters/commands/model.d.ts.map +1 -0
- package/dist/adapters/commands/model.js +136 -0
- package/dist/adapters/commands/model.js.map +1 -0
- package/dist/adapters/commands/new.d.ts.map +1 -0
- package/dist/adapters/commands/new.js +39 -0
- package/dist/adapters/commands/new.js.map +1 -0
- package/dist/adapters/commands/registry.d.ts +4 -0
- package/dist/adapters/commands/registry.d.ts.map +1 -0
- package/dist/adapters/commands/registry.js +35 -0
- package/dist/adapters/commands/registry.js.map +1 -0
- package/dist/adapters/commands/sandbox.d.ts +6 -0
- package/dist/adapters/commands/sandbox.d.ts.map +1 -0
- package/dist/adapters/commands/sandbox.js +125 -0
- package/dist/adapters/commands/sandbox.js.map +1 -0
- package/dist/adapters/commands/session-view.d.ts.map +1 -0
- package/dist/adapters/commands/session-view.js +46 -0
- package/dist/adapters/commands/session-view.js.map +1 -0
- package/dist/adapters/commands/types.d.ts +105 -0
- package/dist/adapters/commands/types.d.ts.map +1 -0
- package/dist/adapters/commands/types.js.map +1 -0
- package/dist/adapters/commands/utils.d.ts +11 -0
- package/dist/adapters/commands/utils.d.ts.map +1 -0
- package/dist/adapters/commands/utils.js +43 -0
- package/dist/adapters/commands/utils.js.map +1 -0
- package/dist/adapters/discord/bot.d.ts +14 -18
- package/dist/adapters/discord/bot.d.ts.map +1 -1
- package/dist/adapters/discord/bot.js +234 -303
- package/dist/adapters/discord/bot.js.map +1 -1
- package/dist/adapters/discord/components.d.ts +4 -0
- package/dist/adapters/discord/components.d.ts.map +1 -0
- package/dist/adapters/discord/components.js +9 -0
- package/dist/adapters/discord/components.js.map +1 -0
- package/dist/adapters/discord/context.d.ts +3 -7
- package/dist/adapters/discord/context.d.ts.map +1 -1
- package/dist/adapters/discord/context.js +57 -219
- package/dist/adapters/discord/context.js.map +1 -1
- package/dist/adapters/discord/format.d.ts +2 -0
- package/dist/adapters/discord/format.d.ts.map +1 -0
- package/dist/adapters/discord/format.js +47 -0
- package/dist/adapters/discord/format.js.map +1 -0
- package/dist/adapters/discord/types.d.ts +91 -1
- package/dist/adapters/discord/types.d.ts.map +1 -1
- package/dist/adapters/discord/types.js.map +1 -1
- package/dist/adapters/github/activity.d.ts +3 -0
- package/dist/adapters/github/activity.d.ts.map +1 -0
- package/dist/adapters/github/activity.js +148 -0
- package/dist/adapters/github/activity.js.map +1 -0
- package/dist/adapters/github/bot.d.ts +24 -37
- package/dist/adapters/github/bot.d.ts.map +1 -1
- package/dist/adapters/github/bot.js +209 -397
- package/dist/adapters/github/bot.js.map +1 -1
- package/dist/adapters/github/client.d.ts +32 -49
- package/dist/adapters/github/client.d.ts.map +1 -1
- package/dist/adapters/github/client.js +108 -118
- package/dist/adapters/github/client.js.map +1 -1
- package/dist/adapters/github/context.d.ts +3 -8
- package/dist/adapters/github/context.d.ts.map +1 -1
- package/dist/adapters/github/context.js +74 -138
- package/dist/adapters/github/context.js.map +1 -1
- package/dist/adapters/github/github-ops.d.ts +14 -0
- package/dist/adapters/github/github-ops.d.ts.map +1 -0
- package/dist/adapters/github/github-ops.js +218 -0
- package/dist/adapters/github/github-ops.js.map +1 -0
- package/dist/adapters/github/ids.d.ts +2 -23
- package/dist/adapters/github/ids.d.ts.map +1 -1
- package/dist/adapters/github/ids.js +6 -36
- package/dist/adapters/github/ids.js.map +1 -1
- package/dist/adapters/github/policy.d.ts +19 -0
- package/dist/adapters/github/policy.d.ts.map +1 -0
- package/dist/adapters/github/policy.js +79 -0
- package/dist/adapters/github/policy.js.map +1 -0
- package/dist/adapters/github/tool-pack.d.ts +4 -0
- package/dist/adapters/github/tool-pack.d.ts.map +1 -0
- package/dist/adapters/github/tool-pack.js +40 -0
- package/dist/adapters/github/tool-pack.js.map +1 -0
- package/dist/adapters/github/tools/checks.d.ts +14 -0
- package/dist/adapters/github/tools/checks.d.ts.map +1 -0
- package/dist/adapters/github/tools/checks.js +78 -0
- package/dist/adapters/github/tools/checks.js.map +1 -0
- package/dist/adapters/github/tools/issue.d.ts +18 -0
- package/dist/adapters/github/tools/issue.d.ts.map +1 -0
- package/dist/adapters/github/tools/issue.js +44 -0
- package/dist/adapters/github/tools/issue.js.map +1 -0
- package/dist/adapters/github/tools/pr.d.ts +17 -0
- package/dist/adapters/github/tools/pr.d.ts.map +1 -0
- package/dist/adapters/github/tools/pr.js +40 -0
- package/dist/adapters/github/tools/pr.js.map +1 -0
- package/dist/adapters/github/tools/read.d.ts +17 -0
- package/dist/adapters/github/tools/read.d.ts.map +1 -0
- package/dist/adapters/github/tools/read.js +134 -0
- package/dist/adapters/github/tools/read.js.map +1 -0
- package/dist/adapters/github/tools/review-reply.d.ts +14 -0
- package/dist/adapters/github/tools/review-reply.d.ts.map +1 -0
- package/dist/adapters/github/tools/review-reply.js +34 -0
- package/dist/adapters/github/tools/review-reply.js.map +1 -0
- package/dist/adapters/github/types.d.ts +200 -57
- 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 +7 -0
- package/dist/adapters/github/webhook.d.ts.map +1 -0
- package/dist/adapters/github/webhook.js +104 -0
- package/dist/adapters/github/webhook.js.map +1 -0
- package/dist/adapters/intake.d.ts +4 -10
- package/dist/adapters/intake.d.ts.map +1 -1
- package/dist/adapters/intake.js +85 -32
- package/dist/adapters/intake.js.map +1 -1
- package/dist/adapters/markdown-tables.d.ts +8 -0
- package/dist/adapters/markdown-tables.d.ts.map +1 -0
- package/dist/adapters/markdown-tables.js +111 -0
- package/dist/adapters/markdown-tables.js.map +1 -0
- package/dist/adapters/messages.d.ts +13 -0
- package/dist/adapters/messages.d.ts.map +1 -0
- package/dist/adapters/messages.js +39 -0
- package/dist/adapters/messages.js.map +1 -0
- package/dist/adapters/progressive-renderer.d.ts +7 -0
- package/dist/adapters/progressive-renderer.d.ts.map +1 -0
- package/dist/adapters/progressive-renderer.js +426 -0
- package/dist/adapters/progressive-renderer.js.map +1 -0
- package/dist/adapters/shared.d.ts +27 -53
- package/dist/adapters/shared.d.ts.map +1 -1
- package/dist/adapters/shared.js +167 -91
- package/dist/adapters/shared.js.map +1 -1
- package/dist/adapters/slack/assistant.d.ts +21 -0
- package/dist/adapters/slack/assistant.d.ts.map +1 -0
- package/dist/adapters/slack/assistant.js +103 -0
- package/dist/adapters/slack/assistant.js.map +1 -0
- package/dist/adapters/slack/auto-reply-context.d.ts +14 -0
- package/dist/adapters/slack/auto-reply-context.d.ts.map +1 -0
- package/dist/adapters/slack/auto-reply-context.js +21 -0
- package/dist/adapters/slack/auto-reply-context.js.map +1 -0
- package/dist/adapters/slack/blocks.d.ts +5 -0
- package/dist/adapters/slack/blocks.d.ts.map +1 -1
- package/dist/adapters/slack/blocks.js +144 -145
- package/dist/adapters/slack/blocks.js.map +1 -1
- package/dist/adapters/slack/bot.d.ts +60 -40
- package/dist/adapters/slack/bot.d.ts.map +1 -1
- package/dist/adapters/slack/bot.js +968 -588
- package/dist/adapters/slack/bot.js.map +1 -1
- package/dist/adapters/slack/context.d.ts +3 -9
- package/dist/adapters/slack/context.d.ts.map +1 -1
- package/dist/adapters/slack/context.js +8 -17
- package/dist/adapters/slack/context.js.map +1 -1
- package/dist/adapters/slack/jev-context.d.ts +17 -0
- package/dist/adapters/slack/jev-context.d.ts.map +1 -0
- package/dist/adapters/slack/jev-context.js +57 -0
- package/dist/adapters/slack/jev-context.js.map +1 -0
- package/dist/adapters/slack/markdown.d.ts +2 -0
- package/dist/adapters/slack/markdown.d.ts.map +1 -0
- package/dist/adapters/slack/markdown.js +43 -0
- package/dist/adapters/slack/markdown.js.map +1 -0
- package/dist/adapters/slack/persona.d.ts +6 -0
- package/dist/adapters/slack/persona.d.ts.map +1 -0
- package/dist/adapters/slack/persona.js +13 -0
- package/dist/adapters/slack/persona.js.map +1 -0
- package/dist/adapters/slack/response-lifecycle.d.ts +3 -4
- package/dist/adapters/slack/response-lifecycle.d.ts.map +1 -1
- package/dist/adapters/slack/response-lifecycle.js +222 -348
- package/dist/adapters/slack/response-lifecycle.js.map +1 -1
- package/dist/adapters/slack/session.d.ts +3 -2
- package/dist/adapters/slack/session.d.ts.map +1 -1
- package/dist/adapters/slack/session.js +9 -13
- package/dist/adapters/slack/session.js.map +1 -1
- package/dist/adapters/slack/stream-limits.d.ts +10 -0
- package/dist/adapters/slack/stream-limits.d.ts.map +1 -0
- package/dist/adapters/slack/stream-limits.js +22 -0
- package/dist/adapters/slack/stream-limits.js.map +1 -0
- package/dist/adapters/slack/task-intent.d.ts +19 -0
- package/dist/adapters/slack/task-intent.d.ts.map +1 -0
- package/dist/adapters/slack/task-intent.js +65 -0
- package/dist/adapters/slack/task-intent.js.map +1 -0
- package/dist/adapters/slack/task-status.d.ts +7 -0
- package/dist/adapters/slack/task-status.d.ts.map +1 -0
- package/dist/adapters/slack/task-status.js +96 -0
- package/dist/adapters/slack/task-status.js.map +1 -0
- package/dist/adapters/slack/tool-pack.d.ts +4 -0
- package/dist/adapters/slack/tool-pack.d.ts.map +1 -0
- package/dist/adapters/slack/tool-pack.js +40 -0
- package/dist/adapters/slack/tool-pack.js.map +1 -0
- package/dist/adapters/slack/tools/blockkit.d.ts +17 -0
- package/dist/adapters/slack/tools/blockkit.d.ts.map +1 -0
- package/dist/adapters/slack/tools/blockkit.js +98 -0
- package/dist/adapters/slack/tools/blockkit.js.map +1 -0
- package/dist/adapters/slack/types.d.ts +91 -5
- 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 +13 -0
- package/dist/adapters/slack/update-diagnostics.d.ts.map +1 -0
- package/dist/adapters/slack/update-diagnostics.js +128 -0
- package/dist/adapters/slack/update-diagnostics.js.map +1 -0
- package/dist/adapters/telegram/bot.d.ts +12 -19
- package/dist/adapters/telegram/bot.d.ts.map +1 -1
- package/dist/adapters/telegram/bot.js +114 -239
- package/dist/adapters/telegram/bot.js.map +1 -1
- package/dist/adapters/telegram/context.d.ts +3 -7
- package/dist/adapters/telegram/context.d.ts.map +1 -1
- package/dist/adapters/telegram/context.js +49 -191
- package/dist/adapters/telegram/context.js.map +1 -1
- package/dist/adapters/telegram/types.d.ts +24 -1
- package/dist/adapters/telegram/types.d.ts.map +1 -1
- package/dist/adapters/telegram/types.js.map +1 -1
- package/dist/adapters/types.d.ts +92 -17
- 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 +1766 -0
- package/dist/adapters/web/admin/client-assets.js.map +1 -0
- package/dist/adapters/web/admin/portal.d.ts +26 -0
- package/dist/adapters/web/admin/portal.d.ts.map +1 -0
- package/dist/adapters/web/admin/portal.js +1490 -0
- package/dist/adapters/web/admin/portal.js.map +1 -0
- package/dist/adapters/web/admin/provider-models.d.ts +10 -0
- package/dist/adapters/web/admin/provider-models.d.ts.map +1 -0
- package/dist/adapters/web/admin/provider-models.js +103 -0
- package/dist/adapters/web/admin/provider-models.js.map +1 -0
- package/dist/adapters/web/admin/types.d.ts +54 -0
- package/dist/adapters/web/admin/types.d.ts.map +1 -0
- package/dist/adapters/web/admin/types.js.map +1 -0
- package/dist/adapters/web/login/oauth.d.ts +4 -0
- package/dist/adapters/web/login/oauth.d.ts.map +1 -0
- package/dist/adapters/web/login/oauth.js +219 -0
- package/dist/adapters/web/login/oauth.js.map +1 -0
- package/dist/adapters/web/login/portal.d.ts +10 -0
- package/dist/adapters/web/login/portal.d.ts.map +1 -0
- package/dist/adapters/web/login/portal.js +1336 -0
- package/dist/adapters/web/login/portal.js.map +1 -0
- package/dist/adapters/web/login/types.d.ts +34 -0
- package/dist/adapters/web/login/types.d.ts.map +1 -0
- package/dist/adapters/web/login/types.js.map +1 -0
- package/dist/adapters/web/portal-shell.d.ts +9 -0
- package/dist/adapters/web/portal-shell.d.ts.map +1 -0
- package/dist/adapters/web/portal-shell.js +428 -0
- package/dist/adapters/web/portal-shell.js.map +1 -0
- package/dist/adapters/web/server.d.ts +35 -0
- package/dist/adapters/web/server.d.ts.map +1 -0
- package/dist/adapters/web/server.js +80 -0
- package/dist/adapters/web/server.js.map +1 -0
- package/dist/adapters/web/session-view/portal.d.ts +19 -0
- package/dist/adapters/web/session-view/portal.d.ts.map +1 -0
- package/dist/adapters/web/session-view/portal.js +1833 -0
- package/dist/adapters/web/session-view/portal.js.map +1 -0
- package/dist/adapters/web/session-view/types.d.ts +45 -0
- package/dist/adapters/web/session-view/types.d.ts.map +1 -0
- package/dist/adapters/web/session-view/types.js.map +1 -0
- package/dist/adapters/web/token-store.d.ts +10 -0
- package/dist/adapters/web/token-store.d.ts.map +1 -0
- package/dist/adapters/web/token-store.js +42 -0
- package/dist/adapters/web/token-store.js.map +1 -0
- package/dist/adapters/web/types.d.ts.map +1 -0
- package/dist/adapters/web/types.js.map +1 -0
- package/dist/cli/arg-grammar.d.ts +8 -0
- package/dist/cli/arg-grammar.d.ts.map +1 -0
- package/dist/cli/arg-grammar.js +47 -0
- package/dist/cli/arg-grammar.js.map +1 -0
- package/dist/cli/boot.d.ts +4 -0
- package/dist/cli/boot.d.ts.map +1 -0
- package/dist/cli/boot.js +79 -0
- package/dist/cli/boot.js.map +1 -0
- package/dist/cli/download.d.ts.map +1 -0
- package/dist/cli/download.js +84 -0
- package/dist/cli/download.js.map +1 -0
- package/dist/cli/migrate.d.ts +3 -0
- package/dist/cli/migrate.d.ts.map +1 -0
- package/dist/cli/migrate.js +74 -0
- package/dist/cli/migrate.js.map +1 -0
- package/dist/cli/office.d.ts +2 -0
- package/dist/cli/office.d.ts.map +1 -0
- package/dist/cli/office.js +30 -0
- package/dist/cli/office.js.map +1 -0
- package/dist/cli/onboard.d.ts +7 -0
- package/dist/cli/onboard.d.ts.map +1 -0
- package/dist/cli/onboard.js +192 -0
- package/dist/cli/onboard.js.map +1 -0
- package/dist/cli/process-lifecycle.d.ts +14 -0
- package/dist/cli/process-lifecycle.d.ts.map +1 -0
- package/dist/cli/process-lifecycle.js +61 -0
- package/dist/cli/process-lifecycle.js.map +1 -0
- package/dist/cli/types.d.ts +20 -0
- package/dist/cli/types.d.ts.map +1 -0
- package/dist/cli/types.js.map +1 -0
- package/dist/env-manifest.d.ts +14 -0
- package/dist/env-manifest.d.ts.map +1 -0
- package/dist/env-manifest.js +255 -0
- package/dist/env-manifest.js.map +1 -0
- package/dist/events/index.d.ts +105 -0
- package/dist/events/index.d.ts.map +1 -0
- package/dist/events/index.js +252 -0
- package/dist/events/index.js.map +1 -0
- package/dist/events/scheduler.d.ts +24 -0
- package/dist/events/scheduler.d.ts.map +1 -0
- package/dist/events/scheduler.js +221 -0
- package/dist/events/scheduler.js.map +1 -0
- package/dist/file-guards.d.ts +20 -0
- package/dist/file-guards.d.ts.map +1 -0
- package/dist/file-guards.js +166 -0
- package/dist/file-guards.js.map +1 -0
- package/dist/harness/budget-stop.d.ts +3 -0
- package/dist/harness/budget-stop.d.ts.map +1 -0
- package/dist/harness/budget-stop.js +36 -0
- package/dist/harness/budget-stop.js.map +1 -0
- package/dist/harness/execution-env.d.ts +4 -0
- package/dist/harness/execution-env.d.ts.map +1 -0
- package/dist/harness/execution-env.js +245 -0
- package/dist/harness/execution-env.js.map +1 -0
- package/dist/harness/execution-resolver.d.ts +23 -0
- package/dist/harness/execution-resolver.d.ts.map +1 -0
- package/dist/harness/execution-resolver.js +152 -0
- package/dist/harness/execution-resolver.js.map +1 -0
- 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 +18 -17
- package/dist/harness/index.d.ts.map +1 -1
- package/dist/harness/index.js +11 -15
- package/dist/harness/index.js.map +1 -1
- package/dist/harness/jev.d.ts +67 -0
- package/dist/harness/jev.d.ts.map +1 -0
- package/dist/harness/jev.js +135 -0
- package/dist/harness/jev.js.map +1 -0
- package/dist/harness/loop-guard.d.ts +10 -0
- package/dist/harness/loop-guard.d.ts.map +1 -0
- package/dist/harness/loop-guard.js +111 -0
- package/dist/harness/loop-guard.js.map +1 -0
- package/dist/harness/mcp-result.d.ts +21 -0
- package/dist/harness/mcp-result.d.ts.map +1 -0
- package/dist/harness/mcp-result.js +193 -0
- package/dist/harness/mcp-result.js.map +1 -0
- package/dist/harness/mcp.d.ts +17 -0
- package/dist/harness/mcp.d.ts.map +1 -0
- package/dist/harness/mcp.js +287 -0
- package/dist/harness/mcp.js.map +1 -0
- package/dist/harness/models.d.ts +2 -19
- package/dist/harness/models.d.ts.map +1 -1
- package/dist/harness/models.js +43 -95
- package/dist/harness/models.js.map +1 -1
- package/dist/harness/open-connector.d.ts +3 -0
- package/dist/harness/open-connector.d.ts.map +1 -0
- package/dist/harness/open-connector.js +106 -0
- package/dist/harness/open-connector.js.map +1 -0
- package/dist/harness/presenter.d.ts +11 -0
- package/dist/harness/presenter.d.ts.map +1 -0
- package/dist/harness/presenter.js +867 -0
- package/dist/harness/presenter.js.map +1 -0
- package/dist/harness/prompt.d.ts +17 -0
- package/dist/harness/prompt.d.ts.map +1 -0
- package/dist/harness/prompt.js +348 -0
- package/dist/harness/prompt.js.map +1 -0
- package/dist/harness/run-events.d.ts +10 -0
- package/dist/harness/run-events.d.ts.map +1 -0
- package/dist/harness/run-events.js +126 -0
- package/dist/harness/run-events.js.map +1 -0
- package/dist/harness/runner.d.ts +2 -123
- package/dist/harness/runner.d.ts.map +1 -1
- package/dist/harness/runner.js +570 -414
- package/dist/harness/runner.js.map +1 -1
- package/dist/harness/session.d.ts +102 -0
- package/dist/harness/session.d.ts.map +1 -0
- package/dist/harness/session.js +720 -0
- package/dist/harness/session.js.map +1 -0
- package/dist/harness/skills.d.ts +7 -41
- package/dist/harness/skills.d.ts.map +1 -1
- package/dist/harness/skills.js +120 -69
- package/dist/harness/skills.js.map +1 -1
- package/dist/harness/subagent-profiles.d.ts +3 -0
- package/dist/harness/subagent-profiles.d.ts.map +1 -0
- package/dist/harness/subagent-profiles.js +260 -0
- package/dist/harness/subagent-profiles.js.map +1 -0
- package/dist/harness/subagent.d.ts +39 -0
- package/dist/harness/subagent.d.ts.map +1 -0
- package/dist/harness/subagent.js +613 -0
- package/dist/harness/subagent.js.map +1 -0
- package/dist/harness/tool-args.d.ts +2 -0
- package/dist/harness/tool-args.d.ts.map +1 -0
- package/dist/harness/tool-args.js +20 -0
- package/dist/harness/tool-args.js.map +1 -0
- package/dist/harness/tools/attach.d.ts +13 -0
- package/dist/harness/tools/attach.d.ts.map +1 -0
- package/dist/harness/tools/attach.js +39 -0
- package/dist/harness/tools/attach.js.map +1 -0
- package/dist/harness/tools/codemode.d.ts +3 -0
- package/dist/harness/tools/codemode.d.ts.map +1 -0
- package/dist/harness/tools/codemode.js +173 -0
- package/dist/harness/tools/codemode.js.map +1 -0
- package/dist/harness/tools/event.d.ts +28 -0
- package/dist/harness/tools/event.d.ts.map +1 -0
- package/dist/harness/tools/event.js +183 -0
- package/dist/harness/tools/event.js.map +1 -0
- package/dist/harness/tools/generate-image.d.ts +20 -0
- package/dist/harness/tools/generate-image.d.ts.map +1 -0
- package/dist/harness/tools/generate-image.js +82 -0
- package/dist/harness/tools/generate-image.js.map +1 -0
- package/dist/harness/tools/history.d.ts +20 -0
- package/dist/harness/tools/history.d.ts.map +1 -0
- package/dist/harness/tools/history.js +293 -0
- package/dist/harness/tools/history.js.map +1 -0
- package/dist/harness/tools/host-fn-tool.d.ts +14 -0
- package/dist/harness/tools/host-fn-tool.d.ts.map +1 -0
- package/dist/harness/tools/host-fn-tool.js +39 -0
- package/dist/harness/tools/host-fn-tool.js.map +1 -0
- package/dist/harness/tools/index.d.ts +34 -0
- package/dist/harness/tools/index.d.ts.map +1 -0
- package/dist/harness/tools/index.js +49 -0
- package/dist/harness/tools/index.js.map +1 -0
- package/dist/harness/tools/jev-browser.d.ts +41 -0
- package/dist/harness/tools/jev-browser.d.ts.map +1 -0
- package/dist/harness/tools/jev-browser.js +570 -0
- package/dist/harness/tools/jev-browser.js.map +1 -0
- package/dist/harness/tools/jev.d.ts +15 -0
- package/dist/harness/tools/jev.d.ts.map +1 -0
- package/dist/harness/tools/jev.js +98 -0
- package/dist/harness/tools/jev.js.map +1 -0
- package/dist/harness/tools/pi-tools.d.ts +8 -0
- package/dist/harness/tools/pi-tools.d.ts.map +1 -0
- package/dist/harness/tools/pi-tools.js +81 -0
- package/dist/harness/tools/pi-tools.js.map +1 -0
- package/dist/harness/tools/react.d.ts +12 -0
- package/dist/harness/tools/react.d.ts.map +1 -0
- package/dist/harness/tools/react.js +25 -0
- package/dist/harness/tools/react.js.map +1 -0
- package/dist/harness/tools/sandbox.d.ts +24 -0
- package/dist/harness/tools/sandbox.d.ts.map +1 -0
- package/dist/harness/tools/sandbox.js +79 -0
- package/dist/harness/tools/sandbox.js.map +1 -0
- package/dist/harness/tools/secret-redaction.d.ts +9 -0
- package/dist/harness/tools/secret-redaction.d.ts.map +1 -0
- package/dist/harness/tools/secret-redaction.js +88 -0
- package/dist/harness/tools/secret-redaction.js.map +1 -0
- package/dist/harness/tools/subagent.d.ts +51 -0
- package/dist/harness/tools/subagent.d.ts.map +1 -0
- package/dist/harness/tools/subagent.js +581 -0
- package/dist/harness/tools/subagent.js.map +1 -0
- package/dist/harness/tools/task.d.ts +22 -0
- package/dist/harness/tools/task.d.ts.map +1 -0
- package/dist/harness/tools/task.js +80 -0
- package/dist/harness/tools/task.js.map +1 -0
- package/dist/harness/tools/tool-search.d.ts +5 -0
- package/dist/harness/tools/tool-search.d.ts.map +1 -0
- package/dist/harness/tools/tool-search.js +84 -0
- package/dist/harness/tools/tool-search.js.map +1 -0
- package/dist/harness/tools/types.d.ts +14 -0
- package/dist/harness/tools/types.d.ts.map +1 -0
- package/dist/harness/tools/types.js.map +1 -0
- package/dist/harness/types.d.ts +482 -29
- package/dist/harness/types.d.ts.map +1 -1
- package/dist/harness/types.js +1 -1
- package/dist/harness/types.js.map +1 -1
- package/dist/index.d.ts +31 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15 -7
- package/dist/index.js.map +1 -1
- package/dist/log.d.ts +0 -4
- package/dist/log.d.ts.map +1 -1
- package/dist/log.js +3 -28
- package/dist/log.js.map +1 -1
- package/dist/main.js +282 -258
- package/dist/main.js.map +1 -1
- package/dist/memory-capture/index.d.ts +15 -0
- package/dist/memory-capture/index.d.ts.map +1 -0
- package/dist/memory-capture/index.js +198 -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 +2 -0
- package/dist/memory-capture/types.js.map +1 -0
- package/dist/migrations/actor-vaults.d.ts +3 -0
- package/dist/migrations/actor-vaults.d.ts.map +1 -0
- package/dist/migrations/actor-vaults.js +43 -0
- package/dist/migrations/actor-vaults.js.map +1 -0
- package/dist/migrations/conversation-settings.d.ts +3 -0
- package/dist/migrations/conversation-settings.d.ts.map +1 -0
- package/dist/migrations/conversation-settings.js +31 -0
- package/dist/migrations/conversation-settings.js.map +1 -0
- package/dist/migrations/dream-checkpoints.d.ts +3 -0
- package/dist/migrations/dream-checkpoints.d.ts.map +1 -0
- package/dist/migrations/dream-checkpoints.js +23 -0
- package/dist/migrations/dream-checkpoints.js.map +1 -0
- package/dist/migrations/index.d.ts +14 -0
- package/dist/migrations/index.d.ts.map +1 -0
- package/dist/migrations/index.js +105 -0
- package/dist/migrations/index.js.map +1 -0
- package/dist/migrations/models-json.d.ts +3 -0
- package/dist/migrations/models-json.d.ts.map +1 -0
- package/dist/migrations/models-json.js +18 -0
- package/dist/migrations/models-json.js.map +1 -0
- package/dist/migrations/office-layout.d.ts +4 -0
- package/dist/migrations/office-layout.d.ts.map +1 -0
- package/dist/migrations/office-layout.js +94 -0
- package/dist/migrations/office-layout.js.map +1 -0
- package/dist/migrations/office-sessions.d.ts +3 -0
- package/dist/migrations/office-sessions.d.ts.map +1 -0
- package/dist/migrations/office-sessions.js +81 -0
- package/dist/migrations/office-sessions.js.map +1 -0
- package/dist/migrations/private-office-dirs.d.ts +3 -0
- package/dist/migrations/private-office-dirs.d.ts.map +1 -0
- package/dist/migrations/private-office-dirs.js +24 -0
- package/dist/migrations/private-office-dirs.js.map +1 -0
- package/dist/migrations/sandbox-containers.d.ts +3 -0
- package/dist/migrations/sandbox-containers.d.ts.map +1 -0
- package/dist/migrations/sandbox-containers.js +36 -0
- package/dist/migrations/sandbox-containers.js.map +1 -0
- package/dist/migrations/session-files.d.ts +28 -0
- package/dist/migrations/session-files.d.ts.map +1 -0
- package/dist/migrations/session-files.js +80 -0
- package/dist/migrations/session-files.js.map +1 -0
- package/dist/migrations/session-v4.d.ts +77 -0
- package/dist/migrations/session-v4.d.ts.map +1 -0
- package/dist/migrations/session-v4.js +177 -0
- package/dist/migrations/session-v4.js.map +1 -0
- package/dist/migrations/sessions-sqlite.d.ts +3 -0
- package/dist/migrations/sessions-sqlite.d.ts.map +1 -0
- package/dist/migrations/sessions-sqlite.js +215 -0
- package/dist/migrations/sessions-sqlite.js.map +1 -0
- package/dist/migrations/sessions-v3.d.ts +8 -0
- package/dist/migrations/sessions-v3.d.ts.map +1 -0
- package/dist/migrations/sessions-v3.js +350 -0
- package/dist/migrations/sessions-v3.js.map +1 -0
- package/dist/migrations/types.d.ts +25 -0
- package/dist/migrations/types.d.ts.map +1 -0
- package/dist/migrations/types.js +2 -0
- package/dist/migrations/types.js.map +1 -0
- package/dist/migrations/workspace-events.d.ts +3 -0
- package/dist/migrations/workspace-events.d.ts.map +1 -0
- package/dist/migrations/workspace-events.js +43 -0
- package/dist/migrations/workspace-events.js.map +1 -0
- package/dist/observability/index.d.ts +30 -0
- package/dist/observability/index.d.ts.map +1 -0
- package/dist/observability/index.js +273 -0
- package/dist/observability/index.js.map +1 -0
- package/dist/observability/instrument.js +9 -6
- package/dist/observability/instrument.js.map +1 -1
- package/dist/observability/otel.d.ts +10 -0
- package/dist/observability/otel.d.ts.map +1 -0
- package/dist/observability/otel.js +182 -0
- package/dist/observability/otel.js.map +1 -0
- package/dist/observability/sentry.d.ts +30 -18
- package/dist/observability/sentry.d.ts.map +1 -1
- package/dist/observability/sentry.js +94 -119
- package/dist/observability/sentry.js.map +1 -1
- package/dist/observability/types.d.ts +30 -19
- package/dist/observability/types.d.ts.map +1 -1
- package/dist/observability/types.js.map +1 -1
- package/dist/office/index.d.ts +49 -0
- package/dist/office/index.d.ts.map +1 -0
- package/dist/office/index.js +395 -0
- package/dist/office/index.js.map +1 -0
- package/dist/office/projection.d.ts +11 -0
- package/dist/office/projection.d.ts.map +1 -0
- package/dist/office/projection.js +145 -0
- package/dist/office/projection.js.map +1 -0
- package/dist/office/types.d.ts +44 -0
- package/dist/office/types.d.ts.map +1 -0
- package/dist/office/types.js +2 -0
- package/dist/office/types.js.map +1 -0
- package/dist/runtime/conversation-runtime.d.ts +0 -1
- package/dist/runtime/conversation-runtime.d.ts.map +1 -1
- package/dist/runtime/conversation-runtime.js +365 -155
- package/dist/runtime/conversation-runtime.js.map +1 -1
- package/dist/runtime/session-lifecycle.d.ts +65 -0
- package/dist/runtime/session-lifecycle.d.ts.map +1 -0
- package/dist/runtime/session-lifecycle.js +384 -0
- package/dist/runtime/session-lifecycle.js.map +1 -0
- package/dist/runtime/types.d.ts +42 -20
- package/dist/runtime/types.d.ts.map +1 -1
- package/dist/runtime/types.js.map +1 -1
- package/dist/sandbox/cloudflare.d.ts +4 -0
- package/dist/sandbox/cloudflare.d.ts.map +1 -1
- package/dist/sandbox/cloudflare.js +59 -55
- package/dist/sandbox/cloudflare.js.map +1 -1
- package/dist/sandbox/container.d.ts +3 -0
- package/dist/sandbox/container.d.ts.map +1 -1
- package/dist/sandbox/container.js +39 -20
- package/dist/sandbox/container.js.map +1 -1
- package/dist/sandbox/host.d.ts +3 -0
- package/dist/sandbox/host.d.ts.map +1 -1
- package/dist/sandbox/host.js +42 -35
- package/dist/sandbox/host.js.map +1 -1
- package/dist/sandbox/identity.d.ts +12 -0
- package/dist/sandbox/identity.d.ts.map +1 -0
- package/dist/sandbox/identity.js +42 -0
- package/dist/sandbox/identity.js.map +1 -0
- package/dist/sandbox/index.d.ts +5 -15
- package/dist/sandbox/index.d.ts.map +1 -1
- package/dist/sandbox/index.js +5 -51
- package/dist/sandbox/index.js.map +1 -1
- package/dist/sandbox/layout.d.ts +5 -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 +64 -0
- package/dist/sandbox/provisioner.d.ts.map +1 -0
- package/dist/sandbox/provisioner.js +546 -0
- package/dist/sandbox/provisioner.js.map +1 -0
- package/dist/sandbox/registry.d.ts +12 -0
- package/dist/sandbox/registry.d.ts.map +1 -0
- package/dist/sandbox/registry.js +93 -0
- package/dist/sandbox/registry.js.map +1 -0
- package/dist/sandbox/types.d.ts +23 -25
- package/dist/sandbox/types.d.ts.map +1 -1
- package/dist/sandbox/types.js.map +1 -1
- package/dist/sandbox/utils.d.ts +21 -0
- package/dist/sandbox/utils.d.ts.map +1 -1
- package/dist/sandbox/utils.js +100 -8
- package/dist/sandbox/utils.js.map +1 -1
- package/dist/sessions/chat-history-sync.d.ts +19 -0
- package/dist/sessions/chat-history-sync.d.ts.map +1 -0
- package/dist/sessions/chat-history-sync.js +459 -0
- package/dist/sessions/chat-history-sync.js.map +1 -0
- package/dist/sessions/compaction-summary.d.ts +4 -0
- package/dist/sessions/compaction-summary.d.ts.map +1 -0
- package/dist/sessions/compaction-summary.js +16 -0
- package/dist/sessions/compaction-summary.js.map +1 -0
- package/dist/sessions/history-line.d.ts +10 -0
- package/dist/sessions/history-line.d.ts.map +1 -0
- package/dist/sessions/history-line.js +29 -0
- package/dist/sessions/history-line.js.map +1 -0
- package/dist/sessions/session-key.d.ts +19 -0
- package/dist/sessions/session-key.d.ts.map +1 -0
- package/dist/sessions/session-key.js +91 -0
- package/dist/sessions/session-key.js.map +1 -0
- package/dist/sessions/session-store.d.ts +73 -0
- package/dist/sessions/session-store.d.ts.map +1 -0
- package/dist/sessions/session-store.js +722 -0
- package/dist/sessions/session-store.js.map +1 -0
- package/dist/sessions/types.d.ts +90 -34
- package/dist/sessions/types.d.ts.map +1 -1
- package/dist/sessions/types.js +2 -1
- package/dist/sessions/types.js.map +1 -1
- package/dist/settings/apply.d.ts +9 -0
- package/dist/settings/apply.d.ts.map +1 -0
- package/dist/settings/apply.js +31 -0
- package/dist/settings/apply.js.map +1 -0
- package/dist/settings/index.d.ts +28 -0
- package/dist/settings/index.d.ts.map +1 -0
- package/dist/settings/index.js +320 -0
- package/dist/settings/index.js.map +1 -0
- package/dist/types.d.ts +209 -191
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -3
- package/dist/types.js.map +1 -1
- package/dist/unknown-values.d.ts +3 -0
- package/dist/unknown-values.d.ts.map +1 -0
- package/dist/unknown-values.js +7 -0
- package/dist/unknown-values.js.map +1 -0
- package/dist/vault/index.d.ts +28 -11
- package/dist/vault/index.d.ts.map +1 -1
- package/dist/vault/index.js +291 -118
- package/dist/vault/index.js.map +1 -1
- package/dist/vault/types.d.ts +5 -19
- package/dist/vault/types.d.ts.map +1 -1
- package/dist/vault/types.js.map +1 -1
- package/package.json +87 -41
- package/dist/adapter.d.ts +0 -2
- package/dist/adapter.d.ts.map +0 -1
- package/dist/adapter.js +0 -2
- package/dist/adapter.js.map +0 -1
- package/dist/adapters/github/repo.d.ts +0 -19
- package/dist/adapters/github/repo.d.ts.map +0 -1
- package/dist/adapters/github/repo.js +0 -58
- package/dist/adapters/github/repo.js.map +0 -1
- package/dist/adapters/slack/tools/attach.d.ts +0 -12
- package/dist/adapters/slack/tools/attach.d.ts.map +0 -1
- package/dist/adapters/slack/tools/attach.js +0 -39
- package/dist/adapters/slack/tools/attach.js.map +0 -1
- package/dist/adapters/streaming.d.ts +0 -18
- package/dist/adapters/streaming.d.ts.map +0 -1
- package/dist/adapters/streaming.js +0 -44
- package/dist/adapters/streaming.js.map +0 -1
- package/dist/adapters/telegram/html.d.ts +0 -3
- package/dist/adapters/telegram/html.d.ts.map +0 -1
- package/dist/adapters/telegram/html.js +0 -98
- package/dist/adapters/telegram/html.js.map +0 -1
- package/dist/agent-events.d.ts +0 -5
- package/dist/agent-events.d.ts.map +0 -1
- package/dist/agent-events.js +0 -26
- package/dist/agent-events.js.map +0 -1
- package/dist/agent.d.ts +0 -39
- package/dist/agent.d.ts.map +0 -1
- package/dist/agent.js +0 -1299
- package/dist/agent.js.map +0 -1
- package/dist/cli/ext-git.d.ts +0 -22
- package/dist/cli/ext-git.d.ts.map +0 -1
- package/dist/cli/ext-git.js +0 -76
- package/dist/cli/ext-git.js.map +0 -1
- package/dist/cli/ext.d.ts +0 -2
- package/dist/cli/ext.d.ts.map +0 -1
- package/dist/cli/ext.js +0 -217
- package/dist/cli/ext.js.map +0 -1
- package/dist/commands/admin.d.ts.map +0 -1
- package/dist/commands/admin.js +0 -30
- package/dist/commands/admin.js.map +0 -1
- package/dist/commands/auto-reply.d.ts +0 -8
- package/dist/commands/auto-reply.d.ts.map +0 -1
- package/dist/commands/auto-reply.js +0 -76
- package/dist/commands/auto-reply.js.map +0 -1
- package/dist/commands/extensions.d.ts +0 -14
- package/dist/commands/extensions.d.ts.map +0 -1
- package/dist/commands/extensions.js +0 -55
- package/dist/commands/extensions.js.map +0 -1
- package/dist/commands/login.d.ts +0 -5
- package/dist/commands/login.d.ts.map +0 -1
- package/dist/commands/login.js +0 -115
- package/dist/commands/login.js.map +0 -1
- package/dist/commands/model.d.ts +0 -10
- package/dist/commands/model.d.ts.map +0 -1
- package/dist/commands/model.js +0 -102
- package/dist/commands/model.js.map +0 -1
- package/dist/commands/new.d.ts.map +0 -1
- package/dist/commands/new.js +0 -25
- package/dist/commands/new.js.map +0 -1
- package/dist/commands/parse.d.ts +0 -7
- package/dist/commands/parse.d.ts.map +0 -1
- package/dist/commands/parse.js +0 -14
- package/dist/commands/parse.js.map +0 -1
- package/dist/commands/registry.d.ts +0 -5
- package/dist/commands/registry.d.ts.map +0 -1
- package/dist/commands/registry.js +0 -31
- package/dist/commands/registry.js.map +0 -1
- package/dist/commands/sandbox.d.ts +0 -7
- package/dist/commands/sandbox.d.ts.map +0 -1
- package/dist/commands/sandbox.js +0 -78
- package/dist/commands/sandbox.js.map +0 -1
- package/dist/commands/session-view.d.ts.map +0 -1
- package/dist/commands/session-view.js +0 -41
- package/dist/commands/session-view.js.map +0 -1
- package/dist/commands/types.d.ts +0 -66
- package/dist/commands/types.d.ts.map +0 -1
- package/dist/commands/types.js.map +0 -1
- package/dist/commands/utils.d.ts +0 -11
- package/dist/commands/utils.d.ts.map +0 -1
- package/dist/commands/utils.js +0 -29
- package/dist/commands/utils.js.map +0 -1
- package/dist/config.d.ts +0 -78
- package/dist/config.d.ts.map +0 -1
- package/dist/config.js +0 -450
- package/dist/config.js.map +0 -1
- package/dist/download.d.ts.map +0 -1
- package/dist/download.js +0 -89
- package/dist/download.js.map +0 -1
- package/dist/events.d.ts +0 -43
- package/dist/events.d.ts.map +0 -1
- package/dist/events.js +0 -456
- package/dist/events.js.map +0 -1
- package/dist/execution-resolver.d.ts +0 -21
- package/dist/execution-resolver.d.ts.map +0 -1
- package/dist/execution-resolver.js +0 -170
- package/dist/execution-resolver.js.map +0 -1
- package/dist/harness/auth.d.ts +0 -16
- package/dist/harness/auth.d.ts.map +0 -1
- package/dist/harness/auth.js +0 -86
- package/dist/harness/auth.js.map +0 -1
- package/dist/harness/extensions/loader.d.ts +0 -86
- package/dist/harness/extensions/loader.d.ts.map +0 -1
- package/dist/harness/extensions/loader.js +0 -525
- package/dist/harness/extensions/loader.js.map +0 -1
- package/dist/harness/extensions/registry.d.ts +0 -23
- package/dist/harness/extensions/registry.d.ts.map +0 -1
- package/dist/harness/extensions/registry.js +0 -45
- package/dist/harness/extensions/registry.js.map +0 -1
- package/dist/harness/extensions/types.d.ts +0 -248
- package/dist/harness/extensions/types.d.ts.map +0 -1
- package/dist/harness/extensions/types.js.map +0 -1
- package/dist/harness/session-store.d.ts +0 -77
- package/dist/harness/session-store.d.ts.map +0 -1
- package/dist/harness/session-store.js +0 -248
- package/dist/harness/session-store.js.map +0 -1
- package/dist/harness/settings.d.ts +0 -47
- package/dist/harness/settings.d.ts.map +0 -1
- package/dist/harness/settings.js +0 -29
- package/dist/harness/settings.js.map +0 -1
- package/dist/model-registry.d.ts +0 -4
- package/dist/model-registry.d.ts.map +0 -1
- package/dist/model-registry.js +0 -7
- package/dist/model-registry.js.map +0 -1
- package/dist/platform-messages.d.ts +0 -12
- package/dist/platform-messages.d.ts.map +0 -1
- package/dist/platform-messages.js +0 -36
- package/dist/platform-messages.js.map +0 -1
- package/dist/portal-shell.d.ts +0 -4
- package/dist/portal-shell.d.ts.map +0 -1
- package/dist/portal-shell.js +0 -366
- package/dist/portal-shell.js.map +0 -1
- package/dist/provisioner.d.ts +0 -61
- package/dist/provisioner.d.ts.map +0 -1
- package/dist/provisioner.js +0 -517
- package/dist/provisioner.js.map +0 -1
- package/dist/runtime/agent-run-controller.d.ts +0 -31
- package/dist/runtime/agent-run-controller.d.ts.map +0 -1
- package/dist/runtime/agent-run-controller.js +0 -195
- package/dist/runtime/agent-run-controller.js.map +0 -1
- package/dist/sandbox/errors.d.ts +0 -6
- package/dist/sandbox/errors.d.ts.map +0 -1
- package/dist/sandbox/errors.js +0 -11
- package/dist/sandbox/errors.js.map +0 -1
- package/dist/sandbox/firecracker.d.ts +0 -15
- package/dist/sandbox/firecracker.d.ts.map +0 -1
- package/dist/sandbox/firecracker.js +0 -212
- package/dist/sandbox/firecracker.js.map +0 -1
- package/dist/sandbox/image.d.ts +0 -3
- package/dist/sandbox/image.d.ts.map +0 -1
- package/dist/sandbox/image.js +0 -27
- package/dist/sandbox/image.js.map +0 -1
- package/dist/sandbox/path-context.d.ts +0 -3
- package/dist/sandbox/path-context.d.ts.map +0 -1
- package/dist/sandbox/path-context.js +0 -20
- package/dist/sandbox/path-context.js.map +0 -1
- package/dist/sessions/agent-memory-file-manager.d.ts +0 -19
- package/dist/sessions/agent-memory-file-manager.d.ts.map +0 -1
- package/dist/sessions/agent-memory-file-manager.js +0 -484
- package/dist/sessions/agent-memory-file-manager.js.map +0 -1
- package/dist/sessions/metadata.d.ts +0 -3
- package/dist/sessions/metadata.d.ts.map +0 -1
- package/dist/sessions/metadata.js +0 -11
- package/dist/sessions/metadata.js.map +0 -1
- package/dist/sessions/policy.d.ts +0 -6
- package/dist/sessions/policy.d.ts.map +0 -1
- package/dist/sessions/policy.js +0 -24
- package/dist/sessions/policy.js.map +0 -1
- package/dist/sessions/store.d.ts +0 -72
- package/dist/sessions/store.d.ts.map +0 -1
- package/dist/sessions/store.js +0 -193
- package/dist/sessions/store.js.map +0 -1
- package/dist/store.d.ts +0 -46
- package/dist/store.d.ts.map +0 -1
- package/dist/store.js +0 -177
- package/dist/store.js.map +0 -1
- package/dist/tools/bash.d.ts +0 -10
- package/dist/tools/bash.d.ts.map +0 -1
- package/dist/tools/bash.js +0 -80
- package/dist/tools/bash.js.map +0 -1
- package/dist/tools/edit.d.ts +0 -11
- package/dist/tools/edit.d.ts.map +0 -1
- package/dist/tools/edit.js +0 -131
- package/dist/tools/edit.js.map +0 -1
- package/dist/tools/event.d.ts +0 -56
- package/dist/tools/event.d.ts.map +0 -1
- package/dist/tools/event.js +0 -252
- package/dist/tools/event.js.map +0 -1
- package/dist/tools/github-pr.d.ts +0 -22
- package/dist/tools/github-pr.d.ts.map +0 -1
- package/dist/tools/github-pr.js +0 -53
- package/dist/tools/github-pr.js.map +0 -1
- package/dist/tools/index.d.ts +0 -25
- package/dist/tools/index.d.ts.map +0 -1
- package/dist/tools/index.js +0 -35
- package/dist/tools/index.js.map +0 -1
- package/dist/tools/react.d.ts +0 -15
- package/dist/tools/react.d.ts.map +0 -1
- package/dist/tools/react.js +0 -40
- package/dist/tools/react.js.map +0 -1
- package/dist/tools/read.d.ts +0 -11
- package/dist/tools/read.d.ts.map +0 -1
- package/dist/tools/read.js +0 -134
- package/dist/tools/read.js.map +0 -1
- package/dist/tools/sandbox.d.ts +0 -22
- package/dist/tools/sandbox.d.ts.map +0 -1
- package/dist/tools/sandbox.js +0 -73
- package/dist/tools/sandbox.js.map +0 -1
- package/dist/tools/truncate.d.ts +0 -33
- package/dist/tools/truncate.d.ts.map +0 -1
- package/dist/tools/truncate.js +0 -184
- package/dist/tools/truncate.js.map +0 -1
- package/dist/tools/types.d.ts +0 -54
- package/dist/tools/types.d.ts.map +0 -1
- package/dist/tools/types.js.map +0 -1
- package/dist/tools/write.d.ts +0 -10
- package/dist/tools/write.d.ts.map +0 -1
- package/dist/tools/write.js +0 -29
- package/dist/tools/write.js.map +0 -1
- package/dist/trigger.d.ts +0 -22
- package/dist/trigger.d.ts.map +0 -1
- package/dist/trigger.js +0 -100
- package/dist/trigger.js.map +0 -1
- package/dist/utils/date.d.ts +0 -10
- package/dist/utils/date.d.ts.map +0 -1
- package/dist/utils/date.js +0 -23
- package/dist/utils/date.js.map +0 -1
- package/dist/utils/env.d.ts +0 -3
- package/dist/utils/env.d.ts.map +0 -1
- package/dist/utils/env.js +0 -12
- package/dist/utils/env.js.map +0 -1
- package/dist/utils/file-guards.d.ts +0 -9
- package/dist/utils/file-guards.d.ts.map +0 -1
- package/dist/utils/file-guards.js +0 -59
- package/dist/utils/file-guards.js.map +0 -1
- package/dist/utils/fs-atomic.d.ts +0 -10
- package/dist/utils/fs-atomic.d.ts.map +0 -1
- package/dist/utils/fs-atomic.js +0 -45
- package/dist/utils/fs-atomic.js.map +0 -1
- package/dist/utils/html.d.ts +0 -2
- package/dist/utils/html.d.ts.map +0 -1
- package/dist/utils/html.js +0 -4
- package/dist/utils/html.js.map +0 -1
- package/dist/utils/http-body.d.ts +0 -10
- package/dist/utils/http-body.d.ts.map +0 -1
- package/dist/utils/http-body.js +0 -34
- package/dist/utils/http-body.js.map +0 -1
- package/dist/vault/routing.d.ts +0 -3
- package/dist/vault/routing.d.ts.map +0 -1
- package/dist/vault/routing.js +0 -13
- package/dist/vault/routing.js.map +0 -1
- package/dist/web/admin/portal.d.ts +0 -5
- package/dist/web/admin/portal.d.ts.map +0 -1
- package/dist/web/admin/portal.js +0 -2572
- package/dist/web/admin/portal.js.map +0 -1
- package/dist/web/admin/provider-models.d.ts +0 -10
- package/dist/web/admin/provider-models.d.ts.map +0 -1
- package/dist/web/admin/provider-models.js +0 -96
- package/dist/web/admin/provider-models.js.map +0 -1
- package/dist/web/admin/store.d.ts +0 -13
- package/dist/web/admin/store.d.ts.map +0 -1
- package/dist/web/admin/store.js +0 -14
- package/dist/web/admin/store.js.map +0 -1
- package/dist/web/admin/types.d.ts +0 -30
- package/dist/web/admin/types.d.ts.map +0 -1
- package/dist/web/admin/types.js.map +0 -1
- package/dist/web/agent-events/portal.d.ts +0 -3
- package/dist/web/agent-events/portal.d.ts.map +0 -1
- package/dist/web/agent-events/portal.js +0 -18
- package/dist/web/agent-events/portal.js.map +0 -1
- package/dist/web/login/oauth.d.ts +0 -6
- package/dist/web/login/oauth.d.ts.map +0 -1
- package/dist/web/login/oauth.js +0 -258
- package/dist/web/login/oauth.js.map +0 -1
- package/dist/web/login/portal.d.ts +0 -17
- package/dist/web/login/portal.d.ts.map +0 -1
- package/dist/web/login/portal.js +0 -1329
- package/dist/web/login/portal.js.map +0 -1
- package/dist/web/login/store.d.ts +0 -8
- package/dist/web/login/store.d.ts.map +0 -1
- package/dist/web/login/store.js +0 -15
- package/dist/web/login/store.js.map +0 -1
- package/dist/web/login/types.d.ts +0 -50
- package/dist/web/login/types.d.ts.map +0 -1
- package/dist/web/login/types.js.map +0 -1
- package/dist/web/request.d.ts +0 -3
- package/dist/web/request.d.ts.map +0 -1
- package/dist/web/request.js +0 -13
- package/dist/web/request.js.map +0 -1
- package/dist/web/server.d.ts +0 -28
- package/dist/web/server.d.ts.map +0 -1
- package/dist/web/server.js +0 -66
- package/dist/web/server.js.map +0 -1
- package/dist/web/session-view/command.d.ts +0 -4
- package/dist/web/session-view/command.d.ts.map +0 -1
- package/dist/web/session-view/command.js +0 -7
- package/dist/web/session-view/command.js.map +0 -1
- package/dist/web/session-view/portal.d.ts +0 -13
- package/dist/web/session-view/portal.d.ts.map +0 -1
- package/dist/web/session-view/portal.js +0 -1651
- package/dist/web/session-view/portal.js.map +0 -1
- package/dist/web/session-view/service.d.ts +0 -6
- package/dist/web/session-view/service.d.ts.map +0 -1
- package/dist/web/session-view/service.js +0 -498
- package/dist/web/session-view/service.js.map +0 -1
- package/dist/web/session-view/store.d.ts +0 -8
- package/dist/web/session-view/store.d.ts.map +0 -1
- package/dist/web/session-view/store.js +0 -15
- package/dist/web/session-view/store.js.map +0 -1
- package/dist/web/session-view/types.d.ts +0 -50
- package/dist/web/session-view/types.d.ts.map +0 -1
- package/dist/web/session-view/types.js.map +0 -1
- package/dist/web/token-store.d.ts +0 -13
- package/dist/web/token-store.d.ts.map +0 -1
- package/dist/web/token-store.js +0 -44
- package/dist/web/token-store.js.map +0 -1
- package/dist/web/types.d.ts.map +0 -1
- package/dist/web/types.js.map +0 -1
- /package/dist/{commands → adapters/commands}/admin.d.ts +0 -0
- /package/dist/{commands → adapters/commands}/new.d.ts +0 -0
- /package/dist/{commands → adapters/commands}/session-view.d.ts +0 -0
- /package/dist/{commands → adapters/commands}/types.js +0 -0
- /package/dist/{harness/extensions → adapters/web/admin}/types.js +0 -0
- /package/dist/{tools → adapters/web/login}/types.js +0 -0
- /package/dist/{web/admin → adapters/web/session-view}/types.js +0 -0
- /package/dist/{web → adapters/web}/types.d.ts +0 -0
- /package/dist/{web/login → adapters/web}/types.js +0 -0
- /package/dist/{download.d.ts → cli/download.d.ts} +0 -0
- /package/dist/{web/session-view → cli}/types.js +0 -0
- /package/dist/{web → harness/tools}/types.js +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -9,738 +9,649 @@ any release.
|
|
|
9
9
|
|
|
10
10
|
## [Unreleased]
|
|
11
11
|
|
|
12
|
-
## [1.0.0-beta.
|
|
13
|
-
|
|
14
|
-
### Added
|
|
15
|
-
|
|
16
|
-
- Clone GitHub repositories into conversation workspaces and check out pull request heads.
|
|
17
|
-
- Add a `github_pr` tool that pushes agent changes from `pi/*` branches and opens pull requests.
|
|
12
|
+
## [1.0.0-beta.90]
|
|
18
13
|
|
|
19
14
|
### Changed
|
|
20
15
|
|
|
21
|
-
-
|
|
22
|
-
- Post completed GitHub responses as single comments instead of streaming edits.
|
|
23
|
-
|
|
24
|
-
### Fixed
|
|
25
|
-
|
|
26
|
-
- Keep GitHub issue context inside the history recency window.
|
|
16
|
+
- Run `mikan migrate` before starting this version. It deletes each office's `dream.json`, the checkpoint of the Dream maintenance removed in [ADR 0012](docs/adr/0012-remove-dream.md) that nothing reads, and makes every directory under `<state-dir>/conversations/` readable only by its owner (mode 700); links are not followed.
|
|
27
17
|
|
|
28
18
|
### Security
|
|
29
19
|
|
|
30
|
-
-
|
|
31
|
-
- Keep installation tokens out of sandboxes and restrict agent pushes to non-force `pi/*` branches.
|
|
32
|
-
|
|
33
|
-
### Tests
|
|
34
|
-
|
|
35
|
-
- Add coverage for GitHub repository checkout, permission gating, pull request creation, and branch restrictions.
|
|
36
|
-
|
|
37
|
-
## [1.0.0-beta.8]
|
|
38
|
-
|
|
39
|
-
### Added
|
|
40
|
-
|
|
41
|
-
- Add a GitHub messaging adapter where each issue or pull request is an independent conversation.
|
|
42
|
-
- Add GitHub App authentication, mention and participation triggers, persisted polling cursors, and downtime replay.
|
|
43
|
-
- Add GitHub adapter deployment configuration and documentation.
|
|
44
|
-
|
|
45
|
-
### Tests
|
|
46
|
-
|
|
47
|
-
- Add coverage for GitHub polling, authentication, conversation context, triggers, and responses.
|
|
48
|
-
|
|
49
|
-
## [1.0.0-beta.7]
|
|
50
|
-
|
|
51
|
-
### Added
|
|
52
|
-
|
|
53
|
-
- Add TypeScript and npm-package extensions with `package.json` entrypoints and runtime dependencies.
|
|
54
|
-
- Add `mikan ext install`, `validate`, `list`, and `remove` commands.
|
|
55
|
-
- Add extension installation from Git sources and repository subpaths.
|
|
56
|
-
|
|
57
|
-
### Changed
|
|
58
|
-
|
|
59
|
-
- Treat reinstalling an extension as an update while preserving its data directory.
|
|
60
|
-
- Use `package.json` as the primary extension metadata source with `manifest.json` as a fallback.
|
|
61
|
-
- Convert the agent project manager example to TypeScript with a typed extension API.
|
|
62
|
-
- Add the Slack `reactions:write` scope and missing slash commands to the manifests and setup guides.
|
|
20
|
+
- An office's `events/` directory is created readable only by its owner (mode 700) instead of following the process umask.
|
|
63
21
|
|
|
64
|
-
|
|
22
|
+
## [1.0.0-beta.89]
|
|
65
23
|
|
|
66
|
-
|
|
24
|
+
### Breaking
|
|
67
25
|
|
|
68
|
-
|
|
26
|
+
- **Pi is upgraded to 1.0, and conversations now run on `@earendil-works/pi-durable`.** Pi 1.0 removed the harness, sessions, compaction, and coding tools from `pi-agent-core`; pi-durable is their first-party successor (see [ADR 0017](docs/adr/0017-pi-durable-harness.md)). Each office now keeps all its sessions in one SQLite storage, `sessions.db` in its State dir (see [ADR 0018](docs/adr/0018-one-durable-storage-per-office.md)); this needs Node 24.15 or later, whose built-in `node:sqlite` prints an experimental warning on load. Run `mikan migrate` before starting this version: it imports each office's v4 session files into that storage, the current main session as the top-level session and earlier main sessions and threads beside it, and moves the office's `sessions/` directory to `sessions-v4/`. An imported session keeps what the model could still see (the newest compaction summary and everything after it), its name, ID, and mikan's bookkeeping; history an earlier compaction had already hidden stays only in the archived files. Every office must be in `office-registry.json`. A tool call that was still running at upgrade is closed with an error result instead of being retried, and a run left unfinished is not resumed.
|
|
27
|
+
- `/new` resets the session in place: the model starts from an empty context, and the earlier history stays readable to the `history` tool and the session view instead of moving to a new session file.
|
|
28
|
+
- Library API: `createManagedSessionFile`, `createManagedSessionFileAtPath`, `createNewSessionFile`, `extractSessionSuffix`, `extractSessionUuid`, `getThreadSessionFile`, `openManagedSession`, `resolveManagedSessionFile`, `resolveSessionFile`, `tryResolveCurrentSession`, `tryResolveThreadSession`, `isPlatformHistorySession`, `CURRENT_SESSION_VERSION`, `MikanSessionHeader`, and `ChatSyncReport` are removed with session files; `SessionHeader` holds only `id`, `createdAt`, and `parentSessionId`; `registerThreadSession` and `hasMaterializedChatSession` are asynchronous, and `ResolvedSessionScope` no longer has `contextFile`.
|
|
29
|
+
- Library API: `SessionEntry` is mikan's own union of `message`, `custom`, and `compaction` entries, with IDs qualified by the session ID; `BranchSummaryEntry`, `CompactionEntry`, and `CustomEntry` are no longer exported. `SessionStore.createHarness` is replaced by `bindHarness`; `appendCustomMessageEntry`, the tree-era `getBranch`, `getLeafId`, `getEntry`, and `isPersisted`, and `SessionEntry.parentId` are removed; `SessionStore.getContextEntries()` returns the entries still in the model's context; and `MikanAgentSession.compactWhenNearLimit`/`cancelIdleCompaction`/`foldExternalUsage` are gone. `HarnessEvent` no longer mirrors pi-agent-core's `AgentEvent`: it drops `agent_start`/`agent_end`/`turn_start`/`turn_end`, replaces `message_update` with `text_delta`, and tool events carry `details` and a `{ content, details }` result. `MikanAgentSession.messages` and `reloadFromSession` are removed: the session keeps no transcript copy, so read the context through `SessionStore`, and a run's own messages through `lastRunMessages`. Harness tools use pi-durable's `execute(args, api, context)`; plain `AgentTool`s are still adapted.
|
|
69
30
|
|
|
70
31
|
### Added
|
|
71
32
|
|
|
72
|
-
-
|
|
33
|
+
- Slack and Discord mark a message with ⏳ when it waits behind a task that is still running, so a queued message no longer looks ignored.
|
|
34
|
+
- The agent gets a `history` tool, in every conversation, that lists the conversation's sessions (earlier ones replaced by `/new` and its threads), searches or reads them including tool calls and their output that `log.jsonl` does not keep, and searches the chat log; a query matches entries containing all of its words, and a Chinese or Japanese word also matches when most of its character pairs appear, so `暫時代號` finds `暫時註記:代號`. The system prompt tells the agent to answer from its own context when it can, and to look up a result its context lacks, such as a command's output from another session, instead of guessing or rerunning the command. It never reaches another conversation.
|
|
35
|
+
- `SENTRY_TRACES_SAMPLE_RATE` (0 to 1, default 1) sets how many traces go to Sentry when OTLP traces are not configured; an invalid value stops startup.
|
|
73
36
|
|
|
74
37
|
### Changed
|
|
75
38
|
|
|
76
|
-
-
|
|
77
|
-
-
|
|
39
|
+
- A new thread starts from what caused it. A thread under a channel answer, or under the message that triggered it, forks that run, so it carries the run's context up to its end, including tool calls and their output: asked what a command printed, the agent reads it instead of guessing or running it again. Any other thread starts from its root and its own replies, instead of ten earlier top-level messages copied from the chat log. Each run records the message that started it, and the chat log records each run answer with that message and its session.
|
|
40
|
+
- Chat history never appears as the agent's own turn: synced messages from other people, other bots, and mikan's notices enter a session as attributed chat lines, and an answer a run posted is left to its own session, so a Discord or Telegram reply answered in another session no longer leaks into the channel session.
|
|
41
|
+
- Compaction is Pi's: it runs in the background as the context grows and blocks the next request only near the limit, so mikan no longer starts its own compaction after a reply. Compaction summary requests now count toward a run's LLM-call and token budgets, and a request over the LLM-call budget is never sent.
|
|
42
|
+
- A run left unfinished by a crash or restart is aborted before the next message in that conversation instead of answering first.
|
|
43
|
+
- A thread session is named after the first line of its root message, cut to 80 characters, instead of the whole message; existing thread sessions take the short name on their next run.
|
|
78
44
|
|
|
79
45
|
### Fixed
|
|
80
46
|
|
|
81
|
-
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
-
|
|
47
|
+
- A one-shot event whose time passed while mikan was restarting or stopped now fires when mikan starts, instead of being deleted without running.
|
|
48
|
+
- Tool results that report `isError` reach the model as errors, so a failing codemode script is no longer recorded as a success.
|
|
49
|
+
- A run stopped before the model wrote anything no longer stores a made-up aborted answer, and its reply is never taken from the previous run.
|
|
50
|
+
- Compaction entries in the session view and subagent parent context show the summary itself, without Pi's wrapper text, and a subagent's parent context keeps the messages Pi retained after compaction.
|
|
51
|
+
- A run Pi settles with a model error is recorded as failed instead of completed.
|
|
52
|
+
- The usage summary's context size follows Pi's rule, the newest successful answer after the latest compaction, so it no longer reports the pre-compaction size, and it is omitted until a new answer measures it.
|
|
86
53
|
|
|
87
|
-
## [1.0.0-beta.
|
|
54
|
+
## [1.0.0-beta.88]
|
|
88
55
|
|
|
89
56
|
### Added
|
|
90
57
|
|
|
91
|
-
-
|
|
92
|
-
-
|
|
93
|
-
|
|
94
|
-
### Changed
|
|
95
|
-
|
|
96
|
-
- Store conversation extension code and data under `conversations/<id>/` and global extension assets under `global/`.
|
|
97
|
-
- Make `api.paths.dataDir` conversation-scoped by default to prevent accidental cross-conversation state sharing.
|
|
98
|
-
|
|
99
|
-
### Tests
|
|
100
|
-
|
|
101
|
-
- Update extension loader and command coverage for the conversation-scoped layout.
|
|
58
|
+
- `tool_search` discovers authorized MCP tools and loads matching schemas for the next model call. MCP connections still start as before, but tools are no longer all declared upfront. Loaded tools survive later prompts and session reopen, subject to current grants. Codemode gains `searchTools()` and omits MCP schemas from its inline description.
|
|
59
|
+
- `codemode` runs JavaScript through Pi's official QuickJS sandbox to combine authorized tools and filter results before returning them to the model. Existing direct tools remain available; nested calls honor per-run grants, loop guards and cancellation, and appear in progress and tool-call counts. Sessions without tools stay tool-less.
|
|
102
60
|
|
|
103
|
-
|
|
61
|
+
### Fixed
|
|
104
62
|
|
|
105
|
-
|
|
63
|
+
- Codemode follows Pi's model-facing helper guidance and generates asynchronous global declarations from the same definitions used by the official sandbox. `searchTools` and `describeTool` are explicitly global functions called with `await`; their complete declarations remain available even when the nested tool catalog exceeds its inline budget. Discovery uses Pi-generated tool samples with declared output schemas and its text-result default, so scripts can distinguish JSON text from structured values.
|
|
106
64
|
|
|
107
|
-
|
|
65
|
+
## [1.0.0-beta.87]
|
|
108
66
|
|
|
109
67
|
### Fixed
|
|
110
68
|
|
|
111
|
-
-
|
|
112
|
-
|
|
113
|
-
### Tests
|
|
69
|
+
- `mikan migrate` moves the per-thread session directories that early versions left inside `sessions/` to the state directory intact, instead of stopping with `Unexpected entry in sessions directory`. Links inside them are moved as links and never followed.
|
|
114
70
|
|
|
115
|
-
|
|
71
|
+
## [1.0.0-beta.86]
|
|
116
72
|
|
|
117
|
-
|
|
73
|
+
### Breaking
|
|
118
74
|
|
|
119
|
-
|
|
75
|
+
- **The GitHub adapter now runs as a bound GitHub account driven by webhooks, and no longer uses a GitHub App or polling.** People mention it with autocomplete, assign it issues and pull requests, and request its review. Set `GITHUB_AGENT_TOKEN` (a fine-grained PAT of that account), `GITHUB_WEBHOOK_SECRET` (an organization or App webhook to `<LINK_URL>/github/webhook`), and `GITHUB_REPOS` (now required: `owner/repo` or `owner/*`); the link server must run. `GITHUB_APP_ID`, `GITHUB_INSTALLATION_ID`, `GITHUB_APP_PRIVATE_KEY`, `GITHUB_APP_PRIVATE_KEY_PATH`, and `GITHUB_POLL_INTERVAL` are removed, `@<app-slug>` no longer triggers, and `<state-dir>/github-sync.json` is no longer read and can be deleted. Deliveries are best effort: events sent while mikan is down are not replayed. See [ADR 0015](docs/adr/0015-github-agent-account-and-webhooks.md) and [Make mikan a GitHub teammate](src/content/docs/github-teammate-guide.md).
|
|
76
|
+
- **The GitHub adapter is restricted by default.** It answers only in private repositories listed in `GITHUB_REPOS`, only to people with write permission, and only comments and reads. `GITHUB_CAPABILITIES=triage,push` restores label and assignee management and pull requests; `GITHUB_PUBLIC_REPOS`, `GITHUB_USERS`, `GITHUB_MIN_PERMISSION`, and `GITHUB_TRIGGERS` narrow or widen who can trigger it and how.
|
|
77
|
+
- `github_checks` reads GitHub Actions jobs and commit statuses instead of check runs, because fine-grained PATs have no Checks permission. Check runs from third-party CI apps are no longer visible.
|
|
78
|
+
- **mikan no longer runs git for GitHub conversations.** Nothing is cloned into `<office>/repo`, and `github_sync` is removed. The agent clones, commits, and pushes inside its sandbox with the sandbox's GitHub credentials, and `github_pr` only opens a pull request for a branch the agent already pushed. What the agent can push is now bounded by that token, the account's repository role, and branch protection instead of mikan's `pi/*` rule; protect the default branch. GitHub conversations now trust `membership`, because only collaborators with write access can trigger them, so they receive `sandbox.defaultSharedVault` and settings-declared MCP servers like Slack conversations.
|
|
79
|
+
- **Session files move from `<workspace>/<office-key>/sessions/` to `<state-dir>/conversations/<office-key>/sessions/`, and sandboxes no longer see them.** Run `mikan migrate` before starting this version. The agent searches earlier history in `log.jsonl`, which stays in the office directory. See [ADR 0016](docs/adr/0016-host-sandbox-trust-boundary.md).
|
|
80
|
+
- Library API: `officeSessionsDir` and `resolveChannelSessionFile` are removed; use `office.sessionsDir` and `tryResolveCurrentSession(office.sessionsDir)`. `getThreadSessionFile` and `resolveParentSessionForThread` take the sessions directory, and the `ChatHistorySync` options and `registerThreadSession`/`hasMaterializedChatSession` take `office` instead of `conversationDir`.
|
|
81
|
+
- `jev_browser` no longer takes a `session` parameter. Each conversation thread has one browser that stays open across calls until `close: true`; a later `url` opens a new tab, and opening past three tabs closes the oldest inactive tabs and reports them in `closedOldTabs`. Model-named sessions each started another Chrome, and a few of them exhausted a 1 GB sandbox until every page load timed out.
|
|
120
82
|
|
|
121
|
-
|
|
83
|
+
### Changed
|
|
122
84
|
|
|
123
|
-
|
|
85
|
+
- Pi is upgraded from 0.87 to 0.99 (`pi-agent-core`, `pi-ai`).
|
|
86
|
+
- MCP servers now connect through Pi's `@earendil-works/pi-mcp` client instead of the official `@modelcontextprotocol/sdk`, which is removed along with `zod`. Stdio servers still receive only a minimal inherited environment plus their configured `env`. When an HTTP server rejects the connection, the error now carries the status and the start of the server's response body.
|
|
124
87
|
|
|
125
88
|
### Added
|
|
126
89
|
|
|
127
|
-
-
|
|
128
|
-
|
|
129
|
-
### Tests
|
|
130
|
-
|
|
131
|
-
- Add coverage for extension inventory discovery and command output.
|
|
132
|
-
|
|
133
|
-
## [1.0.0-beta.1]
|
|
90
|
+
- GitHub issue and pull request conversations receive the default OpenConnector runtime token like Slack conversations, named `mikan:github:<conversation-id>`.
|
|
134
91
|
|
|
135
92
|
### Fixed
|
|
136
93
|
|
|
137
|
-
-
|
|
138
|
-
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
-
|
|
94
|
+
- `models.json` follows `--state-dir` / `STATE_DIR` like `settings.json`; the daemon, `mikan migrate`, and `mikan onboard` no longer read or write `~/.mikan/models.json` for another state directory.
|
|
95
|
+
- A daemon adopts at startup only the sandbox containers that mount its own workspace, so two mikan instances sharing one Docker engine no longer stop each other's containers.
|
|
96
|
+
- The sandbox image now ships CJK fonts (`fonts-noto-cjk`, about 170 MB). Without them, `jev_browser` screenshots showed Chinese and Japanese text as blank space, and charts drawn in the sandbox could not use Chinese labels.
|
|
97
|
+
- Python packages in the sandbox go through uv. The system pip still refuses installs, but its message now names the uv commands to use (`uv run --with <package>`), so the agent recovers after one attempt instead of trying pip, venvs, and apt in turn. The docs no longer claim that `pip install --user` works.
|
|
98
|
+
- Creating or updating a periodic event now reports its next three runs in the event's timezone, so the agent no longer computes weekdays itself (it once announced a Monday reminder for a Tuesday). An invalid cron `schedule` or `timezone` is rejected before the event file is written instead of being saved and then skipped by the scheduler.
|
|
99
|
+
- `apt-get install` works inside managed sandbox containers again. The containers drop all capabilities, so apt's download sandbox user could not switch groups and every install failed; the image now runs apt downloads as root, and the image smoke test installs a package under the same hardening.
|
|
100
|
+
- Asking "好了嗎" at the moment a background task finishes no longer answers "還在處理" right beside the completion notice. Task status now trusts the recorded end of the run over the runtime's still-settling state.
|
|
101
|
+
- A Slack message whose acknowledgement was lost during a socket reconnect no longer runs twice. Slack redelivers such events; mikan now recognizes a message or mention it has already taken and ignores the copy. A failed acknowledgement is logged instead of surfacing as an unhandled promise rejection.
|
|
102
|
+
- A Slack app that is not an agent app no longer calls `assistant.threads.setSuggestedPrompts` and logs `not_agent_app` every time someone opens its DM; after the first refusal the call is skipped until restart.
|
|
103
|
+
- A long Slack answer that outgrew the native stream no longer shows up twice. The partial streamed message is deleted before the full answer is posted, and the notification text sent with it is capped at the 4,000 bytes `chat.update` accepts, so the edit no longer fails with `msg_too_long`.
|
|
104
|
+
- A long Slack answer with many headings no longer fails with `invalid_blocks` and an `Error:` line. Slack expands each heading of a markdown block into its own block and rejects a message with more than 50; when an answer would exceed that, its headings are sent as bold lines instead.
|
|
105
|
+
- MCP tools ask the model for a progress label like every built-in tool, so the Slack checklist shows a readable step (for example "確認 GitHub 連線") instead of `mcp__server__tool`. The label is not forwarded to the MCP server, and a tool that already has its own `label` argument is left unchanged.
|
|
143
106
|
|
|
144
|
-
## [1.0.0-beta.
|
|
107
|
+
## [1.0.0-beta.85]
|
|
145
108
|
|
|
146
|
-
###
|
|
109
|
+
### Breaking
|
|
147
110
|
|
|
148
|
-
-
|
|
149
|
-
-
|
|
150
|
-
-
|
|
111
|
+
- **State migrations run only through `mikan migrate`.** The daemon now refuses to start while a migration is pending, and prints the exact command to run. It no longer moves anything at startup or on first read. After installing a new version, run `mikan migrate --sandbox=<the daemon's --sandbox> --dry-run`; if anything is pending, stop the daemon, run the same command without `--dry-run`, then start it. Applied migrations are recorded in `<state-dir>/migrations.json`, and `mikan onboard` marks a new state directory as fully migrated. See [ADR 0014](docs/adr/0014-versioned-state-migrations.md).
|
|
112
|
+
- **Removed commands:** `mikan office claim`, `mikan office migrate-openconnector`, `mikan office migrate-events`, `mikan office migrate-door-policy`, `mikan sessions migrate`, and `mikan sandbox status|diff|migrate`. `mikan office list` remains and now prints each office key with its platform and conversation id.
|
|
113
|
+
- **Upgrades are supported only from 0.5.3.** Formats that existed only in 1.0.0 prereleases are no longer converted: OpenConnector `open-connector-runtime-token.json` files, door-policy settings, Pi 0.84 session files, `<state-dir>/conversations/<raw-id>` directories, and the hashed legacy vault keys. A prerelease install that already ran those conversions is unaffected.
|
|
114
|
+
- **Sandbox containers are disposable.** A managed container has no home volume. When its image or mounts change, it is replaced once it is stopped, and only the workspace and vault mounts carry over. Anything else, including `/root`, installed packages, and caches, starts empty. Existing `mikan-home-*` volumes and `mikan-migrate:*` images are no longer used, and operators may delete them.
|
|
115
|
+
- **Host and container vaults use hashed keys only.** The runtime no longer falls back to vault directories named by raw user id (`host`) or `container-<name>` (`container:*`). `mikan migrate` renames them.
|
|
116
|
+
- The public API no longer exports `findV3SessionFiles`, `isV3SessionFile`, or `migrateSessionFile`.
|
|
151
117
|
|
|
152
118
|
### Changed
|
|
153
119
|
|
|
154
|
-
-
|
|
120
|
+
- When a scheduled run hits its budget, the stop notice now says how long it ran, how many model and tool calls it made, the slowest steps with their durations, and which step was still running. Slow queries can be found from the notice alone.
|
|
155
121
|
|
|
156
|
-
###
|
|
122
|
+
### Fixed
|
|
157
123
|
|
|
158
|
-
-
|
|
124
|
+
- Multi-line error notices in Slack are italicized line by line, because Slack emphasis does not span line breaks.
|
|
125
|
+
- Upgrading a 0.5.3 install keeps each conversation's credentials. The old startup migration looked for a vault name that 0.5.3 never wrote, so 0.5.3 conversation vaults were silently left behind; `mikan migrate` moves them to their office keys.
|
|
126
|
+
- Upgrading a 0.5.3 install removes its sandbox containers instead of recreating them from snapshots under their old names next to the new ones.
|
|
159
127
|
|
|
160
|
-
## [0.
|
|
128
|
+
## [1.0.0-beta.84]
|
|
161
129
|
|
|
162
|
-
###
|
|
163
|
-
|
|
164
|
-
- Append a session-view link to event-triggered attribution messages.
|
|
165
|
-
- Show raw cached token counts and cache-hit rate in usage summaries.
|
|
130
|
+
### Performance
|
|
166
131
|
|
|
167
|
-
|
|
132
|
+
- Shorten the `jev_browser` tool definition from about 7,000 to 2,800 characters sent on every turn: its description and parameters no longer repeat each other or explain rules the tool already enforces with its own error messages.
|
|
133
|
+
- List skills in the prompt one line each under their directory instead of an XML block with a full path per skill; a path appears only when a skill's directory differs from its name. A workspace with 68 skills drops from about 31,000 to 22,000 characters of prompt per turn with the same names and descriptions.
|
|
168
134
|
|
|
169
|
-
|
|
170
|
-
- Mark the auto-reply command as deprecated.
|
|
135
|
+
## [1.0.0-beta.83]
|
|
171
136
|
|
|
172
137
|
### Fixed
|
|
173
138
|
|
|
174
|
-
-
|
|
175
|
-
- Reject malformed OAuth configuration during login setup.
|
|
176
|
-
|
|
177
|
-
### Tests
|
|
178
|
-
|
|
179
|
-
- Add unit coverage for utility and tool modules.
|
|
180
|
-
- Expand Slack end-to-end coverage and make CI Slack artifacts more reliable.
|
|
139
|
+
- Stop copying each mikan reply back into the session a second time: chat history sync compared the posted reply, which carries the `_Triggered by …_` signature, against the model's unsigned text, missed the match, and appended the signed copy. Context held every answer twice and taught the model to keep writing the signature. Imported bot messages are now compared and stored without the signature, and a posted reply that opens with the tool checklist is matched to the model's answer it ends with.
|
|
181
140
|
|
|
182
|
-
## [0.
|
|
141
|
+
## [1.0.0-beta.82]
|
|
183
142
|
|
|
184
|
-
###
|
|
143
|
+
### Changed
|
|
185
144
|
|
|
186
|
-
-
|
|
145
|
+
- mikan reacts `saluting_face` (eyes on GitHub) itself when a run starts its first work tool, instead of the model spending a separate round on the reaction; the model's `react` tool is left for background checks with nothing to report.
|
|
146
|
+
- mikan owns the `_Triggered by …_` signature on chat responses and replaces any signature line the model wrote, so user messages no longer carry a per-turn attribution instruction. The model is still asked to sign GitHub text it writes itself.
|
|
147
|
+
- The model reads the current time from each message's send time instead of running `date`.
|
|
187
148
|
|
|
188
|
-
## [0.
|
|
149
|
+
## [1.0.0-beta.81]
|
|
189
150
|
|
|
190
151
|
### Added
|
|
191
152
|
|
|
192
|
-
-
|
|
193
|
-
-
|
|
153
|
+
- Stream every run of a session live in Session View: a run started from Slack or another chat platform now appears on an open page as it happens (user message, tool results, the streaming answer), then the timeline reloads. Page-sent messages use the same stream; thinking text and errors appear after the timeline reloads.
|
|
154
|
+
- Guard tool loops: repeating the same tool call with identical arguments earns a notice from the third call, is blocked from the fifth, and stops the run at the tenth; short repeating cycles of calls also earn a notice.
|
|
155
|
+
- Compact a session in the background after a successful run when its context nears the compaction threshold, so the next message does not wait for compaction.
|
|
194
156
|
|
|
195
|
-
|
|
157
|
+
### Fixed
|
|
196
158
|
|
|
197
|
-
|
|
159
|
+
- Undo Slack's HTML escaping on incoming text: the model and the office log saw `&&`, `<`, and `>` where the user typed `&&`, `<`, and `>`.
|
|
160
|
+
- Keep the tool checklist visible while the final answer streams; it used to disappear until the answer finished.
|
|
161
|
+
- Stop an open Session View page from holding shutdown open; open live streams now close after a five-second grace, so a restart no longer waits for the process manager's kill timeout.
|
|
162
|
+
- Report a GitHub API request that returns an empty body where a resource is required with its method, path, and status, instead of failing later on a null value.
|
|
198
163
|
|
|
199
|
-
|
|
200
|
-
- Add platform adapter guides for Slack, Discord, and Telegram.
|
|
201
|
-
- Add a web agent-events portal for streaming agent events.
|
|
164
|
+
### Security
|
|
202
165
|
|
|
203
|
-
|
|
166
|
+
- **Breaking (deploy):** The link server (Admin, Session View, and credential links) now listens on `127.0.0.1` even when `LINK_URL` is set; it used to listen on every interface, so portal tokens could travel in plain HTTP straight to `LINK_PORT` around the TLS reverse proxy. A reverse proxy on the same host (`reverse_proxy 127.0.0.1:8181`) keeps working unchanged. Set the new `LINK_HOST` (for example `0.0.0.0`) when the proxy runs on another host or in a separate network namespace.
|
|
204
167
|
|
|
205
|
-
|
|
206
|
-
- Update project dependencies and bundled pi packages.
|
|
168
|
+
## [1.0.0-beta.80]
|
|
207
169
|
|
|
208
170
|
### Fixed
|
|
209
171
|
|
|
210
|
-
-
|
|
211
|
-
-
|
|
212
|
-
- Tighten Sentry event sanitization.
|
|
172
|
+
- Post no Slack usage summary for a `[SILENT]` response: the reply and its thread were deleted, so the summary for a quiet recurring event landed at the top level of the channel on every run.
|
|
173
|
+
- Stop warning `Could not remove snapshot image mikan-migrate:...` for every migrated container on each startup; the startup sweep now leaves a snapshot alone while its container still runs from it, and still reclaims snapshots no container uses.
|
|
213
174
|
|
|
214
|
-
## [0.
|
|
175
|
+
## [1.0.0-beta.79]
|
|
215
176
|
|
|
216
177
|
### Changed
|
|
217
178
|
|
|
218
|
-
-
|
|
179
|
+
- Load the Discord adapter and `discord.js` only when Discord is active, saving about 38 MB of memory and 90 ms of startup in processes that do not run Discord.
|
|
180
|
+
- Use pi's `typebox` 1.3.27 for tool and settings schemas instead of the incompatible `@sinclair/typebox` 0.34; platform tool packs now share pi's `AgentTool` schema types. Schema validation errors retain field paths but use typebox 1's wording.
|
|
181
|
+
- **Breaking (SDK):** `new ChatHistorySync()` now requires `{ isCommandText }`, so sessions no longer import the command inventory from the adapters. Pass the newly exported `isCommandText` to keep filtering command messages out of synced history.
|
|
182
|
+
|
|
183
|
+
### Security
|
|
219
184
|
|
|
220
|
-
|
|
185
|
+
- Only send the Slack bot token to `https://*.slack.com` file URLs, and stream incoming attachments to disk with a 100 MiB limit instead of buffering whole files in memory; a download over the limit is rejected, not retried, and leaves no partial file.
|
|
221
186
|
|
|
222
187
|
### Fixed
|
|
223
188
|
|
|
224
|
-
-
|
|
189
|
+
- Reject missing sandbox helper executables as ordinary `ENOENT` errors instead of emitting an unhandled child-process error.
|
|
190
|
+
- Accept `thinking: max` in subagent profiles; they kept their own level list without `max`, while settings and `/pi-model` accepted it.
|
|
191
|
+
- Spill oversized MCP JSON results as indented JSON so `read` and `grep` can inspect them; the compact single-line spill exceeded `read`'s per-line limit.
|
|
192
|
+
- Record a Discord channel without a name (such as a DM) under its channel id instead of a `null` name.
|
|
225
193
|
|
|
226
|
-
###
|
|
194
|
+
### Tests
|
|
227
195
|
|
|
228
|
-
-
|
|
196
|
+
- Type-check tests, E2E code, and the embedder example in pre-commit and CI, and remove every `any` and double assertion from tests.
|
|
197
|
+
- Run tests in random order and print the seed, so order-dependent tests fail visibly and can be reproduced.
|
|
229
198
|
|
|
230
|
-
|
|
199
|
+
## [1.0.0-beta.78]
|
|
231
200
|
|
|
232
|
-
|
|
201
|
+
### Added
|
|
233
202
|
|
|
234
|
-
|
|
203
|
+
- Capture durable knowledge after each settled human run: Jev gates the exchange, and the conversation's model adds or updates stamped lines under `## Captured knowledge` in the conversation `MEMORY.md`; configured secrets are redacted from captured entries (ADR 0011).
|
|
204
|
+
- Give each new managed image container a per-office home volume (`mikan-home-<key>`) at `/root`. A stopped container whose image or mounts are stale is recreated from the current image with the same volume, so `/root` survives image upgrades; running containers are never interrupted (ADR 0009).
|
|
205
|
+
- Add `mikan sandbox status|diff|migrate` to inspect managed containers and move legacy containers onto a home volume with the daemon stopped.
|
|
235
206
|
|
|
236
|
-
###
|
|
207
|
+
### Changed
|
|
237
208
|
|
|
238
|
-
-
|
|
239
|
-
-
|
|
209
|
+
- Bound MCP tool results like `bash`: JSON is re-serialized compactly, oversized results become a structural digest (keys, counts, and pagination kept) within Pi's 50KB/2000-line limit, and the full result is spilled to `.mikan/mcp-output/` in the runtime workspace. `structuredContent` is used when `content` is empty, binary resources are no longer inlined, error text is bounded, and MCP results pass through secret redaction.
|
|
210
|
+
- Shared top-level channel sessions no longer rotate every two weeks; they stay current until `/new`, and Pi's automatic compaction bounds the model context (ADR 0010).
|
|
211
|
+
- The sandbox image installs its runtime outside `/root` and is published only with mikan releases.
|
|
212
|
+
- Document the Vault as the store for development credentials that sandbox programs read directly; OpenConnector is the path for third-party service access (ADR 0013).
|
|
240
213
|
|
|
241
|
-
###
|
|
214
|
+
### Removed
|
|
242
215
|
|
|
243
|
-
-
|
|
216
|
+
- Remove scheduled Dream memory maintenance. Conversation `MEMORY.md` is written only by the agent and by post-run memory capture; existing `dream.json` checkpoints are no longer read (ADR 0012).
|
|
244
217
|
|
|
245
|
-
## [0.
|
|
218
|
+
## [1.0.0-beta.77]
|
|
246
219
|
|
|
247
220
|
### Added
|
|
248
221
|
|
|
249
|
-
-
|
|
222
|
+
- Provision the standard sandbox image with Node.js 24, Chromium, ffmpeg, pinned `agent-browser` 0.38.1, and a checksummed Google Workspace CLI so `jev_browser` and capture workflows work without runtime installation and current-page recording preserves hydrated browser state.
|
|
250
223
|
|
|
251
224
|
### Changed
|
|
252
225
|
|
|
253
|
-
-
|
|
254
|
-
-
|
|
226
|
+
- Run every `jev_browser` command through the conversation-authorized sandbox executor, preserve native snapshots, refs, frames, tabs, screenshots, HAR, and recording, serialize calls per runner, and make named-session continuity and close-only operations explicit.
|
|
227
|
+
- Bound autonomous browser failures and repeated action cycles, refresh current page evidence before reporting completion, and refuse to silently resurrect an explicitly closed named session as `about:blank`.
|
|
228
|
+
- Delegate persisted session behavior to public Pi session and harness APIs instead of maintaining duplicate storage semantics.
|
|
255
229
|
|
|
256
230
|
### Fixed
|
|
257
231
|
|
|
258
|
-
-
|
|
232
|
+
- Log LLM cancellation reasons and Pi run ids only while provider transport is active, avoiding false abort logs during authentication, payload hooks, retry waits, tool execution, or after structural requests finish.
|
|
259
233
|
|
|
260
|
-
###
|
|
234
|
+
### Security
|
|
261
235
|
|
|
262
|
-
-
|
|
236
|
+
- Harden state and credential ownership by preserving explicit vault mount targets outside secret directories, rejecting migration collisions, keeping private file writes atomic, and deriving session operations from authorized conversation identities.
|
|
263
237
|
|
|
264
|
-
## [0.
|
|
238
|
+
## [1.0.0-beta.76]
|
|
265
239
|
|
|
266
|
-
###
|
|
240
|
+
### Changed
|
|
267
241
|
|
|
268
|
-
-
|
|
242
|
+
- Update `@earendil-works/pi-agent-core` and `@earendil-works/pi-ai` to 0.87.0, including their aligned telemetry and harness dependencies.
|
|
269
243
|
|
|
270
|
-
## [0.
|
|
244
|
+
## [1.0.0-beta.75]
|
|
271
245
|
|
|
272
246
|
### Added
|
|
273
247
|
|
|
274
|
-
-
|
|
275
|
-
-
|
|
276
|
-
|
|
277
|
-
## [0.4.2] - 2026-06-11
|
|
278
|
-
|
|
279
|
-
### Fixed
|
|
280
|
-
|
|
281
|
-
- Resolve custom providers through pi's model registry so conversation settings can select models from `models.json`.
|
|
282
|
-
- Resolve attached file paths from the sandbox runtime workspace so image sandboxes upload generated files from the correct host path.
|
|
283
|
-
|
|
284
|
-
## [0.4.1] - 2026-06-08
|
|
248
|
+
- `jev_browser` agent tool: drives a real Chrome browser toward a natural-language goal, deciding each step (click, type, select, scroll, wait) itself using a Jev decision per step against ref-indexed accessibility snapshots — the same architecture as [`browser-use/jev-ultrafast`](https://github.com/browser-use/jev-ultrafast). A `commands` mode forwards raw [`agent-browser`](https://github.com/vercel-labs/agent-browser) CLI argument arrays directly, covering screenshot, video recording, HAR capture, cookies, and any other agent-browser capability beyond the click/type/select loop. A named `session` spans multiple calls against the same browser (start a recording, run a goal, stop the recording, screenshot the result) and stays open by default; every result reports `browserContinuity` in plain language so a caller can tell whether the browser it just used was actually the same one a prior call left open. Tool progress lines are prefixed `jev_browser ·`, matching the existing `jev ·` treatment. Requires the `agent-browser` CLI installed on the host (not a mikan dependency); host sandbox only.
|
|
249
|
+
- Jev decision cost (from the `jev` tool, `jev_browser`'s decision loop, Slack auto-reply gating, and task-intent classification) is now reported to Sentry/OpenTelemetry as `agent.jev.cost`, `agent.jev.duration`, and `agent.jev.calls`, tagged by which feature made the call. Previously this spend was invisible next to the primary chat model's per-run cost — it only ever appeared inside a tool call's raw JSON text.
|
|
285
250
|
|
|
286
251
|
### Changed
|
|
287
252
|
|
|
288
|
-
-
|
|
289
|
-
|
|
290
|
-
### Fixed
|
|
253
|
+
- Every agent tool now requires the `label` parameter the system prompt already promises for every tool call, so its progress line always shows a real description instead of silently falling back to the raw tool name.
|
|
291
254
|
|
|
292
|
-
|
|
293
|
-
- Include Slack streaming recipient metadata so threaded streamed replies work in Slack E2E and production workspaces.
|
|
255
|
+
## [1.0.0-beta.74]
|
|
294
256
|
|
|
295
|
-
###
|
|
257
|
+
### Security
|
|
296
258
|
|
|
297
|
-
-
|
|
259
|
+
- Host sandbox tool output (bash, read, and every other agent tool) is now scrubbed of any configured secret env var's value before it reaches the model or the durable session transcript. Host sandbox mode does not isolate environment variables, so a command like `echo $OPENROUTER_API_KEY` previously returned the key in plain text with no defense beyond the model choosing not to repeat it; it is now replaced with a `[SECRET:VAR_NAME]` placeholder using mikan's existing secret env var inventory.
|
|
298
260
|
|
|
299
|
-
|
|
261
|
+
### Fixed
|
|
300
262
|
|
|
301
|
-
|
|
263
|
+
- Stop and shutdown-restart notices ("Stopping…", "Stopped.", the restart notice) are now recorded in the conversation's `log.jsonl`, matching every other agent reply. Previously these control messages reached the platform but left no trace in the human-readable history the agent (and operators) grep, so a stopped run looked, on later review, like it had never been interrupted.
|
|
302
264
|
|
|
303
|
-
|
|
304
|
-
- Add Slack reply mode configuration in the admin portal.
|
|
305
|
-
- Add event tool CRUD support for listing, reading, updating, and deleting scheduled events, with conversation-scoped listing by default and explicit all-event listing.
|
|
265
|
+
## [1.0.0-beta.73]
|
|
306
266
|
|
|
307
267
|
### Changed
|
|
308
268
|
|
|
309
|
-
-
|
|
310
|
-
- Centralize adapter conversation intake and reduce wrapper indirection across runtime, adapters, commands, config, and web modules.
|
|
311
|
-
- Attribute agent Sentry traces with platform and conversation context for clearer operator debugging.
|
|
269
|
+
- Admin: redesigned the page around a persistent icon sidebar and a single active settings pane (Claude/ChatGPT settings-app style), replacing the pill-tab-plus-accordion layout. Conversation and workspace scope each get their own rail; every pane shares one quiet header (title, one-line description, actions) instead of a stack of bordered cards. Widened the page from 960px to 1180px so the sidebar-plus-pane layout has room to breathe.
|
|
312
270
|
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
- Persist global settings overrides correctly.
|
|
316
|
-
- Warn when invalid custom OAuth service definitions are skipped instead of silently dropping them.
|
|
317
|
-
|
|
318
|
-
## [0.4.0-beta.0]
|
|
271
|
+
## [1.0.0-beta.72]
|
|
319
272
|
|
|
320
273
|
### Added
|
|
321
274
|
|
|
322
|
-
-
|
|
323
|
-
|
|
324
|
-
|
|
275
|
+
- Admin: the Skills panel (conversation and global) can now create, edit, and delete skills directly, not just list and preview them. Saving writes `SKILL.md` straight into the workspace skills tree the harness loader reads, so a new or edited skill is available on the conversation's next turn.
|
|
276
|
+
|
|
277
|
+
## [1.0.0-beta.71]
|
|
325
278
|
|
|
326
279
|
### Changed
|
|
327
280
|
|
|
328
|
-
-
|
|
329
|
-
- Centralize adapter conversation intake and reduce wrapper indirection across runtime, adapters, commands, config, and web modules.
|
|
281
|
+
- Built-in subagents now use the full 100-turn / $10 allowance, and the model-facing `subagent` tool can only request a larger token allowance instead of accidentally shrinking turn, cost, or duration budgets (for example, to $0.30).
|
|
330
282
|
|
|
331
283
|
### Fixed
|
|
332
284
|
|
|
333
|
-
-
|
|
285
|
+
- Shared-memory guidance now keeps personal, project-specific, and tool-specific knowledge in its proper scope, prevents memory from overriding system mechanisms, and removes the obsolete shared `SYSTEM.md` environment log.
|
|
286
|
+
- Console usage summaries now show cache-read tokens alongside fresh input tokens.
|
|
287
|
+
- Sandbox provisioning no longer logs `Container … already running` on every readiness check; creation, restart, drift, and failure messages remain visible.
|
|
334
288
|
|
|
335
|
-
## [0.
|
|
289
|
+
## [1.0.0-beta.70]
|
|
336
290
|
|
|
337
291
|
### Fixed
|
|
338
292
|
|
|
339
|
-
-
|
|
340
|
-
|
|
341
|
-
## [0.3.1] - 2026-06-02
|
|
342
|
-
|
|
343
|
-
### Added
|
|
293
|
+
- Sandbox: a container migrated to the office-key mount layout (or recreated after its mount configuration drifted) no longer re-migrates on every subsequent restart. The one-time bridging snapshot image is now removed once the new container is confirmed up, instead of being kept forever on the mistaken assumption that the container would eventually run from the base image again. In production this had pinned dozens of containers to increasingly stale snapshots and left their images unreclaimed, consuming disk space on every restart.
|
|
344
294
|
|
|
345
|
-
|
|
295
|
+
## [1.0.0-beta.69]
|
|
346
296
|
|
|
347
|
-
###
|
|
348
|
-
|
|
349
|
-
- Require explicit mentions before Slack thread replies trigger the bot.
|
|
350
|
-
|
|
351
|
-
### Tests
|
|
297
|
+
### Changed
|
|
352
298
|
|
|
353
|
-
-
|
|
299
|
+
- `harness/jev.ts` is now backed by [`@geminixiang/jev`](https://github.com/geminixiang/jev), a standalone SDK shaped like pi-ai (providers own auth, a model catalog, and a wire implementation) instead of a hand-rolled OpenRouter fetch client. `evaluateWithJev`'s signature, types, and error classes are unchanged, so the auto-reply gate, DM task-intent classification, and the `jev` tool are unaffected. The swap adds request retries and timeouts, neither of which existed before, and a path to other Jev backends (TypeSafe, Vercel AI Gateway, Cloudflare Workers AI) without touching call sites.
|
|
354
300
|
|
|
355
|
-
## [0.
|
|
301
|
+
## [1.0.0-beta.68]
|
|
356
302
|
|
|
357
303
|
### Added
|
|
358
304
|
|
|
359
|
-
-
|
|
305
|
+
- `jev` agent tool: the model can now call Jev directly with a `state` (text or JSON) and any number of boolean / choice / score `questions`, mirroring the decisions API one-to-one — structured instructions and criteria, per-option probabilities, confidence, and score legends all pass through. Available to the main agent and to the `worker`, `software-engineer`, `data-scientist`, and `summarizer` subagent profiles. A missing `OPENROUTER_API_KEY` is reported as a tool error so the model judges for itself.
|
|
306
|
+
- Slack: DM messages in a task thread (and top-level DMs while a task is running) are classified by Jev as `status`, `steer`, or `request` before spending a model turn. Status questions are answered from recorded task state; steering is delivered into the running task; anything else starts a normal run. The regex status matcher remains as the fallback.
|
|
307
|
+
- `task_status` reports `queued` for tasks that were admitted but have not started executing yet.
|
|
360
308
|
|
|
361
309
|
### Changed
|
|
362
310
|
|
|
363
|
-
-
|
|
364
|
-
-
|
|
365
|
-
-
|
|
366
|
-
- Remove legacy thread fork and snapshot helpers from session storage.
|
|
311
|
+
- `harness/jev.ts` accepts structured JSON for state, instructions, and criteria, and returns `confidence` and `legend` on choice / score answers.
|
|
312
|
+
- Jev auto-reply and task-intent state renders `<@U…>` mentions as `@Name` (the bot as `@mikan`) so Jev can tell a message addressed to someone else from one addressed to mikan.
|
|
313
|
+
- Tool progress lines for `jev` calls are prefixed with `jev ·` so users can see which steps came from a calibrated judgment.
|
|
367
314
|
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
- Anchor session-view thread links on the root turn instead of earlier bootstrapped context messages.
|
|
371
|
-
|
|
372
|
-
## [0.3.0-beta.0]
|
|
315
|
+
## [1.0.0-beta.67]
|
|
373
316
|
|
|
374
317
|
### Changed
|
|
375
318
|
|
|
376
|
-
-
|
|
377
|
-
-
|
|
378
|
-
- Model session-view related sessions as parent/thread relationships, including fixed-path thread sessions without legacy parent metadata.
|
|
379
|
-
- Remove legacy thread fork and snapshot helpers from session storage.
|
|
380
|
-
|
|
381
|
-
### Fixed
|
|
382
|
-
|
|
383
|
-
- Anchor session-view thread links on the root turn instead of earlier bootstrapped context messages.
|
|
319
|
+
- Slack: unaddressed thread replies in shared channels now pass through the same `/pi-auto-reply` gate as top-level messages instead of being dropped unconditionally. In `jev` mode, Jev scores the message together with its surrounding scope (the channel's recent top-level messages, or the thread's messages plus whether mikan has already replied there), so bare follow-ups like "then roll it back" are judged in context. `off` still requires a mention; `on` now admits thread replies too.
|
|
320
|
+
- Deploy docs: `/pi-auto-reply` slash command description lists `on | off | jev`.
|
|
384
321
|
|
|
385
|
-
## [0.
|
|
386
|
-
|
|
387
|
-
### Fixed
|
|
388
|
-
|
|
389
|
-
- Make Slack bot-rooted thread session seeds loadable by storing platform-history assistant metadata.
|
|
390
|
-
|
|
391
|
-
## [0.2.3] - 2026-06-01
|
|
322
|
+
## [1.0.0-beta.66]
|
|
392
323
|
|
|
393
324
|
### Added
|
|
394
325
|
|
|
395
|
-
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
- Isolate Slack sessions rooted at bot messages so thread replies do not inherit unrelated channel history.
|
|
326
|
+
- `/pi-auto-reply` gains a third state, `jev`: alongside manual `on`/`off`, a Slack channel can now delegate the "does this unaddressed message address mikan" decision to Jev (`typesafe/jev`), a fast typed-decision model, on a per-message basis. Any evaluation failure (including a missing `OPENROUTER_API_KEY`) fails closed to "not addressed" so a misconfiguration cannot make the bot noisy in a shared channel.
|
|
327
|
+
- `harness/jev.ts`: a standalone `evaluateWithJev` client for Jev, reached through OpenRouter's `/api/alpha/decisions` REST API using the same `OPENROUTER_API_KEY` pi-ai's `openrouter` chat provider reads. Jev returns typed decisions (boolean probability, choice, score) instead of generated text, so it is a plain function call sites use directly rather than a selectable chat provider in `models.ts`'s catalog.
|
|
328
|
+
- Jev-mode auto-reply decisions (channel, probability, addressed, truncated message text) are logged at info level for observability.
|
|
400
329
|
|
|
401
|
-
## [0.
|
|
330
|
+
## [1.0.0-beta.65]
|
|
402
331
|
|
|
403
332
|
### Added
|
|
404
333
|
|
|
405
|
-
-
|
|
406
|
-
-
|
|
407
|
-
-
|
|
408
|
-
-
|
|
409
|
-
- Document admin, login, and session token boundaries in `docs/portal-auth-model.md`.
|
|
334
|
+
- Slack: when a run resolves to exactly one completed subagent profile with a known persona, the final answer posts as a fresh message under that profile's own username/icon (`Data Scientist`, `Software Engineer`, `DevOps Engineer`, `Account Manager`, `Business Development`, `Creative Producer`, `Ad Operations Specialist`) instead of mikan's own identity. Mixed-profile or partially-failed runs keep mikan's identity, since `chat.update`/`chat.appendStream` cannot carry a Slack identity and there is no single "who answered this" to attribute.
|
|
335
|
+
- The `react` tool (add an emoji reaction to the triggering message) is now documented in the system prompt with two unconditional triggers tied to `start_task`'s existing bar: react before starting any multi-step investigation, change/test, or long wait, and react instead of writing "nothing to report" on a periodic/background check with nothing to report.
|
|
336
|
+
- Discord and Telegram now wire the `react` tool into their responders (previously Slack/GitHub-only despite the tool being granted everywhere); a shared short-name-to-Unicode translation covers what the prompt recommends for platforms whose reaction API takes a Unicode character rather than a name.
|
|
337
|
+
- `creative-producer` subagent profile gains the `generate_image` tool grant, matching its image-deliverable description.
|
|
410
338
|
|
|
411
339
|
### Changed
|
|
412
340
|
|
|
413
|
-
-
|
|
414
|
-
-
|
|
341
|
+
- Built-in subagent profile `maxTokens` raised from 100,000 to 1,000,000: the old cap was a common budget-exceeded trip for ordinary investigative tasks (e.g. a repo-wide architecture review), not just runaway loops.
|
|
342
|
+
- The `analysis-only` subagent profile is renamed `summarizer`: it is a DAG synthesis node over upstream dependency output, not a mid-task advisor.
|
|
343
|
+
- Office data policy for non-Slack platforms is now an explicit rule (ADR 0008): only Slack conversations can be public, and Telegram/Discord/GitHub offices always resolve to private rather than falling through an "unknown" branch by omission.
|
|
344
|
+
- The Admin office visibility card now states the effective outcome in plain words instead of the internal policy model; public Slack channels get one "Hide the files in this channel from other offices" checkbox, other conversation kinds show the fixed Hidden state with no control.
|
|
345
|
+
- `settings.json` ownership (schema, scope merge, readers, writers, one-time migrations) is gathered under `src/settings/`.
|
|
415
346
|
|
|
416
|
-
|
|
347
|
+
### Docs and maintenance
|
|
417
348
|
|
|
418
|
-
|
|
349
|
+
- Describe mikan as an organization-wide, per-conversation-isolated agent.
|
|
350
|
+
- Move the three remaining top-level source files into their owning modules (`adapters/messages.ts`, `adapters/index.ts`, `cli/process-lifecycle.ts`); pure move, no behavior change.
|
|
419
351
|
|
|
420
|
-
|
|
421
|
-
- Add README hero and architecture diagrams.
|
|
422
|
-
- Add project agent development rules and Karpathy coding guidelines.
|
|
352
|
+
## [1.0.0-beta.64]
|
|
423
353
|
|
|
424
354
|
### Changed
|
|
425
355
|
|
|
426
|
-
-
|
|
427
|
-
- Simplify file guards and retry helpers.
|
|
428
|
-
|
|
429
|
-
### Fixed
|
|
430
|
-
|
|
431
|
-
- Retry attachment downloads.
|
|
432
|
-
- Skip retry sleep on the final attempt and clarify retry naming.
|
|
356
|
+
- The retired door-policy keys (`sandbox.image.workspaceMount`, `sandbox.workspace`) are dropped at load time and no longer appear in the resolved sandbox settings or the Admin office view.
|
|
433
357
|
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
### Changed
|
|
358
|
+
### Added
|
|
437
359
|
|
|
438
|
-
-
|
|
439
|
-
- Changed platform credentials to unprefixed env vars (`SLACK_APP_TOKEN`, `SLACK_BOT_TOKEN`, `TELEGRAM_BOT_TOKEN`, `DISCORD_BOT_TOKEN`) while keeping `MIKAN_*` aliases as fallbacks.
|
|
440
|
-
- Changed runtime env vars such as `LINK_URL`, `LINK_PORT`, `STATE_DIR`, OAuth scope overrides, and Cloudflare sandbox settings to prefer unprefixed names with `MIKAN_*` fallbacks.
|
|
441
|
-
- Raised the minimum supported Node.js version to `>=22.19.0`.
|
|
442
|
-
- Updated internal variable, function, type, Docker label, sandbox image, and generated resource names to use mikan naming.
|
|
443
|
-
- Added manual dispatch support to the CI workflow.
|
|
360
|
+
- `mikan office migrate-door-policy` removes the retired keys from the global and every registered office settings file, preserving all other settings and leaving files without them untouched. Only an explicit shared-support `private` visibility is carried into `office.visibility`; `full`, `isolated`, and legacy `private` are removed without deriving any grant.
|
|
444
361
|
|
|
445
|
-
## [0.
|
|
362
|
+
## [1.0.0-beta.63]
|
|
446
363
|
|
|
447
364
|
### Changed
|
|
448
365
|
|
|
449
|
-
-
|
|
450
|
-
-
|
|
451
|
-
-
|
|
452
|
-
- Cleaned unused dependencies.
|
|
453
|
-
|
|
454
|
-
### Tests
|
|
366
|
+
- Office data policy is now a single **visibility** derived from the Slack conversation type (ADR 0008): public channels are public offices; private channels, DMs, group DMs, externally shared channels, and unknown kinds are private. Every office receives the same projection — its own directory read-write, every other public office read-only under `/workspace/public/<office key>`, and shared `MEMORY.md`/`skills/` read-write for public offices or read-only for private ones. Nothing mounts the workspace root.
|
|
367
|
+
- The five-way door policy (`isolated`, `trusted/shared-support`, `trusted/full`, …) is retired. Legacy settings still parse but no longer change the projection; offices that still declare `full` are reported once per process. The Admin "door policy" control and `/pi-sandbox door` are replaced by one switch that can narrow a public channel to private (`/pi-sandbox visibility <private|default>`); nothing can widen beyond what Slack allows.
|
|
368
|
+
- Backends without a managed projection (`host`, `container:*`, `cloudflare:*`) now serve private offices with a one-time logged warning instead of refusing, since they are trusted deployments by definition.
|
|
455
369
|
|
|
456
|
-
|
|
370
|
+
### Added
|
|
457
371
|
|
|
458
|
-
|
|
372
|
+
- The Slack adapter records channel kinds for every registered office from the channel list loaded at startup, so offices created before kinds were recorded keep their public status without waiting for a new message.
|
|
459
373
|
|
|
460
374
|
### Fixed
|
|
461
375
|
|
|
462
|
-
-
|
|
376
|
+
- Recreating a sandbox container after a visibility change removes empty `/workspace/public/<key>` mountpoints that `docker commit` carried over from the previous mount set.
|
|
463
377
|
|
|
464
|
-
## [0.
|
|
378
|
+
## [1.0.0-beta.62]
|
|
465
379
|
|
|
466
|
-
###
|
|
380
|
+
### Changed
|
|
467
381
|
|
|
468
|
-
-
|
|
469
|
-
-
|
|
470
|
-
- Materialize channel history when the first thread is created.
|
|
382
|
+
- Scheduled events now live in host-only per-office state (`<state dir>/conversations/<office key>/events/`) and are never mounted into a sandbox. The `event` tool and the Admin portal are the only writers, both confined to the current office; `create` never overwrites, deleting a record cancels its timer or cron immediately, and the Slack App Home lists only the opener's DM office schedules. The filesystem watcher is gone: hand-edited records take effect on the next start.
|
|
383
|
+
- OpenConnector is an ordinary MCP server with a deployment default. When a Slack conversation has not declared `open-connector`, mikan mints that conversation's runtime token with `OPENCONNECTOR_ADMIN_TOKEN` and saves a normal `mcpServers` entry in its settings; conversations may override it with a self-hosted server or disable it like any other MCP entry. The loader no longer fills `connectionName`; connection selection belongs to OpenConnector.
|
|
471
384
|
|
|
472
385
|
### Added
|
|
473
386
|
|
|
474
|
-
-
|
|
475
|
-
|
|
476
|
-
## [0.2.0-beta.22]
|
|
387
|
+
- `mikan office migrate-events` moves legacy `<workspace>/events/*.json` records into the owning office's state and reports records it cannot attribute.
|
|
388
|
+
- `mikan office migrate-openconnector` converts legacy `open-connector-runtime-token.json` files into conversation MCP entries.
|
|
477
389
|
|
|
478
390
|
### Fixed
|
|
479
391
|
|
|
480
|
-
-
|
|
481
|
-
- Vault: preserve failures when the default shared vault cannot be applied.
|
|
482
|
-
|
|
483
|
-
## [0.2.0-beta.21]
|
|
392
|
+
- The agent `event` tool can no longer list, read, update, or delete another office's events, and `scope=all` is rejected.
|
|
484
393
|
|
|
485
|
-
###
|
|
394
|
+
### Docs and maintenance
|
|
486
395
|
|
|
487
|
-
-
|
|
396
|
+
- Redraw the architecture diagram as a single rounded page and refresh the README image.
|
|
397
|
+
- Support local Slack E2E runs, capture intake and session markers on failure, and schedule E2E events through the `event` tool instead of writing files.
|
|
398
|
+
- Record the Office isolation policy, storage inventory, and OpenConnector history audit under `docs/`.
|
|
488
399
|
|
|
489
|
-
## [0.
|
|
400
|
+
## [1.0.0-beta.61]
|
|
490
401
|
|
|
491
402
|
### Added
|
|
492
403
|
|
|
493
|
-
-
|
|
494
|
-
-
|
|
404
|
+
- Ground Slack DM progress replies in runtime/v4 task observations; common task-thread status queries no longer steer work, and ordinary followups do not repeat completion mentions.
|
|
405
|
+
- Slack DM task handoff: independent task threads keep the main conversation free, with text steering in active task threads and continuation after stopping.
|
|
495
406
|
|
|
496
407
|
### Fixed
|
|
497
408
|
|
|
498
|
-
-
|
|
499
|
-
- Slack
|
|
500
|
-
-
|
|
501
|
-
-
|
|
409
|
+
- Keep thread stop acknowledgements in the source thread, including shared-channel unmentioned stop controls.
|
|
410
|
+
- Notify Slack DM task requesters with a fresh in-thread mention after normal completion.
|
|
411
|
+
- Finalize stop acknowledgements that arrive after the cancelled run has already settled.
|
|
412
|
+
- Propagate final response delivery failures so rejected updates do not trigger completion notifications.
|
|
413
|
+
- Honor stop during runner preparation and keep older active tasks visible in status queries.
|
|
414
|
+
- Report task admission, asynchronous startup, and status inspection failures through the existing Sentry/OTLP observability path.
|
|
502
415
|
|
|
503
416
|
### Changed
|
|
504
417
|
|
|
505
|
-
-
|
|
418
|
+
- Publish the already built and verified npm package without rerunning build and repository setup lifecycle scripts.
|
|
419
|
+
- Keep the documented and CI coverage commands as stable entry points while maintaining their shared Vitest invocation in one place.
|
|
420
|
+
- Validate debug Session View selections from their path and header, leaving full parsing to consumers that load session content instead of inspecting the same file twice.
|
|
506
421
|
|
|
507
|
-
## [0.
|
|
422
|
+
## [1.0.0-beta.60]
|
|
508
423
|
|
|
509
424
|
### Fixed
|
|
510
425
|
|
|
511
|
-
-
|
|
426
|
+
- Separate CJK-adjacent bold dollar amounts for Slack's Markdown parser while preserving code and link destinations.
|
|
427
|
+
- Validate Session View selections through read-only inspection so active and repeatedly selected historical sessions do not conflict with writer ownership or appear corrupted.
|
|
512
428
|
|
|
513
|
-
## [0.
|
|
429
|
+
## [1.0.0-beta.59]
|
|
514
430
|
|
|
515
431
|
### Fixed
|
|
516
432
|
|
|
517
|
-
-
|
|
518
|
-
-
|
|
433
|
+
- Keep Slack's working indicator in its own paragraph so progressive heading and table updates can replace existing rich-text messages without `block_mismatch`.
|
|
434
|
+
- Pace failed progressive redraws as well as successful ones, retaining accumulated text for recovery instead of retrying on every delta.
|
|
519
435
|
|
|
520
|
-
|
|
436
|
+
### Changed
|
|
437
|
+
|
|
438
|
+
- Use Commander for CLI option parsing, subcommand validation, and generated help.
|
|
439
|
+
- Guide interactive onboarding with arrow-key selections, masked credentials, and a final confirmation before saving. Cancel without writing settings.
|
|
440
|
+
- Refuse custom-provider onboarding when models.json already exists, without printing credentials or writing partial settings.
|
|
441
|
+
|
|
442
|
+
## [1.0.0-beta.58]
|
|
521
443
|
|
|
522
444
|
### Added
|
|
523
445
|
|
|
524
|
-
-
|
|
446
|
+
- Restore Slack `/pi-auto-reply on|off` with the original per-conversation marker files, without judge models or rules.
|
|
447
|
+
- Expose the admin portal command on Discord and Telegram.
|
|
525
448
|
|
|
526
449
|
### Changed
|
|
527
450
|
|
|
528
|
-
-
|
|
451
|
+
- Collapse conversation sections in the Admin portal, load their data only when opened, remember their open state, and open Vault and Session View links in new tabs.
|
|
529
452
|
|
|
530
|
-
## [0.
|
|
531
|
-
|
|
532
|
-
### Performance
|
|
453
|
+
## [1.0.0-beta.57]
|
|
533
454
|
|
|
534
|
-
|
|
455
|
+
### Changed
|
|
535
456
|
|
|
536
|
-
|
|
457
|
+
- Export raw platform conversation, channel, session, thread, message, and user identifiers so Sentry traces can be mapped directly back to their source while continuing to exclude human-readable names and conversation or tool content.
|
|
537
458
|
|
|
538
|
-
###
|
|
459
|
+
### Removed
|
|
539
460
|
|
|
540
|
-
-
|
|
541
|
-
- Agent: attribute the trigger (mention/direct/auto-reply/…) in responses.
|
|
461
|
+
- Remove telemetry identifier hashing and the `TELEMETRY_HASH_KEY` deployment setting.
|
|
542
462
|
|
|
543
|
-
## [0.
|
|
463
|
+
## [1.0.0-beta.56]
|
|
544
464
|
|
|
545
|
-
###
|
|
465
|
+
### Added
|
|
546
466
|
|
|
547
|
-
-
|
|
467
|
+
- Add content-free agent diagnostics for actual model IDs, token and cost totals, first-token latency, context utilization, message and attachment counts, payload sizes, tool categories and status, and retry, compaction, and budget summaries.
|
|
548
468
|
|
|
549
|
-
###
|
|
469
|
+
### Security
|
|
550
470
|
|
|
551
|
-
-
|
|
471
|
+
- Replace raw conversation, session, message, thread, and user telemetry identifiers with stable opaque values, support deployment-specific HMACs through `TELEMETRY_HASH_KEY`, and stop sending usernames to Sentry.
|
|
552
472
|
|
|
553
|
-
## [0.
|
|
473
|
+
## [1.0.0-beta.55]
|
|
554
474
|
|
|
555
475
|
### Added
|
|
556
476
|
|
|
557
|
-
-
|
|
477
|
+
- Export explicitly configured, content-free traces and metrics over standard OTLP HTTP/protobuf, including GenAI and OpenInference attribution for Arize Phoenix. Sentry remains available for sanitized issues and legacy metric fallback without duplicate spans; zero configuration remains network-free.
|
|
478
|
+
- Add a guided Admin dialog for configuring MCP servers, with structured fields or pasted standard `mcpServers` JSON and card-based installed-server management.
|
|
558
479
|
|
|
559
|
-
|
|
480
|
+
### Changed
|
|
560
481
|
|
|
561
|
-
|
|
482
|
+
- Delegate the agent run loop, retries, compaction, persistence, cancellation, and the native `read`, `write`, `edit`, and `bash` tools to Pi's `AgentHarness` and execution-tool implementations. mikan retains budgets, platform presentation, authorization, and sandbox-backed execution routing.
|
|
483
|
+
- Upgrade `pi-agent-core` and `pi-ai` to 0.85.1, including GPT-6 Astra catalog entries and the 30-minute prompt-cache TTL for GPT-5.6+ Responses models.
|
|
484
|
+
- Consolidate harness, office, session, sandbox, web-adapter, and shared-command ownership without changing the published root exports.
|
|
562
485
|
|
|
563
|
-
|
|
486
|
+
### Removed
|
|
564
487
|
|
|
565
|
-
|
|
488
|
+
- Remove managed skill packages and their Admin/package materialization surfaces. Workspace and conversation skills remain supported.
|
|
489
|
+
- Remove the auto-reply judge, command, configuration, and UI; explicit platform triggers remain supported.
|
|
490
|
+
- Remove the unused `/api/agent-events/stream` SSE mirror, its token setting, and supporting event types. The authenticated session viewer continues to use `/session/stream`.
|
|
566
491
|
|
|
567
492
|
### Fixed
|
|
568
493
|
|
|
569
|
-
-
|
|
494
|
+
- Preserve Pi's native optional tool schemas, require an explicit authorized execution environment for native file/shell tools, and keep container working directories inside the guest instead of applying them to the host Docker process.
|
|
570
495
|
|
|
571
|
-
|
|
496
|
+
## [1.0.0-beta.54]
|
|
572
497
|
|
|
573
|
-
|
|
498
|
+
### Changed
|
|
574
499
|
|
|
575
|
-
|
|
500
|
+
- Admin portal: MCP servers are added by pasting the server's standard `mcpServers` JSON (Claude Desktop / Cursor shape), stored as-is; the old name / target / `KEY=value` form is gone. Every add and preset install is followed by a real connection check, and the response shows the tool count or the server's own error; a per-server **Test** button re-checks an installed entry. Query-string values in listed URLs are redacted. stdio entries now run their command on the host at save time.
|
|
576
501
|
|
|
577
|
-
|
|
502
|
+
## [1.0.0-beta.53]
|
|
578
503
|
|
|
579
|
-
|
|
580
|
-
- Slack: native E2E smoke workflow under `e2e/`.
|
|
504
|
+
### Changed
|
|
581
505
|
|
|
582
|
-
|
|
506
|
+
- Graceful shutdown drains in-flight runs for up to five minutes (was 30 seconds) after stopping intake; runs still open at the deadline are aborted and their conversations receive a restart notice instead of silence. The pm2 template `kill_timeout` is now six minutes; update your `ecosystem.config.cjs` to match. Shutdown failures now log every nested step error.
|
|
583
507
|
|
|
584
|
-
|
|
585
|
-
- Events: validate one-shot times before scheduling; simplify fresh follow-up sessions.
|
|
508
|
+
### Added
|
|
586
509
|
|
|
587
|
-
|
|
510
|
+
- Send the run user (id and username) with Sentry events instead of stripping it, so Conversations show who sent each message; email and IP stay dropped.
|
|
511
|
+
- Set the Sentry conversation id to the session key on every agent run so Agent Monitoring groups gen_ai spans per thread.
|
|
512
|
+
- Report subagent outcomes to Sentry from the subagent tool: `agent.subagent.runs` / `agent.subagent.duration` metrics and a lifecycle breadcrumb for every status; a Sentry error under `error_domain=subagent` for `failed` and `invalid_output` (fingerprinted by error class) and for launch failures. `budget_exceeded`, `timeout`, `cancelled`, and `skipped` stay metrics-only. Reports carry run metrics, never task text or labels.
|
|
588
513
|
|
|
589
|
-
|
|
590
|
-
- Separated runtime and control-plane paths.
|
|
514
|
+
## [1.0.0-beta.52]
|
|
591
515
|
|
|
592
|
-
|
|
516
|
+
### Removed
|
|
593
517
|
|
|
594
|
-
|
|
518
|
+
- Remove the subagent `requiredTools` / `required_tools` mechanism: the post-run "every listed tool was invoked" check was a proxy for evidence that never held and failed only after the budget was spent. Callers that want evidence can read `toolCallCounts`.
|
|
595
519
|
|
|
596
|
-
|
|
597
|
-
- Docker sandbox: add `rg` and `fd` to the image.
|
|
520
|
+
## [1.0.0-beta.51]
|
|
598
521
|
|
|
599
522
|
### Fixed
|
|
600
523
|
|
|
601
|
-
-
|
|
524
|
+
- Drop `requiredTools` from built-in subagent profiles; requiring both `read` and `bash` discarded finished answers from tasks that needed only one of them.
|
|
525
|
+
- Keep a caller's `requiredTools` when the request also names a profile.
|
|
526
|
+
- Stop dropping the retained assistant message when an overflow retry rebuilds context from the store.
|
|
602
527
|
|
|
603
|
-
|
|
528
|
+
### Changed
|
|
604
529
|
|
|
605
|
-
|
|
530
|
+
- Read mikan session metadata through Pi's `session.getValue` in `open`/`inspect`; compare `fstat` fields instead of hashing the file for pending-session materialization.
|
|
606
531
|
|
|
607
|
-
|
|
608
|
-
- Session view: improved interactive chat console.
|
|
609
|
-
- Slack: harden socket connection and label the platform in the connect log.
|
|
610
|
-
- Agent: `ThinkingLevel` type on session parameters.
|
|
532
|
+
## [1.0.0-beta.50]
|
|
611
533
|
|
|
612
|
-
###
|
|
534
|
+
### Fixed
|
|
613
535
|
|
|
614
|
-
-
|
|
615
|
-
- Dropped `vault.json` metadata — directories are the only source of truth.
|
|
616
|
-
- Refactored agent runner orchestration into smaller modules.
|
|
536
|
+
- Tolerate byte-identical duplicate Dream session files while rejecting divergent same-ID files.
|
|
617
537
|
|
|
618
|
-
|
|
538
|
+
## [1.0.0-beta.49]
|
|
539
|
+
|
|
540
|
+
### Changed
|
|
619
541
|
|
|
620
|
-
- `
|
|
621
|
-
- Log-to-session backfill.
|
|
542
|
+
- Configure OpenConnector only at startup with `OPENCONNECTOR_ENDPOINT` and `OPENCONNECTOR_ADMIN_TOKEN`; ignore settings overrides of the reserved server, and reduce the Admin MCP Marketplace to the Metabase preset.
|
|
622
543
|
|
|
623
|
-
## [0.
|
|
544
|
+
## [1.0.0-beta.48]
|
|
624
545
|
|
|
625
546
|
### Added
|
|
626
547
|
|
|
627
|
-
-
|
|
628
|
-
- Slack: mute command summaries.
|
|
548
|
+
- Add an offline session migration for Pi 0.84-generation v4 JSONL files, with verified atomic replacement and preserved `*.pi-084.bak` originals.
|
|
629
549
|
|
|
630
550
|
### Changed
|
|
631
551
|
|
|
632
|
-
-
|
|
633
|
-
|
|
634
|
-
### Fixed
|
|
552
|
+
- Upgrade `pi-agent-core` and `pi-ai` to 0.85.0 and persist sessions with the current `v: 4`, `storageVersion: 1` schema.
|
|
553
|
+
- Extend `mikan sessions migrate` to convert both legacy mikan v3 and Pi 0.84-generation v4 sessions while the daemon is stopped.
|
|
635
554
|
|
|
636
|
-
|
|
637
|
-
- Session: ignore history written before a reset.
|
|
638
|
-
- Agent: clarify runtime workspace paths in the system prompt.
|
|
639
|
-
|
|
640
|
-
## [0.2.0-beta.6]
|
|
555
|
+
## [1.0.0-beta.47]
|
|
641
556
|
|
|
642
557
|
### Added
|
|
643
558
|
|
|
644
|
-
-
|
|
645
|
-
-
|
|
646
|
-
-
|
|
559
|
+
- Integrate OpenConnector as a host-side MCP gateway: Slack Conversation offices receive scoped runtime identities, while provider OAuth connections remain in the gateway and execution audit stays attributable to the originating conversation.
|
|
560
|
+
- Preserve operating guidance supplied during MCP initialization and present it to the agent with explicit system-prompt and user-intent boundaries.
|
|
561
|
+
- Add automatic selection of a sole OpenConnector provider connection when an action omits `connectionName`; retain explicit selection when multiple accounts exist.
|
|
647
562
|
|
|
648
563
|
### Changed
|
|
649
564
|
|
|
650
|
-
-
|
|
565
|
+
- Gate MCP tools by the platform trust model and enforce the untrusted package boundary.
|
|
566
|
+
- Make platform shutdown cleanup bounded and strengthen runner/session lifecycle rollback handling.
|
|
651
567
|
|
|
652
568
|
### Fixed
|
|
653
569
|
|
|
654
|
-
- Slack
|
|
655
|
-
|
|
656
|
-
## [0.2.0-beta.5]
|
|
570
|
+
- Isolate Slack DM and thread E2E context and bound event-delivery waits.
|
|
657
571
|
|
|
658
|
-
###
|
|
572
|
+
### Tests
|
|
659
573
|
|
|
660
|
-
-
|
|
661
|
-
- Tests: unit coverage for `CommandRegistry` and command handlers.
|
|
574
|
+
- Add coverage for OpenConnector token provisioning, MCP instruction propagation, connection selection, trust gating, lifecycle cleanup, and Slack isolation.
|
|
662
575
|
|
|
663
|
-
|
|
576
|
+
## [1.0.0-beta.46]
|
|
664
577
|
|
|
665
|
-
|
|
666
|
-
- Vault: conversation vault directories are now the source of truth; dropped platform prefix from the conversation vault key.
|
|
667
|
-
- Config: `--state-dir` is the single source for settings.
|
|
668
|
-
- Tightened command/runtime types and added a `postPrivate` capability.
|
|
578
|
+
### Added
|
|
669
579
|
|
|
670
|
-
|
|
580
|
+
- Add an interactive `mikan onboard` wizard that configures one chat adapter, an LLM provider, and the sandbox, writing private environment and settings files while retaining non-interactive template generation.
|
|
581
|
+
- Derive shared workspace visibility from platform channel privacy: Slack public channels can update shared memory, private channels receive it read-only, and DMs, external channels, unknown kinds, and other platforms stay isolated unless explicitly overridden.
|
|
582
|
+
- Schedule Dream maintenance for Conversation-office memory with durable evidence checkpoints.
|
|
583
|
+
- Add an Admin MCP Marketplace with reviewed GitHub, Context7, Playwright, Sequential Thinking, and Metabase presets; Metabase installations accept an instance endpoint and API key.
|
|
671
584
|
|
|
672
585
|
### Changed
|
|
673
586
|
|
|
674
|
-
-
|
|
675
|
-
-
|
|
676
|
-
-
|
|
677
|
-
-
|
|
587
|
+
- Remove the executable extension system and its CLI/chat management surfaces; packages remain the supported path for deploying read-only skills.
|
|
588
|
+
- Remove the harness `auth.json` credential store; configure provider credentials through environment variables, onboarding, or the conversation vault.
|
|
589
|
+
- Remove Gondolin, Firecracker, and GitHub Cloud Build log integrations from the supported runtime surface.
|
|
590
|
+
- Fail closed when a sandbox backend cannot enforce an isolated office or read-only shared workspace memory; use `image:*` or explicitly select a trusted read-write projection.
|
|
591
|
+
- Consolidate runtime, session, adapter, web, and configuration ownership to reduce duplicate lifecycle and parsing rules.
|
|
678
592
|
|
|
679
593
|
### Fixed
|
|
680
594
|
|
|
681
|
-
-
|
|
595
|
+
- Preserve streamed UTF-8 output when host sandbox chunks split multi-byte characters.
|
|
596
|
+
- Re-aim migrated session lanes at the nearest surviving ancestor when the newest v3 entry contains facts but no v4 message.
|
|
682
597
|
|
|
683
|
-
|
|
598
|
+
### Tests
|
|
684
599
|
|
|
685
|
-
|
|
600
|
+
- Move CI action runtimes to Node 24 and strengthen runtime, presenter, workspace-projection, MCP marketplace, and session migration coverage.
|
|
686
601
|
|
|
687
|
-
|
|
688
|
-
- Login: built-in credential presets and a redesigned credential portal.
|
|
689
|
-
- Sandbox: image-mode container CPU/memory limits (#50), bridge network isolation, `ffmpeg` in the tools image.
|
|
602
|
+
## [1.0.0-beta.45]
|
|
690
603
|
|
|
691
604
|
### Fixed
|
|
692
605
|
|
|
693
|
-
-
|
|
694
|
-
- Events: restore Slack synthetic notifications (#52).
|
|
695
|
-
- Attachments: wait for downloads before the agent accesses them.
|
|
606
|
+
- Session migration now collapses crash-duplicated v3 lines (a retried append writing the same header and entry twice) the way the v3 reader did, instead of failing v4 verification on the duplicate id. Found rehearsing the migration against 5,446 production session files; after the fix all migrate and reopen cleanly.
|
|
696
607
|
|
|
697
|
-
## [0.
|
|
608
|
+
## [1.0.0-beta.44]
|
|
698
609
|
|
|
699
610
|
### Added
|
|
700
611
|
|
|
701
|
-
-
|
|
702
|
-
-
|
|
703
|
-
-
|
|
704
|
-
-
|
|
705
|
-
- Events: actor-aware scheduling tool (#36, #39).
|
|
612
|
+
- Connect MCP (Model Context Protocol) servers via `mcpServers` settings and expose their tools to the agent as `mcp__<server>__<tool>`; stdio and streamable-HTTP transports, per-server failures isolated, credentials held host-side in server config out of the model's reach.
|
|
613
|
+
- Manage MCP servers from the admin portal: per-conversation and global panels with add, enable/disable, and remove; credential values are redacted to key names in the UI.
|
|
614
|
+
- Migrate sessions to pi's v4 format with a `mikan sessions migrate` CLI; pi upgraded to 0.84.3.
|
|
615
|
+
- Extensions can declare required host capabilities in `package.json` (`mikan.requires`); activation checks them before importing the module and `mikan ext validate` reports them.
|
|
706
616
|
|
|
707
617
|
### Changed
|
|
708
618
|
|
|
709
|
-
-
|
|
619
|
+
- Split the agent module into five authority modules (catalog, prompt, runner, subagent-runner, types); the runtime now owns session rotation decisions and per-event chat-history sync.
|
|
620
|
+
- Derive all platform command registration and routing from the single command manifest.
|
|
621
|
+
- Adopt pi-ai's retryable-error classifier instead of a local copy.
|
|
622
|
+
- Conversation runtimes are keyed by office key, fixing cross-conversation runner reuse after ID changes.
|
|
710
623
|
|
|
711
624
|
### Fixed
|
|
712
625
|
|
|
713
|
-
-
|
|
714
|
-
-
|
|
626
|
+
- Session files enforce single-writer ownership, surviving inode reuse and stale writer claims.
|
|
627
|
+
- Failed extension activations roll back cleanly; duplicate tool names are rejected.
|
|
628
|
+
- Slack slash commands in threads carry the thread session key instead of falling back to the top-level session.
|
|
629
|
+
- GitHub first-contact stop no longer creates participation state.
|
|
630
|
+
- Subagent deadlines are enforced by a single wall-clock timer; `before_agent_start` hooks run before auth and pre-turn compaction.
|
|
631
|
+
- Sandbox container removal failures no longer clear ownership, preventing orphaned containers.
|
|
632
|
+
- Run outcomes settle from the final message and run state is released on throw.
|
|
715
633
|
|
|
716
|
-
## [0.
|
|
634
|
+
## [1.0.0-beta.43]
|
|
717
635
|
|
|
718
636
|
### Added
|
|
719
637
|
|
|
720
|
-
-
|
|
721
|
-
-
|
|
722
|
-
- Sandbox: separate `stateDir` from `workspaceDir` to keep secrets out of sandboxes.
|
|
638
|
+
- Add an optional authenticated GitHub webhook endpoint that wakes polling immediately for lower-latency issue and pull-request handling.
|
|
639
|
+
- Add a machine-readable architecture index and generated system architecture documentation for repository-wide module boundaries and flows.
|
|
723
640
|
|
|
724
|
-
###
|
|
641
|
+
### Changed
|
|
725
642
|
|
|
726
|
-
-
|
|
727
|
-
- Stopped leaking secrets in `docker exec` args.
|
|
728
|
-
- Enforced vault sandbox isolation policy.
|
|
643
|
+
- Run manual and automatic Session Dreams in the background while preserving session rotation and conversation maintenance boundaries.
|
|
729
644
|
|
|
730
|
-
###
|
|
645
|
+
### Fixed
|
|
731
646
|
|
|
732
|
-
-
|
|
733
|
-
- Replaced `DockerProvisioner` with `DockerContainerManager` + idle stop.
|
|
647
|
+
- Wait for final Slack thread responses in isolation coverage instead of accepting provisional native-stream text.
|
|
734
648
|
|
|
735
|
-
|
|
649
|
+
### Tests
|
|
736
650
|
|
|
737
|
-
|
|
651
|
+
- Add regression coverage for GitHub webhook authentication and dispatch, background Session Dream lifecycle behavior, and final Slack stream settlement.
|
|
738
652
|
|
|
739
|
-
|
|
740
|
-
- Persistent session management with in-thread replies (#18).
|
|
741
|
-
- Telegram: native slash commands; private-chat session fix (#15).
|
|
742
|
-
- `pi-coding-agent` extension loading (#12).
|
|
653
|
+
## [1.0.0-beta.42]
|
|
743
654
|
|
|
744
|
-
|
|
655
|
+
### Changed
|
|
745
656
|
|
|
746
|
-
|
|
657
|
+
[Showing lines 1-614 of 1985 (50.0KB limit). Use offset=615 to continue.]
|