@kindgi/cli 0.1.4-rc.2 → 0.1.4-rc.4

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.
Files changed (119) hide show
  1. package/README.md +15 -8
  2. package/dist/build/defaults.d.ts.map +1 -1
  3. package/dist/build/defaults.js +2 -1
  4. package/dist/build/defaults.js.map +1 -1
  5. package/dist/commands/auth.d.ts.map +1 -1
  6. package/dist/commands/auth.js +10 -2
  7. package/dist/commands/auth.js.map +1 -1
  8. package/dist/commands/dev.d.ts.map +1 -1
  9. package/dist/commands/dev.js +7 -2
  10. package/dist/commands/dev.js.map +1 -1
  11. package/dist/commands/doctor.d.ts +54 -0
  12. package/dist/commands/doctor.d.ts.map +1 -0
  13. package/dist/commands/doctor.js +483 -0
  14. package/dist/commands/doctor.js.map +1 -0
  15. package/dist/commands/index.d.ts.map +1 -1
  16. package/dist/commands/index.js +2 -0
  17. package/dist/commands/index.js.map +1 -1
  18. package/dist/commands/init.d.ts.map +1 -1
  19. package/dist/commands/init.js +21 -7
  20. package/dist/commands/init.js.map +1 -1
  21. package/dist/commands/mcp.js +1 -1
  22. package/dist/commands/mcp.js.map +1 -1
  23. package/dist/commands/providers.d.ts.map +1 -1
  24. package/dist/commands/providers.js +1 -1
  25. package/dist/commands/providers.js.map +1 -1
  26. package/dist/commands/run-waits.d.ts +106 -0
  27. package/dist/commands/run-waits.d.ts.map +1 -0
  28. package/dist/commands/run-waits.js +233 -0
  29. package/dist/commands/run-waits.js.map +1 -0
  30. package/dist/commands/runs.d.ts.map +1 -1
  31. package/dist/commands/runs.js +43 -18
  32. package/dist/commands/runs.js.map +1 -1
  33. package/dist/commands/unwired.d.ts.map +1 -1
  34. package/dist/commands/unwired.js +0 -5
  35. package/dist/commands/unwired.js.map +1 -1
  36. package/dist/context.d.ts +10 -0
  37. package/dist/context.d.ts.map +1 -1
  38. package/dist/context.js +1 -0
  39. package/dist/context.js.map +1 -1
  40. package/dist/dev/bundler.d.ts.map +1 -1
  41. package/dist/dev/bundler.js +3 -2
  42. package/dist/dev/bundler.js.map +1 -1
  43. package/dist/dev/runtime-container.d.ts.map +1 -1
  44. package/dist/dev/runtime-container.js +7 -4
  45. package/dist/dev/runtime-container.js.map +1 -1
  46. package/dist/dev/runtime-image.d.ts +1 -1
  47. package/dist/dev/runtime-image.js +1 -1
  48. package/dist/dev/runtime-registry.d.ts +23 -1
  49. package/dist/dev/runtime-registry.d.ts.map +1 -1
  50. package/dist/dev/runtime-registry.js +38 -4
  51. package/dist/dev/runtime-registry.js.map +1 -1
  52. package/dist/esbuild-loader.d.ts +3 -0
  53. package/dist/esbuild-loader.d.ts.map +1 -0
  54. package/dist/esbuild-loader.js +21 -0
  55. package/dist/esbuild-loader.js.map +1 -0
  56. package/dist/init/augment-scaffolder.d.ts.map +1 -1
  57. package/dist/init/augment-scaffolder.js +40 -8
  58. package/dist/init/augment-scaffolder.js.map +1 -1
  59. package/dist/init/dependency-specs.d.ts +6 -0
  60. package/dist/init/dependency-specs.d.ts.map +1 -1
  61. package/dist/init/dependency-specs.js +8 -0
  62. package/dist/init/dependency-specs.js.map +1 -1
  63. package/dist/init/package-json-patcher.d.ts +24 -0
  64. package/dist/init/package-json-patcher.d.ts.map +1 -1
  65. package/dist/init/package-json-patcher.js +58 -19
  66. package/dist/init/package-json-patcher.js.map +1 -1
  67. package/dist/init/pyproject-patcher.d.ts +6 -0
  68. package/dist/init/pyproject-patcher.d.ts.map +1 -1
  69. package/dist/init/pyproject-patcher.js +15 -0
  70. package/dist/init/pyproject-patcher.js.map +1 -1
  71. package/dist/init/python-augment.d.ts +5 -1
  72. package/dist/init/python-augment.d.ts.map +1 -1
  73. package/dist/init/python-augment.js +28 -6
  74. package/dist/init/python-augment.js.map +1 -1
  75. package/dist/init/template-files.d.ts +2 -0
  76. package/dist/init/template-files.d.ts.map +1 -1
  77. package/dist/init/template-files.js +2 -1
  78. package/dist/init/template-files.js.map +1 -1
  79. package/dist/main.d.ts +3 -0
  80. package/dist/main.d.ts.map +1 -1
  81. package/dist/main.js +18 -2
  82. package/dist/main.js.map +1 -1
  83. package/dist/package-manager.d.ts +34 -3
  84. package/dist/package-manager.d.ts.map +1 -1
  85. package/dist/package-manager.js +83 -4
  86. package/dist/package-manager.js.map +1 -1
  87. package/dist/providers/preset-loader.d.ts +2 -0
  88. package/dist/providers/preset-loader.d.ts.map +1 -1
  89. package/dist/providers/preset-loader.js +30 -11
  90. package/dist/providers/preset-loader.js.map +1 -1
  91. package/dist/providers/presets/gemini-api.json +55 -0
  92. package/dist/providers/presets/groq.json +39 -0
  93. package/dist/providers/presets/openai.json +50 -0
  94. package/dist/providers/presets/openrouter.json +61 -0
  95. package/dist/sdk-skills/kindgi-authoring-agents/SKILL.md +1 -1
  96. package/dist/sdk-skills/kindgi-authoring-flows/SKILL.md +1 -1
  97. package/dist/sdk-skills/kindgi-authoring-guardrails/SKILL.md +1 -1
  98. package/dist/sdk-skills/kindgi-authoring-mcp-servers/SKILL.md +1 -1
  99. package/dist/sdk-skills/kindgi-authoring-providers/SKILL.md +17 -8
  100. package/dist/sdk-skills/kindgi-authoring-tools/SKILL.md +1 -1
  101. package/dist/sdk-skills/kindgi-framework-feedback/SKILL.md +1 -1
  102. package/dist/sdk-skills/kindgi-getting-started/SKILL.md +1 -1
  103. package/dist/sdk-skills/kindgi-python-authoring-agents/SKILL.md +7 -5
  104. package/dist/sdk-skills/kindgi-python-authoring-flows/SKILL.md +7 -5
  105. package/dist/sdk-skills/kindgi-python-authoring-guardrails/SKILL.md +7 -5
  106. package/dist/sdk-skills/kindgi-python-authoring-tools/SKILL.md +7 -5
  107. package/dist/sdk-skills/kindgi-python-getting-started/SKILL.md +16 -13
  108. package/dist/templates/minimal/AGENTS.md +6 -3
  109. package/dist/templates/minimal/README.md.tmpl +11 -5
  110. package/dist/templates/minimal/package.json.tmpl +3 -0
  111. package/dist/templates/minimal/pnpm-workspace.yaml +2 -1
  112. package/dist/templates/python/AGENTS.md +7 -4
  113. package/dist/templates/python/README.md.tmpl +11 -5
  114. package/dist/templates/python/pyproject.toml.tmpl +1 -1
  115. package/dist/templates/sample/AGENTS.md +6 -3
  116. package/dist/templates/sample/README.md.tmpl +11 -5
  117. package/dist/templates/sample/package.json.tmpl +3 -0
  118. package/dist/templates/sample/pnpm-workspace.yaml +2 -1
  119. package/package.json +11 -11
@@ -6,8 +6,9 @@
6
6
  * A preset is a vendor's registration body with the models, context
7
7
  * windows and prices filled in (`src/providers/presets/<name>.json`,
8
8
  * copied to `dist/providers/presets/` at build): its adapter, the secret
9
- * its credential lives in (if any), the adapter settings it needs from
10
- * the caller (e.g. Gemini's `--project`), and `metadata`. Prices change
9
+ * its credential lives in (if any), the adapter settings it fixes itself
10
+ * (e.g. an OpenAI-compatible endpoint's `baseURL`) or needs from the
11
+ * caller (e.g. Gemini's `--project`), and `metadata`. Prices change
11
12
  * with the vendors' — `pricesCheckedAt` says when they were last read.
12
13
  */
13
14
  import { readFile as nodeReadFile, readdir as nodeReaddir } from 'node:fs/promises';
@@ -56,14 +57,9 @@ function checkPreset(input) {
56
57
  if (p.secret !== undefined && (typeof p.secret !== 'string' || p.secret === '')) {
57
58
  return '"secret" must be a non-empty string';
58
59
  }
59
- if (p.adapterConfig !== undefined &&
60
- (!Array.isArray(p.adapterConfig) ||
61
- !p.adapterConfig.every((s) => s !== null &&
62
- typeof s === 'object' &&
63
- typeof s.key === 'string' &&
64
- typeof s.description === 'string'))) {
65
- return '"adapterConfig" must be a list of { key, description }';
66
- }
60
+ const configProblem = adapterConfigProblem(p);
61
+ if (configProblem !== undefined)
62
+ return configProblem;
67
63
  const metadata = p.metadata;
68
64
  if (metadata === undefined ||
69
65
  typeof metadata.id !== 'string' ||
@@ -74,6 +70,26 @@ function checkPreset(input) {
74
70
  }
75
71
  return input;
76
72
  }
73
+ /** What's wrong with a preset's `adapterConfig` / `adapterConfigValues`, if anything. */
74
+ function adapterConfigProblem(p) {
75
+ if (p.adapterConfig !== undefined &&
76
+ (!Array.isArray(p.adapterConfig) ||
77
+ !p.adapterConfig.every((s) => s !== null &&
78
+ typeof s === 'object' &&
79
+ typeof s.key === 'string' &&
80
+ typeof s.description === 'string'))) {
81
+ return '"adapterConfig" must be a list of { key, description }';
82
+ }
83
+ const values = p.adapterConfigValues;
84
+ if (values !== undefined &&
85
+ (values === null ||
86
+ typeof values !== 'object' ||
87
+ Array.isArray(values) ||
88
+ !Object.values(values).every((v) => ['string', 'number', 'boolean'].includes(typeof v)))) {
89
+ return '"adapterConfigValues" must be an object of string, number or boolean values';
90
+ }
91
+ return undefined;
92
+ }
77
93
  /** The registration body for a preset, or why the choices don't fit it. */
78
94
  export function presetRegistration(preset, choices) {
79
95
  const all = preset.metadata.models;
@@ -101,7 +117,10 @@ export function presetRegistration(preset, choices) {
101
117
  };
102
118
  }
103
119
  const secret = choices.secret ?? preset.secret;
104
- const adapterConfig = Object.fromEntries((preset.adapterConfig ?? []).map((s) => [s.key, choices.settings[s.key]]));
120
+ const adapterConfig = {
121
+ ...preset.adapterConfigValues,
122
+ ...Object.fromEntries((preset.adapterConfig ?? []).map((s) => [s.key, choices.settings[s.key]])),
123
+ };
105
124
  return {
106
125
  kind: 'ok',
107
126
  input: {
@@ -1 +1 @@
1
- {"version":3,"file":"preset-loader.js","sourceRoot":"","sources":["../../src/providers/preset-loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"preset-loader.js","sourceRoot":"","sources":["../../src/providers/preset-loader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ {
2
+ "name": "gemini-api",
3
+ "description": "Gemini on the Gemini Developer API, with an API key from Google AI Studio (key: GEMINI_API_KEY). For Vertex AI, use gemini.",
4
+ "adapterId": "@kindgi/adapter-model-gemini",
5
+ "adapterConfigValues": {
6
+ "api": "developer"
7
+ },
8
+ "secret": "GEMINI_API_KEY",
9
+ "pricesCheckedAt": "2026-10-07",
10
+ "metadata": {
11
+ "id": "gemini-api",
12
+ "region": "unspecified",
13
+ "description": "Gemini on the Gemini Developer API",
14
+ "models": [
15
+ {
16
+ "name": "gemini-3.8-flash",
17
+ "contextWindow": 1048576,
18
+ "maxOutputTokens": 65536,
19
+ "features": ["tool-use", "long-context"],
20
+ "cost": {
21
+ "promptUsdPer1kTokens": 0.00075,
22
+ "completionUsdPer1kTokens": 0.00375
23
+ },
24
+ "description": "Fast and inexpensive (Google's prices for it rise on 2027-01-01)."
25
+ },
26
+ {
27
+ "name": "gemini-3.1-pro-preview",
28
+ "contextWindow": 1048576,
29
+ "maxOutputTokens": 65536,
30
+ "features": ["tool-use", "long-context"],
31
+ "cost": {
32
+ "promptUsdPer1kTokens": 0.002,
33
+ "completionUsdPer1kTokens": 0.012,
34
+ "longContext": {
35
+ "thresholdTokens": 200000,
36
+ "promptUsdPer1kTokens": 0.004,
37
+ "completionUsdPer1kTokens": 0.018
38
+ }
39
+ },
40
+ "description": "Most capable Gemini (a preview model)."
41
+ },
42
+ {
43
+ "name": "gemini-3.5-flash-lite",
44
+ "contextWindow": 1048576,
45
+ "maxOutputTokens": 65536,
46
+ "features": ["tool-use", "long-context"],
47
+ "cost": {
48
+ "promptUsdPer1kTokens": 0.0003,
49
+ "completionUsdPer1kTokens": 0.0025
50
+ },
51
+ "description": "Cheapest — routing, classification, simple calls."
52
+ }
53
+ ]
54
+ }
55
+ }
@@ -0,0 +1,39 @@
1
+ {
2
+ "name": "groq",
3
+ "description": "Open-weight models on Groq's fast inference (key: GROQ_API_KEY).",
4
+ "adapterId": "@kindgi/adapter-model-openai-compat",
5
+ "adapterConfigValues": {
6
+ "baseURL": "https://api.groq.com/openai/v1"
7
+ },
8
+ "secret": "GROQ_API_KEY",
9
+ "pricesCheckedAt": "2026-10-07",
10
+ "metadata": {
11
+ "id": "groq",
12
+ "region": "unspecified",
13
+ "description": "Open-weight models on Groq",
14
+ "models": [
15
+ {
16
+ "name": "openai/gpt-oss-120b",
17
+ "contextWindow": 131072,
18
+ "maxOutputTokens": 65536,
19
+ "features": ["tool-use"],
20
+ "cost": {
21
+ "promptUsdPer1kTokens": 0.00015,
22
+ "completionUsdPer1kTokens": 0.0006
23
+ },
24
+ "description": "gpt-oss 120B: the stronger of the two."
25
+ },
26
+ {
27
+ "name": "openai/gpt-oss-20b",
28
+ "contextWindow": 131072,
29
+ "maxOutputTokens": 65536,
30
+ "features": ["tool-use"],
31
+ "cost": {
32
+ "promptUsdPer1kTokens": 7.5e-5,
33
+ "completionUsdPer1kTokens": 0.0003
34
+ },
35
+ "description": "gpt-oss 20B: fastest and cheapest."
36
+ }
37
+ ]
38
+ }
39
+ }
@@ -0,0 +1,50 @@
1
+ {
2
+ "name": "openai",
3
+ "description": "GPT on the OpenAI API (key: OPENAI_API_KEY).",
4
+ "adapterId": "@kindgi/adapter-model-openai-compat",
5
+ "adapterConfigValues": {
6
+ "baseURL": "https://api.openai.com/v1"
7
+ },
8
+ "secret": "OPENAI_API_KEY",
9
+ "pricesCheckedAt": "2026-10-07",
10
+ "metadata": {
11
+ "id": "openai",
12
+ "region": "unspecified",
13
+ "description": "GPT on the OpenAI API",
14
+ "models": [
15
+ {
16
+ "name": "gpt-6.1-sol",
17
+ "contextWindow": 1050000,
18
+ "maxOutputTokens": 128000,
19
+ "features": ["tool-use", "parallel-tool-use", "structured-output", "long-context"],
20
+ "cost": {
21
+ "promptUsdPer1kTokens": 0.002,
22
+ "completionUsdPer1kTokens": 0.01
23
+ },
24
+ "description": "Balanced performance and cost."
25
+ },
26
+ {
27
+ "name": "gpt-6-astra",
28
+ "contextWindow": 1050000,
29
+ "maxOutputTokens": 128000,
30
+ "features": ["tool-use", "parallel-tool-use", "structured-output", "long-context"],
31
+ "cost": {
32
+ "promptUsdPer1kTokens": 0.01,
33
+ "completionUsdPer1kTokens": 0.05
34
+ },
35
+ "description": "Most capable — hard reasoning and long agentic work."
36
+ },
37
+ {
38
+ "name": "gpt-6-luna",
39
+ "contextWindow": 1050000,
40
+ "maxOutputTokens": 128000,
41
+ "features": ["tool-use", "parallel-tool-use", "structured-output", "long-context"],
42
+ "cost": {
43
+ "promptUsdPer1kTokens": 0.0001,
44
+ "completionUsdPer1kTokens": 0.0005
45
+ },
46
+ "description": "Fastest and cheapest — routing, classification, simple calls."
47
+ }
48
+ ]
49
+ }
50
+ }
@@ -0,0 +1,61 @@
1
+ {
2
+ "name": "openrouter",
3
+ "description": "Many vendors' models through OpenRouter, with one key (key: OPENROUTER_API_KEY).",
4
+ "adapterId": "@kindgi/adapter-model-openai-compat",
5
+ "adapterConfigValues": {
6
+ "baseURL": "https://openrouter.ai/api/v1"
7
+ },
8
+ "secret": "OPENROUTER_API_KEY",
9
+ "pricesCheckedAt": "2026-10-07",
10
+ "metadata": {
11
+ "id": "openrouter",
12
+ "region": "unspecified",
13
+ "description": "Models from several vendors through OpenRouter",
14
+ "models": [
15
+ {
16
+ "name": "anthropic/claude-sonnet-5.5",
17
+ "contextWindow": 1000000,
18
+ "maxOutputTokens": 128000,
19
+ "features": ["tool-use", "parallel-tool-use", "structured-output", "long-context"],
20
+ "cost": {
21
+ "promptUsdPer1kTokens": 0.002,
22
+ "completionUsdPer1kTokens": 0.01
23
+ },
24
+ "description": "Claude Sonnet 5.5: balanced performance and cost."
25
+ },
26
+ {
27
+ "name": "openai/gpt-6.1-sol",
28
+ "contextWindow": 1050000,
29
+ "maxOutputTokens": 128000,
30
+ "features": ["tool-use", "parallel-tool-use", "structured-output", "long-context"],
31
+ "cost": {
32
+ "promptUsdPer1kTokens": 0.002,
33
+ "completionUsdPer1kTokens": 0.01
34
+ },
35
+ "description": "GPT-6.1 Sol: balanced performance and cost."
36
+ },
37
+ {
38
+ "name": "google/gemini-3.8-flash",
39
+ "contextWindow": 1048576,
40
+ "maxOutputTokens": 65536,
41
+ "features": ["tool-use", "parallel-tool-use", "structured-output", "long-context"],
42
+ "cost": {
43
+ "promptUsdPer1kTokens": 0.00075,
44
+ "completionUsdPer1kTokens": 0.00375
45
+ },
46
+ "description": "Gemini 3.8 Flash: fast and inexpensive."
47
+ },
48
+ {
49
+ "name": "openai/gpt-6-luna",
50
+ "contextWindow": 1050000,
51
+ "maxOutputTokens": 128000,
52
+ "features": ["tool-use", "parallel-tool-use", "structured-output", "long-context"],
53
+ "cost": {
54
+ "promptUsdPer1kTokens": 0.0001,
55
+ "completionUsdPer1kTokens": 0.0005
56
+ },
57
+ "description": "GPT-6 Luna: fastest and cheapest — routing, classification, simple calls."
58
+ }
59
+ ]
60
+ }
61
+ }
@@ -13,7 +13,7 @@ description: >
13
13
  type: core
14
14
  library: "@kindgi/sdk"
15
15
  version: "0.4.2"
16
- sdk_version: "0.1.4-rc.2"
16
+ sdk_version: "0.1.4-rc.4"
17
17
  pack_languages: [node]
18
18
  sources:
19
19
  - packages/agents/src/types.ts
@@ -14,7 +14,7 @@ description: >
14
14
  type: core
15
15
  library: "@kindgi/sdk"
16
16
  version: "0.1.2"
17
- sdk_version: "0.1.4-rc.2"
17
+ sdk_version: "0.1.4-rc.4"
18
18
  pack_languages: [node]
19
19
  sources:
20
20
  - packages/flow/src/types.ts
@@ -16,7 +16,7 @@ description: >
16
16
  type: core
17
17
  library: "@kindgi/sdk"
18
18
  version: "0.3.6"
19
- sdk_version: "0.1.4-rc.2"
19
+ sdk_version: "0.1.4-rc.4"
20
20
  pack_languages: [node]
21
21
  sources:
22
22
  - packages/guardrails/src/types.ts
@@ -18,7 +18,7 @@ description: >
18
18
  type: core
19
19
  library: "@kindgi/sdk"
20
20
  version: "0.3.0"
21
- sdk_version: "0.1.4-rc.2"
21
+ sdk_version: "0.1.4-rc.4"
22
22
  pack_languages: [node, python]
23
23
  ---
24
24
 
@@ -22,8 +22,8 @@ description: >
22
22
  kindgi-getting-started.
23
23
  type: core
24
24
  library: "@kindgi/sdk"
25
- version: "0.9.3"
26
- sdk_version: "0.1.4-rc.2"
25
+ version: "0.9.4"
26
+ sdk_version: "0.1.4-rc.4"
27
27
  pack_languages: [node, python]
28
28
  sources:
29
29
  - packages/adapters/model-anthropic/src/provider.ts
@@ -305,15 +305,23 @@ kindgi secrets set GROQ_API_KEY --env=local --scope=tenant
305
305
 
306
306
  **Steps 3–5** same as Path A.
307
307
 
308
- ## Path C — Local via in-process ONNX
308
+ ## Path C — Local via in-process ONNX (runtime from source only)
309
+
310
+ > ⚠️ **Not in the runtime image, so not under `kindgi dev`.** The adapter
311
+ > runs ONNX through `onnxruntime-node`, which ships glibc binaries only,
312
+ > and the Kindgi runtime image is Alpine (musl): the adapter can't load
313
+ > there (`Error loading shared library ld-linux-…`). `kindgi dev` runs
314
+ > that image, so this path fails under it. It works only when the
315
+ > runtime itself runs from source on macOS or a glibc Linux. **For a
316
+ > local model under `kindgi dev`, use Ollama** ([Local via Ollama](#local-via-ollama-via-path-b)).
309
317
 
310
318
  > ⚠️ **Dev-only.** The in-process ONNX adapter writes weights to
311
319
  > `~/.cache/huggingface/hub/` — a per-machine cache with no production
312
320
  > recipe (no volume-mount recipe, no image-bake pattern, no offline
313
- > mode, no SHA pinning). Good for local dev, smoke tests, and CI
314
- > runners that keep the same disk between runs. **Do not ship packs
315
- > that rely on this adapter to production.** Use hosted providers
316
- > (Path A) or Ollama (Path B) instead.
321
+ > mode, no SHA pinning). Good for smoke tests and CI runners that run
322
+ > the runtime from source and keep the same disk between runs. **Do not
323
+ > ship packs that rely on this adapter to production.** Use hosted
324
+ > providers (Path A) or Ollama (Path B) instead.
317
325
 
318
326
  No API key. No network. Bundled with the framework — the adapter ships
319
327
  `smollm2-360m` by default (~273 MB weights, cached at
@@ -385,7 +393,8 @@ production. Skip only for scripted teardown where the model is already
385
393
  cached (`~/.cache/huggingface/hub/models--HuggingFaceTB--SmolLM2-360M-Instruct/`).
386
394
 
387
395
  `prepare` is idempotent: subsequent invocations are cache hits and
388
- return almost instantly, so put it in every `kindgi dev` boot script.
396
+ return almost instantly, so put it in the script that boots your
397
+ from-source runtime.
389
398
 
390
399
  Multi-model providers: prepare each model separately.
391
400
  ```sh
@@ -13,7 +13,7 @@ description: >
13
13
  type: core
14
14
  library: "@kindgi/sdk"
15
15
  version: "0.4.4"
16
- sdk_version: "0.1.4-rc.2"
16
+ sdk_version: "0.1.4-rc.4"
17
17
  pack_languages: [node]
18
18
  sources:
19
19
  - packages/tools/src/types.ts
@@ -15,7 +15,7 @@ description: >
15
15
  type: core
16
16
  library: "@kindgi/sdk"
17
17
  version: "0.4.0"
18
- sdk_version: "0.1.4-rc.2"
18
+ sdk_version: "0.1.4-rc.4"
19
19
  pack_languages: [node, python]
20
20
  ---
21
21
 
@@ -15,7 +15,7 @@ description: >
15
15
  type: core
16
16
  library: "@kindgi/sdk"
17
17
  version: "0.3.8"
18
- sdk_version: "0.1.4-rc.2"
18
+ sdk_version: "0.1.4-rc.4"
19
19
  pack_languages: [node]
20
20
  ---
21
21
 
@@ -15,8 +15,8 @@ description: >
15
15
  model by kindgi-authoring-providers.
16
16
  type: core
17
17
  library: "kindgi (Python)"
18
- version: "0.1.0"
19
- sdk_version: "0.1.4-rc.2"
18
+ version: "0.1.1"
19
+ sdk_version: "0.1.4-rc.4"
20
20
  pack_languages: [python]
21
21
  sources:
22
22
  - sdks/python/src/kindgi/pack/define.py
@@ -25,9 +25,11 @@ sources:
25
25
 
26
26
  # Authoring Kindgi agents in Python
27
27
 
28
- > **Running `kindgi`:** a Python pack has no Node project, so the
29
- > `kindgi` CLI is the one on `PATH`. Python commands run in the pack's
30
- > environment: `uv run …` (or `.venv/bin/python …`).
28
+ > **Running `kindgi`:** the CLI is `kindgi-cli` from PyPI, pinned in the
29
+ > pack's dev group, so every `kindgi <command>` below runs as
30
+ > `uv run kindgi <command>` (Poetry: `poetry run kindgi <command>`). Python
31
+ > commands run in the pack's environment the same way: `uv run …` (or
32
+ > `.venv/bin/python …`).
31
33
 
32
34
  An **agent** is a versioned, model-driven orchestrator: instructions (a
33
35
  prompt template), the tools it may call, the capabilities its model
@@ -16,8 +16,8 @@ description: >
16
16
  kindgi-python-authoring-agents.
17
17
  type: core
18
18
  library: "kindgi (Python)"
19
- version: "0.1.1"
20
- sdk_version: "0.1.4-rc.2"
19
+ version: "0.1.2"
20
+ sdk_version: "0.1.4-rc.4"
21
21
  pack_languages: [python]
22
22
  sources:
23
23
  - sdks/python/src/kindgi/pack/define.py
@@ -27,9 +27,11 @@ sources:
27
27
 
28
28
  # Authoring Kindgi flows in Python
29
29
 
30
- > **Running `kindgi`:** a Python pack has no Node project, so the
31
- > `kindgi` CLI is the one on `PATH`. Python commands run in the pack's
32
- > environment: `uv run …` (or `.venv/bin/python …`).
30
+ > **Running `kindgi`:** the CLI is `kindgi-cli` from PyPI, pinned in the
31
+ > pack's dev group, so every `kindgi <command>` below runs as
32
+ > `uv run kindgi <command>` (Poetry: `poetry run kindgi <command>`). Python
33
+ > commands run in the pack's environment the same way: `uv run …` (or
34
+ > `.venv/bin/python …`).
33
35
 
34
36
  A **flow** is a versioned, durable graph of steps: tools (your code) and
35
37
  agents (a model's judgment), joined by edges that can carry conditions.
@@ -14,8 +14,8 @@ description: >
14
14
  kindgi-python-authoring-tools.
15
15
  type: core
16
16
  library: "kindgi (Python)"
17
- version: "0.1.1"
18
- sdk_version: "0.1.4-rc.2"
17
+ version: "0.1.2"
18
+ sdk_version: "0.1.4-rc.4"
19
19
  pack_languages: [python]
20
20
  sources:
21
21
  - sdks/python/src/kindgi/pack/define.py
@@ -25,9 +25,11 @@ sources:
25
25
 
26
26
  # Authoring Kindgi guardrails in Python
27
27
 
28
- > **Running `kindgi`:** a Python pack has no Node project, so the
29
- > `kindgi` CLI is the one on `PATH`. Python commands run in the pack's
30
- > environment: `uv run …` (or `.venv/bin/python …`).
28
+ > **Running `kindgi`:** the CLI is `kindgi-cli` from PyPI, pinned in the
29
+ > pack's dev group, so every `kindgi <command>` below runs as
30
+ > `uv run kindgi <command>` (Poetry: `poetry run kindgi <command>`). Python
31
+ > commands run in the pack's environment the same way: `uv run …` (or
32
+ > `.venv/bin/python …`).
31
33
 
32
34
  A **guardrail** is a rule an agent's turn must satisfy: a **check** (a
33
35
  function over the turn's trace) plus an **action** (what happens when it
@@ -14,8 +14,8 @@ description: >
14
14
  kindgi-python-getting-started.
15
15
  type: core
16
16
  library: "kindgi (Python)"
17
- version: "0.1.1"
18
- sdk_version: "0.1.4-rc.2"
17
+ version: "0.1.2"
18
+ sdk_version: "0.1.4-rc.4"
19
19
  pack_languages: [python]
20
20
  sources:
21
21
  - sdks/python/src/kindgi/pack/define.py
@@ -25,9 +25,11 @@ sources:
25
25
 
26
26
  # Authoring Kindgi tools in Python
27
27
 
28
- > **Running `kindgi`:** a Python pack has no Node project, so the
29
- > `kindgi` CLI is the one on `PATH`. Python commands run in the pack's
30
- > environment: `uv run …` (or `.venv/bin/python …`).
28
+ > **Running `kindgi`:** the CLI is `kindgi-cli` from PyPI, pinned in the
29
+ > pack's dev group, so every `kindgi <command>` below runs as
30
+ > `uv run kindgi <command>` (Poetry: `poetry run kindgi <command>`). Python
31
+ > commands run in the pack's environment the same way: `uv run …` (or
32
+ > `.venv/bin/python …`).
31
33
 
32
34
  A **tool** is a unit of work an agent (or a flow step) calls: typed
33
35
  input, typed output, your code in between. In a Python pack it is a
@@ -14,8 +14,8 @@ description: >
14
14
  kindgi-python-authoring-agents; models by kindgi-authoring-providers.
15
15
  type: core
16
16
  library: "kindgi (Python)"
17
- version: "0.1.5"
18
- sdk_version: "0.1.4-rc.2"
17
+ version: "0.1.6"
18
+ sdk_version: "0.1.4-rc.4"
19
19
  pack_languages: [python]
20
20
  sources:
21
21
  - sdks/python/README.md
@@ -25,9 +25,11 @@ sources:
25
25
 
26
26
  # Getting started with Kindgi in Python
27
27
 
28
- > **Running `kindgi`:** a Python pack has no Node project, so the
29
- > `kindgi` CLI (a Node 22.12+ program) is the one on `PATH`. Python
30
- > commands run in the pack's environment: `uv run …`.
28
+ > **Running `kindgi`:** the CLI is `kindgi-cli` from PyPI (the Kindgi CLI
29
+ > with its own Node, so no Node install), pinned in the pack's dev group.
30
+ > Every `kindgi <command>` below runs as `uv run kindgi <command>` (Poetry:
31
+ > `poetry run kindgi <command>`). Python commands run in the pack's
32
+ > environment the same way: `uv run …`.
31
33
 
32
34
  ## What a pack is
33
35
 
@@ -52,11 +54,11 @@ primitive; `test_*.py`, `*_test.py` and `conftest.py` are skipped.
52
54
  ## Scaffold a new pack
53
55
 
54
56
  ```sh
55
- kindgi init my-pack --template=python
57
+ uvx --from "kindgi-cli>=0.1,<0.2" kindgi init my-pack --template=python
56
58
  cd my-pack
57
- uv sync # .venv with the kindgi package
59
+ uv sync # .venv with the kindgi package and the kindgi CLI
58
60
  uv run pytest
59
- kindgi dev # boots Kindgi locally and runs this pack, reloading on save
61
+ uv run kindgi dev # boots Kindgi locally and runs this pack, reloading on save
60
62
  ```
61
63
 
62
64
  `kindgi dev` needs Postgres: it starts one in Docker unless
@@ -70,9 +72,10 @@ kindgi dev # boots Kindgi locally and runs this pack, reloading on save
70
72
  In the app's directory (where its `pyproject.toml` is):
71
73
 
72
74
  ```sh
73
- kindgi init # --pack-id=<id> if the app's name doesn't make one
75
+ uv add --dev "kindgi-cli>=0.1,<0.2" # the CLI (Poetry: poetry add --group dev …)
76
+ uv run kindgi init # --pack-id=<id> if the app's name doesn't make one
74
77
  uv sync # or what it prints for Poetry / pip
75
- kindgi dev
78
+ uv run kindgi dev
76
79
  ```
77
80
 
78
81
  `kindgi init` edits the app's `pyproject.toml` in place — your layout and
@@ -116,7 +119,7 @@ The `[tool.kindgi]` keys are the ones `kindgi.config.ts` takes —
116
119
  With `kindgi dev` running, from another terminal in the pack directory:
117
120
 
118
121
  ```sh
119
- kindgi runs start --agent=my-pack.echo-agent --input='{"userMessage":"Ada"}'
122
+ uv run kindgi runs start --agent=my-pack.echo-agent --input='{"userMessage":"Ada"}'
120
123
  ```
121
124
 
122
125
  The answer comes from `dev-echo`, a **fallback** provider a new pack
@@ -125,8 +128,8 @@ responded: …", and the turn carries a `fallback-provider` warning. For
125
128
  a real model, put the key in `.env` and register a provider:
126
129
 
127
130
  ```sh
128
- kindgi secrets set ANTHROPIC_API_KEY --env=local --scope=tenant # no-echo prompt
129
- kindgi providers register --preset=anthropic
131
+ uv run kindgi secrets set ANTHROPIC_API_KEY --env=local --scope=tenant # no-echo prompt
132
+ uv run kindgi providers register --preset=anthropic
130
133
  ```
131
134
 
132
135
  It takes over at the next turn. That registration is in this project's dev
@@ -7,9 +7,12 @@ field-level docs. Iterate with `kindgi dev`; `kindgi --help` lists
7
7
  the full CLI.
8
8
 
9
9
  Agents answer through a model provider. `kindgi dev` gives a new pack
10
- `dev-echo`, a fallback that calls the first tool and replies
11
- "Tool responded: …" while no other provider fits. For Claude,
12
- put the key in `.env` and declare `{ preset: 'anthropic' }` in
10
+ `dev-echo`, a fallback that isn't a model: it calls the first tool and
11
+ replies "Tool responded: …" after a warning line, while no other provider
12
+ fits. For a real model, put one LLM provider's key in `.env`
13
+ (`ANTHROPIC_API_KEY`, `OPENAI_API_KEY`, `GEMINI_API_KEY`, `GROQ_API_KEY` or
14
+ `OPENROUTER_API_KEY`) and declare its preset (`{ preset: 'anthropic' }`,
15
+ `'openai'`, `'gemini-api'`, `'groq'` or `'openrouter'`) in
13
16
  `kindgi.config.ts`'s `providers`: `kindgi dev` then registers it on every
14
17
  boot, in every worktree. Other providers and per-agent model choice:
15
18
  `.claude/skills/kindgi-authoring-providers/SKILL.md`.