@evolvingmachines/evolve 0.0.65 → 0.0.67
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/dist/{chunk-DK2MGUPB.js → chunk-RFLMRPGK.js} +5 -5
- package/dist/cli/index.cjs +39 -39
- package/dist/cli/index.d.cts +3 -3
- package/dist/cli/index.d.ts +3 -3
- package/dist/cli/index.js +30 -30
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +4 -4
- package/dist/index.d.ts +4 -4
- package/dist/index.js +1 -1
- package/dist/{types-B_qmzlMk.d.cts → types-84M4J_Vm.d.cts} +11 -44
- package/dist/{types-B_qmzlMk.d.ts → types-84M4J_Vm.d.ts} +11 -44
- package/package.json +4 -4
- package/skills/create-adapter/SKILL.md +71 -26
- package/skills/create-task/SKILL.md +124 -66
- package/skills/evolve/SKILL.md +37 -20
- package/skills/evolve-evals/SKILL.md +142 -69
- package/skills/evolve-evals/references/cli-reference/agent.md +76 -0
- package/skills/evolve-evals/references/cli-reference/analysis.md +78 -0
- package/skills/evolve-evals/references/cli-reference/analyze.md +95 -0
- package/skills/evolve-evals/references/cli-reference/auth.md +96 -0
- package/skills/evolve-evals/references/cli-reference/check.md +156 -0
- package/skills/evolve-evals/references/cli-reference/dataset.md +154 -0
- package/skills/evolve-evals/references/cli-reference/filesystem.md +168 -0
- package/skills/evolve-evals/references/cli-reference/index.md +149 -0
- package/skills/evolve-evals/references/cli-reference/job.md +198 -0
- package/skills/evolve-evals/references/cli-reference/run.md +187 -0
- package/skills/evolve-evals/references/cli-reference/secrets.md +77 -0
- package/skills/evolve-evals/references/cli-reference/session.md +56 -0
- package/skills/evolve-evals/references/cli-reference/skill.md +52 -0
- package/skills/evolve-evals/references/cli-reference/skills.md +85 -0
- package/skills/evolve-evals/references/cli-reference/trial.md +115 -0
- package/skills/evolve-evals/references/cli-reference/upload.md +72 -0
- package/skills/evolve-evals/references/core-concepts/agents.md +96 -0
- package/skills/evolve-evals/references/core-concepts/analyze.md +143 -0
- package/skills/evolve-evals/references/core-concepts/check.md +116 -0
- package/skills/evolve-evals/references/core-concepts/compatibility.md +39 -0
- package/skills/evolve-evals/references/core-concepts/compose.md +103 -0
- package/skills/evolve-evals/references/core-concepts/datasets.md +234 -0
- package/skills/evolve-evals/references/core-concepts/index.md +52 -0
- package/skills/evolve-evals/references/core-concepts/jobs.md +223 -0
- package/skills/evolve-evals/references/core-concepts/models.md +73 -0
- package/skills/evolve-evals/references/core-concepts/multi-step.md +93 -0
- package/skills/evolve-evals/references/core-concepts/rewardkit.md +341 -0
- package/skills/evolve-evals/references/core-concepts/sandboxes.md +73 -0
- package/skills/evolve-evals/references/core-concepts/secrets.md +86 -0
- package/skills/evolve-evals/references/core-concepts/sharing.md +81 -0
- package/skills/evolve-evals/references/core-concepts/skills.md +100 -0
- package/skills/evolve-evals/references/core-concepts/task-config.md +169 -0
- package/skills/evolve-evals/references/core-concepts/task-environment.md +127 -0
- package/skills/evolve-evals/references/core-concepts/task-reference.md +191 -0
- package/skills/evolve-evals/references/core-concepts/task-verifiers.md +209 -0
- package/skills/evolve-evals/references/core-concepts/tasks.md +90 -0
- package/skills/evolve-evals/references/core-concepts/teams.md +128 -0
- package/skills/evolve-evals/references/core-concepts/trial-outputs.md +225 -0
- package/skills/evolve-evals/references/core-concepts/trials.md +129 -0
- package/skills/evolve-evals/references/core-concepts/upload-sdk-session.md +240 -0
- package/skills/evolve-evals/references/core-concepts/upload.md +166 -0
- package/skills/evolve-evals/references/dashboard/checks.md +54 -0
- package/skills/evolve-evals/references/dashboard/datasets.md +65 -0
- package/skills/evolve-evals/references/dashboard/jobs.md +106 -0
- package/skills/evolve-evals/references/dashboard/traces.md +54 -0
- package/skills/evolve-evals/references/dashboard/trial-viewer.md +77 -0
- package/skills/evolve-evals/references/getting-started/first-task.md +228 -0
- package/skills/evolve-evals/references/getting-started/installation.md +79 -0
- package/skills/evolve-evals/references/getting-started/quick-start.md +100 -0
- package/skills/evolve-evals/references/index.md +58 -0
- package/skills/evolve-evals/references/sdk/http.md +110 -0
- package/skills/evolve-evals/references/sdk/python.md +108 -0
- package/skills/evolve-evals/references/sdk/typescript.md +104 -0
- package/skills/evolve-evals/references/sdk-reference/agents.md +75 -0
- package/skills/evolve-evals/references/sdk-reference/analyses.md +124 -0
- package/skills/evolve-evals/references/sdk-reference/auth.md +171 -0
- package/skills/evolve-evals/references/sdk-reference/checks.md +145 -0
- package/skills/evolve-evals/references/sdk-reference/datasets.md +170 -0
- package/skills/evolve-evals/references/sdk-reference/error-codes.md +231 -0
- package/skills/evolve-evals/references/sdk-reference/errors.md +98 -0
- package/skills/evolve-evals/references/sdk-reference/filesystem.md +166 -0
- package/skills/evolve-evals/references/sdk-reference/index.md +161 -0
- package/skills/evolve-evals/references/sdk-reference/jobs.md +250 -0
- package/skills/evolve-evals/references/sdk-reference/meta.md +54 -0
- package/skills/evolve-evals/references/sdk-reference/methods/agents.md +154 -0
- package/skills/evolve-evals/references/sdk-reference/methods/analyses.md +211 -0
- package/skills/evolve-evals/references/sdk-reference/methods/auth.md +257 -0
- package/skills/evolve-evals/references/sdk-reference/methods/checks.md +460 -0
- package/skills/evolve-evals/references/sdk-reference/methods/datasets.md +687 -0
- package/skills/evolve-evals/references/sdk-reference/methods/filesystem.md +527 -0
- package/skills/evolve-evals/references/sdk-reference/methods/jobs.md +1021 -0
- package/skills/evolve-evals/references/sdk-reference/methods/meta.md +209 -0
- package/skills/evolve-evals/references/sdk-reference/methods/secrets.md +157 -0
- package/skills/evolve-evals/references/sdk-reference/methods/skills.md +125 -0
- package/skills/evolve-evals/references/sdk-reference/methods/trials.md +371 -0
- package/skills/evolve-evals/references/sdk-reference/secrets.md +104 -0
- package/skills/evolve-evals/references/sdk-reference/skills.md +66 -0
- package/skills/evolve-evals/references/sdk-reference/trials.md +164 -0
- package/skills/evolve-evals/references/sdk-reference/types.md +1249 -0
- package/skills/publish/SKILL.md +103 -79
- package/skills/rewardkit/SKILL.md +78 -23
- package/spec/openapi.yaml +19 -74
- package/skills/evolve-evals/references/cli-reference/agent.mdx +0 -79
- package/skills/evolve-evals/references/cli-reference/analysis.mdx +0 -160
- package/skills/evolve-evals/references/cli-reference/analyze.mdx +0 -84
- package/skills/evolve-evals/references/cli-reference/auth.mdx +0 -133
- package/skills/evolve-evals/references/cli-reference/check.mdx +0 -263
- package/skills/evolve-evals/references/cli-reference/dataset.mdx +0 -151
- package/skills/evolve-evals/references/cli-reference/index.mdx +0 -108
- package/skills/evolve-evals/references/cli-reference/job.mdx +0 -278
- package/skills/evolve-evals/references/cli-reference/run.mdx +0 -204
- package/skills/evolve-evals/references/cli-reference/secrets.mdx +0 -95
- package/skills/evolve-evals/references/cli-reference/skill.mdx +0 -61
- package/skills/evolve-evals/references/cli-reference/skills.mdx +0 -81
- package/skills/evolve-evals/references/cli-reference/trial.mdx +0 -181
- package/skills/evolve-evals/references/cli-reference/upload.mdx +0 -36
- package/skills/evolve-evals/references/core-concepts/agents.mdx +0 -106
- package/skills/evolve-evals/references/core-concepts/analyze.mdx +0 -86
- package/skills/evolve-evals/references/core-concepts/check.mdx +0 -64
- package/skills/evolve-evals/references/core-concepts/datasets.mdx +0 -138
- package/skills/evolve-evals/references/core-concepts/index.mdx +0 -42
- package/skills/evolve-evals/references/core-concepts/jobs.mdx +0 -151
- package/skills/evolve-evals/references/core-concepts/models.mdx +0 -68
- package/skills/evolve-evals/references/core-concepts/sandboxes.mdx +0 -52
- package/skills/evolve-evals/references/core-concepts/secrets.mdx +0 -41
- package/skills/evolve-evals/references/core-concepts/sharing.mdx +0 -35
- package/skills/evolve-evals/references/core-concepts/skills.mdx +0 -42
- package/skills/evolve-evals/references/core-concepts/tasks.mdx +0 -216
- package/skills/evolve-evals/references/core-concepts/teams.mdx +0 -36
- package/skills/evolve-evals/references/core-concepts/trial-outputs.mdx +0 -117
- package/skills/evolve-evals/references/core-concepts/trials.mdx +0 -103
- package/skills/evolve-evals/references/core-concepts/upload.mdx +0 -93
- package/skills/evolve-evals/references/dashboard/checks.mdx +0 -21
- package/skills/evolve-evals/references/dashboard/datasets.mdx +0 -24
- package/skills/evolve-evals/references/dashboard/jobs.mdx +0 -65
- package/skills/evolve-evals/references/dashboard/traces.mdx +0 -17
- package/skills/evolve-evals/references/dashboard/trial-viewer.mdx +0 -30
- package/skills/evolve-evals/references/getting-started/installation.mdx +0 -56
- package/skills/evolve-evals/references/getting-started/quick-start.mdx +0 -94
- package/skills/evolve-evals/references/index.mdx +0 -48
- package/skills/evolve-evals/references/sdk/python.mdx +0 -161
- package/skills/evolve-evals/references/sdk/typescript.mdx +0 -163
- package/skills/evolve-evals/references/sdk-reference/agents.mdx +0 -108
- package/skills/evolve-evals/references/sdk-reference/analyses.mdx +0 -222
- package/skills/evolve-evals/references/sdk-reference/auth.mdx +0 -116
- package/skills/evolve-evals/references/sdk-reference/checks.mdx +0 -300
- package/skills/evolve-evals/references/sdk-reference/datasets.mdx +0 -346
- package/skills/evolve-evals/references/sdk-reference/errors.mdx +0 -210
- package/skills/evolve-evals/references/sdk-reference/index.mdx +0 -60
- package/skills/evolve-evals/references/sdk-reference/jobs.mdx +0 -822
- package/skills/evolve-evals/references/sdk-reference/meta.mdx +0 -52
- package/skills/evolve-evals/references/sdk-reference/skills.mdx +0 -69
- package/skills/evolve-evals/references/sdk-reference/trials.mdx +0 -302
- package/skills/evolve-evals/references/sdk-reference/types.mdx +0 -274
- package/skills/evolve-evals/references/snippets/global-options.mdx +0 -13
- package/skills/evolve-evals/references/snippets/list-flags.mdx +0 -23
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Capabilities: method and fields"
|
|
3
|
+
description: "Read harness, model, provider, status, and limit information."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Read live capability values rather than storing a fixed harness, model, or provider list. No API key is needed.
|
|
7
|
+
|
|
8
|
+
Python examples run inside an async function.
|
|
9
|
+
|
|
10
|
+
## meta
|
|
11
|
+
|
|
12
|
+
Fetch the capability document from the selected API origin.
|
|
13
|
+
|
|
14
|
+
```ts TypeScript
|
|
15
|
+
import { meta } from "@evolvingmachines/evolve";
|
|
16
|
+
|
|
17
|
+
const capabilities = await meta();
|
|
18
|
+
console.log(
|
|
19
|
+
capabilities.agents,
|
|
20
|
+
capabilities.limits,
|
|
21
|
+
);
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
```python Python
|
|
25
|
+
from evolve import meta
|
|
26
|
+
|
|
27
|
+
capabilities = await meta()
|
|
28
|
+
print(
|
|
29
|
+
capabilities.agents,
|
|
30
|
+
capabilities.limits,
|
|
31
|
+
)
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
**Returns:** `CapabilityDocument`. Also available as `hosted().meta()`.
|
|
35
|
+
|
|
36
|
+
### Parameters and behavior
|
|
37
|
+
|
|
38
|
+
| Parameter | Type and meaning |
|
|
39
|
+
| --- | --- |
|
|
40
|
+
| TypeScript `meta(config?)` | `HostedClientConfig`; optional `baseUrl` chooses the origin. |
|
|
41
|
+
| Python `meta(config=None)` | `HostedClientConfig`; optional `base_url` chooses the origin. |
|
|
42
|
+
|
|
43
|
+
Origin precedence: explicit config, `EVOLVE_DASHBOARD_URL`, then `https://dashboard.evolvingmachines.ai`. `apiKey` / `api_key` and `org` are not sent. `schema_version` identifies the capability schema, not the SDK release.
|
|
44
|
+
|
|
45
|
+
## Capability fields
|
|
46
|
+
|
|
47
|
+
TypeScript returns the typed object below. Python uses dataclasses for the document, agents, providers, and status vocabularies. Nested policy objects such as `limits`, `agent_registration`, `analyze`, provider `sizing`, and provider `gpus` are Python dictionaries.
|
|
48
|
+
|
|
49
|
+
### CapabilityDocument: SDK field definitions
|
|
50
|
+
|
|
51
|
+
`limits` reports current values for this deployment. `default_model` is a picker suggestion; managed evaluation jobs still require a model. Optional fields may be absent on older servers; Python maps missing `analyze` and `gpu_concurrency_cap` to `None`.
|
|
52
|
+
|
|
53
|
+
```ts Fields
|
|
54
|
+
interface CapabilityDocument {
|
|
55
|
+
schema_version: number;
|
|
56
|
+
agents: AgentCapability[];
|
|
57
|
+
agent_registration: {
|
|
58
|
+
name_pattern: string;
|
|
59
|
+
max_name_length: number;
|
|
60
|
+
max_run_command_length: number;
|
|
61
|
+
max_install_script_length: number;
|
|
62
|
+
max_env_entries: number;
|
|
63
|
+
max_per_user: number;
|
|
64
|
+
max_upload_bytes: number;
|
|
65
|
+
reserved_names: string[];
|
|
66
|
+
reserved_env_keys: string[];
|
|
67
|
+
};
|
|
68
|
+
sandbox_providers: ProviderCapability[];
|
|
69
|
+
gpu_concurrency_cap?: number;
|
|
70
|
+
managed_providers: ManagedProviderCapability[];
|
|
71
|
+
platform_constraints: { capability: string; reason: string }[];
|
|
72
|
+
network_modes: string[];
|
|
73
|
+
statuses: {
|
|
74
|
+
job: StatusVocabulary;
|
|
75
|
+
trial: StatusVocabulary;
|
|
76
|
+
import: StatusVocabulary;
|
|
77
|
+
dataset_version: StatusVocabulary;
|
|
78
|
+
};
|
|
79
|
+
analyze?: {
|
|
80
|
+
default_model: string;
|
|
81
|
+
reasoning_efforts: string[];
|
|
82
|
+
models: { alias: string; model_id: string; default_reasoning_effort: string }[];
|
|
83
|
+
};
|
|
84
|
+
limits: {
|
|
85
|
+
job: {
|
|
86
|
+
n_concurrent_trials: { default: number; max: number };
|
|
87
|
+
default_max_trial_spend_usd: number;
|
|
88
|
+
default_max_retries: number;
|
|
89
|
+
default_sandbox_provider: string;
|
|
90
|
+
default_sizing: { cpus: number; memory_mb: number; storage_mb: number };
|
|
91
|
+
model_required: boolean;
|
|
92
|
+
default_agent_timeout_sec: number;
|
|
93
|
+
default_verifier_timeout_sec: number;
|
|
94
|
+
reasoning_efforts: string[];
|
|
95
|
+
default_reasoning_effort: string;
|
|
96
|
+
};
|
|
97
|
+
compare: { min_ids: number; max_ids: number };
|
|
98
|
+
pagination: {
|
|
99
|
+
collections: { default: number; max: number };
|
|
100
|
+
dataset_tasks: { default: number; max: number };
|
|
101
|
+
trace_events: { default: number; max: number };
|
|
102
|
+
};
|
|
103
|
+
uploads: {
|
|
104
|
+
dataset_archive_bytes: number;
|
|
105
|
+
job_archive_bytes: number;
|
|
106
|
+
archive_bytes_source: string;
|
|
107
|
+
agent_tarball_bytes: number;
|
|
108
|
+
skill_archive_bytes: number;
|
|
109
|
+
skill_uploads_per_user: number;
|
|
110
|
+
};
|
|
111
|
+
dataset_names: {
|
|
112
|
+
pattern: string;
|
|
113
|
+
max_name_length: number;
|
|
114
|
+
max_version_length: number;
|
|
115
|
+
max_git_url_length: number;
|
|
116
|
+
max_git_ref_length: number;
|
|
117
|
+
max_git_path_length: number;
|
|
118
|
+
};
|
|
119
|
+
max_items_named_in_error_message: number;
|
|
120
|
+
};
|
|
121
|
+
import_warning_codes: string[];
|
|
122
|
+
error_codes: string[];
|
|
123
|
+
}
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
### Additional fields returned by the API
|
|
127
|
+
|
|
128
|
+
The API also returns the fields below. TypeScript keeps them in the response, although this SDK's `CapabilityDocument` type does not declare them. Python keeps the nested `limits` and `sizing` dictionaries, but its status objects omit `description`.
|
|
129
|
+
|
|
130
|
+
| Field | Meaning |
|
|
131
|
+
| --- | --- |
|
|
132
|
+
| `limits.job.default_timeout_multiplier` | Default multiplier for phase time limits. |
|
|
133
|
+
| `limits.job.binary_effort_values` | Accepted values for harnesses whose reasoning can only be on or off. |
|
|
134
|
+
| `limits.job.max_job_name_length` | Maximum job-name length. |
|
|
135
|
+
| `limits.stop.max_trial_ids`, `max_run_ids` | Maximum IDs in the respective stop requests. Both fields belong to `limits.stop`. |
|
|
136
|
+
| `limits.dataset_names.reserved_names` | Names reserved for dataset API routes. |
|
|
137
|
+
| `sandbox_providers[].sizing.storage_ceiling_source` | Where the storage limit came from: `live-quota`, `fallback`, or `provider-constant`. |
|
|
138
|
+
| `statuses.*.description` | Description of each status set; available in the HTTP response and TypeScript object. |
|
|
139
|
+
|
|
140
|
+
### Harnesses and models
|
|
141
|
+
|
|
142
|
+
`effort_support` is `level`, `binary`, or `none`. `runnable: false` includes a reason. `supports_config` controls native settings support; `presets` lists accepted named presets. Python defaults missing `supports_config` to `False` and `presets` to an empty list. `latest_version: null` means unknown, not current.
|
|
143
|
+
|
|
144
|
+
```ts Fields
|
|
145
|
+
interface AgentModelOption {
|
|
146
|
+
alias: string;
|
|
147
|
+
model_id: string;
|
|
148
|
+
description: string | null;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
interface AgentCapability {
|
|
152
|
+
name: string;
|
|
153
|
+
runnable: boolean;
|
|
154
|
+
reason: string | null;
|
|
155
|
+
default_model: string | null;
|
|
156
|
+
models: AgentModelOption[];
|
|
157
|
+
effort_support: AgentEffortSupport;
|
|
158
|
+
default_effort: string | null;
|
|
159
|
+
version_pinnable: boolean;
|
|
160
|
+
supports_config?: boolean;
|
|
161
|
+
presets?: string[];
|
|
162
|
+
latest_version?: string | null;
|
|
163
|
+
}
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
### Evaluation sandbox providers
|
|
167
|
+
|
|
168
|
+
`sizing.storage` distinguishes chosen storage sizes from a fixed allocation. GPU support may declare a fallback through `degrades_to`. `gpus.source` distinguishes a live quota result, fallback, or provider constant. `refuses` names unsupported capabilities.
|
|
169
|
+
|
|
170
|
+
```ts Fields
|
|
171
|
+
interface ProviderCapability {
|
|
172
|
+
name: string;
|
|
173
|
+
default: boolean;
|
|
174
|
+
sizing: {
|
|
175
|
+
max_cpus: number;
|
|
176
|
+
max_memory_mb: number;
|
|
177
|
+
max_storage_mb: number;
|
|
178
|
+
storage: "sized" | "fixed";
|
|
179
|
+
};
|
|
180
|
+
gpus?: {
|
|
181
|
+
supported: boolean;
|
|
182
|
+
max_gpus: number;
|
|
183
|
+
degrades_to?: "modal";
|
|
184
|
+
reason?: string;
|
|
185
|
+
source?: "live-quota" | "fallback" | "provider-constant";
|
|
186
|
+
};
|
|
187
|
+
refuses: { capability: string; reason: string }[];
|
|
188
|
+
}
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
### Managed runtime providers and status vocabularies
|
|
192
|
+
|
|
193
|
+
`configured` checks required operator configuration; it is not a service health check. `agent_sessions` says whether the separate managed-agent runtime supports full sessions through that provider. Status vocabularies list all values and their terminal subset.
|
|
194
|
+
|
|
195
|
+
```ts Fields
|
|
196
|
+
interface ManagedProviderCapability {
|
|
197
|
+
name: string;
|
|
198
|
+
configured: boolean;
|
|
199
|
+
requires_config: string[];
|
|
200
|
+
missing_config: string[];
|
|
201
|
+
agent_sessions: boolean;
|
|
202
|
+
agent_sessions_reason: string | null;
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
interface StatusVocabulary {
|
|
206
|
+
values: string[];
|
|
207
|
+
terminal: string[];
|
|
208
|
+
}
|
|
209
|
+
```
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Secrets: methods"
|
|
3
|
+
description: "Store credentials and read or delete their metadata."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Use `managedSecrets()` in TypeScript or `managed_secrets()` in Python. This client has its own configuration and is separate from `hosted()`. Examples use `store` for that client.
|
|
7
|
+
|
|
8
|
+
Managed evaluations accept `direct` secrets. Their values enter the sandbox as environment variables. The storage client also supports brokered secrets for the separate managed-agent runtime.
|
|
9
|
+
|
|
10
|
+
Python examples run inside an async function.
|
|
11
|
+
|
|
12
|
+
## list
|
|
13
|
+
|
|
14
|
+
Read stored secret metadata. Secret values are never returned.
|
|
15
|
+
|
|
16
|
+
```ts TypeScript
|
|
17
|
+
const secrets = await store.list();
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
```python Python
|
|
21
|
+
secrets = await store.list()
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
**Returns:** `ManagedSecretMetadata[]` / `List[ManagedSecretMetadata]`. No arguments; no pagination.
|
|
25
|
+
|
|
26
|
+
## set
|
|
27
|
+
|
|
28
|
+
Store a value under a name and optional label.
|
|
29
|
+
|
|
30
|
+
```ts TypeScript
|
|
31
|
+
const result = await store.set({
|
|
32
|
+
name: "SERVICE_TOKEN",
|
|
33
|
+
label: "v2",
|
|
34
|
+
value: process.env.SERVICE_TOKEN!,
|
|
35
|
+
delivery: "direct",
|
|
36
|
+
});
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
```python Python
|
|
40
|
+
import os
|
|
41
|
+
|
|
42
|
+
result = await store.set(
|
|
43
|
+
name="SERVICE_TOKEN",
|
|
44
|
+
label="v2",
|
|
45
|
+
value=os.environ["SERVICE_TOKEN"],
|
|
46
|
+
delivery="direct",
|
|
47
|
+
)
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
**Returns:** `ManagedSecretWriteResult`: `status` (`created` or `updated`) and `secret` metadata.
|
|
51
|
+
|
|
52
|
+
### Parameters and behavior
|
|
53
|
+
|
|
54
|
+
| Parameter | Type and meaning |
|
|
55
|
+
| --- | --- |
|
|
56
|
+
| `name` | Required string. Trimmed and converted to uppercase; 1–128 letters, digits, or underscores. Must start with a letter or underscore; `EVOLVE_` is reserved. |
|
|
57
|
+
| `value` | Required, non-empty string; at most 190 UTF-8 bytes. |
|
|
58
|
+
| `delivery` | Required `direct` or `brokered`. |
|
|
59
|
+
| `label?` | String, at most 80 letters, digits, dots, underscores, or hyphens. Whitespace is trimmed; omitted or empty means `default`. |
|
|
60
|
+
| `allowedHosts?` / `allowed_hosts?` | String list of hostnames or wildcard hostnames, such as `api.example.com` or `*.example.com`. No scheme, port, or path. |
|
|
61
|
+
| `allowedPathPrefixes?` / `allowed_path_prefixes?` | String list of paths starting with `/`. No `..` segments or encoded slashes. |
|
|
62
|
+
| `allowedMethods?` / `allowed_methods?` | String list: `GET`, `POST`, `PUT`, `PATCH`, `DELETE`, or `HEAD`. Converted to uppercase. |
|
|
63
|
+
|
|
64
|
+
Each scope list accepts at most 50 entries after trimming and removing blank or duplicate strings. Hostnames allow at most 253 characters; path prefixes allow at most 512.
|
|
65
|
+
|
|
66
|
+
Direct delivery accepts omitted or empty scope lists and refuses non-empty lists. Brokered delivery requires all three lists to be non-empty. Managed eval jobs currently cannot attach brokered secrets.
|
|
67
|
+
|
|
68
|
+
Restating the same name, label, and value returns `updated` and can update delivery/scope. A different value at the same identity returns `secret_exists`. Rotate using a new label, or delete and set that identity.
|
|
69
|
+
|
|
70
|
+
## delete
|
|
71
|
+
|
|
72
|
+
Delete the stored row for a name and label.
|
|
73
|
+
|
|
74
|
+
```ts TypeScript
|
|
75
|
+
const result = await store.delete({
|
|
76
|
+
name: "SERVICE_TOKEN",
|
|
77
|
+
label: "v1",
|
|
78
|
+
});
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
```python Python
|
|
82
|
+
result = await store.delete(
|
|
83
|
+
name="SERVICE_TOKEN",
|
|
84
|
+
label="v1",
|
|
85
|
+
)
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
**Returns:** `ManagedSecretDeleteResult`: `ok: boolean`, `name: string`, and the deleted `label: string`.
|
|
89
|
+
|
|
90
|
+
### Parameters and behavior
|
|
91
|
+
|
|
92
|
+
| Parameter | Type and meaning |
|
|
93
|
+
| --- | --- |
|
|
94
|
+
| `name` | Required string, normalized by the same rules as `set`. |
|
|
95
|
+
| `label?` | If provided: 1–80 allowed characters after trimming; empty labels are refused. If omitted: choose the `default` row, otherwise the only row, otherwise refuse the ambiguous choice. |
|
|
96
|
+
|
|
97
|
+
## Configuration
|
|
98
|
+
|
|
99
|
+
```ts TypeScript
|
|
100
|
+
import { managedSecrets } from "@evolvingmachines/evolve";
|
|
101
|
+
|
|
102
|
+
const store = managedSecrets({
|
|
103
|
+
apiKey: process.env.EVOLVE_API_KEY,
|
|
104
|
+
dashboardUrl: "https://dashboard.evolvingmachines.ai",
|
|
105
|
+
});
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
```python Python
|
|
109
|
+
from evolve import managed_secrets, ManagedSecretsClientConfig
|
|
110
|
+
|
|
111
|
+
store = managed_secrets(ManagedSecretsClientConfig(
|
|
112
|
+
dashboard_url="https://dashboard.evolvingmachines.ai",
|
|
113
|
+
))
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
| TypeScript config | Python config | Default |
|
|
117
|
+
| --- | --- | --- |
|
|
118
|
+
| `apiKey` | `api_key` | `EVOLVE_API_KEY`; required when making a request. |
|
|
119
|
+
| `dashboardUrl` | `dashboard_url` | `EVOLVE_DASHBOARD_URL`, then `https://dashboard.evolvingmachines.ai`. |
|
|
120
|
+
|
|
121
|
+
HTTP failures raise plain `Error` in TypeScript and `RuntimeError` in Python, rather than hosted `EvolveApiError` / `EvolveAPIError`.
|
|
122
|
+
|
|
123
|
+
## Secret fields
|
|
124
|
+
|
|
125
|
+
### Metadata, write result, and delete result
|
|
126
|
+
|
|
127
|
+
Python returns dataclasses. Its metadata uses `allowed_hosts`, `allowed_path_prefixes`, `allowed_methods`, `created_at`, `updated_at`, and `last_used_at` instead of their camelCase TypeScript names. Other fields keep their names. Missing optional `label` / `delivery` is `None` in Python. No result exposes `value`.
|
|
128
|
+
|
|
129
|
+
```ts Fields
|
|
130
|
+
interface ManagedSecretMetadata {
|
|
131
|
+
id: string;
|
|
132
|
+
name: string;
|
|
133
|
+
label?: string;
|
|
134
|
+
delivery?: ManagedSecretDelivery;
|
|
135
|
+
allowedHosts: string[];
|
|
136
|
+
allowedPathPrefixes: string[];
|
|
137
|
+
allowedMethods: string[];
|
|
138
|
+
createdAt: string;
|
|
139
|
+
updatedAt: string;
|
|
140
|
+
lastUsedAt: string | null;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
type ManagedSecretDelivery = "brokered" | "direct";
|
|
144
|
+
|
|
145
|
+
interface ManagedSecretWriteResult {
|
|
146
|
+
status: "created" | "updated";
|
|
147
|
+
secret: ManagedSecretMetadata;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
interface ManagedSecretDeleteResult {
|
|
151
|
+
ok: boolean;
|
|
152
|
+
name: string;
|
|
153
|
+
label: string;
|
|
154
|
+
}
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
See [attach a stored secret](/sdk-reference/secrets#attach-it-to-a-job) for the job input. Provider API keys are managed separately in the dashboard.
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Uploaded skills: methods"
|
|
3
|
+
description: "Upload, read, and delete skill content used by evaluation agents."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Use `skills()` or `hosted().skills`. These are skill folders mounted into runs; `evolve skills` separately serves documentation. Examples use a configured `client`. Python examples run inside an async function.
|
|
7
|
+
|
|
8
|
+
## upload
|
|
9
|
+
|
|
10
|
+
Store one skill folder or a root containing child skill folders.
|
|
11
|
+
|
|
12
|
+
```ts TypeScript
|
|
13
|
+
const uploaded = await client.upload(
|
|
14
|
+
"./my-skill",
|
|
15
|
+
{
|
|
16
|
+
org: "my-team",
|
|
17
|
+
},
|
|
18
|
+
);
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
```python Python
|
|
22
|
+
uploaded = await client.upload(
|
|
23
|
+
"./my-skill",
|
|
24
|
+
org="my-team",
|
|
25
|
+
)
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
**Returns:** An array/list of `SkillUpload`, one per discovered skill.
|
|
29
|
+
|
|
30
|
+
### Parameters and behavior
|
|
31
|
+
|
|
32
|
+
| Parameter | Type and meaning |
|
|
33
|
+
| --- | --- |
|
|
34
|
+
| `directory` | Required local path. Contains `SKILL.md`, or immediate child folders that contain it. |
|
|
35
|
+
| `org?` | Organization slug or id. Overrides the client default; otherwise uses your personal organization. |
|
|
36
|
+
|
|
37
|
+
Identical content under the same name reuses a record. Different content creates a new immutable `upload:<id>` reference and moves `name:<skill-name>` to that record. Existing jobs keep their locked content.
|
|
38
|
+
|
|
39
|
+
## list
|
|
40
|
+
|
|
41
|
+
Read one page or iterate all visible uploaded skills.
|
|
42
|
+
|
|
43
|
+
```ts TypeScript
|
|
44
|
+
const page = await client.list({
|
|
45
|
+
scope: "org",
|
|
46
|
+
limit: 20,
|
|
47
|
+
});
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
```python Python
|
|
51
|
+
page = await client.list(
|
|
52
|
+
scope="org",
|
|
53
|
+
limit=20,
|
|
54
|
+
)
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
**Returns:** `SkillUploadPage` when awaited; a `SkillUpload` per iteration.
|
|
58
|
+
|
|
59
|
+
### Parameters and behavior
|
|
60
|
+
|
|
61
|
+
| Parameter | Type and meaning |
|
|
62
|
+
| --- | --- |
|
|
63
|
+
| `scope?` | `my` (default), `shared` (other members’ uploads in your organizations), or `org` (all uploads in your organizations). |
|
|
64
|
+
| `limit?`, `cursor?` | Collection pagination; default 50, maximum 200. `for await` / `async for` follows pages. |
|
|
65
|
+
|
|
66
|
+
Page fields are `items`, `nextCursor`, `hasMore` in TypeScript; `items`, `next_cursor`, `has_more` in Python.
|
|
67
|
+
|
|
68
|
+
## get
|
|
69
|
+
|
|
70
|
+
Read uploaded metadata and its `SKILL.md` content.
|
|
71
|
+
|
|
72
|
+
```ts TypeScript
|
|
73
|
+
const skill = await client.get("name:my-skill");
|
|
74
|
+
console.log(skill.skill_md);
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
```python Python
|
|
78
|
+
skill = await client.get("name:my-skill")
|
|
79
|
+
print(skill.skill_md)
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
**Returns:** TypeScript `SkillUpload & { skill_md: string | null }`; Python `SkillUpload` with `skill_md` populated.
|
|
83
|
+
|
|
84
|
+
### Parameters and behavior
|
|
85
|
+
|
|
86
|
+
Pass a record id or `name:<skill-name>` as the required argument (`id` in TypeScript, `skill_id` in Python). A name reference resolves only your own current upload. Use a record id for an upload shared through your organization. An unknown name returns `skill_name_not_found`.
|
|
87
|
+
|
|
88
|
+
## delete
|
|
89
|
+
|
|
90
|
+
Delete an uploaded record you own.
|
|
91
|
+
|
|
92
|
+
```ts TypeScript
|
|
93
|
+
await client.delete(skillId);
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
```python Python
|
|
97
|
+
await client.delete(skill_id)
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
**Returns:** No value (`void` / `None`).
|
|
101
|
+
|
|
102
|
+
### Parameters and behavior
|
|
103
|
+
|
|
104
|
+
Pass the record id, not a `name:` reference. A non-terminal job using the record prevents deletion. Completed jobs retain their recorded skill locks.
|
|
105
|
+
|
|
106
|
+
## Skill fields
|
|
107
|
+
|
|
108
|
+
### SkillUpload response
|
|
109
|
+
|
|
110
|
+
`digest` is `sha256:<hex>`. `ref` is the immutable `upload:<id>` handle used by job agent arms. `description` is extracted from `SKILL.md`.
|
|
111
|
+
|
|
112
|
+
Python returns these fields as dataclass attributes and adds `skill_md: Optional[str]`, defaulting to `None` for list/upload results. TypeScript adds `skill_md` only to the `get` result.
|
|
113
|
+
|
|
114
|
+
```ts Fields
|
|
115
|
+
interface SkillUpload {
|
|
116
|
+
id: string;
|
|
117
|
+
name: string;
|
|
118
|
+
org: string | null;
|
|
119
|
+
digest: string;
|
|
120
|
+
size_bytes: number;
|
|
121
|
+
description: string | null;
|
|
122
|
+
ref: string;
|
|
123
|
+
created_at: string;
|
|
124
|
+
}
|
|
125
|
+
```
|