mixdog 1.2.5 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSES/simple-icons-CC0-1.0.txt +30 -0
- package/NOTICE.md +19 -0
- package/package.json +4 -1
- package/scripts/check-model-recommendations.mjs +89 -0
- package/scripts/gate-local.mjs +7 -0
- package/scripts/lib/gate-scheduler.mjs +2 -2
- package/scripts/lib/isolated-test-env.mjs +16 -0
- package/scripts/lib/run-node-tests.mjs +5 -14
- package/scripts/provider-pingpong-live.mjs +9 -9
- package/src/agents/advisor/AGENT.md +4 -4
- package/src/agents/advisor/agent.json +1 -1
- package/src/agents/reviewer/AGENT.md +5 -4
- package/src/agents/reviewer/agent.json +1 -1
- package/src/defaults/shipped-history.json +17 -0
- package/src/defaults/skills/browser-use/SKILL.md +7 -1
- package/src/defaults/skills/computer-use/SKILL.md +3 -1
- package/src/defaults/skills/memory-management/SKILL.md +4 -1
- package/src/defaults/skills/setup/references/actions.md +11 -4
- package/src/defaults/skills/setup-guide/SKILL.md +175 -0
- package/src/defaults/skills/setup-guide/model-recommendations.json +333 -0
- package/src/defaults/skills/visualize/SKILL.md +3 -2
- package/src/lib/rules-builder.cjs +56 -7
- package/src/output-styles/common.md +22 -6
- package/src/output-styles/detailed.md +7 -5
- package/src/output-styles/minimal.md +7 -3
- package/src/output-styles/simple.md +2 -3
- package/src/rules/agent/AGENT.md +7 -1
- package/src/rules/agent-mode/AGENT_MODE.md +24 -0
- package/src/rules/agent-mode/MIXY.md +21 -0
- package/src/rules/agent-mode/ROUTINE.md +6 -0
- package/src/rules/lead/LEAD.md +9 -4
- package/src/rules/shared/10-tool-workflow.md +2 -1
- package/src/rules/shared/60-verification.md +4 -5
- package/src/rules/shared/70-delivery.md +3 -0
- package/src/runtime/agent/orchestrator/agent-runtime/cache-strategy.mjs +2 -1
- package/src/runtime/agent/orchestrator/agent-runtime/room-supervisor-completion.mjs +86 -0
- package/src/runtime/agent/orchestrator/config.mjs +6 -0
- package/src/runtime/agent/orchestrator/context/deferred-tools.mjs +77 -14
- package/src/runtime/agent/orchestrator/context/role-instructions.mjs +182 -13
- package/src/runtime/agent/orchestrator/context/skill-catalog.mjs +5 -3
- package/src/runtime/agent/orchestrator/internal-agents.mjs +10 -0
- package/src/runtime/agent/orchestrator/mcp/agent-connectors.mjs +215 -0
- package/src/runtime/agent/orchestrator/mcp/child-tree.mjs +58 -64
- package/src/runtime/agent/orchestrator/mcp/client-transport.mjs +10 -1
- package/src/runtime/agent/orchestrator/mcp/client.mjs +122 -15
- package/src/runtime/agent/orchestrator/mcp/oauth-account.mjs +97 -0
- package/src/runtime/agent/orchestrator/mcp/oauth-callback.mjs +2 -3
- package/src/runtime/agent/orchestrator/mcp/oauth-client.mjs +49 -0
- package/src/runtime/agent/orchestrator/mcp/oauth-credentials.mjs +59 -9
- package/src/runtime/agent/orchestrator/mcp/oauth-login.mjs +32 -7
- package/src/runtime/agent/orchestrator/mcp/oauth-provider.mjs +45 -6
- package/src/runtime/agent/orchestrator/mcp/oauth.mjs +195 -6
- package/src/runtime/agent/orchestrator/mcp/server-connectors.mjs +17 -0
- package/src/runtime/agent/orchestrator/providers/account-pool.mjs +9 -2
- package/src/runtime/agent/orchestrator/providers/anthropic-oauth-client-version.mjs +1 -1
- package/src/runtime/agent/orchestrator/providers/anthropic-oauth-credentials.mjs +41 -19
- package/src/runtime/agent/orchestrator/providers/anthropic-oauth.mjs +3 -2
- package/src/runtime/agent/orchestrator/providers/anthropic-sse-turn/turn-events/content-block-start.mjs +4 -1
- package/src/runtime/agent/orchestrator/providers/anthropic-sse-turn/turn-events.mjs +2 -0
- package/src/runtime/agent/orchestrator/providers/anthropic-sse-turn.mjs +3 -0
- package/src/runtime/agent/orchestrator/providers/anthropic-sse.mjs +2 -1
- package/src/runtime/agent/orchestrator/providers/anthropic.mjs +3 -1
- package/src/runtime/agent/orchestrator/providers/antigravity-oauth-login.mjs +11 -5
- package/src/runtime/agent/orchestrator/providers/antigravity-oauth-tokens.mjs +4 -0
- package/src/runtime/agent/orchestrator/providers/catalog-deadline.mjs +163 -0
- package/src/runtime/agent/orchestrator/providers/catalog-failures.mjs +34 -0
- package/src/runtime/agent/orchestrator/providers/cursor-client-version.mjs +1 -1
- package/src/runtime/agent/orchestrator/providers/grok-oauth-login.mjs +38 -14
- package/src/runtime/agent/orchestrator/providers/lib/oauth-page.mjs +100 -26
- package/src/runtime/agent/orchestrator/providers/lib/send-callbacks.mjs +24 -0
- package/src/runtime/agent/orchestrator/providers/oauth-credential-probes.mjs +13 -0
- package/src/runtime/agent/orchestrator/providers/oauth-usage.mjs +2 -1
- package/src/runtime/agent/orchestrator/providers/openai-compat-chat-send.mjs +1 -0
- package/src/runtime/agent/orchestrator/providers/openai-compat-chat-stream/chunk-events.mjs +4 -0
- package/src/runtime/agent/orchestrator/providers/openai-compat-chat-stream/stream-state.mjs +3 -1
- package/src/runtime/agent/orchestrator/providers/openai-compat-chat-stream.mjs +2 -0
- package/src/runtime/agent/orchestrator/providers/openai-compat-models.mjs +49 -4
- package/src/runtime/agent/orchestrator/providers/openai-compat-presets.mjs +0 -7
- package/src/runtime/agent/orchestrator/providers/openai-compat-responses-events.mjs +7 -1
- package/src/runtime/agent/orchestrator/providers/openai-compat-responses.mjs +1 -0
- package/src/runtime/agent/orchestrator/providers/openai-compat-stream.mjs +2 -0
- package/src/runtime/agent/orchestrator/providers/openai-compat-xai-send.mjs +1 -0
- package/src/runtime/agent/orchestrator/providers/openai-error-contract.mjs +17 -12
- package/src/runtime/agent/orchestrator/providers/openai-http-sse-response-state/response-events.mjs +5 -1
- package/src/runtime/agent/orchestrator/providers/openai-http-sse-response-state.mjs +11 -2
- package/src/runtime/agent/orchestrator/providers/openai-oauth-http-sse.mjs +1 -0
- package/src/runtime/agent/orchestrator/providers/openai-oauth-login.mjs +45 -16
- package/src/runtime/agent/orchestrator/providers/openai-oauth-tokens.mjs +10 -0
- package/src/runtime/agent/orchestrator/providers/openai-oauth-ws.mjs +1 -0
- package/src/runtime/agent/orchestrator/providers/openai-ws-connect.mjs +196 -0
- package/src/runtime/agent/orchestrator/providers/openai-ws-pool.mjs +74 -9
- package/src/runtime/agent/orchestrator/providers/openai-ws-stream/event-switch.mjs +14 -1
- package/src/runtime/agent/orchestrator/providers/openai-ws-stream.mjs +2 -0
- package/src/runtime/agent/orchestrator/providers/opencode-go-oauth-login.mjs +194 -0
- package/src/runtime/agent/orchestrator/providers/opencode-go-oauth-tokens.mjs +353 -0
- package/src/runtime/agent/orchestrator/providers/opencode-go-oauth.mjs +293 -0
- package/src/runtime/agent/orchestrator/providers/opencode-go-usage.mjs +33 -100
- package/src/runtime/agent/orchestrator/providers/opencode-go.mjs +23 -14
- package/src/runtime/agent/orchestrator/providers/registry.mjs +41 -27
- package/src/runtime/agent/orchestrator/runtime-core/ask-user-tool-defs.mjs +98 -4
- package/src/runtime/agent/orchestrator/runtime-core/context-status-shape.mjs +4 -0
- package/src/runtime/agent/orchestrator/runtime-core/extension-scopes.mjs +6 -4
- package/src/runtime/agent/orchestrator/runtime-core/orchestration.mjs +15 -8
- package/src/runtime/agent/orchestrator/runtime-core/plugin-mcp.mjs +1 -0
- package/src/runtime/agent/orchestrator/runtime-core/tool-bridge.mjs +12 -6
- package/src/runtime/agent/orchestrator/runtime-core/tool-catalog.mjs +32 -5
- package/src/runtime/agent/orchestrator/runtime-core/tool-defs.mjs +10 -4
- package/src/runtime/agent/orchestrator/runtime-core/workflow/agents.mjs +4 -1
- package/src/runtime/agent/orchestrator/runtime-core/workflow/context.mjs +50 -20
- package/src/runtime/agent/orchestrator/runtime-core/workflow-ids.mjs +2 -0
- package/src/runtime/agent/orchestrator/session/agent-home.d.mts +4 -0
- package/src/runtime/agent/orchestrator/session/agent-home.mjs +33 -0
- package/src/runtime/agent/orchestrator/session/agent-mode.mjs +62 -0
- package/src/runtime/agent/orchestrator/session/agent-pool-progress.mjs +15 -3
- package/src/runtime/agent/orchestrator/session/agent-room-supervisor.d.mts +31 -0
- package/src/runtime/agent/orchestrator/session/agent-room-supervisor.mjs +241 -0
- package/src/runtime/agent/orchestrator/session/agent-room.d.mts +162 -0
- package/src/runtime/agent/orchestrator/session/agent-room.mjs +641 -0
- package/src/runtime/agent/orchestrator/session/catalog-db/schema.mjs +7 -1
- package/src/runtime/agent/orchestrator/session/compact/execution-tail.mjs +74 -13
- package/src/runtime/agent/orchestrator/session/compact/forked-summary.mjs +102 -0
- package/src/runtime/agent/orchestrator/session/compact/runner.mjs +8 -2
- package/src/runtime/agent/orchestrator/session/compact/summary.mjs +16 -0
- package/src/runtime/agent/orchestrator/session/compact/user-message-kind.mjs +2 -0
- package/src/runtime/agent/orchestrator/session/compaction-archive-capture.mjs +6 -2
- package/src/runtime/agent/orchestrator/session/human-gate/gate.mjs +165 -0
- package/src/runtime/agent/orchestrator/session/human-gate/held-message.mjs +95 -0
- package/src/runtime/agent/orchestrator/session/human-gate/outbound-policy.mjs +221 -0
- package/src/runtime/agent/orchestrator/session/human-gate/requests.mjs +195 -0
- package/src/runtime/agent/orchestrator/session/human-gate/store.mjs +167 -0
- package/src/runtime/agent/orchestrator/session/lifecycle-scan.mjs +9 -0
- package/src/runtime/agent/orchestrator/session/loop/compact-policy.mjs +3 -1
- package/src/runtime/agent/orchestrator/session/loop/fresh-context.mjs +39 -2
- package/src/runtime/agent/orchestrator/session/loop/pre-dispatch-deny.mjs +10 -0
- package/src/runtime/agent/orchestrator/session/loop/send-phase.mjs +16 -1
- package/src/runtime/agent/orchestrator/session/loop/tool-exec/before-hook.mjs +82 -33
- package/src/runtime/agent/orchestrator/session/loop/tool-exec.mjs +11 -4
- package/src/runtime/agent/orchestrator/session/loop/tool-exposure-migration.mjs +5 -4
- package/src/runtime/agent/orchestrator/session/loop/tool-helpers.mjs +13 -3
- package/src/runtime/agent/orchestrator/session/loop/usage.mjs +7 -0
- package/src/runtime/agent/orchestrator/session/manager/ask-turn-execute.mjs +1 -0
- package/src/runtime/agent/orchestrator/session/manager/ask-turn-loop-options.mjs +6 -1
- package/src/runtime/agent/orchestrator/session/manager/ask-turn-prepare.mjs +6 -0
- package/src/runtime/agent/orchestrator/session/manager/ask-turn-settle.mjs +2 -0
- package/src/runtime/agent/orchestrator/session/manager/ask-turn-steering-drain.mjs +13 -5
- package/src/runtime/agent/orchestrator/session/manager/pending-lifecycle-epoch.mjs +0 -8
- package/src/runtime/agent/orchestrator/session/manager/pending-message-entry.mjs +10 -7
- package/src/runtime/agent/orchestrator/session/manager/pending-messages.mjs +62 -22
- package/src/runtime/agent/orchestrator/session/manager/prompt-utils.mjs +44 -16
- package/src/runtime/agent/orchestrator/session/manager/rules-cache.mjs +22 -5
- package/src/runtime/agent/orchestrator/session/manager/runtime-liveness.mjs +23 -1
- package/src/runtime/agent/orchestrator/session/manager/session-close.mjs +81 -34
- package/src/runtime/agent/orchestrator/session/manager/session-crud.mjs +39 -4
- package/src/runtime/agent/orchestrator/session/manager/session-lifecycle.mjs +27 -5
- package/src/runtime/agent/orchestrator/session/manager/session-prompt-composition.mjs +55 -8
- package/src/runtime/agent/orchestrator/session/manager/session-record.mjs +16 -0
- package/src/runtime/agent/orchestrator/session/manager/tool-resolution.mjs +3 -2
- package/src/runtime/agent/orchestrator/session/manager/usage-metrics.mjs +6 -0
- package/src/runtime/agent/orchestrator/session/manager/workflow-switch-notice.mjs +58 -0
- package/src/runtime/agent/orchestrator/session/manager.mjs +2 -2
- package/src/runtime/agent/orchestrator/session/mixy-name.mjs +24 -0
- package/src/runtime/agent/orchestrator/session/pre-send-compact.mjs +32 -5
- package/src/runtime/agent/orchestrator/session/request-fork.mjs +47 -0
- package/src/runtime/agent/orchestrator/session/routine-result.d.mts +70 -0
- package/src/runtime/agent/orchestrator/session/routine-result.mjs +277 -0
- package/src/runtime/agent/orchestrator/session/side-question-store.mjs +16 -1
- package/src/runtime/agent/orchestrator/session/side-question.mjs +5 -43
- package/src/runtime/agent/orchestrator/session/store/fs-probe.mjs +10 -0
- package/src/runtime/agent/orchestrator/session/store/lifecycle-barriers.mjs +73 -6
- package/src/runtime/agent/orchestrator/session/store/load-session.mjs +40 -0
- package/src/runtime/agent/orchestrator/session/store/save-fault.mjs +15 -0
- package/src/runtime/agent/orchestrator/session/store/session-paths.mjs +12 -0
- package/src/runtime/agent/orchestrator/session/store/sweep/sweep-row.mjs +8 -0
- package/src/runtime/agent/orchestrator/session/store-agent-worker-header.mjs +36 -0
- package/src/runtime/agent/orchestrator/session/store-agent-worker-rows.mjs +258 -43
- package/src/runtime/agent/orchestrator/session/store-record-strict-scan.mjs +325 -0
- package/src/runtime/agent/orchestrator/session/store-summary-catalog.mjs +84 -21
- package/src/runtime/agent/orchestrator/session/store-summary-index.mjs +44 -12
- package/src/runtime/agent/orchestrator/session/store-summary-last-message.mjs +46 -0
- package/src/runtime/agent/orchestrator/session/store-summary-reader.mjs +46 -30
- package/src/runtime/agent/orchestrator/session/store-summary-visibility.mjs +0 -4
- package/src/runtime/agent/orchestrator/session/store-transcript-cache.mjs +144 -45
- package/src/runtime/agent/orchestrator/session/store-transcript-projection.mjs +32 -13
- package/src/runtime/agent/orchestrator/session/store-transcript-worker.mjs +364 -38
- package/src/runtime/agent/orchestrator/session/store.mjs +9 -2
- package/src/runtime/agent/orchestrator/session/task-wait-control.mjs +43 -12
- package/src/runtime/agent/orchestrator/session/tool-result-offload.mjs +23 -6
- package/src/runtime/agent/orchestrator/session/transcript-restore/restore.mjs +44 -1
- package/src/runtime/agent/orchestrator/tools/builtin/arg-guard.mjs +12 -6
- package/src/runtime/agent/orchestrator/tools/builtin/bash-tool/backgrounded-result.mjs +13 -7
- package/src/runtime/agent/orchestrator/tools/builtin/bash-tool/bashism-rewrite.mjs +1 -1
- package/src/runtime/agent/orchestrator/tools/builtin/bash-tool/benign-exit.mjs +7 -1
- package/src/runtime/agent/orchestrator/tools/builtin/bash-tool/completed-result.mjs +40 -7
- package/src/runtime/agent/orchestrator/tools/builtin/bash-tool/deadline-plan.mjs +37 -34
- package/src/runtime/agent/orchestrator/tools/builtin/bash-tool/inline-hoist.mjs +1 -1
- package/src/runtime/agent/orchestrator/tools/builtin/bash-tool/spawn-env.mjs +0 -4
- package/src/runtime/agent/orchestrator/tools/builtin/bash-tool.mjs +6 -0
- package/src/runtime/agent/orchestrator/tools/builtin/builtin-tools.mjs +29 -27
- package/src/runtime/agent/orchestrator/tools/builtin/external-tool-adapters.mjs +1 -1
- package/src/runtime/agent/orchestrator/tools/builtin/find-files-tool.mjs +28 -11
- package/src/runtime/agent/orchestrator/tools/builtin/git-command-policy.mjs +12 -3
- package/src/runtime/agent/orchestrator/tools/builtin/git-command-tool.mjs +203 -101
- package/src/runtime/agent/orchestrator/tools/builtin/git-repo-rw-lock.mjs +90 -41
- package/src/runtime/agent/orchestrator/tools/builtin/lib/list-helpers.mjs +17 -1
- package/src/runtime/agent/orchestrator/tools/builtin/lib/shell-delivery.mjs +199 -0
- package/src/runtime/agent/orchestrator/tools/builtin/lib/shell-job-records.mjs +12 -0
- package/src/runtime/agent/orchestrator/tools/builtin/lib/shell-task-output.mjs +165 -39
- package/src/runtime/agent/orchestrator/tools/builtin/list-tool.mjs +25 -13
- package/src/runtime/agent/orchestrator/tools/builtin/native-search-client.mjs +113 -5
- package/src/runtime/agent/orchestrator/tools/builtin/read-batch.mjs +7 -6
- package/src/runtime/agent/orchestrator/tools/builtin/read-formatting.mjs +19 -4
- package/src/runtime/agent/orchestrator/tools/builtin/read-line-collector.mjs +5 -3
- package/src/runtime/agent/orchestrator/tools/builtin/read-single-render.mjs +25 -7
- package/src/runtime/agent/orchestrator/tools/builtin/read-special-files.mjs +2 -1
- package/src/runtime/agent/orchestrator/tools/builtin/read-tool/batch-render.mjs +3 -1
- package/src/runtime/agent/orchestrator/tools/builtin/search-glob-tool.mjs +12 -5
- package/src/runtime/agent/orchestrator/tools/builtin/search-grep-tool.mjs +61 -22
- package/src/runtime/agent/orchestrator/tools/builtin/search-path-diagnostics.mjs +32 -8
- package/src/runtime/agent/orchestrator/tools/builtin/shell-analysis.mjs +193 -19
- package/src/runtime/agent/orchestrator/tools/builtin/shell-direct-exe.mjs +57 -7
- package/src/runtime/agent/orchestrator/tools/builtin/shell-jobs.mjs +123 -32
- package/src/runtime/agent/orchestrator/tools/builtin/shell-lossless-compact.mjs +26 -1
- package/src/runtime/agent/orchestrator/tools/builtin/shell-output.mjs +13 -28
- package/src/runtime/agent/orchestrator/tools/builtin/task-tool.mjs +90 -11
- package/src/runtime/agent/orchestrator/tools/builtin/wait-budgets.mjs +23 -0
- package/src/runtime/agent/orchestrator/tools/builtin.mjs +54 -10
- package/src/runtime/agent/orchestrator/tools/code-graph/build.mjs +22 -28
- package/src/runtime/agent/orchestrator/tools/code-graph/dispatch.mjs +11 -7
- package/src/runtime/agent/orchestrator/tools/destructive-warning.mjs +126 -9
- package/src/runtime/agent/orchestrator/tools/graph-manifest.json +13 -13
- package/src/runtime/agent/orchestrator/tools/lib/owned-shell-trees.mjs +15 -6
- package/src/runtime/agent/orchestrator/tools/lib/shell-descendants.mjs +64 -2
- package/src/runtime/agent/orchestrator/tools/lib/shell-run-background/promote-job.mjs +10 -2
- package/src/runtime/agent/orchestrator/tools/lib/shell-run-background/promotion-results.mjs +13 -3
- package/src/runtime/agent/orchestrator/tools/lib/shell-run-settle.mjs +8 -0
- package/src/runtime/agent/orchestrator/tools/lib/shell-run-state.mjs +6 -1
- package/src/runtime/agent/orchestrator/tools/patch/v4a-convert.mjs +1 -1
- package/src/runtime/agent/orchestrator/tools/shell-command.mjs +104 -55
- package/src/runtime/agent/orchestrator/tools/shell-policy.mjs +7 -2
- package/src/runtime/agent/orchestrator/tools/shell-powershell.mjs +39 -23
- package/src/runtime/agent/orchestrator/tools/shell-snapshot.mjs +6 -2
- package/src/runtime/agent/orchestrator/tools/spawn-manifest.json +13 -13
- package/src/runtime/attachments/office-extract.mjs +11 -9
- package/src/runtime/browser-bridge/client.mjs +24 -0
- package/src/runtime/channels/lib/scheduler.mjs +40 -12
- package/src/runtime/channels/lib/schedules-db.mjs +71 -12
- package/src/runtime/channels/lib/webhook/session-dispatch.mjs +36 -16
- package/src/runtime/channels/lib/webhook.mjs +0 -1
- package/src/runtime/channels/lib/webhooks-db.mjs +100 -10
- package/src/runtime/channels/lib/worker-main.mjs +17 -20
- package/src/runtime/computer-bridge/client.mjs +28 -1
- package/src/runtime/connectors/gmail-app-password.mjs +690 -0
- package/src/runtime/connectors/google-mcp.mjs +446 -0
- package/src/runtime/memory/lib/core-memory-access.mjs +69 -0
- package/src/runtime/memory/lib/core-memory-file.mjs +16 -8
- package/src/runtime/memory/lib/core-memory-index.mjs +15 -9
- package/src/runtime/memory/lib/core-memory-management.mjs +10 -4
- package/src/runtime/memory/lib/core-memory-store.mjs +53 -30
- package/src/runtime/memory/lib/core-memory-uniqueness.mjs +10 -6
- package/src/runtime/memory/lib/embedding-tokenizer.mjs +32 -18
- package/src/runtime/memory/lib/http-router/session-routes.mjs +3 -2
- package/src/runtime/memory/lib/memory-action-handlers/core-actions.mjs +44 -14
- package/src/runtime/memory/lib/memory-schema/core-and-meta.mjs +11 -0
- package/src/runtime/memory/lib/memory.mjs +7 -1
- package/src/runtime/memory/lib/query-core-recall.mjs +9 -1
- package/src/runtime/memory/lib/query-hybrid-search.mjs +2 -0
- package/src/runtime/memory/lib/runtime-fetcher.mjs +1 -1
- package/src/runtime/memory/lib/tool-call-handler.mjs +9 -5
- package/src/runtime/memory/tool-defs.mjs +5 -0
- package/src/runtime/office/authoring/pptx-script-normalize.mjs +11 -8
- package/src/runtime/office/core/tabular.mjs +1 -1
- package/src/runtime/office/design/library/design-template-inspect.mjs +7 -4
- package/src/runtime/office/portable/docx-formatting.mjs +1 -1
- package/src/runtime/office/portable/docx-runs.mjs +1 -1
- package/src/runtime/office/portable/docx-tracked-edits.mjs +2 -2
- package/src/runtime/office/portable/portable-docx-edits.mjs +11 -10
- package/src/runtime/office/portable/portable-docx-operations.mjs +21 -17
- package/src/runtime/office/portable/portable-docx-parts.mjs +15 -9
- package/src/runtime/office/portable/portable-docx-styles.mjs +4 -1
- package/src/runtime/office/portable/portable-docx-xml.mjs +9 -9
- package/src/runtime/office/portable/portable-opc.mjs +27 -13
- package/src/runtime/office/portable/portable-pivot.mjs +3 -3
- package/src/runtime/office/portable/portable-pptx-chart.mjs +3 -3
- package/src/runtime/office/portable/portable-pptx-charts.mjs +24 -18
- package/src/runtime/office/portable/portable-pptx-core.mjs +5 -5
- package/src/runtime/office/portable/portable-pptx-deck.mjs +8 -4
- package/src/runtime/office/portable/portable-pptx-package.mjs +7 -4
- package/src/runtime/office/portable/portable-pptx-shapes.mjs +18 -9
- package/src/runtime/office/portable/portable-sheet-parts.mjs +9 -3
- package/src/runtime/office/portable/portable-sheet-xml.mjs +5 -5
- package/src/runtime/office/portable/portable-xlsx-charts.mjs +4 -1
- package/src/runtime/office/portable/portable-xlsx-drawings.mjs +10 -6
- package/src/runtime/office/portable/portable-xlsx-operations.mjs +8 -5
- package/src/runtime/office/portable/portable-xlsx-pivot-ops.mjs +1 -1
- package/src/runtime/office/portable/portable-xlsx-reference-shift.mjs +11 -7
- package/src/runtime/office/portable/portable-xlsx-sheet-edits.mjs +6 -3
- package/src/runtime/office/portable/portable-xml.mjs +1 -1
- package/src/runtime/shared/agent-avatar-sprites.mjs +445 -0
- package/src/runtime/shared/agent-avatar.d.mts +64 -0
- package/src/runtime/shared/agent-avatar.mjs +320 -0
- package/src/runtime/shared/agent-route-config.d.mts +3 -0
- package/src/runtime/shared/agent-route-config.mjs +16 -0
- package/src/runtime/shared/atomic-file.mjs +36 -14
- package/src/runtime/shared/background-tasks.mjs +60 -20
- package/src/runtime/shared/child-spawn-gate.mjs +26 -16
- package/src/runtime/shared/config.mjs +8 -11
- package/src/runtime/shared/connector-accounts.mjs +15 -0
- package/src/runtime/shared/connector-catalog.d.mts +52 -0
- package/src/runtime/shared/connector-catalog.mjs +230 -0
- package/src/runtime/shared/connector-triggers.d.mts +3 -0
- package/src/runtime/shared/connector-triggers.mjs +43 -0
- package/src/runtime/shared/file-lock.mjs +7 -1
- package/src/runtime/shared/file-permissions-worker.mjs +38 -0
- package/src/runtime/shared/file-permissions.d.mts +19 -4
- package/src/runtime/shared/file-permissions.mjs +310 -4
- package/src/runtime/shared/git-runner-worker.mjs +6 -78
- package/src/runtime/shared/google-oauth-client.mjs +24 -0
- package/src/runtime/shared/held-request-host.d.mts +12 -0
- package/src/runtime/shared/held-request-host.mjs +71 -0
- package/src/runtime/shared/llm/http-agent.mjs +7 -3
- package/src/runtime/shared/llm/provider-catalog-registry.mjs +10 -0
- package/src/runtime/shared/llm/usage-accounting.mjs +2 -0
- package/src/runtime/shared/llm/usage-ledger-import.mjs +32 -3
- package/src/runtime/shared/llm/usage-ledger-rollup.mjs +12 -5
- package/src/runtime/shared/llm/usage-ledger-worker.mjs +1 -1
- package/src/runtime/shared/llm/usage-ledger.mjs +20 -5
- package/src/runtime/shared/memory-snapshot.mjs +5 -1
- package/src/runtime/shared/notify-trace.mjs +8 -1
- package/src/runtime/shared/plain-preview.d.mts +1 -0
- package/src/runtime/shared/plain-preview.mjs +28 -0
- package/src/runtime/shared/pristine-execution-contract.json +5 -1
- package/src/runtime/shared/process-runner-worker.mjs +7 -0
- package/src/runtime/shared/process-runner.mjs +38 -0
- package/src/runtime/shared/provider-accounts.mjs +2 -1
- package/src/runtime/shared/provider-api-key.mjs +0 -1
- package/src/runtime/shared/read-row-numbers.mjs +1 -1
- package/src/runtime/shared/resource-admission.mjs +60 -18
- package/src/runtime/shared/routine-limits.d.mts +11 -0
- package/src/runtime/shared/routine-limits.mjs +21 -0
- package/src/runtime/shared/routine-trigger.d.mts +10 -0
- package/src/runtime/shared/routine-trigger.mjs +44 -0
- package/src/runtime/shared/run-child.mjs +84 -0
- package/src/runtime/shared/schedule-model-ref.mjs +9 -10
- package/src/runtime/shared/session-activity-signal.mjs +23 -0
- package/src/runtime/shared/shell-output-summary.mjs +23 -0
- package/src/runtime/shared/singleton-owner.mjs +126 -42
- package/src/runtime/shared/slow-span.mjs +4 -12
- package/src/runtime/shared/statusline/statusline-segments.mjs +13 -1
- package/src/runtime/shared/tool-output-limit.mjs +4 -2
- package/src/runtime/shared/tool-output-marker.mjs +58 -0
- package/src/runtime/shared/transcript-metadata.mjs +10 -0
- package/src/runtime/shared/turn-changes.mjs +0 -8
- package/src/runtime/shared/usage-readout-totals.mjs +56 -0
- package/src/runtime/shared/user-data-guard.mjs +131 -34
- package/src/runtime/shared/worktrees/activity-gate.mjs +33 -8
- package/src/runtime/shared/worktrees/git-head.mjs +20 -2
- package/src/runtime/shared/worktrees/lock.mjs +3 -2
- package/src/runtime/terminal-bridge/tool-defs.mjs +1 -1
- package/src/runtime/tidy/runners/biome.mjs +3 -1
- package/src/runtime/tidy/shadow.mjs +2 -1
- package/src/runtime/web-search/index.mjs +5 -7
- package/src/runtime/web-search/lib/formatter.mjs +42 -6
- package/src/runtime/web-search/tool-defs.mjs +6 -1
- package/src/session-runtime/agent-home-delivery.mjs +459 -0
- package/src/session-runtime/agent-profile-changes.mjs +21 -0
- package/src/session-runtime/agent-room-delivery.mjs +92 -0
- package/src/session-runtime/agent-task-sessions.mjs +200 -0
- package/src/session-runtime/boot/apis.mjs +50 -18
- package/src/session-runtime/boot/facade.mjs +5 -8
- package/src/session-runtime/boot/infrastructure.mjs +28 -17
- package/src/session-runtime/boot/tools.mjs +3 -0
- package/src/session-runtime/channel-config-api.mjs +53 -5
- package/src/session-runtime/cwd-plugins/core-memory-context.mjs +36 -20
- package/src/session-runtime/cwd-plugins/plugin-status.mjs +6 -1
- package/src/session-runtime/held-requests.mjs +228 -0
- package/src/session-runtime/internal-tool-executor/ask-user-tool.mjs +121 -0
- package/src/session-runtime/internal-tool-executor/feature-tools.mjs +5 -1
- package/src/session-runtime/internal-tool-executor/knowledge-tools.mjs +31 -2
- package/src/session-runtime/internal-tool-executor/workspace-tools.mjs +31 -2
- package/src/session-runtime/internal-tool-executor.mjs +2 -0
- package/src/session-runtime/lifecycle/session-catalog.mjs +9 -0
- package/src/session-runtime/lifecycle/session-switch/context-switch.mjs +4 -3
- package/src/session-runtime/lifecycle/session-switch/resume.mjs +11 -4
- package/src/session-runtime/lifecycle/session-switch/session-delete.mjs +3 -3
- package/src/session-runtime/lifecycle/shared.mjs +25 -2
- package/src/session-runtime/lifecycle/teardown/session-close.mjs +2 -0
- package/src/session-runtime/lifecycle/teardown.mjs +5 -2
- package/src/session-runtime/lifecycle-api.mjs +3 -1
- package/src/session-runtime/mcp-glue/server-catalog.mjs +8 -0
- package/src/session-runtime/mcp-glue/server-input.mjs +3 -0
- package/src/session-runtime/mcp-oauth-login.mjs +112 -15
- package/src/session-runtime/model-route/set-route.mjs +14 -3
- package/src/session-runtime/owned-automation-run.mjs +229 -0
- package/src/session-runtime/provider-auth/login.mjs +10 -6
- package/src/session-runtime/provider-auth/setup.mjs +19 -2
- package/src/session-runtime/provider-catalog-cache.mjs +101 -25
- package/src/session-runtime/provider-models/catalog-load.mjs +14 -3
- package/src/session-runtime/provider-models/row-hydration.mjs +4 -0
- package/src/session-runtime/provider-models.mjs +76 -10
- package/src/session-runtime/provider-readiness.mjs +4 -0
- package/src/session-runtime/resource-api.mjs +5 -0
- package/src/session-runtime/resource-mcp-api.mjs +107 -13
- package/src/session-runtime/resource-skills-api.mjs +12 -0
- package/src/session-runtime/room-member-gate.mjs +48 -0
- package/src/session-runtime/routine-home-turn.mjs +156 -0
- package/src/session-runtime/routine-owner.mjs +48 -0
- package/src/session-runtime/schedule-session-run.mjs +30 -64
- package/src/session-runtime/services/agent-tool/close-flow.mjs +2 -1
- package/src/session-runtime/services/agent-tool/helpers.mjs +10 -0
- package/src/session-runtime/services/agent-tool/job-views/agent-list.mjs +10 -2
- package/src/session-runtime/services/agent-tool/job-views/session-progress.mjs +13 -4
- package/src/session-runtime/services/agent-tool/notify.mjs +15 -4
- package/src/session-runtime/services/agent-tool/restart-notify.mjs +134 -0
- package/src/session-runtime/services/agent-tool/send-flow.mjs +24 -1
- package/src/session-runtime/services/agent-tool/spawn-flow/deferred-spawn.mjs +2 -1
- package/src/session-runtime/services/agent-tool/spawn-flow/job-start.mjs +4 -3
- package/src/session-runtime/services/agent-tool/spawn-flow/spawn-plan.mjs +19 -4
- package/src/session-runtime/services/agent-tool/spawn-flow/spawn-prep.mjs +2 -0
- package/src/session-runtime/services/agent-tool/spawn-flow/spawn-run.mjs +5 -1
- package/src/session-runtime/services/agent-tool/tag-registry/tag-lookup.mjs +8 -3
- package/src/session-runtime/services/agent-tool/tag-registry.mjs +3 -0
- package/src/session-runtime/services/agent-tool/worker-index/row-shape.mjs +4 -0
- package/src/session-runtime/services/agent-tool/worker-index.mjs +44 -10
- package/src/session-runtime/services/agent-tool.mjs +20 -0
- package/src/session-runtime/services/channel-admin.mjs +93 -24
- package/src/session-runtime/services/memory-access.mjs +37 -0
- package/src/session-runtime/services/provider-admin.mjs +166 -59
- package/src/session-runtime/services/schedule-access.mjs +91 -0
- package/src/session-runtime/services/usage-dashboard-model.mjs +2 -2
- package/src/session-runtime/services/usage-dashboard.mjs +27 -69
- package/src/session-runtime/session-create/session-options.mjs +34 -7
- package/src/session-runtime/session-hooks.mjs +16 -8
- package/src/session-runtime/setup-tool/executor.mjs +68 -6
- package/src/session-runtime/setup-tool/extended-actions.mjs +72 -14
- package/src/session-runtime/setup-tool/settings-contract.mjs +8 -6
- package/src/session-runtime/setup-tool/tool-defs.mjs +8 -0
- package/src/session-runtime/skills-api.mjs +16 -1
- package/src/session-runtime/tool-policy-refresh.mjs +238 -29
- package/src/session-runtime/turn/session-ops.mjs +10 -3
- package/src/session-runtime/turn/turn-run/ask-callbacks.mjs +11 -2
- package/src/session-runtime/turn/turn-run/turn-prepare.mjs +3 -0
- package/src/session-runtime/usage-stats-api.mjs +6 -1
- package/src/session-runtime/webhook-session-run.mjs +49 -67
- package/src/session-runtime/workflow-agents-api/agent-connectors.mjs +239 -0
- package/src/session-runtime/workflow-agents-api/agent-editor.mjs +556 -22
- package/src/session-runtime/workflow-agents-api/workflow-packs.mjs +11 -1
- package/src/session-runtime/workflow-agents-api.mjs +4 -1
- package/src/standalone/channel-transport/http-routes.mjs +10 -9
- package/src/standalone/daemon-agent-control.mjs +1 -8
- package/src/standalone/daemon-desktop-runtime.mjs +20 -7
- package/src/standalone/daemon-owner.mjs +117 -25
- package/src/standalone/daemon-session-control.mjs +11 -2
- package/src/standalone/daemon.mjs +61 -17
- package/src/standalone/session-call-cache.mjs +6 -0
- package/src/standalone/session-protocol.mjs +28 -1
- package/src/standalone/session-service/retention/busy.mjs +7 -2
- package/src/standalone/session-service/session-calls/session-turns.mjs +9 -0
- package/src/standalone/session-service.mjs +19 -0
- package/src/standalone/session-transport/routes.mjs +7 -6
- package/src/tui/app/model-options.mjs +39 -2
- package/src/tui/app/model-picker.mjs +16 -2
- package/src/tui/app/provider-setup-picker.mjs +1 -2
- package/src/tui/app/slash-commands.mjs +20 -0
- package/src/tui/dist/index.mjs +487 -128
- package/src/tui/session/context-state.mjs +6 -1
- package/src/tui/session/notice-surface.mjs +35 -4
- package/src/tui/session/notice-text.mjs +0 -1
- package/src/tui/session/queue-helpers.mjs +2 -1
- package/src/tui/session/session-api/extensions.mjs +4 -0
- package/src/tui/session/session-api/intake/submission.mjs +12 -13
- package/src/tui/session/session-api/integrations.mjs +9 -5
- package/src/tui/session/session-api/lifecycle/session-reset.mjs +13 -3
- package/src/tui/session/session-api/lifecycle.mjs +17 -1
- package/src/tui/session/session-api/routes.mjs +48 -3
- package/src/tui/session/session-flow/drain.mjs +20 -3
- package/src/tui/session/session-flow/queue/entry-shape.mjs +2 -1
- package/src/tui/session/session-flow/queue/take-entries.mjs +3 -2
- package/src/tui/session/session-flow/steering.mjs +104 -24
- package/src/tui/session/session-flow.mjs +2 -0
- package/src/tui/session/tool-approval.mjs +26 -5
- package/src/tui/session/transcript-intake.mjs +6 -2
- package/src/tui/session/transcript-spill.mjs +5 -1
- package/src/tui/session/tui-steering-persist.mjs +65 -42
- package/src/tui/session/turn-live-call.mjs +56 -0
- package/src/tui/session/turn-stream.mjs +33 -0
- package/src/tui/session/turn.mjs +50 -7
- package/src/ui/statusline.mjs +1 -6
- package/src/ui/streaming-markdown-heal.mjs +24 -7
- package/src/vendor/statusline/bin/statusline-route.mjs +0 -1
- package/src/vendor/statusline/src/gateway/route-meta.mjs +0 -1
- package/src/workflows/default/WORKFLOW.md +9 -13
- package/src/session-runtime/automation-agents.mjs +0 -94
- package/src/session-runtime/automation-workflow.mjs +0 -59
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# CC0 1.0 Universal
|
|
2
|
+
|
|
3
|
+
## Statement of Purpose
|
|
4
|
+
|
|
5
|
+
The laws of most jurisdictions throughout the world automatically confer exclusive Copyright and Related Rights (defined below) upon the creator and subsequent owner(s) (each and all, an “owner”) of an original work of authorship and/or a database (each, a “Work”).
|
|
6
|
+
|
|
7
|
+
Certain owners wish to permanently relinquish those rights to a Work for the purpose of contributing to a commons of creative, cultural and scientific works (“Commons”) that the public can reliably and without fear of later claims of infringement build upon, modify, incorporate in other works, reuse and redistribute as freely as possible in any form whatsoever and for any purposes, including without limitation commercial purposes. These owners may contribute to the Commons to promote the ideal of a free culture and the further production of creative, cultural and scientific works, or to gain reputation or greater distribution for their Work in part through the use and efforts of others.
|
|
8
|
+
|
|
9
|
+
For these and/or other purposes and motivations, and without any expectation of additional consideration or compensation, the person associating CC0 with a Work (the “Affirmer”), to the extent that he or she is an owner of Copyright and Related Rights in the Work, voluntarily elects to apply CC0 to the Work and publicly distribute the Work under its terms, with knowledge of his or her Copyright and Related Rights in the Work and the meaning and intended legal effect of CC0 on those rights.
|
|
10
|
+
|
|
11
|
+
1. Copyright and Related Rights. A Work made available under CC0 may be protected by copyright and related or neighboring rights (“Copyright and Related Rights”). Copyright and Related Rights include, but are not limited to, the following:
|
|
12
|
+
1. the right to reproduce, adapt, distribute, perform, display, communicate, and translate a Work;
|
|
13
|
+
2. moral rights retained by the original author(s) and/or performer(s);
|
|
14
|
+
3. publicity and privacy rights pertaining to a person’s image or likeness depicted in a Work;
|
|
15
|
+
4. rights protecting against unfair competition in regards to a Work, subject to the limitations in paragraph 4(i), below;
|
|
16
|
+
5. rights protecting the extraction, dissemination, use and reuse of data in a Work;
|
|
17
|
+
6. database rights (such as those arising under Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, and under any national implementation thereof, including any amended or successor version of such directive); and
|
|
18
|
+
7. other similar, equivalent or corresponding rights throughout the world based on applicable law or treaty, and any national implementations thereof.
|
|
19
|
+
|
|
20
|
+
2. Waiver. To the greatest extent permitted by, but not in contravention of, applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and unconditionally waives, abandons, and surrenders all of Affirmer’s Copyright and Related Rights and associated claims and causes of action, whether now known or unknown (including existing as well as future claims and causes of action), in the Work (i) in all territories worldwide, (ii) for the maximum duration provided by applicable law or treaty (including future time extensions), (iii) in any current or future medium and for any number of copies, and (iv) for any purpose whatsoever, including without limitation commercial, advertising or promotional purposes (the “Waiver”). Affirmer makes the Waiver for the benefit of each member of the public at large and to the detriment of Affirmer’s heirs and successors, fully intending that such Waiver shall not be subject to revocation, rescission, cancellation, termination, or any other legal or equitable action to disrupt the quiet enjoyment of the Work by the public as contemplated by Affirmer’s express Statement of Purpose.
|
|
21
|
+
|
|
22
|
+
3. Public License Fallback. Should any part of the Waiver for any reason be judged legally invalid or ineffective under applicable law, then the Waiver shall be preserved to the maximum extent permitted taking into account Affirmer’s express Statement of Purpose. In addition, to the extent the Waiver is so judged Affirmer hereby grants to each affected person a royalty-free, non transferable, non sublicensable, non exclusive, irrevocable and unconditional license to exercise Affirmer’s Copyright and Related Rights in the Work (i) in all territories worldwide, (ii) for the maximum duration provided by applicable law or treaty (including future time extensions), (iii) in any current or future medium and for any number of copies, and (iv) for any purpose whatsoever, including without limitation commercial, advertising or promotional purposes (the “License”). The License shall be deemed effective as of the date CC0 was applied by Affirmer to the Work. Should any part of the License for any reason be judged legally invalid or ineffective under applicable law, such partial invalidity or ineffectiveness shall not invalidate the remainder of the License, and in such case Affirmer hereby affirms that he or she will not (i) exercise any of his or her remaining Copyright and Related Rights in the Work or (ii) assert any associated claims and causes of action with respect to the Work, in either case contrary to Affirmer’s express Statement of Purpose.
|
|
23
|
+
|
|
24
|
+
4. Limitations and Disclaimers.
|
|
25
|
+
1. No trademark or patent rights held by Affirmer are waived, abandoned, surrendered, licensed or otherwise affected by this document.
|
|
26
|
+
2. Affirmer offers the Work as-is and makes no representations or warranties of any kind concerning the Work, express, implied, statutory or otherwise, including without limitation warranties of title, merchantability, fitness for a particular purpose, non infringement, or the absence of latent or other defects, accuracy, or the present or absence of errors, whether or not discoverable, all to the greatest extent permissible under applicable law.
|
|
27
|
+
3. Affirmer disclaims responsibility for clearing rights of other persons that may apply to the Work or any use thereof, including without limitation any person’s Copyright and Related Rights in the Work. Further, Affirmer disclaims responsibility for obtaining any necessary consents, permissions or other rights required for any use of the Work.
|
|
28
|
+
4. Affirmer understands and acknowledges that Creative Commons is not a party to this document and has no duty or obligation with respect to this CC0 or use of the Work.
|
|
29
|
+
|
|
30
|
+
For more information, please see <https://creativecommons.org/publicdomain/zero/1.0>.
|
package/NOTICE.md
CHANGED
|
@@ -20,6 +20,8 @@ Full license texts live in `LICENSES/`:
|
|
|
20
20
|
notice referenced by the generated files.
|
|
21
21
|
- `LICENSES/browser-import-NOTICE.txt` — source and license boundary for the
|
|
22
22
|
optional GPL Chrome password import sidecar.
|
|
23
|
+
- `LICENSES/simple-icons-CC0-1.0.txt` — the CC0 1.0 dedication of the Simple
|
|
24
|
+
Icons brand marks used for connectors.
|
|
23
25
|
- Tidy engine license texts listed in the Tidy engines section below.
|
|
24
26
|
|
|
25
27
|
## MIT
|
|
@@ -133,6 +135,23 @@ Its training data includes requests from SWE-chat
|
|
|
133
135
|
the Open Data Commons Attribution License 1.0, and from DataClaw exports that
|
|
134
136
|
their authors published on the Hugging Face Hub under the MIT License.
|
|
135
137
|
|
|
138
|
+
## CC0-1.0
|
|
139
|
+
|
|
140
|
+
### Simple Icons 16.35.0
|
|
141
|
+
|
|
142
|
+
<https://simpleicons.org> · <https://github.com/simple-icons/simple-icons>
|
|
143
|
+
|
|
144
|
+
The connector brand marks in
|
|
145
|
+
`apps/desktop/src/renderer/connectors-brand-icons.ts` carry Simple Icons path
|
|
146
|
+
data and brand colours unmodified (Airtable, Blender, Confluence, Discord,
|
|
147
|
+
Dropbox, Figma, GitHub, Gmail, Google Calendar, Google Drive, Hugging Face,
|
|
148
|
+
Jira, Linear, Notion, PostgreSQL, Sentry, Stripe, Supabase, Telegram, Trello,
|
|
149
|
+
Unity, Vercel); Unity's mark is drawn in black, as its listed colour is white.
|
|
150
|
+
Simple Icons is dedicated to the public domain under CC0 1.0; each
|
|
151
|
+
mark remains the trademark of its owner and is shown only to name that
|
|
152
|
+
service. Slack is not in Simple Icons and its mark is not openly licensed, so
|
|
153
|
+
it is shown as a letter tile. Full text: `LICENSES/simple-icons-CC0-1.0.txt`.
|
|
154
|
+
|
|
136
155
|
## GPL-3.0-only
|
|
137
156
|
|
|
138
157
|
### Chrome password import sidecar
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mixdog",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"description": "Open-source coding agent that matches Codex on Terminal-Bench 2.1 with 63% fewer tokens.",
|
|
@@ -60,6 +60,7 @@
|
|
|
60
60
|
"prepack": "npm run build:shipped-history && npm run build:tui",
|
|
61
61
|
"build:shipped-history": "node scripts/build-shipped-history.mjs",
|
|
62
62
|
"check:shipped-history": "node scripts/build-shipped-history.mjs --check",
|
|
63
|
+
"check:model-recommendations": "node scripts/check-model-recommendations.mjs",
|
|
63
64
|
"prepublishOnly": "node -e \"if(!process.env.CI){console.error('local npm publish is disabled — run npm run release:patch');process.exit(1)}\"",
|
|
64
65
|
"start": "node src/cli.mjs",
|
|
65
66
|
"test": "node scripts/test.mjs",
|
|
@@ -165,11 +166,13 @@
|
|
|
165
166
|
"chalk": "^5.6.2",
|
|
166
167
|
"cli-highlight": "^2.1.11",
|
|
167
168
|
"diff": "^9.0.0",
|
|
169
|
+
"imapflow": "^2.5.7",
|
|
168
170
|
"ink": "https://github.com/tribgames/mixdog/releases/download/ink-runtime-v7.1.0-mixdog.1/ink-7.1.0.tgz",
|
|
169
171
|
"jsdom": "^27.0.0",
|
|
170
172
|
"jszip": "^3.10.1",
|
|
171
173
|
"marked": "^14.1.4",
|
|
172
174
|
"node-cron": "^4.5.0",
|
|
175
|
+
"nodemailer": "^10.1.7",
|
|
173
176
|
"onnxruntime-node": "1.30.0",
|
|
174
177
|
"openai": "^6.44.0",
|
|
175
178
|
"pdf-lib": "^1.17.1",
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
// Validates the setup-guide model recommendation list and exits non-zero when
|
|
2
|
+
// it is older than its own staleAfterDays.
|
|
3
|
+
//
|
|
4
|
+
// node scripts/check-model-recommendations.mjs
|
|
5
|
+
import { readFileSync } from 'node:fs';
|
|
6
|
+
import { dirname, join } from 'node:path';
|
|
7
|
+
import { fileURLToPath } from 'node:url';
|
|
8
|
+
|
|
9
|
+
const file = join(
|
|
10
|
+
dirname(fileURLToPath(import.meta.url)),
|
|
11
|
+
'..',
|
|
12
|
+
'src/defaults/skills/setup-guide/model-recommendations.json'
|
|
13
|
+
);
|
|
14
|
+
const data = JSON.parse(readFileSync(file, 'utf8'));
|
|
15
|
+
const DATE = /^\d{4}-\d{2}-\d{2}$/;
|
|
16
|
+
const errors = [];
|
|
17
|
+
const str = (v) => typeof v === 'string' && v.trim() !== '';
|
|
18
|
+
|
|
19
|
+
if (!DATE.test(data.asOf ?? '')) errors.push('asOf must be YYYY-MM-DD');
|
|
20
|
+
if (!Number.isInteger(data.staleAfterDays) || data.staleAfterDays <= 0) {
|
|
21
|
+
errors.push('staleAfterDays must be a positive integer');
|
|
22
|
+
}
|
|
23
|
+
if (!Array.isArray(data.roles) || data.roles.length === 0) errors.push('roles must be a non-empty array');
|
|
24
|
+
for (const [i, entry] of (Array.isArray(data.roles) ? data.roles : []).entries()) {
|
|
25
|
+
const at = `roles[${i}]`;
|
|
26
|
+
if (!Array.isArray(entry.roles) || entry.roles.length === 0 || !entry.roles.every(str)) {
|
|
27
|
+
errors.push(`${at}.roles must be a non-empty string array`);
|
|
28
|
+
}
|
|
29
|
+
if (entry.preferOtherProviderThan !== undefined) {
|
|
30
|
+
const known = new Set(data.roles.flatMap((r) => r.roles ?? []));
|
|
31
|
+
const list = entry.preferOtherProviderThan;
|
|
32
|
+
if (!Array.isArray(list) || !list.length || !list.every((r) => known.has(r))) {
|
|
33
|
+
errors.push(`${at}.preferOtherProviderThan must list existing role names`);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
if (!Array.isArray(entry.picks) || entry.picks.length === 0) errors.push(`${at}.picks must be non-empty`);
|
|
37
|
+
for (const [j, pick] of (Array.isArray(entry.picks) ? entry.picks : []).entries()) {
|
|
38
|
+
for (const key of ['provider', 'model', 'effort', 'source']) {
|
|
39
|
+
if (!str(pick[key])) errors.push(`${at}.picks[${j}].${key} is required`);
|
|
40
|
+
}
|
|
41
|
+
if (!DATE.test(pick.checkedAt ?? '')) errors.push(`${at}.picks[${j}].checkedAt must be YYYY-MM-DD`);
|
|
42
|
+
if (str(pick.source) && !/^https?:\/\//.test(pick.source)) errors.push(`${at}.picks[${j}].source must be a URL`);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
const MODES = ['none', 'focused', 'balanced', 'swarm'];
|
|
46
|
+
const knownRoles = new Set((Array.isArray(data.roles) ? data.roles : []).flatMap((r) => r.roles ?? []));
|
|
47
|
+
const roleList = (v) => Array.isArray(v) && v.every((r) => knownRoles.has(r));
|
|
48
|
+
const d = data.delegation;
|
|
49
|
+
if (!d || typeof d !== 'object') errors.push('delegation is required');
|
|
50
|
+
else {
|
|
51
|
+
if (!roleList(d.baseRoster) || !d.baseRoster.length) errors.push('delegation.baseRoster must list existing roles');
|
|
52
|
+
const modes = Array.isArray(d.modes) ? d.modes : [];
|
|
53
|
+
if (modes.map((m) => m.mode).join() !== MODES.join())
|
|
54
|
+
errors.push(`delegation.modes must be ${MODES.join(', ')} in order`);
|
|
55
|
+
for (const m of modes) {
|
|
56
|
+
if (!str(m.label) || !roleList(m.agents))
|
|
57
|
+
errors.push(`delegation.modes ${m.mode}: label and existing-role agents required`);
|
|
58
|
+
if (!m.plans || typeof m.plans !== 'object') errors.push(`delegation.modes ${m.mode}: plans required`);
|
|
59
|
+
}
|
|
60
|
+
const lean = d.leanReview;
|
|
61
|
+
if (
|
|
62
|
+
!lean ||
|
|
63
|
+
!roleList(lean.agentsOff) ||
|
|
64
|
+
!roleList(lean.agentsOn) ||
|
|
65
|
+
!lean.fitsModes?.every((x) => MODES.includes(x))
|
|
66
|
+
) {
|
|
67
|
+
errors.push('delegation.leanReview needs valid fitsModes, agentsOff, agentsOn');
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
for (const [i, entry] of (Array.isArray(data.roles) ? data.roles : []).entries()) {
|
|
71
|
+
for (const [j, pick] of (Array.isArray(entry.picks) ? entry.picks : []).entries()) {
|
|
72
|
+
if (pick.plans !== undefined && !(pick.plans && Object.values(pick.plans).every(str))) {
|
|
73
|
+
errors.push(`roles[${i}].picks[${j}].plans must map plan to model string`);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
if (errors.length) {
|
|
78
|
+
console.error(`[model-recommendations] invalid:\n- ${errors.join('\n- ')}`);
|
|
79
|
+
process.exit(1);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
const ageDays = Math.floor((Date.now() - Date.parse(data.asOf)) / 86_400_000);
|
|
83
|
+
if (ageDays > data.staleAfterDays) {
|
|
84
|
+
console.error(
|
|
85
|
+
`[model-recommendations] stale: asOf ${data.asOf} is ${ageDays} days old (limit ${data.staleAfterDays}). Re-check the picks and update the file.`
|
|
86
|
+
);
|
|
87
|
+
process.exit(1);
|
|
88
|
+
}
|
|
89
|
+
console.log(`[model-recommendations] ok (asOf ${data.asOf}, ${ageDays} days old)`);
|
package/scripts/gate-local.mjs
CHANGED
|
@@ -32,6 +32,13 @@ if (failedPreChecks.length) {
|
|
|
32
32
|
process.exit(1);
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
+
// Warning-level: a stale model list never blocks the gate.
|
|
36
|
+
if (
|
|
37
|
+
spawnSync('node scripts/check-model-recommendations.mjs', { cwd: root, stdio: 'inherit', shell: true }).status !== 0
|
|
38
|
+
) {
|
|
39
|
+
console.warn('[gate:local] warning: model recommendations stale or invalid (not blocking)');
|
|
40
|
+
}
|
|
41
|
+
|
|
35
42
|
const build = spawnSync('npm run build:spawn:test', { cwd: root, stdio: 'inherit', shell: true });
|
|
36
43
|
if (build.status !== 0) {
|
|
37
44
|
console.error('[gate:local] build:spawn:test failed');
|
|
@@ -2,9 +2,9 @@ import { availableParallelism } from 'node:os';
|
|
|
2
2
|
import { testConcurrencyArg } from './run-node-tests.mjs';
|
|
3
3
|
|
|
4
4
|
// A local gate has one budget, not a full machine's worth of workers per lane.
|
|
5
|
-
// Six is the interactive-desktop default; explicit
|
|
5
|
+
// Six is the interactive-desktop default; an explicit budget still wins.
|
|
6
6
|
export function gateTestBudget(env = process.env, parallelism = availableParallelism()) {
|
|
7
|
-
const argument = testConcurrencyArg([], env
|
|
7
|
+
const argument = testConcurrencyArg([], env);
|
|
8
8
|
return argument ? Number(argument.split('=')[1]) : Math.min(6, parallelism);
|
|
9
9
|
}
|
|
10
10
|
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
// Side-effect import for tests that touch Mixdog user data. Import it FIRST (ESM
|
|
2
|
+
// evaluates imports in order) so the data/home dirs resolve to a scratch dir
|
|
3
|
+
// before any module under test reads them, even under plain `node --test` from a
|
|
4
|
+
// shell that exports the signed-in profile's MIXDOG_DATA_DIR.
|
|
5
|
+
import { mkdtempSync, rmSync } from 'node:fs';
|
|
6
|
+
import { tmpdir } from 'node:os';
|
|
7
|
+
import { join } from 'node:path';
|
|
8
|
+
|
|
9
|
+
const root = mkdtempSync(join(tmpdir(), 'mixdog-test-profile-'));
|
|
10
|
+
process.env.MIXDOG_DATA_DIR = join(root, 'data');
|
|
11
|
+
process.env.MIXDOG_HOME = join(root, 'home');
|
|
12
|
+
process.on('exit', () => {
|
|
13
|
+
try {
|
|
14
|
+
rmSync(root, { recursive: true, force: true });
|
|
15
|
+
} catch {}
|
|
16
|
+
});
|
|
@@ -67,22 +67,13 @@ const positiveInt = (value) => {
|
|
|
67
67
|
return Number.isInteger(n) && n > 0 ? n : null;
|
|
68
68
|
};
|
|
69
69
|
|
|
70
|
-
// `node --test` defaults to availableParallelism()-1 file processes.
|
|
71
|
-
//
|
|
72
|
-
//
|
|
73
|
-
|
|
74
|
-
// below 4. Dividing the cores by the cap left a 20-core machine with 2 file
|
|
75
|
-
// processes and tripled the wall time (desktop 289 s vs 63.5 s). Precedence: an
|
|
76
|
-
// explicit --test-concurrency flag, then MIXDOG_TEST_CONCURRENCY, then the
|
|
77
|
-
// capped share; with none of them Node's default (cores-1) stands.
|
|
78
|
-
// Returns the flag to add, or null.
|
|
79
|
-
export function testConcurrencyArg(nodeArgs, env = process.env, parallelism = availableParallelism()) {
|
|
70
|
+
// `node --test` defaults to availableParallelism()-1 file processes. Precedence:
|
|
71
|
+
// an explicit --test-concurrency flag, then MIXDOG_TEST_CONCURRENCY; with
|
|
72
|
+
// neither, Node's default (cores-1) stands. Returns the flag to add, or null.
|
|
73
|
+
export function testConcurrencyArg(nodeArgs, env = process.env) {
|
|
80
74
|
if (nodeArgs.some(concurrencyFlag)) return null;
|
|
81
75
|
const explicit = positiveInt(env.MIXDOG_TEST_CONCURRENCY);
|
|
82
|
-
|
|
83
|
-
const cap = positiveInt(env.MIXDOG_SHELL_CONCURRENCY_CAP);
|
|
84
|
-
if (!cap) return null;
|
|
85
|
-
return `--test-concurrency=${Math.max(4, parallelism - cap)}`;
|
|
76
|
+
return explicit ? `--test-concurrency=${explicit}` : null;
|
|
86
77
|
}
|
|
87
78
|
|
|
88
79
|
// Every test file process is bounded: node:test fails a file (and records it
|
|
@@ -289,15 +289,15 @@ const routes = [
|
|
|
289
289
|
['openrouter-deepseek', 'openrouter', 'deepseek/deepseek-v4.1-flash', ['low', 'max']],
|
|
290
290
|
['deepseek', 'deepseek', 'deepseek-flash', ['low', 'max']],
|
|
291
291
|
['deepseek-pro', 'deepseek', 'deepseek-v4-pro', ['high']],
|
|
292
|
-
['opencode-go-gemini', 'opencode-go', 'gemini-4-argon-contributor', ['low', 'high']],
|
|
293
|
-
['opencode-go-deepseek', 'opencode-go', 'deepseek-v4.1-flash', ['low', 'max']],
|
|
294
|
-
['opencode-go-claude', 'opencode-go', 'claude-haiku-5-5', ['low', 'max']],
|
|
295
|
-
['opencode-go-gpt', 'opencode-go', 'gpt-6-luna', ['none', 'xhigh']],
|
|
296
|
-
['opencode-go-glm', 'opencode-go', 'glm-5.3-flash', ['low', 'max']],
|
|
297
|
-
['opencode-go-qwen', 'opencode-go', 'qwen3.8-flash', ['low', 'xhigh']],
|
|
298
|
-
['opencode-go-kimi', 'opencode-go', 'kimi-k3', ['max']],
|
|
299
|
-
['opencode-go-minimax', 'opencode-go', 'minimax-m3', [null]],
|
|
300
|
-
['opencode-go-grok', 'opencode-go', 'grok-4.7', ['low']],
|
|
292
|
+
['opencode-go-gemini', 'opencode-go-oauth', 'gemini-4-argon-contributor', ['low', 'high']],
|
|
293
|
+
['opencode-go-deepseek', 'opencode-go-oauth', 'deepseek-v4.1-flash', ['low', 'max']],
|
|
294
|
+
['opencode-go-claude', 'opencode-go-oauth', 'claude-haiku-5-5', ['low', 'max']],
|
|
295
|
+
['opencode-go-gpt', 'opencode-go-oauth', 'gpt-6-luna', ['none', 'xhigh']],
|
|
296
|
+
['opencode-go-glm', 'opencode-go-oauth', 'glm-5.3-flash', ['low', 'max']],
|
|
297
|
+
['opencode-go-qwen', 'opencode-go-oauth', 'qwen3.8-flash', ['low', 'xhigh']],
|
|
298
|
+
['opencode-go-kimi', 'opencode-go-oauth', 'kimi-k3', ['max']],
|
|
299
|
+
['opencode-go-minimax', 'opencode-go-oauth', 'minimax-m3', [null]],
|
|
300
|
+
['opencode-go-grok', 'opencode-go-oauth', 'grok-4.7', ['low']],
|
|
301
301
|
['anthropic-api', 'anthropic', 'claude-haiku-5-5', ['low', 'max']],
|
|
302
302
|
['gemini-api', 'gemini', 'gemini-3.5-flash-lite', ['minimal', 'high']],
|
|
303
303
|
['grok-oauth', 'grok-oauth', 'grok-4.7', ['low', 'xhigh']],
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: Advisor
|
|
3
|
-
description: "Use
|
|
3
|
+
description: "Use when the approach is genuinely unclear, when errors recur or results stop converging, before changing approach, or when the user asks for a second opinion. Never for final verification."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
Independent technical advisor.
|
|
7
7
|
|
|
8
|
-
You are consulted at decision points:
|
|
9
|
-
|
|
8
|
+
You are consulted at decision points: when the approach is genuinely
|
|
9
|
+
unclear, when errors recur or results stop converging, before a
|
|
10
10
|
change of approach, and when the user asks for a second opinion or
|
|
11
11
|
cross-validation. You do not see the Lead's conversation; work from the brief
|
|
12
12
|
and verify its evidence against the source yourself.
|
|
@@ -31,7 +31,7 @@ blockers rather than inventing certainty.
|
|
|
31
31
|
|
|
32
32
|
Do not implement fixes, modify project files or settings, stage or commit
|
|
33
33
|
changes, deploy, or delegate work. Keep checks non-destructive and isolate any
|
|
34
|
-
test fixtures from existing user data.
|
|
34
|
+
test fixtures from existing user data. Final verification is not yours; never take it over.
|
|
35
35
|
|
|
36
36
|
Lead with the recommendation, then actionable findings ordered by severity, with
|
|
37
37
|
evidence located by project-relative path and function or symbol. If no issue
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"id": "advisor",
|
|
3
3
|
"name": "Advisor",
|
|
4
|
-
"description": "Use
|
|
4
|
+
"description": "Use when the approach is genuinely unclear, when errors recur or results stop converging, before changing approach, or when the user asks for a second opinion. Never for final verification.",
|
|
5
5
|
"entry": "AGENT.md"
|
|
6
6
|
}
|
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: Reviewer
|
|
3
|
-
description: Use
|
|
3
|
+
description: Use once at the end, as the single final independent check of non-trivial work, never a second full pass over work already reviewed; otherwise Lead's own review suffices.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
Independent final-check review agent.
|
|
7
7
|
|
|
8
8
|
You are called only at the end, after the deliverable is written and the
|
|
9
|
-
Lead's own verification has run, before completion is reported.
|
|
9
|
+
Lead's own verification has run, before completion is reported. You run once.
|
|
10
|
+
When the work was already reviewed scope by scope, check the integrated
|
|
11
|
+
result and its highest-risk changes instead of repeating those reviews.
|
|
10
12
|
|
|
11
13
|
Inspect the diff, affected boundaries, existing tests, and stated acceptance
|
|
12
|
-
criteria with independent judgment.
|
|
13
|
-
runtime checks and actively seek regressions, unsupported assumptions, security
|
|
14
|
+
criteria with independent judgment. Reuse still-valid passing results; rerun failed or invalidated checks. Actively seek regressions, unsupported assumptions, security
|
|
14
15
|
risks, and counterexamples.
|
|
15
16
|
|
|
16
17
|
Do not modify files or reimplement the change. Result lists actionable
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"id": "reviewer",
|
|
3
3
|
"name": "Reviewer",
|
|
4
|
-
"description": "Use
|
|
4
|
+
"description": "Use once at the end, as the single final independent check of non-trivial work, never a second full pass over work already reviewed; otherwise Lead's own review suffices.",
|
|
5
5
|
"entry": "AGENT.md"
|
|
6
6
|
}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
"agents": {
|
|
3
3
|
"advisor": [
|
|
4
4
|
"6bd0318995f70547c162efda92795e79",
|
|
5
|
+
"895c5f4311dcbebc0c8756c9ec61a02a",
|
|
5
6
|
"d3b4a7926c9484833fe8ddba70260f9d"
|
|
6
7
|
],
|
|
7
8
|
"debugger": [
|
|
@@ -28,6 +29,8 @@
|
|
|
28
29
|
"reviewer": [
|
|
29
30
|
"07643b62440d3eba29b7360b8a33f09f",
|
|
30
31
|
"0d45f8d9a2a67373462840e8bf930694",
|
|
32
|
+
"1593af04edd24cdd5f05fe89a7386407",
|
|
33
|
+
"1a8115cec6ae4414f8637b1765948cdd",
|
|
31
34
|
"25b44b46269490e26ca31c1852925171",
|
|
32
35
|
"a60ea68f9287d55489e92e5450432f62",
|
|
33
36
|
"a61cb4557def4e7ed647d4bdacbb72e4",
|
|
@@ -62,6 +65,7 @@
|
|
|
62
65
|
"08d03484742e51d90961bcc3efe0acfa",
|
|
63
66
|
"0afe17998c52bf57dcb8f3e8ebcec26f",
|
|
64
67
|
"33205f4956124396b7e80882fbbedd18",
|
|
68
|
+
"37872608fe389a263c384298271aecfc",
|
|
65
69
|
"4aaa7fa1f071c092733fda61380822c9",
|
|
66
70
|
"4e133eaf5f209ea9c5eda74fe8d810e9",
|
|
67
71
|
"56355187d05762ef50579d6285636c71",
|
|
@@ -105,6 +109,7 @@
|
|
|
105
109
|
"outputStyles": {
|
|
106
110
|
"common.md": [
|
|
107
111
|
"2abd510eaeb6c83702b97a0ce215d348",
|
|
112
|
+
"3f5915d27c7659ad82cdbda064acfbfa",
|
|
108
113
|
"4e6134d60ee5c54c2888e874653bcdad",
|
|
109
114
|
"4ecd89b0c07ad8a81aa1f84882cf1b00",
|
|
110
115
|
"899529696b7d6d3373ae83a76976ab48",
|
|
@@ -123,6 +128,7 @@
|
|
|
123
128
|
"822498e7a6f11fa724fbf56a3498b21d",
|
|
124
129
|
"9b6b57fa5fc86b445b47b743d5249335",
|
|
125
130
|
"cf4dc49981a68a7b34990e6ba740e35b",
|
|
131
|
+
"d95e65d47329a3408fc009104c286036",
|
|
126
132
|
"f768eba35712c51ed741782cc91f23f3",
|
|
127
133
|
"f7ec059f73568252528a6a343f4e14d9"
|
|
128
134
|
],
|
|
@@ -142,6 +148,7 @@
|
|
|
142
148
|
"05778bbf2481be70d4501543af6a7f44",
|
|
143
149
|
"0beee3927bc1b4c7ccf3f2cbea50d1c4",
|
|
144
150
|
"0c11f14731376cc80b0fd63a9dc4d4bf",
|
|
151
|
+
"101171a29ab8f16c465f6a3421ddc6ab",
|
|
145
152
|
"10827dae8146a8e924e85f88a57d1e22",
|
|
146
153
|
"68ab17dda19d69ddba3cb3d4f2c319fa",
|
|
147
154
|
"6b102ba38f0fc9907a8e6a85b7bdc817",
|
|
@@ -151,6 +158,7 @@
|
|
|
151
158
|
"eccd0524091bed441229a75c5eb803ff"
|
|
152
159
|
],
|
|
153
160
|
"simple.md": [
|
|
161
|
+
"07c197ff8f20e24c65d844cd91711216",
|
|
154
162
|
"16d8b5e7757001c614dae62f18f63aa1",
|
|
155
163
|
"56b61d99f3179018f65b530d9b1491d7",
|
|
156
164
|
"6e1749aa66d4416cadad4bcd26eb807a",
|
|
@@ -168,6 +176,8 @@
|
|
|
168
176
|
"browser-use": [
|
|
169
177
|
"00085086a7649ec6631f5cf0a3bbbf60",
|
|
170
178
|
"08eee52328524eb032fd14f342742c41",
|
|
179
|
+
"25a6744e7591ea5597abbda008d123fe",
|
|
180
|
+
"43eeb0b9c5792f08f2223c76846926cb",
|
|
171
181
|
"4ab5316454013712cedb25d9b75f4e43",
|
|
172
182
|
"646365a3f7041a3da3d7d7d896a0c3b6",
|
|
173
183
|
"8766650e61891e910b44bb2591c88f48",
|
|
@@ -204,6 +214,7 @@
|
|
|
204
214
|
"398b50b687206544149feeb0a5b02c09",
|
|
205
215
|
"3f8b7b4cd798dba866eccd7d09c76248",
|
|
206
216
|
"733d30c3ca6745c96a69f7e237f3d8c0",
|
|
217
|
+
"75bdf20949f1e125f82b51ebca6a2ab4",
|
|
207
218
|
"7b9ce58540ed4609f290dc981a7e1719",
|
|
208
219
|
"8236330f56f27dd283bda6da1239285d",
|
|
209
220
|
"8bc93c9320b83de81baa8cf242af5c0b",
|
|
@@ -271,6 +282,7 @@
|
|
|
271
282
|
"bdf26b0f2ac9f3126bfa74ced15a7d73"
|
|
272
283
|
],
|
|
273
284
|
"memory-management": [
|
|
285
|
+
"1533630b81ebace2bc9ece6fda02bb11",
|
|
274
286
|
"261a34fce0fb0f73abfd1b1e2add3602",
|
|
275
287
|
"356bf57f7087fe2c40c5dcd99622c3e9",
|
|
276
288
|
"a8ffffd02f438cdd6005e09cfe6cf42f",
|
|
@@ -356,10 +368,14 @@
|
|
|
356
368
|
"e04e6abe9a54e7d07b37f8fc32b5ad30",
|
|
357
369
|
"e38d606df69865a9cf1cc48386535e8b",
|
|
358
370
|
"e5ac8ea16905815e36e88d883195a617",
|
|
371
|
+
"e848b92962dee0d4c3d7e3721d2e3294",
|
|
359
372
|
"e9b89f9193bd9d9c80ba6cf4419e58ff",
|
|
360
373
|
"feabe973080344c4d52787a96043ab68",
|
|
361
374
|
"ff18ac1a9f5961925aec27ffb870bae0"
|
|
362
375
|
],
|
|
376
|
+
"setup-guide": [
|
|
377
|
+
"633e15b84dbe22f2b578b67cc35853d4"
|
|
378
|
+
],
|
|
363
379
|
"skill-creator": [
|
|
364
380
|
"020817866da73a69544ba35086bdcd5f",
|
|
365
381
|
"2f3f44805618783fbcca9a56652a5e91",
|
|
@@ -379,6 +395,7 @@
|
|
|
379
395
|
"fe0512acbb2fc8f80c5961b9f44aa5e2"
|
|
380
396
|
],
|
|
381
397
|
"visualize": [
|
|
398
|
+
"8320fedd9dd745a332621c325a8bf355",
|
|
382
399
|
"aa3531bfc4fd6ec3820493d0c190cc75",
|
|
383
400
|
"f65924f0691284ad31000469a9855b62"
|
|
384
401
|
],
|
|
@@ -192,7 +192,8 @@ not as two blocks joined.
|
|
|
192
192
|
- **Screen is the deliverable / user continues** — leave the relevant foreground
|
|
193
193
|
page visible using `open` with its `tab`; clean up only disposable support
|
|
194
194
|
pages. A CAPTCHA, 2FA, or identity check is a handoff, not completion: retain
|
|
195
|
-
that exact page with `open
|
|
195
|
+
that exact page with `open`. The Lead may wait; an agent preserves the
|
|
196
|
+
state, reports the required user action, and stops.
|
|
196
197
|
- Preserve pre-existing user tabs, unfinished forms, and pages needed for
|
|
197
198
|
recovery. If ownership or disposability is unclear, preserve the page;
|
|
198
199
|
never clear cookies/storage as cleanup. Do not hide a screen the user asked
|
|
@@ -315,9 +316,14 @@ in the page instead of retrying the same `navigate`.
|
|
|
315
316
|
- A refused or restricted action stays refused; do not reach the same effect
|
|
316
317
|
through another page, tool, or `evaluate`.
|
|
317
318
|
- Tool-side confirmation does not replace the user's approved scope.
|
|
319
|
+
Submitting a form (`submit`, Enter) or clicking a send/post control asks the
|
|
320
|
+
user once in the desktop app; a denial dispatches nothing.
|
|
318
321
|
`MIXDOG_BROWSER_CONFIRM_ACTIONS` and
|
|
319
322
|
`MIXDOG_BROWSER_DENY_ACTIONS` optionally name comma-separated public actions
|
|
320
323
|
(or `*`) the desktop app confirms once or refuses; denial takes precedence.
|
|
324
|
+
- For a password or token, focus the field and call `ask_user` with
|
|
325
|
+
`handoff: { kind: 'secret', surface: 'browser' }`; for sign-in, CAPTCHA or
|
|
326
|
+
2FA use `kind: 'takeover'` with instructions. Never ask for secrets in chat.
|
|
321
327
|
- Cookie listings never expose values. Registered secret values remain
|
|
322
328
|
redacted across redirects. A blocked result is not success; an inconclusive
|
|
323
329
|
postcondition is not proof.
|
|
@@ -125,7 +125,9 @@ GNOME with Mixdog's own shell extension, which the app sets up); prefer accessib
|
|
|
125
125
|
the user. If target-local release remains unconfirmed, the user must
|
|
126
126
|
inspect/recover that window; restarting the host alone does not prove
|
|
127
127
|
release. Obtain a new observation after an interruption.
|
|
128
|
-
|
|
128
|
+
The Lead may use `wait_for_user` to keep the task waiting without sending
|
|
129
|
+
input; an agent preserves the state, reports the required user action, and
|
|
130
|
+
stops. Never
|
|
129
131
|
operate Resume, Stop or the recovery controls, or change the idle policy, on
|
|
130
132
|
the user's behalf.
|
|
131
133
|
While paused, only `list`, `diagnose` and `wait_for_user` are available.
|
|
@@ -32,7 +32,10 @@ as preferences; automatic history already preserves them.
|
|
|
32
32
|
|
|
33
33
|
Omit `project_id` for the current Project, use `common` for shared memory,
|
|
34
34
|
or an explicit Project slug for another Project. The `*` scope is read-only.
|
|
35
|
-
|
|
35
|
+
`agent_id: "self"` selects your own agent memory instead: only you read it,
|
|
36
|
+
and it is the only pool an unattended run (schedule, webhook, group room,
|
|
37
|
+
delegated agent) may write; common and Project memory change only while the
|
|
38
|
+
user is chatting. Confirm the target before destructive changes.
|
|
36
39
|
|
|
37
40
|
Memory indices start at 1 independently in common memory and each Project.
|
|
38
41
|
Deletion and movement compact the affected scope's indices; new memories
|
|
@@ -52,6 +52,7 @@ Read this when choosing a `setup` mutation.
|
|
|
52
52
|
| Remove stored provider authentication (one OAuth account at a time) | `forget_provider_auth` |
|
|
53
53
|
| Select, rename, or reorder OAuth accounts, set the switching policy, or allow paid credits | `set_provider_account` |
|
|
54
54
|
| Developer options such as risk-gated OAuth providers | `set_developer_option` |
|
|
55
|
+
| Connect a catalog service (Slack, Notion, GitHub, …) for the user: shows a one-click connect card | `connect_connector` |
|
|
55
56
|
| Add an MCP server | `add_mcp_server` |
|
|
56
57
|
| Edit or rename an MCP server | `save_mcp_server` |
|
|
57
58
|
| Remove an MCP server | `remove_mcp_server` |
|
|
@@ -71,9 +72,10 @@ Read this when choosing a `setup` mutation.
|
|
|
71
72
|
| Create a workflow, agent, or machine-global user skill | `create_definition` |
|
|
72
73
|
| Partially edit a workflow, agent, or machine-global user skill | `save_definition` |
|
|
73
74
|
| Delete a user workflow/agent definition or override | `delete_definition` |
|
|
74
|
-
| Save a schedule/webhook; explicitly overwrite to edit | `save_automation` |
|
|
75
|
+
| Save a schedule/webhook; explicitly overwrite to edit. A new one belongs to the calling thread's agent (Mixy = `lead`); `entry.owner` moves it to another agent | `save_automation` |
|
|
75
76
|
| Delete an existing schedule/webhook | `delete_automation` |
|
|
76
|
-
| Enable/disable a schedule/webhook | `set_automation_enabled` |
|
|
77
|
+
| Enable/disable (pause/resume) a schedule/webhook | `set_automation_enabled` |
|
|
78
|
+
| Run a schedule once now, or re-run a webhook on its latest received payload; the result posts into the owning agent's thread | `run_automation` |
|
|
77
79
|
| Webhook listener enabled state, port, or domain | `set_webhook_config` |
|
|
78
80
|
| Desktop keep-awake, run in background after window close, turn-completion notifications, notification volume (Windows), usage pin, usage rail short + long bars, or Computer observe-only state | `set_desktop_settings` |
|
|
79
81
|
| Desktop theme, display language, side panels, markdown default view, link previews, or tool activity expansion | `set_appearance` |
|
|
@@ -235,6 +237,12 @@ markers are read with `status desktop`.
|
|
|
235
237
|
`add_mcp_server`, `save_mcp_server`, and `remove_mcp_server` refuse plugin
|
|
236
238
|
servers. Declaration problems and naming conflicts are reported as
|
|
237
239
|
`declarationErrors` and `warnings`.
|
|
240
|
+
- `connect_connector` is how to connect a catalog service the user asks for
|
|
241
|
+
("Slack 연결해 줘"): it leaves a connect card in the conversation whose
|
|
242
|
+
press runs the browser sign-in (or the key sheet) in Desktop; nothing
|
|
243
|
+
connects until the user presses it, so tell them to press the card and read
|
|
244
|
+
`status mcp` afterwards. `add_mcp_server` with the service URL is not the
|
|
245
|
+
sign-in flow; never use it for a catalog service.
|
|
238
246
|
- `enable_plugin_mcp` turns every server the plugin declares back on and
|
|
239
247
|
reconnects them; a disabled plugin stays disabled, and it fails for a plugin
|
|
240
248
|
that declares no MCP servers.
|
|
@@ -248,8 +256,7 @@ markers are read with `status desktop`.
|
|
|
248
256
|
- A Project removal unregisters it only.
|
|
249
257
|
- Inspect schedules/webhooks before editing. `overwrite:true` updates an
|
|
250
258
|
existing named entry and preserves omitted fields; a new schedule needs
|
|
251
|
-
instructions
|
|
252
|
-
`time` or one-shot `at`.
|
|
259
|
+
instructions and exactly one of cron `time` or one-shot `at`.
|
|
253
260
|
- Attachment contents and webhook signing secrets are not returned by setup.
|
|
254
261
|
Omitted attachments and existing webhook secrets are preserved. A saved
|
|
255
262
|
secret is never shown again: tell the user to open the Webhooks panel, edit
|