@kilnai/cli 1.0.4 → 2.0.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 +31 -8
- package/dist/application/__tests__/session-report.test.d.ts +2 -0
- package/dist/application/__tests__/session-report.test.d.ts.map +1 -0
- package/dist/application/__tests__/session-report.test.js +100 -0
- package/dist/application/__tests__/session-report.test.js.map +1 -0
- package/dist/application/agent-loader.d.ts +30 -2
- package/dist/application/agent-loader.d.ts.map +1 -1
- package/dist/application/agent-loader.js +99 -3
- package/dist/application/agent-loader.js.map +1 -1
- package/dist/application/agent-loader.test.js +112 -18
- package/dist/application/agent-loader.test.js.map +1 -1
- package/dist/application/agent-skill-context.d.ts +12 -0
- package/dist/application/agent-skill-context.d.ts.map +1 -0
- package/dist/application/agent-skill-context.js +32 -0
- package/dist/application/agent-skill-context.js.map +1 -0
- package/dist/application/agent-skill-context.test.d.ts +2 -0
- package/dist/application/agent-skill-context.test.d.ts.map +1 -0
- package/dist/application/agent-skill-context.test.js +156 -0
- package/dist/application/agent-skill-context.test.js.map +1 -0
- package/dist/application/benchmark-session-executor.d.ts +14 -0
- package/dist/application/benchmark-session-executor.d.ts.map +1 -0
- package/dist/application/benchmark-session-executor.js +210 -0
- package/dist/application/benchmark-session-executor.js.map +1 -0
- package/dist/application/config-apply-tool.d.ts +30 -0
- package/dist/application/config-apply-tool.d.ts.map +1 -0
- package/dist/application/config-apply-tool.js +68 -0
- package/dist/application/config-apply-tool.js.map +1 -0
- package/dist/application/config-apply.d.ts +9 -0
- package/dist/application/config-apply.d.ts.map +1 -0
- package/dist/application/config-apply.js +146 -0
- package/dist/application/config-apply.js.map +1 -0
- package/dist/application/config-approval.d.ts +10 -0
- package/dist/application/config-approval.d.ts.map +1 -0
- package/dist/application/config-approval.js +30 -0
- package/dist/application/config-approval.js.map +1 -0
- package/dist/application/config-mutation-store.d.ts +25 -0
- package/dist/application/config-mutation-store.d.ts.map +1 -0
- package/dist/application/config-mutation-store.js +59 -0
- package/dist/application/config-mutation-store.js.map +1 -0
- package/dist/application/config-proposal.d.ts +22 -0
- package/dist/application/config-proposal.d.ts.map +1 -0
- package/dist/application/config-proposal.js +395 -0
- package/dist/application/config-proposal.js.map +1 -0
- package/dist/application/config-propose-tool.d.ts +30 -0
- package/dist/application/config-propose-tool.d.ts.map +1 -0
- package/dist/application/config-propose-tool.js +63 -0
- package/dist/application/config-propose-tool.js.map +1 -0
- package/dist/application/config-read-tool.d.ts +26 -0
- package/dist/application/config-read-tool.d.ts.map +1 -0
- package/dist/application/config-read-tool.js +51 -0
- package/dist/application/config-read-tool.js.map +1 -0
- package/dist/application/config-status.d.ts +9 -0
- package/dist/application/config-status.d.ts.map +1 -0
- package/dist/application/config-status.js +361 -0
- package/dist/application/config-status.js.map +1 -0
- package/dist/application/config-tools.d.ts +3 -0
- package/dist/application/config-tools.d.ts.map +1 -0
- package/dist/application/config-tools.js +11 -0
- package/dist/application/config-tools.js.map +1 -0
- package/dist/application/context-types.d.ts +4 -17
- package/dist/application/context-types.d.ts.map +1 -1
- package/dist/application/context-types.js.map +1 -1
- package/dist/application/first-party-agent-defaults.d.ts +3 -0
- package/dist/application/first-party-agent-defaults.d.ts.map +1 -0
- package/dist/application/first-party-agent-defaults.js +135 -0
- package/dist/application/first-party-agent-defaults.js.map +1 -0
- package/dist/application/instruction-profile-context.d.ts +15 -0
- package/dist/application/instruction-profile-context.d.ts.map +1 -0
- package/dist/application/instruction-profile-context.js +80 -0
- package/dist/application/instruction-profile-context.js.map +1 -0
- package/dist/application/instruction-profile-loader.d.ts +20 -0
- package/dist/application/instruction-profile-loader.d.ts.map +1 -0
- package/dist/application/instruction-profile-loader.js +132 -0
- package/dist/application/instruction-profile-loader.js.map +1 -0
- package/dist/application/instruction-profile-loader.test.d.ts +2 -0
- package/dist/application/instruction-profile-loader.test.d.ts.map +1 -0
- package/dist/application/instruction-profile-loader.test.js +100 -0
- package/dist/application/instruction-profile-loader.test.js.map +1 -0
- package/dist/application/operator-theme-preferences.d.ts +11 -0
- package/dist/application/operator-theme-preferences.d.ts.map +1 -0
- package/dist/application/operator-theme-preferences.js +49 -0
- package/dist/application/operator-theme-preferences.js.map +1 -0
- package/dist/application/project-context.d.ts +22 -0
- package/dist/application/project-context.d.ts.map +1 -0
- package/dist/application/project-context.js +139 -0
- package/dist/application/project-context.js.map +1 -0
- package/dist/application/project-root-resolver.d.ts +14 -0
- package/dist/application/project-root-resolver.d.ts.map +1 -0
- package/dist/application/project-root-resolver.js +71 -0
- package/dist/application/project-root-resolver.js.map +1 -0
- package/dist/application/repo-shim-projection.d.ts +48 -0
- package/dist/application/repo-shim-projection.d.ts.map +1 -0
- package/dist/application/repo-shim-projection.js +536 -0
- package/dist/application/repo-shim-projection.js.map +1 -0
- package/dist/application/resume-sidebar-info.d.ts +9 -0
- package/dist/application/resume-sidebar-info.d.ts.map +1 -0
- package/dist/application/resume-sidebar-info.js +40 -0
- package/dist/application/resume-sidebar-info.js.map +1 -0
- package/dist/application/resume-strategy-feedback.d.ts.map +1 -1
- package/dist/application/resume-strategy-feedback.js +2 -1
- package/dist/application/resume-strategy-feedback.js.map +1 -1
- package/dist/application/run-session.d.ts +15 -0
- package/dist/application/run-session.d.ts.map +1 -1
- package/dist/application/run-session.js +110 -19
- package/dist/application/run-session.js.map +1 -1
- package/dist/application/runtime-session-rehydration.d.ts +9 -0
- package/dist/application/runtime-session-rehydration.d.ts.map +1 -0
- package/dist/application/runtime-session-rehydration.js +115 -0
- package/dist/application/runtime-session-rehydration.js.map +1 -0
- package/dist/application/session-context-artifacts.d.ts +19 -0
- package/dist/application/session-context-artifacts.d.ts.map +1 -0
- package/dist/application/session-context-artifacts.js +60 -0
- package/dist/application/session-context-artifacts.js.map +1 -0
- package/dist/application/session-metadata.d.ts +35 -0
- package/dist/application/session-metadata.d.ts.map +1 -0
- package/dist/application/session-metadata.js +157 -0
- package/dist/application/session-metadata.js.map +1 -0
- package/dist/application/session-report.d.ts.map +1 -1
- package/dist/application/session-report.js +8 -0
- package/dist/application/session-report.js.map +1 -1
- package/dist/application/session-resume.d.ts +1 -1
- package/dist/application/session-resume.d.ts.map +1 -1
- package/dist/application/session-resume.js +4 -4
- package/dist/application/session-resume.js.map +1 -1
- package/dist/application/work-governance-context.d.ts +7 -0
- package/dist/application/work-governance-context.d.ts.map +1 -0
- package/dist/application/work-governance-context.js +64 -0
- package/dist/application/work-governance-context.js.map +1 -0
- package/dist/application/work-governance-context.test.d.ts +2 -0
- package/dist/application/work-governance-context.test.d.ts.map +1 -0
- package/dist/application/work-governance-context.test.js +55 -0
- package/dist/application/work-governance-context.test.js.map +1 -0
- package/dist/application/work-governance-policy.d.ts +15 -0
- package/dist/application/work-governance-policy.d.ts.map +1 -0
- package/dist/application/work-governance-policy.js +53 -0
- package/dist/application/work-governance-policy.js.map +1 -0
- package/dist/application/work-governance-tool.d.ts +421 -0
- package/dist/application/work-governance-tool.d.ts.map +1 -0
- package/dist/application/work-governance-tool.js +937 -0
- package/dist/application/work-governance-tool.js.map +1 -0
- package/dist/application/work-governance-tool.test.d.ts +2 -0
- package/dist/application/work-governance-tool.test.d.ts.map +1 -0
- package/dist/application/work-governance-tool.test.js +935 -0
- package/dist/application/work-governance-tool.test.js.map +1 -0
- package/dist/application/work-governance-workflows.d.ts +23 -0
- package/dist/application/work-governance-workflows.d.ts.map +1 -0
- package/dist/application/work-governance-workflows.js +177 -0
- package/dist/application/work-governance-workflows.js.map +1 -0
- package/dist/application/workflow-snapshot-export.d.ts +81 -0
- package/dist/application/workflow-snapshot-export.d.ts.map +1 -0
- package/dist/application/workflow-snapshot-export.js +141 -0
- package/dist/application/workflow-snapshot-export.js.map +1 -0
- package/dist/commands/auth.d.ts.map +1 -1
- package/dist/commands/auth.js +242 -24
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/benchmark.d.ts +8 -0
- package/dist/commands/benchmark.d.ts.map +1 -0
- package/dist/commands/benchmark.js +287 -0
- package/dist/commands/benchmark.js.map +1 -0
- package/dist/commands/config.d.ts +1 -1
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +369 -39
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/config.test.d.ts +2 -0
- package/dist/commands/config.test.d.ts.map +1 -0
- package/dist/commands/config.test.js +86 -0
- package/dist/commands/config.test.js.map +1 -0
- package/dist/commands/goal.d.ts +12 -0
- package/dist/commands/goal.d.ts.map +1 -0
- package/dist/commands/goal.js +469 -0
- package/dist/commands/goal.js.map +1 -0
- package/dist/commands/goal.test.d.ts +2 -0
- package/dist/commands/goal.test.d.ts.map +1 -0
- package/dist/commands/goal.test.js +317 -0
- package/dist/commands/goal.test.js.map +1 -0
- package/dist/commands/gui-options.d.ts +5 -0
- package/dist/commands/gui-options.d.ts.map +1 -0
- package/dist/commands/gui-options.js +18 -0
- package/dist/commands/gui-options.js.map +1 -0
- package/dist/commands/gui-session-detail.d.ts +4 -0
- package/dist/commands/gui-session-detail.d.ts.map +1 -0
- package/dist/commands/gui-session-detail.js +32 -0
- package/dist/commands/gui-session-detail.js.map +1 -0
- package/dist/commands/gui-session-summaries.d.ts +5 -0
- package/dist/commands/gui-session-summaries.d.ts.map +1 -0
- package/dist/commands/gui-session-summaries.js +62 -0
- package/dist/commands/gui-session-summaries.js.map +1 -0
- package/dist/commands/gui-shutdown-monitor.d.ts +8 -0
- package/dist/commands/gui-shutdown-monitor.d.ts.map +1 -0
- package/dist/commands/gui-shutdown-monitor.js +50 -0
- package/dist/commands/gui-shutdown-monitor.js.map +1 -0
- package/dist/commands/gui-window.d.ts +42 -0
- package/dist/commands/gui-window.d.ts.map +1 -0
- package/dist/commands/gui-window.js +287 -0
- package/dist/commands/gui-window.js.map +1 -0
- package/dist/commands/gui-workspace.d.ts +3 -0
- package/dist/commands/gui-workspace.d.ts.map +1 -0
- package/dist/commands/gui-workspace.js +297 -0
- package/dist/commands/gui-workspace.js.map +1 -0
- package/dist/commands/gui.d.ts +14 -0
- package/dist/commands/gui.d.ts.map +1 -0
- package/dist/commands/gui.js +392 -0
- package/dist/commands/gui.js.map +1 -0
- package/dist/commands/import-native.d.ts +34 -0
- package/dist/commands/import-native.d.ts.map +1 -0
- package/dist/commands/import-native.js +302 -0
- package/dist/commands/import-native.js.map +1 -0
- package/dist/commands/init-templates.d.ts.map +1 -1
- package/dist/commands/init-templates.js +13 -12
- package/dist/commands/init-templates.js.map +1 -1
- package/dist/commands/init.js +1 -1
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/mcp-config.d.ts.map +1 -1
- package/dist/commands/mcp-config.js +6 -3
- package/dist/commands/mcp-config.js.map +1 -1
- package/dist/commands/memory.d.ts +1 -1
- package/dist/commands/memory.d.ts.map +1 -1
- package/dist/commands/memory.js +188 -39
- package/dist/commands/memory.js.map +1 -1
- package/dist/commands/project.d.ts +3 -0
- package/dist/commands/project.d.ts.map +1 -0
- package/dist/commands/project.js +64 -0
- package/dist/commands/project.js.map +1 -0
- package/dist/commands/route.d.ts +3 -0
- package/dist/commands/route.d.ts.map +1 -0
- package/dist/commands/route.js +19 -0
- package/dist/commands/route.js.map +1 -0
- package/dist/commands/run.d.ts +23 -1
- package/dist/commands/run.d.ts.map +1 -1
- package/dist/commands/run.js +416 -81
- package/dist/commands/run.js.map +1 -1
- package/dist/commands/skill-capture.js +34 -14
- package/dist/commands/skill-capture.js.map +1 -1
- package/dist/commands/skill.d.ts.map +1 -1
- package/dist/commands/skill.js +10 -9
- package/dist/commands/skill.js.map +1 -1
- package/dist/commands/status.d.ts +5 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +134 -5
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/sync.d.ts +8 -6
- package/dist/commands/sync.d.ts.map +1 -1
- package/dist/commands/sync.js +173 -48
- package/dist/commands/sync.js.map +1 -1
- package/dist/commands/tools.d.ts +2 -0
- package/dist/commands/tools.d.ts.map +1 -1
- package/dist/commands/tools.js +34 -15
- package/dist/commands/tools.js.map +1 -1
- package/dist/commands/tui.d.ts +6 -4
- package/dist/commands/tui.d.ts.map +1 -1
- package/dist/commands/tui.js +594 -94
- package/dist/commands/tui.js.map +1 -1
- package/dist/commands/uninstall.d.ts +13 -0
- package/dist/commands/uninstall.d.ts.map +1 -0
- package/dist/commands/uninstall.js +111 -0
- package/dist/commands/uninstall.js.map +1 -0
- package/dist/config/builtin-tool-surface-config.d.ts +6 -0
- package/dist/config/builtin-tool-surface-config.d.ts.map +1 -0
- package/dist/config/builtin-tool-surface-config.js +27 -0
- package/dist/config/builtin-tool-surface-config.js.map +1 -0
- package/dist/config/config-merger.d.ts +1 -1
- package/dist/config/config-merger.d.ts.map +1 -1
- package/dist/config/config-merger.js +21 -4
- package/dist/config/config-merger.js.map +1 -1
- package/dist/config/config-merger.test.js +202 -7
- package/dist/config/config-merger.test.js.map +1 -1
- package/dist/config/global-config.d.ts +59 -13
- package/dist/config/global-config.d.ts.map +1 -1
- package/dist/config/global-config.js +580 -5
- package/dist/config/global-config.js.map +1 -1
- package/dist/config/global-config.test.js +481 -8
- package/dist/config/global-config.test.js.map +1 -1
- package/dist/config/harness-integration-capabilities.d.ts +27 -0
- package/dist/config/harness-integration-capabilities.d.ts.map +1 -0
- package/dist/config/harness-integration-capabilities.js +64 -0
- package/dist/config/harness-integration-capabilities.js.map +1 -0
- package/dist/config/interactive-use-config.d.ts +25 -0
- package/dist/config/interactive-use-config.d.ts.map +1 -0
- package/dist/config/interactive-use-config.js +210 -0
- package/dist/config/interactive-use-config.js.map +1 -0
- package/dist/config/json-comments.d.ts +2 -0
- package/dist/config/json-comments.d.ts.map +1 -0
- package/dist/config/json-comments.js +21 -0
- package/dist/config/json-comments.js.map +1 -0
- package/dist/config/managed-agent-direct-adapters.d.ts +15 -0
- package/dist/config/managed-agent-direct-adapters.d.ts.map +1 -0
- package/dist/config/managed-agent-direct-adapters.js +54 -0
- package/dist/config/managed-agent-direct-adapters.js.map +1 -0
- package/dist/config/managed-agent-provider-models.d.ts +3 -0
- package/dist/config/managed-agent-provider-models.d.ts.map +1 -0
- package/dist/config/managed-agent-provider-models.js +12 -0
- package/dist/config/managed-agent-provider-models.js.map +1 -0
- package/dist/config/managed-agent-routes.d.ts +49 -0
- package/dist/config/managed-agent-routes.d.ts.map +1 -0
- package/dist/config/managed-agent-routes.js +578 -0
- package/dist/config/managed-agent-routes.js.map +1 -0
- package/dist/config/managed-invocation-context-resolver.d.ts +10 -0
- package/dist/config/managed-invocation-context-resolver.d.ts.map +1 -0
- package/dist/config/managed-invocation-context-resolver.js +98 -0
- package/dist/config/managed-invocation-context-resolver.js.map +1 -0
- package/dist/config/managed-invocation-context-resolver.test.d.ts +2 -0
- package/dist/config/managed-invocation-context-resolver.test.d.ts.map +1 -0
- package/dist/config/managed-invocation-context-resolver.test.js +133 -0
- package/dist/config/managed-invocation-context-resolver.test.js.map +1 -0
- package/dist/config/model-task-suitability.d.ts +9 -0
- package/dist/config/model-task-suitability.d.ts.map +1 -0
- package/dist/config/model-task-suitability.js +40 -0
- package/dist/config/model-task-suitability.js.map +1 -0
- package/dist/config/native-agent-projection.d.ts +16 -0
- package/dist/config/native-agent-projection.d.ts.map +1 -0
- package/dist/config/native-agent-projection.js +242 -0
- package/dist/config/native-agent-projection.js.map +1 -0
- package/dist/config/native-hook-projection.d.ts +11 -0
- package/dist/config/native-hook-projection.d.ts.map +1 -0
- package/dist/config/native-hook-projection.js +180 -0
- package/dist/config/native-hook-projection.js.map +1 -0
- package/dist/config/native-permission-projection.d.ts +12 -0
- package/dist/config/native-permission-projection.d.ts.map +1 -0
- package/dist/config/native-permission-projection.js +162 -0
- package/dist/config/native-permission-projection.js.map +1 -0
- package/dist/config/native-projection-backup.d.ts +8 -0
- package/dist/config/native-projection-backup.d.ts.map +1 -0
- package/dist/config/native-projection-backup.js +19 -0
- package/dist/config/native-projection-backup.js.map +1 -0
- package/dist/config/native-projection-policy.d.ts +10 -0
- package/dist/config/native-projection-policy.d.ts.map +1 -0
- package/dist/config/native-projection-policy.js +9 -0
- package/dist/config/native-projection-policy.js.map +1 -0
- package/dist/config/native-projection-state.d.ts +57 -0
- package/dist/config/native-projection-state.d.ts.map +1 -0
- package/dist/config/native-projection-state.js +199 -0
- package/dist/config/native-projection-state.js.map +1 -0
- package/dist/config/native-skill-projection.d.ts +24 -0
- package/dist/config/native-skill-projection.d.ts.map +1 -0
- package/dist/config/native-skill-projection.js +170 -0
- package/dist/config/native-skill-projection.js.map +1 -0
- package/dist/config/operator-identity-context.d.ts +7 -0
- package/dist/config/operator-identity-context.d.ts.map +1 -0
- package/dist/config/operator-identity-context.js +46 -0
- package/dist/config/operator-identity-context.js.map +1 -0
- package/dist/config/operator-identity-context.test.d.ts +2 -0
- package/dist/config/operator-identity-context.test.d.ts.map +1 -0
- package/dist/config/operator-identity-context.test.js +61 -0
- package/dist/config/operator-identity-context.test.js.map +1 -0
- package/dist/config/operator-voice.d.ts +10 -0
- package/dist/config/operator-voice.d.ts.map +1 -0
- package/dist/config/operator-voice.js +29 -0
- package/dist/config/operator-voice.js.map +1 -0
- package/dist/config/provider-route-candidates.d.ts +20 -0
- package/dist/config/provider-route-candidates.d.ts.map +1 -0
- package/dist/config/provider-route-candidates.js +211 -0
- package/dist/config/provider-route-candidates.js.map +1 -0
- package/dist/config/provider-route-candidates.test.d.ts +2 -0
- package/dist/config/provider-route-candidates.test.d.ts.map +1 -0
- package/dist/config/provider-route-candidates.test.js +150 -0
- package/dist/config/provider-route-candidates.test.js.map +1 -0
- package/dist/config/skill-registry.d.ts +9 -0
- package/dist/config/skill-registry.d.ts.map +1 -0
- package/dist/config/skill-registry.js +13 -0
- package/dist/config/skill-registry.js.map +1 -0
- package/dist/config/skill-registry.test.d.ts +2 -0
- package/dist/config/skill-registry.test.d.ts.map +1 -0
- package/dist/config/skill-registry.test.js +64 -0
- package/dist/config/skill-registry.test.js.map +1 -0
- package/dist/config/task-skill-selection.d.ts +24 -0
- package/dist/config/task-skill-selection.d.ts.map +1 -0
- package/dist/config/task-skill-selection.js +79 -0
- package/dist/config/task-skill-selection.js.map +1 -0
- package/dist/config/translators/claude-translator.d.ts +7 -0
- package/dist/config/translators/claude-translator.d.ts.map +1 -0
- package/dist/config/translators/claude-translator.js +30 -0
- package/dist/config/translators/claude-translator.js.map +1 -0
- package/dist/config/translators/codex-translator.d.ts +7 -0
- package/dist/config/translators/codex-translator.d.ts.map +1 -0
- package/dist/config/translators/codex-translator.js +20 -0
- package/dist/config/translators/codex-translator.js.map +1 -0
- package/dist/config/translators/opencode-translator.d.ts +7 -0
- package/dist/config/translators/opencode-translator.d.ts.map +1 -0
- package/dist/config/translators/opencode-translator.js +19 -0
- package/dist/config/translators/opencode-translator.js.map +1 -0
- package/dist/config/translators/permission-projection.d.ts +26 -0
- package/dist/config/translators/permission-projection.d.ts.map +1 -0
- package/dist/config/translators/permission-projection.js +22 -0
- package/dist/config/translators/permission-projection.js.map +1 -0
- package/dist/config/web-tools-config.d.ts +45 -0
- package/dist/config/web-tools-config.d.ts.map +1 -0
- package/dist/config/web-tools-config.js +846 -0
- package/dist/config/web-tools-config.js.map +1 -0
- package/dist/config.d.ts +4 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js.map +1 -1
- package/dist/engines/engine-registry.d.ts +45 -0
- package/dist/engines/engine-registry.d.ts.map +1 -0
- package/dist/engines/engine-registry.js +125 -0
- package/dist/engines/engine-registry.js.map +1 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +141 -18
- package/dist/index.js.map +1 -1
- package/dist/kiln-yaml-types.d.ts +207 -1
- package/dist/kiln-yaml-types.d.ts.map +1 -1
- package/dist/kiln-yaml-types.js +29 -0
- package/dist/kiln-yaml-types.js.map +1 -1
- package/dist/kiln-yaml.d.ts +1 -1
- package/dist/kiln-yaml.d.ts.map +1 -1
- package/dist/kiln-yaml.js +93 -0
- package/dist/kiln-yaml.js.map +1 -1
- package/dist/mcp/config-generator.d.ts.map +1 -1
- package/dist/mcp/config-generator.js +8 -7
- package/dist/mcp/config-generator.js.map +1 -1
- package/dist/mcp/index.d.ts +2 -25
- package/dist/mcp/index.d.ts.map +1 -1
- package/dist/mcp/index.js +1 -103
- package/dist/mcp/index.js.map +1 -1
- package/dist/wrapper/__tests__/session-manager-context-governor.test.d.ts +2 -0
- package/dist/wrapper/__tests__/session-manager-context-governor.test.d.ts.map +1 -0
- package/dist/wrapper/__tests__/session-manager-context-governor.test.js +210 -0
- package/dist/wrapper/__tests__/session-manager-context-governor.test.js.map +1 -0
- package/dist/wrapper/claude-code-process.d.ts +1 -0
- package/dist/wrapper/claude-code-process.d.ts.map +1 -1
- package/dist/wrapper/claude-code-process.js +32 -19
- package/dist/wrapper/claude-code-process.js.map +1 -1
- package/dist/wrapper/cleanup-registry.d.ts.map +1 -1
- package/dist/wrapper/cleanup-registry.js +3 -1
- package/dist/wrapper/cleanup-registry.js.map +1 -1
- package/dist/wrapper/codex-session.d.ts +3 -0
- package/dist/wrapper/codex-session.d.ts.map +1 -1
- package/dist/wrapper/codex-session.js +193 -85
- package/dist/wrapper/codex-session.js.map +1 -1
- package/dist/wrapper/debug.d.ts.map +1 -1
- package/dist/wrapper/debug.js +2 -0
- package/dist/wrapper/debug.js.map +1 -1
- package/dist/wrapper/direct-provider-adapter-factory.d.ts +12 -0
- package/dist/wrapper/direct-provider-adapter-factory.d.ts.map +1 -0
- package/dist/wrapper/direct-provider-adapter-factory.js +99 -0
- package/dist/wrapper/direct-provider-adapter-factory.js.map +1 -0
- package/dist/wrapper/index.d.ts +0 -2
- package/dist/wrapper/index.d.ts.map +1 -1
- package/dist/wrapper/index.js +0 -1
- package/dist/wrapper/index.js.map +1 -1
- package/dist/wrapper/opencode-session.d.ts +4 -0
- package/dist/wrapper/opencode-session.d.ts.map +1 -1
- package/dist/wrapper/opencode-session.js +245 -38
- package/dist/wrapper/opencode-session.js.map +1 -1
- package/dist/wrapper/permission-evaluator.d.ts +2 -1
- package/dist/wrapper/permission-evaluator.d.ts.map +1 -1
- package/dist/wrapper/permission-evaluator.js +54 -0
- package/dist/wrapper/permission-evaluator.js.map +1 -1
- package/dist/wrapper/permission-normalizer.d.ts +5 -1
- package/dist/wrapper/permission-normalizer.d.ts.map +1 -1
- package/dist/wrapper/permission-normalizer.js +17 -0
- package/dist/wrapper/permission-normalizer.js.map +1 -1
- package/dist/wrapper/permission-policy-authorizer.d.ts +1 -1
- package/dist/wrapper/permission-policy-authorizer.js +1 -1
- package/dist/wrapper/pooled-harness-session.d.ts +24 -0
- package/dist/wrapper/pooled-harness-session.d.ts.map +1 -0
- package/dist/wrapper/pooled-harness-session.js +123 -0
- package/dist/wrapper/pooled-harness-session.js.map +1 -0
- package/dist/wrapper/preamble-builder.d.ts +4 -1
- package/dist/wrapper/preamble-builder.d.ts.map +1 -1
- package/dist/wrapper/preamble-builder.js +48 -20
- package/dist/wrapper/preamble-builder.js.map +1 -1
- package/dist/wrapper/provider-session.d.ts +25 -5
- package/dist/wrapper/provider-session.d.ts.map +1 -1
- package/dist/wrapper/provider-session.js +562 -138
- package/dist/wrapper/provider-session.js.map +1 -1
- package/dist/wrapper/session-manager.d.ts.map +1 -1
- package/dist/wrapper/session-manager.js +16 -5
- package/dist/wrapper/session-manager.js.map +1 -1
- package/dist/wrapper/session-registry.d.ts +11 -1
- package/dist/wrapper/session-registry.d.ts.map +1 -1
- package/dist/wrapper/session-registry.js +167 -259
- package/dist/wrapper/session-registry.js.map +1 -1
- package/dist/wrapper/session-store.d.ts +33 -10
- package/dist/wrapper/session-store.d.ts.map +1 -1
- package/dist/wrapper/session-store.js +327 -84
- package/dist/wrapper/session-store.js.map +1 -1
- package/dist/wrapper/session.d.ts +55 -2
- package/dist/wrapper/session.d.ts.map +1 -1
- package/dist/wrapper/session.js +11 -2
- package/dist/wrapper/session.js.map +1 -1
- package/package.json +6 -5
- package/dist/application/__tests__/plan-exit-tool.test.d.ts +0 -2
- package/dist/application/__tests__/plan-exit-tool.test.d.ts.map +0 -1
- package/dist/application/__tests__/plan-exit-tool.test.js +0 -12
- package/dist/application/__tests__/plan-exit-tool.test.js.map +0 -1
- package/dist/application/context-governor.d.ts +0 -26
- package/dist/application/context-governor.d.ts.map +0 -1
- package/dist/application/context-governor.js +0 -164
- package/dist/application/context-governor.js.map +0 -1
- package/dist/application/plan-exit-tool.d.ts +0 -19
- package/dist/application/plan-exit-tool.d.ts.map +0 -1
- package/dist/application/plan-exit-tool.js +0 -13
- package/dist/application/plan-exit-tool.js.map +0 -1
- package/dist/commands/serve.d.ts +0 -7
- package/dist/commands/serve.d.ts.map +0 -1
- package/dist/commands/serve.js +0 -24
- package/dist/commands/serve.js.map +0 -1
- package/dist/mcp/server.d.ts +0 -36
- package/dist/mcp/server.d.ts.map +0 -1
- package/dist/mcp/server.js +0 -156
- package/dist/mcp/server.js.map +0 -1
- package/dist/mcp/transports.d.ts +0 -28
- package/dist/mcp/transports.d.ts.map +0 -1
- package/dist/mcp/transports.js +0 -108
- package/dist/mcp/transports.js.map +0 -1
- package/dist/mcp-entry.d.ts +0 -3
- package/dist/mcp-entry.d.ts.map +0 -1
- package/dist/mcp-entry.js +0 -19
- package/dist/mcp-entry.js.map +0 -1
- package/dist/sync/agent-sync.d.ts +0 -13
- package/dist/sync/agent-sync.d.ts.map +0 -1
- package/dist/sync/agent-sync.js +0 -130
- package/dist/sync/agent-sync.js.map +0 -1
- package/dist/sync/agent-sync.test.d.ts +0 -2
- package/dist/sync/agent-sync.test.d.ts.map +0 -1
- package/dist/sync/agent-sync.test.js +0 -130
- package/dist/sync/agent-sync.test.js.map +0 -1
- package/dist/sync/agents-md-sync.d.ts +0 -7
- package/dist/sync/agents-md-sync.d.ts.map +0 -1
- package/dist/sync/agents-md-sync.js +0 -44
- package/dist/sync/agents-md-sync.js.map +0 -1
- package/dist/sync/agents-md-sync.test.d.ts +0 -2
- package/dist/sync/agents-md-sync.test.d.ts.map +0 -1
- package/dist/sync/agents-md-sync.test.js +0 -154
- package/dist/sync/agents-md-sync.test.js.map +0 -1
- package/dist/sync/hook-sync.d.ts +0 -8
- package/dist/sync/hook-sync.d.ts.map +0 -1
- package/dist/sync/hook-sync.js +0 -90
- package/dist/sync/hook-sync.js.map +0 -1
- package/dist/sync/security-sync.d.ts +0 -9
- package/dist/sync/security-sync.d.ts.map +0 -1
- package/dist/sync/security-sync.js +0 -161
- package/dist/sync/security-sync.js.map +0 -1
- package/dist/sync/skill-sync.d.ts +0 -10
- package/dist/sync/skill-sync.d.ts.map +0 -1
- package/dist/sync/skill-sync.js +0 -87
- package/dist/sync/skill-sync.js.map +0 -1
- package/dist/sync/skill-sync.test.d.ts +0 -2
- package/dist/sync/skill-sync.test.d.ts.map +0 -1
- package/dist/sync/skill-sync.test.js +0 -163
- package/dist/sync/skill-sync.test.js.map +0 -1
- package/dist/wrapper/executable-provider-session.d.ts +0 -26
- package/dist/wrapper/executable-provider-session.d.ts.map +0 -1
- package/dist/wrapper/executable-provider-session.js +0 -214
- package/dist/wrapper/executable-provider-session.js.map +0 -1
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { homedir } from "node:os";
|
|
2
|
+
import { findAgent, loadAgentDefinitions } from "../application/agent-loader.js";
|
|
3
|
+
import { resolveInstructionProfileContextCandidates } from "../application/instruction-profile-context.js";
|
|
4
|
+
import { readGlobalConfig } from "./global-config.js";
|
|
5
|
+
import { readKilnYaml } from "../kiln-yaml.js";
|
|
6
|
+
import { join } from "node:path";
|
|
7
|
+
import { inferRouteTask } from "./provider-route-candidates.js";
|
|
8
|
+
import { resolveTaskSkillSelection } from "./task-skill-selection.js";
|
|
9
|
+
export function createManagedInvocationContextResolver(projectPath, userHome = homedir(), config = {}) {
|
|
10
|
+
return async (input) => {
|
|
11
|
+
if (input.contextMode === "fork") {
|
|
12
|
+
throw new Error("Managed invocation fork context is not enabled for this surface.");
|
|
13
|
+
}
|
|
14
|
+
const sections = [];
|
|
15
|
+
let admittedAgentProfile;
|
|
16
|
+
let profileSkills = [];
|
|
17
|
+
let agentInstructionProfiles = [];
|
|
18
|
+
let agentTaskAffinity = [];
|
|
19
|
+
if (input.agentProfile) {
|
|
20
|
+
const definitions = await loadAgentDefinitions(projectPath);
|
|
21
|
+
const agent = findAgent(definitions, input.agentProfile);
|
|
22
|
+
if (!agent) {
|
|
23
|
+
throw new Error(`Managed invocation agent profile not found: ${input.agentProfile}`);
|
|
24
|
+
}
|
|
25
|
+
admittedAgentProfile = agent.name;
|
|
26
|
+
profileSkills = agent.skills ?? [];
|
|
27
|
+
agentInstructionProfiles = agent.instructionProfiles ?? [];
|
|
28
|
+
agentTaskAffinity = agent.taskAffinity ?? [];
|
|
29
|
+
sections.push([
|
|
30
|
+
"## Child Agent Profile",
|
|
31
|
+
`name: ${agent.name}`,
|
|
32
|
+
agent.displayName ? `displayName: ${agent.displayName}` : undefined,
|
|
33
|
+
agent.nicknameCandidates?.length ? `nicknameCandidates: ${agent.nicknameCandidates.join(", ")}` : undefined,
|
|
34
|
+
`role: ${agent.role}`,
|
|
35
|
+
agent.description ? `description: ${agent.description}` : undefined,
|
|
36
|
+
agent.goal ? `goal: ${agent.goal}` : undefined,
|
|
37
|
+
agent.backstory ? `backstory: ${agent.backstory}` : undefined,
|
|
38
|
+
agent.tier ? `tier: ${agent.tier}` : undefined,
|
|
39
|
+
agent.instructionProfiles?.length ? `instructionProfiles: ${agent.instructionProfiles.join(", ")}` : undefined,
|
|
40
|
+
agent.instructions ? "instructions:" : undefined,
|
|
41
|
+
agent.instructions,
|
|
42
|
+
].filter((line) => Boolean(line)).join("\n"));
|
|
43
|
+
}
|
|
44
|
+
const admittedInstructionProfiles = resolveManagedInstructionProfiles(projectPath, userHome, agentInstructionProfiles, sections, config);
|
|
45
|
+
const skillSelection = resolveTaskSkillSelection({
|
|
46
|
+
explicitSkills: unique([
|
|
47
|
+
...profileSkills,
|
|
48
|
+
...input.skills,
|
|
49
|
+
]),
|
|
50
|
+
projectPath,
|
|
51
|
+
userHome,
|
|
52
|
+
skillConfig: config.skillConfig,
|
|
53
|
+
selection: config.skillConfig?.selection,
|
|
54
|
+
task: inferRouteTask({
|
|
55
|
+
text: input.task,
|
|
56
|
+
agentTaskAffinity,
|
|
57
|
+
}),
|
|
58
|
+
provider: input.providerRoute?.providerId,
|
|
59
|
+
model: input.providerRoute?.model,
|
|
60
|
+
taskSuitability: input.taskSuitability,
|
|
61
|
+
modelTaskSuitability: config.modelTaskSuitability,
|
|
62
|
+
requesterLabel: "Managed invocation",
|
|
63
|
+
});
|
|
64
|
+
for (const candidate of skillSelection.contextCandidates) {
|
|
65
|
+
sections.push(candidate.content);
|
|
66
|
+
}
|
|
67
|
+
return {
|
|
68
|
+
...(sections.length > 0 ? { promptPrefix: sections.join("\n\n") } : {}),
|
|
69
|
+
...(admittedAgentProfile ? { admittedAgentProfile } : {}),
|
|
70
|
+
...(skillSelection.skillNames.length > 0 ? { admittedSkills: skillSelection.skillNames } : {}),
|
|
71
|
+
...(admittedInstructionProfiles.length > 0 ? { admittedInstructionProfiles } : {}),
|
|
72
|
+
};
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
function resolveManagedInstructionProfiles(projectPath, userHome, agentInstructionProfiles, sections, config) {
|
|
76
|
+
const candidates = resolveInstructionProfileContextCandidates({
|
|
77
|
+
projectPath,
|
|
78
|
+
userHome,
|
|
79
|
+
globalConfig: config.globalConfig === undefined ? readGlobalConfig() : config.globalConfig,
|
|
80
|
+
projectConfig: config.projectConfig === undefined ? readKilnYaml(join(projectPath, ".kiln")) : config.projectConfig,
|
|
81
|
+
agent: agentInstructionProfiles.length > 0
|
|
82
|
+
? { name: "managed-child", instructionProfiles: agentInstructionProfiles }
|
|
83
|
+
: undefined,
|
|
84
|
+
});
|
|
85
|
+
const admitted = [];
|
|
86
|
+
for (const candidate of candidates) {
|
|
87
|
+
const match = /^Instruction Profile\nname: ([^\n]+)/u.exec(candidate.content);
|
|
88
|
+
if (match?.[1]) {
|
|
89
|
+
admitted.push(match[1]);
|
|
90
|
+
}
|
|
91
|
+
sections.push(candidate.content);
|
|
92
|
+
}
|
|
93
|
+
return admitted;
|
|
94
|
+
}
|
|
95
|
+
function unique(values) {
|
|
96
|
+
return [...new Set(values.map((value) => value.trim()).filter((value) => value.length > 0))];
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=managed-invocation-context-resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"managed-invocation-context-resolver.js","sourceRoot":"","sources":["../../src/config/managed-invocation-context-resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"managed-invocation-context-resolver.test.d.ts","sourceRoot":"","sources":["../../src/config/managed-invocation-context-resolver.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import { afterEach, describe, expect, it } from "vitest";
|
|
2
|
+
import { mkdtempSync, mkdirSync, rmSync, writeFileSync } from "node:fs";
|
|
3
|
+
import { join } from "node:path";
|
|
4
|
+
import { tmpdir } from "node:os";
|
|
5
|
+
import { createManagedInvocationContextResolver } from "./managed-invocation-context-resolver.js";
|
|
6
|
+
const tempRoots = [];
|
|
7
|
+
function createTempRoot() {
|
|
8
|
+
const root = mkdtempSync(join(tmpdir(), "kiln-managed-context-resolver-"));
|
|
9
|
+
tempRoots.push(root);
|
|
10
|
+
return root;
|
|
11
|
+
}
|
|
12
|
+
function writeAgent(root) {
|
|
13
|
+
const agentDir = join(root, ".kiln", "agents");
|
|
14
|
+
mkdirSync(agentDir, { recursive: true });
|
|
15
|
+
writeFileSync(join(agentDir, "architecture-reviewer.md"), [
|
|
16
|
+
"---",
|
|
17
|
+
"name: architecture-reviewer",
|
|
18
|
+
"displayName: Lloyd",
|
|
19
|
+
"nicknameCandidates:",
|
|
20
|
+
" - architecture-review",
|
|
21
|
+
"role: reviewer",
|
|
22
|
+
"goal: Review architecture",
|
|
23
|
+
"tier: reasoning",
|
|
24
|
+
"skills:",
|
|
25
|
+
" - ddd-review",
|
|
26
|
+
"---",
|
|
27
|
+
"",
|
|
28
|
+
"Review architecture boundaries.",
|
|
29
|
+
"",
|
|
30
|
+
].join("\n"), "utf-8");
|
|
31
|
+
}
|
|
32
|
+
function writeSkill(root) {
|
|
33
|
+
const skillDir = join(root, ".kiln", "skills", "ddd-review");
|
|
34
|
+
mkdirSync(skillDir, { recursive: true });
|
|
35
|
+
writeFileSync(join(skillDir, "SKILL.md"), [
|
|
36
|
+
"---",
|
|
37
|
+
"name: ddd-review",
|
|
38
|
+
"description: Review DDD boundaries",
|
|
39
|
+
"---",
|
|
40
|
+
"",
|
|
41
|
+
"Check bounded contexts.",
|
|
42
|
+
"",
|
|
43
|
+
].join("\n"), "utf-8");
|
|
44
|
+
}
|
|
45
|
+
function writeFrontendSkill(root) {
|
|
46
|
+
const skillDir = join(root, ".kiln", "skills", "frontend-design");
|
|
47
|
+
mkdirSync(skillDir, { recursive: true });
|
|
48
|
+
writeFileSync(join(skillDir, "SKILL.md"), [
|
|
49
|
+
"---",
|
|
50
|
+
"name: frontend-design",
|
|
51
|
+
"description: Frontend design implementation",
|
|
52
|
+
"---",
|
|
53
|
+
"",
|
|
54
|
+
"Build polished UI.",
|
|
55
|
+
"",
|
|
56
|
+
].join("\n"), "utf-8");
|
|
57
|
+
}
|
|
58
|
+
describe("managed invocation context resolver", () => {
|
|
59
|
+
afterEach(() => {
|
|
60
|
+
for (const root of tempRoots.splice(0)) {
|
|
61
|
+
rmSync(root, { recursive: true, force: true });
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
it("resolves requested agent profile and skills into a prompt prefix", async () => {
|
|
65
|
+
const root = createTempRoot();
|
|
66
|
+
writeAgent(root);
|
|
67
|
+
writeSkill(root);
|
|
68
|
+
const resolver = createManagedInvocationContextResolver(root, root, {
|
|
69
|
+
globalConfig: null,
|
|
70
|
+
projectConfig: null,
|
|
71
|
+
});
|
|
72
|
+
const resolved = await resolver({
|
|
73
|
+
agentProfile: "architecture-reviewer",
|
|
74
|
+
skills: [],
|
|
75
|
+
contextMode: "isolated",
|
|
76
|
+
task: "Inspect architecture.",
|
|
77
|
+
});
|
|
78
|
+
expect(resolved).toMatchObject({
|
|
79
|
+
admittedAgentProfile: "architecture-reviewer",
|
|
80
|
+
admittedSkills: ["ddd-review"],
|
|
81
|
+
});
|
|
82
|
+
expect(resolved.promptPrefix).toContain("Review architecture boundaries.");
|
|
83
|
+
expect(resolved.promptPrefix).toContain("displayName: Lloyd");
|
|
84
|
+
expect(resolved.promptPrefix).toContain("nicknameCandidates: architecture-review");
|
|
85
|
+
expect(resolved.promptPrefix).toContain("Check bounded contexts.");
|
|
86
|
+
});
|
|
87
|
+
it("fails closed for fork mode until policy support exists", async () => {
|
|
88
|
+
const root = createTempRoot();
|
|
89
|
+
const resolver = createManagedInvocationContextResolver(root, root, {
|
|
90
|
+
globalConfig: null,
|
|
91
|
+
projectConfig: null,
|
|
92
|
+
});
|
|
93
|
+
await expect(resolver({
|
|
94
|
+
skills: [],
|
|
95
|
+
contextMode: "fork",
|
|
96
|
+
task: "Inspect architecture.",
|
|
97
|
+
})).rejects.toThrow("Managed invocation fork context is not enabled for this surface.");
|
|
98
|
+
});
|
|
99
|
+
it("auto-admits selected route recommended skills when skill selection policy allows it", async () => {
|
|
100
|
+
const root = createTempRoot();
|
|
101
|
+
writeFrontendSkill(root);
|
|
102
|
+
const resolver = createManagedInvocationContextResolver(root, root, {
|
|
103
|
+
globalConfig: null,
|
|
104
|
+
projectConfig: null,
|
|
105
|
+
skillConfig: {
|
|
106
|
+
selection: {
|
|
107
|
+
mode: "auto",
|
|
108
|
+
},
|
|
109
|
+
},
|
|
110
|
+
});
|
|
111
|
+
const resolved = await resolver({
|
|
112
|
+
skills: [],
|
|
113
|
+
contextMode: "isolated",
|
|
114
|
+
task: "Build a responsive React UI.",
|
|
115
|
+
providerRoute: {
|
|
116
|
+
providerId: "custom-provider",
|
|
117
|
+
model: "custom-model",
|
|
118
|
+
},
|
|
119
|
+
taskSuitability: [{
|
|
120
|
+
task: "frontend-design",
|
|
121
|
+
level: "preferred",
|
|
122
|
+
source: "live-proof",
|
|
123
|
+
reason: "Selected route declares frontend suitability.",
|
|
124
|
+
recommendedSkills: ["frontend-design"],
|
|
125
|
+
}],
|
|
126
|
+
});
|
|
127
|
+
expect(resolved).toMatchObject({
|
|
128
|
+
admittedSkills: ["frontend-design"],
|
|
129
|
+
});
|
|
130
|
+
expect(resolved.promptPrefix).toContain("Build polished UI.");
|
|
131
|
+
});
|
|
132
|
+
});
|
|
133
|
+
//# sourceMappingURL=managed-invocation-context-resolver.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"managed-invocation-context-resolver.test.js","sourceRoot":"","sources":["../../src/config/managed-invocation-context-resolver.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,sCAAsC,EAAE,MAAM,0CAA0C,CAAC;AAElG,MAAM,SAAS,GAAa,EAAE,CAAC;AAE/B,SAAS,cAAc;IACrB,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,gCAAgC,CAAC,CAAC,CAAC;IAC3E,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrB,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,UAAU,CAAC,IAAY;IAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC/C,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzC,aAAa,CACX,IAAI,CAAC,QAAQ,EAAE,0BAA0B,CAAC,EAC1C;QACE,KAAK;QACL,6BAA6B;QAC7B,oBAAoB;QACpB,qBAAqB;QACrB,yBAAyB;QACzB,gBAAgB;QAChB,2BAA2B;QAC3B,iBAAiB;QACjB,SAAS;QACT,gBAAgB;QAChB,KAAK;QACL,EAAE;QACF,iCAAiC;QACjC,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,EACZ,OAAO,CACR,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,IAAY;IAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;IAC7D,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzC,aAAa,CACX,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,EAC1B;QACE,KAAK;QACL,kBAAkB;QAClB,oCAAoC;QACpC,KAAK;QACL,EAAE;QACF,yBAAyB;QACzB,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,EACZ,OAAO,CACR,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAY;IACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CAAC;IAClE,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzC,aAAa,CACX,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,EAC1B;QACE,KAAK;QACL,uBAAuB;QACvB,6CAA6C;QAC7C,KAAK;QACL,EAAE;QACF,oBAAoB;QACpB,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,EACZ,OAAO,CACR,CAAC;AACJ,CAAC;AAED,QAAQ,CAAC,qCAAqC,EAAE,GAAG,EAAE;IACnD,SAAS,CAAC,GAAG,EAAE;QACb,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YACvC,MAAM,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACjD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;QAChF,MAAM,IAAI,GAAG,cAAc,EAAE,CAAC;QAC9B,UAAU,CAAC,IAAI,CAAC,CAAC;QACjB,UAAU,CAAC,IAAI,CAAC,CAAC;QACjB,MAAM,QAAQ,GAAG,sCAAsC,CAAC,IAAI,EAAE,IAAI,EAAE;YAClE,YAAY,EAAE,IAAI;YAClB,aAAa,EAAE,IAAI;SACpB,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC;YAC9B,YAAY,EAAE,uBAAuB;YACrC,MAAM,EAAE,EAAE;YACV,WAAW,EAAE,UAAU;YACvB,IAAI,EAAE,uBAAuB;SAC9B,CAAC,CAAC;QAEH,MAAM,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC;YAC7B,oBAAoB,EAAE,uBAAuB;YAC7C,cAAc,EAAE,CAAC,YAAY,CAAC;SAC/B,CAAC,CAAC;QACH,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,iCAAiC,CAAC,CAAC;QAC3E,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;QAC9D,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,yCAAyC,CAAC,CAAC;QACnF,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;QACtE,MAAM,IAAI,GAAG,cAAc,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,sCAAsC,CAAC,IAAI,EAAE,IAAI,EAAE;YAClE,YAAY,EAAE,IAAI;YAClB,aAAa,EAAE,IAAI;SACpB,CAAC,CAAC;QAEH,MAAM,MAAM,CAAC,QAAQ,CAAC;YACpB,MAAM,EAAE,EAAE;YACV,WAAW,EAAE,MAAM;YACnB,IAAI,EAAE,uBAAuB;SAC9B,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,kEAAkE,CAAC,CAAC;IAC1F,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qFAAqF,EAAE,KAAK,IAAI,EAAE;QACnG,MAAM,IAAI,GAAG,cAAc,EAAE,CAAC;QAC9B,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACzB,MAAM,QAAQ,GAAG,sCAAsC,CAAC,IAAI,EAAE,IAAI,EAAE;YAClE,YAAY,EAAE,IAAI;YAClB,aAAa,EAAE,IAAI;YACnB,WAAW,EAAE;gBACX,SAAS,EAAE;oBACT,IAAI,EAAE,MAAM;iBACb;aACF;SACF,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC;YAC9B,MAAM,EAAE,EAAE;YACV,WAAW,EAAE,UAAU;YACvB,IAAI,EAAE,8BAA8B;YACpC,aAAa,EAAE;gBACb,UAAU,EAAE,iBAAiB;gBAC7B,KAAK,EAAE,cAAc;aACtB;YACD,eAAe,EAAE,CAAC;oBAChB,IAAI,EAAE,iBAAiB;oBACvB,KAAK,EAAE,WAAW;oBAClB,MAAM,EAAE,YAAY;oBACpB,MAAM,EAAE,+CAA+C;oBACvD,iBAAiB,EAAE,CAAC,iBAAiB,CAAC;iBACvC,CAAC;SACH,CAAC,CAAC;QAEH,MAAM,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC;YAC7B,cAAc,EAAE,CAAC,iBAAiB,CAAC;SACpC,CAAC,CAAC;QACH,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type ModelTaskSuitability, type ModelTaskSuitabilityEvidence } from "@kilnai/core";
|
|
2
|
+
import type { KilnModelTaskSuitabilityOverride } from "../kiln-yaml-types.js";
|
|
3
|
+
export declare function resolveConfiguredModelTaskSuitability(input: {
|
|
4
|
+
readonly provider: string;
|
|
5
|
+
readonly model: string;
|
|
6
|
+
readonly overrides?: readonly KilnModelTaskSuitabilityOverride[];
|
|
7
|
+
readonly liveProof?: ModelTaskSuitabilityEvidence;
|
|
8
|
+
}): readonly ModelTaskSuitability[];
|
|
9
|
+
//# sourceMappingURL=model-task-suitability.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-task-suitability.d.ts","sourceRoot":"","sources":["../../src/config/model-task-suitability.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,4BAA4B,EAElC,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,uBAAuB,CAAC;AAI9E,wBAAgB,qCAAqC,CACnD,KAAK,EAAE;IACL,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,gCAAgC,EAAE,CAAC;IACjE,QAAQ,CAAC,SAAS,CAAC,EAAE,4BAA4B,CAAC;CACnD,GACA,SAAS,oBAAoB,EAAE,CA2BjC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { ModelCapabilityRegistry, } from "@kilnai/core";
|
|
2
|
+
const MODEL_CAPABILITIES = new ModelCapabilityRegistry();
|
|
3
|
+
export function resolveConfiguredModelTaskSuitability(input) {
|
|
4
|
+
const merged = new Map();
|
|
5
|
+
for (const entry of MODEL_CAPABILITIES.taskSuitability(input.provider, input.model)) {
|
|
6
|
+
merged.set(entry.task, appendSuitabilityEvidence(entry, input.liveProof));
|
|
7
|
+
}
|
|
8
|
+
for (const override of input.overrides ?? []) {
|
|
9
|
+
if (override.provider !== input.provider || override.model !== input.model) {
|
|
10
|
+
continue;
|
|
11
|
+
}
|
|
12
|
+
const existing = merged.get(override.task);
|
|
13
|
+
merged.set(override.task, {
|
|
14
|
+
task: override.task,
|
|
15
|
+
level: override.level,
|
|
16
|
+
source: "operator-override",
|
|
17
|
+
reason: override.reason,
|
|
18
|
+
...(existing?.recommendedSkills ? { recommendedSkills: existing.recommendedSkills } : {}),
|
|
19
|
+
evidence: [
|
|
20
|
+
{
|
|
21
|
+
source: "operator-override",
|
|
22
|
+
status: "declared",
|
|
23
|
+
summary: override.reason,
|
|
24
|
+
},
|
|
25
|
+
...(input.liveProof ? [input.liveProof] : []),
|
|
26
|
+
],
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
return [...merged.values()];
|
|
30
|
+
}
|
|
31
|
+
function appendSuitabilityEvidence(entry, evidence) {
|
|
32
|
+
if (!evidence) {
|
|
33
|
+
return entry;
|
|
34
|
+
}
|
|
35
|
+
return {
|
|
36
|
+
...entry,
|
|
37
|
+
evidence: [...(entry.evidence ?? []), evidence],
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=model-task-suitability.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-task-suitability.js","sourceRoot":"","sources":["../../src/config/model-task-suitability.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,GAIxB,MAAM,cAAc,CAAC;AAGtB,MAAM,kBAAkB,GAAG,IAAI,uBAAuB,EAAE,CAAC;AAEzD,MAAM,UAAU,qCAAqC,CACnD,KAKC;IAED,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkD,CAAC;IACzE,KAAK,MAAM,KAAK,IAAI,kBAAkB,CAAC,eAAe,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QACpF,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,yBAAyB,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;IAC5E,CAAC;IACD,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,SAAS,IAAI,EAAE,EAAE,CAAC;QAC7C,IAAI,QAAQ,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,IAAI,QAAQ,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,EAAE,CAAC;YAC3E,SAAS;QACX,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE;YACxB,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,MAAM,EAAE,mBAAmB;YAC3B,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,GAAG,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzF,QAAQ,EAAE;gBACR;oBACE,MAAM,EAAE,mBAAmB;oBAC3B,MAAM,EAAE,UAAU;oBAClB,OAAO,EAAE,QAAQ,CAAC,MAAM;iBACzB;gBACD,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;aAC9C;SACF,CAAC,CAAC;IACL,CAAC;IACD,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;AAC9B,CAAC;AAED,SAAS,yBAAyB,CAChC,KAA2B,EAC3B,QAAkD;IAElD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO;QACL,GAAG,KAAK;QACR,QAAQ,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,QAAQ,CAAC;KAChD,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { KilnAgentDefinition } from "../application/agent-loader.js";
|
|
2
|
+
import { type NativeProjectionSyncOptions } from "./native-projection-policy.js";
|
|
3
|
+
export interface NativeAgentProjectionResult {
|
|
4
|
+
claude: boolean;
|
|
5
|
+
codex: boolean;
|
|
6
|
+
opencode: boolean;
|
|
7
|
+
synced: number;
|
|
8
|
+
errors: string[];
|
|
9
|
+
}
|
|
10
|
+
export interface NativeAgentProjectionOptions extends NativeProjectionSyncOptions {
|
|
11
|
+
}
|
|
12
|
+
export declare function agentToClaudeMd(agent: KilnAgentDefinition): string;
|
|
13
|
+
export declare function agentToCodexToml(agent: KilnAgentDefinition): string;
|
|
14
|
+
export declare function agentToOpenCodeMd(agent: KilnAgentDefinition): string;
|
|
15
|
+
export declare function syncNativeAgentProjections(projectPath: string, options?: NativeAgentProjectionOptions): Promise<NativeAgentProjectionResult>;
|
|
16
|
+
//# sourceMappingURL=native-agent-projection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"native-agent-projection.d.ts","sourceRoot":"","sources":["../../src/config/native-agent-projection.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAW1E,OAAO,EAEL,KAAK,2BAA2B,EACjC,MAAM,+BAA+B,CAAC;AAEvC,MAAM,WAAW,2BAA2B;IAC1C,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,4BAA6B,SAAQ,2BAA2B;CAAG;AAwBpF,wBAAgB,eAAe,CAAC,KAAK,EAAE,mBAAmB,GAAG,MAAM,CAiDlE;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,mBAAmB,GAAG,MAAM,CAqBnE;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,mBAAmB,GAAG,MAAM,CA8BpE;AAwBD,wBAAsB,0BAA0B,CAC9C,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,4BAAiC,GACzC,OAAO,CAAC,2BAA2B,CAAC,CAyFtC"}
|
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
|
|
2
|
+
import os from "node:os";
|
|
3
|
+
import { join } from "node:path";
|
|
4
|
+
import { stringify } from "yaml";
|
|
5
|
+
import { loadAgentDefinitions } from "../application/agent-loader.js";
|
|
6
|
+
import { createNativeProjectionFileSnapshot, detectNativeProjectionFileDrift, readNativeProjectionInstallState, upsertNativeProjectionTargetState, writeNativeProjectionInstallState, } from "./native-projection-state.js";
|
|
7
|
+
import { backupNativeProjectionFile } from "./native-projection-backup.js";
|
|
8
|
+
import { isNativeProjectionHarnessDisabled, } from "./native-projection-policy.js";
|
|
9
|
+
function escapeTomlString(value) {
|
|
10
|
+
return value.replaceAll("\\", "\\\\").replaceAll("\"", "\\\"");
|
|
11
|
+
}
|
|
12
|
+
function escapeTomlMultiline(value) {
|
|
13
|
+
return value.replaceAll("\"\"\"", "\\\"\\\"\\\"");
|
|
14
|
+
}
|
|
15
|
+
export function agentToClaudeMd(agent) {
|
|
16
|
+
const frontmatter = {
|
|
17
|
+
name: agent.name,
|
|
18
|
+
role: agent.role,
|
|
19
|
+
};
|
|
20
|
+
if (agent.displayName) {
|
|
21
|
+
frontmatter.displayName = agent.displayName;
|
|
22
|
+
}
|
|
23
|
+
if (agent.nicknameCandidates && agent.nicknameCandidates.length > 0) {
|
|
24
|
+
frontmatter.nicknameCandidates = [...agent.nicknameCandidates];
|
|
25
|
+
}
|
|
26
|
+
if (agent.description) {
|
|
27
|
+
frontmatter.description = agent.description;
|
|
28
|
+
}
|
|
29
|
+
if (agent.goal) {
|
|
30
|
+
frontmatter.goal = agent.goal;
|
|
31
|
+
}
|
|
32
|
+
if (agent.tools && agent.tools.length > 0) {
|
|
33
|
+
frontmatter.tools = [...agent.tools];
|
|
34
|
+
}
|
|
35
|
+
if (agent.model) {
|
|
36
|
+
frontmatter.model = agent.model;
|
|
37
|
+
}
|
|
38
|
+
if (agent.skills && agent.skills.length > 0) {
|
|
39
|
+
frontmatter.skills = [...agent.skills];
|
|
40
|
+
}
|
|
41
|
+
if (agent.taskAffinity && agent.taskAffinity.length > 0) {
|
|
42
|
+
frontmatter.taskAffinity = [...agent.taskAffinity];
|
|
43
|
+
}
|
|
44
|
+
if (agent.instructionProfiles && agent.instructionProfiles.length > 0) {
|
|
45
|
+
frontmatter.instructionProfiles = [...agent.instructionProfiles];
|
|
46
|
+
}
|
|
47
|
+
if (agent.mode) {
|
|
48
|
+
frontmatter.mode = agent.mode;
|
|
49
|
+
}
|
|
50
|
+
const yamlFrontmatter = stringify(frontmatter).trimEnd();
|
|
51
|
+
const body = agent.instructions ?? "";
|
|
52
|
+
return `---\n${yamlFrontmatter}\n---\n${body}`;
|
|
53
|
+
}
|
|
54
|
+
export function agentToCodexToml(agent) {
|
|
55
|
+
const instructions = buildNativeAgentInstructions(agent);
|
|
56
|
+
const lines = [
|
|
57
|
+
`name = "${escapeTomlString(agent.name)}"`,
|
|
58
|
+
`description = "${escapeTomlString(agent.description ?? agent.role)}"`,
|
|
59
|
+
`developer_instructions = """${escapeTomlMultiline(instructions)}"""`,
|
|
60
|
+
];
|
|
61
|
+
if (agent.model) {
|
|
62
|
+
lines.push(`model = "${escapeTomlString(agent.model)}"`);
|
|
63
|
+
}
|
|
64
|
+
const nicknameCandidates = nativeNicknameCandidates(agent);
|
|
65
|
+
if (nicknameCandidates.length > 0) {
|
|
66
|
+
const renderedNicknames = nicknameCandidates
|
|
67
|
+
.map((nickname) => `"${escapeTomlString(nickname)}"`)
|
|
68
|
+
.join(", ");
|
|
69
|
+
lines.push(`nickname_candidates = [${renderedNicknames}]`);
|
|
70
|
+
}
|
|
71
|
+
return `${lines.join("\n")}\n`;
|
|
72
|
+
}
|
|
73
|
+
export function agentToOpenCodeMd(agent) {
|
|
74
|
+
const frontmatter = {
|
|
75
|
+
name: agent.name,
|
|
76
|
+
description: agent.description ?? agent.role,
|
|
77
|
+
};
|
|
78
|
+
if (agent.displayName) {
|
|
79
|
+
frontmatter.displayName = agent.displayName;
|
|
80
|
+
}
|
|
81
|
+
if (agent.nicknameCandidates && agent.nicknameCandidates.length > 0) {
|
|
82
|
+
frontmatter.nicknameCandidates = [...agent.nicknameCandidates];
|
|
83
|
+
}
|
|
84
|
+
if (agent.model) {
|
|
85
|
+
frontmatter.model = agent.model;
|
|
86
|
+
}
|
|
87
|
+
if (agent.mode) {
|
|
88
|
+
frontmatter.mode = agent.mode;
|
|
89
|
+
}
|
|
90
|
+
if (agent.skills && agent.skills.length > 0) {
|
|
91
|
+
frontmatter.skills = [...agent.skills];
|
|
92
|
+
}
|
|
93
|
+
if (agent.taskAffinity && agent.taskAffinity.length > 0) {
|
|
94
|
+
frontmatter.taskAffinity = [...agent.taskAffinity];
|
|
95
|
+
}
|
|
96
|
+
if (agent.instructionProfiles && agent.instructionProfiles.length > 0) {
|
|
97
|
+
frontmatter.instructionProfiles = [...agent.instructionProfiles];
|
|
98
|
+
}
|
|
99
|
+
const yamlFrontmatter = stringify(frontmatter).trimEnd();
|
|
100
|
+
const body = buildNativeAgentInstructions(agent);
|
|
101
|
+
return `---\n${yamlFrontmatter}\n---\n${body}`;
|
|
102
|
+
}
|
|
103
|
+
function buildNativeAgentInstructions(agent) {
|
|
104
|
+
return [
|
|
105
|
+
agent.displayName ? `Display name: ${agent.displayName}` : undefined,
|
|
106
|
+
`Goal: ${agent.goal}`,
|
|
107
|
+
agent.backstory ? `Backstory: ${agent.backstory}` : undefined,
|
|
108
|
+
agent.instructionProfiles?.length ? `Instruction profiles: ${agent.instructionProfiles.join(", ")}` : undefined,
|
|
109
|
+
agent.taskAffinity?.length ? `Task affinity: ${agent.taskAffinity.join(", ")}` : undefined,
|
|
110
|
+
agent.instructions,
|
|
111
|
+
].filter((line) => Boolean(line)).join("\n\n");
|
|
112
|
+
}
|
|
113
|
+
function nativeNicknameCandidates(agent) {
|
|
114
|
+
const nicknames = new Set();
|
|
115
|
+
if (agent.displayName) {
|
|
116
|
+
nicknames.add(agent.displayName);
|
|
117
|
+
}
|
|
118
|
+
for (const nickname of agent.nicknameCandidates ?? []) {
|
|
119
|
+
nicknames.add(nickname);
|
|
120
|
+
}
|
|
121
|
+
return [...nicknames];
|
|
122
|
+
}
|
|
123
|
+
export async function syncNativeAgentProjections(projectPath, options = {}) {
|
|
124
|
+
const errors = [];
|
|
125
|
+
let synced = 0;
|
|
126
|
+
const kilnDir = join(projectPath, ".kiln");
|
|
127
|
+
let installState = readNativeProjectionInstallState(kilnDir);
|
|
128
|
+
let agents;
|
|
129
|
+
try {
|
|
130
|
+
agents = await loadAgentDefinitions(projectPath);
|
|
131
|
+
}
|
|
132
|
+
catch (error) {
|
|
133
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
134
|
+
return {
|
|
135
|
+
claude: false,
|
|
136
|
+
codex: false,
|
|
137
|
+
opencode: false,
|
|
138
|
+
synced: 0,
|
|
139
|
+
errors: [`Agent load failed: ${message}`],
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
if (agents.length === 0) {
|
|
143
|
+
return { claude: true, codex: true, opencode: true, synced: 0, errors: [] };
|
|
144
|
+
}
|
|
145
|
+
const targets = [
|
|
146
|
+
{
|
|
147
|
+
key: "claude",
|
|
148
|
+
label: "Claude Code",
|
|
149
|
+
dir: join(os.homedir(), ".claude", "agents"),
|
|
150
|
+
extension: "md",
|
|
151
|
+
render: agentToClaudeMd,
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
key: "codex",
|
|
155
|
+
label: "Codex",
|
|
156
|
+
dir: join(os.homedir(), ".codex", "agents"),
|
|
157
|
+
extension: "toml",
|
|
158
|
+
render: agentToCodexToml,
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
key: "opencode",
|
|
162
|
+
label: "OpenCode",
|
|
163
|
+
dir: join(os.homedir(), ".config", "opencode", "agents"),
|
|
164
|
+
extension: "md",
|
|
165
|
+
render: agentToOpenCodeMd,
|
|
166
|
+
},
|
|
167
|
+
];
|
|
168
|
+
let claude = true;
|
|
169
|
+
let codex = true;
|
|
170
|
+
let opencode = true;
|
|
171
|
+
const setTargetFailed = (targetKey) => {
|
|
172
|
+
if (targetKey === "claude") {
|
|
173
|
+
claude = false;
|
|
174
|
+
return;
|
|
175
|
+
}
|
|
176
|
+
if (targetKey === "codex") {
|
|
177
|
+
codex = false;
|
|
178
|
+
return;
|
|
179
|
+
}
|
|
180
|
+
opencode = false;
|
|
181
|
+
};
|
|
182
|
+
for (const target of targets.filter((target) => !isNativeProjectionHarnessDisabled(options, target.key))) {
|
|
183
|
+
try {
|
|
184
|
+
mkdirSync(target.dir, { recursive: true });
|
|
185
|
+
}
|
|
186
|
+
catch (error) {
|
|
187
|
+
setTargetFailed(target.key);
|
|
188
|
+
errors.push(`${target.label} mkdir failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
189
|
+
}
|
|
190
|
+
for (const agent of agents) {
|
|
191
|
+
const result = syncAgentFile(agent, target, kilnDir, installState, options);
|
|
192
|
+
if (!result.ok) {
|
|
193
|
+
setTargetFailed(target.key);
|
|
194
|
+
errors.push(`${target.label} agent "${agent.name}" failed: ${result.error ?? "unknown error"}`);
|
|
195
|
+
continue;
|
|
196
|
+
}
|
|
197
|
+
if (result.snapshot) {
|
|
198
|
+
installState = upsertNativeProjectionTargetState(installState, result.snapshot);
|
|
199
|
+
}
|
|
200
|
+
synced += 1;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
writeNativeProjectionInstallState(kilnDir, installState);
|
|
204
|
+
return { claude, codex, opencode, synced, errors };
|
|
205
|
+
}
|
|
206
|
+
function syncAgentFile(agent, target, kilnDir, installState, options) {
|
|
207
|
+
const filePath = join(target.dir, `${agent.name}.${target.extension}`);
|
|
208
|
+
const targetId = `${target.key}-agent:${agent.name}`;
|
|
209
|
+
try {
|
|
210
|
+
if (existsSync(filePath)) {
|
|
211
|
+
const drift = detectNativeProjectionFileDrift({
|
|
212
|
+
targetId,
|
|
213
|
+
state: installState,
|
|
214
|
+
currentContent: readFileSync(filePath, "utf-8"),
|
|
215
|
+
});
|
|
216
|
+
if (drift && !options.force) {
|
|
217
|
+
return {
|
|
218
|
+
ok: false,
|
|
219
|
+
error: `managed file drift detected: ${drift.driftedFields.join(", ")}`,
|
|
220
|
+
};
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
const content = target.render(agent);
|
|
224
|
+
backupNativeProjectionFile({ kilnDir, targetId, filePath });
|
|
225
|
+
writeFileSync(filePath, content, "utf-8");
|
|
226
|
+
return {
|
|
227
|
+
ok: true,
|
|
228
|
+
snapshot: createNativeProjectionFileSnapshot({
|
|
229
|
+
targetId,
|
|
230
|
+
filePath,
|
|
231
|
+
content,
|
|
232
|
+
}),
|
|
233
|
+
};
|
|
234
|
+
}
|
|
235
|
+
catch (error) {
|
|
236
|
+
return {
|
|
237
|
+
ok: false,
|
|
238
|
+
error: error instanceof Error ? error.message : String(error),
|
|
239
|
+
};
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
//# sourceMappingURL=native-agent-projection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"native-agent-projection.js","sourceRoot":"","sources":["../../src/config/native-agent-projection.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type NativeProjectionSyncOptions } from "./native-projection-policy.js";
|
|
2
|
+
export interface NativeHookProjectionResult {
|
|
3
|
+
claudeHook: boolean;
|
|
4
|
+
codexHook: boolean;
|
|
5
|
+
skippedWindows: boolean;
|
|
6
|
+
errors: string[];
|
|
7
|
+
}
|
|
8
|
+
export interface NativeHookProjectionOptions extends NativeProjectionSyncOptions {
|
|
9
|
+
}
|
|
10
|
+
export declare function syncNativeHookProjections(projectPath: string, kilnDir: string, options?: NativeHookProjectionOptions): Promise<NativeHookProjectionResult>;
|
|
11
|
+
//# sourceMappingURL=native-hook-projection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"native-hook-projection.d.ts","sourceRoot":"","sources":["../../src/config/native-hook-projection.ts"],"names":[],"mappings":"AAcA,OAAO,EAEL,KAAK,2BAA2B,EACjC,MAAM,+BAA+B,CAAC;AAmBvC,MAAM,WAAW,0BAA0B;IACzC,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,OAAO,CAAC;IACxB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,2BAA4B,SAAQ,2BAA2B;CAAG;AAcnF,wBAAsB,yBAAyB,CAC7C,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,2BAAgC,GACxC,OAAO,CAAC,0BAA0B,CAAC,CAsDrC"}
|