@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.
Files changed (152) hide show
  1. package/dist/{chunk-DK2MGUPB.js → chunk-RFLMRPGK.js} +5 -5
  2. package/dist/cli/index.cjs +39 -39
  3. package/dist/cli/index.d.cts +3 -3
  4. package/dist/cli/index.d.ts +3 -3
  5. package/dist/cli/index.js +30 -30
  6. package/dist/index.cjs +1 -1
  7. package/dist/index.d.cts +4 -4
  8. package/dist/index.d.ts +4 -4
  9. package/dist/index.js +1 -1
  10. package/dist/{types-B_qmzlMk.d.cts → types-84M4J_Vm.d.cts} +11 -44
  11. package/dist/{types-B_qmzlMk.d.ts → types-84M4J_Vm.d.ts} +11 -44
  12. package/package.json +4 -4
  13. package/skills/create-adapter/SKILL.md +71 -26
  14. package/skills/create-task/SKILL.md +124 -66
  15. package/skills/evolve/SKILL.md +37 -20
  16. package/skills/evolve-evals/SKILL.md +142 -69
  17. package/skills/evolve-evals/references/cli-reference/agent.md +76 -0
  18. package/skills/evolve-evals/references/cli-reference/analysis.md +78 -0
  19. package/skills/evolve-evals/references/cli-reference/analyze.md +95 -0
  20. package/skills/evolve-evals/references/cli-reference/auth.md +96 -0
  21. package/skills/evolve-evals/references/cli-reference/check.md +156 -0
  22. package/skills/evolve-evals/references/cli-reference/dataset.md +154 -0
  23. package/skills/evolve-evals/references/cli-reference/filesystem.md +168 -0
  24. package/skills/evolve-evals/references/cli-reference/index.md +149 -0
  25. package/skills/evolve-evals/references/cli-reference/job.md +198 -0
  26. package/skills/evolve-evals/references/cli-reference/run.md +187 -0
  27. package/skills/evolve-evals/references/cli-reference/secrets.md +77 -0
  28. package/skills/evolve-evals/references/cli-reference/session.md +56 -0
  29. package/skills/evolve-evals/references/cli-reference/skill.md +52 -0
  30. package/skills/evolve-evals/references/cli-reference/skills.md +85 -0
  31. package/skills/evolve-evals/references/cli-reference/trial.md +115 -0
  32. package/skills/evolve-evals/references/cli-reference/upload.md +72 -0
  33. package/skills/evolve-evals/references/core-concepts/agents.md +96 -0
  34. package/skills/evolve-evals/references/core-concepts/analyze.md +143 -0
  35. package/skills/evolve-evals/references/core-concepts/check.md +116 -0
  36. package/skills/evolve-evals/references/core-concepts/compatibility.md +39 -0
  37. package/skills/evolve-evals/references/core-concepts/compose.md +103 -0
  38. package/skills/evolve-evals/references/core-concepts/datasets.md +234 -0
  39. package/skills/evolve-evals/references/core-concepts/index.md +52 -0
  40. package/skills/evolve-evals/references/core-concepts/jobs.md +223 -0
  41. package/skills/evolve-evals/references/core-concepts/models.md +73 -0
  42. package/skills/evolve-evals/references/core-concepts/multi-step.md +93 -0
  43. package/skills/evolve-evals/references/core-concepts/rewardkit.md +341 -0
  44. package/skills/evolve-evals/references/core-concepts/sandboxes.md +73 -0
  45. package/skills/evolve-evals/references/core-concepts/secrets.md +86 -0
  46. package/skills/evolve-evals/references/core-concepts/sharing.md +81 -0
  47. package/skills/evolve-evals/references/core-concepts/skills.md +100 -0
  48. package/skills/evolve-evals/references/core-concepts/task-config.md +169 -0
  49. package/skills/evolve-evals/references/core-concepts/task-environment.md +127 -0
  50. package/skills/evolve-evals/references/core-concepts/task-reference.md +191 -0
  51. package/skills/evolve-evals/references/core-concepts/task-verifiers.md +209 -0
  52. package/skills/evolve-evals/references/core-concepts/tasks.md +90 -0
  53. package/skills/evolve-evals/references/core-concepts/teams.md +128 -0
  54. package/skills/evolve-evals/references/core-concepts/trial-outputs.md +225 -0
  55. package/skills/evolve-evals/references/core-concepts/trials.md +129 -0
  56. package/skills/evolve-evals/references/core-concepts/upload-sdk-session.md +240 -0
  57. package/skills/evolve-evals/references/core-concepts/upload.md +166 -0
  58. package/skills/evolve-evals/references/dashboard/checks.md +54 -0
  59. package/skills/evolve-evals/references/dashboard/datasets.md +65 -0
  60. package/skills/evolve-evals/references/dashboard/jobs.md +106 -0
  61. package/skills/evolve-evals/references/dashboard/traces.md +54 -0
  62. package/skills/evolve-evals/references/dashboard/trial-viewer.md +77 -0
  63. package/skills/evolve-evals/references/getting-started/first-task.md +228 -0
  64. package/skills/evolve-evals/references/getting-started/installation.md +79 -0
  65. package/skills/evolve-evals/references/getting-started/quick-start.md +100 -0
  66. package/skills/evolve-evals/references/index.md +58 -0
  67. package/skills/evolve-evals/references/sdk/http.md +110 -0
  68. package/skills/evolve-evals/references/sdk/python.md +108 -0
  69. package/skills/evolve-evals/references/sdk/typescript.md +104 -0
  70. package/skills/evolve-evals/references/sdk-reference/agents.md +75 -0
  71. package/skills/evolve-evals/references/sdk-reference/analyses.md +124 -0
  72. package/skills/evolve-evals/references/sdk-reference/auth.md +171 -0
  73. package/skills/evolve-evals/references/sdk-reference/checks.md +145 -0
  74. package/skills/evolve-evals/references/sdk-reference/datasets.md +170 -0
  75. package/skills/evolve-evals/references/sdk-reference/error-codes.md +231 -0
  76. package/skills/evolve-evals/references/sdk-reference/errors.md +98 -0
  77. package/skills/evolve-evals/references/sdk-reference/filesystem.md +166 -0
  78. package/skills/evolve-evals/references/sdk-reference/index.md +161 -0
  79. package/skills/evolve-evals/references/sdk-reference/jobs.md +250 -0
  80. package/skills/evolve-evals/references/sdk-reference/meta.md +54 -0
  81. package/skills/evolve-evals/references/sdk-reference/methods/agents.md +154 -0
  82. package/skills/evolve-evals/references/sdk-reference/methods/analyses.md +211 -0
  83. package/skills/evolve-evals/references/sdk-reference/methods/auth.md +257 -0
  84. package/skills/evolve-evals/references/sdk-reference/methods/checks.md +460 -0
  85. package/skills/evolve-evals/references/sdk-reference/methods/datasets.md +687 -0
  86. package/skills/evolve-evals/references/sdk-reference/methods/filesystem.md +527 -0
  87. package/skills/evolve-evals/references/sdk-reference/methods/jobs.md +1021 -0
  88. package/skills/evolve-evals/references/sdk-reference/methods/meta.md +209 -0
  89. package/skills/evolve-evals/references/sdk-reference/methods/secrets.md +157 -0
  90. package/skills/evolve-evals/references/sdk-reference/methods/skills.md +125 -0
  91. package/skills/evolve-evals/references/sdk-reference/methods/trials.md +371 -0
  92. package/skills/evolve-evals/references/sdk-reference/secrets.md +104 -0
  93. package/skills/evolve-evals/references/sdk-reference/skills.md +66 -0
  94. package/skills/evolve-evals/references/sdk-reference/trials.md +164 -0
  95. package/skills/evolve-evals/references/sdk-reference/types.md +1249 -0
  96. package/skills/publish/SKILL.md +103 -79
  97. package/skills/rewardkit/SKILL.md +78 -23
  98. package/spec/openapi.yaml +19 -74
  99. package/skills/evolve-evals/references/cli-reference/agent.mdx +0 -79
  100. package/skills/evolve-evals/references/cli-reference/analysis.mdx +0 -160
  101. package/skills/evolve-evals/references/cli-reference/analyze.mdx +0 -84
  102. package/skills/evolve-evals/references/cli-reference/auth.mdx +0 -133
  103. package/skills/evolve-evals/references/cli-reference/check.mdx +0 -263
  104. package/skills/evolve-evals/references/cli-reference/dataset.mdx +0 -151
  105. package/skills/evolve-evals/references/cli-reference/index.mdx +0 -108
  106. package/skills/evolve-evals/references/cli-reference/job.mdx +0 -278
  107. package/skills/evolve-evals/references/cli-reference/run.mdx +0 -204
  108. package/skills/evolve-evals/references/cli-reference/secrets.mdx +0 -95
  109. package/skills/evolve-evals/references/cli-reference/skill.mdx +0 -61
  110. package/skills/evolve-evals/references/cli-reference/skills.mdx +0 -81
  111. package/skills/evolve-evals/references/cli-reference/trial.mdx +0 -181
  112. package/skills/evolve-evals/references/cli-reference/upload.mdx +0 -36
  113. package/skills/evolve-evals/references/core-concepts/agents.mdx +0 -106
  114. package/skills/evolve-evals/references/core-concepts/analyze.mdx +0 -86
  115. package/skills/evolve-evals/references/core-concepts/check.mdx +0 -64
  116. package/skills/evolve-evals/references/core-concepts/datasets.mdx +0 -138
  117. package/skills/evolve-evals/references/core-concepts/index.mdx +0 -42
  118. package/skills/evolve-evals/references/core-concepts/jobs.mdx +0 -151
  119. package/skills/evolve-evals/references/core-concepts/models.mdx +0 -68
  120. package/skills/evolve-evals/references/core-concepts/sandboxes.mdx +0 -52
  121. package/skills/evolve-evals/references/core-concepts/secrets.mdx +0 -41
  122. package/skills/evolve-evals/references/core-concepts/sharing.mdx +0 -35
  123. package/skills/evolve-evals/references/core-concepts/skills.mdx +0 -42
  124. package/skills/evolve-evals/references/core-concepts/tasks.mdx +0 -216
  125. package/skills/evolve-evals/references/core-concepts/teams.mdx +0 -36
  126. package/skills/evolve-evals/references/core-concepts/trial-outputs.mdx +0 -117
  127. package/skills/evolve-evals/references/core-concepts/trials.mdx +0 -103
  128. package/skills/evolve-evals/references/core-concepts/upload.mdx +0 -93
  129. package/skills/evolve-evals/references/dashboard/checks.mdx +0 -21
  130. package/skills/evolve-evals/references/dashboard/datasets.mdx +0 -24
  131. package/skills/evolve-evals/references/dashboard/jobs.mdx +0 -65
  132. package/skills/evolve-evals/references/dashboard/traces.mdx +0 -17
  133. package/skills/evolve-evals/references/dashboard/trial-viewer.mdx +0 -30
  134. package/skills/evolve-evals/references/getting-started/installation.mdx +0 -56
  135. package/skills/evolve-evals/references/getting-started/quick-start.mdx +0 -94
  136. package/skills/evolve-evals/references/index.mdx +0 -48
  137. package/skills/evolve-evals/references/sdk/python.mdx +0 -161
  138. package/skills/evolve-evals/references/sdk/typescript.mdx +0 -163
  139. package/skills/evolve-evals/references/sdk-reference/agents.mdx +0 -108
  140. package/skills/evolve-evals/references/sdk-reference/analyses.mdx +0 -222
  141. package/skills/evolve-evals/references/sdk-reference/auth.mdx +0 -116
  142. package/skills/evolve-evals/references/sdk-reference/checks.mdx +0 -300
  143. package/skills/evolve-evals/references/sdk-reference/datasets.mdx +0 -346
  144. package/skills/evolve-evals/references/sdk-reference/errors.mdx +0 -210
  145. package/skills/evolve-evals/references/sdk-reference/index.mdx +0 -60
  146. package/skills/evolve-evals/references/sdk-reference/jobs.mdx +0 -822
  147. package/skills/evolve-evals/references/sdk-reference/meta.mdx +0 -52
  148. package/skills/evolve-evals/references/sdk-reference/skills.mdx +0 -69
  149. package/skills/evolve-evals/references/sdk-reference/trials.mdx +0 -302
  150. package/skills/evolve-evals/references/sdk-reference/types.mdx +0 -274
  151. package/skills/evolve-evals/references/snippets/global-options.mdx +0 -13
  152. 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
+ ```