mixdog 1.3.4 → 1.4.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/oh-my-pi-MIT.txt +23 -0
- package/NOTICE.md +17 -2
- package/README.md +11 -0
- package/package.json +3 -11
- package/scripts/daemon-stub.mjs +1 -1
- package/scripts/embed-google-oauth-client.mjs +49 -0
- package/scripts/gate-local.mjs +4 -2
- package/scripts/lib/test-spawn-ledger.mjs +46 -1
- package/scripts/native-release-status.mjs +2 -2
- package/scripts/recall-history-cases.json +1 -1
- package/scripts/suite-health.mjs +10 -1
- package/scripts/test.mjs +12 -11
- package/src/agents/reviewer/AGENT.md +7 -11
- package/src/agents/reviewer/agent.json +1 -1
- package/src/defaults/shipped-history.json +25 -1
- package/src/defaults/skills/browser-use/SKILL.md +77 -17
- package/src/defaults/skills/code-tidy/SKILL.md +142 -270
- package/src/defaults/skills/code-tidy/references/agent-cleanup.md +4 -4
- package/src/defaults/skills/code-tidy/references/cleanup-report.md +31 -76
- package/src/defaults/skills/code-tidy/references/dead-code.md +6 -12
- package/src/defaults/skills/computer-use/SKILL.md +33 -9
- package/src/defaults/skills/setup/SKILL.md +29 -2
- package/src/defaults/skills/setup/references/actions.md +117 -28
- package/src/defaults/skills/setup/references/surfaces.md +77 -35
- package/src/defaults/skills/setup-guide/SKILL.md +3 -3
- package/src/defaults/skills/visualize/SKILL.md +2 -1
- package/src/lib/keychain-cjs.cjs +359 -29
- package/src/lib/rules-builder.cjs +10 -8
- package/src/rules/agent/AGENT.md +6 -6
- package/src/rules/agent-mode/AGENT_MODE.md +10 -2
- package/src/rules/agent-mode/MIXY.md +12 -0
- package/src/rules/lead/LEAD.md +18 -20
- package/src/rules/shared/05-tool-calls.md +5 -6
- package/src/rules/shared/10-tool-workflow.md +2 -0
- package/src/rules/shared/60-verification.md +7 -5
- package/src/runtime/agent/orchestrator/agent-runtime/cache-strategy.mjs +2 -3
- package/src/runtime/agent/orchestrator/agent-runtime/heartbeat-completion.mjs +193 -0
- package/src/runtime/agent/orchestrator/agent-runtime/title-completion.mjs +3 -1
- package/src/runtime/agent/orchestrator/agent-trace-format.mjs +3 -1
- package/src/runtime/agent/orchestrator/config.mjs +34 -0
- package/src/runtime/agent/orchestrator/context/collect.mjs +3 -0
- package/src/runtime/agent/orchestrator/context/deferred-tools.mjs +72 -67
- package/src/runtime/agent/orchestrator/context/skill-catalog.mjs +54 -1
- package/src/runtime/agent/orchestrator/mcp/agent-connectors.mjs +3 -3
- package/src/runtime/agent/orchestrator/mcp/client-transport.mjs +177 -73
- package/src/runtime/agent/orchestrator/mcp/client.mjs +25 -2
- package/src/runtime/agent/orchestrator/mcp/oauth-callback.mjs +31 -2
- package/src/runtime/agent/orchestrator/mcp/oauth-client.mjs +16 -3
- package/src/runtime/agent/orchestrator/mcp/oauth-login.mjs +42 -7
- package/src/runtime/agent/orchestrator/mcp/oauth-provider.mjs +21 -2
- package/src/runtime/agent/orchestrator/mcp/oauth-shared.mjs +23 -0
- package/src/runtime/agent/orchestrator/mcp/oauth.mjs +11 -1
- package/src/runtime/agent/orchestrator/providers/account-pool.mjs +230 -137
- package/src/runtime/agent/orchestrator/providers/admission-scheduler.mjs +64 -7
- package/src/runtime/agent/orchestrator/providers/anthropic-api-request.mjs +18 -5
- package/src/runtime/agent/orchestrator/providers/anthropic-cache-warm.mjs +165 -0
- package/src/runtime/agent/orchestrator/providers/anthropic-oauth-client-version.mjs +1 -1
- package/src/runtime/agent/orchestrator/providers/anthropic-oauth-credentials.mjs +4 -1
- package/src/runtime/agent/orchestrator/providers/anthropic-oauth-request/gzip-post.mjs +14 -14
- package/src/runtime/agent/orchestrator/providers/anthropic-oauth.mjs +160 -69
- package/src/runtime/agent/orchestrator/providers/anthropic-overload-fallback.mjs +25 -3
- package/src/runtime/agent/orchestrator/providers/anthropic-sse.mjs +64 -33
- package/src/runtime/agent/orchestrator/providers/anthropic.mjs +135 -87
- package/src/runtime/agent/orchestrator/providers/antigravity-oauth-catalog.mjs +52 -8
- package/src/runtime/agent/orchestrator/providers/antigravity-oauth.mjs +10 -1
- package/src/runtime/agent/orchestrator/providers/antigravity-request.mjs +22 -6
- package/src/runtime/agent/orchestrator/providers/antigravity-response.mjs +15 -4
- package/src/runtime/agent/orchestrator/providers/antigravity-stream.mjs +17 -2
- package/src/runtime/agent/orchestrator/providers/antigravity-transport.mjs +142 -104
- package/src/runtime/agent/orchestrator/providers/cache-warm-admission.mjs +90 -0
- package/src/runtime/agent/orchestrator/providers/codex-client-meta.mjs +1 -1
- package/src/runtime/agent/orchestrator/providers/cursor-wire-normalization.mjs +10 -4
- package/src/runtime/agent/orchestrator/providers/cursor-wire-protobuf.mjs +10 -217
- package/src/runtime/agent/orchestrator/providers/cursor-wire-transport.mjs +25 -9
- package/src/runtime/agent/orchestrator/providers/cursor.mjs +22 -6
- package/src/runtime/agent/orchestrator/providers/devin-auth.mjs +409 -0
- package/src/runtime/agent/orchestrator/providers/devin-wire-families.mjs +187 -0
- package/src/runtime/agent/orchestrator/providers/devin-wire-identity.mjs +342 -0
- package/src/runtime/agent/orchestrator/providers/devin-wire-models.mjs +541 -0
- package/src/runtime/agent/orchestrator/providers/devin-wire-protobuf.mjs +305 -0
- package/src/runtime/agent/orchestrator/providers/devin-wire-request.mjs +558 -0
- package/src/runtime/agent/orchestrator/providers/devin-wire-schema.mjs +880 -0
- package/src/runtime/agent/orchestrator/providers/devin-wire-session.mjs +190 -0
- package/src/runtime/agent/orchestrator/providers/devin-wire-tool-args.mjs +351 -0
- package/src/runtime/agent/orchestrator/providers/devin-wire-transport.mjs +560 -0
- package/src/runtime/agent/orchestrator/providers/devin.mjs +491 -0
- package/src/runtime/agent/orchestrator/providers/effort-configuration.mjs +3 -0
- package/src/runtime/agent/orchestrator/providers/gemini-output-limit.mjs +46 -0
- package/src/runtime/agent/orchestrator/providers/gemini-reasoning-relay.mjs +30 -0
- package/src/runtime/agent/orchestrator/providers/gemini-request-body.mjs +7 -11
- package/src/runtime/agent/orchestrator/providers/gemini-retry-policy.mjs +61 -22
- package/src/runtime/agent/orchestrator/providers/gemini-sdk-request.mjs +1 -0
- package/src/runtime/agent/orchestrator/providers/gemini-stream.mjs +71 -4
- package/src/runtime/agent/orchestrator/providers/gemini.mjs +25 -2
- package/src/runtime/agent/orchestrator/providers/grok-client-version.mjs +1 -1
- package/src/runtime/agent/orchestrator/providers/lib/anthropic-request-utils.mjs +96 -5
- package/src/runtime/agent/orchestrator/providers/lib/oauth-token-utils.mjs +17 -3
- package/src/runtime/agent/orchestrator/providers/lib/tail-reminder-split.mjs +23 -5
- package/src/runtime/agent/orchestrator/providers/media-normalization.mjs +52 -10
- package/src/runtime/agent/orchestrator/providers/model-proxy-channel.d.mts +8 -1
- package/src/runtime/agent/orchestrator/providers/model-proxy-channel.mjs +1 -0
- package/src/runtime/agent/orchestrator/providers/npm-cli-version.mjs +11 -3
- package/src/runtime/agent/orchestrator/providers/oauth-credential-probes.mjs +19 -1
- package/src/runtime/agent/orchestrator/providers/oauth-usage.mjs +39 -3
- 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-error-contract.mjs +6 -1
- package/src/runtime/agent/orchestrator/providers/openai-oauth-tokens.mjs +10 -9
- package/src/runtime/agent/orchestrator/providers/openai-ws-send/send-context.mjs +22 -3
- package/src/runtime/agent/orchestrator/providers/openai-ws-send-attempts/attempt-context.mjs +43 -5
- package/src/runtime/agent/orchestrator/providers/openai-ws-send-attempts/handshake-failure.mjs +3 -1
- package/src/runtime/agent/orchestrator/providers/openai-ws-send-attempts/stream-failure.mjs +6 -3
- package/src/runtime/agent/orchestrator/providers/opencode-go-gemini.mjs +1 -0
- package/src/runtime/agent/orchestrator/providers/provider-availability.mjs +19 -0
- package/src/runtime/agent/orchestrator/providers/provider-error-kind.mjs +65 -1
- package/src/runtime/agent/orchestrator/providers/quota-reading.mjs +38 -12
- package/src/runtime/agent/orchestrator/providers/registry.mjs +43 -3
- package/src/runtime/agent/orchestrator/providers/retry-executor.mjs +39 -7
- package/src/runtime/agent/orchestrator/providers/statusline-route-meta.mjs +6 -0
- package/src/runtime/agent/orchestrator/providers/wire-protobuf-codec.mjs +368 -0
- package/src/runtime/agent/orchestrator/runtime-core/ask-user-tool-defs.mjs +12 -7
- package/src/runtime/agent/orchestrator/runtime-core/builtin-features.mjs +2 -0
- package/src/runtime/agent/orchestrator/runtime-core/compaction-config-keys.mjs +62 -0
- package/src/runtime/agent/orchestrator/runtime-core/config-helpers.mjs +37 -16
- package/src/runtime/agent/orchestrator/runtime-core/deferred-tool-delta.mjs +100 -23
- package/src/runtime/agent/orchestrator/runtime-core/orchestration.mjs +1 -1
- package/src/runtime/agent/orchestrator/runtime-core/reaction-tool-defs.mjs +133 -0
- package/src/runtime/agent/orchestrator/runtime-core/session-text.mjs +2 -0
- package/src/runtime/agent/orchestrator/runtime-core/tool-bridge.mjs +19 -4
- package/src/runtime/agent/orchestrator/runtime-core/tool-catalog-data.mjs +3 -0
- package/src/runtime/agent/orchestrator/runtime-core/tool-catalog.mjs +125 -30
- package/src/runtime/agent/orchestrator/runtime-core/tool-defs.mjs +23 -5
- package/src/runtime/agent/orchestrator/runtime-core/tool-profile.mjs +35 -10
- package/src/runtime/agent/orchestrator/runtime-core/workflow/agents.mjs +57 -10
- package/src/runtime/agent/orchestrator/runtime-core/workflow/context.mjs +9 -6
- package/src/runtime/agent/orchestrator/runtime-core/workflow-ids.mjs +1 -1
- package/src/runtime/agent/orchestrator/session/agent-loop.mjs +18 -0
- package/src/runtime/agent/orchestrator/session/agent-room.d.mts +0 -3
- package/src/runtime/agent/orchestrator/session/agent-room.mjs +10 -4
- package/src/runtime/agent/orchestrator/session/cache-warm.mjs +792 -0
- package/src/runtime/agent/orchestrator/session/compact/runner.mjs +148 -25
- package/src/runtime/agent/orchestrator/session/compaction-archive-capture.mjs +475 -58
- package/src/runtime/agent/orchestrator/session/compaction-archive.mjs +42 -17
- package/src/runtime/agent/orchestrator/session/eager-dispatch.mjs +8 -0
- package/src/runtime/agent/orchestrator/session/human-gate/gate.mjs +47 -9
- package/src/runtime/agent/orchestrator/session/human-gate/outbound-policy.mjs +6 -2
- package/src/runtime/agent/orchestrator/session/human-gate/requests.mjs +36 -4
- package/src/runtime/agent/orchestrator/session/human-gate/store.mjs +14 -2
- package/src/runtime/agent/orchestrator/session/loop/assistant-commit.mjs +8 -0
- package/src/runtime/agent/orchestrator/session/loop/compact-policy.mjs +18 -22
- package/src/runtime/agent/orchestrator/session/loop/fresh-context.mjs +32 -3
- package/src/runtime/agent/orchestrator/session/loop/loop-state.mjs +11 -2
- package/src/runtime/agent/orchestrator/session/loop/no-tool-turn/segments.mjs +4 -1
- package/src/runtime/agent/orchestrator/session/loop/no-tool-turn.mjs +51 -3
- package/src/runtime/agent/orchestrator/session/loop/route-fallback.mjs +17 -3
- package/src/runtime/agent/orchestrator/session/loop/send-phase.mjs +10 -2
- package/src/runtime/agent/orchestrator/session/loop/tool-exec/after-hook.mjs +2 -1
- package/src/runtime/agent/orchestrator/session/loop/tool-exec/before-hook.mjs +14 -4
- package/src/runtime/agent/orchestrator/session/loop/tool-exec/dispatch.mjs +16 -2
- package/src/runtime/agent/orchestrator/session/loop/tool-exec.mjs +16 -1
- package/src/runtime/agent/orchestrator/session/loop/tool-exposure-migration.mjs +10 -0
- package/src/runtime/agent/orchestrator/session/loop/tool-helpers.mjs +3 -10
- package/src/runtime/agent/orchestrator/session/loop/tool-phase.mjs +23 -5
- package/src/runtime/agent/orchestrator/session/loop/turn-limits.mjs +60 -0
- package/src/runtime/agent/orchestrator/session/manager/ask-queue.mjs +12 -2
- package/src/runtime/agent/orchestrator/session/manager/ask-session.mjs +19 -1
- package/src/runtime/agent/orchestrator/session/manager/ask-turn-commit.mjs +2 -0
- package/src/runtime/agent/orchestrator/session/manager/ask-turn-execute.mjs +133 -90
- package/src/runtime/agent/orchestrator/session/manager/ask-turn-loop-options.mjs +14 -0
- package/src/runtime/agent/orchestrator/session/manager/ask-turn-settle.mjs +2 -1
- package/src/runtime/agent/orchestrator/session/manager/ask-turn-state.mjs +31 -4
- package/src/runtime/agent/orchestrator/session/manager/compaction-runner.mjs +30 -18
- package/src/runtime/agent/orchestrator/session/manager/owner-route-fallbacks.mjs +23 -13
- package/src/runtime/agent/orchestrator/session/manager/pending-message-entry.mjs +11 -2
- package/src/runtime/agent/orchestrator/session/manager/provider-replay.mjs +13 -0
- package/src/runtime/agent/orchestrator/session/manager/route-fallback-chain.mjs +129 -0
- package/src/runtime/agent/orchestrator/session/manager/runtime-liveness.mjs +20 -2
- package/src/runtime/agent/orchestrator/session/manager/session-close.mjs +2 -0
- package/src/runtime/agent/orchestrator/session/manager/session-lifecycle.mjs +8 -0
- package/src/runtime/agent/orchestrator/session/manager/session-record.mjs +1 -1
- package/src/runtime/agent/orchestrator/session/manager/session-tool-surface.mjs +13 -0
- package/src/runtime/agent/orchestrator/session/manager/tool-resolution.mjs +7 -2
- package/src/runtime/agent/orchestrator/session/manager/turn-checkpoint-journal.mjs +102 -15
- package/src/runtime/agent/orchestrator/session/manager/turn-checkpoint.mjs +18 -5
- package/src/runtime/agent/orchestrator/session/message-ids.mjs +5 -3
- package/src/runtime/agent/orchestrator/session/message-reactions.mjs +89 -0
- package/src/runtime/agent/orchestrator/session/message-reactions.test-support.mjs +75 -0
- package/src/runtime/agent/orchestrator/session/pre-send-compact.mjs +19 -8
- package/src/runtime/agent/orchestrator/session/prompt-cache-idle-gaps.mjs +113 -0
- package/src/runtime/agent/orchestrator/session/prompt-cache-touch-store.mjs +127 -0
- package/src/runtime/agent/orchestrator/session/routine-result.d.mts +0 -2
- package/src/runtime/agent/orchestrator/session/routine-result.mjs +47 -11
- package/src/runtime/agent/orchestrator/session/send-with-recovery.mjs +20 -2
- package/src/runtime/agent/orchestrator/session/sensitive-projection.mjs +100 -0
- package/src/runtime/agent/orchestrator/session/sensitive-values.mjs +257 -0
- package/src/runtime/agent/orchestrator/session/side-question-store.mjs +20 -7
- package/src/runtime/agent/orchestrator/session/side-question.mjs +18 -0
- package/src/runtime/agent/orchestrator/session/skill-update-notice.mjs +60 -0
- package/src/runtime/agent/orchestrator/session/store/live-state.mjs +6 -3
- package/src/runtime/agent/orchestrator/session/store/save-delta.mjs +9 -5
- package/src/runtime/agent/orchestrator/session/store/serialize.mjs +9 -8
- package/src/runtime/agent/orchestrator/session/store/session-persistence-events.mjs +29 -0
- package/src/runtime/agent/orchestrator/session/store-agent-worker-header-cache.mjs +85 -0
- package/src/runtime/agent/orchestrator/session/store-agent-worker-rows.mjs +133 -18
- package/src/runtime/agent/orchestrator/session/store-summary-catalog.mjs +12 -2
- package/src/runtime/agent/orchestrator/session/store-summary-index.mjs +44 -14
- package/src/runtime/agent/orchestrator/session/store-summary-reader.mjs +84 -3
- package/src/runtime/agent/orchestrator/session/stored-attachment-history.mjs +32 -0
- package/src/runtime/agent/orchestrator/session/tail-reminder-rules.mjs +11 -5
- package/src/runtime/agent/orchestrator/session/thinking-binding.mjs +108 -0
- package/src/runtime/agent/orchestrator/session/tool-batch/pre-dispatch.mjs +2 -2
- package/src/runtime/agent/orchestrator/session/tool-batch/record-outcome.mjs +2 -1
- package/src/runtime/agent/orchestrator/session/tool-batch/state.mjs +4 -0
- package/src/runtime/agent/orchestrator/session/tool-batch.mjs +5 -0
- package/src/runtime/agent/orchestrator/session/transcript-restore/restore.mjs +25 -2
- package/src/runtime/agent/orchestrator/session/transcript-restore/tool-result-status.mjs +9 -7
- package/src/runtime/agent/orchestrator/session/transcript-restore/tool-result-text.mjs +2 -2
- package/src/runtime/agent/orchestrator/session/turn-failure.mjs +5 -1
- package/src/runtime/agent/orchestrator/tools/builtin/arg-guard.mjs +5 -2
- package/src/runtime/agent/orchestrator/tools/builtin/bash-tool/backgrounded-result.mjs +12 -1
- package/src/runtime/agent/orchestrator/tools/builtin/bash-tool/misuse-guard.mjs +240 -0
- package/src/runtime/agent/orchestrator/tools/builtin/bash-tool/result-format.mjs +1 -1
- package/src/runtime/agent/orchestrator/tools/builtin/bash-tool/shell-cwd.mjs +38 -0
- package/src/runtime/agent/orchestrator/tools/builtin/bash-tool.mjs +25 -5
- package/src/runtime/agent/orchestrator/tools/builtin/builtin-tools.mjs +65 -7
- package/src/runtime/agent/orchestrator/tools/builtin/shell-runtime.mjs +7 -1
- package/src/runtime/agent/orchestrator/tools/shell-command.mjs +36 -13
- package/src/runtime/browser-bridge/action-schema.mjs +13 -2
- package/src/runtime/browser-bridge/client.mjs +73 -8
- package/src/runtime/browser-bridge/input-fields.mjs +8 -9
- package/src/runtime/browser-bridge/mail-links.mjs +107 -0
- package/src/runtime/browser-bridge/tool-defs.mjs +1 -1
- package/src/runtime/channels/lib/config.mjs +6 -61
- package/src/runtime/channels/lib/crash-log.mjs +1 -1
- package/src/runtime/channels/lib/event-pipeline.mjs +4 -19
- package/src/runtime/channels/lib/event-queue.mjs +3 -18
- package/src/runtime/channels/lib/owned-runtime/automation-services.mjs +2 -2
- package/src/runtime/channels/lib/owned-runtime/automation-start.mjs +3 -4
- package/src/runtime/channels/lib/owned-runtime/config-reload.mjs +4 -59
- package/src/runtime/channels/lib/owned-runtime/owned-start.mjs +33 -115
- package/src/runtime/channels/lib/owned-runtime/owned-stop.mjs +5 -22
- package/src/runtime/channels/lib/owned-runtime/state.mjs +2 -8
- package/src/runtime/channels/lib/owned-runtime.mjs +6 -23
- package/src/runtime/channels/lib/parent-bridge.mjs +2 -2
- package/src/runtime/channels/lib/runtime-paths.mjs +4 -43
- package/src/runtime/channels/lib/schedule-errors.mjs +51 -0
- package/src/runtime/channels/lib/scheduler.mjs +135 -154
- package/src/runtime/channels/lib/schedules-db.mjs +83 -11
- package/src/runtime/channels/lib/status-snapshot.mjs +1 -1
- package/src/runtime/channels/lib/tool-dispatch.mjs +14 -2
- package/src/runtime/channels/lib/webhooks-db.mjs +5 -9
- package/src/runtime/channels/lib/worker-bootstrap.mjs +0 -1
- package/src/runtime/channels/lib/worker-ipc.mjs +0 -1
- package/src/runtime/channels/lib/worker-main.mjs +19 -34
- package/src/runtime/computer-bridge/action-schema.mjs +42 -1
- package/src/runtime/computer-bridge/actions.mjs +9 -1
- package/src/runtime/computer-bridge/client.mjs +180 -8
- package/src/runtime/computer-bridge/core-actions.mjs +2 -2
- package/src/runtime/computer-bridge/error-recovery.mjs +27 -2
- package/src/runtime/computer-bridge/linux-readiness.mjs +65 -23
- package/src/runtime/computer-bridge/pending-continuation.mjs +1 -1
- package/src/runtime/connectors/connector-accounts-mcp.mjs +230 -0
- package/src/runtime/connectors/gmail-app-password.mjs +172 -39
- package/src/runtime/connectors/google-mcp.mjs +10 -12
- package/src/runtime/memory/lib/pg/adapter.mjs +77 -70
- package/src/runtime/memory/lib/pg/supervisor.mjs +24 -12
- package/src/runtime/memory/lib/runtime-fetcher.mjs +23 -5
- package/src/runtime/office/com/com-adapter.mjs +17 -1
- package/src/runtime/office/com/office-com-host.ps1 +51 -1
- package/src/runtime/office/pdf/cfb-fixture.mjs +328 -0
- package/src/runtime/office/pdf/cfb-protection.mjs +311 -0
- package/src/runtime/office/pdf/document-preview.mjs +326 -8
- package/src/runtime/office/pdf/ooxml-crypto.mjs +469 -0
- package/src/runtime/office/pdf/ooxml-key-worker.mjs +14 -0
- package/src/runtime/office/portable/portable-soffice.mjs +45 -5
- package/src/runtime/session-search/session-search-db.mjs +73 -9
- package/src/runtime/session-search/session-search-ingest.mjs +110 -20
- package/src/runtime/shared/abort-race.mjs +89 -0
- package/src/runtime/shared/agent-avatar.d.mts +0 -1
- package/src/runtime/shared/agent-kind.mjs +4 -3
- package/src/runtime/shared/bot-hops.mjs +62 -2
- package/src/runtime/shared/bounded-download.mjs +8 -3
- package/src/runtime/shared/config.mjs +51 -35
- package/src/runtime/shared/connector-accounts.mjs +20 -10
- package/src/runtime/shared/connector-catalog.d.mts +33 -2
- package/src/runtime/shared/connector-catalog.mjs +166 -8
- package/src/runtime/shared/connector-triggers.mjs +22 -19
- package/src/runtime/shared/defaults-separation.mjs +2 -14
- package/src/runtime/shared/delegated-approval-host.mjs +103 -11
- package/src/runtime/shared/developer-options.mjs +32 -1
- package/src/runtime/shared/err-text.mjs +24 -15
- package/src/runtime/shared/file-permissions.d.mts +0 -8
- package/src/runtime/shared/file-permissions.mjs +0 -11
- package/src/runtime/shared/git-direct.test-support.mjs +19 -0
- package/src/runtime/shared/google-oauth-client.generated.json +4 -0
- package/src/runtime/shared/google-oauth-client.mjs +34 -9
- package/src/runtime/shared/heartbeat-interval.d.mts +4 -0
- package/src/runtime/shared/heartbeat-interval.mjs +19 -0
- package/src/runtime/shared/idle-auto-clear-gate.mjs +104 -0
- package/src/runtime/shared/llm/anthropic-betas.mjs +7 -0
- package/src/runtime/shared/llm/anthropic-thinking-contract.mjs +12 -0
- package/src/runtime/shared/llm/provider-catalog-registry.mjs +1 -0
- package/src/runtime/shared/llm/usage-rollup.mjs +1 -1
- package/src/runtime/shared/llm/well-formed.mjs +66 -0
- package/src/runtime/shared/mixy-presence.mjs +22 -0
- package/src/runtime/shared/orchestration.d.mts +2 -0
- package/src/runtime/shared/pg-schema-db.mjs +27 -16
- package/src/runtime/shared/profile-config.cjs +1 -1
- package/src/runtime/shared/prompt-origin.d.mts +4 -0
- package/src/runtime/shared/prompt-origin.mjs +21 -0
- package/src/runtime/shared/provider-accounts.mjs +231 -59
- package/src/runtime/shared/provider-api-key.mjs +19 -8
- package/src/runtime/shared/provider-display-name.mjs +29 -0
- package/src/runtime/shared/provider-timeout-phase.mjs +2 -0
- package/src/runtime/shared/routine-trigger.d.mts +2 -0
- package/src/runtime/shared/routine-trigger.mjs +52 -0
- package/src/runtime/shared/sensitive-path-rules.d.mts +2 -10
- package/src/runtime/shared/sensitive-path-rules.mjs +19 -41
- package/src/runtime/shared/session-activity-signal.mjs +34 -1
- package/src/runtime/shared/session-sidebar-host.d.mts +1 -1
- package/src/runtime/shared/session-sidebar-host.mjs +7 -3
- package/src/runtime/shared/session-turn-prelude.mjs +18 -0
- package/src/runtime/shared/tool-execution-contract.mjs +2 -0
- package/src/runtime/shared/tool-result-summary.mjs +1 -14
- package/src/runtime/shared/transcript-metadata.mjs +38 -0
- package/src/runtime/shared/user-data-guard.mjs +30 -2
- package/src/runtime/shared/worktrees/activity-gate.mjs +12 -5
- package/src/runtime/shared/worktrees/test-support.mjs +9 -4
- package/src/runtime/terminal-bridge/client.mjs +10 -1
- package/src/runtime/visualize-bridge/client.mjs +27 -8
- package/src/runtime/visualize-bridge/tool-defs.mjs +22 -8
- package/src/runtime/visualize-bridge/tool-meta.d.mts +5 -0
- package/src/runtime/visualize-bridge/tool-meta.mjs +22 -0
- package/src/runtime/web-search/lib/fetch-pipeline.mjs +2 -2
- package/src/session-runtime/agent-home-delivery.mjs +486 -179
- package/src/session-runtime/agent-room-delivery.mjs +28 -1
- package/src/session-runtime/agent-task-sessions.mjs +561 -199
- package/src/session-runtime/boot/apis.mjs +9 -0
- package/src/session-runtime/boot/begin.mjs +3 -2
- package/src/session-runtime/boot/infrastructure.mjs +4 -0
- package/src/session-runtime/boot/providers.mjs +3 -0
- package/src/session-runtime/boot/tools.mjs +8 -1
- package/src/session-runtime/bot-chain.mjs +32 -0
- package/src/session-runtime/bot-status.mjs +7 -4
- package/src/session-runtime/channel-config-api.mjs +63 -17
- package/src/session-runtime/config-lifecycle.mjs +6 -0
- package/src/session-runtime/connector-merge-migration.mjs +305 -0
- package/src/session-runtime/internal-tool-executor/ask-user-tool.mjs +132 -28
- package/src/session-runtime/internal-tool-executor/bridge-tools.mjs +2 -0
- package/src/session-runtime/internal-tool-executor/reaction-tool.mjs +45 -0
- package/src/session-runtime/internal-tool-executor/workspace-tools.mjs +72 -5
- package/src/session-runtime/internal-tool-executor.mjs +4 -0
- package/src/session-runtime/lifecycle/inheritance.mjs +16 -3
- package/src/session-runtime/lifecycle/session-catalog.mjs +3 -1
- package/src/session-runtime/lifecycle/teardown/runtime-stops.mjs +50 -4
- package/src/session-runtime/lifecycle/teardown.mjs +23 -5
- package/src/session-runtime/mcp-glue/server-catalog.mjs +61 -3
- package/src/session-runtime/mcp-oauth-login.mjs +5 -3
- package/src/session-runtime/mixy-heartbeat.mjs +927 -0
- package/src/session-runtime/model-route/route-tuning.mjs +10 -6
- package/src/session-runtime/notification-bus.mjs +31 -117
- package/src/session-runtime/notification-completion-queue.mjs +54 -0
- package/src/session-runtime/notification-listeners.mjs +76 -0
- package/src/session-runtime/owned-automation-run.mjs +35 -13
- package/src/session-runtime/prewarm/channel-start.mjs +3 -7
- package/src/session-runtime/provider-auth/login.mjs +7 -0
- package/src/session-runtime/provider-models/row-hydration.mjs +13 -2
- package/src/session-runtime/resource-mcp-api.mjs +143 -224
- package/src/session-runtime/resource-mcp-connector-accounts.mjs +163 -0
- package/src/session-runtime/resource-mcp-oauth-api.mjs +217 -0
- package/src/session-runtime/resource-mcp-secrets.mjs +82 -0
- package/src/session-runtime/resource-mcp-servers.mjs +78 -0
- package/src/session-runtime/resource-mcp-store.mjs +49 -0
- package/src/session-runtime/routine-home-turn.mjs +33 -6
- package/src/session-runtime/routine-owner.mjs +40 -9
- package/src/session-runtime/schedule-session-run.mjs +7 -3
- package/src/session-runtime/services/agent-tool/close-flow.mjs +3 -0
- package/src/session-runtime/services/agent-tool/spawn-flow/spawn-plan.mjs +8 -12
- package/src/session-runtime/services/agent-tool/spawn-preset.mjs +7 -2
- package/src/session-runtime/services/agent-tool/tag-registry.mjs +1 -0
- package/src/session-runtime/services/agent-tool/worker-index/awaiting-user-sync.mjs +51 -0
- package/src/session-runtime/services/agent-tool/worker-index/disposal.mjs +55 -0
- package/src/session-runtime/services/agent-tool/worker-index/released-store.mjs +123 -0
- package/src/session-runtime/services/agent-tool/worker-index/restart-settlement.mjs +112 -0
- package/src/session-runtime/services/agent-tool/worker-index/row-reads.mjs +36 -0
- package/src/session-runtime/services/agent-tool/worker-index/row-shape.mjs +2 -0
- package/src/session-runtime/services/agent-tool/worker-index/row-store.mjs +17 -4
- package/src/session-runtime/services/agent-tool/worker-index/row-writes.mjs +58 -0
- package/src/session-runtime/services/agent-tool/worker-index.mjs +41 -241
- package/src/session-runtime/services/agent-tool/worker-rows.mjs +3 -0
- package/src/session-runtime/services/channel-admin.mjs +73 -31
- package/src/session-runtime/services/channel-session-router.mjs +4 -2
- package/src/session-runtime/services/channel-worker.mjs +1 -1
- package/src/session-runtime/services/provider-admin.mjs +128 -25
- package/src/session-runtime/services/schedule-access.mjs +14 -0
- package/src/session-runtime/services/seeds.mjs +0 -28
- package/src/session-runtime/services/usage-dashboard-model.mjs +1 -0
- package/src/session-runtime/session-compaction-sync.mjs +27 -0
- package/src/session-runtime/session-create/session-options.mjs +8 -4
- package/src/session-runtime/settings-builtin-tools-api.mjs +11 -0
- package/src/session-runtime/settings-compaction-api.mjs +2 -40
- package/src/session-runtime/settings-system-api.mjs +28 -1
- package/src/session-runtime/setup-tool/agent-settings-actions.mjs +65 -0
- package/src/session-runtime/setup-tool/executor.mjs +187 -29
- package/src/session-runtime/setup-tool/extended-actions.mjs +33 -2
- package/src/session-runtime/setup-tool/session-route-actions.mjs +152 -0
- package/src/session-runtime/setup-tool/settings-contract.mjs +68 -6
- package/src/session-runtime/setup-tool/tool-defs.mjs +92 -6
- package/src/session-runtime/task-session-route.mjs +99 -0
- package/src/session-runtime/tool-policy/agent-profile-fold.mjs +17 -13
- package/src/session-runtime/tool-policy/policy-stage.mjs +21 -4
- package/src/session-runtime/tool-policy/surface-helpers.mjs +2 -3
- package/src/session-runtime/tool-surface.mjs +4 -0
- package/src/session-runtime/turn/turn-run/ask-callbacks.mjs +1 -0
- package/src/session-runtime/workflow-agents-api/agent-editor.mjs +98 -21
- package/src/session-runtime/workflow-agents-api/style-and-mode.mjs +4 -0
- package/src/session-runtime/workflow-agents-api/workflow-packs.mjs +6 -1
- package/src/session-runtime/workspace/transitions.mjs +10 -2
- package/src/standalone/channel-transport/client-registry/client-records.mjs +65 -0
- package/src/standalone/channel-transport/client-registry/client-registration.mjs +118 -0
- package/src/standalone/channel-transport/client-registry.mjs +24 -163
- package/src/standalone/channel-transport.mjs +1 -1
- package/src/standalone/daemon-channels-loader.mjs +10 -8
- package/src/standalone/daemon-session-control/list-page.mjs +72 -0
- package/src/standalone/daemon-session-control/request.mjs +51 -0
- package/src/standalone/daemon-session-control/room-host.mjs +57 -0
- package/src/standalone/daemon-session-control/route-control.mjs +48 -0
- package/src/standalone/daemon-session-control/send-turn.mjs +60 -0
- package/src/standalone/daemon-session-control/worktree-control.mjs +40 -0
- package/src/standalone/daemon-session-control.mjs +161 -157
- package/src/standalone/daemon.mjs +33 -2
- package/src/standalone/session-client.mjs +7 -3
- package/src/standalone/session-protocol.mjs +10 -0
- package/src/standalone/session-service/agent-tree/agent-cancel.mjs +6 -2
- package/src/standalone/session-service/agent-tree/agent-child.mjs +1 -0
- package/src/standalone/session-service/quota-resume.mjs +3 -0
- package/src/standalone/session-service/retention/busy.mjs +65 -1
- package/src/standalone/session-service/session-calls/session-action.mjs +23 -2
- package/src/standalone/session-service/session-calls/session-turns.mjs +6 -0
- package/src/standalone/session-service/session-calls/session-views.mjs +8 -0
- package/src/standalone/session-service.mjs +13 -0
- package/src/standalone/session-tool-output.mjs +21 -10
- package/src/tui/app/model-options.mjs +4 -27
- package/src/tui/dist/index.mjs +81 -65
- package/src/tui/session/agent-job-feed/model-notification.mjs +3 -0
- package/src/tui/session/initial-state.mjs +3 -0
- package/src/tui/session/notice-surface.mjs +23 -1
- package/src/tui/session/queue-helpers.mjs +3 -42
- package/src/tui/session/session-api/integrations.mjs +1 -0
- package/src/tui/session/session-api/lifecycle.mjs +8 -0
- package/src/tui/session/session-api/routes-agent-definitions.mjs +14 -2
- package/src/tui/session/session-api/routes-write.mjs +5 -1
- package/src/tui/session/session-api/routes.mjs +1 -0
- package/src/tui/session/session-api/settings.mjs +30 -2
- package/src/tui/session/session-flow/auto-clear.mjs +4 -33
- package/src/tui/session/session-flow/drain-closed-queue.mjs +38 -0
- package/src/tui/session/session-flow/drain-enqueue.mjs +86 -0
- package/src/tui/session/session-flow/drain-retry.mjs +35 -0
- package/src/tui/session/session-flow/drain.mjs +118 -149
- package/src/tui/session/session-flow/queue/entry-shape.mjs +5 -0
- package/src/tui/session/session-flow/queue/take-entries.mjs +5 -2
- package/src/tui/session/tool-approval-delegation.mjs +64 -0
- package/src/tui/session/tool-approval-request.mjs +39 -0
- package/src/tui/session/tool-approval-settle.mjs +62 -0
- package/src/tui/session/tool-approval.mjs +69 -115
- package/src/tui/session/tui-steering-persist.mjs +8 -1
- package/src/tui/session/turn-stream.mjs +36 -3
- package/src/tui/session/turn.mjs +23 -2
- package/src/vendor/statusline/bin/statusline-route.mjs +1 -219
- package/src/vendor/statusline/src/gateway/route-meta.mjs +35 -13
- package/scripts/code-graph-description-contract.mjs +0 -188
- package/src/runtime/channels/lib/owned-runtime/ownership-refresh.mjs +0 -36
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Mario Zechner
|
|
4
|
+
Copyright (c) 2025-2026 Can Bölük
|
|
5
|
+
Copyright (c) 2026 Stencil Labs, Inc.
|
|
6
|
+
|
|
7
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
8
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
9
|
+
in the Software without restriction, including without limitation the rights
|
|
10
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
11
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
12
|
+
furnished to do so, subject to the following conditions:
|
|
13
|
+
|
|
14
|
+
The above copyright notice and this permission notice shall be included in all
|
|
15
|
+
copies or substantial portions of the Software.
|
|
16
|
+
|
|
17
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
18
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
19
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
20
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
21
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
22
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
23
|
+
SOFTWARE.
|
package/NOTICE.md
CHANGED
|
@@ -186,9 +186,9 @@ attributions.
|
|
|
186
186
|
|
|
187
187
|
The connector brand marks in
|
|
188
188
|
`apps/desktop/src/renderer/connectors-brand-icons.ts` carry Simple Icons path
|
|
189
|
-
data and brand colours unmodified (Airtable, Blender, Confluence,
|
|
189
|
+
data and brand colours unmodified (Airtable, Blender, Confluence,
|
|
190
190
|
Dropbox, Figma, GitHub, Gmail, Google Calendar, Google Drive, Hugging Face,
|
|
191
|
-
Jira, Linear, Notion, PostgreSQL, Sentry, Stripe, Supabase,
|
|
191
|
+
Jira, Linear, Notion, PostgreSQL, Sentry, Stripe, Supabase, Trello,
|
|
192
192
|
Unity, Vercel); Unity's mark is drawn in black, as its listed colour is white.
|
|
193
193
|
Simple Icons is dedicated to the public domain under CC0 1.0; each
|
|
194
194
|
mark remains the trademark of its owner and is shown only to name that
|
|
@@ -284,3 +284,18 @@ Full license text: `LICENSES/mago-MIT.txt`
|
|
|
284
284
|
<https://github.com/posit-dev/air>
|
|
285
285
|
|
|
286
286
|
Full license text: `LICENSES/air-MIT.txt`
|
|
287
|
+
|
|
288
|
+
### oh-my-pi — MIT
|
|
289
|
+
|
|
290
|
+
<https://github.com/can1357/oh-my-pi>
|
|
291
|
+
|
|
292
|
+
The Devin provider follows its Devin integration. The model-family table in
|
|
293
|
+
`src/runtime/agent/orchestrator/providers/devin-wire-families.mjs` is data
|
|
294
|
+
taken from its model-collapse rules, and these files contain code derived from
|
|
295
|
+
it: `devin-wire-models.mjs` (catalog discovery and family collapsing),
|
|
296
|
+
`devin-wire-session.mjs` (client identity values), `devin-wire-identity.mjs`
|
|
297
|
+
(model classification and thinking rendering), `devin-wire-schema.mjs` (tool
|
|
298
|
+
schema normalization) and `devin-wire-tool-args.mjs` (tool-argument repair),
|
|
299
|
+
all under `src/runtime/agent/orchestrator/providers/`.
|
|
300
|
+
|
|
301
|
+
Full license text: `LICENSES/oh-my-pi-MIT.txt`
|
package/README.md
CHANGED
|
@@ -26,6 +26,7 @@ https://github.com/user-attachments/assets/af515dc9-b0fb-4b6a-aaa1-1d82db792ed0
|
|
|
26
26
|
<a href="https://github.com/tribgames/mixdog/releases/latest"><img alt="Release" src="https://img.shields.io/github/v/release/tribgames/mixdog?style=flat-square"></a>
|
|
27
27
|
<a href="https://www.npmjs.com/package/mixdog"><img alt="npm" src="https://img.shields.io/npm/v/mixdog?style=flat-square"></a>
|
|
28
28
|
<a href="LICENSE"><img alt="License" src="https://img.shields.io/badge/license-Apache--2.0-blue?style=flat-square"></a>
|
|
29
|
+
<a href="https://github.com/sponsors/JYP8877"><img alt="GitHub Sponsors" src="https://img.shields.io/github/sponsors/JYP8877?style=flat-square&logo=githubsponsors&label=Sponsors"></a>
|
|
29
30
|
</p>
|
|
30
31
|
|
|
31
32
|
<p align="center">
|
|
@@ -174,6 +175,16 @@ Found a bug or missing a feature?
|
|
|
174
175
|
[Open an issue](https://github.com/tribgames/mixdog/issues). If Mixdog saves
|
|
175
176
|
you tokens, a star helps others find it.
|
|
176
177
|
|
|
178
|
+
## Sponsor
|
|
179
|
+
|
|
180
|
+
Mixdog is free and open source. Sponsorship pays for development time and the
|
|
181
|
+
model tokens used for testing:
|
|
182
|
+
[github.com/sponsors/JYP8877](https://github.com/sponsors/JYP8877).
|
|
183
|
+
|
|
184
|
+
### Supporters
|
|
185
|
+
|
|
186
|
+
Your name here — [become a sponsor](https://github.com/sponsors/JYP8877).
|
|
187
|
+
|
|
177
188
|
## License
|
|
178
189
|
|
|
179
190
|
Mixdog is licensed under [Apache-2.0](LICENSE). Third-party components retain
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mixdog",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.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.",
|
|
@@ -71,8 +71,6 @@
|
|
|
71
71
|
"smoke:all": "npm run smoke && npm run smoke:boot && npm run smoke:patch && npm run smoke:compact",
|
|
72
72
|
"smoke:boot": "node scripts/boot-smoke.mjs",
|
|
73
73
|
"smoke:compact": "node scripts/compact-smoke.mjs",
|
|
74
|
-
"test:compact": "node scripts/test-direct.mjs scripts/suite-compact-test.mjs src/runtime/agent/orchestrator/session/compact-fresh-context.test.mjs src/runtime/agent/orchestrator/session/compaction-read-reset.test.mjs src/runtime/agent/orchestrator/session/token-estimate.test.mjs",
|
|
75
|
-
"test:markdown": "node scripts/test-direct.mjs scripts/markdown-surface-test.mjs",
|
|
76
74
|
"smoke:loop": "node scripts/smoke-loop.mjs",
|
|
77
75
|
"smoke:loop:final": "node scripts/smoke-loop-report.mjs --require-complete --min-elapsed 5h --min-iterations 400 --max-gap 60s --max-smoke-ms 10000 --max-avg-smoke-ms 8500 --max-step-ms smoke.mjs=4000 --max-step-ms boot-smoke.mjs=8000 --max-rss-mb 140 --max-rss-growth-mb 50",
|
|
78
76
|
"smoke:loop:report": "node scripts/smoke-loop-report.mjs",
|
|
@@ -87,18 +85,12 @@
|
|
|
87
85
|
"test:release-critical": "npm run test:release-assets && npm run smoke:patch && npm run test:providers",
|
|
88
86
|
"test:spec-advisory": "node scripts/run-advisory-spec.mjs && npm run test:spec-advisory --prefix apps/desktop",
|
|
89
87
|
"test:session-transport": "node scripts/test-direct.mjs \"scripts/session-transport/*.test.mjs\" scripts/daemon-bootstrap-test.mjs src/standalone/session-runtime-inline-host.test.mjs",
|
|
90
|
-
"test:session": "node scripts/test-direct.mjs scripts/runtime-turn-contract-test.mjs scripts/session-save-fault-store.slow.test.mjs scripts/turn-review-revert.slow.test.mjs src/runtime/shared/tool-surface.test.mjs src/runtime/bridge-clients.test.mjs src/runtime/browser-bridge/action-schema.test.mjs src/runtime/computer-bridge/client-semantic-error.test.mjs src/runtime/agent/orchestrator/session/tool-envelope.test.mjs src/runtime/agent/orchestrator/session/eager-dispatch.test.mjs",
|
|
91
|
-
"test:quick": "npm run test:session && npm run test:session-transport && npm run test:desktop-main --prefix apps/desktop",
|
|
92
88
|
"test:office": "node scripts/test-direct.mjs scripts/run-office-live-tests.test.mjs src/runtime/office/office-runtime-contract.test.mjs src/runtime/office/office-runtime-com.test.mjs src/runtime/office/office-runtime-portable.slow.test.mjs src/runtime/office/xlsx-formula-audit.test.mjs src/runtime/office/xlsx-portable-snapshot.test.mjs src/runtime/office/office-runtime-pdf.slow.test.mjs src/runtime/office/office-runtime-design.test.mjs src/runtime/office/office-assurance.slow.test.mjs src/runtime/office/office-design-aesthetics.test.mjs src/runtime/office/portable-authoring.slow.test.mjs src/runtime/office/slide-quality.test.mjs src/runtime/office/authoring/pptx-brief.test.mjs src/runtime/office/authoring/pptx-receipt.test.mjs src/runtime/office/quality/render-air.test.mjs src/runtime/office/quality/pptx-deck-rubric.test.mjs && npm run test:office-approval --prefix apps/desktop",
|
|
93
89
|
"test:office:live": "node scripts/run-office-live-tests.mjs",
|
|
94
|
-
"test:office:preview": "node scripts/test-direct.mjs src/runtime/office/office-render-preview.test.mjs",
|
|
95
|
-
"test:office:review": "node scripts/test-direct.mjs src/runtime/office/pptx-independent-review.test.mjs src/runtime/office/pptx-chart-styling.test.mjs",
|
|
96
|
-
"test:office:cleanup": "node scripts/test-direct.mjs src/runtime/office/com/office-cleanup.test.mjs src/runtime/office/office-runtime-com.test.mjs",
|
|
97
90
|
"test:office:compat": "node scripts/run-office-live-tests.mjs compat",
|
|
98
91
|
"test:office:live:all": "node scripts/run-office-live-tests.mjs all",
|
|
99
92
|
"test:office:render": "node scripts/test-direct.mjs src/runtime/office/pptx-skill-kit.slow.test.mjs",
|
|
100
93
|
"office:icons": "node scripts/office/build-pptx-icons.mjs",
|
|
101
|
-
"test:media": "node scripts/test-direct.mjs src/runtime/media/catalog.test.mjs src/runtime/media/lanes.test.mjs src/runtime/media/tool.test.mjs src/runtime/media/defaults.test.mjs src/runtime/media/store.test.mjs src/runtime/media/renditions.test.mjs src/runtime/media/adapters/codex-image.test.mjs src/runtime/media/adapters/gemini-image.test.mjs src/runtime/media/adapters/image-api.test.mjs src/tui/session/session-api/media-lanes.test.mjs",
|
|
102
94
|
"failures": "node scripts/tool-failures.mjs",
|
|
103
95
|
"trace:llm": "node scripts/llm-trace-summary.mjs",
|
|
104
96
|
"bench:office": "node src/runtime/office/bench/benchmark.mjs",
|
|
@@ -117,8 +109,6 @@
|
|
|
117
109
|
"bench:run": "node scripts/bench-run.mjs",
|
|
118
110
|
"bench:recall": "node scripts/recall-bench.mjs",
|
|
119
111
|
"bench:recall:strict": "node scripts/recall-bench.mjs --strict",
|
|
120
|
-
"test:recall-validator": "node scripts/test-direct.mjs scripts/recall-bench-test.mjs",
|
|
121
|
-
"test:suite-health": "node scripts/test-direct.mjs scripts/suite-health.test.mjs",
|
|
122
112
|
"bench:tui-load": "node scripts/tui-runtime-load-bench.mjs",
|
|
123
113
|
"bench:output-style": "node scripts/output-style-bench.mjs",
|
|
124
114
|
"bench:session-context": "node scripts/session-context-bench.mjs",
|
|
@@ -181,10 +171,12 @@
|
|
|
181
171
|
"pptxgenjs": "^4.0.1",
|
|
182
172
|
"puppeteer-core": "^25.2.0",
|
|
183
173
|
"react": "^19.2.7",
|
|
174
|
+
"saxes": "^6.0.0",
|
|
184
175
|
"sharp": "^0.35.5",
|
|
185
176
|
"string-width": "^8.2.1",
|
|
186
177
|
"strip-ansi": "^7.2.0",
|
|
187
178
|
"tesseract.js": "^7.0.0",
|
|
179
|
+
"tldts": "^7.4.18",
|
|
188
180
|
"undici": "^8.10.2",
|
|
189
181
|
"unpdf": "^1.8.0",
|
|
190
182
|
"wrap-ansi": "^10.0.0",
|
package/scripts/daemon-stub.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Stub channel service for the flip smoke: same lifecycle contract as
|
|
2
2
|
// src/standalone/daemon.mjs (pid-verified singleton claim, HTTP+SSE
|
|
3
3
|
// transport, discovery file, ready handshake, client-grace self-shutdown) but
|
|
4
|
-
// with a STUB runtime instead of worker-main
|
|
4
|
+
// with a STUB runtime instead of worker-main. The
|
|
5
5
|
// real channel-worker.mjs spawn-or-attach path forks THIS via
|
|
6
6
|
// MIXDOG_DAEMON_ENTRY, so the flip is exercised end to end.
|
|
7
7
|
process.env.MIXDOG_WORKER_MODE = process.env.MIXDOG_WORKER_MODE || '1';
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
// Release packaging step: write Mixdog's Google OAuth "Desktop app" client from
|
|
4
|
+
// MIXDOG_GOOGLE_OAUTH_CLIENT_ID / MIXDOG_GOOGLE_OAUTH_CLIENT_SECRET (repository
|
|
5
|
+
// secrets) into the generated, gitignored file that googleOAuthClient() reads.
|
|
6
|
+
// Run it before `npm pack` and before apps/desktop `prepare:runtime`, so the
|
|
7
|
+
// npm package and every runtime.asar include the file.
|
|
8
|
+
//
|
|
9
|
+
// --require fail when either value is missing (release and publish jobs).
|
|
10
|
+
// Without it a missing value is skipped, so PR, fork and local
|
|
11
|
+
// builds go on without a built-in Google sign-in.
|
|
12
|
+
//
|
|
13
|
+
// The values are never printed.
|
|
14
|
+
|
|
15
|
+
import { writeFileSync } from 'node:fs';
|
|
16
|
+
import { pathToFileURL } from 'node:url';
|
|
17
|
+
|
|
18
|
+
import { GOOGLE_OAUTH_CLIENT_FILE } from '../src/runtime/shared/google-oauth-client.mjs';
|
|
19
|
+
|
|
20
|
+
const text = (value) => String(value || '').trim();
|
|
21
|
+
|
|
22
|
+
/** Write the client file; returns false when skipped for missing values. */
|
|
23
|
+
export function embedGoogleOAuthClient({ env = process.env, file = GOOGLE_OAUTH_CLIENT_FILE, required = false } = {}) {
|
|
24
|
+
const clientId = text(env.MIXDOG_GOOGLE_OAUTH_CLIENT_ID);
|
|
25
|
+
const clientSecret = text(env.MIXDOG_GOOGLE_OAUTH_CLIENT_SECRET);
|
|
26
|
+
if (!clientId || !clientSecret) {
|
|
27
|
+
if (!required) return false;
|
|
28
|
+
throw new Error(
|
|
29
|
+
'MIXDOG_GOOGLE_OAUTH_CLIENT_ID and MIXDOG_GOOGLE_OAUTH_CLIENT_SECRET must both be set: ' +
|
|
30
|
+
'a release without them ships no built-in Google sign-in. Add them as repository secrets.'
|
|
31
|
+
);
|
|
32
|
+
}
|
|
33
|
+
writeFileSync(file, `${JSON.stringify({ clientId, clientSecret }, null, 2)}\n`);
|
|
34
|
+
return true;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
if (process.argv[1] && import.meta.url === pathToFileURL(process.argv[1]).href) {
|
|
38
|
+
try {
|
|
39
|
+
const embedded = embedGoogleOAuthClient({ required: process.argv.includes('--require') });
|
|
40
|
+
console.log(
|
|
41
|
+
embedded
|
|
42
|
+
? 'Embedded the Google OAuth client for this build.'
|
|
43
|
+
: 'No Google OAuth client configured; this build has no built-in Google sign-in.'
|
|
44
|
+
);
|
|
45
|
+
} catch (error) {
|
|
46
|
+
console.error(`::error title=Google OAuth client missing::${error.message}`);
|
|
47
|
+
process.exitCode = 1;
|
|
48
|
+
}
|
|
49
|
+
}
|
package/scripts/gate-local.mjs
CHANGED
|
@@ -10,7 +10,9 @@
|
|
|
10
10
|
// Not covered locally: runtime-macos, computer-backend (cargo + Linux X11),
|
|
11
11
|
// desktop-tests `computer` lane (windows-latest, src/main/computer/ only),
|
|
12
12
|
// relay (apps/relay tests), graph (cargo test), patch (cargo test of the
|
|
13
|
-
// checked-out engine),
|
|
13
|
+
// checked-out engine), browser-import (windows-latest cargo test of the Chrome
|
|
14
|
+
// importer against a fetched upstream checkout), mobile-scripts (Python
|
|
15
|
+
// unittest). The gate's path
|
|
14
16
|
// filtering is not applied: every check and leg always runs. Run `npm ci`
|
|
15
17
|
// (root and apps/desktop) first.
|
|
16
18
|
import { spawn, spawnSync } from 'node:child_process';
|
|
@@ -112,7 +114,7 @@ for (const leg of legs) {
|
|
|
112
114
|
}
|
|
113
115
|
}
|
|
114
116
|
console.log(
|
|
115
|
-
'Not covered locally: runtime-macos, computer-backend, desktop-tests computer lane (Windows-only), relay, graph, patch, mobile-scripts'
|
|
117
|
+
'Not covered locally: runtime-macos, computer-backend, desktop-tests computer lane (Windows-only), relay, graph, patch, browser-import, mobile-scripts'
|
|
116
118
|
);
|
|
117
119
|
console.log(`Total: ${((Date.now() - started) / 1000).toFixed(1)}s`);
|
|
118
120
|
process.exit(legs.every((l) => l.ok) ? 0 : 1);
|
|
@@ -4,9 +4,54 @@
|
|
|
4
4
|
// (scripts/lib/run-node-tests.mjs). Without the runner's environment it does
|
|
5
5
|
// nothing.
|
|
6
6
|
import { ChildProcess } from 'node:child_process';
|
|
7
|
-
import { appendFileSync } from 'node:fs';
|
|
7
|
+
import { appendFileSync, readFileSync } from 'node:fs';
|
|
8
|
+
import { dirname, join } from 'node:path';
|
|
9
|
+
import { pathToFileURL } from 'node:url';
|
|
8
10
|
import { FAILURE_RECORDS_ENV, spawnLedgerPath } from './test-failure-records.mjs';
|
|
9
11
|
|
|
12
|
+
// --test-force-exit ends a test file's process once every test registered so
|
|
13
|
+
// far has finished. A test registered after a top-level await that is still
|
|
14
|
+
// pending by then (e.g. `await import()` between tests) is never run, and the
|
|
15
|
+
// file would exit 0 with those tests unreported. The entry module is already
|
|
16
|
+
// being evaluated by the time this runs, so importing it again only observes
|
|
17
|
+
// it: if the process exits before its top-level evaluation completed, fail the
|
|
18
|
+
// file instead. Stricter on purpose: an entry whose top-level evaluation never
|
|
19
|
+
// completes under force-exit (e.g. an intentionally never-resolving await after
|
|
20
|
+
// its last test) cannot be told apart from dropped tests, so it fails too.
|
|
21
|
+
// Only ESM entries are observed: importing a CommonJS entry would run it a
|
|
22
|
+
// second time and change `require.main === module`.
|
|
23
|
+
const isEsmEntry = (file) => {
|
|
24
|
+
if (/\.(mjs|mts)$/.test(file)) return true;
|
|
25
|
+
if (/\.(cjs|cts)$/.test(file)) return false;
|
|
26
|
+
for (let dir = dirname(file); ; dir = dirname(dir)) {
|
|
27
|
+
try {
|
|
28
|
+
return JSON.parse(readFileSync(join(dir, 'package.json'), 'utf8')).type === 'module';
|
|
29
|
+
} catch {
|
|
30
|
+
// no readable package.json here: keep walking up
|
|
31
|
+
}
|
|
32
|
+
if (dirname(dir) === dir) return false;
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
if (
|
|
36
|
+
process.env.NODE_TEST_CONTEXT === 'child-v8' &&
|
|
37
|
+
process.execArgv.includes('--test-force-exit') &&
|
|
38
|
+
isEsmEntry(process.argv[1])
|
|
39
|
+
) {
|
|
40
|
+
let settled = false;
|
|
41
|
+
const settle = () => {
|
|
42
|
+
settled = true;
|
|
43
|
+
};
|
|
44
|
+
import(pathToFileURL(process.argv[1]).href).then(settle, settle);
|
|
45
|
+
process.on('exit', (code) => {
|
|
46
|
+
if (settled) return;
|
|
47
|
+
console.error(
|
|
48
|
+
`${process.argv[1]}: the process was force-exited before the file's top-level evaluation completed (a top-level await was still pending); tests registered after it never ran, and an await that never settles is treated the same way`
|
|
49
|
+
);
|
|
50
|
+
// Never replace a failure code the file already set.
|
|
51
|
+
if (!code) process.exitCode = 1;
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
|
|
10
55
|
const ledger = spawnLedgerPath(process.env[FAILURE_RECORDS_ENV]);
|
|
11
56
|
if (ledger) {
|
|
12
57
|
// spawn, exec, execFile and fork all start their process here.
|
|
@@ -15,8 +15,8 @@
|
|
|
15
15
|
// node scripts/native-release-status.mjs --check exit 1 when a tool is unreleased
|
|
16
16
|
// node scripts/native-release-status.mjs --warn-dev warnings for a dev build, exit 0
|
|
17
17
|
//
|
|
18
|
-
// native/mixdog-computer, native/mixdog-browser-import
|
|
19
|
-
// have no release/manifest: the desktop package builds them from source, keyed
|
|
18
|
+
// native/mixdog-computer, native/mixdog-browser-import, native/mixdog-secure-desktop
|
|
19
|
+
// and native/gnome-extension have no release/manifest: the desktop package builds them from source, keyed
|
|
20
20
|
// on a hash of that source (desktop-package.yml), so they cannot go stale.
|
|
21
21
|
import { spawn, spawnSync } from 'node:child_process';
|
|
22
22
|
import { existsSync, readdirSync, readFileSync, statSync } from 'node:fs';
|
|
@@ -289,7 +289,7 @@
|
|
|
289
289
|
"id": "history-network-3",
|
|
290
290
|
"label": "network interruption natural paraphrase 3",
|
|
291
291
|
"args": {
|
|
292
|
-
"query": "
|
|
292
|
+
"query": "웹소켓 게이트웨이 재연결 때문에 실패 화면이 나온 사건 결론은?",
|
|
293
293
|
"period": "2026-08-02 17:35~18:15",
|
|
294
294
|
"projectScope": "mixdog",
|
|
295
295
|
"limit": 10
|
package/scripts/suite-health.mjs
CHANGED
|
@@ -15,6 +15,8 @@ export const WORKSPACES = [
|
|
|
15
15
|
test: 'the release gate runtime job runs the default lane on every gated push',
|
|
16
16
|
'test:slow': 'the release gate runtime-slow job runs it on every gated push',
|
|
17
17
|
'smoke:all': 'aggregate; its components run individually',
|
|
18
|
+
'test:release-critical':
|
|
19
|
+
'aggregate of test:release-assets, smoke:patch and test:providers, each swept on its own',
|
|
18
20
|
'smoke:loop': 'long-running local endurance harness',
|
|
19
21
|
'smoke:loop:final': 'endurance-harness gate, needs hours of loop data',
|
|
20
22
|
'smoke:loop:report': 'report reader, not a suite',
|
|
@@ -28,12 +30,19 @@ export const WORKSPACES = [
|
|
|
28
30
|
exclusions: {
|
|
29
31
|
test: 'the release gate desktop-tests fast leg runs it on every gated push',
|
|
30
32
|
'test:slow': 'the release gate desktop-tests slow leg runs it on every gated push',
|
|
31
|
-
'test:all': 'aggregate of the fast, slow, and
|
|
33
|
+
'test:all': 'aggregate of the fast, slow, live, and electron lanes',
|
|
34
|
+
'test:electron': 'needs a real Electron window and graphics device, which the Linux sweep runner lacks',
|
|
32
35
|
'test:live': 'needs built artifacts; the packaging workflow owns it',
|
|
33
36
|
'test:daemon:e2e': 'needs the built daemon; the release gate desktop job owns it',
|
|
34
37
|
'test:spec-advisory': 'advisory by design (MIXDOG_TEST_ADVISORY)',
|
|
35
38
|
'test:browser-host:integration': 'live desktop integration harness',
|
|
39
|
+
'test:browser-login-persistence:integration':
|
|
40
|
+
'live desktop integration harness; launches real Electron, which needs a display the Linux sweep runner lacks',
|
|
41
|
+
'test:browser-login-popup:integration':
|
|
42
|
+
'live desktop integration harness; launches real Electron, which needs a display the Linux sweep runner lacks',
|
|
36
43
|
'test:browser-profile-import:integration': 'live desktop integration harness',
|
|
44
|
+
'test:remote-webrtc-sender:integration':
|
|
45
|
+
'live desktop integration harness; launches real Electron, which needs a display the Linux sweep runner lacks',
|
|
37
46
|
'test:computer-host:integration': 'live desktop integration harness',
|
|
38
47
|
'test:computer-host:scenarios': 'live desktop scenario harness',
|
|
39
48
|
'test:computer-host:repeats': 'live desktop scenario harness',
|
package/scripts/test.mjs
CHANGED
|
@@ -8,9 +8,9 @@
|
|
|
8
8
|
// *.electron.test.mjs electron need a real Electron or window-capture
|
|
9
9
|
// surface, so two runs of them cannot overlap
|
|
10
10
|
//
|
|
11
|
-
// The electron lane
|
|
12
|
-
// `--
|
|
13
|
-
//
|
|
11
|
+
// The electron lane is not part of the default lane: `--lane electron` runs
|
|
12
|
+
// those files alone, and `--lane all` includes them unless `--exclude-lane
|
|
13
|
+
// electron` lets a second run proceed concurrently.
|
|
14
14
|
//
|
|
15
15
|
// Usage — see USAGE below (`node scripts/test.mjs --help`).
|
|
16
16
|
//
|
|
@@ -35,11 +35,11 @@ export const USAGE = `Usage: node scripts/test.mjs [--lane ${LANES.join('|')}] [
|
|
|
35
35
|
that differs from HEAD (edits and untracked files). A changed
|
|
36
36
|
file no test references (a path joined at run time) is listed,
|
|
37
37
|
so a path filter can add its tests.
|
|
38
|
-
--lane fast
|
|
39
|
-
|
|
38
|
+
--lane fast is the default; electron needs a real desktop and only
|
|
39
|
+
runs with --lane electron or --lane all.
|
|
40
40
|
--exclude-lane drop one lane from the selection, repeatable. Electron and
|
|
41
41
|
window-capture tests cannot run twice at once, so a second
|
|
42
|
-
concurrent run uses --exclude-lane electron.
|
|
42
|
+
concurrent --lane all run uses --exclude-lane electron.
|
|
43
43
|
--rerun-failed <n> re-run the failed files up to n times. Default: 1 for a
|
|
44
44
|
local run, 0 (off) when CI is set; MIXDOG_TEST_RERUN_FAILED
|
|
45
45
|
overrides the default. A test that passes on a re-run is
|
|
@@ -56,6 +56,11 @@ export const USAGE = `Usage: node scripts/test.mjs [--lane ${LANES.join('|')}] [
|
|
|
56
56
|
Selection, lanes, reporting and exit codes are untouched.
|
|
57
57
|
--list print the selected files with their lane, run nothing.
|
|
58
58
|
|
|
59
|
+
Test-file rule: files run with --test-force-exit, so a file's top-level
|
|
60
|
+
evaluation (including any top-level await) must finish before its registered
|
|
61
|
+
tests do. A file that is force-exited first fails — tests registered after the
|
|
62
|
+
await would never run, and an await that never settles cannot be told apart.
|
|
63
|
+
|
|
59
64
|
Every run ends with a "[failure-summary]" block, printed after all other
|
|
60
65
|
output, naming each failed and flaky test by file and test name; every line of
|
|
61
66
|
it carries that tag, so it survives line filtering.`;
|
|
@@ -149,12 +154,8 @@ export async function discoverTestFiles(cwd = process.cwd()) {
|
|
|
149
154
|
return [...files].sort();
|
|
150
155
|
}
|
|
151
156
|
|
|
152
|
-
// The electron lane rides the default lane so a plain `npm test` keeps
|
|
153
|
-
// covering an Electron/window-capture surface that no other lane owns;
|
|
154
|
-
// `--exclude-lane electron` is the explicit way to drop it.
|
|
155
157
|
export function laneSelected(lane, fileLane) {
|
|
156
|
-
|
|
157
|
-
return lane === 'fast' && fileLane === 'electron';
|
|
158
|
+
return lane === 'all' || lane === fileLane;
|
|
158
159
|
}
|
|
159
160
|
|
|
160
161
|
export function selectTestFiles(files, { lane, filters, excludeLanes = [] }) {
|
|
@@ -1,16 +1,12 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: Reviewer
|
|
3
|
-
description:
|
|
3
|
+
description: One fresh Reviewer per non-trivial feature after its last worker reports, any author; not for docs/copy/style or one-line changes.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
Independent
|
|
6
|
+
Independent feature reviewer.
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
risks, and counterexamples.
|
|
14
|
-
|
|
15
|
-
Do not modify files or reimplement the change. Result lists actionable
|
|
16
|
-
findings first, severity-ordered, one line each; if clean, say so in one line.
|
|
8
|
+
Probe what the worker's checks missed: edge cases, error paths, contracts;
|
|
9
|
+
do not rerun valid passing checks. Report only defects this change provably
|
|
10
|
+
introduces, severity-ordered with path/symbol evidence, ending PASS or FAIL
|
|
11
|
+
with one probe you ran. After a fix, recheck only the fix. Do not modify
|
|
12
|
+
files. Lead owns cross-feature checks.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"id": "reviewer",
|
|
3
3
|
"name": "Reviewer",
|
|
4
|
-
"description": "
|
|
4
|
+
"description": "One fresh Reviewer per non-trivial feature after its last worker reports, any author; not for docs/copy/style or one-line changes.",
|
|
5
5
|
"entry": "AGENT.md"
|
|
6
6
|
}
|
|
@@ -33,6 +33,7 @@
|
|
|
33
33
|
"1a8115cec6ae4414f8637b1765948cdd",
|
|
34
34
|
"25b44b46269490e26ca31c1852925171",
|
|
35
35
|
"43d2ad531c7b821fa1f24b4f83c12e6f",
|
|
36
|
+
"60ef154c1d6c9fb936fd7a3167f41203",
|
|
36
37
|
"a60ea68f9287d55489e92e5450432f62",
|
|
37
38
|
"a61cb4557def4e7ed647d4bdacbb72e4",
|
|
38
39
|
"de860d4111b61985f3b59eb1011fa421"
|
|
@@ -181,15 +182,23 @@
|
|
|
181
182
|
"25a6744e7591ea5597abbda008d123fe",
|
|
182
183
|
"43eeb0b9c5792f08f2223c76846926cb",
|
|
183
184
|
"4ab5316454013712cedb25d9b75f4e43",
|
|
185
|
+
"4f042de090d853ed38aaa82b88d301ac",
|
|
184
186
|
"646365a3f7041a3da3d7d7d896a0c3b6",
|
|
185
187
|
"662f730d603b1e583dc777a1984b9134",
|
|
188
|
+
"814b0820a05119a049cf4262dc35301b",
|
|
189
|
+
"85876f6f5aa4f9253d0f5f3f1836dd1a",
|
|
190
|
+
"8691fb728207188e5277611ab8ee739f",
|
|
186
191
|
"8766650e61891e910b44bb2591c88f48",
|
|
187
192
|
"87c15aa8b84c6924598926295b3f7829",
|
|
188
193
|
"949c457b38fa2c9b7d9e684bf67e1470",
|
|
189
194
|
"a2538714c422b39a32d0eb9f27893b32",
|
|
190
195
|
"af1d1b975fc4b6a50f3a1775d890582f",
|
|
196
|
+
"afbbddfab9fdddb5437c045ec23dcad4",
|
|
191
197
|
"d46676d3d80327445c36e70bb291ae52",
|
|
192
198
|
"dc812114c135d1d2716b219e1009e670",
|
|
199
|
+
"eb1bf3ae8e0bca2647ac2a10ab8ad40c",
|
|
200
|
+
"ecbaff5fb04bdf95cc2eeb27c14bda8c",
|
|
201
|
+
"f70b87761ac6a7c6f0ef39b65b1592b3",
|
|
193
202
|
"ff5607144eaf51be56217319431cb90e"
|
|
194
203
|
],
|
|
195
204
|
"code-tidy": [
|
|
@@ -201,6 +210,7 @@
|
|
|
201
210
|
"65fc2984f2a7ead790d527f8e9940aee",
|
|
202
211
|
"74a70988e5ee5704f85fd1250b7d0bb6",
|
|
203
212
|
"7c3ce81e504b46e01a9256576f3b4dca",
|
|
213
|
+
"8a5a68ec13a7414b35e7f3b0089e2208",
|
|
204
214
|
"9728f28dc5b23eb1bb1924213d3ffddd",
|
|
205
215
|
"9a8789b3b4f5f6b3ba02f407cdfb92f7",
|
|
206
216
|
"b50e9c0ba5e8228583eab4f0e0573838",
|
|
@@ -230,7 +240,9 @@
|
|
|
230
240
|
"cb3b95673998c6f44ae68533a49fd891",
|
|
231
241
|
"d086c0ddd6ab4cdfd6a93221b93596b3",
|
|
232
242
|
"e10367dd4291a0b3d8ee8e8dd60eae36",
|
|
233
|
-
"e1f2526aaf123fb77072aa8975f890de"
|
|
243
|
+
"e1f2526aaf123fb77072aa8975f890de",
|
|
244
|
+
"e67f30ec5bbdd36d7feaabd35b7504b3",
|
|
245
|
+
"f0798c546c172a742e3384d82322ede4"
|
|
234
246
|
],
|
|
235
247
|
"docx": [
|
|
236
248
|
"25180dffff54178bcc336250f58ba7db",
|
|
@@ -355,27 +367,37 @@
|
|
|
355
367
|
"242f11864abdef90fa0cc9cb4599a579",
|
|
356
368
|
"29a347c4d3a2f773fa92c627260301ba",
|
|
357
369
|
"336ced846a9e4f774cbb109417856c3b",
|
|
370
|
+
"3716b2d2c2d973ae022694ed5cb756ad",
|
|
371
|
+
"3dc990c29cdce1aca4b112d735ad5917",
|
|
358
372
|
"3f72247651ad9d777b6754bfd46732aa",
|
|
359
373
|
"50bdf35d06913236855080fdea6b50dc",
|
|
374
|
+
"5a77e4fafded94d6bf6fa949796570fe",
|
|
360
375
|
"5b4586a44104b26ae7dd45da101079bf",
|
|
361
376
|
"6101786127a1e68778eafcd2bf2c9ce0",
|
|
362
377
|
"64a85678fbe08d4653ab78c55ee22c7c",
|
|
363
378
|
"6711dbc9d84023b8eabfa928b8d33d18",
|
|
364
379
|
"6f9e9338f560fa9acd839a67b5e2d1cc",
|
|
365
380
|
"70c54f802c77b630863b9e17a16d8224",
|
|
381
|
+
"7254f153fd7e492e205834bc2f2781ab",
|
|
382
|
+
"7c55bebd9e28dc2e03794861dde3f775",
|
|
366
383
|
"81e979463e0066e7a45cf511a31c5d68",
|
|
367
384
|
"8476c811b2f02da3a434bcb23a1c3d12",
|
|
368
385
|
"8af2b614e2a07b58dad6c0f1318d22e2",
|
|
386
|
+
"99d76213e70c6900d6af48ffa4045886",
|
|
369
387
|
"9f90d3872b1ecd312977ce661b770b31",
|
|
370
388
|
"ade615dd0f6ae6ed1601023e5b9cb692",
|
|
389
|
+
"b21681ecfeb523c0d7dd89a299ec05a9",
|
|
371
390
|
"b4f9c79dcb08151e6275b5ee35c2bca4",
|
|
391
|
+
"bca9732a1cecd2ce3a26e905b57d3b25",
|
|
372
392
|
"c6db973f51166fc42814808ae0001797",
|
|
393
|
+
"c82197acd9111f4a6dcda24baccffb86",
|
|
373
394
|
"c8826387a65631b63e8023f55ef807a3",
|
|
374
395
|
"cb6f66d14ba75b11e7470eb3fd5ec94c",
|
|
375
396
|
"de9727a48e52673258bf5f9670564d56",
|
|
376
397
|
"e04e6abe9a54e7d07b37f8fc32b5ad30",
|
|
377
398
|
"e38d606df69865a9cf1cc48386535e8b",
|
|
378
399
|
"e5ac8ea16905815e36e88d883195a617",
|
|
400
|
+
"e7957096bcf6cb5c5833f4e98e1f7110",
|
|
379
401
|
"e848b92962dee0d4c3d7e3721d2e3294",
|
|
380
402
|
"e9b89f9193bd9d9c80ba6cf4419e58ff",
|
|
381
403
|
"feabe973080344c4d52787a96043ab68",
|
|
@@ -383,6 +405,7 @@
|
|
|
383
405
|
],
|
|
384
406
|
"setup-guide": [
|
|
385
407
|
"633e15b84dbe22f2b578b67cc35853d4",
|
|
408
|
+
"72e474711ecd18cfcae6c8365e08286e",
|
|
386
409
|
"920d5b29ccfe6c88f623cf0892b29285",
|
|
387
410
|
"ec88a82ab5e511c0afb1738162150648"
|
|
388
411
|
],
|
|
@@ -408,6 +431,7 @@
|
|
|
408
431
|
"8320fedd9dd745a332621c325a8bf355",
|
|
409
432
|
"9c9fba19647b67d75a600137e38c02b8",
|
|
410
433
|
"aa3531bfc4fd6ec3820493d0c190cc75",
|
|
434
|
+
"f24ff77670e5aa43ce901dec1e0055ac",
|
|
411
435
|
"f65924f0691284ad31000469a9855b62"
|
|
412
436
|
],
|
|
413
437
|
"xlsx": [
|