qlogicagent 2.13.5 → 2.13.6
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/dist/cli.js +303 -304
- package/dist/index.js +1268 -15
- package/dist/permissions.js +1 -1
- package/dist/pet-contracts.js +1 -1
- package/dist/types/cli/community-skill-installer.d.ts +2 -0
- package/dist/types/cli/handlers/community-handler.d.ts +6 -0
- package/dist/types/cli/runtime-dependency-catalog.d.ts +38 -12
- package/dist/types/cli/skills-query-service.d.ts +4 -0
- package/dist/types/config/cn-mirror.d.ts +23 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/protocol/methods.d.ts +27 -3
- package/dist/types/runtime/community/community-consent-client.d.ts +58 -1
- package/dist/types/runtime/community/community-telemetry-types.d.ts +1 -1
- package/dist/types/runtime/community/package-materialize.d.ts +19 -0
- package/dist/types/runtime/community/ranged-download.d.ts +15 -0
- package/dist/types/runtime/community/registry-signature.d.ts +41 -0
- package/dist/types/runtime/infra/llmrouter-catalog.d.ts +3 -3
- package/dist/types/runtime/infra/model-registry.d.ts +17 -2
- package/dist/types/runtime/pet/pet-community-assets.d.ts +14 -1
- package/package.json +110 -110
- package/dist/agent/agent.d.ts +0 -48
- package/dist/agent/agent.js +0 -197
- package/dist/agent/memory-recall-context.d.ts +0 -18
- package/dist/agent/memory-recall-context.js +0 -139
- package/dist/agent/memory-recall-context.test.d.ts +0 -1
- package/dist/agent/memory-recall-context.test.js +0 -58
- package/dist/agent/memory-recall-injection.d.ts +0 -34
- package/dist/agent/memory-recall-injection.js +0 -66
- package/dist/agent/runtime-vars.d.ts +0 -48
- package/dist/agent/runtime-vars.js +0 -54
- package/dist/agent/tool-access.d.ts +0 -1
- package/dist/agent/tool-access.js +0 -1
- package/dist/agent/tool-loop/artifact-events.d.ts +0 -17
- package/dist/agent/tool-loop/artifact-events.js +0 -75
- package/dist/agent/tool-loop/budget-continuation-policy.d.ts +0 -22
- package/dist/agent/tool-loop/budget-continuation-policy.js +0 -44
- package/dist/agent/tool-loop/completion-action-policy.d.ts +0 -19
- package/dist/agent/tool-loop/completion-action-policy.js +0 -68
- package/dist/agent/tool-loop/completion-action-policy.test.d.ts +0 -1
- package/dist/agent/tool-loop/completion-action-policy.test.js +0 -77
- package/dist/agent/tool-loop/completion-stop-policy.d.ts +0 -19
- package/dist/agent/tool-loop/completion-stop-policy.js +0 -31
- package/dist/agent/tool-loop/compression-pipeline.d.ts +0 -44
- package/dist/agent/tool-loop/compression-pipeline.js +0 -68
- package/dist/agent/tool-loop/loop-helpers.d.ts +0 -15
- package/dist/agent/tool-loop/loop-helpers.js +0 -86
- package/dist/agent/tool-loop/recovery-helpers.d.ts +0 -18
- package/dist/agent/tool-loop/recovery-helpers.js +0 -42
- package/dist/agent/tool-loop/single-round.d.ts +0 -2
- package/dist/agent/tool-loop/single-round.js +0 -43
- package/dist/agent/tool-loop/skill-instruction-policy.d.ts +0 -7
- package/dist/agent/tool-loop/skill-instruction-policy.js +0 -18
- package/dist/agent/tool-loop/stream-error-recovery.d.ts +0 -59
- package/dist/agent/tool-loop/stream-error-recovery.js +0 -93
- package/dist/agent/tool-loop/tool-failure-policy.d.ts +0 -22
- package/dist/agent/tool-loop/tool-failure-policy.js +0 -46
- package/dist/agent/tool-loop/tool-result-events.d.ts +0 -11
- package/dist/agent/tool-loop/tool-result-events.js +0 -59
- package/dist/agent/tool-loop/tool-result-events.test.d.ts +0 -1
- package/dist/agent/tool-loop/tool-result-events.test.js +0 -30
- package/dist/agent/tool-loop.contract.test.d.ts +0 -1
- package/dist/agent/tool-loop.contract.test.js +0 -254
- package/dist/agent/tool-loop.d.ts +0 -121
- package/dist/agent/tool-loop.js +0 -1017
- package/dist/agent/tool-loop.policy-architecture.test.d.ts +0 -1
- package/dist/agent/tool-loop.policy-architecture.test.js +0 -21
- package/dist/agent/tool-loop.states.test.d.ts +0 -1
- package/dist/agent/tool-loop.states.test.js +0 -211
- package/dist/agent/tunable-defaults.d.ts +0 -1
- package/dist/agent/tunable-defaults.js +0 -1
- package/dist/agent/types.d.ts +0 -311
- package/dist/agent/types.js +0 -8
- package/dist/cli/acp-commands.d.ts +0 -32
- package/dist/cli/acp-commands.js +0 -145
- package/dist/cli/acp-commands.test.d.ts +0 -1
- package/dist/cli/acp-commands.test.js +0 -89
- package/dist/cli/acp-extended-handlers.d.ts +0 -69
- package/dist/cli/acp-extended-handlers.js +0 -484
- package/dist/cli/acp-extended-handlers.product-confirm.test.d.ts +0 -1
- package/dist/cli/acp-extended-handlers.product-confirm.test.js +0 -56
- package/dist/cli/acp-extended-handlers.product-project.test.d.ts +0 -1
- package/dist/cli/acp-extended-handlers.product-project.test.js +0 -66
- package/dist/cli/acp-extended-handlers.solo-project.test.d.ts +0 -1
- package/dist/cli/acp-extended-handlers.solo-project.test.js +0 -51
- package/dist/cli/acp-extended-handlers.specchat.test.d.ts +0 -1
- package/dist/cli/acp-extended-handlers.specchat.test.js +0 -62
- package/dist/cli/acp-extended-handlers.workflowchat.test.d.ts +0 -1
- package/dist/cli/acp-extended-handlers.workflowchat.test.js +0 -49
- package/dist/cli/acp-extended-host-adapter.d.ts +0 -29
- package/dist/cli/acp-extended-host-adapter.js +0 -40
- package/dist/cli/acp-extended-host-adapter.test.d.ts +0 -1
- package/dist/cli/acp-extended-host-adapter.test.js +0 -63
- package/dist/cli/acp-message-router.d.ts +0 -8
- package/dist/cli/acp-message-router.js +0 -40
- package/dist/cli/acp-message-router.test.d.ts +0 -1
- package/dist/cli/acp-message-router.test.js +0 -30
- package/dist/cli/acp-session-handlers.d.ts +0 -41
- package/dist/cli/acp-session-handlers.js +0 -304
- package/dist/cli/acp-session-handlers.test.d.ts +0 -1
- package/dist/cli/acp-session-handlers.test.js +0 -346
- package/dist/cli/acp-session-host.d.ts +0 -48
- package/dist/cli/acp-session-host.js +0 -1
- package/dist/cli/agent-config-coordinator.d.ts +0 -16
- package/dist/cli/agent-config-coordinator.js +0 -56
- package/dist/cli/agent-config-coordinator.test.d.ts +0 -1
- package/dist/cli/agent-config-coordinator.test.js +0 -51
- package/dist/cli/agent-config-runtime.d.ts +0 -11
- package/dist/cli/agent-config-runtime.js +0 -4
- package/dist/cli/agent-runner-factory.d.ts +0 -2
- package/dist/cli/agent-runner-factory.js +0 -11
- package/dist/cli/agent-runtime-bootstrap.d.ts +0 -67
- package/dist/cli/agent-runtime-bootstrap.js +0 -104
- package/dist/cli/agent-runtime-ports-adapter.d.ts +0 -2
- package/dist/cli/agent-runtime-ports-adapter.js +0 -22
- package/dist/cli/agent-runtime-session-state.d.ts +0 -24
- package/dist/cli/agent-runtime-session-state.js +0 -51
- package/dist/cli/agent-status-notifier.d.ts +0 -11
- package/dist/cli/agent-status-notifier.js +0 -26
- package/dist/cli/agent-status-notifier.test.d.ts +0 -1
- package/dist/cli/agent-status-notifier.test.js +0 -33
- package/dist/cli/base-tool-bootstrap.d.ts +0 -16
- package/dist/cli/base-tool-bootstrap.js +0 -20
- package/dist/cli/cli-acp-request-handler.d.ts +0 -11
- package/dist/cli/cli-acp-request-handler.js +0 -61
- package/dist/cli/cli-acp-request-handler.test.d.ts +0 -1
- package/dist/cli/cli-acp-request-handler.test.js +0 -58
- package/dist/cli/cli-agent-builder.d.ts +0 -35
- package/dist/cli/cli-agent-builder.js +0 -33
- package/dist/cli/community-resource-installer.d.ts +0 -30
- package/dist/cli/community-resource-installer.js +0 -66
- package/dist/cli/community-resource-installer.test.d.ts +0 -1
- package/dist/cli/community-resource-installer.test.js +0 -175
- package/dist/cli/community-skill-installer.d.ts +0 -12
- package/dist/cli/community-skill-installer.js +0 -220
- package/dist/cli/community-skill-installer.test.d.ts +0 -1
- package/dist/cli/community-skill-installer.test.js +0 -179
- package/dist/cli/community-workflow-installer.d.ts +0 -29
- package/dist/cli/community-workflow-installer.js +0 -69
- package/dist/cli/conversation-context.d.ts +0 -30
- package/dist/cli/conversation-context.js +0 -69
- package/dist/cli/conversation-context.test.d.ts +0 -1
- package/dist/cli/conversation-context.test.js +0 -61
- package/dist/cli/core-tool-coordinator.d.ts +0 -41
- package/dist/cli/core-tool-coordinator.js +0 -55
- package/dist/cli/core-tools/agent-tool-bootstrap.d.ts +0 -12
- package/dist/cli/core-tools/agent-tool-bootstrap.js +0 -5
- package/dist/cli/core-tools/agent-tool-service.background.test.d.ts +0 -1
- package/dist/cli/core-tools/agent-tool-service.background.test.js +0 -212
- package/dist/cli/core-tools/agent-tool-service.d.ts +0 -36
- package/dist/cli/core-tools/agent-tool-service.js +0 -152
- package/dist/cli/core-tools/checkpoint-tool-bootstrap.d.ts +0 -9
- package/dist/cli/core-tools/checkpoint-tool-bootstrap.js +0 -8
- package/dist/cli/core-tools/checkpoint-tool-service.d.ts +0 -7
- package/dist/cli/core-tools/checkpoint-tool-service.js +0 -5
- package/dist/cli/core-tools/config-tool-bootstrap.d.ts +0 -5
- package/dist/cli/core-tools/config-tool-bootstrap.js +0 -5
- package/dist/cli/core-tools/config-tool-service.d.ts +0 -11
- package/dist/cli/core-tools/config-tool-service.js +0 -86
- package/dist/cli/core-tools/config-tool-service.test.d.ts +0 -1
- package/dist/cli/core-tools/config-tool-service.test.js +0 -69
- package/dist/cli/core-tools/cron-tool-bootstrap.d.ts +0 -8
- package/dist/cli/core-tools/cron-tool-bootstrap.js +0 -8
- package/dist/cli/core-tools/cron-workflow-service.d.ts +0 -7
- package/dist/cli/core-tools/cron-workflow-service.js +0 -206
- package/dist/cli/core-tools/cron-workflow-service.test.d.ts +0 -1
- package/dist/cli/core-tools/cron-workflow-service.test.js +0 -78
- package/dist/cli/core-tools/fork-system-prompt.d.ts +0 -45
- package/dist/cli/core-tools/fork-system-prompt.js +0 -66
- package/dist/cli/core-tools/fork-system-prompt.test.d.ts +0 -1
- package/dist/cli/core-tools/fork-system-prompt.test.js +0 -77
- package/dist/cli/core-tools/monitor-tool-bootstrap.d.ts +0 -7
- package/dist/cli/core-tools/monitor-tool-bootstrap.js +0 -8
- package/dist/cli/core-tools/monitor-tool-service.d.ts +0 -6
- package/dist/cli/core-tools/monitor-tool-service.js +0 -74
- package/dist/cli/core-tools/registry.d.ts +0 -8
- package/dist/cli/core-tools/registry.js +0 -60
- package/dist/cli/core-tools/session-tool-manifest.d.ts +0 -12
- package/dist/cli/core-tools/session-tool-manifest.js +0 -19
- package/dist/cli/core-tools/team-registry.d.ts +0 -62
- package/dist/cli/core-tools/team-registry.js +0 -85
- package/dist/cli/core-tools/team-registry.test.d.ts +0 -1
- package/dist/cli/core-tools/team-registry.test.js +0 -79
- package/dist/cli/core-tools/team-tool-bootstrap.d.ts +0 -11
- package/dist/cli/core-tools/team-tool-bootstrap.js +0 -8
- package/dist/cli/core-tools/team-tool-service.d.ts +0 -43
- package/dist/cli/core-tools/team-tool-service.js +0 -326
- package/dist/cli/core-tools/team-tool-service.test.d.ts +0 -1
- package/dist/cli/core-tools/team-tool-service.test.js +0 -48
- package/dist/cli/credential-vault.d.ts +0 -62
- package/dist/cli/credential-vault.js +0 -190
- package/dist/cli/credential-vault.test.d.ts +0 -6
- package/dist/cli/credential-vault.test.js +0 -130
- package/dist/cli/default-project-bootstrap.d.ts +0 -8
- package/dist/cli/default-project-bootstrap.js +0 -39
- package/dist/cli/dev-tool-bootstrap.d.ts +0 -8
- package/dist/cli/dev-tool-bootstrap.js +0 -19
- package/dist/cli/dev-tools/dev-tool-bootstrap-service.d.ts +0 -6
- package/dist/cli/dev-tools/dev-tool-bootstrap-service.js +0 -6
- package/dist/cli/dev-tools/dev-tool-registry.d.ts +0 -6
- package/dist/cli/dev-tools/dev-tool-registry.js +0 -7
- package/dist/cli/dev-tools/lsp-tool-service.d.ts +0 -5
- package/dist/cli/dev-tools/lsp-tool-service.js +0 -30
- package/dist/cli/dev-tools/lsp-tool-service.test.d.ts +0 -1
- package/dist/cli/dev-tools/lsp-tool-service.test.js +0 -14
- package/dist/cli/dream-host-adapter.d.ts +0 -23
- package/dist/cli/dream-host-adapter.js +0 -33
- package/dist/cli/gateway-rpc-connection.d.ts +0 -50
- package/dist/cli/gateway-rpc-connection.js +0 -133
- package/dist/cli/handlers/agents-handler.d.ts +0 -51
- package/dist/cli/handlers/agents-handler.js +0 -769
- package/dist/cli/handlers/community-handler.d.ts +0 -39
- package/dist/cli/handlers/community-handler.js +0 -671
- package/dist/cli/handlers/community-handler.test.d.ts +0 -1
- package/dist/cli/handlers/community-handler.test.js +0 -1602
- package/dist/cli/handlers/config-handler.d.ts +0 -28
- package/dist/cli/handlers/config-handler.js +0 -438
- package/dist/cli/handlers/config-handler.test.d.ts +0 -1
- package/dist/cli/handlers/config-handler.test.js +0 -140
- package/dist/cli/handlers/config-handler.tools-list.test.d.ts +0 -1
- package/dist/cli/handlers/config-handler.tools-list.test.js +0 -93
- package/dist/cli/handlers/control-handler.d.ts +0 -23
- package/dist/cli/handlers/control-handler.js +0 -88
- package/dist/cli/handlers/dream-handler.d.ts +0 -31
- package/dist/cli/handlers/dream-handler.js +0 -235
- package/dist/cli/handlers/files-handler.d.ts +0 -22
- package/dist/cli/handlers/files-handler.instructions.test.d.ts +0 -1
- package/dist/cli/handlers/files-handler.instructions.test.js +0 -127
- package/dist/cli/handlers/files-handler.js +0 -593
- package/dist/cli/handlers/media-handler.d.ts +0 -19
- package/dist/cli/handlers/media-handler.js +0 -212
- package/dist/cli/handlers/media-handler.test.d.ts +0 -1
- package/dist/cli/handlers/media-handler.test.js +0 -107
- package/dist/cli/handlers/memory-handler.d.ts +0 -61
- package/dist/cli/handlers/memory-handler.js +0 -792
- package/dist/cli/handlers/pet-confirm-handler.d.ts +0 -7
- package/dist/cli/handlers/pet-confirm-handler.js +0 -6
- package/dist/cli/handlers/pet-handler.d.ts +0 -47
- package/dist/cli/handlers/pet-handler.js +0 -455
- package/dist/cli/handlers/pet-handler.test.d.ts +0 -1
- package/dist/cli/handlers/pet-handler.test.js +0 -620
- package/dist/cli/handlers/product-handler.d.ts +0 -37
- package/dist/cli/handlers/product-handler.js +0 -393
- package/dist/cli/handlers/project-handler.d.ts +0 -28
- package/dist/cli/handlers/project-handler.js +0 -421
- package/dist/cli/handlers/session-handler.channel.test.d.ts +0 -1
- package/dist/cli/handlers/session-handler.channel.test.js +0 -157
- package/dist/cli/handlers/session-handler.d.ts +0 -58
- package/dist/cli/handlers/session-handler.delete.test.d.ts +0 -1
- package/dist/cli/handlers/session-handler.delete.test.js +0 -38
- package/dist/cli/handlers/session-handler.js +0 -833
- package/dist/cli/handlers/session-handler.resume.test.d.ts +0 -1
- package/dist/cli/handlers/session-handler.resume.test.js +0 -66
- package/dist/cli/handlers/settings-handler.d.ts +0 -19
- package/dist/cli/handlers/settings-handler.js +0 -710
- package/dist/cli/handlers/settings-handler.remote-catalog.test.d.ts +0 -1
- package/dist/cli/handlers/settings-handler.remote-catalog.test.js +0 -1247
- package/dist/cli/handlers/skills-handler.d.ts +0 -29
- package/dist/cli/handlers/skills-handler.js +0 -368
- package/dist/cli/handlers/skills-handler.profile.test.d.ts +0 -1
- package/dist/cli/handlers/skills-handler.profile.test.js +0 -70
- package/dist/cli/handlers/solo-handler.d.ts +0 -38
- package/dist/cli/handlers/solo-handler.js +0 -351
- package/dist/cli/handlers/turn-handler.d.ts +0 -52
- package/dist/cli/handlers/turn-handler.js +0 -574
- package/dist/cli/handlers/turn-handler.test.d.ts +0 -1
- package/dist/cli/handlers/turn-handler.test.js +0 -22
- package/dist/cli/handlers/workflow-handler.d.ts +0 -181
- package/dist/cli/handlers/workflow-handler.events.test.d.ts +0 -1
- package/dist/cli/handlers/workflow-handler.events.test.js +0 -113
- package/dist/cli/handlers/workflow-handler.js +0 -1449
- package/dist/cli/handlers/workflow-handler.multiroot.test.d.ts +0 -12
- package/dist/cli/handlers/workflow-handler.multiroot.test.js +0 -745
- package/dist/cli/idle-dream-coordinator.d.ts +0 -47
- package/dist/cli/idle-dream-coordinator.js +0 -126
- package/dist/cli/idle-dream-coordinator.test.d.ts +0 -1
- package/dist/cli/idle-dream-coordinator.test.js +0 -125
- package/dist/cli/main.d.ts +0 -15
- package/dist/cli/main.js +0 -112
- package/dist/cli/mcp-bootstrap.d.ts +0 -20
- package/dist/cli/mcp-bootstrap.js +0 -66
- package/dist/cli/mcp-plugin-bootstrap.d.ts +0 -2
- package/dist/cli/mcp-plugin-bootstrap.js +0 -2
- package/dist/cli/mcp-plugin-bootstrap.test.d.ts +0 -1
- package/dist/cli/mcp-plugin-bootstrap.test.js +0 -38
- package/dist/cli/mcp-tool-proxy.d.ts +0 -7
- package/dist/cli/mcp-tool-proxy.js +0 -15
- package/dist/cli/media-capability-schema.d.ts +0 -49
- package/dist/cli/media-capability-schema.js +0 -384
- package/dist/cli/media-capability-schema.test.d.ts +0 -1
- package/dist/cli/media-capability-schema.test.js +0 -103
- package/dist/cli/media-file-api-service.d.ts +0 -73
- package/dist/cli/media-file-api-service.js +0 -143
- package/dist/cli/media-file-api-service.test.d.ts +0 -1
- package/dist/cli/media-file-api-service.test.js +0 -119
- package/dist/cli/media-file-tool-service.d.ts +0 -13
- package/dist/cli/media-file-tool-service.js +0 -63
- package/dist/cli/media-runtime-capability.test.d.ts +0 -1
- package/dist/cli/media-runtime-capability.test.js +0 -106
- package/dist/cli/media-runtime-facade.d.ts +0 -51
- package/dist/cli/media-runtime-facade.js +0 -389
- package/dist/cli/media-runtime-facade.test.d.ts +0 -1
- package/dist/cli/media-runtime-facade.test.js +0 -42
- package/dist/cli/memory-candidate-service.d.ts +0 -83
- package/dist/cli/memory-candidate-service.js +0 -341
- package/dist/cli/memory-coordinator.d.ts +0 -37
- package/dist/cli/memory-coordinator.js +0 -85
- package/dist/cli/memory-coordinator.test.d.ts +0 -1
- package/dist/cli/memory-coordinator.test.js +0 -78
- package/dist/cli/memory-multimodal.test.d.ts +0 -1
- package/dist/cli/memory-multimodal.test.js +0 -137
- package/dist/cli/model-client-resolver.d.ts +0 -31
- package/dist/cli/model-client-resolver.js +0 -173
- package/dist/cli/model-client-resolver.test.d.ts +0 -1
- package/dist/cli/model-client-resolver.test.js +0 -105
- package/dist/cli/multi-agent-handler-host.d.ts +0 -27
- package/dist/cli/multi-agent-handler-host.js +0 -55
- package/dist/cli/multi-agent-handler-host.test.d.ts +0 -1
- package/dist/cli/multi-agent-handler-host.test.js +0 -63
- package/dist/cli/multi-agent-state-coordinator.d.ts +0 -11
- package/dist/cli/multi-agent-state-coordinator.js +0 -7
- package/dist/cli/permission-approval-bridge.d.ts +0 -15
- package/dist/cli/permission-approval-bridge.js +0 -66
- package/dist/cli/permission-approval-bridge.test.d.ts +0 -1
- package/dist/cli/permission-approval-bridge.test.js +0 -100
- package/dist/cli/permission-bootstrap.d.ts +0 -40
- package/dist/cli/permission-bootstrap.js +0 -58
- package/dist/cli/permission-bootstrap.test.d.ts +0 -1
- package/dist/cli/permission-bootstrap.test.js +0 -129
- package/dist/cli/permission-runtime-service.d.ts +0 -9
- package/dist/cli/permission-runtime-service.js +0 -11
- package/dist/cli/permission-settings-store.d.ts +0 -1
- package/dist/cli/permission-settings-store.js +0 -3
- package/dist/cli/permission-settings-store.test.d.ts +0 -1
- package/dist/cli/permission-settings-store.test.js +0 -65
- package/dist/cli/pet-confirm-coordinator.d.ts +0 -20
- package/dist/cli/pet-confirm-coordinator.js +0 -32
- package/dist/cli/pet-confirm-coordinator.test.d.ts +0 -1
- package/dist/cli/pet-confirm-coordinator.test.js +0 -34
- package/dist/cli/pet-runtime.d.ts +0 -55
- package/dist/cli/pet-runtime.js +0 -220
- package/dist/cli/pet-runtime.test.d.ts +0 -1
- package/dist/cli/pet-runtime.test.js +0 -46
- package/dist/cli/plugin-bootstrap.d.ts +0 -15
- package/dist/cli/plugin-bootstrap.js +0 -63
- package/dist/cli/product-coordinator.d.ts +0 -34
- package/dist/cli/product-coordinator.js +0 -124
- package/dist/cli/product-coordinator.test.d.ts +0 -1
- package/dist/cli/product-coordinator.test.js +0 -51
- package/dist/cli/project-command-service.d.ts +0 -28
- package/dist/cli/project-command-service.js +0 -99
- package/dist/cli/project-context.d.ts +0 -1
- package/dist/cli/project-context.js +0 -4
- package/dist/cli/project-memory-store-factory.d.ts +0 -2
- package/dist/cli/project-memory-store-factory.js +0 -11
- package/dist/cli/project-template-seeder.d.ts +0 -5
- package/dist/cli/project-template-seeder.js +0 -43
- package/dist/cli/provider-core-facade.d.ts +0 -31
- package/dist/cli/provider-core-facade.js +0 -51
- package/dist/cli/provider-core-facade.test.d.ts +0 -1
- package/dist/cli/provider-core-facade.test.js +0 -9
- package/dist/cli/resolved-agent-cache.d.ts +0 -47
- package/dist/cli/resolved-agent-cache.js +0 -38
- package/dist/cli/rpc-registry.community.test.d.ts +0 -1
- package/dist/cli/rpc-registry.community.test.js +0 -45
- package/dist/cli/rpc-registry.d.ts +0 -62
- package/dist/cli/rpc-registry.js +0 -243
- package/dist/cli/runtime-dependency-catalog.d.ts +0 -56
- package/dist/cli/runtime-dependency-catalog.js +0 -110
- package/dist/cli/runtime-hook-bootstrap.d.ts +0 -38
- package/dist/cli/runtime-hook-bootstrap.js +0 -71
- package/dist/cli/runtime-watcher-bootstrap.d.ts +0 -15
- package/dist/cli/runtime-watcher-bootstrap.js +0 -30
- package/dist/cli/session-context.d.ts +0 -32
- package/dist/cli/session-context.js +0 -15
- package/dist/cli/session-coordinator.d.ts +0 -22
- package/dist/cli/session-coordinator.js +0 -47
- package/dist/cli/session-coordinator.test.d.ts +0 -1
- package/dist/cli/session-coordinator.test.js +0 -61
- package/dist/cli/session-history-coordinator.d.ts +0 -8
- package/dist/cli/session-history-coordinator.js +0 -57
- package/dist/cli/session-history-coordinator.test.d.ts +0 -1
- package/dist/cli/session-history-coordinator.test.js +0 -39
- package/dist/cli/session-query-service.d.ts +0 -24
- package/dist/cli/session-query-service.js +0 -57
- package/dist/cli/skill-meta-subturn-service.d.ts +0 -26
- package/dist/cli/skill-meta-subturn-service.js +0 -93
- package/dist/cli/skill-meta-tool-bootstrap.d.ts +0 -34
- package/dist/cli/skill-meta-tool-bootstrap.js +0 -295
- package/dist/cli/skill-meta-tool-bootstrap.test.d.ts +0 -1
- package/dist/cli/skill-meta-tool-bootstrap.test.js +0 -42
- package/dist/cli/skill-supporting-file.test.d.ts +0 -1
- package/dist/cli/skill-supporting-file.test.js +0 -97
- package/dist/cli/skills-query-service.d.ts +0 -29
- package/dist/cli/skills-query-service.js +0 -38
- package/dist/cli/stdio-acp-protocol-coordinator.d.ts +0 -18
- package/dist/cli/stdio-acp-protocol-coordinator.js +0 -33
- package/dist/cli/stdio-acp-request-host.d.ts +0 -28
- package/dist/cli/stdio-acp-request-host.js +0 -82
- package/dist/cli/stdio-acp-request-host.test.d.ts +0 -1
- package/dist/cli/stdio-acp-request-host.test.js +0 -61
- package/dist/cli/stdio-agent-session-bootstrap.d.ts +0 -80
- package/dist/cli/stdio-agent-session-bootstrap.js +0 -74
- package/dist/cli/stdio-rpc-handler-hosts.d.ts +0 -50
- package/dist/cli/stdio-rpc-handler-hosts.js +0 -135
- package/dist/cli/stdio-rpc-handler-hosts.test.d.ts +0 -1
- package/dist/cli/stdio-rpc-handler-hosts.test.js +0 -10
- package/dist/cli/stdio-runtime-bootstrap.d.ts +0 -16
- package/dist/cli/stdio-runtime-bootstrap.js +0 -17
- package/dist/cli/stdio-runtime-services.d.ts +0 -36
- package/dist/cli/stdio-runtime-services.js +0 -53
- package/dist/cli/stdio-server.architecture.test.d.ts +0 -1
- package/dist/cli/stdio-server.architecture.test.js +0 -18
- package/dist/cli/stdio-server.contract.test.d.ts +0 -1
- package/dist/cli/stdio-server.contract.test.js +0 -96
- package/dist/cli/stdio-server.d.ts +0 -211
- package/dist/cli/stdio-server.js +0 -731
- package/dist/cli/stdio-session-runtime-coordinator.d.ts +0 -19
- package/dist/cli/stdio-session-runtime-coordinator.js +0 -21
- package/dist/cli/test-support/tool-catalog-fixture.d.ts +0 -3
- package/dist/cli/test-support/tool-catalog-fixture.js +0 -98
- package/dist/cli/tool-bootstrap-core-registration.d.ts +0 -30
- package/dist/cli/tool-bootstrap-core-registration.js +0 -555
- package/dist/cli/tool-bootstrap-media-registration.d.ts +0 -8
- package/dist/cli/tool-bootstrap-media-registration.js +0 -348
- package/dist/cli/tool-bootstrap-paths.d.ts +0 -7
- package/dist/cli/tool-bootstrap-paths.js +0 -17
- package/dist/cli/tool-bootstrap-providers.d.ts +0 -3
- package/dist/cli/tool-bootstrap-providers.js +0 -10
- package/dist/cli/tool-bootstrap-web-registration.d.ts +0 -13
- package/dist/cli/tool-bootstrap-web-registration.js +0 -144
- package/dist/cli/tool-bootstrap-workflow-registration.d.ts +0 -7
- package/dist/cli/tool-bootstrap-workflow-registration.js +0 -65
- package/dist/cli/tool-bootstrap.background-exec.test.d.ts +0 -1
- package/dist/cli/tool-bootstrap.background-exec.test.js +0 -83
- package/dist/cli/tool-bootstrap.cwd.test.d.ts +0 -1
- package/dist/cli/tool-bootstrap.cwd.test.js +0 -37
- package/dist/cli/tool-bootstrap.d.ts +0 -63
- package/dist/cli/tool-bootstrap.instructions.test.d.ts +0 -1
- package/dist/cli/tool-bootstrap.instructions.test.js +0 -37
- package/dist/cli/tool-bootstrap.js +0 -255
- package/dist/cli/tool-bootstrap.media-provider-alias.test.d.ts +0 -1
- package/dist/cli/tool-bootstrap.media-provider-alias.test.js +0 -90
- package/dist/cli/tool-bootstrap.test.d.ts +0 -1
- package/dist/cli/tool-bootstrap.test.js +0 -94
- package/dist/cli/tool-catalog.d.ts +0 -4
- package/dist/cli/tool-catalog.js +0 -14
- package/dist/cli/tool-invoker-factory.d.ts +0 -12
- package/dist/cli/tool-invoker-factory.js +0 -45
- package/dist/cli/tool-registration-modules.contract.test.d.ts +0 -1
- package/dist/cli/tool-registration-modules.contract.test.js +0 -75
- package/dist/cli/tool-registry-adapter.d.ts +0 -5
- package/dist/cli/tool-registry-adapter.js +0 -27
- package/dist/cli/tool-result-processor.d.ts +0 -14
- package/dist/cli/tool-result-processor.js +0 -83
- package/dist/cli/tool-result-processor.test.d.ts +0 -1
- package/dist/cli/tool-result-processor.test.js +0 -69
- package/dist/cli/transport.d.ts +0 -30
- package/dist/cli/transport.js +0 -68
- package/dist/cli/tunable-store.d.ts +0 -26
- package/dist/cli/tunable-store.js +0 -105
- package/dist/cli/turn-ask-user-setup.d.ts +0 -24
- package/dist/cli/turn-ask-user-setup.js +0 -46
- package/dist/cli/turn-ask-user-setup.test.d.ts +0 -1
- package/dist/cli/turn-ask-user-setup.test.js +0 -39
- package/dist/cli/turn-core.d.ts +0 -57
- package/dist/cli/turn-core.js +0 -58
- package/dist/cli/turn-event-forwarder.d.ts +0 -10
- package/dist/cli/turn-event-forwarder.js +0 -136
- package/dist/cli/turn-lifecycle.d.ts +0 -19
- package/dist/cli/turn-lifecycle.js +0 -53
- package/dist/cli/turn-lifecycle.test.d.ts +0 -1
- package/dist/cli/turn-lifecycle.test.js +0 -32
- package/dist/cli/turn-media-setup.d.ts +0 -19
- package/dist/cli/turn-media-setup.js +0 -71
- package/dist/cli/turn-media-setup.test.d.ts +0 -1
- package/dist/cli/turn-media-setup.test.js +0 -280
- package/dist/cli/turn-permission-sync.d.ts +0 -6
- package/dist/cli/turn-permission-sync.js +0 -7
- package/dist/cli/turn-permission-sync.test.d.ts +0 -1
- package/dist/cli/turn-permission-sync.test.js +0 -20
- package/dist/cli/turn-project-router.d.ts +0 -22
- package/dist/cli/turn-project-router.js +0 -141
- package/dist/cli/turn-project-router.test.d.ts +0 -1
- package/dist/cli/turn-project-router.test.js +0 -79
- package/dist/cli/turn-skill-autopersist.d.ts +0 -47
- package/dist/cli/turn-skill-autopersist.js +0 -262
- package/dist/cli/turn-skill-autopersist.test.d.ts +0 -1
- package/dist/cli/turn-skill-autopersist.test.js +0 -222
- package/dist/cli/turn-suggestion-generator.d.ts +0 -15
- package/dist/cli/turn-suggestion-generator.js +0 -34
- package/dist/cli/workflow-host-adapter.d.ts +0 -29
- package/dist/cli/workflow-host-adapter.js +0 -15
- package/dist/cli/workflow-host-adapter.test.d.ts +0 -1
- package/dist/cli/workflow-host-adapter.test.js +0 -35
- package/dist/config/config.d.ts +0 -17
- package/dist/config/config.js +0 -21
- package/dist/contracts/fire-hook.d.ts +0 -14
- package/dist/contracts/fire-hook.js +0 -14
- package/dist/contracts/fire-hook.test.d.ts +0 -1
- package/dist/contracts/fire-hook.test.js +0 -34
- package/dist/contracts/hooks.d.ts +0 -186
- package/dist/contracts/hooks.js +0 -7
- package/dist/contracts/index.d.ts +0 -4
- package/dist/contracts/index.js +0 -4
- package/dist/index.d.ts +0 -15
- package/dist/orchestration/agent-instance.d.ts +0 -84
- package/dist/orchestration/agent-instance.js +0 -535
- package/dist/orchestration/context/context-collapse.d.ts +0 -58
- package/dist/orchestration/context/context-collapse.js +0 -134
- package/dist/orchestration/context/reactive-compact.d.ts +0 -73
- package/dist/orchestration/context/reactive-compact.js +0 -78
- package/dist/orchestration/context/turn-loop-guard.d.ts +0 -86
- package/dist/orchestration/context/turn-loop-guard.js +0 -100
- package/dist/orchestration/dag-scheduler.d.ts +0 -167
- package/dist/orchestration/dag-scheduler.js +0 -546
- package/dist/orchestration/error-handling/error-classification.d.ts +0 -3
- package/dist/orchestration/error-handling/error-classification.js +0 -35
- package/dist/orchestration/error-handling/failover-classification.d.ts +0 -8
- package/dist/orchestration/error-handling/failover-classification.js +0 -381
- package/dist/orchestration/error-handling/retry-loop.d.ts +0 -69
- package/dist/orchestration/error-handling/retry-loop.js +0 -96
- package/dist/orchestration/index.d.ts +0 -15
- package/dist/orchestration/index.js +0 -18
- package/dist/orchestration/product-budget.d.ts +0 -56
- package/dist/orchestration/product-budget.js +0 -112
- package/dist/orchestration/product-checkpoint.d.ts +0 -46
- package/dist/orchestration/product-checkpoint.js +0 -74
- package/dist/orchestration/product-dag-mutation-applier.d.ts +0 -10
- package/dist/orchestration/product-dag-mutation-applier.js +0 -91
- package/dist/orchestration/product-persistence.d.ts +0 -35
- package/dist/orchestration/product-persistence.js +0 -55
- package/dist/orchestration/product-planner.d.ts +0 -146
- package/dist/orchestration/product-planner.js +0 -379
- package/dist/orchestration/product-run-coordinator.d.ts +0 -31
- package/dist/orchestration/product-run-coordinator.js +0 -31
- package/dist/orchestration/product-worktree.d.ts +0 -12
- package/dist/orchestration/product-worktree.js +0 -69
- package/dist/orchestration/skill-improvement.d.ts +0 -129
- package/dist/orchestration/skill-improvement.js +0 -243
- package/dist/orchestration/solo-evaluator.d.ts +0 -124
- package/dist/orchestration/solo-evaluator.js +0 -611
- package/dist/orchestration/solo-persistence.d.ts +0 -48
- package/dist/orchestration/solo-persistence.js +0 -67
- package/dist/orchestration/solo-spec-builder.d.ts +0 -48
- package/dist/orchestration/solo-spec-builder.js +0 -139
- package/dist/orchestration/subagent/agent-registry.d.ts +0 -46
- package/dist/orchestration/subagent/agent-registry.js +0 -129
- package/dist/orchestration/subagent/fork-subagent.d.ts +0 -100
- package/dist/orchestration/subagent/fork-subagent.js +0 -101
- package/dist/orchestration/subagent/task-types.d.ts +0 -1
- package/dist/orchestration/subagent/task-types.js +0 -1
- package/dist/orchestration/tool-cascade.d.ts +0 -49
- package/dist/orchestration/tool-cascade.js +0 -86
- package/dist/orchestration/tool-loop/conversation-repair.d.ts +0 -61
- package/dist/orchestration/tool-loop/conversation-repair.js +0 -429
- package/dist/orchestration/tool-loop/tool-choice-policy.d.ts +0 -54
- package/dist/orchestration/tool-loop/tool-choice-policy.js +0 -164
- package/dist/orchestration/tool-loop/tool-loop-state.d.ts +0 -50
- package/dist/orchestration/tool-loop/tool-loop-state.js +0 -133
- package/dist/orchestration/tool-loop/tool-schema.d.ts +0 -46
- package/dist/orchestration/tool-loop/tool-schema.js +0 -208
- package/dist/orchestration/workflow/budget-permission-gate.d.ts +0 -85
- package/dist/orchestration/workflow/budget-permission-gate.js +0 -134
- package/dist/orchestration/workflow/builtin-executors.d.ts +0 -18
- package/dist/orchestration/workflow/builtin-executors.js +0 -191
- package/dist/orchestration/workflow/capability-catalog.d.ts +0 -64
- package/dist/orchestration/workflow/capability-catalog.js +0 -166
- package/dist/orchestration/workflow/cron-schedule.d.ts +0 -37
- package/dist/orchestration/workflow/cron-schedule.js +0 -199
- package/dist/orchestration/workflow/data-item.d.ts +0 -39
- package/dist/orchestration/workflow/data-item.js +0 -52
- package/dist/orchestration/workflow/expression.d.ts +0 -60
- package/dist/orchestration/workflow/expression.js +0 -474
- package/dist/orchestration/workflow/host-executors.d.ts +0 -15
- package/dist/orchestration/workflow/host-executors.js +0 -207
- package/dist/orchestration/workflow/n8n-expression.d.ts +0 -48
- package/dist/orchestration/workflow/n8n-expression.js +0 -95
- package/dist/orchestration/workflow/n8n-import.d.ts +0 -68
- package/dist/orchestration/workflow/n8n-import.js +0 -319
- package/dist/orchestration/workflow/node-registry.d.ts +0 -19
- package/dist/orchestration/workflow/node-registry.js +0 -45
- package/dist/orchestration/workflow/node-schema.d.ts +0 -232
- package/dist/orchestration/workflow/node-schema.js +0 -29
- package/dist/orchestration/workflow/qla-executor-host.d.ts +0 -77
- package/dist/orchestration/workflow/qla-executor-host.js +0 -124
- package/dist/orchestration/workflow/run-checkpoint-store.d.ts +0 -53
- package/dist/orchestration/workflow/run-checkpoint-store.js +0 -59
- package/dist/orchestration/workflow/run-history-store.d.ts +0 -65
- package/dist/orchestration/workflow/run-history-store.js +0 -104
- package/dist/orchestration/workflow/trigger-validation.d.ts +0 -22
- package/dist/orchestration/workflow/trigger-validation.js +0 -241
- package/dist/orchestration/workflow/workflow-audit-store.d.ts +0 -31
- package/dist/orchestration/workflow/workflow-audit-store.js +0 -55
- package/dist/orchestration/workflow/workflow-bundle.d.ts +0 -65
- package/dist/orchestration/workflow/workflow-bundle.js +0 -168
- package/dist/orchestration/workflow/workflow-controller.d.ts +0 -219
- package/dist/orchestration/workflow/workflow-controller.js +0 -522
- package/dist/orchestration/workflow/workflow-patch.d.ts +0 -116
- package/dist/orchestration/workflow/workflow-patch.js +0 -369
- package/dist/orchestration/workflow/workflow-render.d.ts +0 -41
- package/dist/orchestration/workflow/workflow-render.js +0 -108
- package/dist/orchestration/workflow/workflow-runtime.d.ts +0 -171
- package/dist/orchestration/workflow/workflow-runtime.js +0 -474
- package/dist/orchestration/workflow/workflow-scheduler.d.ts +0 -111
- package/dist/orchestration/workflow/workflow-scheduler.js +0 -230
- package/dist/orchestration/workflow/workflow-service.d.ts +0 -14
- package/dist/orchestration/workflow/workflow-service.js +0 -18
- package/dist/orchestration/workflow/workflow-store.d.ts +0 -81
- package/dist/orchestration/workflow/workflow-store.js +0 -123
- package/dist/orchestration/workflow/workflow-trigger.d.ts +0 -35
- package/dist/orchestration/workflow/workflow-trigger.js +0 -1
- package/dist/orchestration/workflow-chat-builder.d.ts +0 -57
- package/dist/orchestration/workflow-chat-builder.js +0 -202
- package/dist/permissions.d.ts +0 -2
- package/dist/permissions.public-api.test.d.ts +0 -1
- package/dist/permissions.public-api.test.js +0 -32
- package/dist/pet-contracts.d.ts +0 -1
- package/dist/protocol/index.d.ts +0 -7
- package/dist/protocol/index.js +0 -7
- package/dist/protocol/methods.d.ts +0 -1190
- package/dist/protocol/methods.js +0 -110
- package/dist/protocol/notifications.d.ts +0 -9
- package/dist/protocol/notifications.js +0 -9
- package/dist/protocol/wire/acp-agent-management.d.ts +0 -456
- package/dist/protocol/wire/acp-agent-management.js +0 -7
- package/dist/protocol/wire/acp-protocol.d.ts +0 -369
- package/dist/protocol/wire/acp-protocol.js +0 -120
- package/dist/protocol/wire/agent-events.d.ts +0 -32
- package/dist/protocol/wire/agent-events.js +0 -113
- package/dist/protocol/wire/agent-methods.d.ts +0 -564
- package/dist/protocol/wire/agent-methods.js +0 -11
- package/dist/protocol/wire/agent-rpc.d.ts +0 -100
- package/dist/protocol/wire/agent-rpc.js +0 -72
- package/dist/protocol/wire/capability-manifest.d.ts +0 -112
- package/dist/protocol/wire/capability-manifest.js +0 -149
- package/dist/protocol/wire/capability-transport.d.ts +0 -207
- package/dist/protocol/wire/capability-transport.js +0 -1
- package/dist/protocol/wire/channel-ingress.d.ts +0 -29
- package/dist/protocol/wire/channel-ingress.js +0 -1
- package/dist/protocol/wire/channel.d.ts +0 -89
- package/dist/protocol/wire/channel.js +0 -1
- package/dist/protocol/wire/chat-types.d.ts +0 -106
- package/dist/protocol/wire/chat-types.js +0 -7
- package/dist/protocol/wire/checkpoint-runtime.d.ts +0 -61
- package/dist/protocol/wire/checkpoint-runtime.js +0 -499
- package/dist/protocol/wire/checkpoint.d.ts +0 -72
- package/dist/protocol/wire/checkpoint.js +0 -12
- package/dist/protocol/wire/execution.d.ts +0 -391
- package/dist/protocol/wire/execution.js +0 -1
- package/dist/protocol/wire/gateway-contract.d.ts +0 -61
- package/dist/protocol/wire/gateway-contract.js +0 -236
- package/dist/protocol/wire/gateway-contract.test.d.ts +0 -1
- package/dist/protocol/wire/gateway-contract.test.js +0 -123
- package/dist/protocol/wire/gateway-rpc.d.ts +0 -652
- package/dist/protocol/wire/gateway-rpc.js +0 -58
- package/dist/protocol/wire/gateway.d.ts +0 -62
- package/dist/protocol/wire/gateway.js +0 -1
- package/dist/protocol/wire/hook-protocol.d.ts +0 -37
- package/dist/protocol/wire/hook-protocol.js +0 -2
- package/dist/protocol/wire/index.d.ts +0 -28
- package/dist/protocol/wire/index.js +0 -27
- package/dist/protocol/wire/memory-provider-lifecycle.d.ts +0 -82
- package/dist/protocol/wire/memory-provider-lifecycle.js +0 -24
- package/dist/protocol/wire/notification-payloads.d.ts +0 -918
- package/dist/protocol/wire/notification-payloads.js +0 -13
- package/dist/protocol/wire/pet-contracts.d.ts +0 -76
- package/dist/protocol/wire/pet-contracts.js +0 -23
- package/dist/protocol/wire/provider-runtime-contract.d.ts +0 -66
- package/dist/protocol/wire/provider-runtime-contract.js +0 -23
- package/dist/protocol/wire/provider-runtime-core.d.ts +0 -147
- package/dist/protocol/wire/provider-runtime-core.js +0 -488
- package/dist/protocol/wire/provider-runtime-io.d.ts +0 -20
- package/dist/protocol/wire/provider-runtime-io.js +0 -57
- package/dist/protocol/wire/resource-manifest.d.ts +0 -68
- package/dist/protocol/wire/resource-manifest.js +0 -174
- package/dist/protocol/wire/session.d.ts +0 -32
- package/dist/protocol/wire/session.js +0 -1
- package/dist/protocol/wire/thread-protocol.d.ts +0 -145
- package/dist/protocol/wire/thread-protocol.js +0 -13
- package/dist/protocol/wire/transport.d.ts +0 -57
- package/dist/protocol/wire/transport.js +0 -1
- package/dist/protocol/wire/turn.d.ts +0 -208
- package/dist/protocol/wire/turn.js +0 -1
- package/dist/protocol/wire/web-capability.d.ts +0 -54
- package/dist/protocol/wire/web-capability.js +0 -52
- package/dist/runtime/community/community-consent-client.d.ts +0 -142
- package/dist/runtime/community/community-consent-client.js +0 -381
- package/dist/runtime/community/community-consent-client.test.d.ts +0 -1
- package/dist/runtime/community/community-consent-client.test.js +0 -491
- package/dist/runtime/community/community-desensitization-red-team-cli.d.ts +0 -7
- package/dist/runtime/community/community-desensitization-red-team-cli.js +0 -43
- package/dist/runtime/community/community-desensitization-red-team-cli.test.d.ts +0 -1
- package/dist/runtime/community/community-desensitization-red-team-cli.test.js +0 -23
- package/dist/runtime/community/community-desensitization.d.ts +0 -29
- package/dist/runtime/community/community-desensitization.js +0 -81
- package/dist/runtime/community/community-desensitization.test.d.ts +0 -1
- package/dist/runtime/community/community-desensitization.test.js +0 -43
- package/dist/runtime/community/community-discovery-cache.d.ts +0 -24
- package/dist/runtime/community/community-discovery-cache.js +0 -52
- package/dist/runtime/community/community-discovery-coordinator.d.ts +0 -33
- package/dist/runtime/community/community-discovery-coordinator.js +0 -84
- package/dist/runtime/community/community-discovery-coordinator.test.d.ts +0 -1
- package/dist/runtime/community/community-discovery-coordinator.test.js +0 -97
- package/dist/runtime/community/community-pet-publisher.d.ts +0 -30
- package/dist/runtime/community/community-pet-publisher.js +0 -53
- package/dist/runtime/community/community-pet-publisher.test.d.ts +0 -1
- package/dist/runtime/community/community-pet-publisher.test.js +0 -53
- package/dist/runtime/community/community-signal-reporter.d.ts +0 -33
- package/dist/runtime/community/community-signal-reporter.js +0 -85
- package/dist/runtime/community/community-signal-reporter.test.d.ts +0 -1
- package/dist/runtime/community/community-signal-reporter.test.js +0 -100
- package/dist/runtime/community/community-telemetry-metadata.d.ts +0 -4
- package/dist/runtime/community/community-telemetry-metadata.js +0 -42
- package/dist/runtime/community/community-telemetry-recorder.d.ts +0 -6
- package/dist/runtime/community/community-telemetry-recorder.js +0 -31
- package/dist/runtime/community/community-telemetry-types.d.ts +0 -1
- package/dist/runtime/community/community-telemetry-types.js +0 -1
- package/dist/runtime/config/tunable-defaults.d.ts +0 -255
- package/dist/runtime/config/tunable-defaults.js +0 -293
- package/dist/runtime/context/context-compression-strategies.d.ts +0 -301
- package/dist/runtime/context/context-compression-strategies.js +0 -860
- package/dist/runtime/execution/dream-agent.d.ts +0 -260
- package/dist/runtime/execution/dream-agent.js +0 -974
- package/dist/runtime/execution/dream-category-context.d.ts +0 -47
- package/dist/runtime/execution/dream-category-context.js +0 -226
- package/dist/runtime/execution/dream-lock.test.d.ts +0 -1
- package/dist/runtime/execution/dream-lock.test.js +0 -54
- package/dist/runtime/execution/fork-context.d.ts +0 -14
- package/dist/runtime/execution/fork-context.js +0 -20
- package/dist/runtime/execution/fork-context.test.d.ts +0 -1
- package/dist/runtime/execution/fork-context.test.js +0 -101
- package/dist/runtime/execution/forked-agent.d.ts +0 -111
- package/dist/runtime/execution/forked-agent.js +0 -172
- package/dist/runtime/execution/index.d.ts +0 -7
- package/dist/runtime/execution/index.js +0 -8
- package/dist/runtime/execution/memory-decay.d.ts +0 -69
- package/dist/runtime/execution/memory-decay.js +0 -80
- package/dist/runtime/execution/progress-tracker.d.ts +0 -78
- package/dist/runtime/execution/progress-tracker.js +0 -107
- package/dist/runtime/execution/streaming-tool-executor.d.ts +0 -102
- package/dist/runtime/execution/streaming-tool-executor.js +0 -345
- package/dist/runtime/execution/streaming-tool-executor.test.d.ts +0 -1
- package/dist/runtime/execution/streaming-tool-executor.test.js +0 -49
- package/dist/runtime/execution/tool-eligibility.d.ts +0 -36
- package/dist/runtime/execution/tool-eligibility.js +0 -94
- package/dist/runtime/execution/tool-eligibility.test.d.ts +0 -1
- package/dist/runtime/execution/tool-eligibility.test.js +0 -96
- package/dist/runtime/execution/tool-result-storage.d.ts +0 -87
- package/dist/runtime/execution/tool-result-storage.js +0 -274
- package/dist/runtime/hooks/context-compression.d.ts +0 -61
- package/dist/runtime/hooks/context-compression.js +0 -334
- package/dist/runtime/hooks/hook-registry.d.ts +0 -12
- package/dist/runtime/hooks/hook-registry.js +0 -61
- package/dist/runtime/hooks/hook-registry.test.d.ts +0 -1
- package/dist/runtime/hooks/hook-registry.test.js +0 -51
- package/dist/runtime/hooks/index.d.ts +0 -4
- package/dist/runtime/hooks/index.js +0 -5
- package/dist/runtime/hooks/memory-hooks.d.ts +0 -75
- package/dist/runtime/hooks/memory-hooks.js +0 -356
- package/dist/runtime/hooks/skill-recall-hooks.d.ts +0 -37
- package/dist/runtime/hooks/skill-recall-hooks.js +0 -263
- package/dist/runtime/hooks/skill-recall-hooks.test.d.ts +0 -1
- package/dist/runtime/hooks/skill-recall-hooks.test.js +0 -52
- package/dist/runtime/index.d.ts +0 -5
- package/dist/runtime/index.js +0 -13
- package/dist/runtime/infra/acp-detector.d.ts +0 -133
- package/dist/runtime/infra/acp-detector.js +0 -862
- package/dist/runtime/infra/acp-detector.test.d.ts +0 -1
- package/dist/runtime/infra/acp-detector.test.js +0 -164
- package/dist/runtime/infra/acp-host-handler.d.ts +0 -31
- package/dist/runtime/infra/acp-host-handler.js +0 -123
- package/dist/runtime/infra/acp-host-handler.test.d.ts +0 -1
- package/dist/runtime/infra/acp-host-handler.test.js +0 -64
- package/dist/runtime/infra/acp-protocol-adapter.d.ts +0 -146
- package/dist/runtime/infra/acp-protocol-adapter.js +0 -382
- package/dist/runtime/infra/acp-protocol-adapter.test.d.ts +0 -1
- package/dist/runtime/infra/acp-protocol-adapter.test.js +0 -180
- package/dist/runtime/infra/acp-usage-tracker.d.ts +0 -46
- package/dist/runtime/infra/acp-usage-tracker.js +0 -92
- package/dist/runtime/infra/agent-catalog.test.d.ts +0 -1
- package/dist/runtime/infra/agent-catalog.test.js +0 -174
- package/dist/runtime/infra/agent-config-store.d.ts +0 -30
- package/dist/runtime/infra/agent-config-store.js +0 -115
- package/dist/runtime/infra/agent-install-runner.d.ts +0 -57
- package/dist/runtime/infra/agent-install-runner.js +0 -123
- package/dist/runtime/infra/agent-install-runner.test.d.ts +0 -1
- package/dist/runtime/infra/agent-install-runner.test.js +0 -103
- package/dist/runtime/infra/agent-paths.d.ts +0 -67
- package/dist/runtime/infra/agent-paths.js +0 -167
- package/dist/runtime/infra/agent-paths.test.d.ts +0 -1
- package/dist/runtime/infra/agent-paths.test.js +0 -49
- package/dist/runtime/infra/agent-process.d.ts +0 -299
- package/dist/runtime/infra/agent-process.js +0 -1318
- package/dist/runtime/infra/background-tasks.d.ts +0 -115
- package/dist/runtime/infra/background-tasks.js +0 -249
- package/dist/runtime/infra/background-tasks.test.d.ts +0 -1
- package/dist/runtime/infra/background-tasks.test.js +0 -242
- package/dist/runtime/infra/checkpoint-backend.d.ts +0 -8
- package/dist/runtime/infra/checkpoint-backend.js +0 -110
- package/dist/runtime/infra/cleanup-registry.d.ts +0 -23
- package/dist/runtime/infra/cleanup-registry.js +0 -34
- package/dist/runtime/infra/default-path-service.d.ts +0 -33
- package/dist/runtime/infra/default-path-service.js +0 -76
- package/dist/runtime/infra/default-path-service.test.d.ts +0 -1
- package/dist/runtime/infra/default-path-service.test.js +0 -31
- package/dist/runtime/infra/disk-storage.d.ts +0 -20
- package/dist/runtime/infra/disk-storage.js +0 -64
- package/dist/runtime/infra/external-agent-approvals.d.ts +0 -41
- package/dist/runtime/infra/external-agent-approvals.js +0 -101
- package/dist/runtime/infra/external-agent-approvals.test.d.ts +0 -1
- package/dist/runtime/infra/external-agent-approvals.test.js +0 -99
- package/dist/runtime/infra/external-agent-pool.d.ts +0 -54
- package/dist/runtime/infra/external-agent-pool.js +0 -0
- package/dist/runtime/infra/external-agent-pool.test.d.ts +0 -1
- package/dist/runtime/infra/external-agent-pool.test.js +0 -102
- package/dist/runtime/infra/file-watcher.d.ts +0 -72
- package/dist/runtime/infra/file-watcher.js +0 -154
- package/dist/runtime/infra/index.d.ts +0 -19
- package/dist/runtime/infra/index.js +0 -19
- package/dist/runtime/infra/key-injection.test.d.ts +0 -1
- package/dist/runtime/infra/key-injection.test.js +0 -88
- package/dist/runtime/infra/key-pool.d.ts +0 -122
- package/dist/runtime/infra/key-pool.js +0 -378
- package/dist/runtime/infra/key-pool.test.d.ts +0 -1
- package/dist/runtime/infra/key-pool.test.js +0 -36
- package/dist/runtime/infra/llmrouter-catalog.d.ts +0 -84
- package/dist/runtime/infra/llmrouter-catalog.js +0 -287
- package/dist/runtime/infra/llmrouter-catalog.test.d.ts +0 -1
- package/dist/runtime/infra/llmrouter-catalog.test.js +0 -80
- package/dist/runtime/infra/llmrouter-zero-config.test.d.ts +0 -1
- package/dist/runtime/infra/llmrouter-zero-config.test.js +0 -64
- package/dist/runtime/infra/mcp-bridge.d.ts +0 -166
- package/dist/runtime/infra/mcp-bridge.js +0 -161
- package/dist/runtime/infra/media-persistence.d.ts +0 -87
- package/dist/runtime/infra/media-persistence.js +0 -278
- package/dist/runtime/infra/migrate-project-skills.d.ts +0 -21
- package/dist/runtime/infra/migrate-project-skills.js +0 -131
- package/dist/runtime/infra/migrate-project-skills.test.d.ts +0 -1
- package/dist/runtime/infra/migrate-project-skills.test.js +0 -69
- package/dist/runtime/infra/model-id-translator.d.ts +0 -22
- package/dist/runtime/infra/model-id-translator.js +0 -74
- package/dist/runtime/infra/model-registry.d.ts +0 -148
- package/dist/runtime/infra/model-registry.js +0 -529
- package/dist/runtime/infra/model-registry.test.d.ts +0 -1
- package/dist/runtime/infra/model-registry.test.js +0 -253
- package/dist/runtime/infra/process-config-port.d.ts +0 -2
- package/dist/runtime/infra/process-config-port.js +0 -5
- package/dist/runtime/infra/profile-storage.test.d.ts +0 -1
- package/dist/runtime/infra/profile-storage.test.js +0 -41
- package/dist/runtime/infra/project-instructions-store.d.ts +0 -30
- package/dist/runtime/infra/project-instructions-store.js +0 -124
- package/dist/runtime/infra/project-skill-manifest.d.ts +0 -32
- package/dist/runtime/infra/project-skill-manifest.js +0 -160
- package/dist/runtime/infra/project-skill-manifest.test.d.ts +0 -1
- package/dist/runtime/infra/project-skill-manifest.test.js +0 -42
- package/dist/runtime/infra/project-store.d.ts +0 -48
- package/dist/runtime/infra/project-store.js +0 -284
- package/dist/runtime/infra/secure-storage.d.ts +0 -81
- package/dist/runtime/infra/secure-storage.js +0 -117
- package/dist/runtime/infra/skill-injector.d.ts +0 -59
- package/dist/runtime/infra/skill-injector.js +0 -155
- package/dist/runtime/infra/skill-injector.test.d.ts +0 -1
- package/dist/runtime/infra/skill-injector.test.js +0 -9
- package/dist/runtime/infra/skill-resolver.d.ts +0 -51
- package/dist/runtime/infra/skill-resolver.js +0 -109
- package/dist/runtime/infra/skill-resolver.test.d.ts +0 -1
- package/dist/runtime/infra/skill-resolver.test.js +0 -72
- package/dist/runtime/infra/task-runtime.d.ts +0 -71
- package/dist/runtime/infra/task-runtime.js +0 -181
- package/dist/runtime/infra/token-budget.d.ts +0 -92
- package/dist/runtime/infra/token-budget.js +0 -170
- package/dist/runtime/infra/worktree-backend.d.ts +0 -86
- package/dist/runtime/infra/worktree-backend.js +0 -522
- package/dist/runtime/memory/categories.d.ts +0 -5
- package/dist/runtime/memory/categories.js +0 -4
- package/dist/runtime/memory/find-relevant-memories.d.ts +0 -70
- package/dist/runtime/memory/find-relevant-memories.js +0 -270
- package/dist/runtime/memory/implicit-extraction.d.ts +0 -58
- package/dist/runtime/memory/implicit-extraction.js +0 -187
- package/dist/runtime/memory/recall-category-filter.d.ts +0 -54
- package/dist/runtime/memory/recall-category-filter.js +0 -215
- package/dist/runtime/permission-model.d.ts +0 -19
- package/dist/runtime/permission-model.js +0 -24
- package/dist/runtime/permission-model.test.d.ts +0 -1
- package/dist/runtime/permission-model.test.js +0 -32
- package/dist/runtime/pet/hatch-pet-runner.d.ts +0 -18
- package/dist/runtime/pet/hatch-pet-runner.js +0 -120
- package/dist/runtime/pet/hatch-pet-runner.test.d.ts +0 -1
- package/dist/runtime/pet/hatch-pet-runner.test.js +0 -28
- package/dist/runtime/pet/index.d.ts +0 -18
- package/dist/runtime/pet/index.js +0 -9
- package/dist/runtime/pet/pet-community-assets.d.ts +0 -13
- package/dist/runtime/pet/pet-community-assets.js +0 -106
- package/dist/runtime/pet/pet-file-loader.d.ts +0 -5
- package/dist/runtime/pet/pet-file-loader.js +0 -11
- package/dist/runtime/pet/pet-growth-engine.d.ts +0 -2
- package/dist/runtime/pet/pet-growth-engine.js +0 -1
- package/dist/runtime/pet/pet-profile-service.d.ts +0 -91
- package/dist/runtime/pet/pet-profile-service.js +0 -296
- package/dist/runtime/pet/pet-profile-service.test.d.ts +0 -1
- package/dist/runtime/pet/pet-profile-service.test.js +0 -171
- package/dist/runtime/pet/pet-reaction-engine.d.ts +0 -11
- package/dist/runtime/pet/pet-reaction-engine.js +0 -11
- package/dist/runtime/pet/pet-reaction-engine.test.d.ts +0 -1
- package/dist/runtime/pet/pet-reaction-engine.test.js +0 -12
- package/dist/runtime/pet/pet-soul-service.d.ts +0 -21
- package/dist/runtime/pet/pet-soul-service.js +0 -63
- package/dist/runtime/pet/pet-soul-service.test.d.ts +0 -1
- package/dist/runtime/pet/pet-soul-service.test.js +0 -115
- package/dist/runtime/pet/pet-types.d.ts +0 -1
- package/dist/runtime/pet/pet-types.js +0 -1
- package/dist/runtime/pet/petdex-asset.d.ts +0 -32
- package/dist/runtime/pet/petdex-asset.js +0 -242
- package/dist/runtime/pet/petdex-asset.test.d.ts +0 -1
- package/dist/runtime/pet/petdex-asset.test.js +0 -257
- package/dist/runtime/pet/petdex-forge-service.d.ts +0 -19
- package/dist/runtime/pet/petdex-forge-service.js +0 -820
- package/dist/runtime/pet/petdex-forge-service.test.d.ts +0 -1
- package/dist/runtime/pet/petdex-forge-service.test.js +0 -142
- package/dist/runtime/ports/agent-execution-contracts.d.ts +0 -182
- package/dist/runtime/ports/agent-execution-contracts.js +0 -1
- package/dist/runtime/ports/agent-runtime-ports.d.ts +0 -76
- package/dist/runtime/ports/agent-runtime-ports.js +0 -1
- package/dist/runtime/ports/checkpoint-contracts.d.ts +0 -19
- package/dist/runtime/ports/checkpoint-contracts.js +0 -1
- package/dist/runtime/ports/config-port.d.ts +0 -4
- package/dist/runtime/ports/config-port.js +0 -5
- package/dist/runtime/ports/index.d.ts +0 -19
- package/dist/runtime/ports/index.js +0 -5
- package/dist/runtime/ports/memory-provider.d.ts +0 -181
- package/dist/runtime/ports/memory-provider.js +0 -1
- package/dist/runtime/ports/memory-recall-source.d.ts +0 -3
- package/dist/runtime/ports/memory-recall-source.js +0 -1
- package/dist/runtime/ports/memory-writer.d.ts +0 -21
- package/dist/runtime/ports/memory-writer.js +0 -1
- package/dist/runtime/ports/model-transport-contracts.d.ts +0 -125
- package/dist/runtime/ports/model-transport-contracts.js +0 -9
- package/dist/runtime/ports/path-service.d.ts +0 -31
- package/dist/runtime/ports/path-service.js +0 -1
- package/dist/runtime/ports/permission-contracts.d.ts +0 -128
- package/dist/runtime/ports/permission-contracts.js +0 -5
- package/dist/runtime/ports/project-memory-store.d.ts +0 -44
- package/dist/runtime/ports/project-memory-store.js +0 -1
- package/dist/runtime/ports/source-provider.d.ts +0 -39
- package/dist/runtime/ports/source-provider.js +0 -4
- package/dist/runtime/ports/tool-call-contracts.d.ts +0 -16
- package/dist/runtime/ports/tool-call-contracts.js +0 -13
- package/dist/runtime/ports/tool-contracts.d.ts +0 -87
- package/dist/runtime/ports/tool-contracts.js +0 -3
- package/dist/runtime/ports/tool-risk.d.ts +0 -7
- package/dist/runtime/ports/tool-risk.js +0 -16
- package/dist/runtime/ports/web-search-contracts.d.ts +0 -21
- package/dist/runtime/ports/web-search-contracts.js +0 -1
- package/dist/runtime/ports/worktree-contracts.d.ts +0 -22
- package/dist/runtime/ports/worktree-contracts.js +0 -1
- package/dist/runtime/prompt/environment-context.d.ts +0 -60
- package/dist/runtime/prompt/environment-context.js +0 -410
- package/dist/runtime/prompt/environment-context.test.d.ts +0 -1
- package/dist/runtime/prompt/environment-context.test.js +0 -75
- package/dist/runtime/prompt/fresh-workspace-evidence.d.ts +0 -21
- package/dist/runtime/prompt/fresh-workspace-evidence.js +0 -224
- package/dist/runtime/prompt/fresh-workspace-evidence.test.d.ts +0 -1
- package/dist/runtime/prompt/fresh-workspace-evidence.test.js +0 -163
- package/dist/runtime/prompt/index.d.ts +0 -5
- package/dist/runtime/prompt/index.js +0 -6
- package/dist/runtime/prompt/instruction-loader.d.ts +0 -70
- package/dist/runtime/prompt/instruction-loader.js +0 -515
- package/dist/runtime/prompt/instruction-loader.test.d.ts +0 -1
- package/dist/runtime/prompt/instruction-loader.test.js +0 -64
- package/dist/runtime/prompt/prompt-policy.d.ts +0 -12
- package/dist/runtime/prompt/prompt-policy.js +0 -40
- package/dist/runtime/prompt/system-prompt-sections.d.ts +0 -65
- package/dist/runtime/prompt/system-prompt-sections.js +0 -93
- package/dist/runtime/prompt/task-domain.d.ts +0 -82
- package/dist/runtime/prompt/task-domain.js +0 -248
- package/dist/runtime/sandbox/index.d.ts +0 -2
- package/dist/runtime/sandbox/index.js +0 -2
- package/dist/runtime/sandbox/skill-sandbox.d.ts +0 -53
- package/dist/runtime/sandbox/skill-sandbox.js +0 -93
- package/dist/runtime/sandbox/skill-sandbox.test.d.ts +0 -1
- package/dist/runtime/sandbox/skill-sandbox.test.js +0 -172
- package/dist/runtime/sandbox/windows-skill-sandbox.d.ts +0 -78
- package/dist/runtime/sandbox/windows-skill-sandbox.js +0 -128
- package/dist/runtime/session/group-session-split.d.ts +0 -38
- package/dist/runtime/session/group-session-split.js +0 -99
- package/dist/runtime/session/index.d.ts +0 -4
- package/dist/runtime/session/index.js +0 -5
- package/dist/runtime/session/session-catalog.d.ts +0 -4
- package/dist/runtime/session/session-catalog.js +0 -59
- package/dist/runtime/session/session-locator.d.ts +0 -26
- package/dist/runtime/session/session-locator.js +0 -91
- package/dist/runtime/session/session-locator.test.d.ts +0 -1
- package/dist/runtime/session/session-locator.test.js +0 -59
- package/dist/runtime/session/session-metadata-store.d.ts +0 -8
- package/dist/runtime/session/session-metadata-store.js +0 -167
- package/dist/runtime/session/session-paths.d.ts +0 -9
- package/dist/runtime/session/session-paths.js +0 -27
- package/dist/runtime/session/session-persistence.d.ts +0 -16
- package/dist/runtime/session/session-persistence.js +0 -16
- package/dist/runtime/session/session-persistence.test.d.ts +0 -1
- package/dist/runtime/session/session-persistence.test.js +0 -237
- package/dist/runtime/session/session-resume.d.ts +0 -4
- package/dist/runtime/session/session-resume.js +0 -60
- package/dist/runtime/session/session-schema.d.ts +0 -10
- package/dist/runtime/session/session-schema.js +0 -35
- package/dist/runtime/session/session-state.d.ts +0 -96
- package/dist/runtime/session/session-state.js +0 -180
- package/dist/runtime/session/session-summary.d.ts +0 -5
- package/dist/runtime/session/session-summary.js +0 -67
- package/dist/runtime/session/session-transcript-store.d.ts +0 -13
- package/dist/runtime/session/session-transcript-store.js +0 -109
- package/dist/runtime/session/session-types.d.ts +0 -77
- package/dist/runtime/session/session-types.js +0 -1
- package/dist/runtime/session/session-write-queue.d.ts +0 -2
- package/dist/runtime/session/session-write-queue.js +0 -48
- package/dist/runtime/tasks/task-types.d.ts +0 -166
- package/dist/runtime/tasks/task-types.js +0 -64
- package/dist/server/search-svc.d.ts +0 -1
- package/dist/server/search-svc.js +0 -113
- package/dist/skills/index.d.ts +0 -6
- package/dist/skills/index.js +0 -5
- package/dist/skills/mcp/index.d.ts +0 -1
- package/dist/skills/mcp/index.js +0 -3
- package/dist/skills/mcp/mcp-manager.d.ts +0 -75
- package/dist/skills/mcp/mcp-manager.js +0 -358
- package/dist/skills/mcp/mcp-tool-metadata.d.ts +0 -18
- package/dist/skills/mcp/mcp-tool-metadata.js +0 -48
- package/dist/skills/memory/categories.d.ts +0 -1
- package/dist/skills/memory/categories.js +0 -1
- package/dist/skills/memory/find-relevant-memories.d.ts +0 -1
- package/dist/skills/memory/find-relevant-memories.js +0 -1
- package/dist/skills/memory/implicit-extraction.d.ts +0 -1
- package/dist/skills/memory/implicit-extraction.js +0 -1
- package/dist/skills/memory/local-embedding.d.ts +0 -80
- package/dist/skills/memory/local-embedding.js +0 -210
- package/dist/skills/memory/local-memory-provider.d.ts +0 -257
- package/dist/skills/memory/local-memory-provider.js +0 -486
- package/dist/skills/memory/local-store-records.d.ts +0 -184
- package/dist/skills/memory/local-store-records.js +0 -1
- package/dist/skills/memory/local-store.d.ts +0 -479
- package/dist/skills/memory/local-store.js +0 -1022
- package/dist/skills/memory/memdir.d.ts +0 -93
- package/dist/skills/memory/memdir.js +0 -530
- package/dist/skills/memory/memory-attachment-store.d.ts +0 -62
- package/dist/skills/memory/memory-attachment-store.js +0 -0
- package/dist/skills/memory/memory-consolidation.d.ts +0 -43
- package/dist/skills/memory/memory-consolidation.js +0 -462
- package/dist/skills/memory/memory-db-path.d.ts +0 -13
- package/dist/skills/memory/memory-db-path.js +0 -27
- package/dist/skills/memory/memory-embedding-config.d.ts +0 -31
- package/dist/skills/memory/memory-embedding-config.js +0 -66
- package/dist/skills/memory/memory-provider-factory.d.ts +0 -33
- package/dist/skills/memory/memory-provider-factory.js +0 -79
- package/dist/skills/memory/memory-tool.d.ts +0 -85
- package/dist/skills/memory/memory-tool.js +0 -326
- package/dist/skills/memory/memory-vector-utils.d.ts +0 -2
- package/dist/skills/memory/memory-vector-utils.js +0 -19
- package/dist/skills/memory/recall-category-filter.d.ts +0 -1
- package/dist/skills/memory/recall-category-filter.js +0 -1
- package/dist/skills/memory/sqlite-memory-mappers.d.ts +0 -6
- package/dist/skills/memory/sqlite-memory-mappers.js +0 -104
- package/dist/skills/memory/sqlite-memory-schema.d.ts +0 -3
- package/dist/skills/memory/sqlite-memory-schema.js +0 -152
- package/dist/skills/permissions/bash-classifier.d.ts +0 -30
- package/dist/skills/permissions/bash-classifier.js +0 -174
- package/dist/skills/permissions/classifier-cache.d.ts +0 -51
- package/dist/skills/permissions/classifier-cache.js +0 -103
- package/dist/skills/permissions/community-sandbox-policy.d.ts +0 -3
- package/dist/skills/permissions/community-sandbox-policy.js +0 -233
- package/dist/skills/permissions/community-sandbox-red-team-cli.d.ts +0 -7
- package/dist/skills/permissions/community-sandbox-red-team-cli.js +0 -43
- package/dist/skills/permissions/community-sandbox-red-team.d.ts +0 -32
- package/dist/skills/permissions/community-sandbox-red-team.js +0 -221
- package/dist/skills/permissions/denial-audit-log.d.ts +0 -52
- package/dist/skills/permissions/denial-audit-log.js +0 -80
- package/dist/skills/permissions/denial-tracking.d.ts +0 -42
- package/dist/skills/permissions/denial-tracking.js +0 -60
- package/dist/skills/permissions/group-security-policy.d.ts +0 -15
- package/dist/skills/permissions/group-security-policy.js +0 -60
- package/dist/skills/permissions/hook-runner.d.ts +0 -120
- package/dist/skills/permissions/hook-runner.js +0 -545
- package/dist/skills/permissions/index.d.ts +0 -13
- package/dist/skills/permissions/index.js +0 -8
- package/dist/skills/permissions/operation-classifier.d.ts +0 -43
- package/dist/skills/permissions/operation-classifier.js +0 -251
- package/dist/skills/permissions/permission-classifier.d.ts +0 -41
- package/dist/skills/permissions/permission-classifier.js +0 -186
- package/dist/skills/permissions/rule-engine.d.ts +0 -49
- package/dist/skills/permissions/rule-engine.js +0 -285
- package/dist/skills/permissions/settings-watcher.d.ts +0 -19
- package/dist/skills/permissions/settings-watcher.js +0 -121
- package/dist/skills/permissions/types.d.ts +0 -2
- package/dist/skills/permissions/types.js +0 -1
- package/dist/skills/plugins/index.d.ts +0 -2
- package/dist/skills/plugins/index.js +0 -3
- package/dist/skills/plugins/plugin-api.d.ts +0 -38
- package/dist/skills/plugins/plugin-api.js +0 -18
- package/dist/skills/plugins/plugin-loader.d.ts +0 -57
- package/dist/skills/plugins/plugin-loader.js +0 -254
- package/dist/skills/plugins/plugin-marketplace.d.ts +0 -61
- package/dist/skills/plugins/plugin-marketplace.js +0 -229
- package/dist/skills/portable-tool.d.ts +0 -165
- package/dist/skills/portable-tool.js +0 -34
- package/dist/skills/skill-system/skill-frontmatter.d.ts +0 -19
- package/dist/skills/skill-system/skill-frontmatter.js +0 -344
- package/dist/skills/skill-system/skill-guard.d.ts +0 -23
- package/dist/skills/skill-system/skill-guard.js +0 -229
- package/dist/skills/skill-system/skill-lifecycle.d.ts +0 -93
- package/dist/skills/skill-system/skill-lifecycle.js +0 -236
- package/dist/skills/skill-system/skill-source.d.ts +0 -38
- package/dist/skills/skill-system/skill-source.js +0 -75
- package/dist/skills/skill-system/skill-types.d.ts +0 -140
- package/dist/skills/skill-system/skill-types.js +0 -6
- package/dist/skills/skill-system/skill-validation.d.ts +0 -29
- package/dist/skills/skill-system/skill-validation.js +0 -154
- package/dist/skills/tool-access.d.ts +0 -30
- package/dist/skills/tool-access.js +0 -58
- package/dist/skills/tools/agent-tool.d.ts +0 -102
- package/dist/skills/tools/agent-tool.js +0 -159
- package/dist/skills/tools/ask-user-tool.d.ts +0 -80
- package/dist/skills/tools/ask-user-tool.js +0 -121
- package/dist/skills/tools/brief-tool.d.ts +0 -74
- package/dist/skills/tools/brief-tool.js +0 -95
- package/dist/skills/tools/browser-tool.d.ts +0 -114
- package/dist/skills/tools/browser-tool.js +0 -160
- package/dist/skills/tools/checkpoint-tool.d.ts +0 -66
- package/dist/skills/tools/checkpoint-tool.js +0 -102
- package/dist/skills/tools/config-tool.d.ts +0 -61
- package/dist/skills/tools/config-tool.js +0 -123
- package/dist/skills/tools/cron-tool.d.ts +0 -96
- package/dist/skills/tools/cron-tool.js +0 -165
- package/dist/skills/tools/edit-tool.d.ts +0 -43
- package/dist/skills/tools/edit-tool.js +0 -72
- package/dist/skills/tools/exec-tool.d.ts +0 -117
- package/dist/skills/tools/exec-tool.js +0 -354
- package/dist/skills/tools/file-management-tool.d.ts +0 -90
- package/dist/skills/tools/file-management-tool.js +0 -166
- package/dist/skills/tools/image-generate-tool.d.ts +0 -74
- package/dist/skills/tools/image-generate-tool.js +0 -91
- package/dist/skills/tools/instructions-tool.d.ts +0 -65
- package/dist/skills/tools/instructions-tool.js +0 -209
- package/dist/skills/tools/lsp-tool.d.ts +0 -153
- package/dist/skills/tools/lsp-tool.js +0 -230
- package/dist/skills/tools/media-cancel-tool.d.ts +0 -30
- package/dist/skills/tools/media-cancel-tool.js +0 -46
- package/dist/skills/tools/monitor-tool.d.ts +0 -113
- package/dist/skills/tools/monitor-tool.js +0 -129
- package/dist/skills/tools/music-generate-tool.d.ts +0 -80
- package/dist/skills/tools/music-generate-tool.js +0 -98
- package/dist/skills/tools/notebook-edit-tool.d.ts +0 -15
- package/dist/skills/tools/notebook-edit-tool.js +0 -206
- package/dist/skills/tools/patch-tool.d.ts +0 -52
- package/dist/skills/tools/patch-tool.js +0 -556
- package/dist/skills/tools/petdex-create-tool.d.ts +0 -47
- package/dist/skills/tools/petdex-create-tool.js +0 -95
- package/dist/skills/tools/plan-mode-tool.d.ts +0 -98
- package/dist/skills/tools/plan-mode-tool.js +0 -164
- package/dist/skills/tools/read-tool.d.ts +0 -51
- package/dist/skills/tools/read-tool.js +0 -88
- package/dist/skills/tools/search-tool.d.ts +0 -112
- package/dist/skills/tools/search-tool.js +0 -226
- package/dist/skills/tools/shell/bash-provider.d.ts +0 -26
- package/dist/skills/tools/shell/bash-provider.js +0 -125
- package/dist/skills/tools/shell/command-classification.d.ts +0 -44
- package/dist/skills/tools/shell/command-classification.js +0 -119
- package/dist/skills/tools/shell/command-semantics.d.ts +0 -14
- package/dist/skills/tools/shell/command-semantics.js +0 -87
- package/dist/skills/tools/shell/destructive-command-warning.d.ts +0 -10
- package/dist/skills/tools/shell/destructive-command-warning.js +0 -80
- package/dist/skills/tools/shell/exec-permissions.d.ts +0 -52
- package/dist/skills/tools/shell/exec-permissions.js +0 -277
- package/dist/skills/tools/shell/index.d.ts +0 -18
- package/dist/skills/tools/shell/index.js +0 -18
- package/dist/skills/tools/shell/powershell-provider.d.ts +0 -15
- package/dist/skills/tools/shell/powershell-provider.js +0 -80
- package/dist/skills/tools/shell/sandbox/helper-resolver.d.ts +0 -7
- package/dist/skills/tools/shell/sandbox/helper-resolver.js +0 -20
- package/dist/skills/tools/shell/sandbox/landlock-argv.d.ts +0 -6
- package/dist/skills/tools/shell/sandbox/landlock-argv.js +0 -13
- package/dist/skills/tools/shell/sandbox/platform.d.ts +0 -3
- package/dist/skills/tools/shell/sandbox/platform.js +0 -13
- package/dist/skills/tools/shell/sandbox/sandbox-launcher.d.ts +0 -15
- package/dist/skills/tools/shell/sandbox/sandbox-launcher.js +0 -59
- package/dist/skills/tools/shell/sandbox/sandbox-scope.d.ts +0 -6
- package/dist/skills/tools/shell/sandbox/sandbox-scope.js +0 -17
- package/dist/skills/tools/shell/sandbox/sandbox-types.d.ts +0 -47
- package/dist/skills/tools/shell/sandbox/sandbox-types.js +0 -1
- package/dist/skills/tools/shell/sandbox/seatbelt-profile.d.ts +0 -6
- package/dist/skills/tools/shell/sandbox/seatbelt-profile.js +0 -28
- package/dist/skills/tools/shell/shell-command.d.ts +0 -54
- package/dist/skills/tools/shell/shell-command.js +0 -347
- package/dist/skills/tools/shell/shell-exec.d.ts +0 -38
- package/dist/skills/tools/shell/shell-exec.js +0 -202
- package/dist/skills/tools/shell/shell-provider.d.ts +0 -85
- package/dist/skills/tools/shell/shell-provider.js +0 -38
- package/dist/skills/tools/shell/subprocess-env.d.ts +0 -6
- package/dist/skills/tools/shell/subprocess-env.js +0 -87
- package/dist/skills/tools/shell/task-output.d.ts +0 -44
- package/dist/skills/tools/shell/task-output.js +0 -137
- package/dist/skills/tools/skill-tool.d.ts +0 -106
- package/dist/skills/tools/skill-tool.js +0 -265
- package/dist/skills/tools/sleep-tool.d.ts +0 -49
- package/dist/skills/tools/sleep-tool.js +0 -81
- package/dist/skills/tools/structured-output-tool.d.ts +0 -116
- package/dist/skills/tools/structured-output-tool.js +0 -176
- package/dist/skills/tools/stt-tool.d.ts +0 -33
- package/dist/skills/tools/stt-tool.js +0 -58
- package/dist/skills/tools/task-tool.d.ts +0 -125
- package/dist/skills/tools/task-tool.js +0 -390
- package/dist/skills/tools/team-tool.d.ts +0 -156
- package/dist/skills/tools/team-tool.js +0 -173
- package/dist/skills/tools/three-d-generate-tool.d.ts +0 -46
- package/dist/skills/tools/three-d-generate-tool.js +0 -66
- package/dist/skills/tools/tool-search-tool.d.ts +0 -62
- package/dist/skills/tools/tool-search-tool.js +0 -187
- package/dist/skills/tools/tts-tool.d.ts +0 -50
- package/dist/skills/tools/tts-tool.js +0 -58
- package/dist/skills/tools/video-edit-tool.d.ts +0 -72
- package/dist/skills/tools/video-edit-tool.js +0 -84
- package/dist/skills/tools/video-generate-tool.d.ts +0 -162
- package/dist/skills/tools/video-generate-tool.js +0 -178
- package/dist/skills/tools/video-merge-tool.d.ts +0 -105
- package/dist/skills/tools/video-merge-tool.js +0 -95
- package/dist/skills/tools/video-upscale-tool.d.ts +0 -45
- package/dist/skills/tools/video-upscale-tool.js +0 -57
- package/dist/skills/tools/voice-clone-tool.d.ts +0 -40
- package/dist/skills/tools/voice-clone-tool.js +0 -58
- package/dist/skills/tools/web-answer-tool.d.ts +0 -27
- package/dist/skills/tools/web-answer-tool.js +0 -124
- package/dist/skills/tools/web-fetch-tool.d.ts +0 -80
- package/dist/skills/tools/web-fetch-tool.js +0 -95
- package/dist/skills/tools/web-research-tool.d.ts +0 -48
- package/dist/skills/tools/web-research-tool.js +0 -254
- package/dist/skills/tools/web-search-tool.d.ts +0 -46
- package/dist/skills/tools/web-search-tool.js +0 -95
- package/dist/skills/tools/workflow-tool.d.ts +0 -45
- package/dist/skills/tools/workflow-tool.js +0 -113
- package/dist/skills/tools/worktree-tool.d.ts +0 -69
- package/dist/skills/tools/worktree-tool.js +0 -147
- package/dist/skills/tools/write-tool.d.ts +0 -45
- package/dist/skills/tools/write-tool.js +0 -83
- package/dist/skills/tools.d.ts +0 -45
- package/dist/skills/tools.js +0 -165
- package/dist/skills/web-search/brave-source.d.ts +0 -2
- package/dist/skills/web-search/brave-source.js +0 -36
- package/dist/skills/web-search/crawl4ai-extractor.d.ts +0 -15
- package/dist/skills/web-search/crawl4ai-extractor.js +0 -92
- package/dist/skills/web-search/embedding-rerank.d.ts +0 -13
- package/dist/skills/web-search/embedding-rerank.js +0 -44
- package/dist/skills/web-search/exa-source.d.ts +0 -2
- package/dist/skills/web-search/exa-source.js +0 -43
- package/dist/skills/web-search/multi-source-backend.d.ts +0 -23
- package/dist/skills/web-search/multi-source-backend.js +0 -99
- package/dist/skills/web-search/redis-source-cache.d.ts +0 -6
- package/dist/skills/web-search/redis-source-cache.js +0 -44
- package/dist/skills/web-search/search-svc-source.d.ts +0 -4
- package/dist/skills/web-search/search-svc-source.js +0 -64
- package/dist/skills/web-search/searxng-source.d.ts +0 -2
- package/dist/skills/web-search/searxng-source.js +0 -91
- package/dist/skills/web-search/serper-source.d.ts +0 -2
- package/dist/skills/web-search/serper-source.js +0 -33
- package/dist/skills/web-search/source-factory.d.ts +0 -5
- package/dist/skills/web-search/source-factory.js +0 -15
- package/dist/skills/web-search/stability.d.ts +0 -26
- package/dist/skills/web-search/stability.js +0 -57
- package/dist/transport/acp-event-emitter.d.ts +0 -21
- package/dist/transport/acp-event-emitter.js +0 -142
- package/dist/transport/acp-event-emitter.test.d.ts +0 -1
- package/dist/transport/acp-event-emitter.test.js +0 -87
- package/dist/transport/acp-server.d.ts +0 -169
- package/dist/transport/acp-server.js +0 -480
- package/dist/transport/acp-server.test.d.ts +0 -1
- package/dist/transport/acp-server.test.js +0 -230
- package/dist/transport/index.d.ts +0 -7
- package/dist/transport/index.js +0 -5
- package/dist/transport/io-transport.d.ts +0 -19
- package/dist/transport/io-transport.js +0 -8
|
@@ -1,820 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Petdex forge — drives the vendored OpenAI Codex Hatch-Pet Python pipeline
|
|
3
|
-
* (Apache-2.0, under vendor/hatch-pet) to produce Codex-compatible animated pet
|
|
4
|
-
* sprite atlases.
|
|
5
|
-
*
|
|
6
|
-
* The forge owns NO image-processing heuristics. Chroma-key background removal,
|
|
7
|
-
* stable-slots frame extraction, atlas composition and validation are all done
|
|
8
|
-
* by the deterministic vendored Python scripts — the same pipeline OpenAI ships
|
|
9
|
-
* for Codex `/hatch`. This module only:
|
|
10
|
-
* 1. spawns prepare_pet_run.py to lay out a run directory (prompts, layout
|
|
11
|
-
* guides, chroma-key selection, imagegen-jobs.json),
|
|
12
|
-
* 2. fulfils each generation job by calling the provider-core media generator,
|
|
13
|
-
* 3. spawns extract / inspect / compose / validate / contact-sheet / preview,
|
|
14
|
-
* 4. reads the composed atlas back and packages it through pet-core.
|
|
15
|
-
*
|
|
16
|
-
* Prompts come exclusively from the Python prompt files (single source of
|
|
17
|
-
* truth, chroma-hex + per-state frame counts baked in) — there is no TS prompt
|
|
18
|
-
* builder path.
|
|
19
|
-
*/
|
|
20
|
-
import fs from "node:fs/promises";
|
|
21
|
-
import os from "node:os";
|
|
22
|
-
import path from "node:path";
|
|
23
|
-
import { createCanvas, loadImage } from "@napi-rs/canvas";
|
|
24
|
-
import { createPetdexAssetFromSpritesheet, writePetdexAssetPackage, PETDEX_ATLAS_CONTRACT } from "./petdex-asset.js";
|
|
25
|
-
import { isHatchPetAvailable, runHatchPetScript } from "./hatch-pet-runner.js";
|
|
26
|
-
import { PETDEX_REFERENCE_IMAGE_SIZE, buildPetdexProductionRun, petdexSourceMode, accumulatePetdexUsage, } from "@xiaozhiclaw/pet-core";
|
|
27
|
-
export { PETDEX_PRODUCTION_SCHEMA, } from "@xiaozhiclaw/pet-core";
|
|
28
|
-
const CANONICAL_BASE_REL = "references/canonical-base.png";
|
|
29
|
-
const BASE_STYLE = "single centered full-body desktop pet character on a flat chroma-key background, readable at pet size";
|
|
30
|
-
const ROW_STYLE = "one horizontal animation row strip with evenly spaced full-body frames sharing a single consistent character identity";
|
|
31
|
-
// Row strips are generated at a wide, provider-accepted resolution rather than
|
|
32
|
-
// the (tiny) layout-guide dimensions: image providers like Volcengine Seedream
|
|
33
|
-
// enforce a minimum pixel count (~1920x1920 = 3.69M px) that a 1536x208 guide
|
|
34
|
-
// strip violates. extract_strip_frames slots by frame count, independent of the
|
|
35
|
-
// generated resolution, so a 4096x1024 (4:1) strip extracts cleanly.
|
|
36
|
-
const ROW_STRIP_SIZE = "4096x1024";
|
|
37
|
-
// Image models do not honour the requested chroma-key hex exactly (e.g. Volcengine
|
|
38
|
-
// Seedream renders a deep purple-magenta ~#9413A3 instead of pure #FF00FF), so
|
|
39
|
-
// keying on the configured fallback leaves the real background behind. We detect
|
|
40
|
-
// the actual flat background from the generated base and key extraction on that.
|
|
41
|
-
const FALLBACK_CHROMA_HEX = "#FF00FF";
|
|
42
|
-
const CHROMA_KEY_THRESHOLD = "110";
|
|
43
|
-
// Component-based extraction with a shared viewport: finds the actual pose blobs
|
|
44
|
-
// (merging detached bits — sweat drops, antenna balls — into the nearest pose by
|
|
45
|
-
// x-position) so a drifting pose is never sliced across two cells, and crops every
|
|
46
|
-
// pose to ONE shared viewport so the character keeps a stable scale across the row
|
|
47
|
-
// (no size popping). This needs clean flat strips with no separator lines, which
|
|
48
|
-
// the layout-guide-suppression + anti-frame guard now produce; pure equal-slot
|
|
49
|
-
// "slots" was a stopgap for the separator era and could halve a misplaced pose.
|
|
50
|
-
const EXTRACT_METHOD = "stable-slots";
|
|
51
|
-
// inspect_frames' chroma-adjacent check must stay BELOW the extraction threshold:
|
|
52
|
-
// extraction already removes everything within CHROMA_KEY_THRESHOLD of the key,
|
|
53
|
-
// so anything still opaque is intentionally-kept character. The default (150) is
|
|
54
|
-
// above our 110 and would flag the character's own edges as "chroma residue",
|
|
55
|
-
// triggering an endless false-positive repair storm.
|
|
56
|
-
const INSPECT_CHROMA_ADJ_THRESHOLD = "90";
|
|
57
|
-
// Some image models (e.g. Volcengine Seedream) interpret "N frames in a row" as
|
|
58
|
-
// a gallery of framed pictures — drawing white borders / mats / panels around
|
|
59
|
-
// each pose. Those bright frames survive chroma keying and show as bars in the
|
|
60
|
-
// atlas. The vendored Codex prompts (tuned for GPT-image) don't forbid this, so
|
|
61
|
-
// we append an explicit anti-frame guard the orchestrator owns.
|
|
62
|
-
const GENERATION_LAYOUT_GUARD = [
|
|
63
|
-
"STRICT BACKGROUND: render one single continuous flat background of the same solid color filling the entire image edge to edge.",
|
|
64
|
-
"Do NOT draw any picture frame, framed panel, border, mat, outline, box, gallery frame, white or light margin, or divider around or between the poses.",
|
|
65
|
-
"The poses sit directly on the one seamless flat background, evenly spaced, with nothing separating them.",
|
|
66
|
-
"IDENTITY LOCK: every frame is the EXACT same character — identical species, body shape, proportions, colors, palette, face, and markings. Do not redesign, restyle, recolor, or resize the character between frames; only its pose changes.",
|
|
67
|
-
"Each pose is ONE connected solid silhouette at a consistent size. No detached parts, sweat drops, tears, dust, puffs, sparkles, speed lines, motion blur, floating effects, or drop shadows.",
|
|
68
|
-
].join(" ");
|
|
69
|
-
const MIRROR_DECISION_NOTE = "Leftward gait is the framewise horizontal mirror of the approved rightward row, preserving frame order and timing semantics.";
|
|
70
|
-
// Vision-QA loop (Codex method): generate up to N candidates per job and keep the
|
|
71
|
-
// first that a vision model accepts; if none pass, fall through with the last (the
|
|
72
|
-
// deterministic validate_atlas gate still protects the contract). Default 2.
|
|
73
|
-
const DEFAULT_CANDIDATES = 2;
|
|
74
|
-
const MAX_QA_PROMPTS = 2; // initial prompt, then the row's retry prompt
|
|
75
|
-
// ── Public API ─────────────────────────────────────────────
|
|
76
|
-
export async function forgePetdexAsset(input, generateImage, options = {}) {
|
|
77
|
-
if (!(await isHatchPetAvailable())) {
|
|
78
|
-
throw new Error("Petdex forge requires the vendored Hatch-Pet pipeline (Python with Pillow). Install Python + Pillow or set QLOGICAGENT_PYTHON to a python that can `import PIL`.");
|
|
79
|
-
}
|
|
80
|
-
const usage = { billingQuantity: 0, durationMs: 0 };
|
|
81
|
-
const productionJobs = [];
|
|
82
|
-
const combinedPrompts = [];
|
|
83
|
-
const sourceMode = petdexSourceMode(input);
|
|
84
|
-
const runDir = await createRunDir();
|
|
85
|
-
const stagedRefs = await stageReferenceFiles(input);
|
|
86
|
-
try {
|
|
87
|
-
// 1. Lay out the run directory: prompts, layout guides, chroma-key, jobs.
|
|
88
|
-
await runScript("prepare_pet_run.py", [
|
|
89
|
-
"--pet-name", input.name,
|
|
90
|
-
"--display-name", input.name,
|
|
91
|
-
"--description", input.description,
|
|
92
|
-
"--pet-notes", input.prompt?.trim() || input.description,
|
|
93
|
-
"--pet-id", asciiSlug(input.id ?? input.name),
|
|
94
|
-
"--output-dir", runDir,
|
|
95
|
-
"--chroma-key", "auto",
|
|
96
|
-
...stagedRefs.flatMap((file) => ["--reference", file]),
|
|
97
|
-
]);
|
|
98
|
-
const manifestPath = path.join(runDir, "imagegen-jobs.json");
|
|
99
|
-
const manifest = await readJson(manifestPath);
|
|
100
|
-
// 2. Fulfil each job in manifest order. The array is dependency-ordered
|
|
101
|
-
// (base first; idle/running-right next, then the rest), so a plain
|
|
102
|
-
// in-order walk satisfies depends_on and gives the Codex identity+gait
|
|
103
|
-
// check for free: base → idle → running-right are vision-QA'd first.
|
|
104
|
-
const inspectImage = options.inspectImage;
|
|
105
|
-
const candidates = Math.max(1, options.candidates ?? DEFAULT_CANDIDATES);
|
|
106
|
-
const generatedRows = [];
|
|
107
|
-
let chromaHex = FALLBACK_CHROMA_HEX;
|
|
108
|
-
let baseDataUrl;
|
|
109
|
-
for (const job of manifest.jobs) {
|
|
110
|
-
// running-left is mirror-derivable. Without vision QA we mirror it (cheap,
|
|
111
|
-
// current behaviour). With vision QA we instead generate it as a normal
|
|
112
|
-
// grounded row so each frame is independently checked — Codex only mirrors
|
|
113
|
-
// a confirmed-safe running-right, and a drifting mirror yields empty cells.
|
|
114
|
-
const isDerived = !!(job.derivation_policy?.may_derive && job.derivation_policy.may_derive_from);
|
|
115
|
-
if (isDerived && !inspectImage) {
|
|
116
|
-
await deriveRow(runDir);
|
|
117
|
-
productionJobs.push({
|
|
118
|
-
id: `row-${job.id}`,
|
|
119
|
-
kind: "row-strip",
|
|
120
|
-
status: "complete",
|
|
121
|
-
animationId: job.id,
|
|
122
|
-
prompt: `derived: framewise-horizontal-mirror of ${job.derivation_policy.may_derive_from}`,
|
|
123
|
-
inputImages: [],
|
|
124
|
-
outputUrl: job.output_path,
|
|
125
|
-
});
|
|
126
|
-
continue;
|
|
127
|
-
}
|
|
128
|
-
const prompt = await fs.readFile(path.join(runDir, job.prompt_file), "utf-8");
|
|
129
|
-
const retryPrompt = job.retry_prompt_file
|
|
130
|
-
? await fs.readFile(path.join(runDir, job.retry_prompt_file), "utf-8").catch(() => undefined)
|
|
131
|
-
: undefined;
|
|
132
|
-
combinedPrompts.push(prompt);
|
|
133
|
-
const isBase = job.kind === "base-pet";
|
|
134
|
-
const { mediaUrl, inputImages } = await selectJobImage({
|
|
135
|
-
runDir, job, prompt, retryPrompt, generateImage, inspectImage, candidates, usage, upload: options.uploadReferenceImage, baseDataUrl,
|
|
136
|
-
});
|
|
137
|
-
// The canonical base is the identity reference every row reuses; it also
|
|
138
|
-
// reveals the actual flat background colour the model rendered (which we
|
|
139
|
-
// key extraction on) and is the image vision QA compares every row against.
|
|
140
|
-
if (isBase) {
|
|
141
|
-
await fs.copyFile(path.join(runDir, job.output_path), path.join(runDir, CANONICAL_BASE_REL));
|
|
142
|
-
chromaHex = await detectChromaHex(path.join(runDir, job.output_path));
|
|
143
|
-
baseDataUrl = await fileToDataUrl(path.join(runDir, CANONICAL_BASE_REL));
|
|
144
|
-
}
|
|
145
|
-
// The vendored mirror step gates on running-right being marked complete
|
|
146
|
-
// in the manifest, so persist job status as each generation lands.
|
|
147
|
-
job.status = "complete";
|
|
148
|
-
await fs.writeFile(manifestPath, JSON.stringify(manifest, null, 2), "utf-8");
|
|
149
|
-
productionJobs.push({
|
|
150
|
-
id: isBase ? "base-reference" : `row-${job.id}`,
|
|
151
|
-
kind: isBase ? "reference" : "row-strip",
|
|
152
|
-
status: "complete",
|
|
153
|
-
...(isBase ? {} : { animationId: job.id }),
|
|
154
|
-
prompt,
|
|
155
|
-
inputImages,
|
|
156
|
-
outputUrl: mediaUrl,
|
|
157
|
-
});
|
|
158
|
-
if (!isBase)
|
|
159
|
-
generatedRows.push(job);
|
|
160
|
-
}
|
|
161
|
-
// 3. Deterministic pipeline: extract → QA-repair → compose → validate (+ artifacts).
|
|
162
|
-
const decodedDir = path.join(runDir, "decoded");
|
|
163
|
-
const framesDir = path.join(runDir, "frames");
|
|
164
|
-
const atlasPng = path.join(runDir, "atlas.png");
|
|
165
|
-
const atlasWebp = path.join(runDir, "atlas.webp");
|
|
166
|
-
await runScript("extract_strip_frames.py", ["--decoded-dir", decodedDir, "--output-dir", framesDir, "--chroma-key", chromaHex, "--key-threshold", CHROMA_KEY_THRESHOLD, "--method", EXTRACT_METHOD]);
|
|
167
|
-
// Codex deterministic repair: regenerate only the rows inspect flags
|
|
168
|
-
// (empty/sparse frames, wrong cell size, chroma bleed) with the retry
|
|
169
|
-
// prompt, re-extract that row, and re-inspect — bounded retries per row.
|
|
170
|
-
await repairFlaggedRows({
|
|
171
|
-
runDir, decodedDir, framesDir, generatedRows, chromaHex, generateImage,
|
|
172
|
-
inspectImage, candidates, baseDataUrl, usage, upload: options.uploadReferenceImage, productionJobs,
|
|
173
|
-
});
|
|
174
|
-
const contactSheet = path.join(runDir, "qa", "contact-sheet.png");
|
|
175
|
-
await composeAndValidate(runDir, framesDir, atlasPng, atlasWebp, contactSheet);
|
|
176
|
-
// Hybrid frame-level repair: the strip pass gives temporal continuity; here
|
|
177
|
-
// each extracted frame is scored DETERMINISTICALLY (non-transparent pixel
|
|
178
|
-
// count + mean brightness vs the row median) to catch dark silhouettes,
|
|
179
|
-
// off-brightness, empty, or fragment frames cheaply (no per-frame vision
|
|
180
|
-
// call). Each flagged frame is regenerated as ONE pose (img2img on the base,
|
|
181
|
-
// vision-QA'd when a vision model is present) and spliced back into its cell,
|
|
182
|
-
// then the atlas is recomposed + re-validated. One bounded round.
|
|
183
|
-
if (baseDataUrl) {
|
|
184
|
-
await repairBadFrames({
|
|
185
|
-
runDir, framesDir, atlasPng, atlasWebp, contactSheet, generatedRows,
|
|
186
|
-
generateImage, inspectImage, candidates, usage, upload: options.uploadReferenceImage, baseDataUrl,
|
|
187
|
-
});
|
|
188
|
-
}
|
|
189
|
-
await runScriptSoft("render_animation_previews.py", ["--frames-root", framesDir, "--output-dir", path.join(runDir, "qa", "previews")]);
|
|
190
|
-
// 4. Package through pet-core (re-encodes webp, builds the Codex-aligned manifest).
|
|
191
|
-
const spritesheet = await fs.readFile(atlasWebp);
|
|
192
|
-
const asset = await createPetdexAssetFromSpritesheet({
|
|
193
|
-
id: input.id,
|
|
194
|
-
name: input.name,
|
|
195
|
-
description: input.description,
|
|
196
|
-
prompt: input.prompt,
|
|
197
|
-
spritesheet,
|
|
198
|
-
sourceKind: "forge",
|
|
199
|
-
});
|
|
200
|
-
return {
|
|
201
|
-
...asset,
|
|
202
|
-
prompt: combinedPrompts.join("\n\n---\n\n"),
|
|
203
|
-
productionRun: buildPetdexProductionRun(sourceMode, productionJobs),
|
|
204
|
-
model: usage.model,
|
|
205
|
-
size: usage.size,
|
|
206
|
-
durationMs: usage.durationMs || undefined,
|
|
207
|
-
...(usage.provider ? {
|
|
208
|
-
mediaUsage: {
|
|
209
|
-
provider: usage.provider,
|
|
210
|
-
model: usage.model ?? "unknown",
|
|
211
|
-
billingUnit: usage.billingUnit ?? "per_call",
|
|
212
|
-
billingQuantity: usage.billingQuantity || 1,
|
|
213
|
-
},
|
|
214
|
-
} : {}),
|
|
215
|
-
};
|
|
216
|
-
}
|
|
217
|
-
finally {
|
|
218
|
-
await cleanupDir(stagedRefs.length ? path.dirname(stagedRefs[0]) : undefined);
|
|
219
|
-
if (!keepRuns())
|
|
220
|
-
await cleanupDir(runDir);
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
export async function forgePetdexAssetPackage(params) {
|
|
224
|
-
const forged = await forgePetdexAsset(params.input, params.generateImage, {
|
|
225
|
-
uploadReferenceImage: params.uploadReferenceImage,
|
|
226
|
-
});
|
|
227
|
-
const assetDir = path.join(params.outputDir, forged.asset.id);
|
|
228
|
-
await fs.mkdir(assetDir, { recursive: true });
|
|
229
|
-
const manifestPath = path.join(assetDir, "pet.json");
|
|
230
|
-
const spritesheetPath = path.join(assetDir, "spritesheet.webp");
|
|
231
|
-
const validationPath = path.join(assetDir, "validation.json");
|
|
232
|
-
const productionRunPath = path.join(assetDir, "production-run.json");
|
|
233
|
-
await fs.writeFile(manifestPath, JSON.stringify(forged.asset, null, 2), "utf-8");
|
|
234
|
-
await fs.writeFile(spritesheetPath, forged.spritesheet);
|
|
235
|
-
await fs.writeFile(validationPath, JSON.stringify(forged.validation, null, 2), "utf-8");
|
|
236
|
-
await fs.writeFile(productionRunPath, JSON.stringify(forged.productionRun, null, 2), "utf-8");
|
|
237
|
-
const packagePath = await writePetdexAssetPackage({
|
|
238
|
-
asset: forged.asset,
|
|
239
|
-
spritesheet: forged.spritesheet,
|
|
240
|
-
validation: forged.validation,
|
|
241
|
-
productionRun: forged.productionRun,
|
|
242
|
-
outputDir: params.outputDir,
|
|
243
|
-
fileName: `${forged.asset.id}.petdex`,
|
|
244
|
-
});
|
|
245
|
-
return {
|
|
246
|
-
...forged,
|
|
247
|
-
packagePath,
|
|
248
|
-
assetDir,
|
|
249
|
-
manifestPath,
|
|
250
|
-
spritesheetPath,
|
|
251
|
-
validationPath,
|
|
252
|
-
productionRunPath,
|
|
253
|
-
};
|
|
254
|
-
}
|
|
255
|
-
export async function readGeneratedPetdexImage(mediaUrl) {
|
|
256
|
-
if (mediaUrl.startsWith("data:")) {
|
|
257
|
-
const match = mediaUrl.match(/^data:[^;]+;base64,(.+)$/);
|
|
258
|
-
if (!match)
|
|
259
|
-
throw new Error("Generated Petdex image data URL is not base64 encoded");
|
|
260
|
-
return Buffer.from(match[1], "base64");
|
|
261
|
-
}
|
|
262
|
-
if (/^https?:\/\//i.test(mediaUrl)) {
|
|
263
|
-
const response = await fetch(mediaUrl);
|
|
264
|
-
if (!response.ok)
|
|
265
|
-
throw new Error(`Generated Petdex image download failed: ${response.status} ${response.statusText}`);
|
|
266
|
-
return Buffer.from(await response.arrayBuffer());
|
|
267
|
-
}
|
|
268
|
-
if (mediaUrl.startsWith("file://")) {
|
|
269
|
-
return fs.readFile(new URL(mediaUrl));
|
|
270
|
-
}
|
|
271
|
-
return fs.readFile(mediaUrl);
|
|
272
|
-
}
|
|
273
|
-
// ── Internal helpers ───────────────────────────────────────
|
|
274
|
-
async function deriveRow(runDir) {
|
|
275
|
-
await runScript("derive_running_left_from_running_right.py", [
|
|
276
|
-
"--run-dir", runDir,
|
|
277
|
-
"--confirm-appropriate-mirror",
|
|
278
|
-
"--decision-note", MIRROR_DECISION_NOTE,
|
|
279
|
-
"--force",
|
|
280
|
-
]);
|
|
281
|
-
}
|
|
282
|
-
/** Generate one candidate image (base or row). Does NOT write to disk. */
|
|
283
|
-
async function generateCandidate(runDir, job, promptText, generateImage, usage, upload) {
|
|
284
|
-
const inputImages = await resolveJobImages(runDir, job, upload);
|
|
285
|
-
const isBase = job.kind === "base-pet";
|
|
286
|
-
// Do NOT send the layout guide to the model: providers like Seedream copy its
|
|
287
|
-
// visible slot boxes / crosslines straight into the output. Frame spacing comes
|
|
288
|
-
// from the prompt ("N evenly-spaced frames") and the explicit ROW_STRIP_SIZE;
|
|
289
|
-
// extraction divides into equal slots regardless. The base pet grounds identity.
|
|
290
|
-
const sentImages = inputImages.filter((image) => image.role !== "layout-guide");
|
|
291
|
-
const identity = sentImages.find((image) => image.role === "canonical-reference") ?? sentImages[0];
|
|
292
|
-
const result = await generateImage({
|
|
293
|
-
prompt: `${promptText}\n\n${GENERATION_LAYOUT_GUARD}`,
|
|
294
|
-
purpose: isBase ? "petdex-reference" : "petdex-row-strip",
|
|
295
|
-
...(isBase ? {} : { animationId: job.id }),
|
|
296
|
-
style: isBase ? BASE_STYLE : ROW_STYLE,
|
|
297
|
-
size: isBase ? PETDEX_REFERENCE_IMAGE_SIZE : ROW_STRIP_SIZE,
|
|
298
|
-
imageUrl: identity?.imageUrl,
|
|
299
|
-
referenceImages: sentImages,
|
|
300
|
-
n: 1,
|
|
301
|
-
quality: "auto",
|
|
302
|
-
});
|
|
303
|
-
accumulatePetdexUsage(usage, result);
|
|
304
|
-
const mediaUrl = result.mediaUrls[0];
|
|
305
|
-
if (!mediaUrl)
|
|
306
|
-
throw new Error(`Petdex generation returned no image for job ${job.id}`);
|
|
307
|
-
return { mediaUrl, inputImages: sentImages };
|
|
308
|
-
}
|
|
309
|
-
async function writeDecoded(runDir, job, mediaUrl) {
|
|
310
|
-
const outputPath = path.join(runDir, job.output_path);
|
|
311
|
-
await fs.mkdir(path.dirname(outputPath), { recursive: true });
|
|
312
|
-
await fs.writeFile(outputPath, await readGeneratedPetdexImage(mediaUrl));
|
|
313
|
-
}
|
|
314
|
-
/**
|
|
315
|
-
* Generate a job image with the Codex vision-QA loop: up to `candidates` per
|
|
316
|
-
* prompt (initial, then the row's retry prompt), keeping the first that vision QA
|
|
317
|
-
* accepts. With no inspectImage, takes the first candidate. The chosen image is
|
|
318
|
-
* written to the decoded output path. If nothing passes, the last candidate is
|
|
319
|
-
* used — validate_atlas stays the hard contract gate.
|
|
320
|
-
*/
|
|
321
|
-
async function selectJobImage(ctx) {
|
|
322
|
-
const prompts = [ctx.prompt, ...(ctx.retryPrompt ? [ctx.retryPrompt] : [])].slice(0, MAX_QA_PROMPTS);
|
|
323
|
-
let fallback = null;
|
|
324
|
-
for (const promptText of prompts) {
|
|
325
|
-
for (let attempt = 0; attempt < ctx.candidates; attempt++) {
|
|
326
|
-
const candidate = await generateCandidate(ctx.runDir, ctx.job, promptText, ctx.generateImage, ctx.usage, ctx.upload);
|
|
327
|
-
if (!ctx.inspectImage) {
|
|
328
|
-
await writeDecoded(ctx.runDir, ctx.job, candidate.mediaUrl);
|
|
329
|
-
return candidate;
|
|
330
|
-
}
|
|
331
|
-
const verdict = await qaJobImage(ctx.inspectImage, ctx.job, candidate.mediaUrl, ctx.baseDataUrl);
|
|
332
|
-
if (verdict.ok) {
|
|
333
|
-
await writeDecoded(ctx.runDir, ctx.job, candidate.mediaUrl);
|
|
334
|
-
return candidate;
|
|
335
|
-
}
|
|
336
|
-
fallback = candidate;
|
|
337
|
-
}
|
|
338
|
-
}
|
|
339
|
-
const chosen = fallback ?? await generateCandidate(ctx.runDir, ctx.job, ctx.prompt, ctx.generateImage, ctx.usage, ctx.upload);
|
|
340
|
-
await writeDecoded(ctx.runDir, ctx.job, chosen.mediaUrl);
|
|
341
|
-
return chosen;
|
|
342
|
-
}
|
|
343
|
-
// ── Vision QA (Codex method) ───────────────────────────────
|
|
344
|
-
const FRAME_COUNTS = {
|
|
345
|
-
idle: 6, "running-right": 8, "running-left": 8, waving: 4, jumping: 5, failed: 8, waiting: 6, running: 6, review: 6,
|
|
346
|
-
};
|
|
347
|
-
/** Lenient parse: only an explicit FAIL blocks (ambiguous output never burns regenerations). */
|
|
348
|
-
function parseVerdict(text) {
|
|
349
|
-
const value = (text ?? "").trim();
|
|
350
|
-
if (/\bfail\b/i.test(value) && !/\bpass\b/i.test(value.slice(0, 8))) {
|
|
351
|
-
const match = value.match(/fail[:\s-]*(.+)/i);
|
|
352
|
-
return { ok: false, reason: (match?.[1] ?? "").trim().slice(0, 200) };
|
|
353
|
-
}
|
|
354
|
-
return { ok: true, reason: "" };
|
|
355
|
-
}
|
|
356
|
-
async function qaJobImage(inspectImage, job, mediaUrl, baseDataUrl) {
|
|
357
|
-
try {
|
|
358
|
-
if (job.kind === "base-pet") {
|
|
359
|
-
return parseVerdict(await inspectImage({ prompt: BASE_QA_PROMPT, imageUrls: [mediaUrl] }));
|
|
360
|
-
}
|
|
361
|
-
const frames = FRAME_COUNTS[job.id] ?? 6;
|
|
362
|
-
const imageUrls = baseDataUrl ? [mediaUrl, baseDataUrl] : [mediaUrl];
|
|
363
|
-
return parseVerdict(await inspectImage({ prompt: rowQaPrompt(job.id, frames), imageUrls }));
|
|
364
|
-
}
|
|
365
|
-
catch {
|
|
366
|
-
return { ok: true, reason: "" }; // a QA-call failure must not block generation
|
|
367
|
-
}
|
|
368
|
-
}
|
|
369
|
-
const BASE_QA_PROMPT = [
|
|
370
|
-
"You are a strict desktop-pet sprite reviewer. The image is a single pet character reference.",
|
|
371
|
-
"Reply PASS only if ALL hold: one centered full-body cute pet; one flat solid background; no text, scenery, picture frames, borders, drop shadows, or detached effects.",
|
|
372
|
-
'Reply with exactly "PASS" or "FAIL: <one short reason>".',
|
|
373
|
-
].join(" ");
|
|
374
|
-
function rowQaPrompt(state, frames) {
|
|
375
|
-
return [
|
|
376
|
-
`You are a strict sprite-sheet reviewer. Image 1 is a horizontal strip of ${frames} animation frames for a desktop pet's "${state}" animation. Image 2 is the canonical reference of the SAME pet.`,
|
|
377
|
-
"Reply PASS only if ALL hold: (1) every frame is the SAME character as the reference — same species, colors, palette, face, proportions, markings; (2) one flat solid background with NO picture frames, borders, boxes, mats, panels, dividers, or copied guide lines; (3) each pose is a complete pet, fully inside its own area, not cut off or split between cells; (4) no detached effects — no drop shadows, sparkles, dust, tears, speed lines, or text.",
|
|
378
|
-
'Reply with exactly "PASS" or "FAIL: <one short reason>".',
|
|
379
|
-
].join(" ");
|
|
380
|
-
}
|
|
381
|
-
async function fileToDataUrl(filePath) {
|
|
382
|
-
const buffer = await fs.readFile(filePath);
|
|
383
|
-
const mimeType = filePath.toLowerCase().endsWith(".webp") ? "image/webp" : "image/png";
|
|
384
|
-
return `data:${mimeType};base64,${buffer.toString("base64")}`;
|
|
385
|
-
}
|
|
386
|
-
const MAX_ROW_REPAIRS = 2;
|
|
387
|
-
/**
|
|
388
|
-
* Re-inspect extracted frames and regenerate only the rows that fail QA, using
|
|
389
|
-
* each row's retry prompt and re-extracting just that row. Mirrors the Codex
|
|
390
|
-
* "repair the smallest failing scope first" policy; bounded per row so a
|
|
391
|
-
* persistently bad row falls through to the hard validate gate rather than
|
|
392
|
-
* looping forever.
|
|
393
|
-
*/
|
|
394
|
-
async function repairFlaggedRows(ctx) {
|
|
395
|
-
const reviewPath = path.join(ctx.runDir, "qa", "review.json");
|
|
396
|
-
const inspect = () => runScriptSoft("inspect_frames.py", ["--frames-root", ctx.framesDir, "--json-out", reviewPath, "--chroma-adjacent-threshold", INSPECT_CHROMA_ADJ_THRESHOLD]);
|
|
397
|
-
await inspect();
|
|
398
|
-
let review = await readReview(reviewPath);
|
|
399
|
-
for (const job of ctx.generatedRows) {
|
|
400
|
-
let attempts = 0;
|
|
401
|
-
while (review && rowFailed(review, job.id) && attempts < MAX_ROW_REPAIRS) {
|
|
402
|
-
attempts++;
|
|
403
|
-
await regenerateRow(ctx, job);
|
|
404
|
-
await reextractRows(ctx, await rowsToReextract(ctx, job));
|
|
405
|
-
await inspect();
|
|
406
|
-
review = await readReview(reviewPath);
|
|
407
|
-
}
|
|
408
|
-
}
|
|
409
|
-
}
|
|
410
|
-
/** Regenerate one row (vision-QA loop) and update its provenance + decoded output. */
|
|
411
|
-
async function regenerateRow(ctx, job) {
|
|
412
|
-
// Repairs escalate to the row's stricter retry prompt as the primary prompt.
|
|
413
|
-
const prompt = await fs.readFile(path.join(ctx.runDir, job.prompt_file), "utf-8");
|
|
414
|
-
const retryPrompt = job.retry_prompt_file
|
|
415
|
-
? await fs.readFile(path.join(ctx.runDir, job.retry_prompt_file), "utf-8").catch(() => undefined)
|
|
416
|
-
: undefined;
|
|
417
|
-
const repairPrompt = retryPrompt ?? prompt;
|
|
418
|
-
const { mediaUrl, inputImages } = await selectJobImage({
|
|
419
|
-
runDir: ctx.runDir, job, prompt: repairPrompt, generateImage: ctx.generateImage, inspectImage: ctx.inspectImage,
|
|
420
|
-
candidates: ctx.candidates, usage: ctx.usage, upload: ctx.upload, baseDataUrl: ctx.baseDataUrl,
|
|
421
|
-
});
|
|
422
|
-
const provenance = ctx.productionJobs.find((entry) => entry.id === `row-${job.id}`);
|
|
423
|
-
if (provenance) {
|
|
424
|
-
provenance.prompt = repairPrompt;
|
|
425
|
-
provenance.outputUrl = mediaUrl;
|
|
426
|
-
provenance.inputImages = inputImages;
|
|
427
|
-
}
|
|
428
|
-
}
|
|
429
|
-
/** When running-right is regenerated and running-left was mirror-derived, re-mirror it. */
|
|
430
|
-
async function rowsToReextract(ctx, job) {
|
|
431
|
-
if (job.id !== "running-right")
|
|
432
|
-
return job.id;
|
|
433
|
-
// running-left was mirror-derived only when there is no vision QA.
|
|
434
|
-
const leftDerived = !ctx.inspectImage && await fileExists(path.join(ctx.decodedDir, "running-left.png"));
|
|
435
|
-
if (leftDerived) {
|
|
436
|
-
await deriveRow(ctx.runDir);
|
|
437
|
-
return "running-right,running-left";
|
|
438
|
-
}
|
|
439
|
-
return "running-right";
|
|
440
|
-
}
|
|
441
|
-
async function reextractRows(ctx, states) {
|
|
442
|
-
await runScript("extract_strip_frames.py", ["--decoded-dir", ctx.decodedDir, "--output-dir", ctx.framesDir, "--states", states, "--chroma-key", ctx.chromaHex, "--key-threshold", CHROMA_KEY_THRESHOLD, "--method", EXTRACT_METHOD]);
|
|
443
|
-
}
|
|
444
|
-
async function fileExists(filePath) {
|
|
445
|
-
return fs.access(filePath).then(() => true, () => false);
|
|
446
|
-
}
|
|
447
|
-
/** Compose the atlas, hard-validate it, and refresh the contact sheet. */
|
|
448
|
-
async function composeAndValidate(runDir, framesDir, atlasPng, atlasWebp, contactSheet) {
|
|
449
|
-
await runScript("compose_atlas.py", ["--frames-root", framesDir, "--output", atlasPng, "--webp-output", atlasWebp]);
|
|
450
|
-
// Atlas validation is the hard gate: a contract-violating atlas is never packaged.
|
|
451
|
-
await runScript("validate_atlas.py", [atlasPng, "--json-out", path.join(runDir, "qa", "validation.json")]);
|
|
452
|
-
await runScriptSoft("make_contact_sheet.py", [atlasPng, "--output", contactSheet]);
|
|
453
|
-
}
|
|
454
|
-
const MAX_FRAME_REPAIRS_PER_ROW = 4; // cap single-frame regenerations per row
|
|
455
|
-
const SINGLE_FRAME_STYLE = "one single centered full-body desktop pet pose on a flat chroma-key background";
|
|
456
|
-
const FRAME_EXTRACT_THRESHOLD = 120; // chroma distance for single-frame background removal
|
|
457
|
-
// Brief per-state pose hints for single-frame regeneration (the row prompt is for
|
|
458
|
-
// a whole strip; one replacement frame just needs the state's gist + identity).
|
|
459
|
-
const STATE_HINTS = {
|
|
460
|
-
idle: "a calm resting pose, breathing, standing still",
|
|
461
|
-
"running-right": "a mid-stride running pose facing and moving to the right",
|
|
462
|
-
"running-left": "a mid-stride running pose facing and moving to the left",
|
|
463
|
-
waving: "raising a paw/hand/limb in a friendly wave",
|
|
464
|
-
jumping: "a mid-air playful jump",
|
|
465
|
-
failed: "a sad, deflated, slumped reaction pose",
|
|
466
|
-
waiting: "an expectant waiting pose, looking up for input",
|
|
467
|
-
running: "a focused working/thinking pose, busy but not foot-running",
|
|
468
|
-
review: "a focused inspecting pose, leaning in to review",
|
|
469
|
-
};
|
|
470
|
-
const MIN_FRAME_PIXELS = 400; // matches inspect_frames --min-used-pixels
|
|
471
|
-
const ABSOLUTE_DARK_LUM = 45; // mean luminance below which a frame is a dark silhouette
|
|
472
|
-
/**
|
|
473
|
-
* Frame-level repair (deterministic detection): score every extracted frame by
|
|
474
|
-
* non-transparent pixel count + mean brightness against the row median. Frames
|
|
475
|
-
* that are empty/fragment (too few pixels) or a dark silhouette / off-brightness
|
|
476
|
-
* (much darker than the row) are regenerated as ONE pose (img2img on the base,
|
|
477
|
-
* vision-QA'd when a vision model is present) and spliced back into the cell.
|
|
478
|
-
* No per-frame vision call — the user's "black vs blue / wrong count" defects are
|
|
479
|
-
* measurable directly, which also keeps the run fast enough for the RPC timeout.
|
|
480
|
-
*/
|
|
481
|
-
async function repairBadFrames(ctx) {
|
|
482
|
-
let repaired = 0;
|
|
483
|
-
for (const job of ctx.generatedRows) {
|
|
484
|
-
const frames = FRAME_COUNTS[job.id] ?? 6;
|
|
485
|
-
const stats = [];
|
|
486
|
-
for (let index = 0; index < frames; index++) {
|
|
487
|
-
stats.push(await analyzeFrame(path.join(ctx.framesDir, job.id, `${String(index).padStart(2, "0")}.png`)));
|
|
488
|
-
}
|
|
489
|
-
const medianCount = median(stats.map((s) => s.count).filter((c) => c > 0));
|
|
490
|
-
const medianLum = median(stats.map((s) => s.lum).filter((l) => l > 0));
|
|
491
|
-
let rowRepairs = 0;
|
|
492
|
-
for (let index = 0; index < frames && rowRepairs < MAX_FRAME_REPAIRS_PER_ROW; index++) {
|
|
493
|
-
const stat = stats[index];
|
|
494
|
-
const sparse = stat.count < Math.max(MIN_FRAME_PIXELS, medianCount * 0.4);
|
|
495
|
-
const dark = stat.lum < ABSOLUTE_DARK_LUM || (medianLum > 0 && stat.lum < medianLum * 0.6);
|
|
496
|
-
if (!sparse && !dark)
|
|
497
|
-
continue;
|
|
498
|
-
const single = await generateSingleFrame(ctx, job, index, frames);
|
|
499
|
-
if (!single)
|
|
500
|
-
continue;
|
|
501
|
-
await extractFrameToCell(await readGeneratedPetdexImage(single), path.join(ctx.framesDir, job.id, `${String(index).padStart(2, "0")}.png`));
|
|
502
|
-
rowRepairs++;
|
|
503
|
-
repaired++;
|
|
504
|
-
}
|
|
505
|
-
}
|
|
506
|
-
if (repaired > 0) {
|
|
507
|
-
await composeAndValidate(ctx.runDir, ctx.framesDir, ctx.atlasPng, ctx.atlasWebp, ctx.contactSheet);
|
|
508
|
-
}
|
|
509
|
-
}
|
|
510
|
-
/** Non-transparent pixel count + mean luminance of those pixels for one frame. */
|
|
511
|
-
async function analyzeFrame(framePath) {
|
|
512
|
-
try {
|
|
513
|
-
const image = await loadImage(await fs.readFile(framePath));
|
|
514
|
-
const width = Math.max(1, image.width);
|
|
515
|
-
const height = Math.max(1, image.height);
|
|
516
|
-
const canvas = createCanvas(width, height);
|
|
517
|
-
const ctx = canvas.getContext("2d");
|
|
518
|
-
ctx.drawImage(image, 0, 0);
|
|
519
|
-
const data = ctx.getImageData(0, 0, width, height).data;
|
|
520
|
-
let count = 0;
|
|
521
|
-
let lumSum = 0;
|
|
522
|
-
for (let i = 0; i < data.length; i += 4) {
|
|
523
|
-
if ((data[i + 3] ?? 0) > 40) {
|
|
524
|
-
count++;
|
|
525
|
-
lumSum += 0.299 * (data[i] ?? 0) + 0.587 * (data[i + 1] ?? 0) + 0.114 * (data[i + 2] ?? 0);
|
|
526
|
-
}
|
|
527
|
-
}
|
|
528
|
-
return { count, lum: count ? lumSum / count : 0 };
|
|
529
|
-
}
|
|
530
|
-
catch {
|
|
531
|
-
return { count: Number.MAX_SAFE_INTEGER, lum: 255 }; // unreadable → treat as ok
|
|
532
|
-
}
|
|
533
|
-
}
|
|
534
|
-
function median(values) {
|
|
535
|
-
if (values.length === 0)
|
|
536
|
-
return 0;
|
|
537
|
-
const sorted = [...values].sort((a, b) => a - b);
|
|
538
|
-
const mid = Math.floor(sorted.length / 2);
|
|
539
|
-
return sorted.length % 2 ? sorted[mid] : (sorted[mid - 1] + sorted[mid]) / 2;
|
|
540
|
-
}
|
|
541
|
-
function frameQaPrompt(state) {
|
|
542
|
-
return [
|
|
543
|
-
`Image 1 is ONE animation frame of a desktop pet's "${state}" pose. Image 2 is the canonical reference of the SAME pet.`,
|
|
544
|
-
"Reply PASS only if image 1 shows ONE complete pet that clearly matches the reference — same species, colors, palette, BRIGHTNESS, proportions, markings; centered and fully visible.",
|
|
545
|
-
"Reply FAIL if it is a dark or black silhouette, off-colour, dimmer/brighter than the reference, cut off, empty, a fragment, or shows two pets.",
|
|
546
|
-
'Reply with exactly "PASS" or "FAIL: <one short reason>".',
|
|
547
|
-
].join(" ");
|
|
548
|
-
}
|
|
549
|
-
/** Generate ONE replacement pose (img2img on the canonical base), vision-QA'd. */
|
|
550
|
-
async function generateSingleFrame(ctx, job, index, frames) {
|
|
551
|
-
const prompt = [
|
|
552
|
-
`Create ONE single image of a desktop pet in the "${job.id}" animation, pose ${index + 1} of ${frames}.`,
|
|
553
|
-
"Output exactly ONE complete, centered, full-body pose of the SAME pet as the attached reference image — identical species, colors, palette, brightness, proportions, and markings.",
|
|
554
|
-
"This is a single sprite frame: NOT a strip, NOT a grid, NOT multiple poses, NOT a dark silhouette.",
|
|
555
|
-
`Pose: ${STATE_HINTS[job.id] ?? "a clear pose for this state"}.`,
|
|
556
|
-
].join(" ");
|
|
557
|
-
let fallback = null;
|
|
558
|
-
for (let attempt = 0; attempt < ctx.candidates; attempt++) {
|
|
559
|
-
const result = await ctx.generateImage({
|
|
560
|
-
prompt: `${prompt}\n\n${GENERATION_LAYOUT_GUARD}`,
|
|
561
|
-
purpose: "petdex-reference",
|
|
562
|
-
style: SINGLE_FRAME_STYLE,
|
|
563
|
-
size: PETDEX_REFERENCE_IMAGE_SIZE,
|
|
564
|
-
imageUrl: ctx.baseDataUrl,
|
|
565
|
-
referenceImages: [{ role: "canonical-reference", imageUrl: ctx.baseDataUrl }],
|
|
566
|
-
n: 1,
|
|
567
|
-
quality: "auto",
|
|
568
|
-
});
|
|
569
|
-
accumulatePetdexUsage(ctx.usage, result);
|
|
570
|
-
const url = result.mediaUrls[0];
|
|
571
|
-
if (!url)
|
|
572
|
-
continue;
|
|
573
|
-
fallback = url;
|
|
574
|
-
if (!ctx.inspectImage)
|
|
575
|
-
return url;
|
|
576
|
-
try {
|
|
577
|
-
const verdict = parseVerdict(await ctx.inspectImage({ prompt: frameQaPrompt(job.id), imageUrls: [url, ctx.baseDataUrl] }));
|
|
578
|
-
if (verdict.ok)
|
|
579
|
-
return url;
|
|
580
|
-
}
|
|
581
|
-
catch {
|
|
582
|
-
return url; // vision-call failure → accept the candidate
|
|
583
|
-
}
|
|
584
|
-
}
|
|
585
|
-
return fallback;
|
|
586
|
-
}
|
|
587
|
-
/**
|
|
588
|
-
* Extract a single generated pose into one transparent 192x208 cell: detect the
|
|
589
|
-
* flat background colour from the image border, key it out, then crop-to-content
|
|
590
|
-
* and fit centred. (Single clean pose only — not the flawed multi-pose slotting.)
|
|
591
|
-
*/
|
|
592
|
-
async function extractFrameToCell(srcBuffer, outPath) {
|
|
593
|
-
const image = await loadImage(srcBuffer);
|
|
594
|
-
const width = Math.max(1, image.width);
|
|
595
|
-
const height = Math.max(1, image.height);
|
|
596
|
-
const canvas = createCanvas(width, height);
|
|
597
|
-
const ctx = canvas.getContext("2d");
|
|
598
|
-
ctx.drawImage(image, 0, 0);
|
|
599
|
-
const imageData = ctx.getImageData(0, 0, width, height);
|
|
600
|
-
const data = imageData.data;
|
|
601
|
-
const [kr, kg, kb] = dominantBorderColor(data, width, height);
|
|
602
|
-
for (let i = 0; i < data.length; i += 4) {
|
|
603
|
-
const dr = (data[i] ?? 0) - kr;
|
|
604
|
-
const dg = (data[i + 1] ?? 0) - kg;
|
|
605
|
-
const db = (data[i + 2] ?? 0) - kb;
|
|
606
|
-
if (Math.sqrt(dr * dr + dg * dg + db * db) <= FRAME_EXTRACT_THRESHOLD) {
|
|
607
|
-
data[i] = 0;
|
|
608
|
-
data[i + 1] = 0;
|
|
609
|
-
data[i + 2] = 0;
|
|
610
|
-
data[i + 3] = 0;
|
|
611
|
-
}
|
|
612
|
-
}
|
|
613
|
-
ctx.putImageData(imageData, 0, 0);
|
|
614
|
-
let minX = width, minY = height, maxX = -1, maxY = -1;
|
|
615
|
-
for (let y = 0; y < height; y++) {
|
|
616
|
-
for (let x = 0; x < width; x++) {
|
|
617
|
-
if ((data[(y * width + x) * 4 + 3] ?? 0) > 16) {
|
|
618
|
-
if (x < minX)
|
|
619
|
-
minX = x;
|
|
620
|
-
if (x > maxX)
|
|
621
|
-
maxX = x;
|
|
622
|
-
if (y < minY)
|
|
623
|
-
minY = y;
|
|
624
|
-
if (y > maxY)
|
|
625
|
-
maxY = y;
|
|
626
|
-
}
|
|
627
|
-
}
|
|
628
|
-
}
|
|
629
|
-
const cell = createCanvas(PETDEX_ATLAS_CONTRACT.cellWidth, PETDEX_ATLAS_CONTRACT.cellHeight);
|
|
630
|
-
const cellCtx = cell.getContext("2d");
|
|
631
|
-
if (maxX >= minX && maxY >= minY) {
|
|
632
|
-
const bw = maxX - minX + 1;
|
|
633
|
-
const bh = maxY - minY + 1;
|
|
634
|
-
const maxW = PETDEX_ATLAS_CONTRACT.cellWidth - 10;
|
|
635
|
-
const maxH = PETDEX_ATLAS_CONTRACT.cellHeight - 10;
|
|
636
|
-
const scale = Math.min(maxW / bw, maxH / bh, 1);
|
|
637
|
-
const dw = bw * scale;
|
|
638
|
-
const dh = bh * scale;
|
|
639
|
-
cellCtx.imageSmoothingEnabled = true;
|
|
640
|
-
cellCtx.imageSmoothingQuality = "high";
|
|
641
|
-
cellCtx.drawImage(canvas, minX, minY, bw, bh, (PETDEX_ATLAS_CONTRACT.cellWidth - dw) / 2, (PETDEX_ATLAS_CONTRACT.cellHeight - dh) / 2, dw, dh);
|
|
642
|
-
}
|
|
643
|
-
await fs.mkdir(path.dirname(outPath), { recursive: true });
|
|
644
|
-
await fs.writeFile(outPath, Buffer.from(cell.toBuffer("image/png")));
|
|
645
|
-
}
|
|
646
|
-
/** Dominant colour of an inset border ring (the flat chroma background). */
|
|
647
|
-
function dominantBorderColor(data, width, height) {
|
|
648
|
-
const inset = Math.max(4, Math.floor(Math.min(width, height) * 0.02));
|
|
649
|
-
const step = Math.max(1, Math.floor(width / 200));
|
|
650
|
-
const buckets = new Map();
|
|
651
|
-
const sample = (x, y) => {
|
|
652
|
-
const idx = (y * width + x) * 4;
|
|
653
|
-
const r = data[idx] ?? 0, g = data[idx + 1] ?? 0, b = data[idx + 2] ?? 0;
|
|
654
|
-
if (r + g + b < 24)
|
|
655
|
-
return;
|
|
656
|
-
const key = ((r >> 4) << 8) | ((g >> 4) << 4) | (b >> 4);
|
|
657
|
-
const e = buckets.get(key) ?? { n: 0, r: 0, g: 0, b: 0 };
|
|
658
|
-
e.n++;
|
|
659
|
-
e.r += r;
|
|
660
|
-
e.g += g;
|
|
661
|
-
e.b += b;
|
|
662
|
-
buckets.set(key, e);
|
|
663
|
-
};
|
|
664
|
-
for (let x = inset; x < width - inset; x += step) {
|
|
665
|
-
sample(x, inset);
|
|
666
|
-
sample(x, height - 1 - inset);
|
|
667
|
-
}
|
|
668
|
-
for (let y = inset; y < height - inset; y += step) {
|
|
669
|
-
sample(inset, y);
|
|
670
|
-
sample(width - 1 - inset, y);
|
|
671
|
-
}
|
|
672
|
-
let best = null;
|
|
673
|
-
for (const e of buckets.values())
|
|
674
|
-
if (!best || e.n > best.n)
|
|
675
|
-
best = e;
|
|
676
|
-
if (!best || best.n === 0)
|
|
677
|
-
return [255, 0, 255];
|
|
678
|
-
return [Math.round(best.r / best.n), Math.round(best.g / best.n), Math.round(best.b / best.n)];
|
|
679
|
-
}
|
|
680
|
-
function rowFailed(review, state) {
|
|
681
|
-
const row = review.rows.find((entry) => entry.state === state);
|
|
682
|
-
return row ? row.ok === false : false;
|
|
683
|
-
}
|
|
684
|
-
async function readReview(reviewPath) {
|
|
685
|
-
return readJson(reviewPath).catch(() => null);
|
|
686
|
-
}
|
|
687
|
-
async function resolveJobImages(runDir, job, upload) {
|
|
688
|
-
const images = [];
|
|
689
|
-
for (const image of job.input_images) {
|
|
690
|
-
const absPath = path.join(runDir, image.path);
|
|
691
|
-
// canonical-base is produced after the base job; tolerate its absence on
|
|
692
|
-
// the base job itself (where it is not referenced anyway).
|
|
693
|
-
const buffer = await fs.readFile(absPath).catch(() => null);
|
|
694
|
-
if (!buffer)
|
|
695
|
-
continue;
|
|
696
|
-
const imageUrl = await toImageUrl(buffer, path.basename(absPath), upload);
|
|
697
|
-
images.push({ role: mapReferenceRole(image.role), imageUrl });
|
|
698
|
-
}
|
|
699
|
-
return images;
|
|
700
|
-
}
|
|
701
|
-
function mapReferenceRole(role) {
|
|
702
|
-
const lower = role.toLowerCase();
|
|
703
|
-
if (lower.includes("layout guide"))
|
|
704
|
-
return "layout-guide";
|
|
705
|
-
if (lower.includes("atlas"))
|
|
706
|
-
return "existing-atlas";
|
|
707
|
-
return "canonical-reference";
|
|
708
|
-
}
|
|
709
|
-
async function toImageUrl(buffer, filename, upload) {
|
|
710
|
-
const mimeType = filename.toLowerCase().endsWith(".webp") ? "image/webp" : "image/png";
|
|
711
|
-
if (upload)
|
|
712
|
-
return upload({ buffer, mimeType, filename });
|
|
713
|
-
return `data:${mimeType};base64,${buffer.toString("base64")}`;
|
|
714
|
-
}
|
|
715
|
-
async function stageReferenceFiles(input) {
|
|
716
|
-
const buffers = [];
|
|
717
|
-
if (input.referenceImageUrl)
|
|
718
|
-
buffers.push(await readGeneratedPetdexImage(input.referenceImageUrl));
|
|
719
|
-
// A refine run grounds identity on the existing atlas.
|
|
720
|
-
if (input.baseSpritesheet)
|
|
721
|
-
buffers.push(input.baseSpritesheet);
|
|
722
|
-
if (buffers.length === 0)
|
|
723
|
-
return [];
|
|
724
|
-
const stagingDir = await fs.mkdtemp(path.join(os.tmpdir(), "petdex-ref-"));
|
|
725
|
-
const files = [];
|
|
726
|
-
for (let index = 0; index < buffers.length; index++) {
|
|
727
|
-
const file = path.join(stagingDir, `reference-${String(index + 1).padStart(2, "0")}.png`);
|
|
728
|
-
await fs.writeFile(file, buffers[index]);
|
|
729
|
-
files.push(file);
|
|
730
|
-
}
|
|
731
|
-
return files;
|
|
732
|
-
}
|
|
733
|
-
async function createRunDir() {
|
|
734
|
-
const base = process.env.QLOGICAGENT_PETDEX_RUN_DIR?.trim() || os.tmpdir();
|
|
735
|
-
await fs.mkdir(base, { recursive: true });
|
|
736
|
-
return fs.mkdtemp(path.join(base, "petdex-run-"));
|
|
737
|
-
}
|
|
738
|
-
function keepRuns() {
|
|
739
|
-
const value = process.env.QLOGICAGENT_PETDEX_KEEP_RUNS?.trim().toLowerCase();
|
|
740
|
-
return value === "1" || value === "true";
|
|
741
|
-
}
|
|
742
|
-
async function cleanupDir(dir) {
|
|
743
|
-
if (!dir)
|
|
744
|
-
return;
|
|
745
|
-
await fs.rm(dir, { recursive: true, force: true }).catch(() => undefined);
|
|
746
|
-
}
|
|
747
|
-
async function readJson(file) {
|
|
748
|
-
return JSON.parse(await fs.readFile(file, "utf-8"));
|
|
749
|
-
}
|
|
750
|
-
/**
|
|
751
|
-
* Detect the flat background colour the model actually rendered, by taking the
|
|
752
|
-
* dominant colour of an inset border ring of the base image. Image models do not
|
|
753
|
-
* honour the requested chroma hex, so extraction must key on what was produced.
|
|
754
|
-
*/
|
|
755
|
-
async function detectChromaHex(pngPath) {
|
|
756
|
-
try {
|
|
757
|
-
const image = await loadImage(await fs.readFile(pngPath));
|
|
758
|
-
const width = Math.max(1, image.width);
|
|
759
|
-
const height = Math.max(1, image.height);
|
|
760
|
-
const canvas = createCanvas(width, height);
|
|
761
|
-
const ctx = canvas.getContext("2d");
|
|
762
|
-
ctx.drawImage(image, 0, 0);
|
|
763
|
-
const data = ctx.getImageData(0, 0, width, height).data;
|
|
764
|
-
const inset = Math.max(8, Math.floor(Math.min(width, height) * 0.02));
|
|
765
|
-
const step = Math.max(1, Math.floor(width / 240));
|
|
766
|
-
const buckets = new Map();
|
|
767
|
-
const sample = (x, y) => {
|
|
768
|
-
const idx = (y * width + x) * 4;
|
|
769
|
-
const a = data[idx + 3] ?? 0;
|
|
770
|
-
const r = data[idx] ?? 0;
|
|
771
|
-
const g = data[idx + 1] ?? 0;
|
|
772
|
-
const b = data[idx + 2] ?? 0;
|
|
773
|
-
if (a < 200)
|
|
774
|
-
return;
|
|
775
|
-
if (r + g + b < 48)
|
|
776
|
-
return; // skip near-black borders/separator lines
|
|
777
|
-
const key = ((r >> 4) << 8) | ((g >> 4) << 4) | (b >> 4);
|
|
778
|
-
const e = buckets.get(key) ?? { n: 0, r: 0, g: 0, b: 0 };
|
|
779
|
-
e.n++;
|
|
780
|
-
e.r += r;
|
|
781
|
-
e.g += g;
|
|
782
|
-
e.b += b;
|
|
783
|
-
buckets.set(key, e);
|
|
784
|
-
};
|
|
785
|
-
for (let x = inset; x < width - inset; x += step) {
|
|
786
|
-
sample(x, inset);
|
|
787
|
-
sample(x, height - 1 - inset);
|
|
788
|
-
}
|
|
789
|
-
for (let y = inset; y < height - inset; y += step) {
|
|
790
|
-
sample(inset, y);
|
|
791
|
-
sample(width - 1 - inset, y);
|
|
792
|
-
}
|
|
793
|
-
let best = null;
|
|
794
|
-
for (const e of buckets.values())
|
|
795
|
-
if (!best || e.n > best.n)
|
|
796
|
-
best = e;
|
|
797
|
-
if (!best || best.n === 0)
|
|
798
|
-
return FALLBACK_CHROMA_HEX;
|
|
799
|
-
const r = Math.round(best.r / best.n);
|
|
800
|
-
const g = Math.round(best.g / best.n);
|
|
801
|
-
const b = Math.round(best.b / best.n);
|
|
802
|
-
return `#${[r, g, b].map((v) => v.toString(16).padStart(2, "0")).join("")}`.toUpperCase();
|
|
803
|
-
}
|
|
804
|
-
catch {
|
|
805
|
-
return FALLBACK_CHROMA_HEX;
|
|
806
|
-
}
|
|
807
|
-
}
|
|
808
|
-
function asciiSlug(value) {
|
|
809
|
-
const slug = value.replace(/[^a-zA-Z0-9]+/g, "-").replace(/^-+|-+$/g, "").toLowerCase();
|
|
810
|
-
return slug || "petdex";
|
|
811
|
-
}
|
|
812
|
-
async function runScript(script, args) {
|
|
813
|
-
const result = await runHatchPetScript(script, args, { timeoutMs: 180_000 });
|
|
814
|
-
if (!result.ok) {
|
|
815
|
-
throw new Error(`Petdex pipeline step ${script} failed (exit ${result.code ?? "?"}): ${result.stderr.trim() || result.stdout.trim()}`);
|
|
816
|
-
}
|
|
817
|
-
}
|
|
818
|
-
async function runScriptSoft(script, args) {
|
|
819
|
-
await runHatchPetScript(script, args, { timeoutMs: 180_000 }).catch(() => undefined);
|
|
820
|
-
}
|