devchain-cli 0.17.1 → 0.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +64 -96
- package/dist/drizzle/0067_remove_claude_1m_provider_state.sql +3 -0
- package/dist/drizzle/0068_claude_launch_settings_json.sql +1 -0
- package/dist/drizzle/meta/0067_snapshot.json +5743 -0
- package/dist/drizzle/meta/0068_snapshot.json +5750 -0
- package/dist/drizzle/meta/_journal.json +15 -1
- package/dist/node_modules/@devchain/codebase-overview/tsconfig.tsbuildinfo +1 -1
- package/dist/node_modules/@devchain/shared/index.d.ts +1 -1
- package/dist/node_modules/@devchain/shared/index.d.ts.map +1 -1
- package/dist/node_modules/@devchain/shared/index.js +1 -1
- package/dist/node_modules/@devchain/shared/index.js.map +1 -1
- package/dist/node_modules/@devchain/shared/schemas/claude-launch-settings.d.ts +12 -0
- package/dist/node_modules/@devchain/shared/schemas/claude-launch-settings.d.ts.map +1 -0
- package/dist/node_modules/@devchain/shared/schemas/claude-launch-settings.js +97 -0
- package/dist/node_modules/@devchain/shared/schemas/claude-launch-settings.js.map +1 -0
- package/dist/node_modules/@devchain/shared/schemas/export-schema.d.ts +18 -10
- package/dist/node_modules/@devchain/shared/schemas/export-schema.d.ts.map +1 -1
- package/dist/node_modules/@devchain/shared/schemas/export-schema.js +11 -2
- package/dist/node_modules/@devchain/shared/schemas/export-schema.js.map +1 -1
- package/dist/node_modules/@devchain/shared/schemas/index.d.ts +1 -0
- package/dist/node_modules/@devchain/shared/schemas/index.d.ts.map +1 -1
- package/dist/node_modules/@devchain/shared/schemas/index.js +1 -0
- package/dist/node_modules/@devchain/shared/schemas/index.js.map +1 -1
- package/dist/node_modules/@devchain/shared/session-migration-reasons.d.ts +20 -0
- package/dist/node_modules/@devchain/shared/session-migration-reasons.d.ts.map +1 -0
- package/dist/node_modules/@devchain/shared/session-migration-reasons.js +109 -0
- package/dist/node_modules/@devchain/shared/session-migration-reasons.js.map +1 -0
- package/dist/node_modules/@devchain/shared/tsconfig.tsbuildinfo +1 -1
- package/dist/server/app.main.module.js +2 -0
- package/dist/server/app.main.module.js.map +1 -1
- package/dist/server/app.normal.module.js +2 -0
- package/dist/server/app.normal.module.js.map +1 -1
- package/dist/server/common/prompt-references.d.ts +29 -0
- package/dist/server/common/prompt-references.js +84 -0
- package/dist/server/common/prompt-references.js.map +1 -0
- package/dist/server/common/prompt-transfer.d.ts +31 -0
- package/dist/server/common/prompt-transfer.js +38 -0
- package/dist/server/common/prompt-transfer.js.map +1 -0
- package/dist/server/common/prompt-type.d.ts +12 -0
- package/dist/server/common/prompt-type.js +46 -0
- package/dist/server/common/prompt-type.js.map +1 -0
- package/dist/server/common/tags.d.ts +7 -0
- package/dist/server/common/tags.js +21 -0
- package/dist/server/common/tags.js.map +1 -0
- package/dist/server/main.js +9 -1
- package/dist/server/main.js.map +1 -1
- package/dist/server/modules/cloud-tunnel/services/mobile-chat-rpc.service.d.ts +9 -0
- package/dist/server/modules/cloud-tunnel/services/mobile-chat-rpc.service.js +33 -0
- package/dist/server/modules/cloud-tunnel/services/mobile-chat-rpc.service.js.map +1 -1
- package/dist/server/modules/cloud-tunnel/services/tunnel-handler.service.js +15 -0
- package/dist/server/modules/cloud-tunnel/services/tunnel-handler.service.js.map +1 -1
- package/dist/server/modules/core/services/preflight.service.js +28 -4
- package/dist/server/modules/core/services/preflight.service.js.map +1 -1
- package/dist/server/modules/events/catalog/broadcast-registry.js +29 -12
- package/dist/server/modules/events/catalog/broadcast-registry.js.map +1 -1
- package/dist/server/modules/events/catalog/index.d.ts +30 -3
- package/dist/server/modules/events/catalog/index.js +2 -0
- package/dist/server/modules/events/catalog/index.js.map +1 -1
- package/dist/server/modules/events/catalog/session.runtime-context.updated.d.ts +12 -0
- package/dist/server/modules/events/catalog/session.runtime-context.updated.js +13 -0
- package/dist/server/modules/events/catalog/session.runtime-context.updated.js.map +1 -0
- package/dist/server/modules/events/catalog/session.transcript.updated.d.ts +23 -3
- package/dist/server/modules/events/catalog/session.transcript.updated.js +41 -19
- package/dist/server/modules/events/catalog/session.transcript.updated.js.map +1 -1
- package/dist/server/modules/hooks/dtos/hook-event.dto.d.ts +50 -0
- package/dist/server/modules/hooks/dtos/hook-event.dto.js +18 -1
- package/dist/server/modules/hooks/dtos/hook-event.dto.js.map +1 -1
- package/dist/server/modules/hooks/hooks.module.js +2 -1
- package/dist/server/modules/hooks/hooks.module.js.map +1 -1
- package/dist/server/modules/hooks/services/hooks.service.d.ts +4 -1
- package/dist/server/modules/hooks/services/hooks.service.js +15 -3
- package/dist/server/modules/hooks/services/hooks.service.js.map +1 -1
- package/dist/server/modules/mcp/dtos/mcp.dto.d.ts +24 -0
- package/dist/server/modules/mcp/dtos/mcp.dto.js.map +1 -1
- package/dist/server/modules/mcp/services/handlers/agent-context.d.ts +2 -2
- package/dist/server/modules/mcp/services/handlers/agent-tools.js +103 -16
- package/dist/server/modules/mcp/services/handlers/agent-tools.js.map +1 -1
- package/dist/server/modules/mcp/services/handlers/prompt-tools.js +11 -9
- package/dist/server/modules/mcp/services/handlers/prompt-tools.js.map +1 -1
- package/dist/server/modules/mcp/services/instructions-resolver.js +14 -10
- package/dist/server/modules/mcp/services/instructions-resolver.js.map +1 -1
- package/dist/server/modules/mcp/tool-descriptors/agent.metadata.js +1 -1
- package/dist/server/modules/mcp/tool-descriptors/agent.metadata.js.map +1 -1
- package/dist/server/modules/metrics/controllers/metrics.controller.d.ts +6 -0
- package/dist/server/modules/metrics/controllers/metrics.controller.js +38 -0
- package/dist/server/modules/metrics/controllers/metrics.controller.js.map +1 -0
- package/dist/server/modules/metrics/helpers/byte-accounting.helper.d.ts +17 -0
- package/dist/server/modules/metrics/helpers/byte-accounting.helper.js +88 -0
- package/dist/server/modules/metrics/helpers/byte-accounting.helper.js.map +1 -0
- package/dist/server/modules/metrics/metrics.module.d.ts +2 -0
- package/dist/server/modules/metrics/metrics.module.js +23 -0
- package/dist/server/modules/metrics/metrics.module.js.map +1 -0
- package/dist/server/modules/metrics/services/metrics.service.d.ts +20 -0
- package/dist/server/modules/metrics/services/metrics.service.js +241 -0
- package/dist/server/modules/metrics/services/metrics.service.js.map +1 -0
- package/dist/server/modules/metrics/types/metrics.types.d.ts +100 -0
- package/dist/server/modules/{providers/adapters/capabilities/context-window.capability.js → metrics/types/metrics.types.js} +1 -1
- package/dist/server/modules/metrics/types/metrics.types.js.map +1 -0
- package/dist/server/modules/profiles/dto.d.ts +2 -2
- package/dist/server/modules/profiles/dto.js +14 -2
- package/dist/server/modules/profiles/dto.js.map +1 -1
- package/dist/server/modules/projects/controllers/projects.controller.d.ts +5 -6
- package/dist/server/modules/projects/helpers/profile-mapping.helpers.d.ts +5 -3
- package/dist/server/modules/projects/helpers/profile-mapping.helpers.js +25 -13
- package/dist/server/modules/projects/helpers/profile-mapping.helpers.js.map +1 -1
- package/dist/server/modules/projects/helpers/project-export.d.ts +0 -2
- package/dist/server/modules/projects/helpers/project-export.js +7 -3
- package/dist/server/modules/projects/helpers/project-export.js.map +1 -1
- package/dist/server/modules/projects/helpers/project-import.d.ts +7 -6
- package/dist/server/modules/projects/helpers/project-import.js +66 -105
- package/dist/server/modules/projects/helpers/project-import.js.map +1 -1
- package/dist/server/modules/projects/helpers/project-runtime.helpers.d.ts +1 -0
- package/dist/server/modules/projects/helpers/project-runtime.helpers.js +2 -1
- package/dist/server/modules/projects/helpers/project-runtime.helpers.js.map +1 -1
- package/dist/server/modules/projects/helpers/template-loader.d.ts +3 -3
- package/dist/server/modules/projects/helpers/template-loader.js +32 -12
- package/dist/server/modules/projects/helpers/template-loader.js.map +1 -1
- package/dist/server/modules/projects/projects.module.js +0 -2
- package/dist/server/modules/projects/projects.module.js.map +1 -1
- package/dist/server/modules/projects/services/project-registry-import.service.d.ts +2 -0
- package/dist/server/modules/projects/services/project-registry-import.service.js +29 -1
- package/dist/server/modules/projects/services/project-registry-import.service.js.map +1 -1
- package/dist/server/modules/projects/services/project-template-upgrade.service.d.ts +5 -0
- package/dist/server/modules/projects/services/project-template-upgrade.service.js +22 -2
- package/dist/server/modules/projects/services/project-template-upgrade.service.js.map +1 -1
- package/dist/server/modules/projects/services/projects.service.d.ts +12 -20
- package/dist/server/modules/projects/services/projects.service.js +8 -9
- package/dist/server/modules/projects/services/projects.service.js.map +1 -1
- package/dist/server/modules/projects/template-codec/codec-registry.js.map +1 -1
- package/dist/server/modules/projects/template-codec/codecs/agents.codec.d.ts +1 -1
- package/dist/server/modules/projects/template-codec/codecs/agents.codec.js +4 -4
- package/dist/server/modules/projects/template-codec/codecs/agents.codec.js.map +1 -1
- package/dist/server/modules/projects/template-codec/codecs/profiles.codec.d.ts +1 -1
- package/dist/server/modules/projects/template-codec/codecs/profiles.codec.js +27 -8
- package/dist/server/modules/projects/template-codec/codecs/profiles.codec.js.map +1 -1
- package/dist/server/modules/projects/template-codec/codecs/project-settings.codec.js +8 -1
- package/dist/server/modules/projects/template-codec/codecs/project-settings.codec.js.map +1 -1
- package/dist/server/modules/projects/template-codec/codecs/prompts.codec.js +23 -4
- package/dist/server/modules/projects/template-codec/codecs/prompts.codec.js.map +1 -1
- package/dist/server/modules/projects/template-codec/codecs/provider-settings.codec.d.ts +0 -5
- package/dist/server/modules/projects/template-codec/codecs/provider-settings.codec.js +10 -46
- package/dist/server/modules/projects/template-codec/codecs/provider-settings.codec.js.map +1 -1
- package/dist/server/modules/projects/template-codec/codecs/watchers.codec.js +1 -1
- package/dist/server/modules/projects/template-codec/codecs/watchers.codec.js.map +1 -1
- package/dist/server/modules/projects/template-codec/import-context.d.ts +6 -1
- package/dist/server/modules/projects/template-codec/import-context.js.map +1 -1
- package/dist/server/modules/projects/template-codec/template-section-codec.d.ts +7 -5
- package/dist/server/modules/providers/adapters/capabilities/auto-compact.capability.d.ts +13 -0
- package/dist/server/modules/providers/adapters/capabilities/auto-compact.capability.js +3 -0
- package/dist/server/modules/providers/adapters/capabilities/auto-compact.capability.js.map +1 -0
- package/dist/server/modules/providers/adapters/capabilities/index.d.ts +2 -2
- package/dist/server/modules/providers/adapters/capabilities/index.js +2 -2
- package/dist/server/modules/providers/adapters/capabilities/index.js.map +1 -1
- package/dist/server/modules/providers/adapters/capabilities/type-guards.d.ts +3 -3
- package/dist/server/modules/providers/adapters/capabilities/type-guards.js +3 -3
- package/dist/server/modules/providers/adapters/capabilities/type-guards.js.map +1 -1
- package/dist/server/modules/providers/adapters/claude.adapter.d.ts +3 -7
- package/dist/server/modules/providers/adapters/claude.adapter.js +5 -45
- package/dist/server/modules/providers/adapters/claude.adapter.js.map +1 -1
- package/dist/server/modules/providers/controllers/providers.controller.d.ts +3 -7
- package/dist/server/modules/providers/controllers/providers.controller.js +2 -14
- package/dist/server/modules/providers/controllers/providers.controller.js.map +1 -1
- package/dist/server/modules/providers/providers.module.js +0 -2
- package/dist/server/modules/providers/providers.module.js.map +1 -1
- package/dist/server/modules/providers/services/provider-state-manager.service.d.ts +4 -10
- package/dist/server/modules/providers/services/provider-state-manager.service.js +28 -83
- package/dist/server/modules/providers/services/provider-state-manager.service.js.map +1 -1
- package/dist/server/modules/registry/controllers/templates.controller.d.ts +2 -4
- package/dist/server/modules/runtime-context-capture/claude-launch-settings-materializer.service.d.ts +32 -0
- package/dist/server/modules/runtime-context-capture/claude-launch-settings-materializer.service.js +364 -0
- package/dist/server/modules/runtime-context-capture/claude-launch-settings-materializer.service.js.map +1 -0
- package/dist/server/modules/runtime-context-capture/context-window-policy.d.ts +40 -0
- package/dist/server/modules/runtime-context-capture/context-window-policy.js +73 -0
- package/dist/server/modules/runtime-context-capture/context-window-policy.js.map +1 -0
- package/dist/server/modules/runtime-context-capture/index.d.ts +6 -0
- package/dist/server/modules/runtime-context-capture/index.js +23 -0
- package/dist/server/modules/runtime-context-capture/index.js.map +1 -0
- package/dist/server/modules/runtime-context-capture/runtime-context-capture-files.d.ts +4 -0
- package/dist/server/modules/runtime-context-capture/runtime-context-capture-files.js +40 -0
- package/dist/server/modules/runtime-context-capture/runtime-context-capture-files.js.map +1 -0
- package/dist/server/modules/runtime-context-capture/runtime-context-capture.module.d.ts +2 -0
- package/dist/server/modules/runtime-context-capture/runtime-context-capture.module.js +25 -0
- package/dist/server/modules/runtime-context-capture/runtime-context-capture.module.js.map +1 -0
- package/dist/server/modules/runtime-context-capture/runtime-context-capture.service.d.ts +25 -0
- package/dist/server/modules/runtime-context-capture/runtime-context-capture.service.js +155 -0
- package/dist/server/modules/runtime-context-capture/runtime-context-capture.service.js.map +1 -0
- package/dist/server/modules/runtime-context-capture/runtime-context-capture.types.d.ts +44 -0
- package/dist/server/modules/runtime-context-capture/runtime-context-capture.types.js +5 -0
- package/dist/server/modules/runtime-context-capture/runtime-context-capture.types.js.map +1 -0
- package/dist/server/modules/seeders/seeders/0011_seed_remove_claude_1m_provider_env.d.ts +3 -0
- package/dist/server/modules/seeders/seeders/0011_seed_remove_claude_1m_provider_env.js +31 -0
- package/dist/server/modules/seeders/seeders/0011_seed_remove_claude_1m_provider_env.js.map +1 -0
- package/dist/server/modules/seeders/seeders/0012_seed_claude_launch_settings.d.ts +3 -0
- package/dist/server/modules/seeders/seeders/0012_seed_claude_launch_settings.js +28 -0
- package/dist/server/modules/seeders/seeders/0012_seed_claude_launch_settings.js.map +1 -0
- package/dist/server/modules/seeders/seeders/0013_seed_prompt_type_tags.d.ts +3 -0
- package/dist/server/modules/seeders/seeders/0013_seed_prompt_type_tags.js +112 -0
- package/dist/server/modules/seeders/seeders/0013_seed_prompt_type_tags.js.map +1 -0
- package/dist/server/modules/seeders/services/data-seeder.service.js +6 -0
- package/dist/server/modules/seeders/services/data-seeder.service.js.map +1 -1
- package/dist/server/modules/session-reader/adapters/antigravity-session-reader.adapter.d.ts +6 -0
- package/dist/server/modules/session-reader/adapters/antigravity-session-reader.adapter.js +66 -0
- package/dist/server/modules/session-reader/adapters/antigravity-session-reader.adapter.js.map +1 -1
- package/dist/server/modules/session-reader/adapters/claude-session-reader.adapter.d.ts +5 -0
- package/dist/server/modules/session-reader/adapters/claude-session-reader.adapter.js +12 -0
- package/dist/server/modules/session-reader/adapters/claude-session-reader.adapter.js.map +1 -1
- package/dist/server/modules/session-reader/adapters/codex-session-reader.adapter.d.ts +5 -0
- package/dist/server/modules/session-reader/adapters/codex-session-reader.adapter.js +12 -0
- package/dist/server/modules/session-reader/adapters/codex-session-reader.adapter.js.map +1 -1
- package/dist/server/modules/session-reader/adapters/copilot-session-reader.adapter.d.ts +5 -0
- package/dist/server/modules/session-reader/adapters/copilot-session-reader.adapter.js +12 -0
- package/dist/server/modules/session-reader/adapters/copilot-session-reader.adapter.js.map +1 -1
- package/dist/server/modules/session-reader/adapters/opencode-session-reader.adapter.d.ts +5 -0
- package/dist/server/modules/session-reader/adapters/opencode-session-reader.adapter.js +15 -0
- package/dist/server/modules/session-reader/adapters/opencode-session-reader.adapter.js.map +1 -1
- package/dist/server/modules/session-reader/adapters/session-reader-adapter.interface.d.ts +10 -0
- package/dist/server/modules/session-reader/adapters/session-reader-adapter.interface.js +28 -1
- package/dist/server/modules/session-reader/adapters/session-reader-adapter.interface.js.map +1 -1
- package/dist/server/modules/session-reader/controllers/session-reader.controller.d.ts +10 -4
- package/dist/server/modules/session-reader/controllers/session-reader.controller.js +18 -19
- package/dist/server/modules/session-reader/controllers/session-reader.controller.js.map +1 -1
- package/dist/server/modules/session-reader/data/pricing.json +334 -6
- package/dist/server/modules/session-reader/parsers/claude-jsonl.parser.d.ts +1 -0
- package/dist/server/modules/session-reader/parsers/claude-jsonl.parser.js +7 -3
- package/dist/server/modules/session-reader/parsers/claude-jsonl.parser.js.map +1 -1
- package/dist/server/modules/session-reader/parsers/codex-jsonl.parser.d.ts +1 -0
- package/dist/server/modules/session-reader/parsers/codex-jsonl.parser.js +22 -11
- package/dist/server/modules/session-reader/parsers/codex-jsonl.parser.js.map +1 -1
- package/dist/server/modules/session-reader/parsers/copilot-jsonl.parser.d.ts +1 -0
- package/dist/server/modules/session-reader/parsers/copilot-jsonl.parser.js +22 -9
- package/dist/server/modules/session-reader/parsers/copilot-jsonl.parser.js.map +1 -1
- package/dist/server/modules/session-reader/readers/opencode-sqlite.reader.d.ts +5 -1
- package/dist/server/modules/session-reader/readers/opencode-sqlite.reader.js +102 -0
- package/dist/server/modules/session-reader/readers/opencode-sqlite.reader.js.map +1 -1
- package/dist/server/modules/session-reader/services/pricing.interface.d.ts +2 -0
- package/dist/server/modules/session-reader/services/pricing.interface.js +3 -0
- package/dist/server/modules/session-reader/services/pricing.interface.js.map +1 -1
- package/dist/server/modules/session-reader/services/pricing.service.d.ts +1 -0
- package/dist/server/modules/session-reader/services/pricing.service.js +4 -2
- package/dist/server/modules/session-reader/services/pricing.service.js.map +1 -1
- package/dist/server/modules/session-reader/services/session-cache.service.d.ts +72 -4
- package/dist/server/modules/session-reader/services/session-cache.service.js +435 -68
- package/dist/server/modules/session-reader/services/session-cache.service.js.map +1 -1
- package/dist/server/modules/session-reader/services/session-reader.service.d.ts +33 -9
- package/dist/server/modules/session-reader/services/session-reader.service.js +200 -79
- package/dist/server/modules/session-reader/services/session-reader.service.js.map +1 -1
- package/dist/server/modules/session-reader/services/transcript-cursor.d.ts +1 -1
- package/dist/server/modules/session-reader/services/transcript-cursor.js +2 -2
- package/dist/server/modules/session-reader/services/transcript-cursor.js.map +1 -1
- package/dist/server/modules/session-reader/services/transcript-watcher.service.d.ts +3 -0
- package/dist/server/modules/session-reader/services/transcript-watcher.service.js +66 -11
- package/dist/server/modules/session-reader/services/transcript-watcher.service.js.map +1 -1
- package/dist/server/modules/session-reader/session-reader.module.js +12 -2
- package/dist/server/modules/session-reader/session-reader.module.js.map +1 -1
- package/dist/server/modules/sessions/dtos/sessions.dto.d.ts +1 -0
- package/dist/server/modules/sessions/dtos/sessions.dto.js.map +1 -1
- package/dist/server/modules/sessions/services/agent-presence-aggregator.d.ts +1 -0
- package/dist/server/modules/sessions/services/agent-presence-aggregator.js +1 -0
- package/dist/server/modules/sessions/services/agent-presence-aggregator.js.map +1 -1
- package/dist/server/modules/sessions/services/provider-launch-config/provider-launch-config.service.d.ts +6 -2
- package/dist/server/modules/sessions/services/provider-launch-config/provider-launch-config.service.js +24 -8
- package/dist/server/modules/sessions/services/provider-launch-config/provider-launch-config.service.js.map +1 -1
- package/dist/server/modules/sessions/services/session-runtime/__test-utils__/pipeline-harness.d.ts +30 -5
- package/dist/server/modules/sessions/services/session-runtime/__test-utils__/pipeline-harness.js +51 -8
- package/dist/server/modules/sessions/services/session-runtime/__test-utils__/pipeline-harness.js.map +1 -1
- package/dist/server/modules/sessions/services/session-runtime/session-launch-pipeline.service.d.ts +5 -1
- package/dist/server/modules/sessions/services/session-runtime/session-launch-pipeline.service.js +39 -6
- package/dist/server/modules/sessions/services/session-runtime/session-launch-pipeline.service.js.map +1 -1
- package/dist/server/modules/sessions/services/session-runtime/session-restore-pipeline.service.d.ts +7 -1
- package/dist/server/modules/sessions/services/session-runtime/session-restore-pipeline.service.js +47 -5
- package/dist/server/modules/sessions/services/session-runtime/session-restore-pipeline.service.js.map +1 -1
- package/dist/server/modules/sessions/services/sessions.service.d.ts +6 -1
- package/dist/server/modules/sessions/services/sessions.service.js +17 -3
- package/dist/server/modules/sessions/services/sessions.service.js.map +1 -1
- package/dist/server/modules/sessions/sessions.module.js +2 -0
- package/dist/server/modules/sessions/sessions.module.js.map +1 -1
- package/dist/server/modules/sessions/utils/profile-options.d.ts +1 -2
- package/dist/server/modules/sessions/utils/profile-options.js +3 -50
- package/dist/server/modules/sessions/utils/profile-options.js.map +1 -1
- package/dist/server/modules/storage/db/schema.d.ts +10 -87
- package/dist/server/modules/storage/db/schema.js +3 -13
- package/dist/server/modules/storage/db/schema.js.map +1 -1
- package/dist/server/modules/storage/interfaces/snapshot-prompt-writer.interface.d.ts +5 -0
- package/dist/server/modules/storage/interfaces/snapshot-prompt-writer.interface.js +5 -0
- package/dist/server/modules/storage/interfaces/snapshot-prompt-writer.interface.js.map +1 -0
- package/dist/server/modules/storage/local/delegates/prompt.delegate.d.ts +2 -0
- package/dist/server/modules/storage/local/delegates/prompt.delegate.js +31 -20
- package/dist/server/modules/storage/local/delegates/prompt.delegate.js.map +1 -1
- package/dist/server/modules/storage/local/delegates/provider.delegate.js +61 -16
- package/dist/server/modules/storage/local/delegates/provider.delegate.js.map +1 -1
- package/dist/server/modules/storage/local/local-storage.service.d.ts +3 -1
- package/dist/server/modules/storage/local/local-storage.service.js +3 -0
- package/dist/server/modules/storage/local/local-storage.service.js.map +1 -1
- package/dist/server/modules/storage/models/domain.models.d.ts +2 -4
- package/dist/server/modules/storage/storage.module.js +8 -2
- package/dist/server/modules/storage/storage.module.js.map +1 -1
- package/dist/server/modules/terminal/dtos/ws-envelope.dto.d.ts +185 -1
- package/dist/server/modules/terminal/dtos/ws-envelope.dto.js +93 -2
- package/dist/server/modules/terminal/dtos/ws-envelope.dto.js.map +1 -1
- package/dist/server/modules/terminal/gateways/terminal.gateway.d.ts +47 -2
- package/dist/server/modules/terminal/gateways/terminal.gateway.js +615 -62
- package/dist/server/modules/terminal/gateways/terminal.gateway.js.map +1 -1
- package/dist/server/modules/terminal/services/process-executor/fake-process-executor.d.ts +1 -0
- package/dist/server/modules/terminal/services/process-executor/fake-process-executor.js +1 -0
- package/dist/server/modules/terminal/services/process-executor/fake-process-executor.js.map +1 -1
- package/dist/server/modules/terminal/services/pty.service.d.ts +8 -3
- package/dist/server/modules/terminal/services/pty.service.js +11 -2
- package/dist/server/modules/terminal/services/pty.service.js.map +1 -1
- package/dist/server/modules/terminal/services/terminal-io/capture.js +2 -0
- package/dist/server/modules/terminal/services/terminal-io/capture.js.map +1 -1
- package/dist/server/modules/terminal/services/terminal-io/delivery.d.ts +1 -0
- package/dist/server/modules/terminal/services/terminal-io/delivery.js.map +1 -1
- package/dist/server/modules/terminal/services/terminal-io/terminal-io.service.js +28 -1
- package/dist/server/modules/terminal/services/terminal-io/terminal-io.service.js.map +1 -1
- package/dist/server/modules/terminal/services/terminal-key-input/terminal-key-input.facade.d.ts +6 -0
- package/dist/server/modules/terminal/services/terminal-key-input/terminal-key-input.facade.js +26 -1
- package/dist/server/modules/terminal/services/terminal-key-input/terminal-key-input.facade.js.map +1 -1
- package/dist/server/modules/terminal/services/terminal-seed.service.d.ts +27 -3
- package/dist/server/modules/terminal/services/terminal-seed.service.js +75 -19
- package/dist/server/modules/terminal/services/terminal-seed.service.js.map +1 -1
- package/dist/server/modules/terminal/services/terminal-send-scheduler.service.d.ts +73 -0
- package/dist/server/modules/terminal/services/terminal-send-scheduler.service.js +387 -0
- package/dist/server/modules/terminal/services/terminal-send-scheduler.service.js.map +1 -0
- package/dist/server/modules/terminal/services/terminal-session/terminal-session.d.ts +4 -10
- package/dist/server/modules/terminal/services/terminal-session/terminal-session.js +20 -48
- package/dist/server/modules/terminal/services/terminal-session/terminal-session.js.map +1 -1
- package/dist/server/modules/terminal/services/terminal-socket-drain.adapter.d.ts +10 -0
- package/dist/server/modules/terminal/services/terminal-socket-drain.adapter.js +75 -0
- package/dist/server/modules/terminal/services/terminal-socket-drain.adapter.js.map +1 -0
- package/dist/server/modules/terminal/services/terminal-stream.service.d.ts +53 -6
- package/dist/server/modules/terminal/services/terminal-stream.service.js +190 -35
- package/dist/server/modules/terminal/services/terminal-stream.service.js.map +1 -1
- package/dist/server/modules/terminal/terminal.module.js +7 -0
- package/dist/server/modules/terminal/terminal.module.js.map +1 -1
- package/dist/server/templates/3-agents-dev.json +120 -105
- package/dist/server/templates/teams-dev.json +204 -180
- package/dist/server/tsconfig.tsbuildinfo +1 -1
- package/dist/server/ui/assets/{ReviewDetailPage-DdJqgIFY.js → ReviewDetailPage-CkB_Fx1C.js} +1 -1
- package/dist/server/ui/assets/{ReviewsPage-iWEVgAdp.js → ReviewsPage-Bx6-dM75.js} +1 -1
- package/dist/server/ui/assets/index-5SDRTmwU.js +1156 -0
- package/dist/server/ui/assets/index-PyQSKUPl.css +32 -0
- package/dist/server/ui/assets/{useReviewSubscription-DCXbfBtE.js → useReviewSubscription-BZxAz2ZG.js} +1 -1
- package/dist/server/ui/index.html +2 -2
- package/dist/templates/3-agents-dev.json +120 -105
- package/dist/templates/teams-dev.json +204 -180
- package/package.json +20 -5
- package/dist/server/modules/providers/adapters/capabilities/context-window.capability.d.ts +0 -20
- package/dist/server/modules/providers/adapters/capabilities/context-window.capability.js.map +0 -1
- package/dist/server/modules/providers/services/probe-proof.service.d.ts +0 -8
- package/dist/server/modules/providers/services/probe-proof.service.js +0 -49
- package/dist/server/modules/providers/services/probe-proof.service.js.map +0 -1
- package/dist/server/modules/providers/utils/probe-1m.d.ts +0 -8
- package/dist/server/modules/providers/utils/probe-1m.js +0 -76
- package/dist/server/modules/providers/utils/probe-1m.js.map +0 -1
- package/dist/server/ui/assets/index-CM2KuqcE.js +0 -1113
- package/dist/server/ui/assets/index-COvyD_66.css +0 -32
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.MetricsService = void 0;
|
|
10
|
+
const common_1 = require("@nestjs/common");
|
|
11
|
+
const node_perf_hooks_1 = require("node:perf_hooks");
|
|
12
|
+
const logger_1 = require("../../../common/logging/logger");
|
|
13
|
+
const byte_accounting_helper_1 = require("../helpers/byte-accounting.helper");
|
|
14
|
+
const logger = (0, logger_1.createLogger)('MetricsService');
|
|
15
|
+
const DEFAULT_LOG_INTERVAL_MS = 60_000;
|
|
16
|
+
const CACHE_SNAPSHOT_TTL_MS = 10_000;
|
|
17
|
+
class TransactionalObjectIdentitySet {
|
|
18
|
+
constructor(committed) {
|
|
19
|
+
this.committed = committed;
|
|
20
|
+
this.pending = new Set();
|
|
21
|
+
}
|
|
22
|
+
has(value) {
|
|
23
|
+
return this.committed.has(value) || this.pending.has(value);
|
|
24
|
+
}
|
|
25
|
+
add(value) {
|
|
26
|
+
this.pending.add(value);
|
|
27
|
+
return this;
|
|
28
|
+
}
|
|
29
|
+
commit() {
|
|
30
|
+
for (const value of this.pending) {
|
|
31
|
+
this.committed.add(value);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
const ACCOUNTING_INFO = {
|
|
36
|
+
method: 'transactional unique object-graph snapshot for retained-root providers; additive fallback for providers without roots',
|
|
37
|
+
sharedGraphRule: 'each provider stages visited identities and commits them only after its complete walk succeeds — failed providers cannot suppress shared objects from later healthy providers; successful cross-cache sharing is counted once and cycles are safe',
|
|
38
|
+
perCacheViews: 'parsed/chunks per-cache bytes are walk-attribution shares from the shared aggregate walk (additive, order-dependent); DTO per-cache bytes are the independent JSON wire-size view (not additive with the others); callers must not sum all per-cache values — do not sum per-cache views; use aggregate.bytesEstimated for the unique retained-bytes snapshot',
|
|
39
|
+
approximation: 'aggregate retained-size estimate uses property keys + primitive sizes + object/array overhead, not serialized JSON length; DTO per-cache bytes use the pre-computed JSON.stringify wire length',
|
|
40
|
+
hotPathSafety: 'byte estimation runs on-demand only (metrics endpoint / periodic log), never on cache read/write paths; entry counts and hit/miss counters are always-on and O(1)',
|
|
41
|
+
budgeting: 'transcript composite budget uses deterministic cache-write proxies: file source bytes (2x parsed + 1x chunks), session-local token/message estimates for DB sources, and the DTO wire length already computed at DTO cache creation; aggregate.budgetUsedBytes is the enforced value and aggregate.bytesEstimated remains the independent retained-graph snapshot',
|
|
42
|
+
};
|
|
43
|
+
let MetricsService = class MetricsService {
|
|
44
|
+
constructor() {
|
|
45
|
+
this.eventLoopMonitor = (0, node_perf_hooks_1.monitorEventLoopDelay)();
|
|
46
|
+
this.cacheStatsProviders = new Map();
|
|
47
|
+
this.statsProviders = new Map();
|
|
48
|
+
}
|
|
49
|
+
registerCacheStatsProvider(name, provider, retainedRoots) {
|
|
50
|
+
this.cacheStatsProviders.set(name, { stats: provider, retainedRoots });
|
|
51
|
+
this.cacheSnapshotCache = undefined;
|
|
52
|
+
}
|
|
53
|
+
registerStatsProvider(name, provider) {
|
|
54
|
+
this.statsProviders.set(name, provider);
|
|
55
|
+
}
|
|
56
|
+
onModuleInit() {
|
|
57
|
+
this.eventLoopMonitor.enable();
|
|
58
|
+
const intervalMs = this.parseLogInterval();
|
|
59
|
+
if (intervalMs > 0) {
|
|
60
|
+
this.periodicLogTimer = setInterval(() => {
|
|
61
|
+
try {
|
|
62
|
+
logger.info(this.getMetrics(), 'metrics.periodic');
|
|
63
|
+
}
|
|
64
|
+
catch (err) {
|
|
65
|
+
logger.error({ error: String(err) }, 'metrics.periodic.failed');
|
|
66
|
+
}
|
|
67
|
+
}, intervalMs);
|
|
68
|
+
this.periodicLogTimer.unref();
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
onModuleDestroy() {
|
|
72
|
+
this.eventLoopMonitor.disable();
|
|
73
|
+
if (this.periodicLogTimer) {
|
|
74
|
+
clearInterval(this.periodicLogTimer);
|
|
75
|
+
this.periodicLogTimer = undefined;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
getMetrics() {
|
|
79
|
+
const mem = process.memoryUsage();
|
|
80
|
+
const cacheSnapshot = this.getCacheSnapshot();
|
|
81
|
+
const frameBuffers = this.getStat('frameBuffers', {
|
|
82
|
+
sessions: 0,
|
|
83
|
+
totalFrames: 0,
|
|
84
|
+
bytesEstimated: 0,
|
|
85
|
+
maxBufferCapacity: 0,
|
|
86
|
+
});
|
|
87
|
+
const sockets = this.getStat('sockets', { connectedClients: 0 });
|
|
88
|
+
const pty = this.getStat('pty', { activeSessions: 0 });
|
|
89
|
+
return {
|
|
90
|
+
timestamp: new Date().toISOString(),
|
|
91
|
+
process: {
|
|
92
|
+
pid: process.pid,
|
|
93
|
+
memory: {
|
|
94
|
+
rss: mem.rss,
|
|
95
|
+
heapTotal: mem.heapTotal,
|
|
96
|
+
heapUsed: mem.heapUsed,
|
|
97
|
+
external: mem.external,
|
|
98
|
+
arrayBuffers: mem.arrayBuffers,
|
|
99
|
+
},
|
|
100
|
+
eventLoopDelay: this.getEventLoopDelay(),
|
|
101
|
+
listeners: {
|
|
102
|
+
SIGINT: process.listenerCount('SIGINT'),
|
|
103
|
+
SIGTERM: process.listenerCount('SIGTERM'),
|
|
104
|
+
uncaughtException: process.listenerCount('uncaughtException'),
|
|
105
|
+
unhandledRejection: process.listenerCount('unhandledRejection'),
|
|
106
|
+
},
|
|
107
|
+
},
|
|
108
|
+
caches: cacheSnapshot,
|
|
109
|
+
frameBuffers,
|
|
110
|
+
pty,
|
|
111
|
+
sockets,
|
|
112
|
+
accounting: ACCOUNTING_INFO,
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
getCacheSnapshot() {
|
|
116
|
+
const now = Date.now();
|
|
117
|
+
if (this.cacheSnapshotCache &&
|
|
118
|
+
now - this.cacheSnapshotCache.computedAt < CACHE_SNAPSHOT_TTL_MS) {
|
|
119
|
+
return this.cloneCacheSnapshot(this.cacheSnapshotCache.value);
|
|
120
|
+
}
|
|
121
|
+
const value = this.computeCacheSnapshot();
|
|
122
|
+
this.cacheSnapshotCache = { computedAt: now, value };
|
|
123
|
+
return this.cloneCacheSnapshot(value);
|
|
124
|
+
}
|
|
125
|
+
computeCacheSnapshot() {
|
|
126
|
+
const aggregateSeen = new WeakSet();
|
|
127
|
+
const caches = {};
|
|
128
|
+
let aggregateEntries = 0;
|
|
129
|
+
let aggregateBytes = 0;
|
|
130
|
+
let aggregateHits = 0;
|
|
131
|
+
let aggregateMisses = 0;
|
|
132
|
+
let providersFailed = 0;
|
|
133
|
+
let budgetUsedBytes;
|
|
134
|
+
let budgetBytes;
|
|
135
|
+
let evictions;
|
|
136
|
+
for (const [name, provider] of this.cacheStatsProviders) {
|
|
137
|
+
try {
|
|
138
|
+
const stats = { ...provider.stats() };
|
|
139
|
+
let providerBytes = stats.bytesEstimated;
|
|
140
|
+
if (provider.retainedRoots) {
|
|
141
|
+
const providerSeen = new TransactionalObjectIdentitySet(aggregateSeen);
|
|
142
|
+
const retainedRoots = Array.from(provider.retainedRoots());
|
|
143
|
+
providerBytes = retainedRoots.reduce((total, root) => total + (0, byte_accounting_helper_1.estimateObjectBytes)(root, providerSeen), 0);
|
|
144
|
+
if (stats.bytesMethod === 'deferred-to-aggregate') {
|
|
145
|
+
stats.bytesEstimated = providerBytes;
|
|
146
|
+
stats.bytesMethod = 'object-graph-walk';
|
|
147
|
+
}
|
|
148
|
+
providerSeen.commit();
|
|
149
|
+
}
|
|
150
|
+
caches[name] = stats;
|
|
151
|
+
aggregateEntries += stats.entries;
|
|
152
|
+
aggregateBytes += providerBytes;
|
|
153
|
+
aggregateHits += stats.hits;
|
|
154
|
+
aggregateMisses += stats.misses;
|
|
155
|
+
if (stats.budgetUsedBytes !== undefined)
|
|
156
|
+
budgetUsedBytes = stats.budgetUsedBytes;
|
|
157
|
+
if (stats.budgetBytes !== undefined)
|
|
158
|
+
budgetBytes = stats.budgetBytes;
|
|
159
|
+
if (stats.evictions !== undefined)
|
|
160
|
+
evictions = stats.evictions;
|
|
161
|
+
}
|
|
162
|
+
catch (err) {
|
|
163
|
+
providersFailed += 1;
|
|
164
|
+
caches[name] = {
|
|
165
|
+
entries: 0,
|
|
166
|
+
bytesEstimated: 0,
|
|
167
|
+
hits: 0,
|
|
168
|
+
misses: 0,
|
|
169
|
+
hitRate: 0,
|
|
170
|
+
};
|
|
171
|
+
logger.warn({ cache: name, error: String(err) }, 'cache stats provider failed');
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
const aggregate = {
|
|
175
|
+
entries: aggregateEntries,
|
|
176
|
+
bytesEstimated: aggregateBytes,
|
|
177
|
+
hits: aggregateHits,
|
|
178
|
+
misses: aggregateMisses,
|
|
179
|
+
hitRate: aggregateHits + aggregateMisses > 0 ? aggregateHits / (aggregateHits + aggregateMisses) : 0,
|
|
180
|
+
providersFailed,
|
|
181
|
+
...(budgetUsedBytes !== undefined ? { budgetUsedBytes } : {}),
|
|
182
|
+
...(budgetBytes !== undefined ? { budgetBytes } : {}),
|
|
183
|
+
...(evictions !== undefined ? { evictions } : {}),
|
|
184
|
+
};
|
|
185
|
+
return { ...caches, aggregate };
|
|
186
|
+
}
|
|
187
|
+
cloneCacheSnapshot(snapshot) {
|
|
188
|
+
return Object.fromEntries(Object.entries(snapshot).map(([name, stats]) => [name, { ...stats }]));
|
|
189
|
+
}
|
|
190
|
+
getStat(name, fallback) {
|
|
191
|
+
const provider = this.statsProviders.get(name);
|
|
192
|
+
if (!provider)
|
|
193
|
+
return fallback;
|
|
194
|
+
try {
|
|
195
|
+
return provider();
|
|
196
|
+
}
|
|
197
|
+
catch (err) {
|
|
198
|
+
logger.warn({ stat: name, error: String(err) }, 'stats provider failed');
|
|
199
|
+
return fallback;
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
getEventLoopDelay() {
|
|
203
|
+
const h = this.eventLoopMonitor;
|
|
204
|
+
const nanoseconds = {
|
|
205
|
+
min: h.min,
|
|
206
|
+
max: h.max,
|
|
207
|
+
mean: h.mean,
|
|
208
|
+
stddev: h.stddev,
|
|
209
|
+
p99: h.percentile(99),
|
|
210
|
+
p99_5: h.percentile(99.5),
|
|
211
|
+
};
|
|
212
|
+
if (nanoseconds.min > Number.MAX_SAFE_INTEGER ||
|
|
213
|
+
Object.values(nanoseconds).some((value) => !Number.isFinite(value))) {
|
|
214
|
+
return null;
|
|
215
|
+
}
|
|
216
|
+
const NS_TO_MS = 1e6;
|
|
217
|
+
const milliseconds = {
|
|
218
|
+
minMs: nanoseconds.min / NS_TO_MS,
|
|
219
|
+
maxMs: nanoseconds.max / NS_TO_MS,
|
|
220
|
+
meanMs: nanoseconds.mean / NS_TO_MS,
|
|
221
|
+
stddevMs: nanoseconds.stddev / NS_TO_MS,
|
|
222
|
+
p99Ms: nanoseconds.p99 / NS_TO_MS,
|
|
223
|
+
p99_5Ms: nanoseconds.p99_5 / NS_TO_MS,
|
|
224
|
+
};
|
|
225
|
+
return Object.values(milliseconds).every(Number.isFinite) ? milliseconds : null;
|
|
226
|
+
}
|
|
227
|
+
parseLogInterval() {
|
|
228
|
+
const raw = process.env.METRICS_LOG_INTERVAL_MS;
|
|
229
|
+
if (!raw)
|
|
230
|
+
return DEFAULT_LOG_INTERVAL_MS;
|
|
231
|
+
const parsed = parseInt(raw, 10);
|
|
232
|
+
if (!Number.isFinite(parsed) || parsed < 0)
|
|
233
|
+
return DEFAULT_LOG_INTERVAL_MS;
|
|
234
|
+
return parsed;
|
|
235
|
+
}
|
|
236
|
+
};
|
|
237
|
+
exports.MetricsService = MetricsService;
|
|
238
|
+
exports.MetricsService = MetricsService = __decorate([
|
|
239
|
+
(0, common_1.Injectable)()
|
|
240
|
+
], MetricsService);
|
|
241
|
+
//# sourceMappingURL=metrics.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metrics.service.js","sourceRoot":"","sources":["../../../../src/modules/metrics/services/metrics.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
export interface CacheStats {
|
|
2
|
+
entries: number;
|
|
3
|
+
bytesEstimated: number;
|
|
4
|
+
hits: number;
|
|
5
|
+
misses: number;
|
|
6
|
+
hitRate: number;
|
|
7
|
+
bytesMethod?: 'object-graph-walk' | 'json-stringify-length' | 'deferred-to-aggregate';
|
|
8
|
+
budgetUsedBytes?: number;
|
|
9
|
+
budgetBytes?: number;
|
|
10
|
+
evictions?: number;
|
|
11
|
+
}
|
|
12
|
+
export interface FrameBufferStats {
|
|
13
|
+
sessions: number;
|
|
14
|
+
totalFrames: number;
|
|
15
|
+
bytesEstimated: number;
|
|
16
|
+
maxBufferCapacity: number;
|
|
17
|
+
}
|
|
18
|
+
export interface SocketStats {
|
|
19
|
+
connectedClients: number;
|
|
20
|
+
terminalSeedCaptures?: number;
|
|
21
|
+
terminalQueuedBytes?: number;
|
|
22
|
+
terminalInFlightBytes?: number;
|
|
23
|
+
terminalDesynchronizedClients?: number;
|
|
24
|
+
terminalDesynchronizedLanes?: number;
|
|
25
|
+
terminalDroppedFrames?: number;
|
|
26
|
+
terminalDroppedBytes?: number;
|
|
27
|
+
terminalQueues?: Record<string, {
|
|
28
|
+
queuedBytes: number;
|
|
29
|
+
inFlightBytes: number;
|
|
30
|
+
desynchronized: boolean;
|
|
31
|
+
droppedFrames: number;
|
|
32
|
+
droppedBytes: number;
|
|
33
|
+
engineBufferedPackets: number;
|
|
34
|
+
lanes: Record<string, {
|
|
35
|
+
queuedBytes: number;
|
|
36
|
+
desynchronized: boolean;
|
|
37
|
+
recoveryActive: boolean;
|
|
38
|
+
recoveryEpoch?: number;
|
|
39
|
+
droppedFrames: number;
|
|
40
|
+
droppedBytes: number;
|
|
41
|
+
}>;
|
|
42
|
+
}>;
|
|
43
|
+
}
|
|
44
|
+
export interface PtyStats {
|
|
45
|
+
activeSessions: number;
|
|
46
|
+
}
|
|
47
|
+
export interface EventLoopDelayStats {
|
|
48
|
+
minMs: number;
|
|
49
|
+
maxMs: number;
|
|
50
|
+
meanMs: number;
|
|
51
|
+
stddevMs: number;
|
|
52
|
+
p99Ms: number;
|
|
53
|
+
p99_5Ms: number;
|
|
54
|
+
}
|
|
55
|
+
export interface ProcessListenerStats {
|
|
56
|
+
SIGINT: number;
|
|
57
|
+
SIGTERM: number;
|
|
58
|
+
uncaughtException: number;
|
|
59
|
+
unhandledRejection: number;
|
|
60
|
+
}
|
|
61
|
+
export interface ProcessMemoryStats {
|
|
62
|
+
rss: number;
|
|
63
|
+
heapTotal: number;
|
|
64
|
+
heapUsed: number;
|
|
65
|
+
external: number;
|
|
66
|
+
arrayBuffers: number;
|
|
67
|
+
}
|
|
68
|
+
export interface ProcessStats {
|
|
69
|
+
pid: number;
|
|
70
|
+
memory: ProcessMemoryStats;
|
|
71
|
+
eventLoopDelay: EventLoopDelayStats | null;
|
|
72
|
+
listeners: ProcessListenerStats;
|
|
73
|
+
}
|
|
74
|
+
export interface CacheAggregateStats extends CacheStats {
|
|
75
|
+
providersFailed: number;
|
|
76
|
+
}
|
|
77
|
+
export interface CacheStatsCollection {
|
|
78
|
+
[name: string]: CacheStats | CacheAggregateStats;
|
|
79
|
+
aggregate: CacheAggregateStats;
|
|
80
|
+
}
|
|
81
|
+
export interface AccountingInfo {
|
|
82
|
+
method: string;
|
|
83
|
+
sharedGraphRule: string;
|
|
84
|
+
perCacheViews: string;
|
|
85
|
+
approximation: string;
|
|
86
|
+
hotPathSafety: string;
|
|
87
|
+
budgeting: string;
|
|
88
|
+
}
|
|
89
|
+
export interface MetricsSnapshot {
|
|
90
|
+
timestamp: string;
|
|
91
|
+
process: ProcessStats;
|
|
92
|
+
caches: CacheStatsCollection;
|
|
93
|
+
frameBuffers: FrameBufferStats;
|
|
94
|
+
pty: PtyStats;
|
|
95
|
+
sockets: SocketStats;
|
|
96
|
+
accounting: AccountingInfo;
|
|
97
|
+
}
|
|
98
|
+
export type CacheStatsProvider = () => CacheStats;
|
|
99
|
+
export type RetainedRootsProvider = () => Iterable<unknown>;
|
|
100
|
+
export type StatsProvider<T = unknown> = () => T;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metrics.types.js","sourceRoot":"","sources":["../../../../src/modules/metrics/types/metrics.types.ts"],"names":[],"mappings":""}
|
|
@@ -121,7 +121,7 @@ export declare const CreateProviderConfigSchema: z.ZodObject<{
|
|
|
121
121
|
name: z.ZodString;
|
|
122
122
|
description: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodString>>, string | null, string | null | undefined>;
|
|
123
123
|
options: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodString>>, string | null, string | null | undefined>;
|
|
124
|
-
env: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodEffects<z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodString>, Record<string, string>, Record<string, string>>, Record<string, string>, Record<string, string>>>>, Record<string, string> | null, Record<string, string> | null | undefined>;
|
|
124
|
+
env: z.ZodEffects<z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodEffects<z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodString>, Record<string, string>, Record<string, string>>, Record<string, string>, Record<string, string>>>>, Record<string, string> | null | undefined, Record<string, string> | null | undefined>, Record<string, string> | null, Record<string, string> | null | undefined>;
|
|
125
125
|
model: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodString>>, string | null, string | null | undefined>;
|
|
126
126
|
effort: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodString>>, string | null, string | null | undefined>;
|
|
127
127
|
position: z.ZodOptional<z.ZodNumber>;
|
|
@@ -150,7 +150,7 @@ export declare const UpdateProviderConfigSchema: z.ZodObject<{
|
|
|
150
150
|
name: z.ZodOptional<z.ZodString>;
|
|
151
151
|
description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
152
152
|
options: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
153
|
-
env: z.ZodOptional<z.ZodNullable<z.ZodEffects<z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodString>, Record<string, string>, Record<string, string>>, Record<string, string>, Record<string, string
|
|
153
|
+
env: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodEffects<z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodString>, Record<string, string>, Record<string, string>>, Record<string, string>, Record<string, string>>>>, Record<string, string> | null | undefined, Record<string, string> | null | undefined>;
|
|
154
154
|
model: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
155
155
|
effort: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
156
156
|
position: z.ZodOptional<z.ZodNumber>;
|
|
@@ -4,6 +4,18 @@ exports.ReorderProviderConfigsSchema = exports.UpdateProviderConfigSchema = expo
|
|
|
4
4
|
const zod_1 = require("zod");
|
|
5
5
|
const shared_1 = require("@devchain/shared");
|
|
6
6
|
Object.defineProperty(exports, "EnvVarsSchema", { enumerable: true, get: function () { return shared_1.EnvVarsSchema; } });
|
|
7
|
+
const context_window_policy_1 = require("../runtime-context-capture/context-window-policy");
|
|
8
|
+
const runtime_context_capture_types_1 = require("../runtime-context-capture/runtime-context-capture.types");
|
|
9
|
+
const ProviderConfigEnvSchema = shared_1.EnvVarsSchema.superRefine((env, ctx) => {
|
|
10
|
+
const result = (0, context_window_policy_1.parseContextWindowEnv)(env?.[context_window_policy_1.CONTEXT_WINDOW_ENV_KEY]);
|
|
11
|
+
if (result.kind === 'invalid') {
|
|
12
|
+
ctx.addIssue({
|
|
13
|
+
code: zod_1.z.ZodIssueCode.custom,
|
|
14
|
+
path: [context_window_policy_1.CONTEXT_WINDOW_ENV_KEY],
|
|
15
|
+
message: `${context_window_policy_1.CONTEXT_WINDOW_ENV_KEY} must be a positive integer no greater than ${runtime_context_capture_types_1.MAX_RUNTIME_CONTEXT_WINDOW_TOKENS}.`,
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
});
|
|
7
19
|
exports.PromptSummarySchema = zod_1.z.object({
|
|
8
20
|
promptId: zod_1.z.string(),
|
|
9
21
|
title: zod_1.z.string(),
|
|
@@ -50,7 +62,7 @@ exports.CreateProviderConfigSchema = zod_1.z.object({
|
|
|
50
62
|
.nullable()
|
|
51
63
|
.optional()
|
|
52
64
|
.transform((v) => (v === undefined ? null : v)),
|
|
53
|
-
env:
|
|
65
|
+
env: ProviderConfigEnvSchema.transform((v) => (v === undefined ? null : v)),
|
|
54
66
|
model: zod_1.z
|
|
55
67
|
.string()
|
|
56
68
|
.nullable()
|
|
@@ -68,7 +80,7 @@ exports.UpdateProviderConfigSchema = zod_1.z.object({
|
|
|
68
80
|
name: zod_1.z.string().min(1).optional(),
|
|
69
81
|
description: zod_1.z.string().nullable().optional(),
|
|
70
82
|
options: zod_1.z.string().nullable().optional(),
|
|
71
|
-
env:
|
|
83
|
+
env: ProviderConfigEnvSchema,
|
|
72
84
|
model: zod_1.z.string().nullable().optional(),
|
|
73
85
|
effort: zod_1.z.string().nullable().optional(),
|
|
74
86
|
position: zod_1.z.number().int().nonnegative().optional(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dto.js","sourceRoot":"","sources":["../../../src/modules/profiles/dto.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AACxB,6CAAiD;
|
|
1
|
+
{"version":3,"file":"dto.js","sourceRoot":"","sources":["../../../src/modules/profiles/dto.ts"],"names":[],"mappings":"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"}
|
|
@@ -80,7 +80,7 @@ export declare class ProjectsController {
|
|
|
80
80
|
order?: number | undefined;
|
|
81
81
|
} | null>;
|
|
82
82
|
setupPreview(body: unknown): Promise<import("../dtos/setup-preview.dto").SetupPreviewResponse>;
|
|
83
|
-
createProjectFromTemplate(body: unknown): Promise<{
|
|
83
|
+
createProjectFromTemplate(body: unknown): Promise<import("../../../common/prompt-references").PromptReferenceValidationFailure | {
|
|
84
84
|
success: false;
|
|
85
85
|
providerMappingRequired: {
|
|
86
86
|
missingProviders: string[];
|
|
@@ -105,6 +105,7 @@ export declare class ProjectsController {
|
|
|
105
105
|
subscribers: number;
|
|
106
106
|
scheduledEpics: number;
|
|
107
107
|
};
|
|
108
|
+
promptTransfer: import("../../../common/prompt-transfer").PromptTransferCounts;
|
|
108
109
|
mappings: {
|
|
109
110
|
promptIdMap: Record<string, string>;
|
|
110
111
|
profileIdMap: Record<string, string>;
|
|
@@ -212,8 +213,6 @@ export declare class ProjectsController {
|
|
|
212
213
|
providerSettings?: {
|
|
213
214
|
name: string;
|
|
214
215
|
autoCompactThreshold: number | null;
|
|
215
|
-
autoCompactThreshold1m?: number | null;
|
|
216
|
-
oneMillionContextEnabled?: boolean;
|
|
217
216
|
env?: Record<string, string> | null;
|
|
218
217
|
}[] | undefined;
|
|
219
218
|
projectSettings?: import("../template-codec/codecs/project-settings.codec").ProjectSettingsExport | undefined;
|
|
@@ -374,8 +373,6 @@ export declare class ProjectsController {
|
|
|
374
373
|
providerSettings?: {
|
|
375
374
|
name: string;
|
|
376
375
|
autoCompactThreshold: number | null;
|
|
377
|
-
autoCompactThreshold1m?: number | null;
|
|
378
|
-
oneMillionContextEnabled?: boolean;
|
|
379
376
|
env?: Record<string, string> | null;
|
|
380
377
|
}[] | undefined;
|
|
381
378
|
projectSettings?: import("../template-codec/codecs/project-settings.codec").ProjectSettingsExport | undefined;
|
|
@@ -451,7 +448,7 @@ export declare class ProjectsController {
|
|
|
451
448
|
agentOverrides?: unknown;
|
|
452
449
|
selectedProviderNames?: unknown;
|
|
453
450
|
[key: string]: unknown;
|
|
454
|
-
}): Promise<{
|
|
451
|
+
}): Promise<import("../../../common/prompt-references").PromptReferenceValidationFailure | {
|
|
455
452
|
dryRun: true;
|
|
456
453
|
missingProviders: string[];
|
|
457
454
|
unmatchedStatuses: {
|
|
@@ -489,6 +486,7 @@ export declare class ProjectsController {
|
|
|
489
486
|
scheduledEpics: number;
|
|
490
487
|
};
|
|
491
488
|
};
|
|
489
|
+
promptTransfer: import("../../../common/prompt-transfer").PromptTransferCounts;
|
|
492
490
|
} | {
|
|
493
491
|
success: boolean;
|
|
494
492
|
mode: string;
|
|
@@ -520,6 +518,7 @@ export declare class ProjectsController {
|
|
|
520
518
|
agentCleared: number;
|
|
521
519
|
};
|
|
522
520
|
};
|
|
521
|
+
promptTransfer: import("../../../common/prompt-transfer").PromptTransferCounts;
|
|
523
522
|
mappings: {
|
|
524
523
|
promptIdMap: Record<string, string>;
|
|
525
524
|
profileIdMap: Record<string, string>;
|
|
@@ -48,12 +48,14 @@ type NamedEntity = {
|
|
|
48
48
|
id?: string;
|
|
49
49
|
name: string;
|
|
50
50
|
};
|
|
51
|
-
export declare function
|
|
52
|
-
|
|
51
|
+
export declare function collectReferencedProviderNames(profiles: Array<Pick<FamilyTemplateProfile, 'provider' | 'providerConfigs'>>): Set<string>;
|
|
52
|
+
export declare function resolveProvidersFromStorage(storage: Pick<StorageService, 'listProviders'>, referencedProviderNames: Set<string>, selectedProviderNames?: string[]): Promise<{
|
|
53
|
+
installed: Map<string, string>;
|
|
54
|
+
selected: Map<string, string>;
|
|
53
55
|
missing: string[];
|
|
54
56
|
}>;
|
|
55
57
|
export declare function computeFamilyAlternativesFromStorage(storage: Pick<StorageService, 'listProviders'>, templateProfiles: FamilyTemplateProfile[], templateAgents: FamilyTemplateAgent[], logger?: LoggerLike, selectedProviderNames?: string[]): Promise<FamilyAlternativesResult>;
|
|
56
|
-
export declare function computeFamilyAlternatives(templateProfiles: FamilyTemplateProfile[], templateAgents: FamilyTemplateAgent[], availableProviderNames: Set<string>, logger?: LoggerLike): FamilyAlternativesResult;
|
|
58
|
+
export declare function computeFamilyAlternatives(templateProfiles: FamilyTemplateProfile[], templateAgents: FamilyTemplateAgent[], availableProviderNames: Set<string>, logger?: LoggerLike, installedProviderNames?: Set<string>): FamilyAlternativesResult;
|
|
57
59
|
export interface PresetProviderCoverage {
|
|
58
60
|
presetName: string;
|
|
59
61
|
agentResolvedProviders: Map<string, string>;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.collectReferencedProviderNames = collectReferencedProviderNames;
|
|
3
4
|
exports.resolveProvidersFromStorage = resolveProvidersFromStorage;
|
|
4
5
|
exports.computeFamilyAlternativesFromStorage = computeFamilyAlternativesFromStorage;
|
|
5
6
|
exports.computeFamilyAlternatives = computeFamilyAlternatives;
|
|
@@ -21,28 +22,38 @@ function toProviderAllowlist(selectedProviderNames) {
|
|
|
21
22
|
return undefined;
|
|
22
23
|
return new Set(selectedProviderNames.map((name) => name.trim().toLowerCase()));
|
|
23
24
|
}
|
|
24
|
-
|
|
25
|
+
function collectReferencedProviderNames(profiles) {
|
|
26
|
+
const referenced = new Set();
|
|
27
|
+
for (const profile of profiles) {
|
|
28
|
+
referenced.add(profile.provider.name.trim().toLowerCase());
|
|
29
|
+
for (const config of profile.providerConfigs ?? []) {
|
|
30
|
+
referenced.add(config.providerName.trim().toLowerCase());
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return referenced;
|
|
34
|
+
}
|
|
35
|
+
async function resolveProvidersFromStorage(storage, referencedProviderNames, selectedProviderNames) {
|
|
25
36
|
const providers = await storage.listProviders();
|
|
26
37
|
const allow = toProviderAllowlist(selectedProviderNames);
|
|
27
|
-
const
|
|
38
|
+
const installed = new Map();
|
|
39
|
+
const selected = new Map();
|
|
28
40
|
for (const prov of providers.items) {
|
|
29
41
|
const key = prov.name.trim().toLowerCase();
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
42
|
+
installed.set(key, prov.id);
|
|
43
|
+
if (!allow || allow.has(key))
|
|
44
|
+
selected.set(key, prov.id);
|
|
33
45
|
}
|
|
34
|
-
const missing = Array.from(
|
|
35
|
-
return {
|
|
46
|
+
const missing = Array.from(referencedProviderNames).filter((name) => !installed.has(name));
|
|
47
|
+
return { installed, selected, missing };
|
|
36
48
|
}
|
|
37
49
|
async function computeFamilyAlternativesFromStorage(storage, templateProfiles, templateAgents, logger, selectedProviderNames) {
|
|
38
50
|
const localProviders = await storage.listProviders();
|
|
39
51
|
const allow = toProviderAllowlist(selectedProviderNames);
|
|
40
|
-
const
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
return computeFamilyAlternatives(templateProfiles, templateAgents, availableProviderNames, logger);
|
|
52
|
+
const installedProviderNames = new Set(localProviders.items.map((provider) => provider.name.trim().toLowerCase()));
|
|
53
|
+
const availableProviderNames = new Set(Array.from(installedProviderNames).filter((name) => !allow || allow.has(name)));
|
|
54
|
+
return computeFamilyAlternatives(templateProfiles, templateAgents, availableProviderNames, logger, installedProviderNames);
|
|
44
55
|
}
|
|
45
|
-
function computeFamilyAlternatives(templateProfiles, templateAgents, availableProviderNames, logger) {
|
|
56
|
+
function computeFamilyAlternatives(templateProfiles, templateAgents, availableProviderNames, logger, installedProviderNames) {
|
|
46
57
|
const profileById = new Map();
|
|
47
58
|
for (const prof of templateProfiles) {
|
|
48
59
|
if (prof.id) {
|
|
@@ -85,6 +96,7 @@ function computeFamilyAlternatives(templateProfiles, templateAgents, availablePr
|
|
|
85
96
|
}
|
|
86
97
|
const alternatives = [];
|
|
87
98
|
const missingProviders = new Set();
|
|
99
|
+
const installed = installedProviderNames ?? availableProviderNames;
|
|
88
100
|
let canImport = true;
|
|
89
101
|
for (const familySlug of usedFamilySlugs) {
|
|
90
102
|
const providersForFamily = familyProviders.get(familySlug);
|
|
@@ -97,7 +109,7 @@ function computeFamilyAlternatives(templateProfiles, templateAgents, availablePr
|
|
|
97
109
|
const defaultProviderAvailable = availableProviderNames.has(defaultProvider);
|
|
98
110
|
const availableForFamily = providerNamesForFamily.filter((name) => availableProviderNames.has(name));
|
|
99
111
|
for (const providerName of providerNamesForFamily) {
|
|
100
|
-
if (!
|
|
112
|
+
if (!installed.has(providerName)) {
|
|
101
113
|
missingProviders.add(providerName);
|
|
102
114
|
}
|
|
103
115
|
}
|