devchain-cli 0.17.2 → 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/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 +10 -0
- package/dist/server/modules/events/catalog/broadcast-registry.js.map +1 -1
- package/dist/server/modules/events/catalog/index.d.ts +7 -0
- 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/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/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/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 +57 -98
- 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 +21 -3
- 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/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/template-section-codec.d.ts +5 -2
- package/dist/server/modules/providers/adapters/capabilities/auto-compact.capability.d.ts +13 -0
- package/dist/server/modules/providers/adapters/capabilities/{context-window.capability.js → auto-compact.capability.js} +1 -1
- 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 +1 -1
- package/dist/server/modules/session-reader/adapters/opencode-session-reader.adapter.d.ts +1 -1
- package/dist/server/modules/session-reader/data/pricing.json +128 -6
- package/dist/server/modules/session-reader/parsers/copilot-jsonl.parser.js +1 -0
- package/dist/server/modules/session-reader/parsers/copilot-jsonl.parser.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 +1 -0
- package/dist/server/modules/session-reader/services/session-cache.service.js +8 -0
- 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 +15 -8
- package/dist/server/modules/session-reader/services/session-reader.service.js +98 -63
- package/dist/server/modules/session-reader/services/session-reader.service.js.map +1 -1
- package/dist/server/modules/session-reader/services/transcript-watcher.service.d.ts +1 -0
- package/dist/server/modules/session-reader/services/transcript-watcher.service.js +5 -0
- package/dist/server/modules/session-reader/services/transcript-watcher.service.js.map +1 -1
- package/dist/server/modules/session-reader/session-reader.module.js +10 -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 +27 -2
- package/dist/server/modules/sessions/services/session-runtime/__test-utils__/pipeline-harness.js +41 -4
- 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 +5 -1
- package/dist/server/modules/sessions/services/session-runtime/session-restore-pipeline.service.js +38 -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 +45 -0
- package/dist/server/modules/terminal/dtos/ws-envelope.dto.js +35 -1
- package/dist/server/modules/terminal/dtos/ws-envelope.dto.js.map +1 -1
- package/dist/server/modules/terminal/gateways/terminal.gateway.d.ts +14 -1
- package/dist/server/modules/terminal/gateways/terminal.gateway.js +144 -1
- package/dist/server/modules/terminal/gateways/terminal.gateway.js.map +1 -1
- package/dist/server/templates/3-agents-dev.json +29 -17
- package/dist/server/templates/teams-dev.json +39 -28
- package/dist/server/tsconfig.tsbuildinfo +1 -1
- package/dist/server/ui/assets/{ReviewDetailPage-C5BI5FSx.js → ReviewDetailPage-CkB_Fx1C.js} +1 -1
- package/dist/server/ui/assets/{ReviewsPage-C4V7MJQc.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-Bd1R13V5.js → useReviewSubscription-BZxAz2ZG.js} +1 -1
- package/dist/server/ui/index.html +2 -2
- package/dist/templates/3-agents-dev.json +29 -17
- package/dist/templates/teams-dev.json +39 -28
- package/package.json +10 -1
- 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-BSx7QxmM.css +0 -32
- package/dist/server/ui/assets/index-nwIXVn_B.js +0 -1142
|
@@ -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>;
|
|
@@ -142,8 +142,6 @@ export declare function exportProjectWithHelper(projectId: string, opts: ExportP
|
|
|
142
142
|
providerSettings?: {
|
|
143
143
|
name: string;
|
|
144
144
|
autoCompactThreshold: number | null;
|
|
145
|
-
autoCompactThreshold1m?: number | null;
|
|
146
|
-
oneMillionContextEnabled?: boolean;
|
|
147
145
|
env?: Record<string, string> | null;
|
|
148
146
|
}[] | undefined;
|
|
149
147
|
projectSettings?: import("../template-codec/codecs/project-settings.codec").ProjectSettingsExport | undefined;
|
|
@@ -26,8 +26,9 @@ async function exportProjectWithHelper(projectId, opts, deps) {
|
|
|
26
26
|
const profiles = (0, profiles_codec_1.buildExportProfiles)(state.profilesRes, profileContext, sanitizeEnvMap);
|
|
27
27
|
const agents = (0, agents_codec_1.buildExportAgents)(state.agentsRes, profileContext.configIdToInfo);
|
|
28
28
|
const statuses = (0, statuses_codec_1.buildExportStatuses)(state.statusesRes);
|
|
29
|
+
const transferableInitialPrompt = state.initialPrompt ?? undefined;
|
|
29
30
|
const projectSettings = (0, project_settings_codec_1.buildProjectSettings)({
|
|
30
|
-
initialPromptTitle:
|
|
31
|
+
initialPromptTitle: transferableInitialPrompt?.title,
|
|
31
32
|
autoCleanStatusIds: state.settings.autoClean?.statusIds?.[projectId] ?? [],
|
|
32
33
|
statuses: state.statusesRes.items,
|
|
33
34
|
epicAssignedTemplate: state.settings.events?.epicAssigned?.template,
|
|
@@ -56,8 +57,11 @@ async function exportProjectWithHelper(projectId, opts, deps) {
|
|
|
56
57
|
profiles,
|
|
57
58
|
agents,
|
|
58
59
|
statuses,
|
|
59
|
-
initialPrompt:
|
|
60
|
-
? {
|
|
60
|
+
initialPrompt: transferableInitialPrompt
|
|
61
|
+
? {
|
|
62
|
+
promptId: transferableInitialPrompt.id,
|
|
63
|
+
title: transferableInitialPrompt.title,
|
|
64
|
+
}
|
|
61
65
|
: null,
|
|
62
66
|
...(Object.keys(projectSettings).length > 0 && { projectSettings }),
|
|
63
67
|
...(providerSettings.length > 0 && { providerSettings }),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-export.js","sourceRoot":"","sources":["../../../../src/modules/projects/helpers/project-export.ts"],"names":[],"mappings":";;AAqEA,
|
|
1
|
+
{"version":3,"file":"project-export.js","sourceRoot":"","sources":["../../../../src/modules/projects/helpers/project-export.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { ExportSchema } from '@devchain/shared';
|
|
2
|
-
import type
|
|
2
|
+
import { type PromptTransferCounts, type PromptTransferPolicy } from '../../../common/prompt-transfer';
|
|
3
3
|
import type { SettingsService } from '../../settings/services/settings.service';
|
|
4
4
|
import type { StorageService } from '../../storage/interfaces/storage.interface';
|
|
5
|
+
import type { SnapshotPromptWriter } from '../../storage/interfaces/snapshot-prompt-writer.interface';
|
|
5
6
|
import type { UnifiedTemplateService } from '../../registry/services/unified-template.service';
|
|
6
7
|
import { type FamilyAlternative, type FamilyAlternativesResult, type ProjectSettingsTemplateInput } from './profile-mapping.helpers';
|
|
7
8
|
import type { PresetAgentConfig } from './project-presets.helpers';
|
|
@@ -17,6 +18,7 @@ export interface ImportProjectInputLike {
|
|
|
17
18
|
projectId: string;
|
|
18
19
|
payload: unknown;
|
|
19
20
|
dryRun?: boolean;
|
|
21
|
+
promptTransferPolicy?: PromptTransferPolicy;
|
|
20
22
|
statusMappings?: Record<string, string>;
|
|
21
23
|
familyProviderMappings?: Record<string, string>;
|
|
22
24
|
agentOverrides?: PresetAgentConfig[];
|
|
@@ -35,6 +37,7 @@ export interface ImportProjectInputLike {
|
|
|
35
37
|
}
|
|
36
38
|
interface ImportProjectDeps {
|
|
37
39
|
storage: StorageService;
|
|
40
|
+
snapshotPromptWriter?: SnapshotPromptWriter;
|
|
38
41
|
settings: SettingsService;
|
|
39
42
|
templatePipeline?: TemplatePipeline;
|
|
40
43
|
watchersService: {
|
|
@@ -76,7 +79,6 @@ interface ImportProjectDeps {
|
|
|
76
79
|
applied: number;
|
|
77
80
|
warnings: string[];
|
|
78
81
|
}>;
|
|
79
|
-
probe1m?: (binPath: string) => Promise<ProbeOutcome>;
|
|
80
82
|
teamsService?: {
|
|
81
83
|
createTeam: (data: {
|
|
82
84
|
projectId: string;
|
|
@@ -102,7 +104,7 @@ interface ImportProjectDeps {
|
|
|
102
104
|
};
|
|
103
105
|
computeNextRunAt?: (cronExpression: string, timezone: string) => Date | null;
|
|
104
106
|
}
|
|
105
|
-
export declare function importProjectWithHelper(input: ImportProjectInputLike, deps: ImportProjectDeps): Promise<{
|
|
107
|
+
export declare function importProjectWithHelper(input: ImportProjectInputLike, deps: ImportProjectDeps): Promise<import("../../../common/prompt-references").PromptReferenceValidationFailure | {
|
|
106
108
|
dryRun: true;
|
|
107
109
|
missingProviders: string[];
|
|
108
110
|
unmatchedStatuses: UnmatchedStatus[];
|
|
@@ -135,6 +137,7 @@ export declare function importProjectWithHelper(input: ImportProjectInputLike, d
|
|
|
135
137
|
scheduledEpics: number;
|
|
136
138
|
};
|
|
137
139
|
};
|
|
140
|
+
promptTransfer: PromptTransferCounts;
|
|
138
141
|
} | {
|
|
139
142
|
success: boolean;
|
|
140
143
|
mode: string;
|
|
@@ -166,6 +169,7 @@ export declare function importProjectWithHelper(input: ImportProjectInputLike, d
|
|
|
166
169
|
agentCleared: number;
|
|
167
170
|
};
|
|
168
171
|
};
|
|
172
|
+
promptTransfer: PromptTransferCounts;
|
|
169
173
|
mappings: {
|
|
170
174
|
promptIdMap: Record<string, string>;
|
|
171
175
|
profileIdMap: Record<string, string>;
|
|
@@ -188,9 +192,6 @@ export declare function importProjectWithHelper(input: ImportProjectInputLike, d
|
|
|
188
192
|
canImport: boolean;
|
|
189
193
|
};
|
|
190
194
|
}>;
|
|
191
|
-
export declare function importProviderSettings(payload: ParsedTemplatePayload, storage: StorageService, options?: {
|
|
192
|
-
probe1m?: (binPath: string) => Promise<ProbeOutcome>;
|
|
193
|
-
}): Promise<void>;
|
|
194
195
|
export declare function createImportedTeams(projectId: string, exportedTeams: Array<{
|
|
195
196
|
name: string;
|
|
196
197
|
description?: string | null;
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.importProjectWithHelper = importProjectWithHelper;
|
|
4
|
-
exports.importProviderSettings = importProviderSettings;
|
|
5
4
|
exports.createImportedTeams = createImportedTeams;
|
|
6
5
|
exports.pruneUnavailableTeamProfileSelections = pruneUnavailableTeamProfileSelections;
|
|
7
6
|
exports.createImportedScheduledEpics = createImportedScheduledEpics;
|
|
8
7
|
const shared_1 = require("@devchain/shared");
|
|
9
8
|
const error_types_1 = require("../../../common/errors/error-types");
|
|
10
9
|
const logger_1 = require("../../../common/logging/logger");
|
|
10
|
+
const prompt_references_1 = require("../../../common/prompt-references");
|
|
11
|
+
const prompt_transfer_1 = require("../../../common/prompt-transfer");
|
|
11
12
|
const profile_mapping_helpers_1 = require("./profile-mapping.helpers");
|
|
12
13
|
const project_import_sessions_1 = require("./project-import-sessions");
|
|
13
14
|
const import_context_1 = require("../template-codec/import-context");
|
|
@@ -15,8 +16,16 @@ const template_pipeline_1 = require("../template-codec/template-pipeline");
|
|
|
15
16
|
const DEFAULT_TEMPLATE_PIPELINE = new template_pipeline_1.TemplatePipeline();
|
|
16
17
|
const logger = (0, logger_1.createLogger)('ProjectImport');
|
|
17
18
|
async function importProjectWithHelper(input, deps) {
|
|
18
|
-
logger.info({
|
|
19
|
+
logger.info({
|
|
20
|
+
projectId: input.projectId,
|
|
21
|
+
dryRun: input.dryRun,
|
|
22
|
+
promptTransferPolicy: input.promptTransferPolicy ?? prompt_transfer_1.PROMPT_TRANSFER_POLICY.Template,
|
|
23
|
+
}, 'importProject');
|
|
19
24
|
const context = await prepareImportContext(input, deps);
|
|
25
|
+
const promptReferenceFailure = (0, prompt_references_1.buildPromptReferenceValidationFailure)(context.promptReferenceIssues);
|
|
26
|
+
if (promptReferenceFailure) {
|
|
27
|
+
return promptReferenceFailure;
|
|
28
|
+
}
|
|
20
29
|
if (context.isDryRun) {
|
|
21
30
|
return buildDryRunResponse(context);
|
|
22
31
|
}
|
|
@@ -34,7 +43,7 @@ async function importProjectWithHelper(input, deps) {
|
|
|
34
43
|
const oldAgentIdToName = buildOldAgentIdToNameMap(context.existing.agents.items);
|
|
35
44
|
const oldAgentIds = context.existing.agents.items.map((a) => a.id);
|
|
36
45
|
const parkedByOldAgentId = await deps.storage.parkSessionsFromAgents(oldAgentIds);
|
|
37
|
-
await clearExistingProjectData(input.projectId, context.existing, deps);
|
|
46
|
+
const clearedPrompts = await clearExistingProjectData(input.projectId, context.existing, context.promptReplacementPlan, deps);
|
|
38
47
|
const pipeline = deps.templatePipeline ?? DEFAULT_TEMPLATE_PIPELINE;
|
|
39
48
|
const pipelineCtx = new import_context_1.ImportContext({ selectedProfilesByFamily: context.selectedProfilesByFamily }, ['existingDataCleared', 'epicsLoaded']);
|
|
40
49
|
const watcherServiceForCodec = {
|
|
@@ -46,6 +55,10 @@ async function importProjectWithHelper(input, deps) {
|
|
|
46
55
|
const codecRuntime = {
|
|
47
56
|
projectId: input.projectId,
|
|
48
57
|
storage: deps.storage,
|
|
58
|
+
...(context.promptTransferPolicy === prompt_transfer_1.PROMPT_TRANSFER_POLICY.Snapshot &&
|
|
59
|
+
deps.snapshotPromptWriter
|
|
60
|
+
? { snapshotPromptWriter: deps.snapshotPromptWriter }
|
|
61
|
+
: {}),
|
|
49
62
|
settings: deps.settings,
|
|
50
63
|
watchersService: watcherServiceForCodec,
|
|
51
64
|
statusMappings: input.statusMappings,
|
|
@@ -54,13 +67,14 @@ async function importProjectWithHelper(input, deps) {
|
|
|
54
67
|
selectedProviders: context.selectedProviders,
|
|
55
68
|
teamsService: deps.teamsService,
|
|
56
69
|
teamOverrides: input.teamOverrides,
|
|
57
|
-
probe1m: deps.probe1m,
|
|
58
70
|
scheduledEpicsRefresh: deps.scheduledEpicsRefresh,
|
|
59
71
|
computeNextRunAt: deps.computeNextRunAt,
|
|
72
|
+
promptTransferPolicy: context.promptTransferPolicy,
|
|
60
73
|
};
|
|
61
|
-
await pipeline.applySections(['statuses', 'prompts'], context.payload, pipelineCtx, 'replace', codecRuntime);
|
|
74
|
+
const promptSectionResults = await pipeline.applySections(['statuses', 'prompts'], context.payload, pipelineCtx, 'replace', codecRuntime);
|
|
62
75
|
const statusIdMap = pipelineCtx.get('statusIdMap');
|
|
63
76
|
const promptIdMap = pipelineCtx.get('promptIdMap');
|
|
77
|
+
const appliedPrompts = getPromptApplyCounts(promptSectionResults);
|
|
64
78
|
await pipeline.applySections(['profiles', 'agents'], context.payload, pipelineCtx, 'replace', codecRuntime);
|
|
65
79
|
const profileIdMap = pipelineCtx.get('profileIdMap');
|
|
66
80
|
const agentIdMap = pipelineCtx.get('agentIdMap');
|
|
@@ -103,6 +117,10 @@ async function importProjectWithHelper(input, deps) {
|
|
|
103
117
|
teamsImported,
|
|
104
118
|
scheduledEpicsImported,
|
|
105
119
|
sessionPreservation,
|
|
120
|
+
promptTransfer: {
|
|
121
|
+
...appliedPrompts,
|
|
122
|
+
...clearedPrompts,
|
|
123
|
+
},
|
|
106
124
|
});
|
|
107
125
|
}
|
|
108
126
|
catch (error) {
|
|
@@ -113,6 +131,7 @@ async function importProjectWithHelper(input, deps) {
|
|
|
113
131
|
}
|
|
114
132
|
async function prepareImportContext(input, deps) {
|
|
115
133
|
const isDryRun = input.dryRun ?? false;
|
|
134
|
+
const promptTransferPolicy = input.promptTransferPolicy ?? prompt_transfer_1.PROMPT_TRANSFER_POLICY.Template;
|
|
116
135
|
const payload = shared_1.ExportSchema.parse(input.payload ?? {});
|
|
117
136
|
const familyResult = await deps.computeFamilyAlternatives(payload.profiles, payload.agents, input.selectedProviderNames);
|
|
118
137
|
const needsMapping = familyResult.alternatives.some((alt) => !alt.defaultProviderAvailable);
|
|
@@ -120,9 +139,23 @@ async function prepareImportContext(input, deps) {
|
|
|
120
139
|
const { installed, selected, missing: missingProviders, } = await (0, profile_mapping_helpers_1.resolveProvidersFromStorage)(deps.storage, referencedProviderNames, input.selectedProviderNames);
|
|
121
140
|
const selectedProfilesByFamily = (0, profile_mapping_helpers_1.selectProfilesForFamilies)(payload.profiles, payload.agents, input.familyProviderMappings, installed);
|
|
122
141
|
const existing = await loadExistingProjectData(input.projectId, deps.storage);
|
|
142
|
+
const incomingPromptPartition = (0, prompt_transfer_1.partitionPromptsForTransfer)(payload.prompts, promptTransferPolicy);
|
|
143
|
+
const promptReferenceIssues = promptTransferPolicy === prompt_transfer_1.PROMPT_TRANSFER_POLICY.Template
|
|
144
|
+
? (0, prompt_references_1.findSkippedTemplatePromptReferences)(selectedProfilesByFamily.profilesToCreate, payload.prompts)
|
|
145
|
+
: [];
|
|
146
|
+
const promptReplacementPlan = (0, prompt_transfer_1.planPromptReplacement)(payload.prompts, existing.prompts.items, promptTransferPolicy);
|
|
123
147
|
const unmatchedStatuses = await collectUnmatchedStatuses(payload.statuses, existing.statuses.items, deps.storage);
|
|
124
148
|
return {
|
|
125
149
|
isDryRun,
|
|
150
|
+
promptTransferPolicy,
|
|
151
|
+
promptReferenceIssues,
|
|
152
|
+
promptReplacementPlan,
|
|
153
|
+
promptTransfer: {
|
|
154
|
+
imported: incomingPromptPartition.transfer.length,
|
|
155
|
+
deleted: promptReplacementPlan.deleteIds.length,
|
|
156
|
+
preserved: promptReplacementPlan.preserveIds.length,
|
|
157
|
+
skipped: incomingPromptPartition.retain.length,
|
|
158
|
+
},
|
|
126
159
|
payload,
|
|
127
160
|
familyResult,
|
|
128
161
|
needsMapping,
|
|
@@ -177,7 +210,7 @@ function buildDryRunResponse(context) {
|
|
|
177
210
|
})),
|
|
178
211
|
counts: {
|
|
179
212
|
toImport: {
|
|
180
|
-
prompts: context.
|
|
213
|
+
prompts: context.promptTransfer.imported,
|
|
181
214
|
profiles: context.selectedProfilesByFamily.profilesToCreate.length,
|
|
182
215
|
agents: context.payload.agents.length,
|
|
183
216
|
statuses: context.payload.statuses.length,
|
|
@@ -186,7 +219,7 @@ function buildDryRunResponse(context) {
|
|
|
186
219
|
scheduledEpics: context.payload.scheduledEpics?.length ?? 0,
|
|
187
220
|
},
|
|
188
221
|
toDelete: {
|
|
189
|
-
prompts: context.
|
|
222
|
+
prompts: context.promptTransfer.deleted,
|
|
190
223
|
profiles: context.existing.profiles.total,
|
|
191
224
|
agents: context.existing.agents.total,
|
|
192
225
|
statuses: context.existing.statuses.total,
|
|
@@ -195,6 +228,7 @@ function buildDryRunResponse(context) {
|
|
|
195
228
|
scheduledEpics: context.existing.scheduledEpics?.total ?? 0,
|
|
196
229
|
},
|
|
197
230
|
},
|
|
231
|
+
promptTransfer: context.promptTransfer,
|
|
198
232
|
};
|
|
199
233
|
if (context.needsMapping) {
|
|
200
234
|
response.providerMappingRequired = buildProviderMappingRequired(context.familyResult);
|
|
@@ -246,7 +280,7 @@ function buildOldAgentIdToNameMap(existingAgents) {
|
|
|
246
280
|
}
|
|
247
281
|
return oldAgentIdToName;
|
|
248
282
|
}
|
|
249
|
-
async function clearExistingProjectData(projectId, existing, deps) {
|
|
283
|
+
async function clearExistingProjectData(projectId, existing, promptReplacementPlan, deps) {
|
|
250
284
|
if (deps.cleanupTeamsForProject) {
|
|
251
285
|
await deps.cleanupTeamsForProject(projectId);
|
|
252
286
|
}
|
|
@@ -256,8 +290,8 @@ async function clearExistingProjectData(projectId, existing, deps) {
|
|
|
256
290
|
for (const profile of existing.profiles.items) {
|
|
257
291
|
await deps.storage.deleteAgentProfile(profile.id);
|
|
258
292
|
}
|
|
259
|
-
for (const
|
|
260
|
-
await deps.storage.deletePrompt(
|
|
293
|
+
for (const promptId of promptReplacementPlan.deleteIds) {
|
|
294
|
+
await deps.storage.deletePrompt(promptId);
|
|
261
295
|
}
|
|
262
296
|
for (const watcher of existing.watchers) {
|
|
263
297
|
await deps.watchersService.deleteWatcher(watcher.id);
|
|
@@ -272,6 +306,10 @@ async function clearExistingProjectData(projectId, existing, deps) {
|
|
|
272
306
|
projectId,
|
|
273
307
|
initialSessionPromptId: null,
|
|
274
308
|
});
|
|
309
|
+
return {
|
|
310
|
+
deleted: promptReplacementPlan.deleteIds.length,
|
|
311
|
+
preserved: promptReplacementPlan.preserveIds.length,
|
|
312
|
+
};
|
|
275
313
|
}
|
|
276
314
|
async function remapEpicAgentAssignments(projectId, oldAgentIdToName, agentNameToNewId, storage) {
|
|
277
315
|
const existingEpics = await storage.listEpics(projectId, {
|
|
@@ -328,92 +366,6 @@ async function updateTemplateMetadata(projectId, payload, deps) {
|
|
|
328
366
|
});
|
|
329
367
|
logger.info({ projectId, slug: payload._manifest.slug, source: templateSource }, 'Updated template metadata after import');
|
|
330
368
|
}
|
|
331
|
-
async function importProviderSettings(payload, storage, options) {
|
|
332
|
-
const importedProviderSettings = payload.providerSettings;
|
|
333
|
-
if (!importedProviderSettings || importedProviderSettings.length === 0) {
|
|
334
|
-
return;
|
|
335
|
-
}
|
|
336
|
-
const allProviders = await storage.listProviders();
|
|
337
|
-
const providersByName = new Map(allProviders.items.map((provider) => [provider.name.trim().toLowerCase(), provider]));
|
|
338
|
-
for (const setting of importedProviderSettings) {
|
|
339
|
-
const localProvider = providersByName.get(setting.name.trim().toLowerCase());
|
|
340
|
-
if (!localProvider) {
|
|
341
|
-
continue;
|
|
342
|
-
}
|
|
343
|
-
const updates = {};
|
|
344
|
-
if (localProvider.autoCompactThreshold == null && setting.autoCompactThreshold != null) {
|
|
345
|
-
updates.autoCompactThreshold = setting.autoCompactThreshold;
|
|
346
|
-
logger.info({ providerName: setting.name, threshold: setting.autoCompactThreshold }, 'Applied autoCompactThreshold from template import');
|
|
347
|
-
}
|
|
348
|
-
else if (localProvider.autoCompactThreshold != null) {
|
|
349
|
-
logger.debug({ providerName: setting.name, existing: localProvider.autoCompactThreshold }, 'Skipping providerSettings import: local threshold already set');
|
|
350
|
-
}
|
|
351
|
-
if (setting.autoCompactThreshold1m != null) {
|
|
352
|
-
updates.autoCompactThreshold1m = setting.autoCompactThreshold1m;
|
|
353
|
-
}
|
|
354
|
-
if (setting.oneMillionContextEnabled) {
|
|
355
|
-
const isLegacyTemplate = setting.autoCompactThreshold1m == null;
|
|
356
|
-
if (localProvider.binPath && options?.probe1m) {
|
|
357
|
-
const outcome = await options.probe1m(localProvider.binPath);
|
|
358
|
-
if (outcome.supported) {
|
|
359
|
-
updates.oneMillionContextEnabled = true;
|
|
360
|
-
updates.autoCompactThreshold1m = isLegacyTemplate
|
|
361
|
-
? (setting.autoCompactThreshold ?? 50)
|
|
362
|
-
: (setting.autoCompactThreshold1m ?? 50);
|
|
363
|
-
if (localProvider.autoCompactThreshold == null) {
|
|
364
|
-
updates.autoCompactThreshold = isLegacyTemplate
|
|
365
|
-
? 95
|
|
366
|
-
: (setting.autoCompactThreshold ?? 95);
|
|
367
|
-
}
|
|
368
|
-
logger.info({ providerName: setting.name }, 'Template had 1M context enabled — auto-probe confirmed support');
|
|
369
|
-
}
|
|
370
|
-
else {
|
|
371
|
-
updates.oneMillionContextEnabled = false;
|
|
372
|
-
if (localProvider.autoCompactThreshold == null) {
|
|
373
|
-
updates.autoCompactThreshold = 95;
|
|
374
|
-
}
|
|
375
|
-
updates.autoCompactThreshold1m = null;
|
|
376
|
-
logger.info({ providerName: setting.name, status: outcome.status }, 'Template had 1M context enabled — auto-probe did not confirm support');
|
|
377
|
-
}
|
|
378
|
-
}
|
|
379
|
-
else {
|
|
380
|
-
updates.oneMillionContextEnabled = false;
|
|
381
|
-
if (localProvider.autoCompactThreshold == null) {
|
|
382
|
-
updates.autoCompactThreshold = 95;
|
|
383
|
-
}
|
|
384
|
-
updates.autoCompactThreshold1m = null;
|
|
385
|
-
logger.info({ providerName: setting.name }, 'Template had 1M context enabled — disabled during import (no binPath or probe unavailable)');
|
|
386
|
-
}
|
|
387
|
-
}
|
|
388
|
-
const importedEnv = (0, profile_mapping_helpers_1.preserveImportedEnv)(setting.env);
|
|
389
|
-
if (importedEnv) {
|
|
390
|
-
if (localProvider.env == null) {
|
|
391
|
-
updates.env = importedEnv;
|
|
392
|
-
logger.info({ providerName: setting.name, keyCount: Object.keys(importedEnv).length }, 'Applied provider env from template import (no local env existed)');
|
|
393
|
-
}
|
|
394
|
-
else {
|
|
395
|
-
const merged = { ...localProvider.env };
|
|
396
|
-
let addedCount = 0;
|
|
397
|
-
for (const [key, value] of Object.entries(importedEnv)) {
|
|
398
|
-
if (!(key in merged)) {
|
|
399
|
-
merged[key] = value;
|
|
400
|
-
addedCount++;
|
|
401
|
-
}
|
|
402
|
-
}
|
|
403
|
-
if (addedCount > 0) {
|
|
404
|
-
updates.env = merged;
|
|
405
|
-
logger.info({ providerName: setting.name, addedCount }, 'Merged provider env from template import (local wins on conflicts)');
|
|
406
|
-
}
|
|
407
|
-
else {
|
|
408
|
-
logger.debug({ providerName: setting.name }, 'Skipping provider env import: all template keys already exist locally');
|
|
409
|
-
}
|
|
410
|
-
}
|
|
411
|
-
}
|
|
412
|
-
if (Object.keys(updates).length > 0) {
|
|
413
|
-
await storage.updateProvider(localProvider.id, updates);
|
|
414
|
-
}
|
|
415
|
-
}
|
|
416
|
-
}
|
|
417
369
|
async function createImportedTeams(projectId, exportedTeams, deps) {
|
|
418
370
|
if (!deps.teamsService)
|
|
419
371
|
return 0;
|
|
@@ -643,7 +595,7 @@ function buildImportSuccessResponse(args) {
|
|
|
643
595
|
missingProviders: [],
|
|
644
596
|
counts: {
|
|
645
597
|
imported: {
|
|
646
|
-
prompts: args.
|
|
598
|
+
prompts: args.promptTransfer.imported,
|
|
647
599
|
profiles: args.payload.profiles.length,
|
|
648
600
|
agents: args.payload.agents.length,
|
|
649
601
|
statuses: args.payload.statuses.length,
|
|
@@ -653,7 +605,7 @@ function buildImportSuccessResponse(args) {
|
|
|
653
605
|
scheduledEpics: args.scheduledEpicsImported ?? 0,
|
|
654
606
|
},
|
|
655
607
|
deleted: {
|
|
656
|
-
prompts: args.
|
|
608
|
+
prompts: args.promptTransfer.deleted,
|
|
657
609
|
profiles: args.existing.profiles.total,
|
|
658
610
|
agents: args.existing.agents.total,
|
|
659
611
|
statuses: 0,
|
|
@@ -667,6 +619,7 @@ function buildImportSuccessResponse(args) {
|
|
|
667
619
|
agentCleared: args.epicsCleared,
|
|
668
620
|
},
|
|
669
621
|
},
|
|
622
|
+
promptTransfer: args.promptTransfer,
|
|
670
623
|
mappings: {
|
|
671
624
|
promptIdMap: args.promptIdMap,
|
|
672
625
|
profileIdMap: args.profileIdMap,
|
|
@@ -680,4 +633,10 @@ function buildImportSuccessResponse(args) {
|
|
|
680
633
|
message: 'Project configuration replaced. Epics preserved.',
|
|
681
634
|
};
|
|
682
635
|
}
|
|
636
|
+
function getPromptApplyCounts(results) {
|
|
637
|
+
return (results.find((result) => result.section === 'prompts')?.promptTransfer ?? {
|
|
638
|
+
imported: 0,
|
|
639
|
+
skipped: 0,
|
|
640
|
+
});
|
|
641
|
+
}
|
|
683
642
|
//# sourceMappingURL=project-import.js.map
|