@kindgi/sdk 0.1.4-rc.4 → 0.1.4-rc.5
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/package.json +10 -10
- package/skills/kindgi-authoring-agents/SKILL.md +7 -3
- package/skills/kindgi-authoring-providers/SKILL.md +12 -4
- package/skills/kindgi-python-authoring-agents/SKILL.md +10 -5
- package/skills/kindgi-python-authoring-guardrails/SKILL.md +2 -2
- package/skills/kindgi-python-getting-started/SKILL.md +7 -4
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kindgi/sdk",
|
|
3
|
-
"version": "0.1.4-rc.
|
|
3
|
+
"version": "0.1.4-rc.5",
|
|
4
4
|
"description": "@kindgi/sdk — the authoring SDK for Kindgi™. Facade over the individual @kindgi/* packages + @kindgi/client. Unifies pack authoring (defineTool / defineCheck / defineAgent / defineFlow) and client callsites (createClient) behind three sub-paths: /define, /client, /types. Re-export facade; zero behavior.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
@@ -55,15 +55,15 @@
|
|
|
55
55
|
"README.md"
|
|
56
56
|
],
|
|
57
57
|
"dependencies": {
|
|
58
|
-
"@kindgi/agents": "0.1.4-rc.
|
|
59
|
-
"@kindgi/client": "0.1.4-rc.
|
|
60
|
-
"@kindgi/crypto": "0.1.4-rc.
|
|
61
|
-
"@kindgi/flow": "0.1.4-rc.
|
|
62
|
-
"@kindgi/guardrails": "0.1.4-rc.
|
|
63
|
-
"@kindgi/handler-runtime": "0.1.4-rc.
|
|
64
|
-
"@kindgi/schema": "0.1.4-rc.
|
|
65
|
-
"@kindgi/tools": "0.1.4-rc.
|
|
66
|
-
"@kindgi/types": "0.1.4-rc.
|
|
58
|
+
"@kindgi/agents": "0.1.4-rc.5",
|
|
59
|
+
"@kindgi/client": "0.1.4-rc.5",
|
|
60
|
+
"@kindgi/crypto": "0.1.4-rc.5",
|
|
61
|
+
"@kindgi/flow": "0.1.4-rc.5",
|
|
62
|
+
"@kindgi/guardrails": "0.1.4-rc.5",
|
|
63
|
+
"@kindgi/handler-runtime": "0.1.4-rc.5",
|
|
64
|
+
"@kindgi/schema": "0.1.4-rc.5",
|
|
65
|
+
"@kindgi/tools": "0.1.4-rc.5",
|
|
66
|
+
"@kindgi/types": "0.1.4-rc.5"
|
|
67
67
|
},
|
|
68
68
|
"peerDependencies": {
|
|
69
69
|
"zod": "^4.0.0"
|
|
@@ -12,7 +12,7 @@ description: >
|
|
|
12
12
|
kindgi-authoring-guardrails.
|
|
13
13
|
type: core
|
|
14
14
|
library: "@kindgi/sdk"
|
|
15
|
-
version: "0.4.
|
|
15
|
+
version: "0.4.3"
|
|
16
16
|
sdk_version: "0.0.0"
|
|
17
17
|
pack_languages: [node]
|
|
18
18
|
sources:
|
|
@@ -63,7 +63,7 @@ const defined = defineAgent({
|
|
|
63
63
|
description:
|
|
64
64
|
'Drafts appellate briefs from a case file. Cites precedents; escalates novel legal questions.',
|
|
65
65
|
instructions:
|
|
66
|
-
'You are drafting a brief in {{ jurisdiction }}. The user provides the case facts; you produce a Section IV argument citing at least two precedents.
|
|
66
|
+
'You are drafting a brief in {{ jurisdiction }}. The user provides the case facts; you produce a Section IV argument citing at least two precedents. Check every cite with the verify-citation tool before including it. Refuse to fabricate citations — always call the tool.',
|
|
67
67
|
capabilities: [{ needs: [{ feature: 'tool-use' as const }] }],
|
|
68
68
|
tools: [
|
|
69
69
|
{ id: 'acme.verify-citation', version: '^0.1.0' },
|
|
@@ -96,7 +96,11 @@ export default defined.value;
|
|
|
96
96
|
`conversation.*`). Rendered with `strictVariables: true` — unresolved
|
|
97
97
|
references fail loudly at invoke time. Frame instructions like a
|
|
98
98
|
competent employee brief: what the agent does, what tools to prefer,
|
|
99
|
-
what to refuse, what quality bar to hit.
|
|
99
|
+
what to refuse, what quality bar to hit. Name a tool by what it does
|
|
100
|
+
("the verify-citation tool"), never by its dotted id: the model sees
|
|
101
|
+
ids in its provider's form (`acme__verify-citation` for Anthropic and
|
|
102
|
+
OpenAI-compatible models), and `acme.verify-citation` in the
|
|
103
|
+
instructions can make it call a name it wasn't given.
|
|
100
104
|
- **`capabilities`** — declares the resource kinds the agent needs at
|
|
101
105
|
runtime. `{feature: 'tool-use'}` is standard for tool-calling
|
|
102
106
|
agents. The router picks the concrete LLM provider at turn time.
|
|
@@ -22,7 +22,7 @@ description: >
|
|
|
22
22
|
kindgi-getting-started.
|
|
23
23
|
type: core
|
|
24
24
|
library: "@kindgi/sdk"
|
|
25
|
-
version: "0.9.
|
|
25
|
+
version: "0.9.5"
|
|
26
26
|
sdk_version: "0.0.0"
|
|
27
27
|
pack_languages: [node, python]
|
|
28
28
|
sources:
|
|
@@ -241,7 +241,14 @@ capability requirement (see "How the router picks…" below).
|
|
|
241
241
|
|
|
242
242
|
Nothing to switch off: `dev-echo` is a fallback, so the new provider
|
|
243
243
|
answers every agent it satisfies. A turn that still lands on dev-echo
|
|
244
|
-
carries
|
|
244
|
+
carries the `fallback-provider` and `dev-echo-not-a-model` warnings — see
|
|
245
|
+
mistake 9.
|
|
246
|
+
|
|
247
|
+
**The other one-key presets** work the same way, with their own key:
|
|
248
|
+
`--preset=openai` (`OPENAI_API_KEY`), `--preset=gemini-api` (`GEMINI_API_KEY`,
|
|
249
|
+
a Google AI Studio key; `gemini` is Vertex AI), `--preset=groq`
|
|
250
|
+
(`GROQ_API_KEY`) and `--preset=openrouter` (`OPENROUTER_API_KEY`).
|
|
251
|
+
`kindgi providers presets` lists them with their models.
|
|
245
252
|
|
|
246
253
|
## Path B — Hosted via OpenAI-compat
|
|
247
254
|
|
|
@@ -696,8 +703,9 @@ defineAgent({
|
|
|
696
703
|
does nothing. Pin the model with a `models: { allow: [...] }`
|
|
697
704
|
requirement instead.
|
|
698
705
|
|
|
699
|
-
9. **Replies still come from dev-echo** (
|
|
700
|
-
result has
|
|
706
|
+
9. **Replies still come from dev-echo** (`⚠ dev-echo isn't a real model: …`
|
|
707
|
+
then `Tool responded: …`; the turn's result has the `fallback-provider`
|
|
708
|
+
and `dev-echo-not-a-model` warnings). dev-echo is a fallback: it
|
|
701
709
|
answers only when no registered provider satisfies the agent. So your
|
|
702
710
|
provider doesn't — check its models' `features` against the agent's
|
|
703
711
|
`capabilities.needs` (mistake 2), a `models` / `providers` allow-list
|
|
@@ -15,7 +15,7 @@ description: >
|
|
|
15
15
|
model by kindgi-authoring-providers.
|
|
16
16
|
type: core
|
|
17
17
|
library: "kindgi (Python)"
|
|
18
|
-
version: "0.1.
|
|
18
|
+
version: "0.1.3"
|
|
19
19
|
sdk_version: "0.0.0"
|
|
20
20
|
pack_languages: [python]
|
|
21
21
|
sources:
|
|
@@ -77,7 +77,7 @@ brief_writer = Agent(
|
|
|
77
77
|
instructions=(
|
|
78
78
|
"You are drafting a brief in {{ jurisdiction }}. The user provides the case "
|
|
79
79
|
"facts; you produce a Section IV argument citing at least two precedents. "
|
|
80
|
-
"
|
|
80
|
+
"Check every cite with the verify-citation tool before using it. Never invent one."
|
|
81
81
|
),
|
|
82
82
|
capabilities=[{"needs": [{"feature": "tool-use"}]}],
|
|
83
83
|
tools=[verify_citation, fetch_precedent], # Tool objects — or {"id", "version"} refs
|
|
@@ -111,7 +111,11 @@ brief_writer = Agent(
|
|
|
111
111
|
`parameters` or the runtime's own variables (`today`, `now`,
|
|
112
112
|
`agent.*`, `conversation.*`), rendered strictly: an unknown variable
|
|
113
113
|
fails the turn. Write it as a brief for a capable colleague: what to
|
|
114
|
-
do, which tools to prefer, what to refuse, the quality bar.
|
|
114
|
+
do, which tools to prefer, what to refuse, the quality bar. Name a
|
|
115
|
+
tool by what it does ("the verify-citation tool"), never by its dotted
|
|
116
|
+
id: the model sees ids in its provider's form (`acme__verify-citation`
|
|
117
|
+
for Anthropic and OpenAI-compatible models), and `acme.verify-citation`
|
|
118
|
+
in the instructions can make it call a name it wasn't given.
|
|
115
119
|
- **`capabilities`** — what the model must support, e.g.
|
|
116
120
|
`[{"needs": [{"feature": "tool-use"}]}]`. The turn routes its first
|
|
117
121
|
capability to pick a provider and model; none declared fails the turn.
|
|
@@ -161,8 +165,9 @@ brief_writer = Agent(
|
|
|
161
165
|
Agents run on a registered model provider; the router picks one whose
|
|
162
166
|
models satisfy `capabilities`. `kindgi dev` gives a new pack `dev-echo`,
|
|
163
167
|
a **fallback** that answers only while no other provider fits — it
|
|
164
|
-
calls the first tool and replies "
|
|
165
|
-
carries
|
|
168
|
+
calls the first tool and replies "⚠ dev-echo isn't a real model: …"
|
|
169
|
+
then "Tool responded: …", and the turn carries the `fallback-provider` and
|
|
170
|
+
`dev-echo-not-a-model` warnings. Register a real model and it
|
|
166
171
|
takes over: see `kindgi-authoring-providers`
|
|
167
172
|
(`kindgi providers register --preset=anthropic`).
|
|
168
173
|
|
|
@@ -14,7 +14,7 @@ description: >
|
|
|
14
14
|
kindgi-python-authoring-tools.
|
|
15
15
|
type: core
|
|
16
16
|
library: "kindgi (Python)"
|
|
17
|
-
version: "0.1.
|
|
17
|
+
version: "0.1.3"
|
|
18
18
|
sdk_version: "0.0.0"
|
|
19
19
|
pack_languages: [python]
|
|
20
20
|
sources:
|
|
@@ -51,7 +51,7 @@ from kindgi import CheckResult, RunTrace, guardrail
|
|
|
51
51
|
|
|
52
52
|
|
|
53
53
|
class Config(BaseModel):
|
|
54
|
-
min_lookups: int = Field(1, alias="minLookups", ge=0)
|
|
54
|
+
min_lookups: int = Field(default=1, alias="minLookups", ge=0)
|
|
55
55
|
|
|
56
56
|
|
|
57
57
|
@guardrail(
|
|
@@ -14,7 +14,7 @@ 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.
|
|
17
|
+
version: "0.1.7"
|
|
18
18
|
sdk_version: "0.0.0"
|
|
19
19
|
pack_languages: [python]
|
|
20
20
|
sources:
|
|
@@ -123,9 +123,12 @@ uv run kindgi runs start --agent=my-pack.echo-agent --input='{"userMessage":"Ada
|
|
|
123
123
|
```
|
|
124
124
|
|
|
125
125
|
The answer comes from `dev-echo`, a **fallback** provider a new pack
|
|
126
|
-
gets: no model, no key — it calls the first tool and replies "
|
|
127
|
-
responded: …", and the turn
|
|
128
|
-
|
|
126
|
+
gets: no model, no key — it calls the first tool and replies "⚠
|
|
127
|
+
dev-echo isn't a real model: …" then "Tool responded: …", and the turn
|
|
128
|
+
carries the `fallback-provider` and `dev-echo-not-a-model` warnings. For a
|
|
129
|
+
real model, put an LLM provider's key in `.env` and register its preset
|
|
130
|
+
(Anthropic below; `kindgi providers presets` lists OpenAI, Gemini, Groq and
|
|
131
|
+
OpenRouter too):
|
|
129
132
|
|
|
130
133
|
```sh
|
|
131
134
|
uv run kindgi secrets set ANTHROPIC_API_KEY --env=local --scope=tenant # no-echo prompt
|