@kindgi/cli 0.1.4-rc.5 → 0.1.5-rc.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 +16 -10
- package/dist/build/defaults.d.ts +3 -1
- package/dist/build/defaults.d.ts.map +1 -1
- package/dist/build/defaults.js +44 -1
- package/dist/build/defaults.js.map +1 -1
- package/dist/build/java-image.d.ts +31 -0
- package/dist/build/java-image.d.ts.map +1 -0
- package/dist/build/java-image.js +146 -0
- package/dist/build/java-image.js.map +1 -0
- package/dist/build/pack-root.d.ts +1 -31
- package/dist/build/pack-root.d.ts.map +1 -1
- package/dist/build/pack-root.js +22 -2
- package/dist/build/pack-root.js.map +1 -1
- package/dist/build/runners.d.ts +44 -0
- package/dist/build/runners.d.ts.map +1 -1
- package/dist/build/scala-image.d.ts +21 -0
- package/dist/build/scala-image.d.ts.map +1 -0
- package/dist/build/scala-image.js +150 -0
- package/dist/build/scala-image.js.map +1 -0
- package/dist/cli-pin.d.ts +16 -0
- package/dist/cli-pin.d.ts.map +1 -0
- package/dist/cli-pin.js +66 -0
- package/dist/cli-pin.js.map +1 -0
- package/dist/commands/agents.d.ts.map +1 -1
- package/dist/commands/agents.js +9 -8
- package/dist/commands/agents.js.map +1 -1
- package/dist/commands/approvals.d.ts.map +1 -1
- package/dist/commands/approvals.js +30 -4
- package/dist/commands/approvals.js.map +1 -1
- package/dist/commands/artifacts.d.ts.map +1 -1
- package/dist/commands/artifacts.js +100 -37
- package/dist/commands/artifacts.js.map +1 -1
- package/dist/commands/auth.js +2 -2
- package/dist/commands/blocks.d.ts.map +1 -1
- package/dist/commands/blocks.js +5 -4
- package/dist/commands/blocks.js.map +1 -1
- package/dist/commands/build.d.ts +10 -2
- package/dist/commands/build.d.ts.map +1 -1
- package/dist/commands/build.js +109 -16
- package/dist/commands/build.js.map +1 -1
- package/dist/commands/capabilities.d.ts.map +1 -1
- package/dist/commands/capabilities.js +37 -10
- package/dist/commands/capabilities.js.map +1 -1
- package/dist/commands/console.d.ts +21 -0
- package/dist/commands/console.d.ts.map +1 -0
- package/dist/commands/console.js +87 -0
- package/dist/commands/console.js.map +1 -0
- package/dist/commands/conversations.d.ts.map +1 -1
- package/dist/commands/conversations.js +13 -2
- package/dist/commands/conversations.js.map +1 -1
- package/dist/commands/deploy.d.ts.map +1 -1
- package/dist/commands/deploy.js +2 -2
- package/dist/commands/deploy.js.map +1 -1
- package/dist/commands/dev.d.ts +11 -0
- package/dist/commands/dev.d.ts.map +1 -1
- package/dist/commands/dev.js +211 -39
- package/dist/commands/dev.js.map +1 -1
- package/dist/commands/doctor.d.ts +18 -5
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +421 -21
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/env-scoped.d.ts +44 -0
- package/dist/commands/env-scoped.d.ts.map +1 -0
- package/dist/commands/env-scoped.js +222 -0
- package/dist/commands/env-scoped.js.map +1 -0
- package/dist/commands/env.d.ts.map +1 -1
- package/dist/commands/env.js +85 -123
- package/dist/commands/env.js.map +1 -1
- package/dist/commands/eval-runs.d.ts +9 -0
- package/dist/commands/eval-runs.d.ts.map +1 -1
- package/dist/commands/eval-runs.js +20 -19
- package/dist/commands/eval-runs.js.map +1 -1
- package/dist/commands/eval-suites.d.ts.map +1 -1
- package/dist/commands/eval-suites.js +16 -8
- package/dist/commands/eval-suites.js.map +1 -1
- package/dist/commands/exports.d.ts +3 -0
- package/dist/commands/exports.d.ts.map +1 -0
- package/dist/commands/exports.js +82 -0
- package/dist/commands/exports.js.map +1 -0
- package/dist/commands/feedback.d.ts.map +1 -1
- package/dist/commands/feedback.js +6 -5
- package/dist/commands/feedback.js.map +1 -1
- package/dist/commands/flows.d.ts.map +1 -1
- package/dist/commands/flows.js +2 -1
- package/dist/commands/flows.js.map +1 -1
- package/dist/commands/gate-policies.d.ts.map +1 -1
- package/dist/commands/gate-policies.js +2 -1
- package/dist/commands/gate-policies.js.map +1 -1
- package/dist/commands/guardrails.d.ts.map +1 -1
- package/dist/commands/guardrails.js +3 -2
- package/dist/commands/guardrails.js.map +1 -1
- package/dist/commands/helpers.js +5 -5
- package/dist/commands/helpers.js.map +1 -1
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +14 -0
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/init.d.ts +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +254 -18
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/judge-classes.d.ts.map +1 -1
- package/dist/commands/judge-classes.js +11 -10
- package/dist/commands/judge-classes.js.map +1 -1
- package/dist/commands/judgments.d.ts.map +1 -1
- package/dist/commands/judgments.js +7 -6
- package/dist/commands/judgments.js.map +1 -1
- package/dist/commands/key.js +4 -4
- package/dist/commands/memory.d.ts.map +1 -1
- package/dist/commands/memory.js +277 -25
- package/dist/commands/memory.js.map +1 -1
- package/dist/commands/people.d.ts +3 -0
- package/dist/commands/people.d.ts.map +1 -0
- package/dist/commands/people.js +166 -0
- package/dist/commands/people.js.map +1 -0
- package/dist/commands/proposals.d.ts.map +1 -1
- package/dist/commands/proposals.js +390 -69
- package/dist/commands/proposals.js.map +1 -1
- package/dist/commands/provenance.d.ts.map +1 -1
- package/dist/commands/provenance.js +6 -7
- package/dist/commands/provenance.js.map +1 -1
- package/dist/commands/providers.d.ts.map +1 -1
- package/dist/commands/providers.js +46 -7
- package/dist/commands/providers.js.map +1 -1
- package/dist/commands/reviewers.d.ts.map +1 -1
- package/dist/commands/reviewers.js +3 -2
- package/dist/commands/reviewers.js.map +1 -1
- package/dist/commands/runs.d.ts.map +1 -1
- package/dist/commands/runs.js +24 -14
- package/dist/commands/runs.js.map +1 -1
- package/dist/commands/schedules.d.ts +3 -0
- package/dist/commands/schedules.d.ts.map +1 -0
- package/dist/commands/schedules.js +275 -0
- package/dist/commands/schedules.js.map +1 -0
- package/dist/commands/secrets.d.ts.map +1 -1
- package/dist/commands/secrets.js +10 -11
- package/dist/commands/secrets.js.map +1 -1
- package/dist/commands/service-accounts.d.ts +3 -0
- package/dist/commands/service-accounts.d.ts.map +1 -0
- package/dist/commands/service-accounts.js +175 -0
- package/dist/commands/service-accounts.js.map +1 -0
- package/dist/commands/skills.d.ts +1 -1
- package/dist/commands/skills.d.ts.map +1 -1
- package/dist/commands/skills.js +11 -4
- package/dist/commands/skills.js.map +1 -1
- package/dist/commands/sso.d.ts +6 -0
- package/dist/commands/sso.d.ts.map +1 -0
- package/dist/commands/sso.js +318 -0
- package/dist/commands/sso.js.map +1 -0
- package/dist/commands/tokens.d.ts +11 -0
- package/dist/commands/tokens.d.ts.map +1 -1
- package/dist/commands/tokens.js +144 -11
- package/dist/commands/tokens.js.map +1 -1
- package/dist/commands/tools.d.ts.map +1 -1
- package/dist/commands/tools.js +4 -3
- package/dist/commands/tools.js.map +1 -1
- package/dist/commands/unwired.d.ts.map +1 -1
- package/dist/commands/unwired.js +1 -30
- package/dist/commands/unwired.js.map +1 -1
- package/dist/commands/upgrade.d.ts +11 -0
- package/dist/commands/upgrade.d.ts.map +1 -0
- package/dist/commands/upgrade.js +160 -0
- package/dist/commands/upgrade.js.map +1 -0
- package/dist/context.d.ts +7 -0
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +1 -0
- package/dist/context.js.map +1 -1
- package/dist/dev/defaults.d.ts +28 -11
- package/dist/dev/defaults.d.ts.map +1 -1
- package/dist/dev/defaults.js +114 -35
- package/dist/dev/defaults.js.map +1 -1
- package/dist/dev/google-credentials.d.ts +50 -0
- package/dist/dev/google-credentials.d.ts.map +1 -0
- package/dist/dev/google-credentials.js +157 -0
- package/dist/dev/google-credentials.js.map +1 -0
- package/dist/dev/java-builder.d.ts +56 -0
- package/dist/dev/java-builder.d.ts.map +1 -0
- package/dist/dev/java-builder.js +204 -0
- package/dist/dev/java-builder.js.map +1 -0
- package/dist/dev/jvm-run-files.d.ts +29 -0
- package/dist/dev/jvm-run-files.d.ts.map +1 -0
- package/dist/dev/jvm-run-files.js +94 -0
- package/dist/dev/jvm-run-files.js.map +1 -0
- package/dist/dev/lines.d.ts +13 -0
- package/dist/dev/lines.d.ts.map +1 -0
- package/dist/dev/lines.js +24 -0
- package/dist/dev/lines.js.map +1 -0
- package/dist/dev/log-view.d.ts +116 -0
- package/dist/dev/log-view.d.ts.map +1 -0
- package/dist/dev/log-view.js +233 -0
- package/dist/dev/log-view.js.map +1 -0
- package/dist/dev/pack-code.d.ts +79 -4
- package/dist/dev/pack-code.d.ts.map +1 -1
- package/dist/dev/pack-code.js +262 -3
- package/dist/dev/pack-code.js.map +1 -1
- package/dist/dev/pack-env.d.ts.map +1 -1
- package/dist/dev/pack-env.js +4 -0
- package/dist/dev/pack-env.js.map +1 -1
- package/dist/dev/pack-service.d.ts +11 -1
- package/dist/dev/pack-service.d.ts.map +1 -1
- package/dist/dev/pack-service.js +56 -20
- package/dist/dev/pack-service.js.map +1 -1
- package/dist/dev/paths.d.ts +6 -0
- package/dist/dev/paths.d.ts.map +1 -1
- package/dist/dev/paths.js +8 -0
- package/dist/dev/paths.js.map +1 -1
- package/dist/dev/project-database.js +1 -1
- package/dist/dev/project-database.js.map +1 -1
- package/dist/dev/runners.d.ts +35 -9
- package/dist/dev/runners.d.ts.map +1 -1
- package/dist/dev/runtime-container.d.ts +10 -2
- package/dist/dev/runtime-container.d.ts.map +1 -1
- package/dist/dev/runtime-container.js +48 -20
- package/dist/dev/runtime-container.js.map +1 -1
- package/dist/dev/runtime-env.d.ts +10 -0
- package/dist/dev/runtime-env.d.ts.map +1 -1
- package/dist/dev/runtime-env.js +8 -4
- package/dist/dev/runtime-env.js.map +1 -1
- package/dist/dev/runtime-image.d.ts +1 -1
- package/dist/dev/runtime-image.js +1 -1
- package/dist/dev/scala-builder.d.ts +72 -0
- package/dist/dev/scala-builder.d.ts.map +1 -0
- package/dist/dev/scala-builder.js +347 -0
- package/dist/dev/scala-builder.js.map +1 -0
- package/dist/env/project-env.d.ts.map +1 -1
- package/dist/env/project-env.js +3 -1
- package/dist/env/project-env.js.map +1 -1
- package/dist/errors.d.ts +9 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +15 -0
- package/dist/errors.js.map +1 -1
- package/dist/help.d.ts +14 -0
- package/dist/help.d.ts.map +1 -1
- package/dist/help.js +55 -0
- package/dist/help.js.map +1 -1
- package/dist/init/dependency-specs.d.ts +26 -0
- package/dist/init/dependency-specs.d.ts.map +1 -1
- package/dist/init/dependency-specs.js +38 -0
- package/dist/init/dependency-specs.js.map +1 -1
- package/dist/init/java-augment.d.ts +24 -0
- package/dist/init/java-augment.d.ts.map +1 -0
- package/dist/init/java-augment.js +198 -0
- package/dist/init/java-augment.js.map +1 -0
- package/dist/init/mode-detect.d.ts +2 -2
- package/dist/init/mode-detect.d.ts.map +1 -1
- package/dist/init/mode-detect.js +12 -1
- package/dist/init/mode-detect.js.map +1 -1
- package/dist/init/scala-augment.d.ts +23 -0
- package/dist/init/scala-augment.d.ts.map +1 -0
- package/dist/init/scala-augment.js +213 -0
- package/dist/init/scala-augment.js.map +1 -0
- package/dist/init/template-files.d.ts +40 -2
- package/dist/init/template-files.d.ts.map +1 -1
- package/dist/init/template-files.js +56 -5
- package/dist/init/template-files.js.map +1 -1
- package/dist/main.d.ts +3 -0
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +30 -4
- package/dist/main.js.map +1 -1
- package/dist/open-url.d.ts +15 -0
- package/dist/open-url.d.ts.map +1 -0
- package/dist/open-url.js +41 -0
- package/dist/open-url.js.map +1 -0
- package/dist/package-manager.d.ts +10 -3
- package/dist/package-manager.d.ts.map +1 -1
- package/dist/package-manager.js +19 -1
- package/dist/package-manager.js.map +1 -1
- package/dist/providers/preset-loader.d.ts.map +1 -1
- package/dist/providers/preset-loader.js +9 -1
- package/dist/providers/preset-loader.js.map +1 -1
- package/dist/providers/presets/anthropic.json +35 -4
- package/dist/providers/presets/gemini-api.json +3 -0
- package/dist/providers/presets/gemini.json +3 -0
- package/dist/providers/presets/groq.json +1 -0
- package/dist/providers/presets/openai.json +36 -4
- package/dist/providers/presets/openrouter.json +6 -2
- package/dist/sdk-skills/kindgi-authoring-agents/SKILL.md +28 -4
- package/dist/sdk-skills/kindgi-authoring-flows/SKILL.md +1 -1
- package/dist/sdk-skills/kindgi-authoring-guardrails/SKILL.md +47 -3
- package/dist/sdk-skills/kindgi-authoring-mcp-servers/SKILL.md +7 -5
- package/dist/sdk-skills/kindgi-authoring-providers/SKILL.md +81 -52
- package/dist/sdk-skills/kindgi-authoring-tools/SKILL.md +27 -1
- package/dist/sdk-skills/kindgi-framework-feedback/SKILL.md +5 -4
- package/dist/sdk-skills/kindgi-getting-started/SKILL.md +1 -1
- package/dist/sdk-skills/kindgi-java-authoring-agents/SKILL.md +220 -0
- package/dist/sdk-skills/kindgi-java-authoring-flows/SKILL.md +390 -0
- package/dist/sdk-skills/kindgi-java-authoring-guardrails/SKILL.md +209 -0
- package/dist/sdk-skills/kindgi-java-authoring-tools/SKILL.md +334 -0
- package/dist/sdk-skills/kindgi-java-getting-started/SKILL.md +270 -0
- package/dist/sdk-skills/kindgi-python-authoring-agents/SKILL.md +23 -5
- package/dist/sdk-skills/kindgi-python-authoring-flows/SKILL.md +1 -1
- package/dist/sdk-skills/kindgi-python-authoring-guardrails/SKILL.md +10 -3
- package/dist/sdk-skills/kindgi-python-authoring-tools/SKILL.md +36 -5
- package/dist/sdk-skills/kindgi-python-getting-started/SKILL.md +2 -2
- package/dist/sdk-skills/kindgi-scala-authoring-agents/SKILL.md +217 -0
- package/dist/sdk-skills/kindgi-scala-authoring-flows/SKILL.md +357 -0
- package/dist/sdk-skills/kindgi-scala-authoring-guardrails/SKILL.md +199 -0
- package/dist/sdk-skills/kindgi-scala-authoring-tools/SKILL.md +302 -0
- package/dist/sdk-skills/kindgi-scala-getting-started/SKILL.md +302 -0
- package/dist/templates/java/.mvn/wrapper/maven-wrapper.properties +3 -0
- package/dist/templates/java/AGENTS.md +31 -0
- package/dist/templates/java/README.md.tmpl +69 -0
- package/dist/templates/java/gitignore +9 -0
- package/dist/templates/java/kindgi.config.json.tmpl +8 -0
- package/dist/templates/java/kindgiw +33 -0
- package/dist/templates/java/kindgiw.cmd +28 -0
- package/dist/templates/java/mvnw +295 -0
- package/dist/templates/java/pom.xml.tmpl +65 -0
- package/dist/templates/java/src/main/java/__PACKAGE__/agents/EchoAgent.java.tmpl +27 -0
- package/dist/templates/java/src/main/java/__PACKAGE__/flows/EchoFlow.java.tmpl +18 -0
- package/dist/templates/java/src/main/java/__PACKAGE__/guardrails/ResponseNotEmpty.java.tmpl +28 -0
- package/dist/templates/java/src/main/java/__PACKAGE__/tools/Echo.java.tmpl +22 -0
- package/dist/templates/java/src/main/java/__PACKAGE__/tools/Greet.java.tmpl +23 -0
- package/dist/templates/java/src/test/java/__PACKAGE__/ToolsTest.java.tmpl +30 -0
- package/dist/templates/minimal/README.md.tmpl +8 -14
- package/dist/templates/python/README.md.tmpl +6 -6
- package/dist/templates/sample/README.md.tmpl +7 -13
- package/dist/templates/scala/AGENTS.md +32 -0
- package/dist/templates/scala/README.md.tmpl +75 -0
- package/dist/templates/scala/build.sbt.tmpl +16 -0
- package/dist/templates/scala/gitignore +13 -0
- package/dist/templates/scala/kindgi.config.json.tmpl +8 -0
- package/dist/templates/scala/project/build.properties +1 -0
- package/dist/templates/scala/src/main/scala/__PACKAGE__/agents/EchoAgent.scala.tmpl +23 -0
- package/dist/templates/scala/src/main/scala/__PACKAGE__/flows/EchoFlow.scala.tmpl +16 -0
- package/dist/templates/scala/src/main/scala/__PACKAGE__/guardrails/ResponseNotEmpty.scala.tmpl +21 -0
- package/dist/templates/scala/src/main/scala/__PACKAGE__/tools/Echo.scala.tmpl +16 -0
- package/dist/templates/scala/src/main/scala/__PACKAGE__/tools/Greet.scala.tmpl +17 -0
- package/dist/templates/scala/src/test/scala/__PACKAGE__/ToolsSuite.scala.tmpl +23 -0
- package/package.json +13 -12
|
@@ -170,4 +170,42 @@ export async function resolveKindgiPythonSource(input = {}) {
|
|
|
170
170
|
}
|
|
171
171
|
return { kind: 'local-checkout', path: python };
|
|
172
172
|
}
|
|
173
|
+
/** What a Java or Scala pack's "preview" means, said wherever one is made. */
|
|
174
|
+
export const JVM_PREVIEW = 'Java and Scala support is in preview: tested and supported, but the API may still change in 0.1.6 without the usual deprecation period.';
|
|
175
|
+
/**
|
|
176
|
+
* The resolver an sbt build needs for kindgi-pack: none from Maven Central;
|
|
177
|
+
* the local Maven repository for a checkout's (`./mvnw install` puts it there).
|
|
178
|
+
*/
|
|
179
|
+
export function sbtLocalResolver(source) {
|
|
180
|
+
return source.kind === 'local-checkout' ? 'resolvers += Resolver.mavenLocal' : undefined;
|
|
181
|
+
}
|
|
182
|
+
export async function resolveKindgiJavaSource(input = {}) {
|
|
183
|
+
const realpath = input.realpath ?? fsRealpath;
|
|
184
|
+
const exists = input.exists ?? pathExists;
|
|
185
|
+
const cli = input.cli ?? resolveCliPackage();
|
|
186
|
+
if (cli === undefined) {
|
|
187
|
+
return {
|
|
188
|
+
kind: 'error',
|
|
189
|
+
message: 'Cannot locate the @kindgi/cli package.json — broken install.',
|
|
190
|
+
};
|
|
191
|
+
}
|
|
192
|
+
if ((await realpath(cli.root)).split(sep).includes('node_modules')) {
|
|
193
|
+
return { kind: 'published', version: cli.version };
|
|
194
|
+
}
|
|
195
|
+
const sdkRootRaw = input.sdkRoot ?? resolveSdkPackageRoot();
|
|
196
|
+
if (sdkRootRaw === undefined) {
|
|
197
|
+
return {
|
|
198
|
+
kind: 'error',
|
|
199
|
+
message: 'Cannot resolve @kindgi/sdk from the CLI checkout — run the checkout install first.',
|
|
200
|
+
};
|
|
201
|
+
}
|
|
202
|
+
const java = join(await realpath(sdkRootRaw), '..', '..', 'sdks', 'java');
|
|
203
|
+
if (!(await exists(join(java, 'pom.xml')))) {
|
|
204
|
+
return {
|
|
205
|
+
kind: 'error',
|
|
206
|
+
message: `No Java SDK at ${java} — the Kindgi checkout is incomplete.`,
|
|
207
|
+
};
|
|
208
|
+
}
|
|
209
|
+
return { kind: 'local-checkout', path: java, version: cli.version };
|
|
210
|
+
}
|
|
173
211
|
//# sourceMappingURL=dependency-specs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dependency-specs.js","sourceRoot":"","sources":["../../src/init/dependency-specs.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dependency-specs.js","sourceRoot":"","sources":["../../src/init/dependency-specs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { CommandResult } from '../commands/types.js';
|
|
2
|
+
import { type KindgiJavaSource } from './dependency-specs.js';
|
|
3
|
+
export interface RunInitJavaAugmentInputs {
|
|
4
|
+
readonly targetDir: string;
|
|
5
|
+
/** Where the java template's `kindgiw` wrappers are. */
|
|
6
|
+
readonly templatesRoot: string;
|
|
7
|
+
readonly skillsRoot?: string;
|
|
8
|
+
readonly packIdOverride?: string;
|
|
9
|
+
/** Overwrite an existing `kindgi.config.json` and the skills. */
|
|
10
|
+
readonly force: boolean;
|
|
11
|
+
/** Test seam: where kindgi-pack comes from. */
|
|
12
|
+
readonly javaSource?: KindgiJavaSource;
|
|
13
|
+
}
|
|
14
|
+
/** The pom's own `artifactId` and `version` (not its parent's). */
|
|
15
|
+
export declare function readPomIdentity(pom: string): {
|
|
16
|
+
readonly artifactId?: string;
|
|
17
|
+
readonly version?: string;
|
|
18
|
+
};
|
|
19
|
+
/** An artifactId as a pack id: lowercase, hyphens for anything else, starting with a letter. */
|
|
20
|
+
export declare function packIdOf(artifactId: string): string;
|
|
21
|
+
/** The dependency an app's pom.xml adds for kindgi-pack. */
|
|
22
|
+
export declare function kindgiPackDependency(version: string): string;
|
|
23
|
+
export declare function runInitJavaAugment(inputs: RunInitJavaAugmentInputs): Promise<CommandResult>;
|
|
24
|
+
//# sourceMappingURL=java-augment.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"java-augment.d.ts","sourceRoot":"","sources":["../../src/init/java-augment.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAI1D,OAAO,EAAe,KAAK,gBAAgB,EAA2B,MAAM,uBAAuB,CAAC;AAMpG,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,wDAAwD;IACxD,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,iEAAiE;IACjE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,+CAA+C;IAC/C,QAAQ,CAAC,UAAU,CAAC,EAAE,gBAAgB,CAAC;CACxC;AAED,mEAAmE;AACnE,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG;IAC5C,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B,CASA;AAED,gGAAgG;AAChG,wBAAgB,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAMnD;AAED,4DAA4D;AAC5D,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAQ5D;AAED,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC,aAAa,CAAC,CAyIjG"}
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
// Copyright (C) 2026 Kindgi Inc.
|
|
3
|
+
/**
|
|
4
|
+
* `kindgi init` in an existing Maven app (a `pom.xml`, no `package.json` or
|
|
5
|
+
* `pyproject.toml`, or `--template=java`): the app becomes a Java pack.
|
|
6
|
+
*
|
|
7
|
+
* - `kindgi.config.json` — the pack's id (the app's `artifactId`,
|
|
8
|
+
* normalized, or `--pack-id`) and version, with discovery under any
|
|
9
|
+
* `kindgi` package (`src/main/java/**\/kindgi/tools/**\/*.java`, …), so the
|
|
10
|
+
* app's own `tools` packages are never swept in;
|
|
11
|
+
* - the Kindgi skills for Java packs, and `.gitignore` entries for the dev
|
|
12
|
+
* token and env files.
|
|
13
|
+
*
|
|
14
|
+
* `pom.xml` isn't edited: the next steps print the `com.kindgi:kindgi-pack`
|
|
15
|
+
* dependency to add (an app's pom has its own structure — a parent, BOMs,
|
|
16
|
+
* profiles — that an edit could get wrong).
|
|
17
|
+
*/
|
|
18
|
+
import { chmod, copyFile, readFile, stat, writeFile } from 'node:fs/promises';
|
|
19
|
+
import { join } from 'node:path';
|
|
20
|
+
import { PACK_ID_REGEX } from '../commands/init.js';
|
|
21
|
+
import { syncSkills } from '../commands/skills.js';
|
|
22
|
+
import { renderJson } from '../output.js';
|
|
23
|
+
import { binDisplay } from '../package-manager.js';
|
|
24
|
+
import { CLI_VERSION } from '../version-info.js';
|
|
25
|
+
import { JVM_PREVIEW, resolveKindgiJavaSource } from './dependency-specs.js';
|
|
26
|
+
import { patchGitignore } from './gitignore-patcher.js';
|
|
27
|
+
const DEFAULT_VERSION = '0.1.0';
|
|
28
|
+
const FOLDERS = ['tools', 'guardrails', 'agents', 'flows'];
|
|
29
|
+
/** The pom's own `artifactId` and `version` (not its parent's). */
|
|
30
|
+
export function readPomIdentity(pom) {
|
|
31
|
+
// The parent block names the parent's coordinates: drop it first.
|
|
32
|
+
const own = pom.replace(/<parent>[\s\S]*?<\/parent>/, '').replace(/<dependencies>[\s\S]*$/, '');
|
|
33
|
+
const artifactId = /<artifactId>\s*([^<\s]+)\s*<\/artifactId>/.exec(own)?.[1];
|
|
34
|
+
const version = /<version>\s*([^<\s]+)\s*<\/version>/.exec(own)?.[1];
|
|
35
|
+
return {
|
|
36
|
+
...(artifactId !== undefined && { artifactId }),
|
|
37
|
+
...(version !== undefined && !version.includes('${') && { version }),
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
/** An artifactId as a pack id: lowercase, hyphens for anything else, starting with a letter. */
|
|
41
|
+
export function packIdOf(artifactId) {
|
|
42
|
+
return artifactId
|
|
43
|
+
.toLowerCase()
|
|
44
|
+
.replace(/[^a-z0-9.-]+/g, '-')
|
|
45
|
+
.replace(/^[^a-z]+/, '')
|
|
46
|
+
.replace(/-+$/, '');
|
|
47
|
+
}
|
|
48
|
+
/** The dependency an app's pom.xml adds for kindgi-pack. */
|
|
49
|
+
export function kindgiPackDependency(version) {
|
|
50
|
+
return [
|
|
51
|
+
'<dependency>',
|
|
52
|
+
' <groupId>com.kindgi</groupId>',
|
|
53
|
+
' <artifactId>kindgi-pack</artifactId>',
|
|
54
|
+
` <version>${version}</version>`,
|
|
55
|
+
'</dependency>',
|
|
56
|
+
].join('\n');
|
|
57
|
+
}
|
|
58
|
+
export async function runInitJavaAugment(inputs) {
|
|
59
|
+
const fail = (message) => ({
|
|
60
|
+
kind: 'error',
|
|
61
|
+
stderr: `${message}\n`,
|
|
62
|
+
exitCode: 1,
|
|
63
|
+
});
|
|
64
|
+
const pomPath = join(inputs.targetDir, 'pom.xml');
|
|
65
|
+
let pom;
|
|
66
|
+
try {
|
|
67
|
+
pom = await readFile(pomPath, 'utf8');
|
|
68
|
+
}
|
|
69
|
+
catch {
|
|
70
|
+
return fail(`No pom.xml at ${inputs.targetDir}. Adding Kindgi to a Java app works with Maven; for a separate Java pack: kindgi init <pack-name> --template=java --new-repo`);
|
|
71
|
+
}
|
|
72
|
+
const configPath = join(inputs.targetDir, 'kindgi.config.json');
|
|
73
|
+
if ((await exists(configPath)) && !inputs.force) {
|
|
74
|
+
return fail(`${configPath} already exists — this app is a Kindgi pack. Run \`${binDisplay('kindgiw', 'kindgi', ['dev'])}\` here (or --force to write it again).`);
|
|
75
|
+
}
|
|
76
|
+
const identity = readPomIdentity(pom);
|
|
77
|
+
let packId;
|
|
78
|
+
if (inputs.packIdOverride !== undefined && inputs.packIdOverride !== '') {
|
|
79
|
+
if (!PACK_ID_REGEX.test(inputs.packIdOverride)) {
|
|
80
|
+
return fail(`Invalid --pack-id: ${inputs.packIdOverride}. Must match ${PACK_ID_REGEX.source}.`);
|
|
81
|
+
}
|
|
82
|
+
packId = inputs.packIdOverride;
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
const candidate = identity.artifactId === undefined ? '' : packIdOf(identity.artifactId);
|
|
86
|
+
if (!PACK_ID_REGEX.test(candidate)) {
|
|
87
|
+
return fail(identity.artifactId === undefined
|
|
88
|
+
? 'pom.xml has no <artifactId> to name the pack. Pass `--pack-id=<id>`.'
|
|
89
|
+
: `Cannot derive a pack id from the artifactId "${identity.artifactId}" (candidate "${candidate}"); pack ids match ${PACK_ID_REGEX.source}. Pass \`--pack-id=<id>\`.`);
|
|
90
|
+
}
|
|
91
|
+
packId = candidate;
|
|
92
|
+
}
|
|
93
|
+
const version = identity.version ?? DEFAULT_VERSION;
|
|
94
|
+
const source = inputs.javaSource ?? (await resolveKindgiJavaSource());
|
|
95
|
+
if (source.kind === 'error')
|
|
96
|
+
return fail(source.message);
|
|
97
|
+
const created = [];
|
|
98
|
+
const skipped = [];
|
|
99
|
+
const discovery = Object.fromEntries(FOLDERS.map((folder) => [folder, `src/main/java/**/kindgi/${folder}/**/*.java`]));
|
|
100
|
+
const config = { language: 'java', cli: CLI_VERSION, pack: { id: packId, version }, discovery };
|
|
101
|
+
await writeFile(configPath, `${JSON.stringify(config, null, 2)}\n`, 'utf8');
|
|
102
|
+
created.push(configPath);
|
|
103
|
+
// The wrappers that run the pinned CLI (`cli` above).
|
|
104
|
+
for (const wrapper of ['kindgiw', 'kindgiw.cmd']) {
|
|
105
|
+
const dest = join(inputs.targetDir, wrapper);
|
|
106
|
+
if ((await exists(dest)) && !inputs.force) {
|
|
107
|
+
skipped.push(dest);
|
|
108
|
+
continue;
|
|
109
|
+
}
|
|
110
|
+
await copyFile(join(inputs.templatesRoot, 'java', wrapper), dest);
|
|
111
|
+
if (wrapper === 'kindgiw')
|
|
112
|
+
await chmod(dest, 0o755);
|
|
113
|
+
created.push(dest);
|
|
114
|
+
}
|
|
115
|
+
if (inputs.skillsRoot !== undefined) {
|
|
116
|
+
const report = await syncSkills({
|
|
117
|
+
skillsRoot: inputs.skillsRoot,
|
|
118
|
+
targetDir: inputs.targetDir,
|
|
119
|
+
language: 'java',
|
|
120
|
+
force: inputs.force,
|
|
121
|
+
dryRun: false,
|
|
122
|
+
});
|
|
123
|
+
for (const o of report.outcomes) {
|
|
124
|
+
const target = join(inputs.targetDir, '.claude', 'skills', o.name, 'SKILL.md');
|
|
125
|
+
if (o.status === 'added' || o.status === 'updated')
|
|
126
|
+
created.push(target);
|
|
127
|
+
else if (o.status !== 'local-only')
|
|
128
|
+
skipped.push(target);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
const gitignorePath = join(inputs.targetDir, '.gitignore');
|
|
132
|
+
const gitignore = await patchGitignore(gitignorePath);
|
|
133
|
+
if (gitignore.kind === 'error') {
|
|
134
|
+
return fail(`Failed to patch ${gitignorePath}: ${gitignore.message ?? 'unknown error'}`);
|
|
135
|
+
}
|
|
136
|
+
if (gitignore.kind === 'patched') {
|
|
137
|
+
created.push(`${gitignorePath} (patched: +${gitignore.appended.join(', +')})`);
|
|
138
|
+
}
|
|
139
|
+
const hasDependency = /<artifactId>\s*kindgi-pack\s*<\/artifactId>/.test(pom);
|
|
140
|
+
const nextSteps = [
|
|
141
|
+
...(source.kind === 'local-checkout'
|
|
142
|
+
? [
|
|
143
|
+
`(cd ${source.path} && ./mvnw -q install -DskipTests) # kindgi-pack ${source.version} into your local Maven repository`,
|
|
144
|
+
]
|
|
145
|
+
: []),
|
|
146
|
+
...(hasDependency
|
|
147
|
+
? []
|
|
148
|
+
: [
|
|
149
|
+
`Add to pom.xml's <dependencies>:\n${kindgiPackDependency(source.version)
|
|
150
|
+
.split('\n')
|
|
151
|
+
.map((l) => ` ${l}`)
|
|
152
|
+
.join('\n')}`,
|
|
153
|
+
]),
|
|
154
|
+
'Put tools in a `kindgi.tools` package under your own (e.g. com.acme.app.kindgi.tools), guardrails in `kindgi.guardrails`, agents in `kindgi.agents`, flows in `kindgi.flows`',
|
|
155
|
+
`${binDisplay('kindgiw', 'kindgi', ['dev'])} # the CLI the pack pins (kindgi.config.json "cli"): boots Kindgi locally + compiles and runs the pack with Maven, recompiling on save`,
|
|
156
|
+
];
|
|
157
|
+
const summary = {
|
|
158
|
+
kind: 'augment',
|
|
159
|
+
language: 'java',
|
|
160
|
+
targetDir: inputs.targetDir,
|
|
161
|
+
packId,
|
|
162
|
+
packVersion: version,
|
|
163
|
+
kindgiPack: source,
|
|
164
|
+
preview: true,
|
|
165
|
+
dependencyInPom: hasDependency,
|
|
166
|
+
created,
|
|
167
|
+
skipped,
|
|
168
|
+
nextSteps,
|
|
169
|
+
};
|
|
170
|
+
return {
|
|
171
|
+
kind: 'ok',
|
|
172
|
+
rendered: {
|
|
173
|
+
stdout: renderJson(summary, 'json').stdout,
|
|
174
|
+
stderr: [
|
|
175
|
+
'',
|
|
176
|
+
` Kindgi added to ${inputs.targetDir} (a Java pack in the app; preview).`,
|
|
177
|
+
` ${JVM_PREVIEW}`,
|
|
178
|
+
` Pack id: ${packId} Version: ${version}`,
|
|
179
|
+
` Wrote ${created.length} file${created.length === 1 ? '' : 's'}; skipped ${skipped.length}.`,
|
|
180
|
+
'',
|
|
181
|
+
' Next steps:',
|
|
182
|
+
...nextSteps.map((step) => ` ${step}`),
|
|
183
|
+
'',
|
|
184
|
+
'',
|
|
185
|
+
].join('\n'),
|
|
186
|
+
},
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
async function exists(path) {
|
|
190
|
+
try {
|
|
191
|
+
await stat(path);
|
|
192
|
+
return true;
|
|
193
|
+
}
|
|
194
|
+
catch {
|
|
195
|
+
return false;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
//# sourceMappingURL=java-augment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"java-augment.js","sourceRoot":"","sources":["../../src/init/java-augment.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,7 +10,7 @@ export interface DetectInputs {
|
|
|
10
10
|
* scaffold a standalone pack in a nested subdir.
|
|
11
11
|
*/
|
|
12
12
|
readonly newRepoFlag: boolean;
|
|
13
|
-
/** `--template=<name>` — `python` picks
|
|
13
|
+
/** `--template=<name>` — `python` or `java` picks that app when several project files exist. */
|
|
14
14
|
readonly templateFlag?: string;
|
|
15
15
|
/** Test injection point. */
|
|
16
16
|
readonly fileExists?: (path: string) => Promise<boolean>;
|
|
@@ -25,7 +25,7 @@ export type DetectResult = {
|
|
|
25
25
|
readonly mode: 'augment';
|
|
26
26
|
readonly targetDir: string;
|
|
27
27
|
/** The app's language — the pack's. */
|
|
28
|
-
readonly language: 'node' | 'python';
|
|
28
|
+
readonly language: 'node' | 'python' | 'java' | 'scala';
|
|
29
29
|
} | {
|
|
30
30
|
readonly kind: 'err';
|
|
31
31
|
readonly message: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mode-detect.d.ts","sourceRoot":"","sources":["../../src/init/mode-detect.ts"],"names":[],"mappings":"AAqCA,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;AAE3C,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,mEAAmE;IACnE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;OAIG;IACH,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,
|
|
1
|
+
{"version":3,"file":"mode-detect.d.ts","sourceRoot":"","sources":["../../src/init/mode-detect.ts"],"names":[],"mappings":"AAqCA,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;AAE3C,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,mEAAmE;IACnE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;OAIG;IACH,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,gGAAgG;IAChG,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,4BAA4B;IAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC1D;AAED,MAAM,MAAM,YAAY,GACpB;IACE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,uCAAuC;IACvC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;CACzD,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B,CAAC;AAYN,wBAAsB,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,CA8EhF"}
|
package/dist/init/mode-detect.js
CHANGED
|
@@ -84,6 +84,17 @@ export async function detectInitMode(inputs) {
|
|
|
84
84
|
: inputs.cwd;
|
|
85
85
|
const hasPackageJson = await fileExists(`${augmentTargetDir}/package.json`);
|
|
86
86
|
const hasPyproject = await fileExists(`${augmentTargetDir}/pyproject.toml`);
|
|
87
|
+
const hasPom = await fileExists(`${augmentTargetDir}/pom.xml`);
|
|
88
|
+
const hasBuildSbt = await fileExists(`${augmentTargetDir}/build.sbt`);
|
|
89
|
+
// An sbt app: alone, or picked with --template=scala.
|
|
90
|
+
if (hasBuildSbt &&
|
|
91
|
+
((!hasPackageJson && !hasPyproject && !hasPom) || inputs.templateFlag === 'scala')) {
|
|
92
|
+
return { kind: 'ok', mode: 'augment', targetDir: augmentTargetDir, language: 'scala' };
|
|
93
|
+
}
|
|
94
|
+
// A Maven app: alone, or picked with --template=java.
|
|
95
|
+
if (hasPom && ((!hasPackageJson && !hasPyproject) || inputs.templateFlag === 'java')) {
|
|
96
|
+
return { kind: 'ok', mode: 'augment', targetDir: augmentTargetDir, language: 'java' };
|
|
97
|
+
}
|
|
87
98
|
// Cases 3 and 4: no positional + a project file → augment, in its language.
|
|
88
99
|
if (hasPyproject && (!hasPackageJson || inputs.templateFlag === 'python')) {
|
|
89
100
|
return { kind: 'ok', mode: 'augment', targetDir: augmentTargetDir, language: 'python' };
|
|
@@ -94,7 +105,7 @@ export async function detectInitMode(inputs) {
|
|
|
94
105
|
// Case 5: no positional + neither → error.
|
|
95
106
|
return {
|
|
96
107
|
kind: 'err',
|
|
97
|
-
message: `No pack-name provided and no package.json
|
|
108
|
+
message: `No pack-name provided and no package.json, pyproject.toml, pom.xml or build.sbt at ${augmentTargetDir}.\n - To scaffold a new pack: kindgi init <pack-name> [--template=python|java|scala]\n - To add Kindgi to existing: run inside a directory with package.json (Node), pyproject.toml (Python), pom.xml (Java, Maven) or build.sbt (Scala, sbt)\n`,
|
|
98
109
|
};
|
|
99
110
|
}
|
|
100
111
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mode-detect.js","sourceRoot":"","sources":["../../src/init/mode-detect.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,iCAAiC;AAEjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAwChD,MAAM,iBAAiB,GAAG,KAAK,EAAE,IAAY,EAAoB,EAAE;IACjE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;IAClD,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3B,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC;IACpB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,MAAoB;IACvD,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,iBAAiB,CAAC;IAC1D,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAE7C,qBAAqB;IACrB,sGAAsG;IACtG,+CAA+C;IAC/C,6EAA6E;IAC7E,+FAA+F;IAC/F,2DAA2D;IAE3D,wDAAwD;IACxD,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACvB,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC;YACpB,OAAO;gBACL,IAAI,EAAE,KAAK;gBACX,OAAO,EACL,oCAAoC;oBACpC,4DAA4D;aAC/D,CAAC;QACJ,CAAC;QACD,OAAO;YACL,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,OAAO;YACb,SAAS,EAAE,qBAAqB,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC;YACvE,QAAQ;SACT,CAAC;IACJ,CAAC;IAED,oEAAoE;IACpE,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC;QACpB,OAAO;YACL,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,OAAO;YACb,SAAS,EAAE,qBAAqB,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC;YACvE,QAAQ;SACT,CAAC;IACJ,CAAC;IAED,yDAAyD;IACzD,MAAM,gBAAgB,GACpB,MAAM,CAAC,QAAQ,KAAK,SAAS,IAAI,MAAM,CAAC,QAAQ,KAAK,EAAE;QACrD,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC;YAC3B,CAAC,CAAC,MAAM,CAAC,QAAQ;YACjB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC;QACxC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;IAEjB,MAAM,cAAc,GAAG,MAAM,UAAU,CAAC,GAAG,gBAAgB,eAAe,CAAC,CAAC;IAC5E,MAAM,YAAY,GAAG,MAAM,UAAU,CAAC,GAAG,gBAAgB,iBAAiB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"mode-detect.js","sourceRoot":"","sources":["../../src/init/mode-detect.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { CommandResult } from '../commands/types.js';
|
|
2
|
+
import { type KindgiJavaSource } from './dependency-specs.js';
|
|
3
|
+
export interface RunInitScalaAugmentInputs {
|
|
4
|
+
readonly targetDir: string;
|
|
5
|
+
/** Where the java template's `kindgiw` wrappers are. */
|
|
6
|
+
readonly templatesRoot: string;
|
|
7
|
+
/** The skills bundled into the CLI; the ones written for Scala packs are copied. */
|
|
8
|
+
readonly skillsRoot?: string;
|
|
9
|
+
readonly packIdOverride?: string;
|
|
10
|
+
/** Overwrite an existing `kindgi.config.json` and the wrappers. */
|
|
11
|
+
readonly force: boolean;
|
|
12
|
+
/** Test seam: where kindgi-pack comes from (kindgi-pack-scala is its sibling). */
|
|
13
|
+
readonly javaSource?: KindgiJavaSource;
|
|
14
|
+
}
|
|
15
|
+
/** The build's own `name` and `version` (`name := "…"`, or `ThisBuild / version := "…"`). */
|
|
16
|
+
export declare function readSbtIdentity(build: string): {
|
|
17
|
+
readonly name?: string;
|
|
18
|
+
readonly version?: string;
|
|
19
|
+
};
|
|
20
|
+
/** The line an app's build.sbt adds for kindgi-pack-scala. */
|
|
21
|
+
export declare function kindgiPackScalaDependency(version: string): string;
|
|
22
|
+
export declare function runInitScalaAugment(inputs: RunInitScalaAugmentInputs): Promise<CommandResult>;
|
|
23
|
+
//# sourceMappingURL=scala-augment.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scala-augment.d.ts","sourceRoot":"","sources":["../../src/init/scala-augment.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAI1D,OAAO,EAEL,KAAK,gBAAgB,EAGtB,MAAM,uBAAuB,CAAC;AAO/B,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,wDAAwD;IACxD,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,oFAAoF;IACpF,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,mEAAmE;IACnE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,kFAAkF;IAClF,QAAQ,CAAC,UAAU,CAAC,EAAE,gBAAgB,CAAC;CACxC;AAED,6FAA6F;AAC7F,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG;IAC9C,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B,CAMA;AAED,8DAA8D;AAC9D,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEjE;AAaD,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,yBAAyB,GAChC,OAAO,CAAC,aAAa,CAAC,CAyExB"}
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
// Copyright (C) 2026 Kindgi Inc.
|
|
3
|
+
/**
|
|
4
|
+
* `kindgi init` in an existing sbt app (a `build.sbt`, no `package.json`,
|
|
5
|
+
* `pyproject.toml` or `pom.xml`, or `--template=scala`): the app becomes a
|
|
6
|
+
* Scala pack.
|
|
7
|
+
*
|
|
8
|
+
* - `kindgi.config.json` — the pack's id (the build's `name`, normalized,
|
|
9
|
+
* or `--pack-id`) and version, with discovery under any `kindgi`
|
|
10
|
+
* package (`src/main/scala/**\/kindgi/tools/**\/*.scala`, …), so the
|
|
11
|
+
* app's own `tools` packages are never swept in;
|
|
12
|
+
* - the `kindgiw` wrappers that run the CLI it pins, and `.gitignore`
|
|
13
|
+
* entries for the dev token and env files.
|
|
14
|
+
*
|
|
15
|
+
* `build.sbt` isn't edited: the next steps print the
|
|
16
|
+
* `"com.kindgi" %% "kindgi-pack-scala"` dependency to add (an app's build
|
|
17
|
+
* has its own structure — subprojects, a `project/Dependencies.scala` —
|
|
18
|
+
* that an edit could get wrong).
|
|
19
|
+
*/
|
|
20
|
+
import { chmod, copyFile, readFile, readdir, stat, writeFile } from 'node:fs/promises';
|
|
21
|
+
import { join } from 'node:path';
|
|
22
|
+
import { PACK_ID_REGEX } from '../commands/init.js';
|
|
23
|
+
import { syncSkills } from '../commands/skills.js';
|
|
24
|
+
import { renderJson } from '../output.js';
|
|
25
|
+
import { binDisplay } from '../package-manager.js';
|
|
26
|
+
import { CLI_VERSION } from '../version-info.js';
|
|
27
|
+
import { JVM_PREVIEW, resolveKindgiJavaSource, sbtLocalResolver, } from './dependency-specs.js';
|
|
28
|
+
import { patchGitignore } from './gitignore-patcher.js';
|
|
29
|
+
import { packIdOf } from './java-augment.js';
|
|
30
|
+
const DEFAULT_VERSION = '0.1.0';
|
|
31
|
+
const FOLDERS = ['tools', 'guardrails', 'agents', 'flows'];
|
|
32
|
+
/** The build's own `name` and `version` (`name := "…"`, or `ThisBuild / version := "…"`). */
|
|
33
|
+
export function readSbtIdentity(build) {
|
|
34
|
+
const setting = (key) => new RegExp(`(?:^|\\n)\\s*(?:ThisBuild\\s*/\\s*)?${key}\\s*:=\\s*"([^"]+)"`).exec(build)?.[1];
|
|
35
|
+
const name = setting('name');
|
|
36
|
+
const version = setting('version');
|
|
37
|
+
return { ...(name !== undefined && { name }), ...(version !== undefined && { version }) };
|
|
38
|
+
}
|
|
39
|
+
/** The line an app's build.sbt adds for kindgi-pack-scala. */
|
|
40
|
+
export function kindgiPackScalaDependency(version) {
|
|
41
|
+
return `libraryDependencies += "com.kindgi" %% "kindgi-pack-scala" % "${version}"`;
|
|
42
|
+
}
|
|
43
|
+
/** Whether the build declares kindgi-pack-scala: in build.sbt, or a project/*.scala it reads. */
|
|
44
|
+
async function declaresKindgiPackScala(targetDir, build) {
|
|
45
|
+
const sources = [build];
|
|
46
|
+
for (const name of (await readdir(join(targetDir, 'project')).catch(() => [])).filter((f) => f.endsWith('.scala'))) {
|
|
47
|
+
sources.push(await readFile(join(targetDir, 'project', name), 'utf8').catch(() => ''));
|
|
48
|
+
}
|
|
49
|
+
return sources.some((text) => /"com\.kindgi"\s*%%\s*"kindgi-pack-scala"/.test(text));
|
|
50
|
+
}
|
|
51
|
+
export async function runInitScalaAugment(inputs) {
|
|
52
|
+
const fail = (message) => ({
|
|
53
|
+
kind: 'error',
|
|
54
|
+
stderr: `${message}\n`,
|
|
55
|
+
exitCode: 1,
|
|
56
|
+
});
|
|
57
|
+
let build;
|
|
58
|
+
try {
|
|
59
|
+
build = await readFile(join(inputs.targetDir, 'build.sbt'), 'utf8');
|
|
60
|
+
}
|
|
61
|
+
catch {
|
|
62
|
+
return fail(`No build.sbt at ${inputs.targetDir}. Adding Kindgi to a Scala app works with sbt; for a separate Scala pack: kindgi init <pack-name> --template=scala --new-repo`);
|
|
63
|
+
}
|
|
64
|
+
const configPath = join(inputs.targetDir, 'kindgi.config.json');
|
|
65
|
+
if ((await exists(configPath)) && !inputs.force) {
|
|
66
|
+
return fail(`${configPath} already exists — this app is a Kindgi pack. Run \`${binDisplay('kindgiw', 'kindgi', ['dev'])}\` here (or --force to write it again).`);
|
|
67
|
+
}
|
|
68
|
+
const identity = readSbtIdentity(build);
|
|
69
|
+
const packId = resolvePackId(inputs.packIdOverride, identity.name);
|
|
70
|
+
if (packId.kind === 'err')
|
|
71
|
+
return fail(packId.message);
|
|
72
|
+
const version = identity.version ?? DEFAULT_VERSION;
|
|
73
|
+
const source = inputs.javaSource ?? (await resolveKindgiJavaSource());
|
|
74
|
+
if (source.kind === 'error')
|
|
75
|
+
return fail(source.message);
|
|
76
|
+
const written = await writePackFiles(inputs, configPath, packId.value, version);
|
|
77
|
+
if (written.kind === 'err')
|
|
78
|
+
return fail(written.message);
|
|
79
|
+
const { created, skipped } = written;
|
|
80
|
+
const hasDependency = await declaresKindgiPackScala(inputs.targetDir, build);
|
|
81
|
+
const nextSteps = [
|
|
82
|
+
...installSteps(source),
|
|
83
|
+
...(hasDependency
|
|
84
|
+
? []
|
|
85
|
+
: [
|
|
86
|
+
`Add to build.sbt:\n ${[kindgiPackScalaDependency(source.version), sbtLocalResolver(source)].filter(Boolean).join('\n ')}`,
|
|
87
|
+
]),
|
|
88
|
+
"Put tools in a `kindgi.tools` package under your own (e.g. com.acme.app.kindgi.tools), guardrails in `kindgi.guardrails`, agents in `kindgi.agents`, flows in `kindgi.flows`: a file's primitives are the vals of an object named like it",
|
|
89
|
+
`${binDisplay('kindgiw', 'kindgi', ['dev'])} # the CLI the pack pins (kindgi.config.json "cli"): boots Kindgi locally + compiles and runs the pack through sbt, recompiling on save`,
|
|
90
|
+
];
|
|
91
|
+
const summary = {
|
|
92
|
+
kind: 'augment',
|
|
93
|
+
language: 'scala',
|
|
94
|
+
targetDir: inputs.targetDir,
|
|
95
|
+
packId: packId.value,
|
|
96
|
+
packVersion: version,
|
|
97
|
+
kindgiPack: source,
|
|
98
|
+
preview: true,
|
|
99
|
+
dependencyInBuild: hasDependency,
|
|
100
|
+
created,
|
|
101
|
+
skipped,
|
|
102
|
+
nextSteps,
|
|
103
|
+
};
|
|
104
|
+
return {
|
|
105
|
+
kind: 'ok',
|
|
106
|
+
rendered: {
|
|
107
|
+
stdout: renderJson(summary, 'json').stdout,
|
|
108
|
+
stderr: [
|
|
109
|
+
'',
|
|
110
|
+
` Kindgi added to ${inputs.targetDir} (a Scala pack in the app; preview).`,
|
|
111
|
+
` ${JVM_PREVIEW}`,
|
|
112
|
+
` Pack id: ${packId.value} Version: ${version}`,
|
|
113
|
+
` Wrote ${created.length} file${created.length === 1 ? '' : 's'}; skipped ${skipped.length}.`,
|
|
114
|
+
'',
|
|
115
|
+
' Next steps:',
|
|
116
|
+
...nextSteps.map((step) => ` ${step}`),
|
|
117
|
+
'',
|
|
118
|
+
'',
|
|
119
|
+
].join('\n'),
|
|
120
|
+
},
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
/** `kindgi.config.json`, the wrappers and the `.gitignore` entries: what was written, what was kept. */
|
|
124
|
+
async function writePackFiles(inputs, configPath, packId, version) {
|
|
125
|
+
const created = [];
|
|
126
|
+
const skipped = [];
|
|
127
|
+
const discovery = Object.fromEntries(FOLDERS.map((folder) => [folder, `src/main/scala/**/kindgi/${folder}/**/*.scala`]));
|
|
128
|
+
const config = { language: 'scala', cli: CLI_VERSION, pack: { id: packId, version }, discovery };
|
|
129
|
+
await writeFile(configPath, `${JSON.stringify(config, null, 2)}\n`, 'utf8');
|
|
130
|
+
created.push(configPath);
|
|
131
|
+
for (const wrapper of ['kindgiw', 'kindgiw.cmd']) {
|
|
132
|
+
const dest = join(inputs.targetDir, wrapper);
|
|
133
|
+
if ((await exists(dest)) && !inputs.force) {
|
|
134
|
+
skipped.push(dest);
|
|
135
|
+
continue;
|
|
136
|
+
}
|
|
137
|
+
await copyFile(join(inputs.templatesRoot, 'java', wrapper), dest);
|
|
138
|
+
if (wrapper === 'kindgiw')
|
|
139
|
+
await chmod(dest, 0o755);
|
|
140
|
+
created.push(dest);
|
|
141
|
+
}
|
|
142
|
+
await writeSkills(inputs, created, skipped);
|
|
143
|
+
const gitignorePath = join(inputs.targetDir, '.gitignore');
|
|
144
|
+
const gitignore = await patchGitignore(gitignorePath);
|
|
145
|
+
if (gitignore.kind === 'error') {
|
|
146
|
+
return {
|
|
147
|
+
kind: 'err',
|
|
148
|
+
message: `Failed to patch ${gitignorePath}: ${gitignore.message ?? 'unknown error'}`,
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
if (gitignore.kind === 'patched') {
|
|
152
|
+
created.push(`${gitignorePath} (patched: +${gitignore.appended.join(', +')})`);
|
|
153
|
+
}
|
|
154
|
+
return { kind: 'ok', created, skipped };
|
|
155
|
+
}
|
|
156
|
+
/** The skills written for Scala packs, into `.claude/skills/`, as `kindgi skills sync` writes them. */
|
|
157
|
+
async function writeSkills(inputs, created, skipped) {
|
|
158
|
+
if (inputs.skillsRoot === undefined)
|
|
159
|
+
return;
|
|
160
|
+
const report = await syncSkills({
|
|
161
|
+
skillsRoot: inputs.skillsRoot,
|
|
162
|
+
targetDir: inputs.targetDir,
|
|
163
|
+
language: 'scala',
|
|
164
|
+
force: inputs.force,
|
|
165
|
+
dryRun: false,
|
|
166
|
+
});
|
|
167
|
+
for (const o of report.outcomes) {
|
|
168
|
+
const target = join(inputs.targetDir, '.claude', 'skills', o.name, 'SKILL.md');
|
|
169
|
+
if (o.status === 'added' || o.status === 'updated')
|
|
170
|
+
created.push(target);
|
|
171
|
+
else if (o.status !== 'local-only')
|
|
172
|
+
skipped.push(target);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
/** `--pack-id`, else the build's name as a pack id. */
|
|
176
|
+
function resolvePackId(override, name) {
|
|
177
|
+
if (override !== undefined && override !== '') {
|
|
178
|
+
return PACK_ID_REGEX.test(override)
|
|
179
|
+
? { kind: 'ok', value: override }
|
|
180
|
+
: {
|
|
181
|
+
kind: 'err',
|
|
182
|
+
message: `Invalid --pack-id: ${override}. Must match ${PACK_ID_REGEX.source}.`,
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
const candidate = name === undefined ? '' : packIdOf(name);
|
|
186
|
+
if (PACK_ID_REGEX.test(candidate))
|
|
187
|
+
return { kind: 'ok', value: candidate };
|
|
188
|
+
return {
|
|
189
|
+
kind: 'err',
|
|
190
|
+
message: name === undefined
|
|
191
|
+
? 'build.sbt has no `name := "…"` to name the pack. Pass `--pack-id=<id>`.'
|
|
192
|
+
: `Cannot derive a pack id from the build's name "${name}" (candidate "${candidate}"); pack ids match ${PACK_ID_REGEX.source}. Pass \`--pack-id=<id>\`.`,
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
/** From a checkout: build kindgi-pack and kindgi-pack-scala first. From Maven Central: nothing to do. */
|
|
196
|
+
function installSteps(source) {
|
|
197
|
+
if (source.kind !== 'local-checkout')
|
|
198
|
+
return [];
|
|
199
|
+
return [
|
|
200
|
+
`(cd ${source.path} && ./mvnw -q -pl kindgi-pack -am install -DskipTests) # kindgi-pack ${source.version} into your local Maven repository`,
|
|
201
|
+
`(cd ${join(source.path, '..', 'scala')} && sbt +publishLocal) # kindgi-pack-scala ${source.version} into your local Ivy repository`,
|
|
202
|
+
];
|
|
203
|
+
}
|
|
204
|
+
async function exists(path) {
|
|
205
|
+
try {
|
|
206
|
+
await stat(path);
|
|
207
|
+
return true;
|
|
208
|
+
}
|
|
209
|
+
catch {
|
|
210
|
+
return false;
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
//# sourceMappingURL=scala-augment.js.map
|